Purple Tree 2
So this is PurpleTree2. It is heavily designed around a keyboard workflow. Basically, I just want to be able to create pages and type at will, with as little getting in the way.
Like the original WikiWikiWeb, to create a page, you just navigate to it and edit it. To edit, you must be authenticated. As a personal wiki, the security is no more complex than that: there are no users, indeed there is no login box in this page. And I'm not going to tell you how the authentication works.
Source Format
If you don't have edit rights, and want to see the raw source of a page,
append .ptmd
to the url, like this.
The source format is basically Markdown, with a preprocessor. The preprocessor turns WikiWord's into links with the same name. This is like the original WikiWikiWeb in that respect. Anything can be a link like this. Or if you want the text to differ from the target, like this, and this can be a relative path, or an absolute path like this, or a URL like this.
Fenced code blocks are used for various tasks:
This is a silly short poem about nothing more than going about writing a few words rather than playing with swords so that only the pencil is broken.
Editing Workflow
I made this short youtube video showing the keyboard workflow.
When editing, if unsaved, the border turns red, and the save icon likewise. To save, either click the disk icon, or press Ctrl-S.
Key Combos
For key combos, a scheme I use is A-C-M-S-x (for Alt-Control-Meta-Shift-x), which puts modifiers in a canonical alphabetical order, and the actual key in lowercase, so e.g. A-S-s is Alt-S or Alt-Shift-s. Pressing C-h gives a keystroke list: This scheme is also used in the Javascript when binding.
Press C-h for a list of most shortcuts.
Source Code
A public release of the source code is here on github.
I use Ionos as a host, and things are heavily designed around what
that (shared) hosting provides. It also runs on a LAMP stack under kubuntu. Essentially you clone
the git repo, then point the web server to the root
subfolder. Out of the box, it forces https,
using .htaccess
so you'll need to remove those two lines if running on a LAN without https.
There are some convenience scripts in bin
, including setup
which does basic setup. On a local
Linux box, you need to ensure that the web server has write access to the files
, versions
,
and data
folders. I chgrp
them to www-data
and give group write permissions.