Library

Project Broadsheet's public-domain library. Host full-length works organized by chapter, with reader progress tracking, a floating table of contents, and chapter-by-chapter navigation.

Specialty Content Updated April 17, 2026 v1.0.0

The library is a dedicated content type for long-form works — public-domain books, serialized essays, lengthy reports. It gives each work its own index page, individual chapter pages, a floating table of contents, reading-progress persistence, and chapter-to-chapter navigation that preserves the reader's place.

Define a work

Works are defined in src/_data/library.js:

export default [
  {
    slug: "great-expectations",
    title: "Great Expectations",
    creator: "Charles Dickens",
    year: 1861,
    description: "The coming-of-age of Philip 'Pip' Pirrip.",
    cover_image: "/assets/img/library/great-expectations.jpg",
    total_chapters: 59,
    estimated_hours: 14
  }
];

Add chapters

Chapters are Markdown files at src/content/library/{work-slug}/chapter-{n}.md:

---
layout: layouts/library-chapter.njk
work: great-expectations
chapter: 1
chapter_title: "My father's family name being Pirrip..."
---

Chapter body in Markdown.

The chapter template automatically adds prev/next navigation, a reading progress bar, and saves the reader's scroll position between visits.

Reader features on library pages

  • Floating table of contents. Jumps between chapters.
  • Reading progress bar. Persists in localStorage.
  • "Continue reading" button. On the work's index page, jumps to the last chapter the reader opened.
  • Print CSS. Readers can print any chapter or the complete work.

Work index page

Each work automatically gets an index page at /library/{work-slug}/ with:

  • The cover image and metadata.
  • A full chapter list.
  • Total reading time and percent completed for the current reader.

What to do next

  • Editions for numbered issues that group shorter articles.
  • Reviews for book, film, and podcast reviews.
  • Custom layouts if you want a different chapter template.
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.