Skip to content
/ grain Public

Grain is a lightweight and powerful static website generator with custom themes to help create static, SEO-friendly websites or a blog in no time.

License

Notifications You must be signed in to change notification settings

sysgears/grain

Repository files navigation

Banner

Twitter Follow Twitter Follow

Grain is a lightweight framework and a very powerful static website generator written in Groovy to help make website creation intuitive and enjoyable. Grain suits development of complex, static websites for companies and neat blogging websites for personal use. The framework builds on simple ideas and provides live reload to help you rapidly develop custom themes.

Documentation

All the Grain documentation is located in teh docs/General Docs.md file. You may learn more about using Grain in the following sections:

Key features

Grain comes with the following key features:

  • A preview mode that allows you to make changes and see them applied on the fly
  • Support for embedded Groovy code for any content files (stylesheets and JavaScript files)
  • Configurable conventions that allow you to process content sources using Groovy
  • Support for Markdown, reStructuredText, and AsciiDoctor
  • Compression and minification of source files
  • Code highlighting with Python Pygments
  • Built-in Sass and SCSS support

Themes & templates

A Grain website project is called a theme, and Grain has a few developed responsive themes that you can use. Consult the list of pre-built Grain themes below:

Getting started

Requirements

To run a Grain project, you need to use JDK 7 or later. Download and install the appropriate JDK for your operating system.

Installation

Grain requires no installation. You only need to download one of the themes and run the project — Grain will be loaded automatically as a JAR dependency.

If you're new to Grain, we recommend that you start with the Grain Octopress theme. It gives an overview of how you can efficiently use most Grain features.

If you consider building a Grain website from scratch, try out the Grain Theme Template.

Preview a Grain website

Navigate to the location of your newly created website and run the command below to launch the project in preview mode:

cd /path/to/your_site
./grainw

Here and further the command-line snippets are provided only for the Unix-like operation systems. If you're running Grain on Windows, use the grainw command instead of ./grainw.

Once the project is built, you can visit your favorite browser at https://localhost:4000 to view the website. You can add, change, or delete website files and see all the changes in the browser immediately after refreshing the page.

Generate and deploy

When you're ready to deploy your Grain-based website, you first need to generate all the website files by executing the following command:

./grainw generate

The website files are generated into the /path/to/your_site/target directory.

You can deploy the website files either manually or with the help of Grain:

./grainw deploy

Check the Deployment Configuration section for more information.

The Grain Community

There are many ways to get involved with the project:

  • Mailing List - reach us or ask the community for help
  • Issue Tracker - make Grain better by suggesting improvements
  • Twitter - keep up with the latest Grain news and announcements

Contributing

Any person or company wanting to contribute to Grain Framework should follow the following rules in order to their contribution being accepted.

Sign your work

We require that all contributors "sign-off" on their commits. This certifies that the contribution is your original work, or you have rights to submit it under the same license, or a compatible license.

Any contribution which contains commits that are not Signed-Off will not be accepted.

To sign off on a commit you simply use the --signoff or -s option when committing your changes to Git:

git commit -s -m "Adding a new widget driver for cogs."

This will automatically append the following data to your commit message:

Signed-off-by: Your Name <[email protected]>

By doing this, you certify the below: