Scaffold is a one-column minimalist Jekyll theme for bloggers.
According to Merriam-Webster, a scaffold is
a temporary or movable platform for workers (such as bricklayers, painters, or miners) to stand or sit on when working at a height above the floor or ground
So is the target of the Jekyll theme Scaffold. It doesn't need to be modern, powerful, colorful, or beautiful; It just needs to be simple, proper, naked, and neat.
Scaffold is empirical. Standing on it, you -- the blogger -- can build a great building based on your words.
Check the live demo.
- Normalize.css
- Open Color
- Dark mode, via
prefers-color-scheme
- Font Awesome
- Archive implemented by pure Liquid
- Pagination, via
jekyll-paginate
- Jekyll Feed
- Jekyll SEO Tag
- Jekyll Sitemap
- Google Analytics
- Disqus
- MathJax
Add this line to your Jekyll site's Gemfile
:
gem "jekyll-theme-scaffold"
And add this line to your Jekyll site's _config.yml
:
theme: jekyll-theme-scaffold
And then execute:
bundle
Or install it yourself as:
gem install jekyll-theme-scaffold
If you want to use this theme on GitHub Pages, you can do that via jekyll-remote-theme
:
-
Import
jekyll-remote-theme
in yourGemfile
:gem "jekyll-remote-theme"
-
Add these lines to your
_config.yml
:plugins: - jekyll-remote-theme remote_theme: sziv2p/jekyll-theme-scaffold
Variable | Type | Default | Specification |
---|---|---|---|
title |
String | --- | The title of the website |
tagline |
String | --- | The tagline of the website |
lang |
String | en |
The language of pages; The value can be overwritten by the lang variable on each page |
author.name |
String | --- | The name of the website author |
author.url |
String | --- | A URL of the website author |
date_format |
String | %-d %b %Y |
The date format which is used in many places on the website |
tags_path |
String | --- | A path to the archive-by-tags page; It is used by tags on each post |
google_analytics |
String | --- | Google Analytics tracking ID |
disqus |
String | --- | Disqus short name |
Variable | Type | Default | Specification |
---|---|---|---|
last_modified_at |
String | --- | The date of the last modification you made on a post after its publishing |
author |
String or Array | --- | The author name(s) of the post |
math |
Boolean | false |
Does enable MathJax on this page |
comments |
Boolean | true |
Does enable the Disqus comment system |
You can create a homepage for your blog by setting layout: home
in your index.html
.
You can configure the navigation of the website by creating a file _data/navigation.yml
in your repository, and put some data such as below into it.
- title: About
url: /about/
- title: Archive
url: /archive/
Scaffold allows you to show social links on the website, all you need to do is creating a file _data/social.yml
, for example,
- title: Email
url: mailto:[email protected]
icon: fas fa-envelope
- title: Twitter
url: https://twitter.com/sziv2p
icon: fab fa-twitter
- title: GitHub
url: https://github.com/sziv2p
icon: fab fa-github
The icon
property means a Font Awesome class, and you can select any one you like.
Pure provides some built-in archive pages. It is implemented in pure Liquid. If you want to archive posts by years, you can create a page and put these code in it:
---
layout: archive
type: years
---
Similarly, if you want to archive posts by categories or tags, you can set the type
property as categories
or tags
.
Pure leaves a placeholder to allow defining custom head. All you need to do is putting data into _includes/custom-head.html
, and they would be automatically included in <head>
.
Bug reports and pull requests are welcome on GitHub at https://github.com/sziv2p/jekyll-theme-scaffold. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
To set up your environment to develop this theme, run bundle install
.
Your theme is setup just like a normal Jekyll site! To test your theme, run bundle exec jekyll serve
and open your browser at http://localhost:4000
. This starts a Jekyll server using your theme. Add pages, documents, data, etc. like normal to test your theme's contents. As you make modifications to your theme and to your content, your site will regenerate and you should see the changes in the browser after a refresh, just like normal.
When your theme is released, only the files in _layouts
, _includes
, _sass
and assets
tracked with Git will be bundled.
To add a custom directory to your theme-gem, please edit the regexp in jekyll-theme-scaffold.gemspec
accordingly.
The theme is available as open source under the terms of the MIT License.