For coders TYPO3 Tech Corner

PDF aus RST Doc Dokumenten rendern

PDF aus RST Doc Dokumenten rendern

Das RstDoc Format ist das Standard Format für TYPO3 Extensions und TYPO3 Core Dokumentation, wenn es in die offizielle Dokumentation einfließen soll. Wenn man den Bedarf hat, die Dokumentation selbst zu rendern und z.B. ein Dokument als pdf ausliefern möchte, kann das über das Docker Setup einfach bewerkstelligt werden.

Voraussetzung: 

  • Docker muss installiert sein und laufen
  • Linux oder MacOS (Windows habe ich nicht getestet)
  • Dokumentation nach den offiziellen TYPO3 Vorgaben (siehe how-to-document-an-extension

Schritt für Schritt

Schritt 1: Docker Image starten und Befehl in Terminal verfügbar machen

Terminal öffnen und Befehl ausführen im übergeordneten Verzeichnis der Dokumentation ausführen:

source <(docker run --rm t3docs/render-documentation show-shell-commands)

Schritt 2: Dokumentation rendern

Wenn ich die Dokumentation als HTML betrachten möchte, führe ich folgenden Befehl aus:

dockrun_t3rd makehtml

Als Ergebnis erhält man den HTML Output im Verzeichnis: /Documentation-GENERATED-temp/Result/project/

Wenn das ganze als PDF erzeugt werden soll, müssen folgende Befehle ausgeführt werden:

dockrun_t3rd  makeall dockrun_t3rd  makehtml  -c make_latex 1  -c make_pdf 1

Damit wird neben dem HTML output auch eine Latex Ausgabe erzeugt, die im dritten Schritt verwendet wird.

Schritt 3: Umwandlung zu PDF

Zum Schluß werden noch drei weitere Befehle abgesetzt, um das PDF zu generieren. 

mkdir -p Documentation-GENERATED-temp docker run --rm \       -v $(pwd):/PROJECT:ro \       -v $(pwd)/Documentation-GENERATED-temp:/RESULT \       t3docs/render-documentation:develop \       makeall -c jobfile /PROJECT/Documentation/jobfile.json docker run --rm \       -v $(pwd)/Documentation-GENERATED-temp/Result/latex:/RESULT \       --workdir="/RESULT/" \       thomasweise/docker-texlive-full:latest \       "./run-make.sh"

Das Ergebnis befindet sich dann im Verzeichnis: /Documentation-GENERATED-temp/Result/latex/PROJECT.pdf

Fazit

Mit Hilfe der Docker Umgebung lassen sich nicht nur PDF Dateien rendern, sondern vor allem auch die Dokumentation einer TYPO3 Extension sinnvoll vorabtesten. Das Rst Format ist zwar aufwändiger als Markdown, bietet aber jedoch viel mehr Möglichkeiten eine umfassende Dokumentation mit Naviagtion und Querverlinkungen zu erzeugen.

Stefan Busemann

Projekte und Produkte im TYPO3-Bereich?

Haben Sie Fragen zu Projekten und Produkten im TYPO3-Bereich?

Unser Geschäftsführer Stefan Busemann hilft Ihnen gerne weiter.

Stefan Busemann  |  Geschäftsführung & Kundenbetreuung

Kennst du das: Immer nur schnell schnell?

Wie wäre es einmal mit Zeit und Respekt für Codequalität? Arbeiten im Team? Automatisierte Tests?

Komm zu uns

SQL: Zeige alle Tabellen absteigend nach Größe sortiert

Ich brauche in letzter Zeit häufiger den SQL-Befehl, um herauszufinden, welche Tabellen in der TYPO3-Datenbank am größten sind. Ich habe das Snippet einmal veröffentlicht.

Zum Beitrag

TYPO3 12 mit CKEditor 5: Stile als Einfachauswahl

Wenn man im RTE in TYPO3 einen Link setzt, kann es sein, dass man zwischen verschiedenen Link-Klassen auswählen muss, um beispielsweise Buttons im Frontend zu erzeugen. Neu ist in TYPO3 12 dass man...

Zum Beitrag

Null-Safe Operator im TYPO3-Bereich

Spätestens mit dem Einzug von PHP8 kann es an vielen Stellen zu Problemen mit undefinierten Arrays oder Variablen im Allgemeinen kommen. Hier ein paar Beispiele und einfache Lösung dafür.

Zum Beitrag

Die ersten/letzten Zeilen einer (SQL)-Datei löschen

Zu den nachfolgenden Befehlen gibt es eigentlich nicht viel zu sagen. Manchmal kann es nützlich sein, die ersten (bzw. letzten) X Zeilen aus einer Datei zu löschen. Und wenn die Datei zu groß zum...

Zum Beitrag

b13/container: Kindelemente in der Bearbeitungsansicht hinzufügen und ändern

Anders als in gridelements kann man in der Extension Container von B13 die Kindelemente nicht verwalten, wenn man den Container in der Bearbeitungsansicht öffnet. Wie man das schnell selber einbauen...

Zum Beitrag

Menü-Vergleich: Zahlen, Zahlen, Zahlen

Zum Beitrag