WyPyPlus (pronounced "whippy plus") is a minimalist wiki server in 23 lines of code. It is an extension of wypy wiki written by Sean B. Palmer. The original project implements a wiki in just 11 lines of Python code, which is an amazing achievement. However, wypy wiki doesn't have many features I consider as essential.
WyPyPlus is the result of a deep meditation and soul searching process to find out what I really need for a personal note-taking software.
I tried many wiki software in the last decade including MoinMoin wiki, DokuWiki, TiddlyWiki, ZIM, and many more.
I want to keep control of my personal data so cloud hosting is not an option. When I ask for a wiki, I usually got a front-end to config, a database to back up, a Linux server to maintain and secure. The more features it has, the higher maintenance cost I need to pay. Things add up pretty quickly.
It is just slightly better than a Windows notepad or a typewriter. Wiki pages are just text files. If you don't want WyPyPlus, you can easily move to somewhere else.
Download WyPyPlus and extract it to a folder (E.g wypy_wiki). This folder should already contain a cgi-bin directory and a "w" directory. Your file will save into the "w" directory.
cd wypy_wiki python -m CGIHTTPServer 8000 # if you only have python 2 python3 -m http.server --bind localhost --cgi 8000 # if you have python 3 Open this url in your browser http://127.0.0.1:8000/cgi-bin/wypyplus ``' Since the wypyplus file is just a cgi script, you can use any web server to host it. The UI should be fairly self-explanatory. * Click the ? mark after a CamelCased word to create a new page. * Click the Submit button to save a page. If you save an empty page, WyPyPlus will delete it from disk. # Design Tradeoffs * To keep things minimum, WyPyPlus doesn't support a large range of markdown syntaxes. Keep in mind that it doesn't depend on any markdown parser. * WyPyPlus doesn't use any config file. You can't mis-config it. If you really need something, just edit the source code. * Don't refresh the page before submitting your change. # Source Code The original wypy code is highly compressed. However, variable names are carefully picked so that the code is still somewhat readable. If you read it through, it is not that hard to change. For example, if you don't like the CSS, just remove <head><link rel='stylesheet' href='https://unpkg.com/sakura.css/css/sakura.css' type='text/css'></head> to whatever you like. To support new syntax, you can add a tuple of (regex_pattern, replace_pattern). The following example extracts content after ## and replace it with <h2>content</h2>.
('^## (.*)$', '