Jekyll
Jekyll is Ruby software that helps you create "Simple, blog-aware, static sites" suitable for static domain hosting. It is simple in sense that it does one thing well. It compiles HTML and markdown files into a static website.
- GitHub: https://github.com/jekyll/jekyll
Why
The learning curve for Jekyll is steep for those not used to HTML.
However, there is a pattern of people migrating from WordPress to Jekyll, and many people in IRC have experience with setting up Jekyll.
Free GitHub Hosting
Jekyll gained popularity by GitHub's offer to build and host your jekyll powered website for free. While GitHub may be a form of a silo that can easily host a Jekyll website, Jekyll has no dependence upon GitHub. Projects like jekyll-hook can help replicate the publishing workflow that GitHub offers on your own server.
Why use Jekyll for your personal site? See below for Pros and cons.
Pros
- It's git friendly!
- It's a great way to learn more about websites HTML, CSS and other web technologies and standards.
- Open source and free!
- Large community and active development team
- Lets you create pretty much any kind of static website you want.
- Has a powerful plugin system
- Easily self hosted
- Simple static pages are the result of your hard work.
- Free hosting on gh-pages or amazon s3
Cons
- The liquid templating engine has no love for pretty HTML
- It takes a while to learn the ins and outs of what can be created.
- Static pages restricts your options when participating in the real-time web
- POSSE is tricky with jekyll.
- Learning to use the ruby toolchain is really difficult for beginners and non-technical people
- Minimal options for sending webmentions. Webmentions must be sent after site built due to need for URL to exist.
- Displaying webmentions on Jekyll is difficult if you have a lot of posts. The more posts you have, the longer it takes to render webmentions onto their respective pages.
- Jekyll only supports one post type. This means you have to get creative if you want to create multiple feeds on your website.
How to
Jekyll itself has excellent documentation on how to get started. Once you've got a site working using the steps at https://jekyllrb.com/docs/installation/, look into adding a theme that's tailored to IndieWeb best practices.
Be sure to add extensions to help you like this Webmention sending gem.
IndieWeb Support
Jekyll supports microformats2 by default (default theme Minima v2.2.0) as of 2018-01-22.
History:
- 2017-09-22 Barry Frost submitted a pull request to add Microformats markup to Minima, the default Jekyll theme. The PR adds h-entry markup to posts and h-card markup to the existing content in the footer. Social links are updated with rel=me.
- 2017-09-26 the pull request was approved and waiting to merge to master ready for release.
- 2017-11-05 the pull request was merged.
IndieWeb Examples
IndieWeb community members using Jekyll on their own primary sites: (this section needs review to determine who here is actually active in the community! and otherwise move them down to "Other independents" down below)
- Calum Ryan (2015) on [1]
- Ben Ward (2011) on benward.me
- Bret Comnes (2013) on bret.io
- Pelle Wessman (2014) on voxpelli.com using GitHub Pages. Supports eg. Webmention and Micropub.
- Vincent (2018) on vincentp.me using mastr-cntrl to Support Micropub and Webmention
- Will Norris (2011, 2014) on willnorris.com (switched away from WordPress).
- Rudy Jahchan: on rudyjahchan.com (moved from WordPress)
- Leonardo Zangrando (2013): on lionzan.me
- Alan Leal (2014): on Leal.IO using GitHub Pages
- River MacLeod on mm0hai.net
- Michael Bishop on miklb.com
- Chimo on chromic.org
- Christophe Ducamp on christopheducamp.com (using CDN Netlify - details http://ducamp.me/2016-365#dogfood_jamstack)
- Eddie Hinkle on eddiehinkle.com
- AaronGustafson on aaron-gustafson.com
- Jacky AlcinΓ© on jacky.wtf
- Ted Tschopp (2018) on tedt.org using GitHub Pages. Supports Webmention and Micropub.
- tomasparks on tomasparks.name using Github Pages.
- Infominer.id on Decentralized-Web Histories and Agoric Records using 2 different Jekyll Indieweb themes.
- capjamesg previously used Jekyll for his blog at jamesg.blog.
- Template:connorgurney at connorgurney.me.uk
- ...Lots of others. Add yourself!
Other independents that are using it on their primary self-identifying site:
- Rudy Jahchan on rudyjahchan.com[2]
- Leonardo Zangrando (2013) on lionzan.me
- Tristan Thomas on tristanthomas.me (using Sandstorm.io)
- atomicules on atomicules.co.uk
- ...
Other Notable Examples
- Github uses jekyll for their own support documents blog and used to use it for their blog.
- TravisCI uses it for their documentation website (source).
- ...
Related Tools
- Pagoda - a self hosted, mobile friendly editor for jekyll pages.
- jekyll hook - A self hosted gh-pages like server.
- Prose.io - An editor for github repositories. Itself is hosted on GH-pages and runs almost entirely client side in the browser. read more
- gitpub an experimental git based micropub client that works with jekyll.
- jekmentions - a webmention endpoint specifically designed for Jekyll sites on GitHub pages that commits the received webmentions to a Jekyll collection.
- A quick, but wrong, fix for blank lines in Jekyll - a hacky script (see bottom of blog post) that strips out extraneous blank lines (unless they are in pre or code blocks) from a built site.
- Jekyll-IndieWeb - a Jekyll starter install with microformat markup, including support for h-card and receiving webmentions. Work in progressβ¦
- Micropub-to-GitHub - a self-hosteable Micropub endpoint that accepts Micropub requests, formats them for Jekyll and then commits them to a GitHub repository. Perfect in combination with GitHub Pages.
- webmention.herokuapp.com - a hosted Webmention endpoint that was built to make it easy to accept Webmentions on a static site like Jekyll.
- jekyll-webmention_io - A Jekyll plugin for working with webmention.io (supports baking existing webmentions into the page at build time, loads newer ones with JS).
- Morris - A PHP web hook for caching mention data from webmention.io as Jekyll data files rather than querying webmention.io at build time.
- ... Please add more as you find them
Articles
- Enabling Webmentions in Jekyll by AaronGustafson on 2014-11-18
- Sending webmentions from Travis CI using Jekyll-Indieweb on Netlify by Tom Brown on 2017-06-19
- Adding Webmentions to Jekyll by Jordan Merrick on 2018-07-22
- Adding Webmention Support to a Static Site by Keith J. Grant on 2019-02-01
- Indieweb Webmentions on Middleman or Jekyll by Evan Travers on 2019-11-14
- The IndieWeb and Webmentionsby Brett Terpstra on 2020-01-13
- 2022-05-16 : Indieweb and webmentions for my static site
Troubleshooting
Something is not working on my local box
Something is not working on my local box.
Be sure to:
- Update rvm (ruby)
- install the liquid gem
- gem install jekyll
gem install jekyll hangs indefinitely
"gem install jekyll" hangs indefinitely
Note:
- gem install jekyll takes a very long time. It may appear to be hanging but just let it go. Go for a walk or something.
Asks
- It would be nice to document step by step on example solutions and problems with POSSE-ing a typical Jekyll install.
See Also
- file-storage
- projects
- GitHub
- WordPress
- static site
- static site generator
- https://github.com/dumaurier/pwa_jekyll
- https://github.com/Wiredcraft/jekyllplus
- https://katydecorah.com/code/flickr-to-jekyll/
- Criticism: "frozen mode and permanent hiatus" per 2021-09-14 The Register: Future of Jekyll project (engine behind GitHub Pages) in doubt? β> Recommend Eleventy instead per
β¦ my advice would be to bet on Eleventy who is one of the SSG that provides the easiest path to migrate from Jekyll.