Releases: pageseeder/psml
Releases · pageseeder/psml
Release 1.7.3
New Feature
Diff reporting option: Added an option to retrieve a DiffReport from diff operations.
DiffReport report = differ.diffWithReport(from, to, out);
// Determines whether there are any differences or changes in the diff operation.
boolean hasChanges = report.hasChanges();
// Indicates whether the primary algorithm failed and had to use a fallback.
boolean fallbackUsed= report.fallbackUsed();
// Returns the duration of the diff operation in nanoseconds.
long durationNanos= report.durationNanos();Other changes
A set of internal refactors, readability improvements, small performance/resource-handling tweaks, added nullability/equals-hashCode consistency, static-analysis (Sonar) warning suppressions, and minor Javadoc corrections without any API changes.
Full Changelog: v1.7.2...v1.7.3
Release 1.7.2
Features
- Comparisons can now use a
LexicalTokenizerthat generates text tokens more efficiently and consistently than the default regular expression-based tokeniser - The tokenizer can support splitting based on consecutive XML spaces or Unicode whites spaces.
- The tokenizer can generate
LexicalTokensthat preserve the original characters and have a normalised form for comparison - The
LexicalNormalizergenerates the normalised content for each token and supports the following features:- Diacritic folding: remove diacritical marks (such as accents) from characters, for example, replacing
éwithe - Bracket folding: replace any bracket (Ps and Pe Unicode categories) with either
(or)to ignore differences between brackets - Case folding: replace uppercase letters with lowercase to ignore differences in case
- Dash folding: replace any dash (Pd Unicode category) with a soft hyphen (U+00AD) to ignore differences in dashes
- Punctuation folding: replace punctuation marks with a single dot to ignore differences in punctuation
- Quote folding: replace any quotation mark (Pi and Pf Unicode categories) with an apostrophe to ignore differences between quotation marks
- XML space folding: replace consecutive XML spaces with a single space (U+0020) to ignore differences in spaces
- Unicode space folding: replace consecutive Unicode spaces (Zs, Zl, and Zp Unicode categories) or XML space with a single space (U+0020) to ignore differences in any type of spaces
- Diacritic folding: remove diacritical marks (such as accents) from characters, for example, replacing
Bug fixes
- Fixed process error with nested text or asciimath inline label
Full Changelog: v1.7.1...v1.7.2
Release 1.7.1
- Fixed error embedding single fragment with content pre-transcluded by export.
- Added error message when transcluding content already pre-transcluded by export.
Release 1.6.8
Improved AsciiMath error messages in process.
Release 1.6.6
Diff improvements
- Using a more efficient and accurate mechanism to strip whitespaces that aren't useful for diffing
- Handle differences in tables cells more efficiently by better detecting when diff recursion is necessary
Markdown bug fixes
- Importing markdown document using ATX style headings (with
#) now correctly creates new sections and fragments
Full Changelog: v1.6.5...v1.6.6
Release 1.6.5
Features
- Updates diff algorithm to Gasherbrum V which can better handle differences occurring in paragraphs within nested structures like block labels
Full Changelog: v1.6.4...v1.6.5
Release 1.6.4
Features
- Added support for transclusions when converting PSML to Markdown
- Handle invalid paths gracefully with appropriate diagnostic warnings
toRelativeLocalPath
Testing Framework Modernization
- Completed migration to JUnit 5 framework
Full Changelog: v1.6.3...v1.6.4
Release 1.6.3
PSML Diffing Enhancement
- Updated to include
cellandhcellelements in the list, improving comparison behavior for table cells inExtendedWhitespaceStripper - Removed
paraelement from the list to ensure proper handling of paragraph differences
Full Changelog: v1.6.2...v1.6.3
Release 1.6.2
New Features
- Enhanced XML Diffing Capabilities: Added new components for improved XML difference detection based on a diffing algorithm that handles structural and hierarchical block elements in XML documents. This algorithm implements a two-step diffing strategy that first compares structural elements and then performs detailed comparison within block elements.
GasherbrumIVAlgorithm
Full Changelog: v1.6.1...v1.6.2
Release 1.6.1
Highlights
- Enhanced Markdown Parsing: Added support for Markdown tables and improved HTML block parsing
- Build System Modernization: Migrated to Kotlin DSL, implemented , and configured Maven Central publishing via JReleaser
libs.versions.toml - Code Quality: Refactored key classes, improved documentation, and enhanced test coverage
Developer Notes
- Library is now available on Maven Central through our new publishing pipeline
- Documentation has been updated with examples for table creation
Full Changelog: v1.6.0...v1.6.1