A month ago or so, someone spammed my Wiki with asian links. This overwrote all my data because PhikiWiki doesn't have a backup-mechanism or a versioning system. Since i had a backup of the webserver, i could restore the Wiki. But i didn't want to restore manually the backup via FTP each time someone overwrites my Data.

So i built a versioning system based on rcs. I've searched the write and read functions in the code and added just an co before the read function and a ci before the write function.

Now each time someone changes a document, it's stored as a new version of the document. The different versions are made accesible by the r= GET-parameter (example: version 1.38 and 1.50 of FrontPage).
If now someone fills my Wiki with spam, i can just load the last good version and store it as the new version. No need to replay a backup via FTP.

The syntax of PhikiWiki doesn't have enough features for my needs, so i decided to use Markdown instead. I just removed all the formatting stuff of phiki and added a simple Markdown($txt); call.

blog comments powered by Disqus