The original sit was done using MoinMoin, which was written in Python2, making nearly impossible to install on modern Linux distributions, so I’ve had to convert it to Hugo.
I find https://tiddlywiki.com/ to be the best way to keep notes. It is just becomes one html file that contains everything, has very good search and programming capabilities and runs in every platform (js on the browser). Your data/notes and program are the same file! (like often happens in prolog).
You can also run it as a server on node.js, but I find putting the html file on a web server easier and gives me everything I need.
You edit notes and program directly in the browser, and adding a note (a “tiddler”) is as easy as clicking the + sign and typing away. The note can contain code and data.
I have used it for many years now to keep notes about everything and now find it invaluable. Most of all, I know my notes will be accessible years from now, without any dependencies on any external software with the exception of the browser, and even that is not needed since you can export tiddlers to text.
It has support for latex math, code highlighting and you can even add your own javascript modules if you want; although most ‘programming’ tasks to programmatically deal with tiddlers are done in its own easy wiki language as Joe Armstrong shows above.
The choice of open source wikis is overwhelming. As far I understand the TiddlyWiki vs MoinMoin debate, TiddlyWiki is pitched as a “personal note keeping” wiki, whereas MoinMoin aims to be a “wider community” editing system. It has an impressive list of open source project developers using it: Apache, Debian, Ubuntu…
I’ve been using MoinMoin for the past few years as my personal note keeping wiki, so TiddlyWiki probably would have been a better choice for that. An area where MoinMoin shows its age is syntax highlighting (as in none), and I’ve gravitated to Hugo as my favourite content management system these days. But a Hugo site would involve people emailing documents to be processed, which defeats the wiki idea.
I still have not been able after all this time to get my Unifications images to line up with my code examples on this page. The problem is that these sites allow for a limited set of HTML for security reasons and I find that to do what I need requires using raw HTML and features of HTML that are not allowed. For Discourse it seems their parsing of HTML can not pass what I consider safe HTML. I did see a post on the Discourse forum that might work but after so many failed attempts I just don’t try any more as it will most likely fail.
However having failed in so many ways I do know some tricks that make more variations of markdown more portable.
In the end markdown and wiki markup languages are simplifications of full markup languages such as HTML, LaTeX, etc. Some allow escaping to notably HTML. Discourse and many similar systems limit that for safety reasons. In my view these limited markup languages offer plenty to write a good tutorial.