Version v0.10.11 of SILE has been released and is available for download! See the included CHANGELOG.md or review the commit history for more explicit details.
Summary of Improvements
This release supports versions of Lua Penlight newer than 1.8.0. Previous releases of Penlight have contained a long-standing bug in the class inheritance system that we were side-stepping with our own workaround. In one case our workaround was actually relying on a side-effect of said Penlight bug and never should have worked. With a proper fix finally implemented in Penlight, our workaround started to fail. This release includes an emergency patch so that SILE can be made to work on systems with the latest Penlight release. Future releases will likely remove our workarounds entirely and require a recent version of Penlight with the fixed class inheritance system.
Additionally, this is the first release that officially supports running SILE as a GitHub Action. You can now call SILE directly in CI workflows on your own projects.
Other cleanup work now allows classes to specify their own framesets without inheriting the default ones. This has no visible effect for most documents but it does make debugging framesets a lot easier because there aren’t a bunch of empty frames behind the scenes inherited from other classes.
With special thanks to contributions from Fredrick Brennan, SVG support is much improved in this release. Specifically, shapes with holes now actually render as holes. Also, thanks to Johannes Maibaum’s contributions and careful eye, many examples from the manual which had fallen behind or had typos now actually work as documented.
Features
- actions: Add configuration file to run as GitHub Action (ee2d509)
- backends: Modify setCursor() to handle relative movements (7caa9c8)
- classes: Make it possible to not use parent class framesets (99b9f50)
- cli: Add Lua interpreter info to --version (bf5210d)
Bug Fixes
- backends: Properly switch between normal and debug fonts (b53896e)
- classes: Identify triglot class as triglot not diglot (495654a)
- classes: Make declareFrames() workable by passing ids (27b6b4a)
- classes: Move class setup code into deferred class:init() (6f470d7)
- core: Patch Penlight 1.9.0 compatibility issue (1eb4290)
- packages: Allow Hanmen frame creation to use optional ID arg (7853d5a)
- packages: Fix hole drawing from svg in PDF (6521fd0)
- packages: Remove extra space in \code in url (b90cd37), closes #1056
- tooling: Expand variables so fonts are known dependencies of tests (88ac888)
Performance Improvements
-
backends: Reuse variables instead of recalculating values (02cce40)