press v1.18.0
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.orgBookJSON-LD node (name, authors, publisher, description,
date, and the available editions asworkExample). Nothing is invented --
a canonical URL,og:url, and cover image appear only when asite-url
(and cover) is configured, so an offline build never claims a false
canonical.press verifyfails 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 inmainand gets no start-reading block (#160). - Git subprocesses observe only their own repository. A
git commitruns
its hooks withGIT_INDEX_FILE(andGIT_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-bindingGIT_*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 commithook without a workaround (#176).