github homeylab/bookstack-file-exporter v2.2.0

latest releases: v3.0.0, v2.3.0
5 months ago

2.2.0 (2026-06-06)

Highlights:

  • Book & chapter export levels (#73) — new export_level config: pages (default), books, or chapters. Books/chapters export as one combined file per node, in a folder-per-node layout.
  • Asset localization for book/chapter exports — modify_links now rewrites image and attachment URLs to local relative paths in combined markdown and HTML exports (previously page-level only).
  • Slimmer HTML exports — inline base64 image src blobs are replaced with references to the already-downloaded asset file when the wrapping anchor points at a localized asset, shrinking exported HTML.
  • assets.export_images / export_attachments / modify_linksapply at all export levels. For book/chapter,modify_linkslocalizes assets in markdown exports and HTML - follows existing supported export formats formodify_links` behavior.

Fixes

  • Hardened the export pipeline: empty books/chapters are skipped, and the run exits cleanly with a warning when nothing was archived instead of failing on a missing archive.

Maintenance

  • Releases migrated to release-please.
  • Type hints modernized to PEP 585 (list/dict builtins).
  • GitHub Actions dependency updates.

Commits

Features

  • add export_level for book and chapter exports (#73) (e639991)
  • add export_level for book and chapter exports (#73) (58dde6b)
  • descendant-page name map for book/chapter nodes (0803e07)
  • enable modify_links for books/chapters export levels (68eaaac)
  • folder-per-node layout for books/chapters export (f9779ab)
  • lift asset download into NodeArchiver base (1dedb3f)
  • localize html img-src for pages and book/chapter exports (40851a1)
  • localize images/attachments in book/chapter markdown (4128c03)
  • move asset config into NodeArchiver base (72b1273)
  • slim inline base64 img-src by reusing downloaded anchor asset (09dc01b)

Bug Fixes

  • add archive timestamp-suffix format test (0e2315a)
  • clarify check_var required semantics and return type (2e9f4ec)
  • code review remediation (bug fixes, DRY, tests) (33c8d12)
  • deduplicate asset page-grouping logic (f470062)
  • invoke minio config validator in is_valid (0524472)
  • modernize type hints to PEP 585 via pyupgrade (a23903c)
  • normalize trailing slashes with rstrip (01870a1)
  • raise on unknown asset type in get_asset_bytes (65f7035)
  • remove broken verify_ssl property from PageArchiver (f24f4f1)
  • remove commented-out dead code (dac95eb)
  • remove unreachable run call in entrypoint loop (c1fcf8b)
  • resolve pre-existing test lint findings (f0b9c3a)
  • reuse a single requests Session in HttpHelper (3d8afb0)
  • stop API Session echoing BookStack session cookie (8cbe16a)
  • trim trailing newlines in page_archiver (aa93486)
  • use dict.update for node map merges (a56a07b)

Documentation

  • address counter-review (chapter walk blocker, dead-state warn, fixture tests) (ac0ba8a)
  • correct modify_links html behavior for scaled + base64 img-src (f3373e8)
  • correct modify_links html behavior for scaled + base64 img-src (f62c6cb)
  • drop superseded planning docs (handoff plan is source of truth) (421e991)
  • extend modify_links scope to html (remote src/href survive combined html) (2056dfa)
  • implementation plan for modify_links book/chapter (d4f9c7d)
  • modify_links + folder layout for books/chapters (0c07407)
  • spec modify_links for book/chapter markdown + folder layout (4a8c309)

Don't miss a new bookstack-file-exporter release

NewReleases is sending notifications on new releases.