Differences

This shows you the differences between two versions of the page.

Link to this comparison view

dokuwiki [2019/03/31 14:49]
dokuwiki [2020/09/23 04:09] (current)
Line 1: Line 1:
 +====== DokuWiki ======
 +
 +I use [[https://www.dokuwiki.org/|DokuWiki]] to build this website.  It is
 +running on one awesome droplet. It is served by Apache2. The domain name
 +paulsammut.com points to it and a virtual host on port 80 picks up the traffic.
 +
 +==== Change Log ====
 +
 +The following are modifications I have done to it.
 +
 +  * Changed theme to Boostrap3
 +  * Removed the footer by deleting everything inside ''%%dokuwiki/lib/tpl/dokuwiki/tpl_footer.php%%''
 +  * Added a google analytics plugin
 +  * Added a mathjax plugin
 +  * Added a discussion plugin for comments
 +
 +===== Vim Editing =====
 +
 +I tried a couple of vim plugins that allow you to log into the DokuWiki server
 +and serve up pages to vim for editing, but they were dependant on an old package
 +of dokuwikixmlrpc which I could not get to install. I tried for a day to update
 +the package to allow the install but I was sure to keep running into problems.
 +
 +I use the ''%%nblock/vim-dokuwiki%%'' syntax highlighting plugin. To activate I have to
 +run this command:
 +
 +<code vim>
 +:set ft=dokuwiki
 +</code>
 +
 +I added a function in my ''%%.vimrc%%'' that checks if the file is a DokuWiki file and
 +sets this syntax automatically. It does this with two checks:
 +  * File extension is ''%%*.txt%%''
 +  * First line contains ''%%=====%%'' which is DokuWiki syntax for main heading
 +
 +It then sends keys to unfold the doc, as the doc opens fully folded by default.
 +
 +<code vim>
 +" For DokuWiki txt files.
 +au BufRead *.txt call s:checkSyntaxDokuWiki()
 +
 +" Check if first line contains heading
 +fun! s:checkSyntaxDokuWiki()
 +    if getline(1) =~ "======"
 +        set ft=dokuwiki
 +        normal zR
 +    endif
 +endfunction
 +</code>
 +
 +===== Namespaces =====
 +So I spent over an hour redoing the site to have a hierarchy system of namespaces.
 +After I set it up, I realized I didn't want it. It adds unnecessary complication
 +to the page and here are the reasons I reverted back to pre-namespace.
 +  * Forcing me to have start pages for every parent node in the hierarchy
 +  * Complicates the links by now adding their trace
 +  * Forces me to write duplicate code with links
 +  * Adds hours of reshuffling for no appreciable gain
 +  * The DokuWiki site doesn't use namespaces for its content
 +
 +===== Plugins =====
 +
 +I use various plugins to get the functionality I wanted.
 +
 +==== Discussion Plugin ====
 +
 +I use the [[https://www.dokuwiki.org/plugin:discussion|DokuWiki Discussion
 +Plugin]] to add comments. I tried using the ''%%plugin┬╗discussion┬╗automatic
 +%%'' setting and turning off discussion where I didn't want it, but this did not
 +work.  So I had to add the string ''%%%%'' at the end of every
 +%page using this commnad:
 +
 +<code bash>
 +printf "\n" | tee -a *.txt
 +</code>
 +
 +==== Analytics Plugin ====
 +
 +I set up Google Analytics using the
 +[[https://www.dokuwiki.org/plugin:googleanalytics|Google Analytics DokuWiki
 +plugin]] [[https://www.dokuwiki.org/plugin:googleanalytics|link]]. I just had to
 +enter the tracking ID into the plugin configuration.
 +
 +===== Syntanx Highlighting =====
 +
 +I have tried all kinds of code blocks and settled on using the default one with
 +line numbers. 
 +
 +I use this for pseudo code. There isn't actually a pseudo code coloring syntax
 +but i type it in there because if you don't have a syntax option the line
 +numbers don't show up:
 +
 +<code>
 +<code cpp [enable_line_numbers="true"]>
 +<code pseudo [enable_line_numbers="true"]>
 +</code>
 +
 +===== Mac Vim Editing =====
 +
 +I use ssfs to mount the droplet dokuwiki directory and edit the files directly
 +on the server. I could use unison to do it but whatever.
 +
 +I sometimes run into issues with read only files and file owner corruption with
 +mac's version of sshfs. I set the user to paul and group to www-data on the
 +droplet.
 +
 +''sudo chown -R paul:www-data /var/www/dokuwiki/''
 +
 +''sudo chmod g+w /var/www/dokuwiki/data/pages/''