Hallo Jörg,
(1) Im DokuWiki sind die Seiten untereinander vernetzt, in der PDF sind sie als lineare Folge. Du musst also irgendwo die Reihenfolge festlegen. Wie und wo machst Du das?
Das ist richtig, ich habe dafür eine sehr einfache Scriptsprache definiert. Das oben gezeigte PDF ist mit folgendem Script erstellt, welches von dokuPDF verarbeitet wird:
.pages "includes\pages\de\"
.cover "includes\cover.html"
.footer "includes\footer.html"
.pdf "lunaavr.pdf"
:about
:kontakt
+Grundlagen der Sprache
:Grundlagen
:Unterstützte Controller
:byteorder
:Operatoren --pages-add-linked --pages-sort-asc --bookmark-pagename noheading
:Literale
:Datentypen
:Typkonvertierung
:Konstanten
:Bezeichner
:Ausdrücke
:Syntax
+Sprachreferenz
:Kommentare
:Variablen
:Arrays
:Define
:Objekte, Interfaces
:Klassen
:Bedingungen --pages-add-linked --pages-sort-asc --bookmark-pagename noheading
:Schleifen --pages-add-linked --pages-sort-asc --bookmark-pagename noheading
:Methoden --pages-add-linked --pages-sort-asc --bookmark-pagename noheading
:exception-endexception
:Arithmetik --pages-add-linked --pages-sort-asc --bookmark-pagename noheading
:Stringfunktionen --pages-add-linked --pages-sort-asc --bookmark-pagename noheading
:Befehlsübersicht --pages-add-linked --pages-sort-asc --bookmark-pagename noheading
+Inline-Assembler
:asm-endasm
:Assemblerbefehle
:Conditions
:Macros
:Assembler-Registerdefines
+Luna-Speicherverwaltung
:Variablen in Methoden
:Speicherverwaltung
:Speicherbedarf
+Luna-Dateiformate
:Luna Picture
:Luna Font
+Compiler (lavrc)
:lavrc parameter
:kompilierablauf
:Beispiel-Sourcen --pages-add-linked "[^.]+.[^.]+" --pages-sort-asc --bookmark-pagename noheading
+Sonstiges
:* --pages-skip-touched --pages-skip-regex "lunaavr" --pages-skip "news","start","download","faq","sidebar","tutorials","issuetracker" --pages-sort-asc
Wie man sehen kann, kann man auch Optionen angeben, beispielsweise das automatische erkennen von Seitenverweisen im Dokument und das entsprechende Einfügen der Seiten.
(2) Du hast im Dokument keine hierarchische Kapitelgliederung. Für eine umfangreiche Doku, die auch als Ausdruck genutzt wird, wäre das und eine entsprechende Nummerierung der Kapitel sehr sinnvoll, bei mir sogar zwingend notwendig. Siehst Du eine Möglichkeit dazu?
Hierzu muss man die Funktionsweise wissen wie das PDF erzeugt wird. mein Tool dokuPDF verarbeitet die reinen Textseiten aus einem dokuWiki mit dem Grundwortschatz. Es interpretiert die entsprechende dokuWiki-Syntax und erzeugt daraus nach Vorgabe des Scriptes ein einzelnes, großes HTML-Dokument. Dieses wird optisch durch eine CSS-Datei definiert. Die Seitentrennung erfolgt ebenfalls mit CSS (automatisch). Dieses html-Dokument konvertiert dann wkhtmltopdf zu einem PDF-Dokument. CSS lässt hier übrigens noch weitere Möglichkeiten für Druckseiten zu, ich denke hier sind noch einige Möglichkeiten offen.
Ich habe dokuPDF deshalb entwickelt, weil ich sonst keine einfache 1-Klick-Lösung gefunden habe ein PDF-Dokument nach meinen Vorgaben aus den dokuWiki-Seiten erstellen zu können. Mit der jetzigen Form muss ich nur einmalig das Cover designen und das Script definieren. Danach kopiere ich für ein Update des PDF einfach nur die dokuWiki-Textseiten in den Ordner und klicke auf eine "make"-Verknüpfung, fertig.
(3) Aus Frage (2) resultiert gleich die nächste Frage: Ist es möglich, ein Inhaltsverzeichnis zu erstellen? Hast Du da eine Idee?
Das ist möglich, wie das genau zu bewerkstelligen ist, muss ich jedoch noch ausprobieren. wkhtmltopdf verarbeitet beispielsweise javascript, sodass man dann die einzelnen Seitennummern ermitteln kann, so wie es bereits in den PDF-Footern passiert.
(4) Kann Dein Konverter Plugins verarbeiten. Ich nutze z.B. für die semantische Kennzeichnung von Inhalten oft das WRAP-Plugin mit eigenen "Boxen", für die Zusammenführung von Inhalten auch das Include-Plugin.
Nun hier muss man wissen, dass nur die reinen dokuwiki-Text-Seiten verwendet werden die von meinem Tool geparsed und interpretiert werden. D.h. wenn man eine spezielle Funktion benötigt, könnte ich das in den Parser theoretisch mit aufnehmen. Der Parser ist aber monolithisch und inkludiert keinerlei Plugins.
Wenn du möchtest, sende ich dir die bisherige Version zur Ansicht zu inklusive der LunaAVR-Dokumentationsseiten, sodass du dir ein Bild machen kannst. Das Tool ist in der aktuellen Form noch nicht bereit für eine allgemeine Veröffentlichung. Wenn du es getestet hast und wir zu der Meinung gelangen man kann es veröffentlichen, stelle ich es gerne zum Download zur Verfügung.
Gruß, Richard