prodockit 0.38.0
A minor rather than a patch: three tables features change what an author writes, not only what was broken.
Added
Multi-row table headers, merged cells and rotated headings (#474). A Markdown table has one header row and no syntax for a second, so a heading needing two lines was written as a body row - and stopped repeating across pages, since only <thead> repeats. {: .header } moves the row where it belongs, colspan/rowspan come from attr_list directly, and {: rotate=270 width="1.8em" height="105pt" } turns a heading at 90 or 270 - width is required, since rotating without it renders the heading in a full-width column and looks like it worked.
{: .compact } for a table with many short columns (#489). The theme holds every header cell to a 5rem minimum width and 1.25em of padding either side, so a column holding H is as wide as one holding a sentence. One marker drops both, on a header cell, and applies to the PDF too - measured 57% over width becoming a fit on a real 14-column table.
Fixed
A sized table no longer looks like a different component (#490). Setting a column width took the table out of the theme's entire table style, not just the width control, rebuilding the gap with the PDF's own look - full grey grid, hard-coded border colour wrong in dark mode. It now keeps the theme's appearance, confirmed by comparing computed style against an unsized table on the same page.
A captioned figure is no longer narrower than the text around it (#485) - HTML's own <figure> margin was never reset, insetting a width="100%" image 30pt a side in the PDF while the same markup filled the column on the website. Reaches captioned tables too, since a table caption is a <figure>.
An image is no longer drawn off the edge of the paper (#480) - the PDF stylesheet had no equivalent of the website's img { max-width: 100% }, so anything wider than about 627px overflowed the page, unclamped.
A directory tree is indented by one number, and set tighter (#486) - two thirds of a 98px step was accidental theme margin leaking through, now measured rather than reviewed.
The test suite no longer asks the real internet (#476) - fetch-based site/Pages probes were going to github.io/api.github.com/pages.surrey.ac.uk for real, explaining two CI failures that passed on an unchanged re-run. Verified with off-machine sockets refused: 1200 pass, same as with them open.
A hung CI job now fails in minutes rather than hours (#478) - no job set timeout-minutes, so a dead apt-get mirror could hold a runner for the full six-hour default rather than the nine-to-thirty-eight seconds the step actually takes.
The PDF build no longer announces a stage it does not run (#482) - a three-stage build was still calling itself [4/4], left over from a deleted post-processing step.
Docs
prodockit.steps has a page of its own (#471) - the only user-facing extension without one, previously documented only in a docstring pointing at a page that never existed.
Full notes: changelog