Skip to content

Releases: pageseeder/psml

Release 1.7.3

03 Mar 04:10

Choose a tag to compare

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

19 Feb 21:58

Choose a tag to compare

Features

  • Comparisons can now use a LexicalTokenizer that 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 LexicalTokens that preserve the original characters and have a normalised form for comparison
  • The LexicalNormalizer generates the normalised content for each token and supports the following features:
    • Diacritic folding: remove diacritical marks (such as accents) from characters, for example, replacing é with e
    • 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

Bug fixes

  • Fixed process error with nested text or asciimath inline label

Full Changelog: v1.7.1...v1.7.2

Release 1.7.1

13 Jan 05:49

Choose a tag to compare

  • 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

17 Nov 05:38

Choose a tag to compare

Improved AsciiMath error messages in process.

Release 1.6.6

14 Jul 08:02

Choose a tag to compare

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

14 Jul 07:29

Choose a tag to compare

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

01 Jul 06:57

Choose a tag to compare

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

27 Jun 04:16

Choose a tag to compare

PSML Diffing Enhancement

  • Updated to include cell and hcell elements in the list, improving comparison behavior for table cells in ExtendedWhitespaceStripper
  • Removed para element from the list to ensure proper handling of paragraph differences

Full Changelog: v1.6.2...v1.6.3

Release 1.6.2

27 Jun 03:31

Choose a tag to compare

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

20 Jun 10:59

Choose a tag to compare

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