Skip to content

Releases: devasishpal/PiDraw

v1.3.0

10 Jun 06:38

Choose a tag to compare

v1.3.0 — Batteries-included: native converters for all 18 languages

Breaking changes

  • drawsvg, cairosvg, python-docx moved from optional extras to hard dependencies — single pip install pidraw now covers all 18 languages + PNG + DOCX export

New features

  • TikZ native converter — parses \node, \draw, \path, \scope, matrix of nodes, basic shapes/colors/arrows/styles
  • Mermaid native parserssequenceDiagram, classDiagram, stateDiagram/stateDiagram-v2, erDiagram, pie, gantt
  • Auto-fallback — Mermaid engine tries native first; if SVG is blank, falls back to mmdc CLI

Bug fixes

  • Pie chart regex was matching ""Label"" instead of "Label" — pie SVGs no longer blank
  • BPMN CLI output with only markers (no visible shapes) falls back to native renderer
  • Excalidraw arrows without points field now render properly
  • Excalidraw SVG now includes a <marker> definition — fixes cairosvg PNG crash
  • TikZ nodes get a default size — no more invisible nodes
  • ASCII parser now handles multiple boxes per line, <-- arrows, and scans all content lines for labels
  • Language detection: fixed broken BPMN regex, added Nomnoml/TikZ/WaveDrom patterns

Quality of life

  • ruff check, ruff format, and mypy all clean
  • CI now enforces lint + format + types on every push
  • 529 tests all passing

v1.2.1

08 Jun 05:41

Choose a tag to compare

v1.2.1 — 2026-06-08

Fixed

  • CLI render crash without -o flagsys.stdout.write() received a RenderResult object instead of a string, crashing on stdout output. Now correctly writes result.svg.
  • Markmap import crash on fresh installmarkmap_render.js was missing from the PyPI wheel because *.js files weren't included in package data. Fixed via [tool.setuptools.package-data].
  • Entire CLI crashing from one broken engineMarkmapRenderer.__init__ raised RenderError (uncatched), blocking all commands. Added except PiDrawError catch-all in engine registration so a single broken engine registers as unavailable instead of crashing.
  • File output with RenderResult_write_output now handles RenderResult objects via .save(), fixing write-to-file for all callers.

Changed

  • Package data now includes **/*.js assets in the wheel.

v1.2.0

08 Jun 05:02

Choose a tag to compare

v1.2.0

Added

  • Support for 20 Mermaid diagram types (flowcharts, sequence diagrams, class diagrams, state diagrams, ER diagrams, Gantt charts, pie charts, git graphs, mindmaps, timelines, block diagrams, C4 diagrams, network diagrams, packet diagrams, quadrant diagrams, requirement diagrams, Sankey diagrams, XY charts, and large diagrams)
  • SVG and PNG export for all diagram types

Fixed

  • Mermaid arrow label parsing (-->|label| syntax)
  • Arrow style detection (dotted vs dashed)
  • Layout viewport recalculation — prevents PNG cropping
  • Improved PNG margins to ensure no content is cut off

Changed

  • Migrated to pyproject.toml based build system
  • CI pipeline with ruff, mypy, and pytest

Notes

  • Minimum Python: 3.10
  • For PNG export, Playwright is required (playwright install chromium)

Full changelog: https://github.com/devasishpal/PiDraw/blob/main/CHANGELOG.md