awesome-jekyll-plugins

awesome-jekyll-plugins

A collection of awesome Jekyll plugins (gems, scripts, pasties, etc.)

Awesome Series @ Planet Jekyll

JekyllJekyll ThemesJekyll PluginsJekyll 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

Multi Language / Multi Lingual

  • 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

Tags & Taggings, Categories & Categorizations

Pagination

Figures & Captions

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 and height 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 the textilize 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 and basename_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, and append_suffix_if_does_not_start_with.

Tags

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.
    This plugin provides a versatile Jekyll tag that generates an a HTML href that defaults to target="_blank" and rel="nofollow". URLs can contain environment variable references. Also provides a convenient way to generate formatted and clickable URIs. Features optional automatically-generated soft hyphens. The href tags in a page can be summarized by the href_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

Analytics

  • Analytics ★191 (gem: jekyll-analytics) by Hendrik Schneider -- adds webtracking easily to your site; supports multiple trackers like Google Analytics, Piwik, etc.

Generators

Commands & Switches

Importers

Other

Assets & Converters & Minifiers

Coding Support for Plugins & Liquid Programming

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

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

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!