Version 5.2 released
Categories: Development
Big Improvements Under the Hood
We’re happy to announce a new development snapshot of the speedata Publisher! This release comes with major internal improvements, cleaner architecture, and a bunch of small but meaningful user-facing enhancements.
Rewritten XML Parser
The XML parser has been completely reimplemented in Go, with a stronger focus on correctness, performance, and test coverage. It now keeps track of the originating file when using XInclude, which makes debugging and error reporting much easier.
We’ve also added a comprehensive set of automated tests to ensure the parser behaves consistently across all edge cases. This rewrite lays the foundation for future extensions such as XML entity support and better error recovery.
Smarter XPath Engine
XPath support has grown significantly:
- New functions:
translate()
anddistinct-values()
- Improved numeric functions like
format-number()
andround-half-to-even()
- The
doc()
function now returns the document node, aligning better with the XPath standard - More consistent boolean logic across the board
This means fewer surprises and more predictable results when working with complex expressions.
Typographic and Language Support
We’ve added initial Japanese typesetting support, refined character fallback logic, and improved handling of multi-character glyphs. These changes improve the Publisher’s internationalization capabilities and text layout quality — especially for multilingual projects.
Better HTML and CSS Handling
The internal HTML/CSS engine continues to evolve:
- Support for pseudo-class selectors (like
:first-child
,:last-child
) - Improved border and padding calculations in tables and blocks
list-style-position: inside|outside
now supportedfont-family
accepts multiple fallback fonts- Better behavior with custom
@font-face
and relative font sizes (rem
,px
)
These refinements bring the output closer to what designers expect from modern HTML/CSS rendering.
Polished PDF Output
PDF metadata has been updated to use ISO-formatted dates, and new metadata fields such as Producer and default color profiles have been added automatically. These subtle improvements help ensure better interoperability with other PDF tools and workflows.
Reliability, Logging & Maintenance
You’ll notice better diagnostic information throughout:
- More descriptive log messages
- Multi-run jobs now continue even when earlier runs fail (useful for large builds)
- Safer handling of file attachments and image conversions
- Additional debugging details for developers and power users
Under the hood, we also performed many small cleanups and documentation improvements to make the Publisher more maintainable in the long run.
What’s Next
We’re already working on the next big milestones:
- Rewrite of the dynamic Go runtime library in Rust — this will remove the last remaining
cgo
dependency, improving performance and portability. - More unit testing and refactoring to keep the core stable and future-proof.
- Speed improvements across XML, XPath, and rendering.
- Extended HTML/CSS support for modern layout features.
- More XPath functions to make data processing even more powerful.
Thank You
A big thanks to everyone using and testing the speedata Publisher! Your feedback and real-world examples help guide our development and make the tool better every day.
If you’d like to follow ongoing work, check out the GitHub repository — and as always, happy publishing!