Mathe für Nicht-Freaks: Archiv/2017 Gedanken zum PDF-Version

Aus Wikibooks

Erklärung[Bearbeiten]

Bisher kann man auf „Mathe für Nicht-Freaks“ leider nur online zugreifen. Es gibt zwar eine durch Extension:Collection bereitgestellte PDF-Exportmöglichkeit, diese bietet aber nur mangelhafte Ergebnisse und es gibt keine aktive Entwicklung mehr an diesem Projekt (siehe die unbearbeiteten Anfragen auf m:Book tool/Feedback).

Deswegen wollen wir eine eigene PDF-Exportmöglichkeit programmieren. Auf dieser Seite koordinieren wir dieses Projekt, fassen Ideen mit ihren Vor- und Nachteilen zusammen und sammeln weitere für dieses Projekt notwendige Informationen.

Relevante Diskussionen[Bearbeiten]

Grundlegende Idee zur Umsetzung[Bearbeiten]

Wir haben folgende Idee zur Umsetzung einer PDF-Exportmöglichkeit:

  • Der Quelltext soll geparst und in ein maschinenlesbares Zwischenformat gespeichert werden (zum Beispiel in ein XML-Format oder einen abstrakten Syntaxbaum).
  • Aus dem Zwischenformat wird über LaTeX eine PDF-Version erzeugt. Auch Exporte ins ePub-Format oder in andere Formate sind möglich.

Diese Vorgehensweise hat den Vorteil, dass wir aus dem Zwischenformat einfach auch weitere Export-Möglichkeiten schaffen können. Auch wäre diese Lösung für andere Plattformen nutzbar, die Ihre Inhalte nur in dasselbe Zwischenformat bringen müssen. Außerdem harmoniert diese Lösung gut mit einem möglichen Plattformwechsel. Siehe hierzu auch Mathe für Nicht-Freaks: Wechsel der Plattform, die für die Umsetzung dieser Idee zu beachten ist.

Notwendige Features[Bearbeiten]

  • Erstellung einer Autorenliste

Ideen zur Umsetzung[Bearbeiten]

Brainstorming[Bearbeiten]

  • Als Ausgangsmaterial für den Parser kann Parsoid genutzt werden.
  • Zugriff auf den Quelltext bietet auch die MediaWiki API genutzt werden.
  • Wir können auf wb2pdf aufbauen. Ein erstes Ergebnis: File:Grundlagen der Mathematik.pdf.
  • Zur Transformation der Inhalte können wir auf folgende Tools aufsetzen:
    • Pandoc
    • XSLT (wenn das Zwischenformat XML ist)
    • XML (wenn das Zwischenformat XML ist)
  • Share-Latex für kollaboratives Arbeiten an einem LaTeX-Projekt
  • Docbook als Zwischenformat
  • ...

Pandoc[Bearbeiten]

  • Aktuell wird nur das unterstützt, was Markdown naitiv mitbringt -> es fehlt die Unterstützung für benutzerdefinierte semantische Elemente.
    • MediaWiki-Templates werden als RawBlock bzw. RawInlineBlock geparst. Damit besteht die Möglichkeit, MediaWiki-Vorlagen über Pandoc-Filter auszuwerten.
    • Pandoc-Filter sind Programme, die über Stdin den geparsten AST als Json übergeben bekommen, diesen dann verändern und den abgeänderten AST als JSON wieder ausgeben.
  • Pandoc basiert vor allem auf Markdown mit selbstdefinierten Erweiterungen. So ist bspw. eine Kombination von Markdown und LaTeX möglich.
  • Support für Pandoc bekommt man über Stackoverflow.
  • Auf dillinger.io hat man einen Markdown-Editor mit integrierter Vorschau-Funktion.