This blog began life as a set of static pages, generated by a home-grown content management system written in Smalltalk, imaginatively called SmallCMS1.
I've now rewritten SmallCMS1 to serve content dynamically, to support tag linking, like this: SQLite.
Each blog post page now has forward and backward navigational links just above the blog post title.
Rendering code now uses Seaside. More than a year ago, I blogged on that. Seaside now has a cleaner way to render static HTML, or maybe that previous blog post got it wrong. Anyhow, here's how SmallCMS1 uses Seaside's HTML rendering engine:
^ WAHtmlCanvas builder fullDocument: true; rootBlock: [ :root | self renderSiteRootOn: root ]; render: [ :html | self renderContentOn: html ].
Similarly, RSS is rendered thusly:
^ RRRssRenderCanvas builder fullDocument: true; render: [ :rss | self renderRssOn: rss ]).