déGit Pages Jekyll Preprocessor

déGit Pages supports Jekyll as a built-in preprocessor for Branch Deployments, letting you use Jekyll’s templating, Markdown processing, and plugin ecosystem without any external CI setup or custom web design - just your README, deployed as a beautiful website, just like this one.

What is Jekyll?

Jekyll is a static site generator written in Ruby. It converts Markdown and Liquid templates into a static site, and is the same preprocessor used by GitHub Pages. déGit Pages runs Jekyll on your behalf when the Jekyll preprocessor is enabled for a Branch Deployment.

Supported plugins

The following plugins may be listed under plugins: in your _config.yml and included in your Gemfile. Any plugin not on this list will be stripped before your site is built.

Plugin / Gem name Description & Gemfile Source
déGit Pages × Catppuccin Jekyll Theme
jekyll-theme-degit-pages-ctp
A Catppuccin recolor of the déGit Pages Jekyll Theme (learn more here)
git: "https://www.degit.click/deGit/degit-pages-jekyll-theme-ctp.git"
Jekyll Feed
jekyll-feed
Generates an Atom feed of your posts
Jekyll SEO Tag
jekyll-seo-tag
Adds SEO meta tags to your pages
Jekyll Sitemap
jekyll-sitemap
Generates a sitemap.xml
Jekyll Paginate
jekyll-paginate
Adds pagination support for post listings
Jekyll Redirect From
jekyll-redirect-from
Redirects old URLs to new ones via front matter
Jekyll Relative Links
jekyll-relative-links
Resolves relative Markdown links between pages
Jekyll Optional Front Matter
jekyll-optional-front-matter
Allows Markdown files without front matter to be processed
Jekyll Readme Index
jekyll-readme-index
Uses README.md as the index page of a directory
Jekyll Titles from Headings
jekyll-titles-from-headings
Infers page titles from the first heading in each file
Jekyll Github Flavored Admonitions
jekyll-gfm-admonitions
Adds support for GFM Alerts
Jekyll Glossary Tooltip
jekyll-glossary_tooltip
Adds glossary tooltip Liquid Syntax
Jekyll Figure
jekyll-figure
Adds figure and figcaption tags to images
Jekyll Figure Auto
jekyll-figure-auto
Automatically adds figure and figcaption tags to images without having to manually insert {\% figure \%} tags
git: "https://www.degit.click/kanskje00/jekyll-figure-auto.git" (Requires jekyll-figure to be enabled as a plugin)
Jekyll BaseURL Images
jekyll-baseurl-images
Adds base URL to images to avoid weird trailing slash issues
git: "https://www.degit.click/kanskje00/jekyll-baseurl-images.git"
Jekyll Codeblock Labels
jekyll-codeblock-labels
Adds language labels to code blocks
git: "https://www.degit.click/kanskje00/jekyll-codeblock-labels.git"
Jekyll Color Tags
jekyll-color-tags
Turns your color codes colorful, like #544B99
git: "https://www.degit.click/kanskje00/jekyll-color-tags.git"

Supported themes

The following themes may be used via the theme: key in your _config.yml. Themes must also be listed in your Gemfile.

Theme / Gem name Description & Gemfile Source
déGit Pages
jekyll-theme-degit-pages
The official déGit Pages theme. Highly customizable (learn more here)
git: "https://www.degit.click/deGit/degit-pages-jekyll-theme.git"
Minima
minima
Jekyll’s default theme — clean and minimal
Midnight
jekyll-theme-midnight
Dark theme from GitHub Pages
Texture
texture
Light, content-focused theme

Usage guide

Enabling Jekyll

To enable the Jekyll preprocessor, go to your repository’s Settings -> Pages, and:

  • Check Enable Pages
  • Select Static under Site Type
  • Select Branch under Deployment source
  • Select which Branch and Folder to use as the source for Jekyll
  • Under Preprocessor, select Jekyll (deGit/degit-pages-jekyll-preprocessor)
  • Set the rest of Pages config to your liking

Example Pages settings configuration

Example Pages settings configuration

Default site

If your repository does not include a Gemfile or _config.yml, déGit Pages will use the following defaults:

Default Gemfile:

source "https://rubygems.org"

gem "jekyll"
gem "minima"
gem "jekyll-feed"
gem "jekyll-seo-tag"
gem "jekyll-readme-index"
gem "jekyll-titles-from-headings"
gem "jekyll-optional-front-matter"

Default _config.yml:

theme: minima

plugins:
  - jekyll-feed
  - jekyll-seo-tag
  - jekyll-readme-index
  - jekyll-titles-from-headings
  - jekyll-optional-front-matter

This means a repository containing only Markdown files — including a README.md — will produce a working site with no configuration needed.

If you have a _config.yml without a theme key, and have no custom _layouts folder, the preprocessor will inject the Minima theme for you.

Gemfile

To customise which gems are used, add a Gemfile to the root of your repository. Only gems on the supported plugins and themes lists above will be installed — anything else is stripped before the build runs, and will most likely break the build or the way your site looks.

source "https://rubygems.org"

gem "jekyll"
gem "jekyll-seo-tag"
gem "jekyll-sitemap"
gem "jekyll-theme-degit-pages", git: "https://www.degit.click/deGit/degit-pages-jekyll-theme.git"

_config.yml

Add a _config.yml to the root of your repository to configure Jekyll and its plugins. The plugins: key must only list supported plugins — unsupported entries are stripped before the build runs.

title: My Site
description: A site hosted on déGit Pages.

theme: jekyll-theme-degit-pages

plugins:
  - jekyll-seo-tag
  - jekyll-sitemap

Using a custom theme

If you would like to use a custom theme, you can create a _layouts folder in the root of your source directory. This will prevent the preprocessor from injecting a default theme, allowing you to build your own.

Using unsupported plugins and themes

The Jekyll preprocessor does not support plugins and themes that are not preapproved. If you would like to use a plugin or theme not listed here, you can open an issue with a plugin request or theme request label. I will try to review these ASAP :3

More resources