Compare commits

...

No commits in common. 'main' and 'gh-pages' have entirely different histories.

  1. 2
      .gitignore
  2. 6
      .gitmodules
  3. 62
      Dockerfile
  4. 21
      LICENSE
  5. 88
      README.md
  6. 29
      Skins.md
  7. 4
      assets/fonts/font-awesome.css
  8. 13
      assets/fonts/material-icons.css
  9. BIN
      assets/fonts/specimen/FontAwesome.ttf
  10. BIN
      assets/fonts/specimen/FontAwesome.woff
  11. BIN
      assets/fonts/specimen/FontAwesome.woff2
  12. BIN
      assets/fonts/specimen/MaterialIcons-Regular.ttf
  13. BIN
      assets/fonts/specimen/MaterialIcons-Regular.woff
  14. BIN
      assets/fonts/specimen/MaterialIcons-Regular.woff2
  15. BIN
      assets/images/favicon.png
  16. 20
      assets/images/icons/bitbucket.1b09e088.svg
  17. 18
      assets/images/icons/github.f0b8504a.svg
  18. 38
      assets/images/icons/gitlab.6dd19c00.svg
  19. 1
      assets/javascripts/application.e72fd936.js
  20. 1
      assets/javascripts/lunr/lunr.da.js
  21. 1
      assets/javascripts/lunr/lunr.de.js
  22. 1
      assets/javascripts/lunr/lunr.du.js
  23. 1
      assets/javascripts/lunr/lunr.es.js
  24. 1
      assets/javascripts/lunr/lunr.fi.js
  25. 1
      assets/javascripts/lunr/lunr.fr.js
  26. 1
      assets/javascripts/lunr/lunr.hu.js
  27. 1
      assets/javascripts/lunr/lunr.it.js
  28. 1
      assets/javascripts/lunr/lunr.jp.js
  29. 1
      assets/javascripts/lunr/lunr.multi.js
  30. 1
      assets/javascripts/lunr/lunr.no.js
  31. 1
      assets/javascripts/lunr/lunr.pt.js
  32. 1
      assets/javascripts/lunr/lunr.ro.js
  33. 1
      assets/javascripts/lunr/lunr.ru.js
  34. 1
      assets/javascripts/lunr/lunr.stemmer.support.js
  35. 1
      assets/javascripts/lunr/lunr.sv.js
  36. 1
      assets/javascripts/lunr/lunr.tr.js
  37. 1
      assets/javascripts/lunr/tinyseg.js
  38. 1
      assets/javascripts/modernizr.1aa3b519.js
  39. 1176
      assets/stylesheets/application-palette.22915126.css
  40. 2552
      assets/stylesheets/application.451f80e5.css
  41. 7
      attic/build_super_mw.sh
  42. 44
      attic/run_super_mw.sh
  43. 1
      charlesreid1-config
  44. 5
      clean.sh
  45. 0
      css/custom.css
  46. 98
      docs/index.md
  47. 4
      erase_mw_volume.sh
  48. 35
      fix_LocalSettings.sh
  49. 27
      fix_extensions_dir.sh
  50. 18
      fix_skins.sh
  51. 492
      index.html
  52. 4
      make_mw_volume.sh
  53. 1
      mkdocs-material
  54. 36
      mkdocs.yml
  55. 2986
      search/lunr.js
  56. 94
      search/main.js
  57. 1
      search/search_index.json
  58. 127
      search/worker.js
  59. 8
      sitemap.xml
  60. BIN
      sitemap.xml.gz

2
.gitignore vendored

@ -1,2 +0,0 @@ @@ -1,2 +0,0 @@
site/
LocalSettings.php

6
.gitmodules vendored

@ -1,6 +0,0 @@ @@ -1,6 +0,0 @@
[submodule "charlesreid1-config"]
path = charlesreid1-config
url = https://git.charlesreid1.com/wiki/charlesreid1-config.git
[submodule "mkdocs-material"]
path = mkdocs-material
url = https://git.charlesreid1.com/charlesreid1/mkdocs-material.git

62
Dockerfile

@ -1,62 +0,0 @@ @@ -1,62 +0,0 @@
FROM mediawiki
EXPOSE 8989
VOLUME ["/var/www/html"]
# Install ImageMagick
# and math stuff mentioned by Math extension readme
RUN apt-get update && \
apt-get install -y build-essential \
dvipng \
ocaml \
ghostscript \
imagemagick \
texlive-latex-base \
texlive-latex-extra \
texlive-fonts-recommended \
texlive-lang-greek \
texlive-latex-recommended
# Copy skins, config files, and other particulars into container
# WARNING: DOCKER STUPIDITY AHEAD
# MediaWiki needs everything, everything, to be in one folder.
# Docker is totally incapable of mounting a file in a volume.
# I cannot update LocalSettings.php without clearing the cache.
# I cannot clear the cache without reinstalling all of latex.
# I can't bind-mount the skins dir, because then it's owned by root.
# I can't fix the fact that all bind-mounted dirs are owned by root,
# because I can only add commands in THIS DOCKERFILE.
# and when you run the commands in this dockerfile,
# YOU CANNOT SEE THE BIND-MOUNTED STUFF.
# Extensions
COPY charlesreid1-config/mediawiki/extensions/EmbedVideo /var/www/html/extensions/EmbedVideo
COPY charlesreid1-config/mediawiki/extensions/Math /var/www/html/extensions/Math
COPY charlesreid1-config/mediawiki/extensions/ParserFunctions /var/www/html/extensions/ParserFunctions
COPY charlesreid1-config/mediawiki/extensions/SyntaxHighlight_GeSHi /var/www/html/extensions/SyntaxHighlight_GeSHi
RUN chown -R www-data:www-data /var/www/html/*
# Skins
COPY charlesreid1-config/mediawiki/skins /var/www/html/skins
RUN chown -R www-data:www-data /var/www/html/skins
# Settings
COPY charlesreid1-config/mediawiki/LocalSettings.php /var/www/html/LocalSettings.php
RUN chown -R www-data:www-data /var/www/html/LocalSettings*
RUN chmod 600 /var/www/html/LocalSettings.php
# MediaWiki Fail2ban log directory
RUN mkdir -p /var/log/mwf2b
RUN chown -R www-data:www-data /var/log/mwf2b
RUN chmod 700 /var/log/mwf2b
# Apache conf file
COPY charlesreid1-config/apache/*.conf /etc/apache2/sites-enabled/
RUN a2enmod rewrite
RUN service apache2 restart
## make texvc
#CMD cd /var/www/html/extensions/Math && make && apache2-foreground
CMD apache2-foreground

21
LICENSE

@ -1,21 +0,0 @@ @@ -1,21 +0,0 @@
Copyright (C) 2018 Charles Reid
Permission is hereby granted, free of charge, to any person
obtaining a copy of this software and associated documentation
files (the “Software”), to deal in the Software without
restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the
Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE.

88
README.md

@ -1,88 +0,0 @@ @@ -1,88 +0,0 @@
# d-mediawiki
This is the MediaWiki docker container used to run
MediaWiki on [charlesreid1.com/wiki](https://charlesreid1.com/wiki).
This container also runs an Apache web server and
a PHP engine.
You should not run this container by itself (see
[pod-charlesreid1](https://git.charlesreid1.com/docker/pod-charlesreid1.git)).
## Summary
This directory contains a Dockerfile that modifies the
official MediaWiki docker container. Before launching
the container, it specifies `/var/www/html` as a mounted volume,
and it copies `LocalSettings.php`, the MediaWiki config file,
from this repo into the container.
See [d-mysql repo](https://charlesreid1.com:3000/docker/d-mysql).
Also see [pod-charlesreid1](https://git.charlesreid1.com/docker/pod-charlesreid1.git)
for a working pod using this container.
## Docker Compose
To use this container as part of a pod, as with the charlesreid1.com wiki,
see [pod-charlesreid1-wiki](https://charlesreid1.com:3000/docker/pod-charlesreid1-wiki).
## Troubleshooting
If you are seeing 404s on every page you try, it may be because
your MediaWiki config file is set to redirect you to `/wiki/Main_Page`
but your web server is not set up to handle it.
See [this lin](https://www.mediawiki.org/wiki/Manual:Short_URL)
and the guide for [apache](https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Short_URL/Apache)
and [nginx](https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Short_URL/Nginx).
## Updating Settings
The LocalSettings.php file must be copied into the
container, because we will end up bind-mounting the
entire MediaWiki directory when the container is run
and we can't bind-mount a file inside a bind-mounted
directory.
Thus, to update LocalSettings.php, skins, or extensions,
you will need to re-make the Docker container.
Use the make rules to remake the Docker container:
```
make clean
make build
make run
```
## Submodule
The submodule `charlesreid1-config/`
contains configuration files for both
MediaWiki and Apache.
See the [wiki/charlesreid1-config](https://git.charlesreid1.com/wiki/charlesreid1-config)
repo for details.
To clone the submodule when you clone the repo,
include the `--recursive` flag:
```
git clone --recursive https://git.charlesreid1.com/docker/d-mediawiki.git
```
To check out the submodule after a shallow clone:
```
git submodule init
# or
git submodule update --init
```
To fetch changes to the submodule from the submodule's remote:
```
git submodule update --remote
```

29
Skins.md

@ -1,29 +0,0 @@ @@ -1,29 +0,0 @@
To update the MediaWiki skin:
- See the long angry rant in the Dockerfile
- You have to rebuild the whole container. Yup, stupid.
- Rebuild the MW container while the docker pod is still running (won't effect the docker pod)
- When finished rebuilding the MW container, restart the docker pod.
```
# switch to main poddirectory
cd ../
# rebuild all containers
docker-compose build
# restart the pod
sudo service dockerpod-charlesreid1 restart
```
To verify that the skin has correcty been installed, you can check
the skin file inside the container. First, get a shell in the container:
```
docker exec -it podcharlesreid1_stormy_mw_1 /bin/bash
```
Once inside the container, the main web directory is `/var/www/html/`,
so the skins should be in `/var/www/html/skins/`. You can use `cat` to
print the file to the screen and verify it is correct.

4
assets/fonts/font-awesome.css vendored

File diff suppressed because one or more lines are too long

13
assets/fonts/material-icons.css

@ -0,0 +1,13 @@ @@ -0,0 +1,13 @@
/*!
* Licensed under the Apache License, Version 2.0 (the "License"); you may not
* use this file except in compliance with the License. You may obtain a copy
* of the License at:
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, SOFTWARE
* DISTRIBUTED UNDER THE LICENSE IS DISTRIBUTED ON AN "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
* SEE THE LICENSE FOR THE SPECIFIC LANGUAGE GOVERNING PERMISSIONS AND
* LIMITATIONS UNDER THE LICENSE.
*/@font-face{font-family:"Material Icons";font-style:normal;font-weight:400;src:local("Material Icons"),local("MaterialIcons-Regular"),url("specimen/MaterialIcons-Regular.woff2") format("woff2"),url("specimen/MaterialIcons-Regular.woff") format("woff"),url("specimen/MaterialIcons-Regular.ttf") format("truetype")}

BIN
assets/fonts/specimen/FontAwesome.ttf

Binary file not shown.

BIN
assets/fonts/specimen/FontAwesome.woff

Binary file not shown.

BIN
assets/fonts/specimen/FontAwesome.woff2

Binary file not shown.

BIN
assets/fonts/specimen/MaterialIcons-Regular.ttf

Binary file not shown.

BIN
assets/fonts/specimen/MaterialIcons-Regular.woff

Binary file not shown.

BIN
assets/fonts/specimen/MaterialIcons-Regular.woff2

Binary file not shown.

BIN
assets/images/favicon.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 521 B

20
assets/images/icons/bitbucket.1b09e088.svg

@ -0,0 +1,20 @@ @@ -0,0 +1,20 @@
<svg xmlns="http://www.w3.org/2000/svg" width="352" height="448"
viewBox="0 0 352 448" id="__bitbucket">
<path fill="currentColor" d="M203.75 214.75q2 15.75-12.625 25.25t-27.875
1.5q-9.75-4.25-13.375-14.5t-0.125-20.5 13-14.5q9-4.5 18.125-3t16 8.875
6.875 16.875zM231.5 209.5q-3.5-26.75-28.25-41t-49.25-3.25q-15.75
7-25.125 22.125t-8.625 32.375q1 22.75 19.375 38.75t41.375 14q22.75-2
38-21t12.5-42zM291.25
74q-5-6.75-14-11.125t-14.5-5.5-17.75-3.125q-72.75-11.75-141.5 0.5-10.75
1.75-16.5 3t-13.75 5.5-12.5 10.75q7.5 7 19 11.375t18.375 5.5 21.875
2.875q57 7.25 112 0.25 15.75-2 22.375-3t18.125-5.375 18.75-11.625zM305.5
332.75q-2 6.5-3.875 19.125t-3.5 21-7.125 17.5-14.5 14.125q-21.5
12-47.375 17.875t-50.5 5.5-50.375-4.625q-11.5-2-20.375-4.5t-19.125-6.75-18.25-10.875-13-15.375q-6.25-24-14.25-73l1.5-4
4.5-2.25q55.75 37 126.625 37t126.875-37q5.25 1.5 6 5.75t-1.25 11.25-2
9.25zM350.75 92.5q-6.5 41.75-27.75 163.75-1.25 7.5-6.75 14t-10.875
10-13.625 7.75q-63 31.5-152.5
22-62-6.75-98.5-34.75-3.75-3-6.375-6.625t-4.25-8.75-2.25-8.5-1.5-9.875-1.375-8.75q-2.25-12.5-6.625-37.5t-7-40.375-5.875-36.875-5.5-39.5q0.75-6.5
4.375-12.125t7.875-9.375 11.25-7.5 11.5-5.625 12-4.625q31.25-11.5
78.25-16 94.75-9.25 169 12.5 38.75 11.5 53.75 30.5 4 5 4.125
12.75t-1.375 13.5z" />
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

18
assets/images/icons/github.f0b8504a.svg

@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
<svg xmlns="http://www.w3.org/2000/svg" width="416" height="448"
viewBox="0 0 416 448" id="__github">
<path fill="currentColor" d="M160 304q0 10-3.125 20.5t-10.75 19-18.125
8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19 18.125-8.5
18.125 8.5 10.75 19 3.125 20.5zM320 304q0 10-3.125 20.5t-10.75
19-18.125 8.5-18.125-8.5-10.75-19-3.125-20.5 3.125-20.5 10.75-19
18.125-8.5 18.125 8.5 10.75 19 3.125 20.5zM360
304q0-30-17.25-51t-46.75-21q-10.25 0-48.75 5.25-17.75 2.75-39.25
2.75t-39.25-2.75q-38-5.25-48.75-5.25-29.5 0-46.75 21t-17.25 51q0 22 8
38.375t20.25 25.75 30.5 15 35 7.375 37.25 1.75h42q20.5 0
37.25-1.75t35-7.375 30.5-15 20.25-25.75 8-38.375zM416 260q0 51.75-15.25
82.75-9.5 19.25-26.375 33.25t-35.25 21.5-42.5 11.875-42.875 5.5-41.75
1.125q-19.5 0-35.5-0.75t-36.875-3.125-38.125-7.5-34.25-12.875-30.25-20.25-21.5-28.75q-15.5-30.75-15.5-82.75
0-59.25 34-99-6.75-20.5-6.75-42.5 0-29 12.75-54.5 27 0 47.5 9.875t47.25
30.875q36.75-8.75 77.25-8.75 37 0 70 8 26.25-20.5
46.75-30.25t47.25-9.75q12.75 25.5 12.75 54.5 0 21.75-6.75 42 34 40 34
99.5z" />
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

38
assets/images/icons/gitlab.6dd19c00.svg

@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
<svg xmlns="http://www.w3.org/2000/svg" width="500" height="500"
viewBox="0 0 500 500" id="__gitlab">
<g transform="translate(156.197863, 1.160267)">
<path fill="currentColor"
d="M93.667,473.347L93.667,473.347l90.684-279.097H2.983L93.667,
473.347L93.667,473.347z" />
</g>
<g transform="translate(28.531199, 1.160800)" opacity="0.7">
<path fill="currentColor"
d="M221.333,473.345L130.649,194.25H3.557L221.333,473.345L221.333,
473.345z" />
</g>
<g transform="translate(0.088533, 0.255867)" opacity="0.5">
<path fill="currentColor"
d="M32,195.155L32,195.155L4.441,279.97c-2.513,7.735,0.24,16.21,6.821,
20.99l238.514,173.29 L32,195.155L32,195.155z" />
</g>
<g transform="translate(29.421866, 280.255593)">
<path fill="currentColor"
d="M2.667-84.844h127.092L75.14-252.942c-2.811-8.649-15.047-8.649-17.856,
0L2.667-84.844 L2.667-84.844z" />
</g>
<g transform="translate(247.197860, 1.160800)" opacity="0.7">
<path fill="currentColor"
d="M2.667,473.345L93.351,194.25h127.092L2.667,473.345L2.667,
473.345z" />
</g>
<g transform="translate(246.307061, 0.255867)" opacity="0.5">
<path fill="currentColor"
d="M221.334,195.155L221.334,195.155l27.559,84.815c2.514,7.735-0.24,
16.21-6.821,20.99 L3.557,474.25L221.334,195.155L221.334,195.155z" />
</g>
<g transform="translate(336.973725, 280.255593)">
<path fill="currentColor"
d="M130.667-84.844H3.575l54.618-168.098c2.811-8.649,15.047-8.649,
17.856,0L130.667-84.844 L130.667-84.844z" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.6 KiB

1
assets/javascripts/application.e72fd936.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.da.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,i,n;e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=(r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){var e,n,t,s=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],o=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],u=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],c=new i;function l(){var e,r=c.limit-c.cursor;c.cursor>=n&&(e=c.limit_backward,c.limit_backward=n,c.ket=c.cursor,c.find_among_b(o,4)?(c.bra=c.cursor,c.limit_backward=e,c.cursor=c.limit-r,c.cursor>c.limit_backward&&(c.cursor--,c.bra=c.cursor,c.slice_del())):c.limit_backward=e)}this.setCurrent=function(e){c.setCurrent(e)},this.getCurrent=function(){return c.getCurrent()},this.stem=function(){var r,i=c.cursor;return function(){var r,i=c.cursor+3;if(n=c.limit,0<=i&&i<=c.limit){for(e=i;;){if(r=c.cursor,c.in_grouping(d,97,248)){c.cursor=r;break}if(c.cursor=r,r>=c.limit)return;c.cursor++}for(;!c.out_grouping(d,97,248);){if(c.cursor>=c.limit)return;c.cursor++}(n=c.cursor)<e&&(n=e)}}(),c.limit_backward=i,c.cursor=c.limit,function(){var e,r;if(c.cursor>=n&&(r=c.limit_backward,c.limit_backward=n,c.ket=c.cursor,e=c.find_among_b(s,32),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del();break;case 2:c.in_grouping_b(u,97,229)&&c.slice_del()}}(),c.cursor=c.limit,l(),c.cursor=c.limit,function(){var e,r,i,t=c.limit-c.cursor;if(c.ket=c.cursor,c.eq_s_b(2,"st")&&(c.bra=c.cursor,c.eq_s_b(2,"ig")&&c.slice_del()),c.cursor=c.limit-t,c.cursor>=n&&(r=c.limit_backward,c.limit_backward=n,c.ket=c.cursor,e=c.find_among_b(a,5),c.limit_backward=r,e))switch(c.bra=c.cursor,e){case 1:c.slice_del(),i=c.limit-c.cursor,l(),c.cursor=c.limit-i;break;case 2:c.slice_from("løs")}}(),c.cursor=c.limit,c.cursor>=n&&(r=c.limit_backward,c.limit_backward=n,c.ket=c.cursor,c.out_grouping_b(d,97,248)?(c.bra=c.cursor,t=c.slice_to(t),c.limit_backward=r,c.eq_v_b(t)&&c.slice_del()):c.limit_backward=r),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});

1
assets/javascripts/lunr/lunr.de.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.du.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.es.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.fi.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.fr.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.hu.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.it.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.jp.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.jp=function(){this.pipeline.reset(),this.pipeline.add(e.jp.stopWordFilter,e.jp.stemmer),r?this.tokenizer=e.jp.tokenizer:(e.tokenizer&&(e.tokenizer=e.jp.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.jp.tokenizer))};var t=new e.TinySegmenter;e.jp.tokenizer=function(n){if(!arguments.length||null==n||null==n)return[];if(Array.isArray(n))return n.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(var i=n.toString().toLowerCase().replace(/^\s+/,""),o=i.length-1;o>=0;o--)if(/\S/.test(i.charAt(o))){i=i.substring(0,o+1);break}return t.segment(i).filter(function(e){return!!e}).map(function(t){return r?new e.Token(t):t})},e.jp.stemmer=function(e){return e},e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.jp.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Za-zA-Z0-90-9",e.jp.stopWordFilter=function(t){if(-1===e.jp.stopWordFilter.stopWords.indexOf(r?t.toString():t))return t},e.jp.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});

1
assets/javascripts/lunr/lunr.multi.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
!function(e,i){"function"==typeof define&&define.amd?define(i):"object"==typeof exports?module.exports=i():i()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var i=Array.prototype.slice.call(arguments),t=i.join("-"),r="",n=[],s=[],p=0;p<i.length;++p)"en"==i[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[i[p]].wordCharacters,n.unshift(e[i[p]].stopWordFilter),n.push(e[i[p]].stemmer),s.push(e[i[p]].stemmer));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+t),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});

1
assets/javascripts/lunr/lunr.no.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,n,i;e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=(r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){var e,i,t=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],o=[new r("dt",-1,-1),new r("vt",-1,-1)],s=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],a=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],m=[119,125,149,1],l=new n;this.setCurrent=function(e){l.setCurrent(e)},this.getCurrent=function(){return l.getCurrent()},this.stem=function(){var r,n,u,d,c=l.cursor;return function(){var r,n=l.cursor+3;if(i=l.limit,0<=n||n<=l.limit){for(e=n;;){if(r=l.cursor,l.in_grouping(a,97,248)){l.cursor=r;break}if(r>=l.limit)return;l.cursor=r+1}for(;!l.out_grouping(a,97,248);){if(l.cursor>=l.limit)return;l.cursor++}(i=l.cursor)<e&&(i=e)}}(),l.limit_backward=c,l.cursor=l.limit,function(){var e,r,n;if(l.cursor>=i&&(r=l.limit_backward,l.limit_backward=i,l.ket=l.cursor,e=l.find_among_b(t,29),l.limit_backward=r,e))switch(l.bra=l.cursor,e){case 1:l.slice_del();break;case 2:n=l.limit-l.cursor,l.in_grouping_b(m,98,122)?l.slice_del():(l.cursor=l.limit-n,l.eq_s_b(1,"k")&&l.out_grouping_b(a,97,248)&&l.slice_del());break;case 3:l.slice_from("er")}}(),l.cursor=l.limit,n=l.limit-l.cursor,l.cursor>=i&&(r=l.limit_backward,l.limit_backward=i,l.ket=l.cursor,l.find_among_b(o,2)?(l.bra=l.cursor,l.limit_backward=r,l.cursor=l.limit-n,l.cursor>l.limit_backward&&(l.cursor--,l.bra=l.cursor,l.slice_del())):l.limit_backward=r),l.cursor=l.limit,l.cursor>=i&&(d=l.limit_backward,l.limit_backward=i,l.ket=l.cursor,(u=l.find_among_b(s,11))?(l.bra=l.cursor,l.limit_backward=d,1==u&&l.slice_del()):l.limit_backward=d),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});

1
assets/javascripts/lunr/lunr.pt.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.ro.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.ru.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/lunr.stemmer.support.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&t[(e-=i)>>3]&1<<(7&e))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&t[(e-=i)>>3]&1<<(7&e))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(!(t[(e-=i)>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(!(t[(e-=i)>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){if(o>=(_=t[s]).s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=(m=t[a]).s_size-1-l;_>=0;_--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-m.s[_])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var m;if(o>=(m=t[s]).s_size){if(this.cursor=n-m.s_size,!m.method)return m.result;var b=m.method();if(this.cursor=n-m.s_size,b)return m.result}if((s=m.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});

1
assets/javascripts/lunr/lunr.sv.js

@ -0,0 +1 @@ @@ -0,0 +1 @@
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r,n,t;e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=(r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){var e,t,i=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],s=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],a=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],o=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],u=[119,127,149],m=new n;this.setCurrent=function(e){m.setCurrent(e)},this.getCurrent=function(){return m.getCurrent()},this.stem=function(){var r,n=m.cursor;return function(){var r,n=m.cursor+3;if(t=m.limit,0<=n||n<=m.limit){for(e=n;;){if(r=m.cursor,m.in_grouping(o,97,246)){m.cursor=r;break}if(m.cursor=r,m.cursor>=m.limit)return;m.cursor++}for(;!m.out_grouping(o,97,246);){if(m.cursor>=m.limit)return;m.cursor++}(t=m.cursor)<e&&(t=e)}}(),m.limit_backward=n,m.cursor=m.limit,function(){var e,r=m.limit_backward;if(m.cursor>=t&&(m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(i,37),m.limit_backward=r,e))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.in_grouping_b(u,98,121)&&m.slice_del()}}(),m.cursor=m.limit,r=m.limit_backward,m.cursor>=t&&(m.limit_backward=t,m.cursor=m.limit,m.find_among_b(s,7)&&(m.cursor=m.limit,m.ket=m.cursor,m.cursor>m.limit_backward&&(m.bra=--m.cursor,m.slice_del())),m.limit_backward=r),m.cursor=m.limit,function(){var e,r;if(m.cursor>=t){if(r=m.limit_backward,m.limit_backward=t,m.cursor=m.limit,m.ket=m.cursor,e=m.find_among_b(a,5))switch(m.bra=m.cursor,e){case 1:m.slice_del();break;case 2:m.slice_from("lös");break;case 3:m.slice_from("full")}m.limit_backward=r}}(),!0}},function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});

1
assets/javascripts/lunr/lunr.tr.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/lunr/tinyseg.js

File diff suppressed because one or more lines are too long

1
assets/javascripts/modernizr.1aa3b519.js

File diff suppressed because one or more lines are too long

1176
assets/stylesheets/application-palette.22915126.css

File diff suppressed because it is too large Load Diff

2552
assets/stylesheets/application.451f80e5.css

File diff suppressed because it is too large Load Diff

7
attic/build_super_mw.sh

@ -1,7 +0,0 @@ @@ -1,7 +0,0 @@
#!/bin/bash
# edit the mediawiki config file
# to include the mysql root pwd
docker build -t super_mediawiki .

44
attic/run_super_mw.sh

@ -1,44 +0,0 @@ @@ -1,44 +0,0 @@
#!/bin/bash
#
# Run mediawiki in docker
#
# Awesome:
# https://github.com/benhutchins/docker-mediawiki
#
#
#
# mediawiki data directory may contain:
# LocalSettings.php
# images
# skins
# extensions
#
# to enable ssl, data directory must contain:
# ssl.key
# ssl.crt
# ssl.bundle.crt
MW_SERVER="45.56.87.232"
HOST_PORT="80"
#docker pull mediawiki
docker container prune -f
# eventually this will listen on 8008
# like the apache reverse proxy on rojo
docker run \
--name stormy_mw \
--link stormy_mysql:mysql \
-v stormy_mw_data:/var/www/html \
-p ${HOST_PORT}:80 \
-e MEDIAWIKI_SITE_SERVER=${MW_SERVER} \
-e MEDIAWIKI_DB_HOST="mysql" \
-e MEDIAWIKI_DB_NAME="wikidb" \
-e MEDIAWIKI_DB_USER="root" \
-e MEDIAWIKI_DB_PASSWORD="`cat ../root.password`" \
-i \
super_mediawiki
# -e MEDIAWIKI_ENABLE_SSL=true \
# --rm \

1
charlesreid1-config

@ -1 +0,0 @@ @@ -1 +0,0 @@
Subproject commit 1505e72064005e8ba5fdf577be4dbf670a74c07a

5
clean.sh

@ -1,5 +0,0 @@ @@ -1,5 +0,0 @@
#!/bin/bash
docker stop stormy_mw
docker container prune -f

0
docs/css/custom.css → css/custom.css

98
docs/index.md

@ -1,98 +0,0 @@ @@ -1,98 +0,0 @@
# d-mediawiki
This is the MediaWiki docker container used to run
MediaWiki on [charlesreid1.com/wiki](https://charlesreid1.com/wiki).
This container also runs an Apache web server and
a PHP engine.
[documentation: d-mediawiki container](https://pages.charlesreid1.com/d-mediawiki/) (you are here)
[source code on git.charlesreid1.com: d-mediawiki](https://git.charlesreid1.com/docker/d-mediawiki)
[source code on github.com: charlesreid1-docker/d-mediawiki](https://github.com/charlesreid1-docker/d-mediawiki)
## Quick Note on Usage
You should not run this container by itself (see
[pod-charlesreid1](https://git.charlesreid1.com/docker/pod-charlesreid1.git)).
## Summary
This directory contains a Dockerfile that modifies the
official MediaWiki docker container. Before launching
the container, it specifies `/var/www/html` as a mounted volume,
and it copies `LocalSettings.php`, the MediaWiki config file,
from this repo into the container.
See [d-mysql repo](https://charlesreid1.com:3000/docker/d-mysql).
Also see [pod-charlesreid1](https://git.charlesreid1.com/docker/pod-charlesreid1.git)
for a working pod using this container.
## Docker Compose
To use this container as part of a pod, as with the charlesreid1.com wiki,
see [pod-charlesreid1-wiki](https://git.charlesreid1.com/docker/pod-charlesreid1-wiki).
## Troubleshooting
If you are seeing 404s on every page you try, it may be because
your MediaWiki config file is set to redirect you to `/wiki/Main_Page`
but your web server is not set up to handle it.
See [this lin](https://www.mediawiki.org/wiki/Manual:Short_URL)
and the guide for [apache](https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Short_URL/Apache)
and [nginx](https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Short_URL/Nginx).
## Updating Settings
The LocalSettings.php file must be copied into the
container, because we will end up bind-mounting the
entire MediaWiki directory when the container is run
and we can't bind-mount a file inside a bind-mounted
directory.
Thus, to update LocalSettings.php, skins, or extensions,
you will need to re-make the Docker container.
Use the make rules to remake the Docker container:
```
make clean
make build
make run
```
## Submodule
The submodule `charlesreid1-config/`
contains configuration files for both
MediaWiki and Apache.
See the [wiki/charlesreid1-config](https://git.charlesreid1.com/wiki/charlesreid1-config)
repo for details.
To clone the submodule when you clone the repo,
include the `--recursive` flag:
```
git clone --recursive https://git.charlesreid1.com/docker/d-mediawiki.git
```
To check out the submodule after a shallow clone:
```
git submodule init
# or
git submodule update --init
```
To fetch changes to the submodule from the submodule's remote:
```
git submodule update --remote
```

4
erase_mw_volume.sh

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
#!/bin/bash
docker container prune -f
docker volume rm stormy_mw_data

35
fix_LocalSettings.sh

@ -1,35 +0,0 @@ @@ -1,35 +0,0 @@
#!/bin/bash
#
# fix LocalSettings.php in the mediawiki container.
#
# docker is stupid, so it doesn't let you bind mount
# a single file into a docker volume.
#
# so, rather than rebuilding the entire goddamn container
# just to update LocalSettings.php when it changes, we just
# use a docker cp command to copy it into the container.
NAME="stormy_mw"
echo "Installing LocalSettings.php into $NAME"
docker cp charlesreid1-config/mediawiki/LocalSettings.php $NAME:/var/www/html/LocalSettings.php
docker exec -it $NAME /bin/bash -c "chown www-data:www-data /var/www/html/LocalSettings.php"
docker exec -it $NAME /bin/bash -c "chmod 600 /var/www/html/LocalSettings.php"
echo "Finished installing LocalSettings.php into $NAME"
DIRS="/var/www/html/docs
/var/www/html/includes
/var/www/html/languages
/var/www/html/maintenance
/var/www/html/mw-config
/var/www/html/tests
/var/www/html/vendor"
for dir in $DIRS
do
echo "Fixing permissions on $dir"
docker exec -it $NAME /bin/bash -c "chown -R www-data:www-data $dir"
docker exec -it $NAME /bin/bash -c "chmod 755 $dir"
docker exec -it $NAME /bin/bash -c "chmod -R 755 $dir"
echo "Finished fixing permissions on $dir"
done

27
fix_extensions_dir.sh

@ -1,27 +0,0 @@ @@ -1,27 +0,0 @@
#!/bin/bash
#
# fix extensions dir in the mediawiki container
#
# in theory, we should be able to update the
# extensions folder in d-mediawiki/charlesreid1-config,
# but in reality this falls on its face.
# So, we have to fix the fucking extensions directory
# ourselves.
set -e
NAME="stormy_mw"
EXTENSIONS="SyntaxHighlight_GeSHi ParserFunctions EmbedVideo Math Fail2banlog"
echo "Replacing existing versions of MediaWiki extensions..."
for EXTENSION in $EXTENSIONS; do
#echo "Removing old extension ${EXTENSION} from /var/www/html/extensions"
#docker exec -it $NAME /bin/bash -c "mv /var/www/html/extensions/${EXTENSION} /var/www/html/extensions/_${EXTENSION}"
#echo "Copying new extension ${EXTENSION} from d-mediawiki/charlesreid1-config/mediawiki/extensions"
#docker cp charlesreid1-config/mediawiki/extensions/${EXTENSION} ${NAME}:/var/www/html/extensions
echo "Fixing permissions on ${EXTENSION}"
docker exec -it $NAME /bin/bash -c "chown www-data:www-data /var/www/html/extensions/${EXTENSION}"
docker exec -it $NAME /bin/bash -c "chmod 755 /var/www/html/extensions/${EXTENSION}"
done
echo "Finished replacing extensions!"

18
fix_skins.sh

@ -1,18 +0,0 @@ @@ -1,18 +0,0 @@
#!/bin/bash
#
# fix skins in the mediawiki container.
#
# docker is stupid, so it doesn't let you bind mount
# a single file into a docker volume.
#
# so, rather than rebuilding the entire goddamn container
# just to update the skin when it changes, we just
# use a docker cp command to copy it into the container.
NAME="stormy_mw"
echo "Installing skins into $NAME"
docker exec -it $NAME /bin/bash -c 'rm -rf /var/www/html/skins'
docker cp charlesreid1-config/mediawiki/skins $NAME:/var/www/html/skins
docker exec -it $NAME /bin/bash -c 'chown -R www-data:www-data /var/www/html/skins'
echo "Finished installing skins into $NAME"

492
index.html

@ -0,0 +1,492 @@ @@ -0,0 +1,492 @@
<!DOCTYPE html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<link rel="canonical" href="https://pages.charlesreid1.com/d-mediawiki/">
<meta name="lang:clipboard.copy" content="Copy to clipboard">
<meta name="lang:clipboard.copied" content="Copied to clipboard">
<meta name="lang:search.language" content="en">
<meta name="lang:search.pipeline.stopwords" content="True">
<meta name="lang:search.pipeline.trimmer" content="True">
<meta name="lang:search.result.none" content="No matching documents">
<meta name="lang:search.result.one" content="1 matching document">
<meta name="lang:search.result.other" content="# matching documents">
<meta name="lang:search.tokenizer" content="[\s\-]+">
<link rel="shortcut icon" href=".">
<meta name="generator" content="mkdocs-1.0, mkdocs-material-3.0.3">
<title>d-mediawiki</title>
<link rel="stylesheet" href="assets/stylesheets/application.451f80e5.css">
<link rel="stylesheet" href="assets/stylesheets/application-palette.22915126.css">
<meta name="theme-color" content="#7cb342">
<script src="assets/javascripts/modernizr.1aa3b519.js"></script>
<link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto:300,400,400i,700|Roboto+Mono">
<style>body,input{font-family:"Roboto","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
<link rel="stylesheet" href="assets/fonts/material-icons.css">
<link rel="stylesheet" href="css/custom.css">
</head>
<body dir="ltr" data-md-color-primary="light-green" data-md-color-accent="light-green">
<svg class="md-svg">
<defs>
</defs>
</svg>
<input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#d-mediawiki" tabindex="1" class="md-skip">
Skip to content
</a>
<header class="md-header" data-md-component="header">
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="https://pages.charlesreid1.com/d-mediawiki" title="d-mediawiki" class="md-header-nav__button md-logo">
<i class="md-icon">input</i>
</a>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
</div>
<div class="md-flex__cell md-flex__cell--stretch">
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
d-mediawiki
</span>
<span class="md-header-nav__topic">
Home
</span>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
<input type="text" class="md-search__input" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
<label class="md-icon md-search__icon" for="__search"></label>
<button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
&#xE5CD;
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
<div class="md-search-result" data-md-component="result">
<div class="md-search-result__meta">
Type to start searching
</div>
<ol class="md-search-result__list"></ol>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="md-flex__cell md-flex__cell--shrink">
<div class="md-header-nav__source">
<a href="https://git.charlesreid1.com/docker/d-mediawiki" title="Go to repository" class="md-source" data-md-source="">
<div class="md-source__repository">
d-mediawiki
</div>
</a>
</div>
</div>
</div>
</nav>
</header>
<div class="md-container">
<main class="md-main">
<div class="md-main__inner md-grid" data-md-component="container">
<div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="https://pages.charlesreid1.com/d-mediawiki" title="d-mediawiki" class="md-nav__button md-logo">
<i class="md-icon">input</i>
</a>
d-mediawiki
</label>
<div class="md-nav__source">
<a href="https://git.charlesreid1.com/docker/d-mediawiki" title="Go to repository" class="md-source" data-md-source="">
<div class="md-source__repository">
d-mediawiki
</div>
</a>
</div>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item md-nav__item--active">
<input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
<label class="md-nav__link md-nav__link--active" for="__toc">
Home
</label>
<a href="." title="Home" class="md-nav__link md-nav__link--active">
Home
</a>
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#quick-note-on-usage" title="Quick Note on Usage" class="md-nav__link">
Quick Note on Usage
</a>
</li>
<li class="md-nav__item">
<a href="#summary" title="Summary" class="md-nav__link">
Summary
</a>
</li>
<li class="md-nav__item">
<a href="#docker-compose" title="Docker Compose" class="md-nav__link">
Docker Compose
</a>
</li>
<li class="md-nav__item">
<a href="#troubleshooting" title="Troubleshooting" class="md-nav__link">
Troubleshooting
</a>
</li>
<li class="md-nav__item">
<a href="#updating-settings" title="Updating Settings" class="md-nav__link">
Updating Settings
</a>
</li>
<li class="md-nav__item">
<a href="#submodule" title="Submodule" class="md-nav__link">
Submodule
</a>
</li>
</ul>
</nav>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--secondary">
<label class="md-nav__title" for="__toc">Table of contents</label>
<ul class="md-nav__list" data-md-scrollfix>
<li class="md-nav__item">
<a href="#quick-note-on-usage" title="Quick Note on Usage" class="md-nav__link">
Quick Note on Usage
</a>
</li>
<li class="md-nav__item">
<a href="#summary" title="Summary" class="md-nav__link">
Summary
</a>
</li>
<li class="md-nav__item">
<a href="#docker-compose" title="Docker Compose" class="md-nav__link">
Docker Compose
</a>
</li>
<li class="md-nav__item">
<a href="#troubleshooting" title="Troubleshooting" class="md-nav__link">
Troubleshooting
</a>
</li>
<li class="md-nav__item">
<a href="#updating-settings" title="Updating Settings" class="md-nav__link">
Updating Settings
</a>
</li>
<li class="md-nav__item">
<a href="#submodule" title="Submodule" class="md-nav__link">
Submodule
</a>
</li>
</ul>
</nav>
</div>
</div>
</div>
<div class="md-content">
<article class="md-content__inner md-typeset">
<h1 id="d-mediawiki">d-mediawiki<a class="headerlink" href="#d-mediawiki" title="Permanent link">&para;</a></h1>
<p>This is the MediaWiki docker container used to run
MediaWiki on <a href="https://charlesreid1.com/wiki">charlesreid1.com/wiki</a>.</p>
<p>This container also runs an Apache web server and
a PHP engine.</p>
<p><a href="https://pages.charlesreid1.com/d-mediawiki/">documentation: d-mediawiki container</a> (you are here)</p>
<p><a href="https://git.charlesreid1.com/docker/d-mediawiki">source code on git.charlesreid1.com: d-mediawiki</a></p>
<p><a href="https://github.com/charlesreid1-docker/d-mediawiki">source code on github.com: charlesreid1-docker/d-mediawiki</a></p>
<h2 id="quick-note-on-usage">Quick Note on Usage<a class="headerlink" href="#quick-note-on-usage" title="Permanent link">&para;</a></h2>
<p>You should not run this container by itself (see
<a href="https://git.charlesreid1.com/docker/pod-charlesreid1.git">pod-charlesreid1</a>). </p>
<h2 id="summary">Summary<a class="headerlink" href="#summary" title="Permanent link">&para;</a></h2>
<p>This directory contains a Dockerfile that modifies the
official MediaWiki docker container. Before launching
the container, it specifies <code>/var/www/html</code> as a mounted volume,
and it copies <code>LocalSettings.php</code>, the MediaWiki config file,
from this repo into the container.</p>
<p>See <a href="https://charlesreid1.com:3000/docker/d-mysql">d-mysql repo</a>.</p>
<p>Also see <a href="https://git.charlesreid1.com/docker/pod-charlesreid1.git">pod-charlesreid1</a>
for a working pod using this container.</p>
<h2 id="docker-compose">Docker Compose<a class="headerlink" href="#docker-compose" title="Permanent link">&para;</a></h2>
<p>To use this container as part of a pod, as with the charlesreid1.com wiki,
see <a href="https://git.charlesreid1.com/docker/pod-charlesreid1-wiki">pod-charlesreid1-wiki</a>.</p>
<h2 id="troubleshooting">Troubleshooting<a class="headerlink" href="#troubleshooting" title="Permanent link">&para;</a></h2>
<p>If you are seeing 404s on every page you try, it may be because
your MediaWiki config file is set to redirect you to <code>/wiki/Main_Page</code>
but your web server is not set up to handle it.</p>
<p>See <a href="https://www.mediawiki.org/wiki/Manual:Short_URL">this lin</a>
and the guide for <a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Short_URL/Apache">apache</a>
and <a href="https://www.mediawiki.org/wiki/Special:MyLanguage/Manual:Short_URL/Nginx">nginx</a>.</p>
<h2 id="updating-settings">Updating Settings<a class="headerlink" href="#updating-settings" title="Permanent link">&para;</a></h2>
<p>The LocalSettings.php file must be copied into the
container, because we will end up bind-mounting the
entire MediaWiki directory when the container is run
and we can't bind-mount a file inside a bind-mounted
directory.</p>
<p>Thus, to update LocalSettings.php, skins, or extensions,
you will need to re-make the Docker container.
Use the make rules to remake the Docker container:</p>
<div class="codehilite"><pre><span></span>make clean
make build
make run
</pre></div>
<h2 id="submodule">Submodule<a class="headerlink" href="#submodule" title="Permanent link">&para;</a></h2>
<p>The submodule <code>charlesreid1-config/</code>
contains configuration files for both
MediaWiki and Apache.</p>
<p>See the <a href="https://git.charlesreid1.com/wiki/charlesreid1-config">wiki/charlesreid1-config</a>
repo for details.</p>
<p>To clone the submodule when you clone the repo,
include the <code>--recursive</code> flag:</p>
<div class="codehilite"><pre><span></span>git clone --recursive https://git.charlesreid1.com/docker/d-mediawiki.git
</pre></div>
<p>To check out the submodule after a shallow clone:</p>
<div class="codehilite"><pre><span></span>git submodule init
# or
git submodule update --init
</pre></div>
<p>To fetch changes to the submodule from the submodule's remote:</p>
<div class="codehilite"><pre><span></span>git submodule update --remote
</pre></div>
</article>
</div>
</div>
</main>
<footer class="md-footer">
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
<div class="md-footer-copyright__highlight">
Copyright &copy; 2018 <a href="https://charlesreid1.com">Charles Reid</a>, released under the <a href="https://opensource.org/licenses/MIT">MIT license</a>
</div>
powered by
<a href="https://www.mkdocs.org">MkDocs</a>
and
<a href="https://squidfunk.github.io/mkdocs-material/">
Material for MkDocs</a>
</div>
</div>
</div>
</footer>
</div>
<script src="assets/javascripts/application.e72fd936.js"></script>
<script>app.initialize({version:"1.0",url:{base:"."}})</script>
<script src="search/main.js"></script>
</body>
</html>

4
make_mw_volume.sh

@ -1,4 +0,0 @@ @@ -1,4 +0,0 @@
#!/bin/bash
docker container prune -f
docker volume create stormy_mw_data

1
mkdocs-material

@ -1 +0,0 @@ @@ -1 +0,0 @@
Subproject commit b0c6890853aa9138baf5f9749862b927518ab656

36
mkdocs.yml

@ -1,36 +0,0 @@ @@ -1,36 +0,0 @@
site_name: d-mediawiki
site_url: https://pages.charlesreid1.com/d-mediawiki
repo_name: d-mediawiki
repo_url: https://git.charlesreid1.com/docker/d-mediawiki
edit_uri: ""
copyright: 'Copyright &copy; 2018 <a href="https://charlesreid1.com">Charles Reid</a>, released under the <a href="https://opensource.org/licenses/MIT">MIT license</a>'
docs_dir: docs
site_dir: site
extra_css:
- css/custom.css
theme:
name: null
custom_dir: 'mkdocs-material/material'
palette:
primary: 'light green'
accent: 'light green'
logo:
icon: 'input'
font:
text: 'Roboto'
code: 'Roboto Mono'
nav:
- 'Home': 'index.md'
# Extensions
markdown_extensions:
- admonition
- codehilite:
guess_lang: false
- toc:
permalink: true
strict: true

2986
search/lunr.js

File diff suppressed because it is too large Load Diff

94
search/main.js

@ -0,0 +1,94 @@ @@ -0,0 +1,94 @@
function getSearchTermFromLocation() {
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == 'q') {
return decodeURIComponent(sParameterName[1].replace(/\+/g, '%20'));
}
}
}
function formatResult (location, title, summary) {
return '<article><h3><a href="' + base_url + '/' + location + '">'+ title + '</a></h3><p>' + summary +'</p></article>';
}
function displayResults (results) {
var search_results = document.getElementById("mkdocs-search-results");
while (search_results.firstChild) {
search_results.removeChild(search_results.firstChild);
}
if (results.length > 0){
for (var i=0; i < results.length; i++){
var result = results[i];
var html = formatResult(result.location, result.title, result.summary);
search_results.insertAdjacentHTML('beforeend', html);
}
} else {
search_results.insertAdjacentHTML('beforeend', "<p>No results found</p>");
}
}
function doSearch () {
var query = document.getElementById('mkdocs-search-query').value;
if (query.length > 2) {
console.log('Searching with query: ' + query);
if (!window.Worker) {
displayResults(search(query));
} else {
searchWorker.postMessage({query: query});
}
} else {
// Clear results for short queries
displayResults([]);
}
}
function initSearch () {
var search_input = document.getElementById('mkdocs-search-query');
if (search_input) {
search_input.addEventListener("keyup", doSearch);
}
var term = getSearchTermFromLocation();
if (term) {
search_input.value = term;
doSearch();
}
}
function onWorkerMessage (e) {
if (e.data.results) {
var results = e.data.results;
displayResults(results);
}
}
if (!window.Worker) {
console.log('Web Worker API not supported');
// load index in main thread
$.getScript(base_url + "/search/worker.js").done(function () {
console.log('Loaded worker');
init();
}).fail(function (jqxhr, settings, exception) {
console.error('Could not load worker.js');
});
} else {
// Wrap search in a web worker
var searchWorker = new Worker(base_url + "/search/worker.js");
searchWorker.postMessage({init: true});
searchWorker.onmessage = onWorkerMessage;
}
$(function() {
var search_input = document.getElementById('mkdocs-search-query');
if (search_input) {
search_input.addEventListener("keyup", doSearch);
}
var term = getSearchTermFromLocation();
if (term) {
search_input.value = term;
doSearch();
}
});

1
search/search_index.json

@ -0,0 +1 @@ @@ -0,0 +1 @@
{"config":{"lang":["en"],"prebuild_index":false,"separator":"[\\s\\-]+"},"docs":[{"location":"","text":"d-mediawiki \u00b6 This is the MediaWiki docker container used to run MediaWiki on charlesreid1.com/wiki . This container also runs an Apache web server and a PHP engine. documentation: d-mediawiki container (you are here) source code on git.charlesreid1.com: d-mediawiki source code on github.com: charlesreid1-docker/d-mediawiki Quick Note on Usage \u00b6 You should not run this container by itself (see pod-charlesreid1 ). Summary \u00b6 This directory contains a Dockerfile that modifies the official MediaWiki docker container. Before launching the container, it specifies /var/www/html as a mounted volume, and it copies LocalSettings.php , the MediaWiki config file, from this repo into the container. See d-mysql repo . Also see pod-charlesreid1 for a working pod using this container. Docker Compose \u00b6 To use this container as part of a pod, as with the charlesreid1.com wiki, see pod-charlesreid1-wiki . Troubleshooting \u00b6 If you are seeing 404s on every page you try, it may be because your MediaWiki config file is set to redirect you to /wiki/Main_Page but your web server is not set up to handle it. See this lin and the guide for apache and nginx . Updating Settings \u00b6 The LocalSettings.php file must be copied into the container, because we will end up bind-mounting the entire MediaWiki directory when the container is run and we can't bind-mount a file inside a bind-mounted directory. Thus, to update LocalSettings.php, skins, or extensions, you will need to re-make the Docker container. Use the make rules to remake the Docker container: make clean make build make run Submodule \u00b6 The submodule charlesreid1-config/ contains configuration files for both MediaWiki and Apache. See the wiki/charlesreid1-config repo for details. To clone the submodule when you clone the repo, include the --recursive flag: git clone --recursive https://git.charlesreid1.com/docker/d-mediawiki.git To check out the submodule after a shallow clone: git submodule init # or git submodule update --init To fetch changes to the submodule from the submodule's remote: git submodule update --remote","title":"Home"},{"location":"#d-mediawiki","text":"This is the MediaWiki docker container used to run MediaWiki on charlesreid1.com/wiki . This container also runs an Apache web server and a PHP engine. documentation: d-mediawiki container (you are here) source code on git.charlesreid1.com: d-mediawiki source code on github.com: charlesreid1-docker/d-mediawiki","title":"d-mediawiki"},{"location":"#quick-note-on-usage","text":"You should not run this container by itself (see pod-charlesreid1 ).","title":"Quick Note on Usage"},{"location":"#summary","text":"This directory contains a Dockerfile that modifies the official MediaWiki docker container. Before launching the container, it specifies /var/www/html as a mounted volume, and it copies LocalSettings.php , the MediaWiki config file, from this repo into the container. See d-mysql repo . Also see pod-charlesreid1 for a working pod using this container.","title":"Summary"},{"location":"#docker-compose","text":"To use this container as part of a pod, as with the charlesreid1.com wiki, see pod-charlesreid1-wiki .","title":"Docker Compose"},{"location":"#troubleshooting","text":"If you are seeing 404s on every page you try, it may be because your MediaWiki config file is set to redirect you to /wiki/Main_Page but your web server is not set up to handle it. See this lin and the guide for apache and nginx .","title":"Troubleshooting"},{"location":"#updating-settings","text":"The LocalSettings.php file must be copied into the container, because we will end up bind-mounting the entire MediaWiki directory when the container is run and we can't bind-mount a file inside a bind-mounted directory. Thus, to update LocalSettings.php, skins, or extensions, you will need to re-make the Docker container. Use the make rules to remake the Docker container: make clean make build make run","title":"Updating Settings"},{"location":"#submodule","text":"The submodule charlesreid1-config/ contains configuration files for both MediaWiki and Apache. See the wiki/charlesreid1-config repo for details. To clone the submodule when you clone the repo, include the --recursive flag: git clone --recursive https://git.charlesreid1.com/docker/d-mediawiki.git To check out the submodule after a shallow clone: git submodule init # or git submodule update --init To fetch changes to the submodule from the submodule's remote: git submodule update --remote","title":"Submodule"}]}

127
search/worker.js

@ -0,0 +1,127 @@ @@ -0,0 +1,127 @@
var base_path = 'function' === typeof importScripts ? '.' : '/search/';
var allowSearch = false;
var index;
var documents = {};
var lang = ['en'];
var data;
function getScript(script, callback) {
console.log('Loading script: ' + script);
$.getScript(base_path + script).done(function () {
callback();
}).fail(function (jqxhr, settings, exception) {
console.log('Error: ' + exception);
});
}
function getScriptsInOrder(scripts, callback) {
if (scripts.length === 0) {
callback();
return;
}
getScript(scripts[0], function() {
getScriptsInOrder(scripts.slice(1), callback);
});
}
function loadScripts(urls, callback) {
if( 'function' === typeof importScripts ) {
importScripts.apply(null, urls);
callback();
} else {
getScriptsInOrder(urls, callback);
}
}
function onJSONLoaded () {
data = JSON.parse(this.responseText);
var scriptsToLoad = ['lunr.js'];
if (data.config && data.config.lang && data.config.lang.length) {
lang = data.config.lang;
}
if (lang.length > 1 || lang[0] !== "en") {
scriptsToLoad.push('lunr.stemmer.support.js');
if (lang.length > 1) {
scriptsToLoad.push('lunr.multi.js');
}
for (var i=0; i < lang.length; i++) {
if (lang[i] != 'en') {
scriptsToLoad.push(['lunr', lang[i], 'js'].join('.'));
}
}
}
loadScripts(scriptsToLoad, onScriptsLoaded);
}
function onScriptsLoaded () {
console.log('All search scripts loaded, building Lunr index...');
if (data.config && data.config.separator && data.config.separator.length) {
lunr.tokenizer.separator = new RegExp(data.config.separator);
}
if (data.index) {
index = lunr.Index.load(data.index);
data.docs.forEach(function (doc) {
documents[doc.location] = doc;
});
console.log('Lunr pre-built index loaded, search ready');
} else {
index = lunr(function () {
if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) {
this.use(lunr[lang[0]]);
} else if (lang.length > 1) {
this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility
}
this.field('title');
this.field('text');
this.ref('location');
for (var i=0; i < data.docs.length; i++) {
var doc = data.docs[i];
this.add(doc);
documents[doc.location] = doc;
}
});
console.log('Lunr index built, search ready');
}
allowSearch = true;
}
function init () {
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", onJSONLoaded);
var index_path = base_path + '/search_index.json';
if( 'function' === typeof importScripts ){
index_path = 'search_index.json';
}
oReq.open("GET", index_path);
oReq.send();
}
function search (query) {
if (!allowSearch) {
console.error('Assets for search still loading');
return;
}
var resultDocuments = [];
var results = index.search(query);
for (var i=0; i < results.length; i++){
var result = results[i];
doc = documents[result.ref];
doc.summary = doc.text.substring(0, 200);
resultDocuments.push(doc);
}
return resultDocuments;
}
if( 'function' === typeof importScripts ) {
onmessage = function (e) {
if (e.data.init) {
init();
} else if (e.data.query) {
postMessage({ results: search(e.data.query) });
} else {
console.error("Worker - Unrecognized message: " + e);
}
};
}

8
sitemap.xml

@ -0,0 +1,8 @@ @@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>https://pages.charlesreid1.com/d-mediawiki/</loc>
<lastmod>2018-08-11</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

BIN
sitemap.xml.gz

Binary file not shown.
Loading…
Cancel
Save