Erste Schritte

mit mdmachine

C. Bienmüller

2025-08-13

Deine erste Konvertierung

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:

HTML-Ausgabe von ei.md

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”.

YAML-Block und -Parameter

Ä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.

Spalten mit Formatierung

Ä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.
:::

Dateien hinzuladen

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