I've been debating whether to continue on with my home-brewed web blogging system or to switch over to the likes of World Anvil or Campfire. On one hand, it's a lot work to continue to maintain the current system, not to mention extend it into the different directions I need. On the other hand, migrating everything I have already written is ALSO work. And, as my wife is fond to point out, rolling my own website means I don't surrender any copyrights. I also don't have to dread the day when, like all cloud services, where my novel lives goes defunct, or worse, is bought up by another company who completely alters the business model.

So, what sort of tools do I need?

Currently I use a text editor to create one entry at a time. There's a markup sytem that lets me mix Tcl code, inform the document object model, and perform database lookups and other fun things. You can see what that markup looks like here. Those text files are indexed by a Tcl script, and that index is read by the web server, which delivers the feed and provides templating services and navigation.

The first item I really need is keyword marking and full text search. Keywords are a no-brainer that I have no excuse for not having implemented until now. Because I'm using Sqlite as my indexing engine, full text search requires just a little more work. I use rsync to push updates from my home computer to my webserver. It is bad form to swap out the database file while it's still running. So, I actually have to defer indexing until the website is actually running live.

The next item I need is to provide some sort of document structure. This blog is ok in an essay-at-a-time format. But I'm now at the point where I need to lay down a sort of Psyche-Pedia where my lore is laid down in a more accessible (and searchable) format. Much of this can be handled by adding data to my headers at the top. Thinks like "what type of entry is this?" And "does this contain spoilers?"

Given how important history is for story telling, I also need some sort of annotation for when in history a pedia entry covers. And link events to historical figures, vessels, and factions. I'm torn between a discovery based system (built on following references) and a curated system (where I lay down the actual connections). Discovery is easy to maintain, but can produce a messy looking output. Curation produces a beautiful looking product, but can miss references if I don't remember to list them.

In the end, it's probably going to be a hybrid. A manual "see also" header, and in the absence of that look at what entries cite other entries to build a "see also".

Finally I need a timeline tool. A way to spool out history as a sequence of events, and also organize story events (in parallel story lines) in parallel.

For that I will need a special header to indicate that this event follows another event. And possibly provide a stardate range for display.

Subject: {The Banana Incident}
Stardate: 54121
Follows: 8c632d27-b77e-45ec-b00f-a448f5820629
Tags: {Humor History}
Type: Event
--- BEGIN CONTENT ---

I only index events one way, because one event can spawn multiple simultaneous events. I can write a handy macro to look for events that list this particular event as its predecessor, and just include that in an HTML navigation block. This information could be used to sketch out a automated visual representation.

Finally, I need an access control system so that I can limit certain entries to Patrons and Subscribers.