Bookshelf

A curated reading list at /bookshelf/, one Markdown file per book, grouped by category and filterable by tag.

Specialty Content Updated April 20, 2026 v1.0.0

The bookshelf is a publication-curated reading list — not a library of full texts (that is the Library), but a list of books the publication recommends. It lives at /bookshelf/, and each book is its own Markdown file under src/bookshelf/. A folder-level data file sets the shared layout and permalink pattern.

Add a book

Each entry is a Markdown file at src/bookshelf/{slug}.md:

---
layout: book-entry
title: "The Age of Reason"
bookAuthor: "Thomas Paine"
year: 1794
publisher: "(Originally self-published)"
category: "History of Freethought"
description: "The most widely read freethought text of the 18th century — Paine's systematic, accessible critique of revealed religion."
bestFor: "Readers who want to understand how 18th-century radicals thought about religion and reason."
difficulty: "Accessible"
tags:
  - bookshelf
  - freethought
  - thomas-paine
date: 2026-03-18
---

Optional extended notes in Markdown — read this when…
FieldRequiredNotes
titleYesBook title
bookAuthorYesAuthor of the book (kept distinct from author, which is the reviewer)
yearNoPublication year (original, not the edition you're linking to)
publisherNoOriginal publisher or imprint
categoryYesUsed to group entries on the index page
descriptionYes1–3 sentence annotation explaining why you recommend it
bestForNoOne-line audience note shown on the card
difficultyNoFree-form label (Accessible, Intermediate, Advanced)
tagsNoFor filtering. Include the bookshelf tag so it's picked up by the collection.
dateYesUsed to sort recently added picks

The folder-level src/bookshelf/bookshelf.json applies the book-entry layout and /bookshelf/{slug}/ permalink pattern to every file in the folder, so you don't need to repeat them in each entry.

The bookshelf index

/bookshelf/ renders all entries grouped by category, alphabetically within each group. Readers can filter by tag using the client-side filter — no page reload required.

Each entry shows title, book author, year, description, difficulty, and an optional link button when the body contains a "buy / borrow / read free" link.

Creating a new category

Categories are free-form strings. Add a new category value in any Markdown file and it automatically becomes a heading on the next build. There is no separate category registration step.

What to do next

  • Library for hosting full public-domain texts with chapter navigation and reading progress.
  • Quotes for a pull-quote collection alongside your reading recommendations.
  • Data files reference for how data files work across the framework.
Still need help?

Browse Support for community channels and paid support options, or book a call if you'd like me to set it up for you.