2024-02-17 Oddµ leveled up =========================== I’ve been using Oddµ for a while, now. There have been various stages at which it was “ready”. Level 0 was when you could run it and edit pages with it. Level 1 included many things I wanted to have for my blog: * uploading of images * appending to a page (this is important for me as editing pages on the phone can be cumbersome but leaving comments on my own site was always easy to do) * resizing of images being uploaded * handling of HEIC images (iPhone) * searching using hashtags (indexed), titles (indexed) and regular text search (no index) I experimented with full text search and trigram index but it didn’t go anywhere. Another problem was that Oddmu would index the pages on startup: hashtags and page names are kept in memory and updated when pages are edited. If I made changes to the files, however, a restart was required: adding or deleting pages, and edits affecting hashtags or page titles resulted in those indexes being out of sync with the files. I really wanted Oddmu to be a wiki that I could edit using my favorite text editor, offline – without restarts. For this to work, I would have to watch the filesystem for changes. I added the ability to change the HTML templates while Oddmu is running (instead of at startup) and I added overriding global HTML templates with local templates in the same directory. As far as look and feel was concerned, every directory could now act as a separate site. Recently, I looked at the wiki hosting I do for Campaign Wiki. There, role-playing game groups can create wikis in subdirectories that act as lot like separate wikis in that search and the list of recent changes is limited to their subdirectory. I wanted Oddmu to be able to handle this without having to start extra instances. I changed how notifications are made: instead of affecting index page, changes page and hashtag pages in the root directory, they now affect those pages in the local directory. As far as the list of changes was concerned, each directory now acted as a separate site. The last feature I wanted for a Campaign Wiki-like experience was archive downloading: an archive action that would serve a zip of a directory, both for backup and migration purposes. And with that, there is now a Campaign Wiki program using Oddmu. 😄 I decided to write a sort of release notes with user-visible changes from now on. #Oddµ