Closed j3nsch closed 1 year ago
Das Ryakad-Package wurde seit 2015 nicht mehr aktualisiert. Es macht daher vermutlich eher Sinn im BibTeX Code umzusteigen. Dabei sollte die neueste Version verwendet werden. Momentan wird 0.7.0
verwendet. Es gibt mittlerweile 0.9.0
. Für die Versionsangabe in composer.json
wird zwar '^verwendet, aber so wie angegeben sind die Versionen auf
0.7.x` beschränkt.
https://getcomposer.org/doc/articles/versions.md#caret-version-range-
Im BibTeX-Code ist das eine Abhängigkeit des BibTeX-Parsers. Dieser müsste also komplett ausgetauscht werden. Wofür genau wird Pandoc bei den PDF-Deckblättern verwendet?
Im Augenblick sehe ich keine gute Alternative zum verwendeten BibTeX-Parser. Es muss geschaut werden, ob die gleiche Pandoc-Library für den DefaultPdfGenerator
ausreichend ist.
Die Instanzierung des 'Pandoc'-Objektes sollte dabei gleich in eine Funktion ausgelagert werden. Die generateFile
Funktion enthält etwas viel Code.
Ein weitere Alternative wäre es vielleicht, wenn der Autor des renanbr/bibtex-parser
Pakets zukünftig ebenfalls ueberdosis/pandoc
als Pandoc PHP Paket verwenden könnte. Die Verwendung von Pandoc innerhalb von renanbr/bibtex-parser
ist minimal und könnte auch durch ueberdosis/pandoc
bewerkstelligt werden. Ich habe dem Autor diesbezüglich eine Email geschrieben.
Wofür genau wird Pandoc bei den PDF-Deckblättern verwendet?
Pandoc wird in opus4pdf
verwendet:
Momentan erfordert dieser Prozess mindestens Pandoc in Version 2.11, welche in Pandoc Unterstützung für die --citeproc
Option hinzufügt.
Eine Komplikation bei der Verwendung des ryakad/pandoc-php
Pakets in opus4pdf
ist, dass ryakad/pandoc-php
(soweit ich es sehen kann) keinen direkten Input von bereits existierenden Dateien erlaubt.
Ein weitere Alternative wäre es vielleicht, wenn der Autor des
renanbr/bibtex-parser
Pakets zukünftig ebenfallsueberdosis/pandoc
als Pandoc PHP Paket verwenden könnte.
Einen potentiellen Lösungsansatz für das renanbr/bibtex-parser
Paket habe ich hier beschrieben/umgesetzt:
https://github.com/renanbr/bibtex-parser/issues/107 https://github.com/renanbr/bibtex-parser/pull/108
Ich habe für opus4pdf
im untenstehenden Branch (Commit e8e8bbb) versucht, ryakad/pandoc-php
anstatt ueberdosis/pandoc
zur Generierung von Markdown & PDF zu benutzen:
https://github.com/OPUS4/opus4-pdf/compare/issue63
Dabei gibt es zwei Probleme:
Pandoc->runWith()
Methode in ryakad/pandoc-php
kann anscheinend nicht von Markdown zu Markdown konvertieren (was Pandoc selbst kann und was wir in opus4pdf
nutzen, um die Platzhalter der Vorlage zu ersetzen)ryakad/pandoc-php
mehrere Variablen (--variable=... --variable=...
) übergeben kann. Dies nutzen wir in opus4pdf
für die Angabe zweier Ordner (welche Bilder/Logos bzw. die Lizenzlogos enthalten)Mit den (noch zu veröffentlichenden) Änderungen für das renanbr/bibtex-parser
Paket wird ueberdosis/pandoc
als Pandoc-Wrapper bevorzugt, wenn es installiert ist. Statt ryakad/pandoc-php
kann damit in Zukunft auch in opus4-bibtex
das ueberdosis/pandoc
Paket benutzt werden. Damit funktionieren sowohl die PDF-Deckblatt-Generierung als auch der BibTeX-Import.
Danke, das klingt gut. Bitte die notwendigen Änderungen an den composer.json
Dateien vornehmen, wenn der Release der neuen Version des Parsers stattgefunden hat.
Die BibTeX-Funktionalität ist zur Zeit gebrochen (Issue OPUS4/opus4-bibtex#63), weil es einen Konflikt zwischen den Composer Abhängigkeiten gibt. Für BibTeX wird
ryakad/pandoc-php
verwendet, für die PDF-Deckblätterueberdosis/pandoc
. Beide Packages definieren die KlassePandoc\Pandoc
. Das ist bisher nicht aufgefallen, weil beide Package keine Unit Tests für die Integration in Application haben. Bei den Tests kommt dieser Konflikt also nicht zum Tragen.