Skip to content

press v1.18.0

Choose a tag to compare

@clintecker clintecker released this 21 Jul 01:07

Book web surfaces and developer-experience: structured metadata on the book
landing page, a real start-reading reader index, git-index isolation so the
commit hook runs without a workaround, and documentation corrected against
the current code.

Added

  • The book's landing page declares structured metadata generated from the
    book's own config (#158, book half): Open Graph and Twitter-card tags, and
    a schema.org Book JSON-LD node (name, authors, publisher, description,
    date, and the available editions as workExample). Nothing is invented --
    a canonical URL, og:url, and cover image appear only when a site-url
    (and cover) is configured, so an offline build never claims a false
    canonical. press verify fails if the landing metadata drifts from the
    config: a stale JSON-LD title, a canonical without a site-url, or a
    site-url without a canonical.

Fixed

  • The chunked reader's index is a start-reading page, not an empty shell. Its
    <main id="content"> -- the target of the "Skip to chapter" link -- was
    empty, so the skip link went nowhere and there was no explicit way to begin
    reading. It now opens with an orienting line and one primary "Start
    reading" action pointing at the first part (by the same ordered manifest
    the previous/next pager uses), above the chapter contents; a chapter page
    keeps its own body in main and gets no start-reading block (#160).
  • Git subprocesses observe only their own repository. A git commit runs
    its hooks with GIT_INDEX_FILE (and GIT_DIR) pointing at the outer
    commit's transient index, so the test suite -- and press itself -- would
    build or inspect a nested repository against the wrong index (a source
    archive came out empty, damage tests failed for the wrong reason). The
    production process runner now strips the ambient repo-binding GIT_* from
    every git command it runs, closing the leak at the one boundary all git
    calls pass through; an explicitly injected git env is still respected for
    tests where git is the subject. The full suite now passes inside a real
    git commit hook without a workaround (#176).