Static website generation in Groovy
A static site generator is software that translates content from a text format into HTML and creates consistant look and feel across all the pages. These HTML pages can be copied to any basic webserver. Usually the base format is Markdown or AsciiDoc which is then converted into an HTML snippet, and then put into a larger HTML page. After generation, those files are copied to a basic webserver that serves the plain HTML.
Going With The Grain
There are lots of different static site generators, usually multiple ones for each programming language. Groovy’s relatively new entry in to this world is Grain. The developers of Grain decided not to reinvent the wheel, but instead implement other technolgies in their software. For example, Grain will automatically generate CSS from SASS or SCSS sources. But instead of implementing their own SASS parser in Groovy, it attempts to use Ruby on your system and, failing that, it installs JRuby into it’s sandbox and runs the SASS gem from there. This is automatic — no user configuration is necessary for this to occur. Of course you can set a default if you want.
Other great things about Grain:
- Custom command-line commands
- Create your own tag library
- Embed Groovy code into your pages
- IDE Integration
Best yet — it’s distributed under the Apache license.
To get started with Grain, you can grab one of the pre-built themes as a starting point. Then you can read the docs yourself. But after the initial setup, my workflow for a blog post is usually:
grain create-post <post name>— creates a Markdown file under
grain preview— starts the preview server
- edit the the file and write away!
grain generate— generates the HTML files
grain deploy— run rsync on my generate files to the server
One thought on “Static website generation in Groovy”
Mike, thanks for this nice article introducing us to SSGs and especially Grain. FYI, I noticed a typo in the page – it says “genration” rather than “generation” – as of 2015/11/19 11:45pm.