@danluu Before I went on to write an SSG whose explicit goals are extensibility and compatibility, I evaluated Hugo and found it quite amusingly bad: https://baturin.org/blog/why-not-hugo/
My "favorite" part is that it parses HTML internally in two different ways: in some places with regexes, in other places with a bundled HTML parser, and also calls external utilities for AsciiDoc etc., but gives the user no way to even configure asciidoctor options.