jekyll-test is a highly opinionated test configuration for Jekyll sites to let you create well-formed sites with minimal configuration, built on top of html-proofer.
It provides two rake tasks:
jekyll:check will test your site for HTML validity, internal link correctness, alt tags, OpenGraph validity, https usage, and a load more. It will complain about as much as it can. You want this to pass.
jekyll:check_external_links will check all outgoing links as well. This is a separate task as this often fails due to network errors, etc, and you don't want to depend on it passing. Use it for information only.
- Ruby 2.5 or higher (
ruby -vto check version)
- Bundler (
gem install bundlerif it's not there)
jekyll-test to your site's
Gemfile (or just create the file with the following content if it doesn't exist) and run
source "https://rubygems.org" gem 'rake' gem 'github-pages' group :test do gem 'jekyll-test' end
Then add this to
Rakefile (or create a file with just this in it if you don't have one):
We suggest making
jekyll:check your default task by adding this line to
Rakefile as well:
task default: "jekyll:check"
You can then run
rake and bingo, your site will be tested with
To configure a travis build to run these tests, run:
gem install travis rake jekyll:configure:travis
This will initialise your repo for use on travis, if necessary, then write a multi-build configuration which will run both checks together. The link check is allowed to fail, so it will not impact your CI success / failure.
WARNING: This will aggressively overwrite bits of
.travis.yml, so if you already have one, make sure it's committed or backed up so you can check the changes.
It's a good idea to run the task with each new release of this gem to get the latest configuration.
Bug reports and pull requests are welcome on GitHub at https://github.com/Floppy/jekyll-test. 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.
Code of Conduct
Everyone interacting in the Jekyll::Test project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.