Skip to content

Latest commit

 

History

History
43 lines (35 loc) · 2.11 KB

File metadata and controls

43 lines (35 loc) · 2.11 KB

Changelog

All notable changes to this project are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

Unreleased

0.1.0 - 2026-08-24

Initial release: Elixir port of lovely-mermaid.

Added

  • LovelyMermaid.render/1 — render Mermaid diagrams as Unicode box-drawing art for terminals. Returns %LovelyMermaid.Art{} (plain, styled span runs, width, class_defs, warnings) or nil.
  • LovelyMermaid.diagram_kind/1 — detect the diagram kind from the header (:flowchart, :state, :class, :er, :sequence, :pie, :mindmap, :timeline, :gitgraph, or nil).
  • Diagram kindsflowchart/graph (incl. subgraph), stateDiagram, classDiagram, erDiagram, sequenceDiagram, pie, mindmap, timeline, gitGraph.
  • Flowchart v2 node syntax id@{shape: …, label: …} — 27 shape names collapsed to round/diamond/rect silhouettes; diamond nodes render as double-line boxes with mixed /// edge tees.
  • state X { … } composites — nested frames; -- splits a composite into unlabelled sibling region frames.
  • Sequence Note anchors auto-register the participants they name.
  • classDef styles, :::name / class A,B name author classes, click/ link hrefs — carried on styled spans, styled by Ansi.to_ansi/2 (incl. OSC 8 hyperlinks).
  • YAML frontmatter title: — drawn centred above the art.
  • LovelyMermaid.SourceBox.source_box/2 — framed-source fallback when a diagram won't render.
  • LovelyMermaid.Ansi.to_ansi/2 — ANSI-coloured output from art.styled.
  • Warning/retry strategy for streaming sources — flowcharts report dropped statements in warnings; other grammars fail the whole diagram, with one retry dropping the final line.