Skip to content
💎 Human-readable specifications for your Jekyll theme!
Ruby Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Jekyll Theme Specs

This gem is a simple wrap up of behavior-driven (BDD) validations borrowed from the original source code of Jekyll. The only reason it has been extracted into a gem is to be able to validate gem-based themes for Jekyll using Jekyll's original validation tools & techniques.

All the credits belong to Jekyll's contributors & maintainers. Again, this gem is a carbon-copy of what is already available in Jekyll's code base in a bit more reusable package.


Add this line to your Jekyll's Gemfile:

gem 'jekyll-theme-specs'

And then execute:

$ bundle

Or install it yourself as:

$ gem install jekyll-theme-specs


At this point the tool makes quite a few assumptions and very rigid in terms of the configuration options available.

  • All your features MUST be placed in features folder (Cucumber default);
  • Before running your theme's specs, it is a MUST to run bundle or bundle install;
  • Always run the tool via Bundler, eq. bundle exec theme-specs;
  • You can opt-in for more concise reporting style (Jekyll's favorite) by using -f Jekyll::Cucumber::Formatter option, eq. bundle exec theme-specs -f Jekyll::Cucumber::Formatter;
  • You can blend & validate multiple config files to get desired flavor of Jekyll's configuration on-the-fly (❤️);
    • Given I have "_config.yml" configuration file with "theme" set to "<theme name>"
    • Given I have "features/comments-off.yml" configuration file with "comments_enabled" set to "false"
    • When I run jekyll build --config _config.yml,features/comments-off.yml
    • Then I should get a zero exit status

There is also minima-theme-specs repository that is a work in progress of building minima theme validations. We will start with a few simple things and expand coverage further.




Bug reports and pull requests are welcome on GitHub at This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.


The gem is available as open source under the terms of the MIT License.

You can’t perform that action at this time.