I used Harp for some years for my personal pages. What I liked about it:
works different formats without configuration
What I didn't like:
Data files are just in JSON, which I don't like to write by hand.
I configured grunt to convert YAML files to JSON, but now there were two versions of the same data file around.
I don't like the organization of the date files, it's too complex with larger sites.
Because of these pain points and because it's practically unmaintained, I looked for an alternative.
It was hard to find something, which had everything I wanted, although there are so many
of them. What I want:
- TOML or YAML for data files
- Stylus for styles
- Pug for page templates
- Coffeescript for Javascript
First, I thought I had found with
Hexo what I wanted. Until I got into limitations with the handling
of data files. So I decided to make my own one, which does exactly what I want. It was easier
than I thought. I did everything with grunt because I already had experience in
transforming files with it. Grunt is dead, I know, but hey, it still works and written in Coffeescript
the Gruntfile looks quite nice. I have now the following folder structure:
- data (markdown, YAML or TOML files)
- dynamic (stuff to processs like styles, scripts and pug templates)
- static (files to just copy)
- out (generated page is here)
- config.toml (configuration)
There is more to say to it. I build something I call 'generators' to define how pages get generated from
different data files. Say for example, you have one data file for a portfolio item, and a template. And
want to generate a page for every portfolio item.
I'm too tired now to write more ... ;) But I really like static page generators. Nice topic!