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

Uploaded Python 3

File details

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

File metadata

  • Download URL: matisse_py-1.5.2.tar.gz
  • Upload date:
  • Size: 864.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.5.2.tar.gz
Algorithm Hash digest
SHA256 9866ffb90fe66b03ff2113ff5ec6e98917580ee67594f252cacd636c216477ef
MD5 19776d989fbf1cb8ea708697e9892ddb
BLAKE2b-256 6d4488d77efbc81df288dfa1ab9a64540f9c7fef1c5656c8a1b93532530b0b3b

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: matisse_py-1.5.2-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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 46f8210a84c3d0b300cacc7001aa391205f9aaa1ecef70adb3a0858eeea61f15
MD5 8d83ed29f8b50498b0469e6d535ed6ba
BLAKE2b-256 a40e916b9430739443f31e811b0a11ca4dc04fe5af3695434afe6da0f2797dd1

See more details on using hashes here.

Provenance

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