Releases: Xerdi/lua-placeholders
Release 2.0.2
Release for version 2.0.2
Highlights
This is a stability release for lua-placeholders. It fixes two latent bugs that turned repeated \loadrecipe use into cryptic failures, adds an explicit guard against
silent namespace collisions, and pins down the failure modes with regression tests.
Added
- Added duplicate-namespace guard in \loadrecipe: a second call resolving to a namespace name that already has a recipe now raises tex.error instead of silently
overwriting parameters and re-emitting hooks. - Added regression MWE under test/cases/double-recipe.tex (plus two anonymised YAML recipes) reproducing the "Incomplete \ifx" failure that surfaced when two recipes
shared a bool key. - Added unit test test/unit/parse-filename.lua covering basename parsing across:
- dotted parent directories
- hyphenated names
- multi-dot basenames
- Windows forward-slash paths
- bare / relative inputs
- Added test-parse-filename Makefile target and wired it into the default test: rule.
Fixed
- Fixed "Incomplete \ifx" on a second \loadrecipe whose recipe shares a bool key with an earlier one. \paramnewbool now routes through
\@ifundefined, so the literal
\iffalse sits in a brace argument outside the \ifx's scope and TeX's conditional-skip scanner cannot mistake it for a new conditional opener. - Fixed namespace.parse_filename picking the wrong path segment when the parent directory contained a dot (e.g. ~/texmf.d/<sub>/klant.yaml resolving to texmf instead of
klant). Basename + extension extraction now uses two narrow string.match calls.
Full Changelog: 2.0.1...2.0.2
Release 2.0.1
Release for version 2.0.1
Highlights
This release is a major step forward for lua-placeholders, with expanded placeholder capabilities, broader engine support, improved documentation, and updated build/release automation.
Added
- Added support for date values in placeholders.
- Added support for table parameters.
- Added support for row-specific parameter resolution in tables.
- Added support for list and object cell types.
- Added support for list and object parameters.
- Added support for nested list, object, and table compositions.
- Added support for rendering complex placeholder data structures.
- Added plain LuaTeX support, including dedicated tests.
- Added hook detection for plain LuaTeX and guarded hook usage where needed.
- Added example-based tests.
Changed
- Refactored row-binding logic for table parameters.
- Refactored context stack handling for parameter resolution.
- Refactored token handling and formatting to better support plain LuaTeX.
- Improved placeholder handling for complex types.
- Improved documentation for:
- Lua dates
- table parameters
- special characters in table cell values
- list and object types
- nested compositions
- plain LuaTeX usage
- parameter types
- engine-specific behavior
- Removed the
ifthendependency. - Updated tests and expected output for the expanded feature set.
- Updated build and publish workflows.
Fixed
- Fixed handling of fixed dates in expected test output.
- Fixed empty-data rendering behavior for complex placeholder structures.
- Fixed and improved build/release workflow configuration.
Full Changelog: 1.0.3...2.0.1
Release 1.0.3
Release for version 1.0.3
What's Changed
- Add LaTeX custom hooks for namespaces
- Record loaded YAML/JSON files for recompilation purposes
Full Changelog: 1.0.2...1.0.3
Release 1.0.2
Full Changelog: 1.0.1...1.0.2
Release 1.0.1
Full Changelog: 1.0.0...1.0.1
Release 1.0.0
Now included YAML fallback support with lua-tinyyaml, specifically for Windows in order to work out of the box.
Release 0.1.0
Refactored project name to Lua Placeholders
Version 0.0.1
Update package date