Pandoc och de okända underverk

Förra gången jag nämnde Haskell var i en artikel om XMonad. Det är dock inte det enda anmärkningsvärda i världen som jag presenterar för dig.

Visst vet alla redan det Markdown, och om jag inte presenterar dem. Det är ett lätt markeringsspråk som gör att vi kan vara snabbare och mer produktiva när vi skriver en text. Nog för nu.

Markdown är inte ensam och det finns många språk där ute för att utföra samma funktion. Normalt går alla med tanken att ta en vanlig text med några märken och skicka den för att forma den som HTML, LaTex och andra. Allt bra där uppe.

Detta ger upphov till flera problem. Först och viktigast, vissa implementeringar har inte todas de funktioner vi vill ha. Eller ett markeringsspråk som redan har implementerat detta som vi inte gillar.

Och innan vi fastnar i nycklarna måste du tänka och inse att det finns en bättre lösning. Något som förvandlar vilket markeringsspråk som helst till något annat. Någon.

Det är här Haskell kommer in i bilden. Det underliga jag pratar om finns, det lever, det har ett namn, det fungerar och det är fantastiskt. Ringer sig själv pandoc och det kom från en filosof från University of Berkeley, John MacFarlane. Vänta, för det goda börjar.

Allt mot alla

Vi kunde förvänta oss att pandoc skulle erbjuda medelmåttig täckning av allt genom att inte koncentrera oss. Men nej. Det är utmärkt arbetat och har fantastiska funktioner.

För att hålla det enkelt skickar du alla källfiler till pandoc (antingen i Markdown eller i reStructuredText eller andra som pandoc stöder) och konverterar det till ett färdigt format, som - är alla redo? -

LaTex, vanlig HTML, PDF, DocBook, OpenDocument, docx, rtf, man, vanlig text och upp till tre olika typer av HTML-presentationer; och min lista är kort, mycket kort. Här är ett diagram som illustrerar dess kraft:

Och sist men inte minst, det är ett Haskell-bibliotek (eller bokhandel, kall det vad du vill); som kan integreras i koden för andra program. hakyll Det är en av de som utnyttjar det mest, detta är en statisk sidgenerator som, när du använder pandoc, kan konvertera från ofarligt Markdown och lite LaTex till ren HTML.

Här en lista över webbplatser som redan använder den som en personlig webbplats, i stil med en blogg.

Och det är ganska snabbt att avsluta det. Och även med alla dessa fördelar verkar det som att det bara expanderar i angelsaxiska länder och här finns det knappast någon information tillgänglig, som -och det gör ont-presentationer av denna typ. Kanske beror det på att användarhandboken är på engelska.

Nackdelarna

Naturligtvis måste det finnas. Bortsett från den relativt korta spridningen stöder de flesta förlag inte det helt.

Vim har syntaxmarkering till Markdown och lite annat som standard, så vi missar några av de coolaste sakerna med pandoc: dess utökade syntax.

Saker som aldrig tagits upp i den ursprungliga Markdown och som gör vårt liv enklare, till exempel tabeller, citat, fotnoter, HTML och LaTex i koden, metadata och mer avancerade egenskaper.

Förresten, Emacs har en fördel här. Det har ett Markdown-läge som ger oss syntaxmarkering och några användbara kommandon, men det finns en pandoc-läge fullfjädrad, vars Vim-ekvivalent fortfarande inte kan konkurrera med den.

Om du fortfarande är intresserad av att få den till Vim, här är syntaxfilen. För emacs måste du installera markdown- och pandoc-lägen, som redan nämnts.

Rakt på sak

Jag upptäckte pandoc när jag letade efter text2tags-paketet (en annan omvandlare men mer begränsad) en crunchbang och nu vet jag att den är tillgänglig i Debian stabil med namnet, gissa vad, pandoc. A aptitude installera nog för detta. Men de vi använder archlinux vi måste drabbas av ett par bakslag först.

Det där beroendet

Det första vi tänker på är att göra en pacman -S pandoc. Tja, nej. Det finns inget paket i de officiella förvaren och AUR fungerar inte på grund av den enorma mängd beroenden som krävs. Om du redan vet något om Haskell, tror du nu att cabal kommer att lösa det. Och ja, men med förbehåll. För att göra detta måste du köra följande:

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

Detta borde fungera men jag rekommenderar det inte. Speciellt om du vill gå in i Haskells värld, för det kommer att ge dig skrämmande problem i framtiden.

Visst låter det konstigt att höra ett klagomål om ArchLinux och dess filosofi, men det verkar för mig som ett helt nonsens att ha tagit bort haskell-plattformspaketet från förvaren, vilket gav den sista miljön tillräckligt utvecklad och kompatibla med varandra; varför ghc och cabal-install uppdaterades.

Om du vill installera andra paket med cabal är det bäst att ladda ner paketen Antiguos ghc och cabal-install från Arch Rollback Machine.

Vi installerar dem med en enkel pacman -U paketväg och vi får pacman att ignorera dem när du uppdaterar systemet, i filen /etc/pacman.conf; inuti sektionen Ignorera kg.

Nu kan vi använda cabal för att installera pandoc och för att det ska fungera som det ska, lägger vi den här raden i vår .bashrc-fil:

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

Och det är allt. Något långsökt, men vi undviker problem. Om du vill börja med andra paket kan du istället för att installera dem lokalt hsenv för att skapa isolerade miljöer och undvika huvudvärk vid installation av till exempel Hakyll.

Och en gång varnar jag dig för att det är hemskt. Allt detta för att Haskell och Cabal ännu inte har löst det beroendehelvete som andra språk redan har blivit av med, till exempel Ruby med dess bunt och pärlor. Hur som helst, den här lilla lösningen är jag skyldig det ian ross från Hakylls grupp.

Ha tålamod. Det är en lång installation eftersom den sammanställer det för oss.

Användning och slutsatser

Du tar en terminal och skickar en order så här:

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

Där Markdown (* .md, är det tillägg som jag använder) kan ersättas med något annat format och .ext av alla andra tillgängliga i utdata.

För mig att jag gör det praktiskt taget varje dag har det hjälpt mig mycket, särskilt att exportera till OpenDocument.

Och ekosystemet är otroligt. MacFarlane själv har utvecklat en wiki i Haskell, som Pandoc använder för att konvertera sina sidor, men det är för en annan historia. Förresten, det här inlägget var stolt skrivet med Pandoc, som de flesta av de jag har skrivit hittills,


4 kommentarer, lämna din

Lämna din kommentar

Din e-postadress kommer inte att publiceras. Obligatoriska fält är markerade med *

*

*

  1. Ansvarig för uppgifterna: Miguel Ángel Gatón
  2. Syftet med uppgifterna: Kontrollera skräppost, kommentarhantering.
  3. Legitimering: Ditt samtycke
  4. Kommunikation av uppgifterna: Uppgifterna kommer inte att kommuniceras till tredje part förutom enligt laglig skyldighet.
  5. Datalagring: databas värd för Occentus Networks (EU)
  6. Rättigheter: När som helst kan du begränsa, återställa och radera din information.

  1.   gadi sade

    Jag använder också Markdown. Kate och Gedit kan ha ett plugin installerat för att markera syntax. För att konvertera den till ODT väljer jag MultiMarkdown, det är det som, hur man säger det, "respekterar texten" så att när det kopieras till ett dokument med styckeformat är det bekvämare. Pandoc har inte gett mig samma resultat, eller åtminstone visste jag inte hur jag skulle göra det 😛

    1.    anti sade

      Du kan göra att Pandoc bara tar standard Markdown genom att aktivera alternativet –strict; om det är vad du menar. Den största fördelen är dock mångsidigheten mellan format.
      Rekommendera det, med det lilla som jag har sett att de använder det skadade det mig inte.

  2.   erunamoJAZZ sade

    Jag har använt det för att gå från LaTeX till reStructuredText. Han gör det mycket bra (för det mesta xD)

  3.   MSX sade

    Intressant, tack för att du delar.