Skip to content

Releases: Cadons/Docraft

v1.0.0-RC5

Choose a tag to compare

@Cadons Cadons released this 16 Aug 20:41
d2a0cbb

What's Changed

  • Fix document types list in README by @Cadons in #53
  • fix(pagination): resolve infinite loop when handling oversized table … by @Cadons in #60
  • feat(tools): add DocraftValidator for linting .craft and data files by @Cadons in #63
  • Add PageNumber format support and fix chart/list font family handling by @Cadons in #61
  • feat(fonts): add support for registering TTF fonts from memory by @Cadons in #64
  • Validate Cell content: reject multiple children and unrecognized tags by @Cadons in #65
  • feat(templating): add --strict mode to fail unresolved bindings by @Cadons in #70
  • feat(loom): warn when a node overflows past the page bottom by @Cadons in #71
  • 55 bundled font families roboto opensans cannot be selected by font name silently falls back to helvetica spams libharu errors new by @Cadons in #68
  • fix(parser): raise error for duplicate or unrecognized top-level elem… by @Cadons in #76
  • fix(parser): inherit background color for table cells from row by @Cadons in #77
  • fix(parser): reject explicit width/height on content-sized nodes by @Cadons in #78
  • 75 weight common attribute silently no ops outside layout orientationhorizontal by @Cadons in #79
  • fix(text-wrapper): prevent boundary word duplication in line wrapping by @Cadons in #81
  • refactor(layout): streamline fixed and flexible column width resolution by @Cadons in #84
  • 82 warn when a tables explicit column widths sum wider than the available page width by @Cadons in #85

Full Changelog: v1.0.0-RC4...v1.0.0-RC5

v1.0.0-RC4

Choose a tag to compare

@Cadons Cadons released this 09 Aug 17:37
a11d7f8

What's Changed

  • 34 graphics and canvas by @Cadons in #37
  • feat(craft): reject unrecognised attributes instead of dropping them by @Cadons in #47
  • feat(craft): add CurveLine, and make Polygon only ever a polygon by @Cadons in #45
  • fix(craft): honour Text width, table title font_size and name colors by @Cadons in #42
  • fix(loom): place Canvas lines and circles at their declared geometry by @Cadons in #39
  • 48 z indexing by @Cadons in #49
  • Worktree readme hero visual by @Cadons in #51
  • docs(skills): add craft-language skill for generating .craft files by @Cadons in #50

Full Changelog: v1.0.0-RC3...v1.0.0-RC4

v1.0.0-RC3

Choose a tag to compare

@Cadons Cadons released this 02 Aug 13:26
b6666aa

What's Changed

  • Charts: native charts (scatter, line, spline, histogram and pie)
  • Canvas: use this to draw free-form designs within a specified area.
  • Bug fixes
    Full Changelog: v1.0.0-RC2...v1.0.0-RC3

v1.0.0-RC2

Choose a tag to compare

@Cadons Cadons released this 21 Jul 21:28
0d8bfd4

What's Changed

Full Changelog: v1.0.0-RC1...v1.0.0-RC2

v1.0.0-RC1

Choose a tag to compare

@Cadons Cadons released this 20 Jul 21:01
05eff9e

What's Changed

  • build(cmake): add required dependency for fmt library by @Cadons in #15
  • Enforce explicit accessor pattern across core APIs (remove macro/inline accessors) by @Cadons with @Copilot in #20
  • General Refactor by @Cadons with @Copilot in #24
  • Lines coordinates by @Cadons in #26
  • 27 improve code duplication by @Cadons in #28
  • 30 find the best pattern for layout engine by @Cadons in #32

Full Changelog: v1.0.0-beta.3...v1.0.0-RC1

v1.0.0-beta.3

Choose a tag to compare

@Cadons Cadons released this 15 Mar 11:14
27ea3b2

What's Changed

  • Fix VCPKG port build failures: Removed unused #include <print> and replaced std::format with fmt::format (PR #11)
  • Fix Windows x86 calling convention mismatch for HPDF error handler (PR #12)

Important Note for Users

As you mentioned, if you have installed the library and are using CMake's find_package, you must now explicitly require:

find_package(fmt CONFIG REQUIRED)

This requirement is due to the replacement of std::format with fmt::format. The next version is expected to add support for fmt as part of the Docraft find_package requirements, making this unnecessary in future releases.

View the full release | View full changelog

v1.0.0-beta.1

Choose a tag to compare

@Cadons Cadons released this 11 Mar 22:48
669d5ee

Docraft v1.0.0-beta.1 Release Notes

Release date: 2026-03-11
Status: Beta

Docraft v1.0.0-beta is the first public beta milestone for the project: a C++23, in-process PDF generation library built around the XML-based Craft Language.

Highlights

  • Introduces the Craft Language for declarative document authoring (.craft) with no coordinate-level drawing required.
  • Delivers automatic flow layout and pagination, including reusable header/body/footer sections and automatic page numbering.
  • Adds runtime templating features (${variables} and <Foreach>) for JSON-driven document generation.
  • Provides rich document elements including tables, lists, shapes, images, and nested horizontal/vertical layouts.
  • Ships with both a linkable docraft library and the docraft_tool CLI renderer.
  • Supports pluggable rendering abstractions with libharu currently used as the PDF backend.

What Is Included In This Beta

  • Core library: docraft (static by default, optional shared build).
  • CLI executable: docraft_tool for rendering .craft files to PDF.
  • Craft parser stack: parsing for text, shapes, images, tables, layouts, settings, and foreach blocks.
  • Template engine: key/value and JSON-array binding for data-driven output.
  • Documentation: Sphinx and Doxygen docs with API and getting-started material.

Build and Compatibility

  • Language standard: C++23.
  • Build system: CMake 3.16+.
  • Key dependencies: libharu, pugixml, nlohmann-json.
  • Test dependency: GoogleTest (when BUILD_TESTS=ON).
  • Platforms: macOS, Linux, and Windows workflows are documented in README.md.

Quality and Test Coverage

The beta test suite includes coverage across:

  • document model primitives and cloning
  • layout and pagination behavior
  • Craft language parsing (tables, shapes, images, settings)
  • rendering/painter smoke paths
  • templating and utility modules (keyword extraction, logging)

Breaking Changes

  • None announced for this beta tag.

Known Limitations (Beta)

  • Public APIs and Craft syntax may still evolve before stable GA.
  • Backend support is currently centered on libharu implementations.
  • Performance tuning and broader production hardening are ongoing.

Upgrade / Adoption Notes

If you are evaluating this beta:

  1. Build with your target toolchain using the documented CMake flow.
  2. Validate your Craft templates and runtime data models against your production scenarios.
  3. Keep integrations version-pinned to this beta tag until stable release notes are published.

Acknowledgments

Thanks to all contributors and early adopters helping validate the first Docraft beta.

Full Changelog

Initial beta milestone release.