Nanoc vs Metalsmith
When comparing Nanoc vs Metalsmith, the Slant community recommends Nanoc for most people. In the question“What are the best static site generators?” Nanoc is ranked 8th while Metalsmith is ranked 13th. The most important reason people chose Nanoc is:
Nanoc is a good choice if you need to support a site with a more complex structure than a simple blog. Nanoc is more agnostic to the types of pages you have, and allows you to do finer tuned refinements like customizing the URL structure.
Specs
Ranked in these QuestionsQuestion Ranking
Pros
Pro Flexibly built
Nanoc is a good choice if you need to support a site with a more complex structure than a simple blog. Nanoc is more agnostic to the types of pages you have, and allows you to do finer tuned refinements like customizing the URL structure.
Pro Extensibile
Nanoc has a modular architecture which makes it easier to incorporate plugins and functionality from other projects as well as extend functionality.
Pro Helps you create multilingual sites
Nanoc takes multilingual sites into consideration and has features to make translations easier to implement.
Pro Unit testing integration
Nanoc has a check command to run tests against your site and make sure it meets requirements you define.
There are built in checks to validate HTML and CSS, as well as validating internal and external links.
Pro Works well with compile to languages
Nanoc is friendly with different CSS and HTML preprocessors, so you can easily use SASS, LESS, HAML, Markdown and more.
Pro Flexible beyond a static site generator
Because metalsmith is at its core focused on transforming directories of files, it can be used for more than just static site generation, and could be used as a build tool, a documentation generator, or any use that requires file transformations.
Pro Designed around plugins
Everything in metalsmith is a plugin, and it is designed to make it easy to write new ones.
Pro Chaining API
Metalsmith uses a chaining API that's consistent and simple to use:
Metalsmith(__dirname)
.use(markdown)
.use(templates('handlebars'))
.build();
Cons
Con Small community
The Metalsmith community is still fairly small compared to the more popular options. This results in a lack of learning resources and difficulty finding support from experienced users. However, a slack group has recently been started.
Con Not client enabled API chaining
According to the spec on API chaining, the API request/response need to associate an API object to an corresponding controller/action/uri to be able to validate and handle the request/response and the datasets.
Without that, the consuming client service cannot properly validate or relate the datasets from one to the other. Links have no relational value and the api object creates the relationship between the datasets while maintaining an api/dataset relationship with the corresponding controller/action/uri
As such, the current methodology supported would not be able to be called by the client not supported by the client in a RESTFUL manner