About
About pt2.allsup.co
This site has two purposes. One is a testbed for the in-development Purple Tree 2 wiki. This wiki is written in PHP, uses Parsedown to turn Markdown to HTML, inside a wrapper I call PTMD which adds WikiWord support and a few other things; and highlight.js for syntax highlighting, abcjs . for format sheet music, and MathJax to format simple maths. (Complicated maths tends to get messed up in the parser, so for more involved stuff, use \(\LaTeX\) to generate a .pdf and upload and link to that.)
The Purple Tree 1 wiki is also written using these same libraries, but is limited to a single-level of pages, rather than a hierarchical arrangement as with pt2. This in turn grew out of a simple tutorial I wrote for youtube on how to write a wiki in 100 lines of PHP and the accompanying website which in turn came from my first foray into wikis using, as a starting point, a small (<300 lines) wiki called WabiSabi. That wiki appears no longer to be online. In any case, all of pt1 and pt2, save for the dependencies like Parsedown and Highlightjs, was written by me. In addition, I am the primary customer of myself, adopting the philosophy of eating my own dogfood.
Part of the purpose is pedagogical: I am writing it as both motivation to learn, and as a tool to use in that journey of learning. At some point I will write
It's main long-term purpose is to act as a public, personal notebook and knowledgebase. As and when I learn something, I intend to document it here. That is primarily coding and software development, but may extend to other topics later on. Generally having everything noted here saves me from having to google around disparate websites, summarise, parse through heavily-add-laden-bloated-slow-and-damned-near-unusable sites that one typically finds these days.
Searching facilities are simple. There are a pair
of Python scripts that run about once an hour.
One updates an index mapping words and tags to
pages containing them; and the other updates
an index of filenames and their modification time,
so that .recent
works. Importantly there is no database or, alternatively, the database is the filesystem and the filesystem is the database. I want a hierarchical organisation to the content, so that e.g. if I go to /lang/python
, I get a directory of files, pages and subdirectories there (unless there is a home
page present). Without a home
page, pt2 looks for an .about
page and, if present, prepends that to a directory. Alternatively, you can use 'magic links' like e.g. [[dir:pages]]
to insert a directory.
The source for where this was at when I started using it is at this github under the GPL3 license. At some point, when I'm happy to do so, I will put the current source, also under the GPL3, on github.
Generally I wrote it to be very hackable for my needs. See pt2/hacking.
Directory
Pages
Help WikiWord qq test123 testscr
Subdirectories
ai apache arduino aw bible chr crypto db debug dev devtools editor emoji fonts free-to-use general-coding gnu graphics gui health hedgehog humour imgs lang learning learning-philosophy linux mac macos mail math mathjax media misc music net network office os pc php poem private pt2 puzzle quotes sandbox science scipy security shell snippets spirit swdev synth test web webdev webhost windows
Files
boing.js icon.png pt2_bg1.jpg seamless_snow_001.jpg seamless_snow_001_dk.jpg water_texture_512.jpg water_texture_512_dk.jpg