Skip to content

v0.10.0: Reference document styling for ODT

Choose a tag to compare

@vivekVells vivekVells released this 10 Aug 00:26
· 13 commits to main since this release
736984b

What's new

reference_doc now works for ODT output, not just DOCX. Point it at a .odt template and pandoc applies its stylesheet: fonts, headings, margins, colours. Same source markdown, branded output for LibreOffice shops as well as Word shops.

What's fixed

A mismatched reference document is now rejected instead of failing silently. Pandoc does not check that the reference matches the writer, and it fails two different ways with no warning and exit code 0:

Output Reference Old behaviour
docx .odt Reference silently discarded. Unstyled file, reported as success
odt .docx Produced a file pandoc itself could not read back

Both now return an actionable error before conversion runs, naming the expected extension and the command to create a matching template.

A directory passed as reference_doc is also caught now, instead of surfacing a raw pandoc traceback.

Contributors

Thanks to @burak1203 for their first contribution to mcp-pandoc. They identified that our reference_doc gate was narrower than pandoc's --reference-doc, widened it to ODT, pulled the repeated format literal into a named constant so the validation gate and the argument builder can no longer drift apart, made the rejection message name the offending format, and added tests.

@vivekVells built on that work to push the rest of the release:

  • the mismatched-reference guard, after finding that pandoc silently discards a wrong-type reference for DOCX and writes an unreadable file for ODT
  • rejecting a directory passed as reference_doc, which previously reached pandoc and surfaced a raw traceback
  • a stronger ODT test that proves the styling reaches the output, rather than only that a file was written
  • removing pptx from the reference-doc allow-list, since the output enum does not offer it yet and the constant is interpolated into a user-facing error message
  • documentation alignment across README and CHEATSHEET, the version bump, and the repo housekeeping below

Housekeeping

  • pre-commit now runs in CI, so test files are actually linted. ruff excludes tests/*, which is why whitespace issues had been passing through with CI green
  • CLAUDE.md, the standards every PR is reviewed against, is now in the repo. It was previously gitignored while AGENTS.md linked to it, leaving contributors with dead links to the rules they were being reviewed against
  • CONTRIBUTING.md documents the version policy, the required checks, environment reporting, and guidance for AI-assisted contributions

Full changelog: v0.9.0...v0.10.0