Version v0.11.0 of SILE has been released and is available for download! See the included CHANGELOG.md or review the commit history for more explicit details.
This release brings a significant fix to the vertical grid typesetting system that was causing extra full grid spaces between paragraphs where they didn’t belong. The new behavior is objectively more correct, but it does break previous workarounds. If you previous used a workaround to get the right output in spite of the bug, those documents may not render incorrectly. They can be fixed by removing whatever other workaround was in place or adding a shim that makes the paragraph spacing emulate the old behavior. Some utility functions also received bug fixes. Thanks to contributor Fredrick Brennan, color fonts now behave themselves much better in TTB layouts and the counter display style Alpha works as documented.
Not much has been added on the feature front, just a few conveniences such as traditional units of (small) measurement and handling more attributes in documents converted via the Pandoc writer (as-yet unreleased).
Beginning with this release Docker images will now be available from GitHub Packages (also known as the GitHub Container Registry). This is an alternative to Docker Hub which has recently started limiting the features available to open source projects.
packages: Previous to this release any and all leading between paragraphs (as set with document.parskip) –even a 0 height skip– would result in the skip of one full empty grid space — as if parskip had been set to something approximating a full line height. This change corrects the calculation so if a 0 height skip is added and everything fits, the next line or paragraph will continue uninterrupted in the next grid slot. To get the previous layout behavior back, document.parskip must be explicitly set to be something larger than 0. Even a minimal 1pt skip will result in paragraph spacing that includes one full grid height left blank as before:
utilities: Previous return value for breadcrumbs:contains() was just an depth index with -1 indicating no match. This made sense when I wrote it, but coming back to it for a new project I expected a boolean return value. Returning two values seems like the best option, but given the function naming it seemed to make sense to return the boolean first, hence the API breakage.
utilities: Change breadcrumbs:contains() to return <bool, index> (a987394)