This is an old revision of the document!
Table of Contents
Dokuwiki
This document is written in dokuwiki.
The markup syntax is described here: https://www.dokuwiki.org/wiki:syntax
Images
Embedded images.
- title after vertical bar
- Use white space to specify alignment: left, right, center.
- size as cgi parameter (after question mark)
- non-supported format as cgi parameter
{{ straight_line.png|Straight Line}}
{{straight_line.png|Straight Line }}
{{ straight_line.png|Straight Line }}
{{straight_line.png?300}}
{{straight_line.png?300x100}}
{{straight_line.svg?300&.png}}
Video
We embed local video files uploaded to the media folder.
- Append ?540 to the filename to set the width.
- Beneath the embedded video, add an external link to the original source.
{{:elon_musk_mechanics.mp4?540 | Elon Musk on Mechanics}}
Video source: Joe Rogan podcast #1609, 12 Feb 2021
[[https://spotify.com?204230984 | on Spotify]]
Note:
- Use OBS to capture the video (mkv)
- Use Blender to crop (mp4)
- Use https://www.videosmaller.com/ to optimize the filesize (mp4)
Also note:
- We tried to use Handbrake to optimize, but they output the (m4v) format and dokuwiki will not accept that.
- We also tried to embed YouTube videos. They do a great job of optimizing the download, but they insert distracting and irrelevant recommendations and other junk.
Math Equations
For math equations, we use the MathJax extension.
$$ \frac{\Delta f(x)}{\Delta x} = \frac{f(x+h)-f(x)}{(x+h)-(x)} = \frac{f(x+h)-f(x)}{h}$$
Text
For upright text, use \text{hello} instead of \textup{hello}.
Alignment
Align multiple equations like this:
\begin{align}
x &= 3 & 10 &abc def\\
xyz &= a_2 b_3 & 1000 &xy\\
12 &= 8y^4 && explain\\
y &= a_1 b_1 && this\\
\end{align}
\begin{align} x &= 3 & 10 &abc def\\ xyz &= a_2 b_3 & 1000 &xy\\ 12 &= 8y^4 && explain\\ y &= a_1 b_1 && this\\ \end{align}
The ampersands split the section into columns.
The columns alternate between right and left alignment.
Two adjacent ampersands skips a column.
Symbols
\begin{align} x=1 &\iff y = 72 && \text{\iff} \\ x=2 &\therefore y = 43.2 && \text{\therefore} \\ x=3 &\rightarrow y = 25.92 && \text{\rightarrow} \\ x=4 &\Rightarrow y = 15.552 && \text{\Rightarrow} \\ x &= 30^\circ && \text{^\circ} \\ \end{align}
Edit math equations online here:
https://www.codecogs.com/latex/eqneditor.php
Reference list of math symbols:
https://oeis.org/wiki/List_of_LaTeX_mathematical_symbols#Set_and.2For_logic_notation
UML Drawings
Chemical Figures
\chemfig not supported
Chemical Equations
For chemical formulas and equations we use the mhchem extension to the MathJax extension.
- Embed chemical notation in the \ce{} tag.
- Use the \require{mhchem} tag once on each page that uses \ce{}.
$$\require{mhchem}$$
$$\ce{H2O}$$
$$\ce{HCl (aq) + NaOH (aq) -> H2O (l) + NaCl (aq)}$$
$$\require{mhchem}$$ $$\ce{H2O}$$ $$\ce{HCl (aq) + NaOH (aq) -> H2O (l) + NaCl (aq)}$$
Edit chemical equations online here: http://visualmatheditor.equatheque.net/VisualMathEditor.html
Definition Lists
Made possible by plugin yalist, as used in ReStructered Text and Sphinx.
- Definition List (deflist)
- A list of terms and their definitions. Implemented with html dl, dt, and dd tags.
- yalist
- A plugin for dokuwiki that implements a definition list syntax
- ReStructured Text (ReST)
- A document format similar to Markdown, used in Python and Blender documentation.
- Sphinx
- A python software package that implements ReST.
? Definition List (deflist) : A list of terms and their definitions. Implemented with html dl, dt, and dd tags. ? yalist : A plugin for dokuwiki that implements a definition list syntax ? ReStructured Text (ReST) : A document format similar to Markdown, used in Python and Blender documentation. ? Sphinx : A python software package that implements ReST.
Note. After installing the yalist plugin for dokuwiki, we modified the style.css file in the lib/plugin/yal/ directory.
Namespace
We have these namespaces: Draft, UserGuide, Projects, Videos.
The first page in each namespace has the same name as the namespace and serves as the index page for that namespace. Example drafts:drafts.
Access Control List (ACL)
In Admin-ACL, set permissions to none for @user and @ALL for namespace “draft”.
403 Errors
The word “Un1on” cannot be used in a dokuwiki page.
Google Doc to dokuwiki
- download in markdown format
- convert markdown to dokuwiki - https://www.markdowntoolbox.com/tools/convert-to-dokuwiki/
- fixup in vim
- remove extra line endings in lists (see vim regexp below)
- no more that one $ per line, or it triggers an equation
- look for html entities like &
- paste into wiki
%s/\\\\\n\n\( \+\)\*/\r\1\*/
Upgrade dokuwiki
The content resides in the curriculum project.
The wiki software resides in the samwiki project.
See more detailed upgrade instructions in a txt file in the curriculum project.
Also, see the upgrade.log file in the samwiki project.
Why are samwiki upgrade instructions in the curriculum project?
In case the samwiki project gets deleted or needs to be recreated for whatever reason.
# git commit all changes in the curriculum project
Upgrade dokuwiki to the latest release in the samwiki project.
# backup the current installation (optional) tar zcpfv dokuwiki-backup.tar.gz dokuwiki # download and unzip the new release wget http://download.dokuwiki.org/src/dokuwiki/dokuwiki-2025-05-14b.tgz tar zxvf dokuwiki-2025-05-14b.tgz # cp the new release on top of the current installation # this will overwrite the executables, but does not affect the user data cp dokuwiki-2025-05-14b/* dokuwiki/
Reinstall dokuwiki
# The dokuwiki executable is installed in samwiki. # The pages, media, and conf files are stored in curriculum. # Therefore, # 1. the wiki data is version-controlled by the github curriculum project, and # 2. the dokuwiki executable can be reinstalled, without risking loss of data.
# how to install into a2hosting # 1. unzip dokuwiki into ~/webprod/samwiki cd ~/webprod/samwiki wget https://download.dokuwiki.org/src/dokuwiki/dokuwiki-stable.tgz tar -xzvf dokuwiki-stable.tgz mv dokuwiki-2022-07-31a/ dokuwiki
# 2. if necessary, upgrade PHP version at a2hosting CPanel "select PHP version"
# 3. run the dokuwiki install
http://curriculum.voyc.com/install.php
# Wiki Name: Curriculum
# Superuser: jhagstrand
# Real name: John Hagstrand
# E-Mail: john@hagstrand.com
# Password: know9
# once again: know9
# Initial ACL policy: Public Wiki
# Allow users to register themselves: no
# License: Public Domain
# 4. Point wiki pages, media, and conf files back to curriculum.
cd ~/webprod/samwiki/dokuwiki
ln -s ~/webprod/curriculum/curriculum/doc/dokuwiki/conf/userall.css conf/userall.css
ln -s ~/webprod/curriculum/curriculum/doc/dokuwiki/conf/entities.local.conf conf/entities.local.conf
mv data/pages data/pages-orginal
ln -s ~/webprod/curriculum/curriculum/doc/dokuwiki/data-pages data/pages
mv data/media data/media-orginal
ln -s ~/webprod/curriculum/curriculum/doc/dokuwiki/data-media data/media
# 5. Point curriculum to samwiki
cd ~/webprod/curriculum/curriculum
ln -s ~/webprod/samwiki/dokuwiki html
# 6. delete the install.php file
cd ~/webprod/samwiki/dokuwiki/
rm install.php
# 7. Install the mathjax plugin for equations.
cd ~/webprod/samwiki/dokuwiki/lib/plugins/
wget https://github.com/liffiton/dokuwiki-plugin-mathjax/archive/master.zip
# unzip and rename folders: lib/plugins/mathjax
unzip master.zip
mv dokuwiki-plugin-mathjax-master mathjax
#8. Install the yalist extension for definition lists.
# see https://www.dokuwiki.org/plugin:yalist
# Admin -> Extension Manager
# Search Extension: yalist
# yalist Plugin by Mark Prins :: Install
# after install, modify the style.css file as follows
vi ~/webprod/samwiki/dokuwiki/lib/plugins/style.css
# div.dokuwiki .dt {
# color: black; /* __text_alt__; */
# max-width: 50%; /* 30% */
# float: none; /* left; */
# div.dokuwiki dd {
# margin-bottom: 0.5em; /* (new) */
# 9. Test extensions on "curriculum - appendix - dokuwiki" page.
#10. Upload logo.png in Media Manager.
#11. In Administrator, ACL, set permissions on draft namespace.
# @ALL none
# @user none