JORDAN.YELLOZ.me

About 1087 days later (about 13 of those so far being productive days), I finally made some progress in implementing the software previously mentioned. It is implemented in Python using Flask, docutils, Dulwich, and Whoosh. The code is not very good yet but it should be fairly efficient. The slowest part is currently docutils, taking up about half the time for responding to a request.

As of the time of this writing, it is capable of showing individual pages and indexing messages by date. It can also show the commits changing each posting. It cannot currently show all the revisions of each page but that is not difficult to implement. There are many document “security” matters that must be addressed. My plan is to only allow visitors to see document revisions whose status metadata property is published to avoid accidental private data disclosure.

The functionality of “Page Attachments” is currently missing but the basic tree traversal code is implemented, it just needs to be exposed by the GitPages wrapper API. I determined that “Page Parts” are not necessary (I have never used more than one per page before) and I no longer support them.

There is no real need for an administrative UI since publishing will be performed by synchronizing with a remote repository. Updating the index (Whoosh index, not git index) will be necessary each time the repository is published to but that should be achievable with a post-receive hook, notifying the application through some secure channel or running a separate python process to invoke the indexer.

Allowing comments would be interesting but it leads to many re-indexing situations which I would rather avoid, the same way I would like to avoid publishing or being exposed to the opinions of others.

In addition, I changed the graphical appearance of this site. It is now entirely grayscale, monospaced, and the site logo is monochrome, using some MacPaint halftone patterns.

Posted on

Revisions: