Sorbetto is a (work-in-progress) plugin-based static site generator written in Swift. It was inspired by Metalsmith.
Sorbetto itself is a tiny application, with all logic handled in plugins. For example, a simple blog could be written as:
import Sorbetto
import SorbettoMarkdown
try! Sorbetto()
.using(Markdown())
.build()
To add pagination, just use use another plugin:
import Sorbetto
import SorbettoMarkdown
import SorbettoPagination
try! Sorbetto()
.using(Markdown())
.using(Pagination(perPage: 5))
.build()
Basic functionality can be seen above.
The included frontmatter parser is itself a plugin.
The Sorbetto repo itself is almost complete. As the generate is plugin-based, all "useful" functionality would be contained in separate plugin repositories. This is README-driven development.
The current implementation is almost core-complete, however, we're currently lacking in plugins, and there is no command line tool yet.
Bug reports and pull requests are welcome on GitHub at sorbetto/sorbetto.