Skip to main content

MaTiSSe.py, Markdown To Impressive Scientific Slides

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matisse_py-1.6.3.tar.gz (716.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matisse_py-1.6.3-py3-none-any.whl (860.4 kB view details)

Uploaded Python 3

File details

Details for the file matisse_py-1.6.3.tar.gz.

File metadata

  • Download URL: matisse_py-1.6.3.tar.gz
  • Upload date:
  • Size: 716.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for matisse_py-1.6.3.tar.gz
Algorithm Hash digest
SHA256 17bde6e12273e0c9969d2904fe77b88feeab0fa33cda2c513ed6aec9718f9476
MD5 7db0345737f50b329ef8c1e23b18c9ee
BLAKE2b-256 933a6bc287536a9dfed6ac7ed860fc5da0c373b6c08d84e1f0aba23226132db6

See more details on using hashes here.

Provenance

The following attestation bundles were made for matisse_py-1.6.3.tar.gz:

Publisher: ci.yml on szaghi/MaTiSSe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file matisse_py-1.6.3-py3-none-any.whl.

File metadata

  • Download URL: matisse_py-1.6.3-py3-none-any.whl
  • Upload date:
  • Size: 860.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for matisse_py-1.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 61464272bc3dd60cf23c0e56e52d7ace75adc7028cf47f2d1359b51296f9be17
MD5 960020e66188612ffcde4302c69d9c3d
BLAKE2b-256 98d7d2ea053d8b8c5c482b7854923838f9c2d2448fd282315c9648e3dbf2d871

See more details on using hashes here.

Provenance

The following attestation bundles were made for matisse_py-1.6.3-py3-none-any.whl:

Publisher: ci.yml on szaghi/MaTiSSe

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page