Show HN: Metalsmith – A pluggable static site generator

  • I like that static site generators are basically the Cups And Balls of our craft.

    It's so well understood and constrained of a problem domain that we can now ignore the practical considerations and go all-out with the art itself. I feel like this design and api is a great example of that, much like Penn and Teller's Cups and Balls with clear cups[1] - wonderfully creative innovation within a completely and totally solved problem domain.

    [1] https://www.youtube.com/watch?v=O_n3Zb3bW3g

  • One problem I see. On the one hand you say:

    > All of the logic in Metalsmith is handled by plugins.

    But on the other hand, you say this:

    > Each plugin is invoked with the contents of the source directory, with every file parsed for optional YAML front-matter, like so…

    The YAML parsing should be a plugin as well, some of us have existing JSON front-matter files.

  • Thanks. Looking forward to trying it out this weekend. My current generator, which I'm generally happy with, is DocPad.

    http://docpad.org

  • One thing I don't like about jekyll (unless I'm missing something), is that on site generation, the last modified time stamp of the files gets updated too even if the file content hasn't changed. This way a FTP program like Transmit will not be able to synchronize only the modified files.

  • If this really works, I would love to see it replace the hellish jumble of team-editable documentation. I've seen Confluence, PBWiki, Google Sites, and a smattering of others used to no good ends...can we please switch to this now?

  • Could be compared to assemble.io and stylistically reminds me of Gulp.

  • It appears to be indeed both extremely simple, and extremely composable. How well does it handle large collections of files?

  • This is really intriguing. I also recommend HarpJS (https://www.harp.io/) as well, which has some impressive pre-compile features.

  • This looks very cool. I like the focus on plugins, it would be pretty awesome to have a flexible static site generator with an active plugin ecosystem.

  • I like this design. It kind of goes in the same direction as my github.com/andrewf/filtdir while being significantly more refined. This seems to make the whole directory structure available to plugins, while my tool only works one file at a time. It might even convince me to switch.

  • A functional type approach. It will be interesting to look more into it. It would be nice to have a .map, .filter functions (if they don't already exist). So, if you don't want to rebuild everything you could do a .filter(htmlDate < mdDate) type workflow.

  • Not just a nice tool, but a great implementation. Simple, lean code, no promises or anything fancy.

  • How do I get this working on Windows? I've installed it with npm install metalsmith. Now what?

  • Somewhat relevant plug:

    I have a similar weekend project that is aimed towards generating static markup. The syntax looks a bit like haml with simple to use mixins, includes, and variables.

    http://rubygems.org/gems/aml

  • Did anyone else manage to install it? I'm getting a "shasum check failed" error.

    The project scaffold generator part sounds pretty interesting because I needed it pretty often and eventually had to build that for myself.

  • Couldn't choose between Jekyll and Middleman, but now I think I'm going with Metalsmith. No ruby, understandable plugin structure… I'm sold!

  • With sooooo many static site generators (all very well done too), would be awesome to have a side-by-side by-feature comparison table.

  • I fail to see the big advantage of this over its competitors.

  • This is a nit, but non-constructors should be lowercase.

  • So simple, yet so powerful.

  • Very nice. Well done.

  • Awesome.