A charming Jekyll theme. linus.arthr.dev/
jekyll-theme
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

CSS 55.3%
HTML 41.2%
Ruby 3.4%
24 2 1

Clone this repository

https://tangled.org/arthr.me/linus https://tangled.org/did:plc:aeaouj6eedwqmk4z3pies55n/linus
git@tangled.org:arthr.me/linus git@tangled.org:did:plc:aeaouj6eedwqmk4z3pies55n/linus

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Linus#

A minimal Jekyll blog theme. Supports link posts, categories, tags, date archives, pagination, and dark mode out of the box.

Installation#

Add this line to your Jekyll site's Gemfile:

gem "linus"

And add this line to your Jekyll site's _config.yml:

theme: linus

Then execute:

$ bundle

Or install it yourself as:

$ gem install linus

Usage#

Layouts#

Layout Purpose
default Base layout — full HTML document, loads CSS, renders header and footer
blog Blog index listing with pagination; also used for date, tag, and category archives
post Single post view
page Simple content page

Writing posts#

Create files in _posts/ with this front matter:

---
layout: post
title: "My Post Title"
date: 2026-01-01
category: Notes
author: arthur
tags:
  - some tag
---

Link posts — set title to an empty string and provide a source URL. The post title renders as "↪ [fetched page title]" using jekyll-url-metadata:

---
layout: post
title: ""
source: "https://example.com/article"
category: Links
---

Authors#

Define authors in _data/authors.yml:

arthur:
  name: Arthur Freitas
  uri: https://arthr.me/

Reference them in post front matter with the author key.

Category colors#

Assign a background color to each category pill:

category_colors:
  - name: Links
    color: "#f0e68c"
  - name: Notes
    color: "#fa8072"

Date formats#

Customize how dates are displayed using strftime strings:

date_formats:
  day: "%b %d, '%y"
  month: "%b, '%y"
  year: "%Y"
main_menu:
  title: Navigate
  items:
    - url: "/about"
      label: About

footer_menu:
  title: Follow
  items:
    - label: RSS
      url: /feed.xml
      rel: alternate
    - label: External Site
      url: https://example.com
      rel: me
      external: true

Set external: true on any item to open it in a new tab.

Translations#

Override UI strings for archive headings and pagination:

translations:
  archive_date_title: "Archives from %date"
  archive_tag_title: "Posts tagged with %tag"
  archive_category_title: "Posts filed under %category"
  blog_pagination_title: "Blog pagination"
  blog_pagination_prev_page: "Previous page"
  blog_pagination_next_page: "Next page"

Pagination#

paginate: 12
paginate_path: "/pg/:num/"

Customization#

Custom styles#

Override or extend the theme's CSS by creating assets/css/theme.css in your site. This file is loaded last, after all theme styles. Use it to redefine CSS custom properties or add new rules:

:root {
  --font-body: Georgia, serif;
  --color-accent: tomato;
}

Custom fonts#

Create assets/css/fonts.css in your site to load your own web fonts:

@font-face {
  font-family: 'My Font';
  font-weight: 400;
  src: url('/assets/fonts/myfont.woff2') format('woff2');
}

Then reference it in theme.css:

:root {
  --font-body: 'My Font', sans-serif;
}

Development#

To set up your environment to develop this theme, run bundle install.

The repository is also a working Jekyll site for local development. To preview the theme, run bundle exec jekyll serve and open your browser at http://localhost:4000. As you modify theme files, the site regenerates automatically.

Posts in _posts/ and index.html exist only for local testing and are not included in the published gem.

License#

The theme is available as open source under the terms of the MIT License.