jekyll-tidy

jekyll-tidy

A gem for tidying Jekyll HTML output

Jekyll::Tidy

jekyll-tidy is a plugin for tidying the HTML output of your Jekyll website, using either HtmlBeautifier or HtmlCompressor.

Usage

Usage is straightforward.

via Bundler

If you have the gem Bundler installed, simply include the gem in your Gemfile under the :jekyll_plugins group:

group :jekyll_plugins do
  gem "jekyll-tidy"
end

Run bundle install to install the plugin and its dependencies.
The plugin will be automatically loaded the next time you run bundle exec jekyll build or bundle exec jekyll serve

via config file

The plugin-gem can also be loaded via the _config.yml
Simply add this gem to the gems: list (or plugins: list, if you're on Jekyll v3.5 and above.)

gems:
  - jekyll-tidy

Configuration

jekyll-tidy takes three configuration settings:

  • exclude — an array of files to exclude from tidying.
  • ignore_env — a JEKYLL_ENV string on which to skip tidying entirely.
  • compress_html — a flag for whether or not to compress the HTML output
jekyll_tidy:
  exclude: ["index.html"]
  ignore_env: development
  compress_html: true  # or false

exclude (default: [])

exclude is an array of relative file paths that will be ignored by jekyll-tidy. Exclude must be set as an array, or it will cause errors.

jekyll_tidy:
  exclude: ["index.html"]  # excludes only index.html

exclude can also take a glob of file paths.
Note: File globs need to be wrapped with "" when defining the array with square brackets.

jekyll_tidy:
  exclude: ["_posts/*.md"]  # excludes all markdown files directly within the _posts directory.
jekyll_tidy:
  exclude:
    - _posts/*.md     # excludes all markdown files directly within the _posts directory.
    - _posts/**/*.md  # excludes all markdown files anywhere within the _posts directory

compress_html (default: false)

If compress_html is set to true then HtmlCompressor will be used to tidy the markup. When set to false, HtmlBeautifier will be used to tidy the markup.

Note: if you set the compress_html option to true and your templates have inline CSS or javascript, it will not be minified.

ignore_env (default: nil)

If ignore_env is set to a string, we will check the JEKYLL_ENV environment variable and skip tidying if it matches.

Setting _config.yml with:

ignore_env: development

and then running jekyll server with:

$ JEKYLL_ENV=development jekyll serve

will skip all tidying.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake test to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

To install this gem onto your local machine, run bundle exec rake install.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/apsislabs/jekyll-tidy.

License

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


Built by Apsis

jekyll-tidy was built by Apsis Labs. We love sharing what we build! Check out our other libraries on Github, and if you like our work you can hire us to build your vision.