Pandoc und die unbekannten Wunder

Das letzte Mal, dass ich Haskell erwähnte, war in einem Artikel über XMonad. Es ist jedoch nicht die einzige bemerkenswerte Sache auf der Welt, die ich Ihnen vorstelle.

Sicher weiß es schon jeder Markdownund wenn ich sie nicht präsentiere. Es ist eine leichte Auszeichnungssprache, mit der wir beim Schreiben eines Textes schneller und produktiver arbeiten können. Genug für jetzt.

Nun, Markdown ist nicht allein und es gibt eine Vielzahl von Sprachen, die dieselbe Funktion ausführen. Normalerweise kommt jeder auf die Idee, einen einfachen Text mit einigen Markierungen zu nehmen und ihn als HTML, LaTex und andere zu formen. Alles gut bis dahin.

Dies wirft mehrere Probleme auf. Erstens und am wichtigsten ist, dass einige Implementierungen nicht haben todas die Funktionen, die wir wollen. Oder eine Markup-Sprache, die dies bereits implementiert hat und die wir nicht mögen.

Und bevor wir in die Launen geraten, müssen Sie denken und erkennen, dass es eine bessere Lösung gibt. Etwas, das jede Markup-Sprache in etwas anderes verwandelt. Jemand.

Hier kommt Haskell ins Spiel. Das Wunder, von dem ich spreche, existiert, es lebt, es hat einen Namen, es funktioniert und es ist erstaunlich. Sich selbst nennen Pandoc und es kam aus der Hand eines Philosophen der Universität von Berkeley, John MacFarlane. Warte, denn das Gute beginnt.

Alles gegen alles

Wir könnten erwarten, dass Pandoc eine mittelmäßige Berichterstattung über alles bietet, indem es sich nicht konzentriert. Aber nein. Es ist hervorragend gearbeitet und hat erstaunliche Funktionen.

Um es einfach zu halten, übergeben Sie jede Quelldatei an pandoc (entweder in Markdown oder in reStructuredText oder anderen, die Pandoc unterstützt) und konvertiert es in ein fertiges Format, wie - sind alle bereit? -

LaTex, einfaches HTML, PDF, DocBook, OpenDocument, docx, rtf, man, einfacher Text und bis zu drei verschiedene Arten von HTML-Präsentationen; und meine Liste ist kurz, sehr kurz. Hier ist ein Diagramm, das seine Leistung veranschaulicht:

Und zu guter Letzt handelt es sich um eine Haskell-Bibliothek (oder einen Buchladen, nennen Sie es so, wie Sie möchten). das kann in den Code anderer Programme integriert werden. hakyll Es ist eines der am meisten genutzten, da es sich um einen statischen Seitengenerator handelt, mit dem Pandoc von harmlosem Markdown und etwas LaTex in reines HTML konvertiert werden kann.

Hier ein Site-Liste die es bereits als persönliche Seite im Stil eines Blogs nutzen.

Und es ist ziemlich schnell, um es zu beenden. Und trotz all dieser Vorteile scheint es, dass es nur in angelsächsischen Ländern expandiert und hier kaum Informationen verfügbar sind, wie zum Beispiel Präsentationen dieser Art, und es tut weh. Vielleicht liegt es daran, dass die Bedienungsanleitung auf Englisch ist.

Nachteile

Natürlich muss es sein. Abgesehen von seiner relativ kurzen Verbreitung unterstützen die meisten Verlage es nicht vollständig.

Vim verfügt über eine Syntaxhervorhebung für Markdown und sonst wenig anderes, daher verpassen wir einige der coolsten Dinge über Pandoc: seine erweiterte Syntax.

Dinge, die im ursprünglichen Markdown nie angesprochen wurden und die unser Leben erleichtern, wie Tabellen, Zitate, Fußnoten, HTML und LaTex im Code, Metadaten und erweiterte Merkmale.

Emacs hat hier übrigens einen Vorteil. Es hat einen Markdown-Modus, der uns Syntaxhervorhebung und einige nützliche Befehle gibt, aber es gibt einen Pandoc-Modus vollwertig, dessen Vim-Äquivalent immer noch nicht mithalten kann.

Wenn Sie immer noch daran interessiert sind, es in Vim zu integrieren, finden Sie hier die Syntaxdatei. Für Emacs müssen Sie, wie bereits erwähnt, den Markdown- und den Pandoc-Modus installieren.

Auf den Punkt

Ich habe pandoc entdeckt, als ich nach dem text2tags-Paket gesucht habe (ein anderer Konverter, aber begrenzter) en Knirschen und jetzt weiß ich, dass es in verfügbar ist Debian stabil mit dem Namen, weißt du was, Pandoc. EIN Eignung installieren genug dafür. Aber die, die wir benutzen ArchLinux Wir müssen zuerst ein paar Rückschläge erleiden.

Diese Hölle der Abhängigkeiten

Das erste, woran wir denken, ist, einen Pacman-Pandoc zu machen. Nun, nein. Es gibt kein Paket in den offiziellen Repositories und der AUR funktioniert aufgrund der enormen Menge an Abhängigkeiten nicht. Wenn Sie bereits etwas über Haskell wissen, werden Sie jetzt denken, dass die Kabale es lösen wird. Und ja, aber mit Vorbehalt. Dazu müssen Sie Folgendes ausführen:

sudo pacman -S ghc cabal-install cabal update cabal install pandoc

Dies sollte funktionieren, aber ich empfehle es nicht. Vor allem, wenn Sie in die Welt von Haskell eintauchen möchten, denn dies wird Ihnen in Zukunft schreckliche Probleme bereiten.

Sicherlich klingt es seltsam, eine Beschwerde über ArchLinux und seine Philosophie zu hören, aber es scheint mir ein völliger Unsinn zu sein, das Haskell-Plattform-Paket aus den Repositories entfernt zu haben, das die letzte ausreichend entwickelte Umgebung bereitstellte und miteinander kompatibel;; warum ghc und cabal-install aktualisiert wurden.

Wenn Sie andere Pakete mit cabal installieren möchten, laden Sie die Pakete am besten herunter antiguos ghc und cabal-install von Bogen-Rollback-Maschine.

Wir installieren sie mit einem einfachen Pacman -U Paketpfad und wir lassen pacman sie ignorieren, wenn wir das System in der Datei /etc/pacman.conf aktualisieren; Innenteil IgnorierenPkg.

Jetzt können wir pandoc mit cabal installieren und damit es so funktioniert, wie es sollte, fügen wir diese Zeile in unsere .bashrc-Datei ein:

export PATH = ~ / .cabal / bin: $ PATH

Und das ist es. Etwas weit hergeholt, aber wir vermeiden Probleme. Wenn Sie mit anderen Paketen beginnen möchten, anstatt sie lokal zu installieren, können Sie sie verwenden hsenv um isolierte Umgebungen zu schaffen und die Kopfschmerzen bei der Installation von beispielsweise Hakyll zu vermeiden.

Und wenn ich dich einmal warne, dass es schrecklich ist. All dies, weil Haskell und Cabal die Abhängigkeitshölle, die andere Sprachen bereits beseitigt haben, wie Ruby mit seinem Bundle und seinen Edelsteinen, noch nicht gelöst haben. Jedenfalls verdanke ich diese kleine Lösung Jan Ross von Hakylls Gruppe.

Sei geduldig. Es ist eine lange Installation, weil es für uns kompiliert wird.

Verwendung und Schlussfolgerungen

Sie nehmen ein Terminal und senden eine Bestellung wie folgt:

pandoc -o output-file.ext -i original-file.md

Wobei Markdown (* .md, die von mir verwendete Erweiterung) durch ein anderes Format und .ext durch ein anderes in der Ausgabe verfügbares Format ersetzt werden kann.

Für mich, dass ich das praktisch jeden Tag mache, hat es mir sehr geholfen, insbesondere nach OpenDocument zu exportieren.

Und das Ökosystem ist unglaublich. MacFarlane selbst hat in Haskell ein Wiki entwickelt, mit dem Pandoc seine Seiten konvertiert, aber das ist eine andere Geschichte. Übrigens, dieser Beitrag wurde stolz mit Pandoc geschrieben, wie die meisten, die ich bisher geschrieben habe.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.

  1.   gadi sagte

    Ich benutze auch Markdown. Kate und Gedit können ein Plugin installieren, um die Syntax hervorzuheben. Um es dann in ODT zu konvertieren, entscheide ich mich für MultiMarkdown. Es ist dasjenige, das am meisten "den Text respektiert", so dass es beim Kopieren in ein Dokument mit Absatzstilen komfortabler ist. Pandoc hat mir nicht die gleichen Ergebnisse geliefert, oder zumindest wusste ich nicht, wie es geht 😛

    1.    Anti sagte

      Sie können Pandoc dazu bringen, nur den Standard-Markdown zu verwenden, indem Sie die Option –strict aktivieren. wenn du das meinst. Der Hauptvorteil ist jedoch die Vielseitigkeit zwischen den Formaten.
      Empfehlen Sie es, mit dem kleinen, das ich gesehen habe, dass sie es benutzen, es hat mir nicht wehgetan.

  2.   Erunamo JAZZ sagte

    Ich habe es verwendet, um von LaTeX zu reStructuredText zu wechseln. Er macht es sehr gut (meistens xD)

  3.   MSX sagte

    Interessant, danke fürs Teilen.