I'm now migrating the website and blog to WordPress. This will allow me to add some new content, as well as post updates more frequently.
I've been using static site generators until now, but unfortunately I could not find the one that would satisfy my needs. First I was using Jekyll/Octopress, but it's very limited, with no support even for pagination of tag pages, for example. Then I switched to Hexo which has a lot of nice features and plugins, but is very slow, and I had difficulties implementing additional functionality I needed.
I tried a lot of other generators but none of them satisfied the following requirements:
Last week I was writing my own generator (loosly based on Metalsmith) and at the same time was toying with a WordPress installation.
I'm not a big fan of PHP+MySQL combo nowadays but there are not many options - all Node.js-based engines are immature and hardly usable. The biggest problem with WordPress though is that I've never seen such huge amount of terrible design, ads, popups, dozens of similar plugins doing the same things but being differently ugly and bugged, and most of them being paid. Poor people who have to use all this shit.
However I must say it's indeed flexible and easily extendable. Still I'll need to implement a lot of functionality myself (which is sometimes easier than to choose between five existing plugins each with its own problems), but at least I'm getting admin UI and all that for free.
The migration process will take some time, and there will be no upades until then, except for one more post about the way I've configured my server for WordPress.
- Be written in a language I know. There are some promising options like Middleman (Ruby) and Hugo (Go), but that would mean I won't be able to make almost any changes or additions.
- Never rewrite unchanged output files. I'm hosting on Amazon S3 and synchronisation tools compare file modification times to determine whether they need to be uploaded. Now I'm thinking maybe it's possible to use ETag header with content hash, but I haven't investigated.
- Ability to add tags/helpers that would create files. I use this to dynamically resize uploaded images to the exact size I need on a page and create retina versions.
- Delete any files from the output folder that do not exist in the source folder, including the aforementioned dynamically generated images if they're not used anymore or the requested size changes.