Sphinx publishing system

I’ve always wondered why all those CMS systems are so complex. I mean, the content is static, why have so much automatic dynamic generation logic around the static content. There is no point in that.

Of course my first publishing systems were like that also. There is something in that concept that makes it easier to implement. The data is in a database. Request comes from a browser and the data is formatted based on a template and style and fed back to the browser. And if the site is big and has a lot of viewers then some kind of cache is put in front of the application server.

But step by step I’ve moved to more and more simpler and static setups in the server. And the tools to generate that static content have been more complex at each step.

The reasoning behind static content generation is a system which has all the benefits of full-blown CMS regarding content presentation. But without any kind of application server. I say there is no point in having complex cache or reverse proxy and application server running just to feed static data to the browser.

My current answer to this problem is Sphinx. With some extensions. My additions and scripts can be found in the project repository.

Generating the content

Sphinx uses ReStructuredText for content markup. reST is pretty amazing for writing content. The markup elements are designed to produce easy to read content in a simple plaintext editor. The structure of the document is visible as whitespace is used to separate structural elements. When you see reST document for the first time you are able to read and understand it pretty easily.

Only thing you need to keep in mind when you are producing content is that you are producing content. You should not think about the presentation.