2024-02-09 Oddµ namespaces and live updating
=============================================

> It's a slow morning. I had my two cups of coffee, ate my pancakes
> with plum jam, spent time online reading Mastodon, talked to my wife
> about wannabe-axe murderers on Swiss trains, looked up stuff about
> taxing the rich…

I've been working on Oddmu again. My goal is to be able to reproduce
the Campaign Wiki setup:

* people can get a "space" for their site by signing up in some way

* they can make changes to the look and feel of their site (change the
  headers, footers, colours, i.e. make changes to both the HTML
  template and the CSS)

* feeds, list of changes and all that are limited to their site

Using Oddmu would also result in the following:

* sites are no longer publically editable (which isn't a requirement
  for such spaces like role-playing game campaigns)

Oddmu now has the following features:

* when editing pages in a subdirectory, the index and changes page
  in the same directory are updated (instead of the root directory)

* when HTML templates exist in the same directory, those are used
  instead of the templates in the root directory (e.g. Oddµ)

* when uploading a HTML template, it is loaded immediately (no more
  server restart)

Once I had this implemented using a library that watches the
filesystem for changes, I realized that I could use the same feature
to index new pages. This brings me closer to having online and offline
writing feature equivalence: Using the web site to create a page
should be equivalent to writing a page elsewhere and uploading it to
the site via rsync. (Offline you can use the oddmu notify command to
add links to index, changes and hashtag pages.)

I think I'm getting close!

​#Oddµ

Also, code complexity is through the roof, now. All the global maps
aren't thread-safe so they need mutexes. There's a weird Heisenbug I
have where I run the test suite and then view.html is gone. The next
test run then fails, of course. Thinking it was related to the order
of tests, I started running go test -shuffle on and found a plethora
of other bugs. And I've seen at least two occasions where I noticed
the disappearing view.html bug, noted the shuffle id, reran the test
with that id, got the error again, tried for a third time, and then
tests passed. So… it must be a race condition of some sort.

How aggravating.

Maybe something got lost, with that last set of changes.

I do feel, however, that I've found a lot of bugs… Just now, for
example, to help prevent Oddmu from showing any directories or files
with a path segment starting with a period…

2024-02-14. I need to think about an archive handler that allows you
to get a zip file for the current directory. (I guess zip files are
more accessible than .tar.gz files? Like, for Windows and macOS…)

And the archive needs to take ODDMU_FILTER into account!

Done. ✔️