I am using webgen to create my personal website. It is a system to generate HTML code for a website from a collection of source files written in a simple mark-up language (markdown is the default language). It had been working pretty well until recently when it had some issues. My main problems with webgen, which lead me to looking for a replacement, are:
- It has not been updated for more than a year, and the activities on its website seem very slow, even not at all. It seems to me that webgen is dead.
- Webgen is fine for creating websites using its supplied themes and its default structure. However, when you want to customize it, it becomes difficult and easy to cause errors (probably this is just me).
- Last year, when I was using webgen, there was a conflict with the new version of a dependent library, which prevented my source files from compiling. The issue was fixed by an update of webgen. Last week, there seemed to be another similar issue, but webgen has not been updated. So as of now, if you go to my personal website, you will see nothing. I feel that this is unreliable. I simply cannot depend on it.
- Usually, when using an open-source product and being hit by some issue, I will try to fix it myself if the developers are not responsive. However, webgen is written in Ruby, which I don’t know and have no plan to learn.
Therefore, I need to find a replacement for webgen. The main criteria are:
- Free and if possible, open-source: you do not wonder why, do you?
- I don’t have to write HTML directly, that is it uses some kind of simple mark-up language (or WYSIWYG) and generates the HTML code for me.
- Easy to set up.
- Flexible and powerful enough so that I can customize it easily. I don’t mind writing some code or configuration files, but it should not require some hacks or tricks to do simple or intermediate customizations.
- Reliable and have either an active development or a large user base.
Some nice optional qualities it may have:
- Portability: I can write an article once, then generate HTML or PDF or whatever format I like from the same source.
- LaTeX math support will be nice.
- I prefer writing source files offline and storing them on my hard-drive, then generating HTML code and uploading to my server. It is OK to store the source in some databases on the server, but not my preference.
OK. Now I have some candidates:
- Orgmode: I am writing this post in orgmode. It is a very nice mark-up language. I know it very well and use it daily. It is very flexible and powerful. It satisfies most of the criteria above, except that it is not really suitable for creating normal websites. You can publish your orgmode files to HTML files. But it seems to serve as a way to put your writing articles on the web, not for creating a structured website, with menus, dropdowns, news boxes, etc. I have seen a few people using orgmode to create their websites, but those are often simple, plain, and a little boring, ones. Probably there are ways to achieve better looking sites, but it will not be straightforward. If you know how, please let me know.
- Sphinx: Sphinx is a system for creating documents for Python code projects. It is very powerful for that purpose. It uses restructuredText as its mark-up language. Though not originally created for making websites, it has been used successfully by a few people, and even a few large websites. I haven’t tried it yet, but I think it is a very promising contender.
- WordPress or some CMS or Wiki: many many people are using WordPress or some kind of CMS or Wiki to create their websites. And many large websites too. Set-up and usage are very straightforward. They are certainly flexible and very powerful. There are a lot of themes, add-ons or plug-ins for them (though many of them are not free). My concerns regarding this approach are that they seem a bit an overkill for my purpose, and that I have to store the source in databases on the server. They are not very portable although they often use mark-up languages. The code for the CMS system itself can be many times larger than the actual contents. Also, they are prone to bugs, hacks, and other online attacks. Furthermore, I will have to depend on the support of my web host. Finally, they are often slow because I cannot afford a dedicated server.
If you have any experience you want to share or any suggestion, please let me know in the comment.