maphew

Fossil Content Management System

October 22, 2021 

Article Image

The Fossil source code management tool ( fossil-scm.org ) is an impressive work. If you're a software developer think of it as Github-in-a-box -- source control, web server, ticket system, wiki, docs and more -- all managed from a single executable and database file, and available on all major desktop and server platforms.

Fossil wasn't built in order to be a web content management tool, but in service of it's primary goal that was accomplished, and handily. However since the CMS part is a sideline and the developers have no aspirations for it to be anything other than that it doesn't have a many features that full-on CMS do. Post tags and categories, order by publishing date, breadcrumb trails, automatic backlinks between posts the reference other, and so on.

My interest in this page and the ones that follow is to see how far down the path of CMS-as-primary-purpose Fossil can go.

Wiki 

Fossil doesn't go very far down the wiki path. It has it's own flavour or plain text wiki markup / formatting rules (not uncommon in the wiki software family), easy creation of new pages, version history, and everything that can be done is done from the browser.

From my point of view Fossil wiki's most significant lack is that it doesn't have backlinks: "what links to this page?" 

Tech Docs 

...tech docs and wiki are very similar creatures, but differ in fundamental ways. I've not yet wrapped my head around these distinctions. 

Associated with no backlinks is lack of an index page generation. I have 80 documents in a dozen folders to expose and show to the web, and that's just to start. That's far too many for manual indexing.

So, I need some form of creating index pages and table of contents. Static Site Generators have this in spades, however they all seem to output html and I want it in markdown. (I suppose I could SSG to html and then pandoc it back to MD just to get the ship afloat, and then optimize this step later.)

index page, table of contents 

Fossil doesn't have built means of making an index page. So let's prototype one with python, and then maybe just maybe figure out how to that in C or TH1 for mainline inclusion. 

Python prototype is done: /make-home-page.py , and it's what is making the currently active site home page.

I actually wrote the TH1 version first, but couldn't figure out where to put it so that fossil would interpret it. The only places I found that worked are in the skin header or footer text, and that's just too much of a kludge.

Misgivings 

Every day or three I find myself wondering why I'm still trying to make this work. Fossil is just not a good fit for a generic CMS. With my python blog page prototype I'm reinventing a static site builder all over again, but poorly since I'm not a software developer. The only real difference at this point is the output is markdown instead of html.

And yet, and yet... There's still something in all this that keeps me interested in seeing if I can find a workable path.

From < https://www.maphew.com/a/doc/trunk/blog/web-dev/fossil-cms.md