Awesome
Awesome Series @ Planet Jekyll
Jekyll • Jekyll Themes • Jekyll Plugins • Jekyll Editors
Awesome (Gem-Packaged) Jekyll Plugins
A collection of awesome Jekyll plugins adding converters, generators, filters & tags, importers, new commands & switches, and more.
Contributions welcome. Anything missing? Send in a pull request. Thanks.
Note: See the Plugins & Extensions Page @ Planet Jekyll - listing all gem-packaged plugins listed here; add your plugin here to get added - thanks!
Documentation
See the Official Plugins Page @ Jekyll Docs ».
Settings & Configurations Tweaks
- GitHub-Pages Unscramble ★3 (gem: github-pages-unscramble) by James Luberda -- locally undoes the changes the GitHub pages plugin makes to a site's original plugin_dir and safe configuration settings and loads any file-based plugins in plugins_dir as well as any blocked plugins in _config.yml
- Default Layout ★46 (gem: jekyll-default-layout) by Ben Balter -- silently sets default layouts for pages and posts
- Optional Front Matter ★70 (gem: jekyll-optional-front-matter) by Ben Balter -- makes front matter optional for markdown files
- Title from Headings ★83 (gem: titles-from-headings) by Ben Balter -- pull page title from first markdown heading when none is specified
- Readme Index ★71 (gem: jekyll-readme-index) by Ben Balter -- render a project's README as the site's index
- Data ★37 (gem: jekyll-data) by Ashwin Maroli -- read datafiles in themes
Multi Language / Multi Lingual
- Multiple languages ★837 (gem: jekyll-multiple-languages-plugin) by Martin Kurtsson -- I18n support for Jekyll and Octopress
- Language ★111 (gem: jekyll-language-plugin) by Vincent Wochnik -- multi-language plugin for posts, pages and includes
- Polyglot ★299 (gem:
jekyll-polyglot
) by Samuel Volin -- multi-lingual and I18n support tool - i18n Tags ★11 (gem: jekyll-i18n_tags) -- Translate your templates.
- Localization ★68 (gem: jekyll-localization) -- plugin that adds localization features to the rendering engine. Archived
Search
- Algolia ★185 (gem: jekyll-algolia) -- Add fast and relevant search to your Jekyll site using the Algolia API.
- Searchyll ★43 (gem: searchyll) - Index your Jekyll pages to Elasticsearch, and works with Github pages.
Feeds & Syndication
- Feed ★197 (gem: jekyll-feed) -- a plugin to generate an Atom (RSS-like) feed of your posts #Official #GitHub Pages
- Planet ★2 (gem: jekyll-planet) -- add articles, blogs to your site via web feeds (and planet pluto)
Bibliography & Citiations
- Scholar ★974 (gem: jekyll-scholar) by Sylvester Keil -- extensions for the blogging scholar.
- BibSonomy ★5 (gem: bibsonomy-jekyll) - generate publication lists from BibSonomy.
- jekyll_quote (gem: jekyll_quote) by Mike Slinn – Formats quotes with an optional citation and link in a Jekyll website.
Tags & Taggings, Categories & Categorizations
- Archives ★385 (gem: jekyll-archives) -- archive pages for your tags and categories #Official
- Tagging ★367 (gem: jekyll-tagging) -- plugin to automatically generate a tag cloud and tag pages.
- Tagging Related_Posts ★49 (gem: jekyll-tagging-related_posts) -- related_posts function based on tags
Pagination
- Paginate ★94 (gem: jekyll-paginate) -- pagination generator #Official #GitHub Pages
- Paginate V2 ★455 (gem: jekyll-paginate-v2) by Sverrir Sigmundarson et al -- enhanced replacement for the old built-in jekyll-paginate
- Pagination ★44 (gem: jekyll-pagination) -- plugin to extend the pagination generator. Archived
- Paginate::Category ★38 (gem: jekyll-paginate-category) -- pagination generator for category.
- Auto Authors ★7 (gem: jekyll-auto-authors) -- plugin to auto-generate author pages with pagination!
Figures & Captions
- Figure Tag ★33 (gem: jekyll_figure) -- Generate figures and captions with links to the figure in a variety of formats
- Figure Tag ★47 (gem: jekyll-figure) -- A liquid tag for Jekyll that generates
<figure>
elements.
Images & Pictures
- Picture Tag ★563 (gem: jekyll_picture_tag) -- Easy responsive images for Jekyll. Based on the proposed
<picture>
element, polyfilled with Scott Jehl's Picturefill. - Responsive Image ★312 (gem: jekyll-responsive_image) -- Responsive images for Jekyll. Automatically resizes images, supports all responsive methods (
<picture>
,srcset
, Imager.js, etc), super-flexible configuration. - Image Encode Tag ★14 (gem: jekyll_image_encode) -- tag that renders base64 codes of images fetched from the web.
- Cloudinary ★86 (gem: jekyll-cloudinary) by Nicolas Hoizey -- tag to use Cloudinary for optimized responsive posts images.
- WebP Image Generator ★49 (gem: jekyll-webp) by Sverrir Sigmundarson et al -- WebP image generator that automatically generate WebP images for all images on your site and serves them when possible
- Image Size ★19 (gem: jekyll-image-size) - read images and output image-sizes as: opengraph tags, img-tags, css and more - with retina support
- Loading Lazy ★41 (gem: jekyll-loading-lazy) -- Adds
loading="lazy"
to lazily load your images and iframes without the need for JavaScript. - jekyll-imgix ★49 (gem: jekyll-imgix) -- Transform, optimize, and intelligently cache your entire image library for fast websites and apps. Freemium/Commercial
- jekyll-postfiles ★109 (gem: jekyll-postfiles) -- Ease the management of images (and other files) attached to Markdown blog posts
- jekyll-imgproxy-tag ★0 (gem: jekyll-imgproxy-tag) -- Generate urls to secure imgproxy images.
- jekyll-responsive-magick ★0 (gem: jekyll-responsive-magick) -- Responsive images via
srcset
,width
andheight
filters, automatic image resizing with ImageMagick. - jekyll_img (gem: jekyll_img) by Mike Slinn. – This versatile plugin embeds responsive images using the <picture> element in documents and pages with alignment options, flexible resizing, default styling, overridable styling, an optional caption, and an optional URL.
Bundled Icons / Images
- Octicons ★32 (gem: jekyll-octicons) -- liquid plugin that makes including svg Octicons simple. Archived
- Jekyll PIG ★8 (gem: jekyll-pig) - Uses ImageMagick and pig.js to create progressive image galleries for Jekyll sites.
Videos & Screencasts
- YouTube ★79 (gem: jekyll-youtube) -- a Liquid tag that embeds YouTube videos. The default emded markup is responsive but you can also specify your own by using an include/partial.
- Asciinema ★37 (gem: jekyll-asciinema) -- a tag for embedding asciicasts recorded with asciinema in your Jekyll pages.
- ReactPlayer -- a tag for embedding react-player supported formats in your Jekyll pages.
Audios & Podcasts
- Octopod ★114 (gem: jekyll-octopod) by Stefan Haslinger, Arne Eilermann, et al -- a podcast publishing extension. Archived
Geocoding & Maps
- Geocode ★11 (gem: jekyll-geocode) by Bertrand Keller -- geo-encode addresses from a datafile for drawing maps
- Maps ★123 (gem: jekyll-maps) by Anatoliy Yastreb -- embed maps with filterable locations
Markup & Markdown Converters
- Pug, gem: jekyll-pug -- convert Pug files into HTML
- Slim ★36, gem: jekyll-slim -- Slim converter and includes for Jekyll with support for Liquid tags. Archived
- AsciiDoc ★276, gem: jekyll-asciidoc -- AsciiDoc convertor for Jekyll using Asciidoctor.
- Commonmark ★29, gem: jekyll-commonmark -- Markdown converter that uses libcmark, the reference parser for CommonMark.
- Textile ★15 (gem: jekyll-textile-converter) -- convert
.textile
files into HTML; also includes thetextilize
Liquid filter #Official - Jektex ★17, gem: jektex -- Jekyll plugin for blazing fast server side cached LaTeX rendering with support of macros. Enjoy comfort of latex and markdown without cluttering your site with bloated javascript.
Text Filters
- Mentions ★185 (gem: jekyll-mentions) -- @mentionable support for your site #Official #GitHub Pages
- Jemoji ★503 (gem: jemoji) -- GitHub-flavored emoji plugin #Official #GitHub Pages
- Time Ago ★138 (gem: jekyll-timeago) -- Converts a time value to the time ago in words.
- jekyll_time_since (gem: jekyll_time_since) by Mike Slinn – Jekyll plugin that provides new Liquid filters called years_since, months_since, days_since, hours_since, minutes_since and seconds_since.
- Pluralize ★28 (gem: liquid_pluralize) by Benjamin Esham -- Easily combine a number and a word into a grammatically-correct amount like “1 minute” or “2 minutes”.
- Reading Time ★109 (gem: liquid_reading_time) by Benjamin Esham -- Count words and estimate reading time for a piece of text, ignoring HTML elements that are unlikely to contain running text.
- TOC (Table of Contents) ★260 (gem: jekyll-toc)-- A liquid filter plugin for Jekyll which generates a table of contents.
- Smartify ★9 (gem: jekyll-smartify) by Pat Hawks -- SmartyPants filter. Make "quotes" “curly”. Archived
- MD5 ★13 (gem: liquid-md5) by Pat Hawks -- Returns an MD5 hash. Helpful for generating Gravatars in templates
- Roman ★6 (gem: jekyll-roman) by Paul Robert Lloyd -- A liquid filter for Jekyll that converts numbers into Roman numerals
- Typogrify ★26 (gem: jekyll-typogrify) by Myles Braithwaite -- A Jekyll plugin that brings the functions of typogruby.
- Email Protect ★75 (gem: jekyll-email-protect) by Vincent Wochnik -- Email protection liquid filter for Jekyll
- Jekyll Liquify ★25 (gem: jekyll-liquify) a filter that parses Liquid from front matter
- jekyll_from_to_until
(gem: jekyll_from_to_until)
by Mike Slinn. –
Provides filters that return portions of a multiline string:
from
– returns the portion beginning with the line that satisfies a regular expression to the end of the multiline string.to
– returns the portion from the first line to the line that satisfies a regular expression, including the matched line.until
– returns the portion from the first line to the line that satisfies a regular expression, excluding the matched line.
- jekyll_basename_dirname
(gem: jekyll_basename_dirname)
by Mike Slinn –
Provides filters that return portions of a string:
basename
,dirname
andbasename_without_extension
. - jekyll_begin_end
(gem: jekyll_begin_end)
by Mike Slinn –
These filters return portions of a string:
begins_with
,does_not_begin_with
,ends_with
,does_not_end_with
, andappend_suffix_if_does_not_start_with
.
Tags
-
Gist ★234 (gem: jekyll-gist) -- Liquid tag for displaying GitHub Gists #Official #GitHub Pages
-
Twitter ★225 (gem: jekyll-twitter-plugin) by Robert Murray -- A Liquid tag plugin that renders Tweets from Twitter API. Currently supports the oEmbed API.
-
Content Blocks ★144 (gem: jekyll-contentblocks) by Rusty Geldmacher -- Lets you use Rails-like content_for tags in your templates, for passing content from your posts up to your layouts.
-
Beastie Press ★7 (gem: jekyll-beastiepress) -- FreeBSD utility tags.
-
SWF Object ★5 (gem: jekyll-swfobject) -- Liquid plugin for embedding Adobe Flash files (.swf) using SWFObject.
-
Date Chart ★9 (gem: jekyll_date_chart) -- Block that renders date line charts based on textile-formatted tables.
-
Quick Man ★7 (gem: jekyll_quick_man) -- Tag that renders pretty links to man page sources on the internet.
-
GitHub Sample Tag ★57 (gem: jekyll_github_sample) -- A liquid tag to include a sample of a github repo file in your Jekyll site.
-
Project Version Tag ★28 (gem: jekyll_version_plugin) -- A Liquid tag plugin that renders a version identifier for your Jekyll site sourced from the git repository containing your code.
-
Inline Highlight ★26 (gem: jekyll_inline_highlight) -- a tag for inline syntax highlighting.
-
Mermaid ★97 (gem: jekyll-mermaid) -- Simplify the creation of mermaid diagrams and flowcharts in your posts and pages.
-
Giphy ★16 (gem: jekyll-giphy) -- a plugin for embedding random giphy GIFs on Jekyll sites according to a user defined topic.
-
PlantUML ★39 (gem: jekyll-plantuml) -- Tag that renders UML diagrams using PlantUML.
-
Jekyll oEmbed ★8 (gem: jekyll_oembed) -- The tag version of ruby-oembed, letting you easily get embeddable HTML representations of supported web pages, based on their URLs. Archived
-
Jekyll PDF Embed ★35 (gem: jekyll-pdf-embed) - Plugin for embedding PDF files to any page or post
-
Jekyll Github Chart ★4 (gem: jekyll-github-chart) - Plugin to generate an SVG of Github contributions data
-
Jekyll Twitch ★6 (gem: jekyll-twitch) - Embed Twitch clips, vods, collections, and even broadcasts!
-
Jekyll Include ★12 (gem: jekyll_include_plugin) - Plugin for including local/remote file contents (or a part of it) into your pages.
-
jekyll_flexible_include (gem: jekyll_flexible_include) by Mike Slinn. <br> Jekyll's built-in include tag does not support including files outside of the
_includes
folder. This plugin supports 4 types of includes:- Relative paths.
- Absolute paths, with optional security.
- Paths relative to the user home directory, with optional security.
- Executable commands, with optional security.
Paths support environment variables expansion. Also supports highlighting text matching a regex, and dark mode.
-
Glossary Tooltip Tag ★7 (gem: jekyll-glossary_tooltip) by Erik Westrup - A tag for showing a tooltip with glossary term definitions on mouse hover. Common terms are defined in a shared file that can be re-used across all pages.
-
jekyll_archive_display (gem: jekyll_archive_display) by Mike Slinn – Jekyll tag plugin that lists the names and contents of each entry in a
tar
file. -
jekyll_download_link (gem: jekyll_download_link) by Mike Slinn – Generates a link to download a file. The path can be absolute or relative to the website.
-
jekyll_href (gem: jekyll_href) by Mike Slinn. <br> This plugin provides a versatile Jekyll tag that generates an a HTML href that defaults to
target="_blank"
andrel="nofollow"
. URLs can contain environment variable references. Also provides a convenient way to generate formatted and clickable URIs. Features optional automatically-generated soft hyphens. Thehref
tags in a page can be summarized by thehref_summary
tag. -
jekyll_outline (gem: jekyll_outline) by Mike Slinn – Organizes the index of a collection into chapters.
-
jekyll_pre (gem: jekyll_pre) by Mike Slinn – Jekyll tags for HTML <pre/>; copy content button, unselectable text, and incorporating command-line output into documents.
Search Engine Optimization (SEO) & Redirects
- Jekyll::NewsSitemap ★6 (gem: jekyll-news-sitemap) -- Jekyll plugin to silently generate Google News Sitemap based on posts #Official #GitHub Pages Archived
- SEO Tag ★1.4k (gem: jekyll-seo-tag) -- a plugin to add metadata tags for search engines and social networks to better index and display your site's content #Official #GitHub Pages
- Sitemap Generator ★851 (gem: jekyll-sitemap) -- a plugin to silently generate a sitemaps.org compliant sitemap for your site #Official #GitHub Pages
- Redirect From ★691 (gem: jekyll-redirect-from) -- seamlessly specify multiple redirections URLs for your pages and posts #Official #GitHub Pages
- Google Search Console Verification File Generator ★3 (gem: jekyll-google_search_console_verification_file) by Erik Westrup - A very simple plugin that will generate a Google Search Console verification file to your
_site/
directory in a Jekyll project. This file is used by Google to verify that you own the site and could look for example likegooglef47733b3288357e4.html
.
Analytics
- Analytics ★191 (gem: jekyll-analytics) by Hendrik Schneider -- adds webtracking easily to your site; supports multiple trackers like Google Analytics, Piwik, etc.
Generators
- Emoji ★85, gem: emoji_for_jekyll -- seamlessly enable emoji for all posts and pages
- Autolink Email ★13, gem: jekyll-autolink_email by Ivan Tse -- Autolink your emails.
- Git Metadata ★67, gem: jekyll-git_metadata by Ivan Tse -- expose Git metadata for your templates
- Auto Image ★77, gem: jekyll-auto-image by Merlos -- gets the first image of a post; useful to list your posts with images or to add twitter cards to your site
- Umlauts ★8, gem: jekyll-umlauts by Arne Gockeln -- this generator replaces all german umlauts (äöüß) case sensitive with html
- Premonition ★49, gem: premonition by Jakob Vad Nielsen -- Converts blockquotes into customizable styled markup blocks, like notes or warnings.
- Jekyll Data Pages Generator ★336, gem: jekyll-datapage-generator by Adolfo Villafiorita -- Allows one to specify data files for which we want to generate one HTML page per record.
Commands & Switches
- Compose ★540 (gem: jekyll-compose) -- streamline your writing with these commands #Official
- jekyll-gitlab-letsencrypt ★60 (gem: jekyll-gitlab-letsencrypt) -- Automate letsencrypt requests/renewals for gitlab pages
Importers
- Importers ★456 (gem: jekyll-import) -- The "import" command for importing from various blogs #Official
Other
- GitHub Metadata ★215 (gem: jekyll-github-metadata) --
site.github
#Official #GitHub Pages - Jekyll Spaceship ★381 (gem: jekyll-spaceship) -- 🚀 A Jekyll plugin to provide powerful supports for table, mathjax, plantuml, mermaid, emoji, video, youtube, vimeo, dailymotion, audio, spotify, soundcloud, etc.
- Rendering ★22 (gem: jekyll-rendering) -- provide alternative rendering engines. Archived
- Contentful ★94 (gem: jekyll-contentful-data-import) -- Adds a
contentful
sub-command to Jekyll to import data from Contentful. - Paspagon ★10 (gem: jekyll-paspagon) -- sell your posts in various formats for cryptocurrencies.
- PWA-Workbox ★22 (gem: jekyll-pwa-workbox) -- Makes your PWA/Website available offline using Workbox. Injects a precache list into the service-worker and takes care of the registration process in a secure way.
- Target Blank ★82 (gem: jekyll-target-blank) -- Automatically adds
target="_blank"
to external links, can add css-classes and/or variousrel=""
attributes. - Workbox ★14 (gem: jekyll-workbox-plugin) -- Generate Service Worker using Google Workbox.
- Bootstrap 5 Tabs (gem: jekyll_bootstrap5_tabs) – Enables Bootstrap 5 tabs in Jekyll content.
- jekyll-http-request (gem: jekyll-http-request) by Jirawat Boonkumnerd -- Liquid Filter for HTTP requests, helps get HTTP response data to the page content and cache.
Assets & Converters & Minifiers
- Sass Converter ★154 (gem: jekyll-sass-converter) -- a Sass converter #Official #GitHub Pages
- Assets 3 ★1.1k (gem: jekyll-assets) -- asset pipelines #Official
- Asset Pipeline Reborn ★52 (gem: japr) - powerful asset pipeline that collects, converts and compresses JavaScript and CSS assets.
- Mini Bundle ★67 (gem: jekyll-minibundle) -- asset bundling and cache busting using external minification tool of your choice. No gem dependencies.
- Minifier ★232 (gem: jekyll-minifier) -- minifies HTML, XML, CSS, and Javascript both inline and as separate files utilising yui-compressor and htmlcompressor.
- Autoprefixer ★64 (gem: jekyll-autoprefixer) -- autoprefixer integration for Jekyll
- jekyll_archive_create
(gem: jekyll_archive_create)
by Mike Slinn –
Makes
tar
andzip
files based on_config.yml
entries. - Compass ★57 (gem: jekyll-compass -- easily integrate Compass and Sass with your site. Archived
- Coffeescript ★44 (gem: jekyll-coffeescript) -- a CoffeeScript converter #Official
- Opal ★34 (gem: jekyll-opal) -- convert your Ruby into JavaScript using Opal #Official
Coding Support for Plugins & Liquid Programming
- jekyll_all_collections (gem: jekyll_all_collections) by Mike Slinn – If your Jekyll website has several collections, this plugin provides an aggregated collection.
- jekyll_draft (gem: jekyll_draft) by Mike Slinn – This plugin’s filters provide a simple means for marking draft pages in development mode.
- jekyll_plugin_logger (gem: jekyll_plugin_logger) by Mike Slinn – Colored Jekyll logging for plugins.
- jekyll_plugin_support (gem: jekyll_plugin_support) by Mike Slinn – Ruby gem that facilitates writing and testing Jekyll plugins.
- jekyll_nth
(gem: jekyll_nth)
by Mike Slinn –
Liquid filter that returns item
n
of a Ruby array, origin 1. - jekyll_random_hex (gem: jekyll_random_hex) by Mike Slinn – Outputs a string of random hexadecimal characters of any length.
Authentication & Authorization
- GitHub OAuth ★821 (gem: jekyll-auth) by Ben Balter et al -- use GitHub OAuth to serve a protected site to your GitHub org
Admin & Visual Editors
-
Admin ★2.6k (gem: jekyll-admin) by Ben Balter, Mert Kahyaoğlu et al -- adds a traditional content management system-style graphical interface to author content and administer sites #Official
-
Manager ★51 (gem: jekyll-manager) by Ashwin Maroli -- An administrative framework for Jekyll sites, Jekyll Manager is essentially Jekyll Admin repackaged with some alterations.
-
Notion Fetch ★4 (gem: jekyll-fetch-notion) -- Makes it easy to manage your website content using Notion (git-based approach).
Watch & Live Reload
- Watch ★88 (gem: jekyll-watch) -- rebuild your site when a file changes with the
--watch
switch #Official - Hawkins ★57 (gem: hawkins) -- adds a
liveserve
sub-command to Jekyll that incorporates LiveReload into your pages while you preview them. No more hitting the refresh button in your browser! Archived
Testing & Proofing
- Front Matter Tests ★28 (gem: jekyll_frontmatter_tests) by Greg Boone et al -- tests the front matter of posts and other collection documents against a schema. Archived
Upload & Deploy
- Jekyll Deploy Action ★177 (jekyll-deploy-action) -- 🪂 A Github Action to deploy the Jekyll site conveniently for GitHub Pages.
- Deploy ★33 (gem: jekyll-deploy) -- adds a
deploy
command - ZMediumToJekyll ★3 -- A public GitHub template repo that can help you easily move your Medium posts to a Jekyll blog and keep them in sync in the future, by simply click 'Use this template' to get started!
Debugging
- Jekyll Debug ★12 (gem: jekyll-debug) a filter that allows a user to debug liquid filters and tags at runtime
More
Note: For all jekyll plugin scripts & pasties, see the scripts & pasties page.
Meta
License
The awesome list is dedicated to the public domain. Use it as you please with no restrictions whatsoever.
Questions? Comments?
Post them to the jekyll talk forum. Thanks!