In den eigenen Worten des Skills
md-slides wandelt ein Markdown-Deck in eine einzeldateige HTML-Präsentation um, die in jedem Browser läuft. Ein Deck besteht aus Folien, die durch --- HR-Trennlinien oder # H1-Überschriften getrennt sind, mit optionalen <!-- notes: ... -->-Blöcken für Präsentatoren-Notizen. Eine Pipeline aus drei stdlib-Python-Skripten: slide_splitter.py, presenter_notes_parser.py, deck_html_renderer.py.
Die Ausgabe bringt Tastaturnavigation, Deep-Linking über URL-Hash, eine Fortschrittsleiste und einen Folienzähler, einen Präsentationsmodus mit Uhr und Vorschau der nächsten Folie sowie ein Print-Stylesheet für den PDF-Export mit einer Folie pro Seite mit. Es nutzt den Markdown-Parser von md-document wieder und liest Design-System-Tokens über config_loader.py. Es lehnt Eingaben ohne klare Foliengrenzen, Decks mit nur 1 Folie, Dateien unter 100 Zeilen sowie Decks, die die --strict-notes-Abdeckung von 50% nicht erreichen, ab.
Was er erzeugt
- Das gerenderte HTML-Deck, geschrieben als deck-{slug}.html im aufgelösten Standard-Ausgabeverzeichnis, wobei bei Kollisionen -2, -3 usw. angehängt wird.
- Zwischen-JSON-Dateien mit den aufgeteilten Folien und anschließend den Folien mit ihren zugehörigen Notizen.
- Ein PDF mit einer Folie pro Seite, erzeugt über das Print-Stylesheet durch Drucken aus dem Browser.
So funktioniert es
- 01Das Deck in geordnete Folien aufteilen
slide_splitter.py liest das Quell-Markdown und teilt es an --- HR-Zeilen oder H1-Überschriften auf, wobei der Trennstil standardmäßig automatisch erkannt wird, und schreibt eine geordnete Folienliste.
- 02Präsentatoren-Notizen pro Folie zuordnen
presenter_notes_parser.py durchsucht jede Folie nach Notizblöcken und ordnet sie der jeweiligen Folie zu, damit der Präsentationsmodus im rechten Panel etwas anzeigen kann.
- 03Das einzeldateige HTML-Deck rendern
deck_html_renderer.py kombiniert Folien mit Design-System-Tokens und erzeugt das Deck, wobei ein Titel und ein Ausgabepfad über die Kommandozeile übergeben werden.
- 04Design-System-Tokens anwenden
Zwölf Marken-CSS-Custom-Properties stammen aus dem Design-System, und design_style bestimmt, wie dicht die Folienlayouts sind.
- 05Eingaben ablehnen, die keine Decks sind
Der Skill bricht ab, statt zu konvertieren, wenn die Eingabe keine klaren Folien-Grenzen aufweist, nur eine einzige Folie ergeben würde oder das Notes-Coverage-Gate unter --strict-notes nicht besteht.