Steve Kemp's Blog Writings relating to Debian & Free Software

Reassessing what I want from a simple website creation tool

Sat, 1 Dec 2012 12:32:38 GMT

Thanks very much to everybody who commented, both publicly and privately, on my previous entry.

To recap: I have three sites that were each generated by slightly different templating software I'd built and tweaked over the years. I was frustrated that the three copies of the generation tool had all drifted and diverged from each other, and was looking to setup a new (static) site.

The obvious conclusion was either:

  • Unify the creation tool I used, such that all four sites could be generated by a single tool.
  • Avoid the pain of doing that, and suffer through a process of using a well-maintained tool maintained by somebody else. ("Suffer" because tags would be different, and the layout/template syntax would change.)

I'd cheerfully decided to go down the second route, because life is short. But after having quick reads, then spending several hours investigating likely contenders I kept finding reasons why they weren't suitable.

Today I reworked my tool to succesfully generate each of the three sites. That was less annoying than expected, after I'd decided "I'll have to change my templates anyway, when I switch to a real tool".

So in the interests of sharing I placed my tool online, and wrote documentation:

This is not a U-turn. This is not a commitment to avoid the investigation of real replacements. This is just something I had to do as a cleanup and to make sure I fully understood exactly what my requirements were.

In conclusion: My requirements are now absolutely known, fixed, and understood. I still firmly intend and expect to migrate to something by the end of the year. Ideally something that will make tag pages, RSS feeds, and other clever things easy.

(Getting rid of literal shell usage in my templates, and unifying the way I auto-generate galleries via file globs was a useful change in its own regard - I always felt slightly dirty..)

Lookout for more summaries and reviews of specific tools when I've had the chance to relax and start looking again.



Comments On This Entry

[gravitar] pachi

Submitted at 19:41:42 on 29 November 2012

I'm using tahchee and has been working fine for me for years. And these days I would also give hyde a try too. Both are projects coded in python.

[gravitar] jd

Submitted at 20:39:27 on 29 November 2012

I use Hyde and I like it.

[gravitar] eikenberry

Submitted at 21:27:00 on 29 November 2012

Keep posting updates please... I've been meaning to replace my hacked up generator with an existing tool as well. So this is very useful. Thanks.

Oh, maybe list the ones you found that aren't on the linked to list. Maybe even report them back to Timo as he asked for people to report new ones so he could update his list.

[gravitar] cstamas

Submitted at 21:58:33 on 29 November 2012

And what do you think about ikiwiki?

[gravitar] Steve

Submitted at 22:28:25 on 29 November 2012

I'll update once I've looked at more, and made a choice.

ikiwiki I've not considered because I'm looking to generate a site, rather than a blog. Yes it can be used for sites, I'm sure. But I discounted anything that was blog-centric, or wiki-centric.

As per my requirements I want conditional file inclusion, per-page templates, and pretty much nothing else. If I get per-page template variables, etc, that's a nice bonus.

For example I use this in one of my sites:

Title: The system administration & Automation Tool


That files the DIV with id="menu" with the contents of the named file, relative to the path of the input file, if it exists.

Something a lot of tools seem to fail on. So many, includng poole, just allow you to replace "page.title", and "page.contents" - there's no notion of replacing arbitrary blocks in the output page unless you use partials or nested templates. Annoying. Ugly. Shame.

[gravitar] Leandro Penz

Submitted at 23:02:54 on 29 November 2012

I use two setups:
- django and then rip with with wget;
- mako.

[gravitar] rjc

Submitted at 07:51:16 on 30 November 2012

What about good old WML?

[gravitar] Charles Stewart

Submitted at 08:39:34 on 30 November 2012

Isn't your chronicle blog compiler 2/3rds of what you need? Chronicle/rfc822 -style headers seem like they are enough to pass the desired per-page information to HTML::Template.

[gravitar] Steve Kemp

Submitted at 09:06:57 on 30 November 2012

I discounted chronicle for the same reason that I discounted ikiwiki above - but yes, both could probably do the job, though ikiwiki would require less hacking.

Hrn - and after spending last night looking at more tools I realize I have a third requirement:

  • In-place processing.

So many tools take "input/" and write to "output/". I guess that can work if I symlink the two togther. Me? I have .skx/.wgn files in my htdocs directory - simply to avoid having to copy around static files/assets which aren't processed.

[gravitar] gabriel

Submitted at 21:07:12 on 30 November 2012

I manage a french website for a folk association by ikiwiki. It's very pleasant to use and some part may look libre blog but not all !

[gravitar] Thomas Leitner

Submitted at 15:00:23 on 2 December 2012

webgen meets all your requirements. Furthermore, it also supports multiple content blocks per content file.

Per page templates: just specify a 'template' meta information for the page and make sure that you set the 'template' meta information of template itself to null so that the template does not get nested inside the default template.

As for block being unknown: You may need to look at the additional attributes for the tag.

[gravitar] Martin

Submitted at 12:48:56 on 3 December 2012

A relatively new, very promising tool is "nikola". The feature list is impressing:

* Creates pure static web pages
* Blog generator, including tags, feeds, archives, comments, etc.
* Theme support
* Fast building process, thanks to doit
* Easy Image Gallery, just drop files in a folder!
* reStructuredText or Markdown as Input languages
* Flexible design
* Small codebase.
* Syntax highlighting for almost any programming language or markup
* Multi-language sites
* Small, since based on leverages existing tools

It uses Twitters bootstrap, and is written in Python:

I did not yet find time to try it out, unfortunately.


Comments are closed on posts which are more than ten days old.

Spiral Logo


Recent Posts

Recent Tags


RSS Feed

  • Subscribe to feed