mit mdmachine
2025-08-13
Dazu muss die Installation bereits abgeschlossen sein.
Lege folgende Datei ei.md an.
# Das gekochte Ei
## Zutaten
1 Hühnerei Größe M
## Zubereitung
* Steche das Ei mit einer Nadel am der runderen Ende an.
* Lege es für 6 Minuten in kochendes Wasser.
Ist das Ei nicht mit Wasser bedeckt, so muss ein Deckel gut aufgelegt werden.
* Nach Ablauf der Zeit gieße das Wasser ab.
Lass sofort kaltes Wasser über das Ei laufen um es "abzuschrecken".Dann starte in dem Verzeichnis, in dem die Datei liegt
mdmachine.py ei.md
Das Ergebnis ist (heute):
% vim.tiny ei.md
% mdmachine.py ei.md
mdmachine Version 1.0.RC3 von 2025-08-12
Medienverzeichnis: /home/cb/bin/mdmwrx/medien
src>: ei.md mtime: 2025-08-12 19:18:18
>trg: ei.html zur Quelldatei ei.md existiert nicht.
Präprozessor...
Konvertiere 'ei' nun in HTML
Starte ToDo-Skript...
Starting Convert to html
Finished Convert to HTML
...beendet
ToDo-Skript beendet
Konvertiere ei nun in A4-PDF
In convert2A4pdf: ToDo-Skript = _mdmtemp_bf3e3df097c2476fa2bb339fb43ea52b_todo.sh
Starte ToDo-Skript...
Starting Convert to A4.pdf
Finished Convert to A4.pdf
...beendet
ToDo-Skript beendet
% ls
ei_A4.pdf ei.html ei.md
Eingegebene Befehle beginnen mit einem “%”.
Man sieht, dass mdmachine geschwätzig ist. Das lässt sich mit dem
Parameter -v noch steigern.
Außerdem wurden sogar zwei neue Dateien angelegt. Eine HTML-Datei und
die passende PDF-Datei im DIN-A4-Format.
Rufst du mdmachine erneut auf…
% mdmachine.py ei.md
mdmachine Version 1.0.RC3 von 2025-08-12
Medienverzeichnis: /home/cb/bin/mdmwrx/medien
src>: ei.md mtime: 2025-08-12 19:18:18
>trg: ei.html mtime: 2025-08-12 19:18:23 (keine Konv. nötig)
…so wird keine erneute Konvertierung durchgeführt, da sie vermutlich unnötig ist.
Öffnest du die Datei ei.html im Browser, so sieht dies ungefär so aus:
Beachte rechts das Inhaltsverzeichnis, das aus deinen Überschriften h1 und h2 gebildet wird. Die Aufzählung enthält nicht die Zeilenumbrüche im Quelltext.
Der Browser meldet (z.B. im Fenstertitel oder dem Namen des Reiters) als Titel der Seite “ei”. Das hat zwei Gründe: Erstens haben wir keinen expliziten Titel angegeben. Und zweitens nimmt mdmachine in so einem Fall den Stamm des Dateinamens und setzt ihn als “Title”.
Ändere und ergänze nun deine ei.md um einige führende Zeilen, dem “YAML-Block”, weil er aus YAML-Parametern besteht:
---
title: Das gekochte Ei
m²_generate_slides: True
...
## Zutaten
1 Hühnerei Größe M
## Zubereitung
* Steche das Ei mit einer Nadel am der runderen Ende an.
* Lege es für 6 Minuten in kochendes Wasser.
Ist das Ei nicht mit Wasser bedeckt, so muss ein Deckel gut aufgelegt werden.
* Nach Ablauf der Zeit gieße das Wasser ab.
Lass sofort kaltes Wasser über das Ei laufen um es "abzuschrecken".Nach erneutem Aufruf von mdmachine erhältst du:

Beachte, dass der Titel ebenfalls im Text angezeigt wird - deshalb haben wir die Überschrift h1 entfernt. Außerdem wird nun der festgelegte Titel auch im Browser angezeigt.
Nebenbei ist nun durch den mdmachine-eigenen Parameter
m²_generate_slides: True auch eine PDF-Datei
ei_SLIDE_a5.pdf zum Präsentieren erzeugt worden.
Hättest du stattdessen den Parameter m²_suppress_pdf: True
gesetzt, so wäre keine PDF-Datei erzeugt (und die bestehende gelöscht)
worden.
Für weitere Versuche kannst du in einem Terminalfenster im
Verzeichnis deiner Markdowndateien den Befehl
mdmachine.py -p starten. Er “pollt” dann alle 5 Sekunden,
ob sich eine Datei geändert hat und konvertiert diese dann sofort. Also:
Datei bearbeiten, speichern (nicht beenden), und im Hintergrund wird in
ca. 6 Sekunden konvertiert. Vergiss nicht, den Browser zu
aktualisieren.
Ändere deine ei.md-Datei zum vorletzten Mal noch einmal ab (ich hoffe du nutzt copy&paste):
---
title: Das gekochte Ei
m²_generate_slides: True
...
<style>
.Zutaten {
width:30em;
font-family:Bitter;
font-style:italic }
</style>
:::::columns
:::{.column .Zutaten}
### Zutaten
1 Hühnerei Größe M
:::
:::column
### Zubereitung
* Steche das Ei mit einer Nadel am der runderen Ende an.
* Lege es für 6 Minuten in kochendes Wasser.
Ist das Ei nicht mit Wasser bedeckt, so muss ein Deckel gut aufgelegt werden.
* Nach Ablauf der Zeit gieße das Wasser ab.
Lass sofort kaltes Wasser über das Ei laufen um es "abzuschrecken".
:::
:::::
:::{.m²_box .m²_yellow}
#### Pro-Tipp:
Abschrecken erleichtert das Schälen und unterbricht den Garvorgang.
:::In Markdown kann man “legal” reinen HTML-Text einfügen:
Bereits pandoc verwaltet Spalten in fenced divs. Unter
letzteren versteht man Bereiche, die von wiederholten Doppelpunkten
eingeschlossen sind. Optisch wie Zäune. Die Anzahl der Doppelpunkte
(mindestens drei) legt fest, welche Grenzen zusammengehören. Der
beginnende Zaun hat direkt folgend den Namen einer Klasse - hier
columns und column. Um mehrere Klassen
anzugeben, muss man sie in geschweifte Klammern schreiben und mit dem
führenden Punkt als Klasse kennzeichnen. Dabei ist auch die frisch
definierte Klasse möglich, denn nur der Browser muss die Klasse
kennen.
Überschriften ab h3 tauchen nicht mehr im Inhaltsverzeichnis (TOC) auf, so dass dieses nun ganz verschwindet.
Zwei Klassen von mdmachine legen für ein weiteres fenced div fest, dass es eine Box sein soll - und zwar in gelb.
Der Stil der Zutatenspalte ist jetzt nicht so wichtig, dass du ihn in
deiner mdmachine-Installation im Medienverzeichnis verewigen musst (was
natürlich ginge). Stattdessen schreiben wir die style-Definition in eine
eigene Datei _Rezepte_style_.md.
Schließlich ergänzen wir im YAML-Block der ei.md:
m²_include_after: "_Rezepte_style_.md" und löschen wir dort
den <style>-Block.
Wir können auch gleich den Textbereich in der HTML-Datei etwas
breiter machen. So wird die Datei _Rezepte_style_.md
also:
<style>
.Zutaten {
width: 35em;
font-family: Bitter;
font-style: italic; }
body {
max-width: 40em; }
</style>Weiter mit Mehrere Dateien mit Navigation