All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
1.2.0 - 2026-02-10
- Auto-numbered captions: Poster compiler automatically prepends bold "Figure X." and "Table X." labels to caption elements
- Hardcoded color palettes: viridis, plasma, inferno, magma, cividis palettes work in CI environments without matplotlib installed
- Viridis palette lookup for matplotlib 3.9+ (use dict access instead of deprecated
.get()) - CI cross-platform failures across macOS, Linux, and Windows
- Caption label isolation: flex layout no longer forces "Figure X." onto its own line when caption is the last child of a poster section
- Poster layout refinements: chart-row layout, vertical centering, Figure 2 clipping fix
- Extended Figure 2 caption to multi-line with descriptive text
- Trimmed Limitations box to prevent text overflow
1.1.1 - 2026-02-08
- PyPI image links now use absolute URLs for correct rendering on pypi.org
- PyPI version badge, CI status badge, and download count badge to README
1.1.0 - 2026-02-08
- Academic poster extension: ASCII grid layout system with
cdl-slides poster compilecommand- Per-section callout boxes with color theming
- Avenir math fonts, balanced layout, styled reference/acknowledgment boxes
- Rounded-rect emoji backgrounds
- Inline Chart.js support: Bar, line, scatter, pie, doughnut, and radar charts via
```chartblocks- 14 built-in color palettes (CDL, seaborn, matplotlib, colorblind-friendly, and more)
- Support for any matplotlib colormap or seaborn palette by name
- Per-bar colors, axis labels, alpha transparency, italic captions
- SVG chart renderer: Matplotlib-based SVG rendering for poster charts (print quality)
- pyyaml added as a dependency (required for poster front matter parsing)
- Code block overflow when callout boxes are present on the same slide
1.0.0 - 2026-02-06
- Animate DSL: Declarative syntax for creating Manim animations without writing Python code
- Object commands:
write equation,write text,create axes,create graph,plot,create circle/square/arrow - Animation commands:
fade-in,fade-out,draw,transform,wait - Position modifiers:
at center,above/below/left-of/right-of - Metadata options:
height,width,quality,scale - Escape hatch:
manim <python_code> as NAMEfor complex animations
- Object commands:
- Flow diagrams: Simple
```flowsyntax for pipeline diagrams with Dartmouth brand colors - Smart preprocessing: Auto-splits long code blocks and tables across slides
- Callout boxes: Note, tip, warning, definition, example, and important box styles
- Two-column layouts: Flexbox-based column layouts with callout box styling
- Scale directives: Manual and automatic font scaling for dense slides
- Emoji figures: Styled emoji icons with colored backgrounds
- Arrow syntax: Shorthand for styled arrows (
--[80]->,--[lg]->) - Syntax highlighting: Code blocks with line numbers via Pygments
- Math support: KaTeX for inline and display equations
- Cross-platform Marp CLI: Auto-downloads standalone binary on first use (macOS, Linux, Windows)
- Multiple output formats: HTML, PDF, and PPTX
- Zero-config installation:
pip install cdl-slidesincludes everything (Manim, FFmpeg, fonts) - Bundled fonts: Avenir LT Std, Fira Code, Noto Sans SC
- Bundled ffmpeg via
imageio-ffmpeg— no system installation required - GIF caching by content hash for fast re-compilation
- Graceful degradation: animation errors show warning-box instead of crash
cdl-slides compile— Compile Markdown to presentationcdl-slides init— Create new presentation from templatecdl-slides version— Show version and Marp CLI statuscdl-slides setup— Pre-download Marp CLI binary