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.0.tar.gz (869.8 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.0-py3-none-any.whl (1.1 MB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: matisse_py-1.6.0.tar.gz
  • Upload date:
  • Size: 869.8 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.0.tar.gz
Algorithm Hash digest
SHA256 fe5385d0d0a2a10ae8a447fde7f790b8ea32d34adae93de8cf564f1a4acf94f9
MD5 a8e63f6451145d95607a7023498469a5
BLAKE2b-256 1af5441c50e444451537a0112f3258c30ad7a7bcbaab2859793a390d24245652

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: matisse_py-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 1.1 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d3d1c7837537d84b3e40993bdada56fe5e6a39abf4232a9053d0f87f6800114d
MD5 2ef56fac7f108033954f8627c92de61f
BLAKE2b-256 4dd8acbc9b70212ca9e135be6246331b0a0ab4035a838130806d99f70ed8fe91

See more details on using hashes here.

Provenance

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