$this->client = new IXR_Client($this->profiles[$this->profno]['server']); $this->client->timeout = 60;
By default, dokuwiki uses only one template to render all the code highlighting. This is pretty restrictive given that GeSHi has language-specific highlighting. The guide on the dokuwiki page will show you how to create a CSS and load that up in order to get proper syntax highlighting in dokuwiki.
Add checked="yes"
to admin.php
for batchedit
to tick all the boxes matching the regex and replacement. Meant for the batchedit plugin.
$this->_ptln('<input type="checkbox" id="' . $id . '" name="apply[' . $id . ']" value="on" checked="yes"/>');
The patch removes going through dvips
and uses ImageMagick directly to convert dvi
to png
for the latex plugin.
--- latex-original/class.latexrender.php 2011-04-29 10:53:02.000000000 +0300 +++ latex/class.latexrender.php 2013-03-09 21:51:06.000000000 +0200 @@ -51,16 +51,7 @@ var $_font_size = 10; var $_latexclass = "article"; //install extarticle class if you wish to have smaller font sizes var $_tmp_filename; - // this most certainly needs to be extended. in the long term it is planned to use - // a positive list for more security. this is hopefully enough for now. i'd be glad - // to receive more bad tags ! - var $_latex_tags_blacklist = array( - "include","def","command","loop","repeat","open","toks","output","input", - "catcode","name","^^", - "\\every","\\errhelp","\\errorstopmode","\\scrollmode","\\nonstopmode","\\batchmode", - "\\read","\\write","csname","\\newhelp","\\uppercase", "\\lowercase","\\relax","\\aftergroup", - "\\afterassignment","\\expandafter","\\noexpand","\\special" - ); + var $_latex_tags_blacklist = array(); var $_errorcode = 0; var $_errorextra = ""; var $_filename; @@ -240,18 +231,13 @@ return false; } - // convert dvi file to postscript using dvips - $command = $this->_dvips_path." -E ".$this->_tmp_filename.".dvi"." -o ".$this->_tmp_filename.".ps"; - $this->myexec($command,$status_dvips); - - // imagemagick convert ps to image and trim picture - $command = $this->_convert_path." ".$this->_tmp_filename.".ps ". + $command = $this->_convert_path." ".$this->_tmp_filename.".dvi ". $this->_tmp_filename.".".$this->_image_format; $this->myexec($command,$status_convert); - if ($status_dvips || $status_convert) { + if ($status_convert) { if( ! $this->_keep_tmp) $this->cleanTemporaryDirectory(); chdir($current_dir);
In inc/geshi.php
or, on more recent Dokuwiki versions vendor/easybook/geshi/geshi.php
, change:
var $keyword_links = true;
to:
var $keyword_links = false;
Dokuwiki by default places the form before the preview text. This seems a little inconvenient because you are meant to pay attention at what you have written at the bottom of the page, such the having the preview window with the last lines of text at the bottom instead of on top (before your eyes) is not helpful. The following patch:
--- template.php.old 2013-05-10 12:45:54.000000000 +0000 +++ template.php 2013-09-03 04:27:11.000000000 +0000 @@ -108,8 +108,8 @@ html_edit(); break; case 'preview': - html_edit(); html_show($TEXT); + html_edit(); break; case 'draft': html_draft();
reverses that behavior, by editing inc/template.php
and placing the preview text above the edit box.
The following PHP script reads a dokuwiki file (such as the ones under data/pages
) and then splits the file into multiple smaller files by the title of the top-level title. The script only supports pages that contain top-level titles (in dokuwiki syntax, those pre-postfixed with six equal signs).
<?php ########################################################################### ## Copyright (C) Wizardry and Steamworks 2015 - License: GNU GPLv3 ## ########################################################################### ## This scans a dokuwiki page file and branches out all the top-level ## ## sections into multiple files named after the title and normalized. ## ########################################################################### ########################################################################### ## CONFIGURATION ## ########################################################################### # The dokuwiki file to scan. $scan = 'Workbook2.txt'; # In which directory to save the pages. $directory = 'drinks'; ########################################################################### ## INTERNALS ## ########################################################################### if(($handle = fopen($scan, "r")) === FALSE) die; # The normalization routines for Dokuwiki. $pattern[0] = '/[\s\(\)]+?/'; $replace[0] = '_'; $pattern[1] = '/[\?#"\'\.]+?/'; $replace[1] = ''; # For every line in the dokuwiki document... $fileName = ''; $title = ''; while (($line = fgets($handle)) !== false) { # Check that we have a top-level section switch(preg_match('/^====== (.+?) ======/', $line, $matches)) { case TRUE: # if we do have a top-level section, normalize the title to a file-name... $title = $matches[1]; $fileName = strtolower( preg_replace( '/__+?/', '_', preg_replace( $pattern, $replace, $matches[1] ) ).'.txt' ); # and create the file. if(touch($directory.'/'.$fileName) == false) { $fileName = ''; $title = ''; break; } break; default: # if the file could not be created, skip if($fileName == '') break; # similarly, if the created file could not be opened in append mode then skip if(($df = fopen($directory.'/'.$fileName, "a")) === FALSE) break; switch($title) { case '': # if the title has been written, skip break; default: # write the title otherwise fwrite($df, '====== '.$title.' ======'.PHP_EOL); $title = ''; break; } # and write the lines to the file if(fwrite($df, $line) === FALSE) echo 'Error writing: '.$fileName.PHP_EOL; # close the temporary file fclose($df); break; } } # close the dokuwiki document fclose($handle); ?>
If you use Tikz with the Dokuwiki LaTeX plugin you may notice that it will generate very small images. This is due to the line:
$command = $this->_dvips_path." -E ".$this->_tmp_filename.".dvi"." -o ".$this->_tmp_filename.".ps";
in class.latexrender.php
that tells dvips
to attempt to generate an EPSF PostScript file from the DVI by drawing a tight bounding box around the text whilst ignoring graphics - and this is explicitly something that we do not want.
To remedy the situation, edit class.latexrender.php
and change the former line to:
$command = $this->_dvips_path." ".$this->_tmp_filename.".dvi"." -o ".$this->_tmp_filename.".ps";
Change directory from the Dokuwiki root to lib/plugins/
and execute the following commands:
find . -type f -exec perl -p -i -e 's/&$handler/Doku_Handler $handler/g' '{}' \;
and:
find . -type f -exec perl -p -i -e 's/&$renderer/Doku_Renderer $renderer/g' '{}' \;
In case of a lost password, add the following line to conf/users.auth.php
:
admin:$1$4fd0ad31$.cId7p1uxI4a.RcrH81On0:DokuWiki Administrator:mail@host.com:admin,user
and then login using the username admin
and the password admin
.