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.5.1.tar.gz (863.2 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.5.1-py3-none-any.whl (1.0 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: matisse_py-1.5.1.tar.gz
  • Upload date:
  • Size: 863.2 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.5.1.tar.gz
Algorithm Hash digest
SHA256 656d34f390ae3a3ee4f7c2d740574189c6ccdf35fa3dce614acffe30176d6196
MD5 525b3591b6783ac9a6ddc5c23c63d59b
BLAKE2b-256 1c6082a3e67dc02bd62a957a59c67731061e15b2cda9e050731cf44f347f3959

See more details on using hashes here.

Provenance

The following attestation bundles were made for matisse_py-1.5.1.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.5.1-py3-none-any.whl.

File metadata

  • Download URL: matisse_py-1.5.1-py3-none-any.whl
  • Upload date:
  • Size: 1.0 MB
  • 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.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d26bc3bab87781aa14dfea9a5a16d023b2c3a4b2fe0414fb0413ecde7fe15b05
MD5 2292f384975592507ed751dc2aff6ac5
BLAKE2b-256 5b4f4d346cd4358315c0f0927ee3d466063b31c63205ffc3b17ca632a494f2b5

See more details on using hashes here.

Provenance

The following attestation bundles were made for matisse_py-1.5.1-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