Skip to main content

MaTiSSe

CI Latest Version GitHub tag GitHub issues Python

License

Markdown To Impressive Scientific Slides — a KISS CLI that compiles plain Markdown into high-quality, self-contained HTML presentations with full scientific-content support, powered by impress.js or reveal.js — your choice, one flag.

📝 Markdown-first authoring
Write clean, readable Markdown — no HTML, no LaTeX preamble. MaTiSSe extends standard syntax with chapter/section/subsection headings, a $titlepage directive, and $include() for multi-file compositions. Syntax reference
🎨 YAML theme system
Define canvas, headers, footers, sidebars, and content areas entirely in YAML blocks. Apply per-slide overrides with overtheme. Six built-in LaTeX-Beamer-style themes ready to use out of the box. Theme reference
🔢 LaTeX equations
Inline $…$ and display $$…$$ math rendered by MathJax 3 — no extra setup required. Works in slide content, box captions, figure captions, and headers. Math guide
🔬 Scientific environments
First-class environments for figures, boxes, notes, tables, videos, and multi-column layouts — each fully customizable via CSS and YAML. Figures · Boxes · Columns
✨ Syntax-highlighted code
Code blocks rendered by highlight.js 11 with 100+ bundled styles. Tab-completion on --highlight-style lets you preview styles instantly. CLI reference
📦 Offline & PDF modes
--offline bundles all JS/CSS assets locally for air-gapped environments. --pdf disables impress.js animations for clean PDF printing. CLI reference
🆓 Free and open source
Released under the GNU GPL v3 license. Free to use, study, modify, and distribute. Contributions welcome — see the contributing guidelines.
🖥️ Two rendering backends
--backend impress (default) gives full impress.js 3D canvas effects. --backend reveal switches to reveal.js: speaker notes, overview mode, built-in PDF export, and a large plugin ecosystem — same source file, one flag. reveal.js guide

Full documentation — installation, quick start, CLI reference, theme gallery

Why MaTiSSe?

LaTeX Beamer produces beautiful slides, but its compile cycle is slow and its syntax is noisy. PowerPoint and Keynote are WYSIWYG and therefore hard to version-control or script. Modern presentation frameworks like impress.js are impressive but require hand-written HTML.

MaTiSSe takes a different path: you write clean, readable Markdown — with optional YAML theme blocks and a handful of scientific-content environments — and MaTiSSe compiles it into a self-contained HTML/CSS/JS presentation.

# Generate a sample and build it immediately
matisse build --sample mytalk.md --theme beamer-madrid
matisse build -i mytalk.md -o mytalk/

Open mytalk/index.html in a browser and navigate with arrow keys or spacebar.

Title page Figure environment
Title page Figures
LaTeX equations LaTeX-Beamer themes
Equations Themes

Main features

  • markdown-to-html slides builder with extended Markdown syntax;
  • structured presentations: chapters, sections, subsections, slides;
  • presentation metadata (title, authors, affiliations, …) with $key interpolation into themes;
  • automatic table of contents slides (--toc-at-chap-beginning, --toc-at-sec-beginning, …);
  • flexible theme system defined entirely in YAML:
    • canvas, headings, headers, footers, sidebars, content areas;
    • per-slide theme overrides (overtheme);
    • six built-in LaTeX-Beamer-style themes (beamer-antibes, beamer-berkely, beamer-berlin, beamer-madrid, matisse, sapienza);
  • LaTeX equations via MathJax 3 (inline $…$ and display $$…$$);
  • scientific content environments:
    • $figure…$endfigure with captions and custom CSS;
    • $box…$endbox fully customizable;
    • $note…$endnote;
    • $table…$endtable;
    • $video…$endvideo;
    • $columns…$endcolumns multi-column layout;
  • syntax-highlighted code listings via highlight.js 11 (100+ styles);
  • $include(file) for composing presentations from multiple source files;
  • --offline mode: all JS/CSS assets bundled locally (air-gapped environments, impress backend);
  • --pdf mode: animations disabled for clean PDF printing (impress backend);
  • shell tab-completion for --theme and --highlight-style;
  • dual rendering backends selectable with --backend:
    • impress.js — 3D canvas, spatial slide transitions (default);
    • reveal.js — speaker notes, overview mode, built-in PDF export.

Author

Stefano Zaghistefano.zaghi@gmail.com · GitHub

Copyrights

MaTiSSe is an open source project distributed under the GPL v3 license. Anyone interested in using, developing, or contributing to MaTiSSe is welcome — see the contributing guidelines.

Release files for MaTiSSe.py 1.7.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for MaTiSSe.py 1.7.3
File Size Uploaded
matisse_py-1.7.3.tar.gz 788.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for MaTiSSe.py 1.7.3
File Interpreter ABI Platform
matisse_py-1.7.3-py3-none-any.whl Python 3 none any Details

Total release size: 1.7 MB

Release files / matisse_py-1.7.3.tar.gz

Download URL matisse_py-1.7.3.tar.gz
Size 788.1 kB
Tags Source
SHA-256 checksum
How to use checksums
a4187fd58670da7bedd219a3c5e4a3f3524e0ab69b9c65b60d007ac821358ec1
BLAKE2b-256 checksum
How to use checksums
284c4a57a0b724056557703be252b49b2df8f9ead4b775bb9df4f0f2e05c2e76
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release files / matisse_py-1.7.3-py3-none-any.whl

Download URL matisse_py-1.7.3-py3-none-any.whl
Size 923.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2d8e9127e5de41d786407b59bad985012fcc3bbf92d28acf9c431553068850e0
BLAKE2b-256 checksum
How to use checksums
34c7abb930523e0bbc9371c4be2e943cb6519ee768621a60addfa31231a7db66
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Apr 9, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.7.3 This release

2 release files

1.7.2

2 release files

1.7.1

2 release files

1.6.3

2 release files

1.6.0

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.4.5

2 release files

1.4.4

2 release files

1.4.1

2 release files

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.1

1 release file

1.0.1

1 release file

1.0.0

1 release file

0.3.4

1 release file

0.3.3

1 release file

0.3.2

1 release file

0.3.1

1 release file

0.3.0

1 release file

0.2.0

1 release file

0.1.1

1 release file

0.1.0

1 release file

v0.0.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page