Skip to content

0.2.3

Choose a tag to compare

@uchimata2 uchimata2 released this 13 Aug 01:38
· 388 commits to master since this release

Three fixes to the published plugin. Two of them came from looking at a rendered deck rather than
from running anything, and both turned out to be in this repository's own example deck as well as in
the deck that reported them.

The printed contents page collided at 13 entries (T-116)

On paper, cards printed through each other and the last one printed through the page footnote and off
the sheet. The stated limit was 24 entries.

The entry height was part of it, but the first cause is that the fault lives only in paged layout.
On screen a grid item's automatic minimum size is zeroed by overflow:hidden, so a card takes its
track and clips. Chrome's paged layout gives it its own content height instead. Same deck, same day:

screen, with the print rules lifted onto it   card 175.7 du   row gap +26.0 du   clean
the printed PDF                               card 267 du     row gap -49.2 pt   overlap

A 267 du card in a 201 du pitch overhangs by a third of a row. .cbox now states both bounds,
max-height: min(268du, 100%), instead of trusting the stretch to hold.

Holding the cards to their rows then exposed a second-line clip that the overflow had been hiding: a
box printing outside its own card looks like a full description until you notice it is sitting in the
card below. The room per row band is fractional, so the description clamp is now per band and every
band shows a whole number of lines.

The compression bound was re-measured against a three-line description in every entry, which is the
case the old fixture lacked. It is still 16 entries with descriptions and 24 without.

A colophon had to claim a stage it was not in (T-108)

data-stage was mandatory and its vocabulary held only argument stages, so back matter had nowhere to
go. The ruler named the borrowed stage at rest, the section ticks counted it, and the contents page
labelled it. Four renderings read one manifest, so the miscount was in all four.

data-stage="back" is the value that was missing. A slide carrying it starts no section, is counted
in no stage, is named by its own title on the ruler, and is labelled Back matter on the contents
page. It carries no mark, because the mark is keyed to the stage and it has none.

This repository had the same defect in a worse form: the reference deck had invented an eighth stage
and left STAGE_ICON at seven, so its contents box drew a mark that referenced nothing. shell.py check now gates that pair.

The page-count checker failed a correct deck (T-120)

printpages.py's own entry point defaulted the slide count to a hardcoded 12, so it reported FAIL on
a deck printing 14 correct pages while check.py, calling the same function with a rendered count,
reported pass on the same file. It now counts the slides in the deck.

What newly fails, and the smallest edit

Nothing new is required of a deck's content. What changed is the shared shell: the component block
and the deck script. data-stage="back" is additive and takes no existing value away.

What newly fails The smallest edit
shell.py check on every deck built before this release: COMPONENTS differs from shell/components.css and SCRIPT differs from shell/deck.js There is no command for this yet. Rebuild the deck, or replace the two regions by hand. T-124 exists to make it one command
shell.py check reporting STAGE TABLE Give every stage an icon, or move back matter to data-stage="back" and delete the stage invented for it. This one is a real defect the gate could not see before

The two region failures are the deck being one release behind rather than anything wrong with it. A
byte-for-byte shell comparison is what makes the shared half trustworthy, and its other edge is that
every release touching shell/ fails every deck in the wild.

Also

contents_bound.py pins its fixture entry height and says what the bound assumes. render.slide_count
matches slide as a class token rather than a prefix, so it cannot disagree with the DOM count it is
compared against. DS-225 and DS-226 both took dated corrections.

Nothing here can see a print-only layout fault. That gap is T-123.