Jekyll

From IndieWeb

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.

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)

Other independents that are using it on their primary self-identifying site:

Other Notable Examples

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

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

Open Source IndieWeb related projects and tools
Topics Why open source? β€’ How to open source a project β€’ Open for contributions β€’ IndieWeb Principles
PHP b2evolution β€’ CASSIS β€’ Known β€’ Falcon (portions) β€’ p3k β€’ stapibas β€’ dobrado β€’ Grav β€’ Miniflux-legacy β€’ processwire β€’ Reader Self β€’ Textpattern β€’ tt-rss β€’ Twyne β€’ TYPO3
WordPress (PHP) Indieweb Plugin β€’ Webmention β€’ Semantic Linkbacks β€’ Micropub β€’ IndieAuth β€’ Post Kinds β€’ Syndication Links β€’ WebSub plugins β€’ See Template:WordPress for others.
Python Bridgy Fed β€’ BeautifulSoup β€’ Bleach β€’ Bundle β€’ django CMS β€’ IndieWeb Search β€’ IndieWeb Utils β€’ kaku β€’ mf2util β€’ Nefelibata β€’ ninka β€’ Publ β€’ python-indieweb β€’ Red Wind β€’ Requests β€’ ronkyuu β€’ Woodwind
Ruby Dark Matter β€’ Feedbin β€’ FrancisCMS β€’ Micropublish β€’ Publify β€’ Ruby on Rails β€’ Sinatra β€’ Singulus β€’ Transformative β€’ webmention.io β€’ Jekyll
JavaScript AerosolCMS β€’ CASSIS β€’ Ghost β€’ Camel β€’ IndieKit β€’ Eleventy
Others Hugo (Go) β€’ Firefox β€’ NetNewsWire