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.

restore posts

+221 -1
-1
.gitignore
··· 5 5 _site 6 6 Gemfile.lock 7 7 .DS_Store 8 - _posts 9 8 .claude 10 9 .claude* 11 10 CLAUDE.md
+75
_posts/2026-01-30-formatting-showcase.md
··· 1 + --- 2 + layout: post 3 + title: Formatting Showcase 4 + author: arthur 5 + tags: 6 + - meta 7 + --- 8 + 9 + This post exercises the theme's text formatting so you can see how everything looks together. 10 + 11 + ## Headings 12 + 13 + # Heading 1 14 + ## Heading 2 15 + ### Heading 3 16 + 17 + ## Prose 18 + 19 + Regular paragraph text sits at `1.125rem` with a line-height of `1.65`. It should be comfortable to read at length without feeling either cramped or too airy. Links [look like this](#) and are underlined by default. 20 + 21 + **Bold text** and *italic text* and `inline code` all work as expected. So does ~~strikethrough~~. 22 + 23 + ## Lists 24 + 25 + Unordered: 26 + 27 + - First item 28 + - Second item 29 + - Nested item 30 + - Another nested item 31 + - Third item 32 + 33 + Ordered: 34 + 35 + 1. Write the first draft 36 + 2. Let it sit overnight 37 + 3. Edit with fresh eyes 38 + 4. Publish 39 + 40 + ## Blockquote 41 + 42 + > Typography is what language looks like. 43 + > 44 + > — Ellen Lupton 45 + 46 + ## Code block 47 + 48 + ```ruby 49 + module Jekyll 50 + class LinkPost < Generator 51 + def generate(site) 52 + site.posts.docs.each do |post| 53 + next unless post.data["source"] 54 + # fetch metadata and enrich the post 55 + end 56 + end 57 + end 58 + end 59 + ``` 60 + 61 + ## Table 62 + 63 + | Feature | Supported | 64 + |---------|-----------| 65 + | RSS Feed | Yes | 66 + | JSON Feed | Yes | 67 + | Dark mode | Via `theme.css` | 68 + | Pagination | Yes | 69 + | Archives | Yes | 70 + 71 + ## Horizontal rule 72 + 73 + --- 74 + 75 + That covers the basics.
+25
_posts/2026-02-10-using-categories-and-tags.md
··· 1 + --- 2 + layout: post 3 + title: Using Categories and Tags 4 + author: arthur 5 + categories: 6 + - Notes 7 + tags: 8 + - jekyll 9 + --- 10 + 11 + Linus supports both categories and tags, and they work a bit differently from each other. 12 + 13 + **Categories** are high-level buckets — broad enough that most posts could fit into one or two. They get their own archive pages at `/:name/` and can be assigned colors in `_config.yml`: 14 + 15 + ```yaml 16 + category_colors: 17 + - name: Links 18 + color: "#f0e68c" 19 + - name: Notes 20 + color: "#fa8072" 21 + ``` 22 + 23 + **Tags** are more granular and exploratory. Use them for topics you want to be able to browse across, knowing that the archive page at `/tag/:name/` will pull everything together. 24 + 25 + The practical difference: a post about a CSS trick might be categorized as *Notes* and tagged `css` and `design`. The category describes the post's format; the tags describe its content.
+32
_posts/2026-03-05-typography-and-the-web.md
··· 1 + --- 2 + layout: post 3 + title: Typography and the Web 4 + author: arthur 5 + tags: 6 + - design 7 + - css 8 + --- 9 + 10 + Web typography has a reputation for being hard to get right. In practice, most of the work comes down to a handful of decisions made early: a readable typeface, a comfortable line length, and enough vertical rhythm that the page feels settled rather than cramped. 11 + 12 + ## Line length 13 + 14 + The classic guidance is 45–75 characters per line for body text. Much shorter and the eye is constantly wrapping; much longer and it struggles to track from the end of one line to the start of the next. This site keeps body text at around 420px, which lands in that range for most screen sizes. 15 + 16 + ## Vertical rhythm 17 + 18 + Spacing between elements should feel consistent — not identical, but *proportional*. Setting a base unit (say, `1rem` or `1.5rem`) and deriving margins and padding from it keeps things coherent without needing to hand-tune every element. 19 + 20 + ## Typefaces 21 + 22 + Linus ships with [Atkinson Hyperlegible](https://brailleinstitute.org/freefont), a typeface developed by the Braille Institute with legibility as the primary goal. Each character is designed to be as distinct as possible — helpful for anyone with low vision, and quietly pleasant for everyone else. 23 + 24 + ```css 25 + body { 26 + font-family: "Atkinson Hyperlegible", system-ui, sans-serif; 27 + font-size: 1.125rem; 28 + line-height: 1.65; 29 + } 30 + ``` 31 + 32 + The numbers are less important than the intention: make the text comfortable to read for a long stretch.
+8
_posts/2026-03-10-short-note.md
··· 1 + --- 2 + layout: post 3 + author: arthur 4 + categories: 5 + - Notes 6 + --- 7 + 8 + Switched from using `bundle exec` prefixes everywhere to setting `BUNDLE_BIN` in my shell config. Saves a few keystrokes per command, which adds up over a day of development. Small quality-of-life things compound.
+13
_posts/2026-03-15-link-post-demo.md
··· 1 + --- 2 + layout: post 3 + title: The Unreasonable Effectiveness of Plain Text 4 + author: arthur 5 + categories: 6 + - Links 7 + source: https://www.plaintextproject.com/ 8 + tags: 9 + - writing 10 + - tools 11 + --- 12 + 13 + A good overview of why plain text continues to outlast every productivity format that's come and gone. The point about longevity is the one that sticks: a `.txt` file written in 1985 still opens today without any compatibility dance.
+18
_posts/2026-03-22-on-writing-with-plain-text.md
··· 1 + --- 2 + layout: post 3 + title: On Writing with Plain Text 4 + author: arthur 5 + tags: 6 + - writing 7 + - tools 8 + --- 9 + 10 + There's something clarifying about writing in a format that has no toolbar. Markdown strips away the surface-level decision-making — bold or italic, which heading size, what font — and forces the question back to what the sentence is actually doing. 11 + 12 + I've been writing in plain text for years now. Everything from notes to long drafts lives in `.md` files, version-controlled, backed up, portable across every device and editor I'll ever use. The format will still open in 2040. 13 + 14 + The tradeoff is that rich media requires a bit more intention. Embedding a video or adding a caption to an image takes a line of HTML, not a drag-and-drop. I've come to see that friction as a feature. It slows me down enough to ask whether the thing I'm adding actually belongs there. 15 + 16 + > The best writing tools are the ones that disappear while you work. 17 + 18 + I keep coming back to this idea. A tool that stays invisible is one you've stopped fighting with. For me, that's a plain text file and a consistent publishing workflow. It might be something else entirely for you.
+42
_posts/2026-03-28-welcome-to-linus.md
··· 1 + --- 2 + layout: post 3 + title: Welcome to Linus 4 + author: arthur 5 + tags: 6 + - jekyll 7 + - blogging 8 + --- 9 + 10 + Linus is a minimal Jekyll theme built for personal blogs. It's designed to get out of the way and let the writing breathe — no heavy JavaScript, no complex build pipelines, just a Gemfile and a text editor. 11 + 12 + ## What's included 13 + 14 + Out of the box you get: 15 + 16 + - **Pagination** — posts are listed 12 per page 17 + - **Archives** — browseable by tag, category, month, and year 18 + - **Feeds** — both RSS and JSON Feed are generated automatically 19 + - **Link posts** — share links with optional commentary and rich previews 20 + - **Multi-author support** — define authors in `_data/authors.yml` 21 + - **SEO tags** — `jekyll-seo-tag` handles meta and Open Graph 22 + 23 + ## Getting started 24 + 25 + Install the gem and add it to your `_config.yml`: 26 + 27 + ```yaml 28 + theme: linus 29 + ``` 30 + 31 + Then run: 32 + 33 + ```bash 34 + bundle install 35 + bundle exec jekyll serve 36 + ``` 37 + 38 + Your site will be live at `http://localhost:4000`. 39 + 40 + ## Customization 41 + 42 + Drop a `assets/css/theme.css` into your site to override any styles — it's loaded last. You can also add `_includes/head.html`, `_includes/below-post.html`, or `_includes/end.html` to inject content at specific spots in the layout without touching theme files.