Пандок и непознатите чудеса

Последният път, когато споменах Haskell, беше в статия за XMonad. Това обаче не е единственото забележително нещо в света, което ви представям.

Със сигурност всички вече знаят Markdown, и ако не ги представя. Това е лек език за маркиране, който ни позволява да бъдем по-бързи и продуктивни при писане на текст. За сега достатъчно.

Е, Markdown не е сам и има множество езици, които изпълняват същата функция. Обикновено всеки се придържа към идеята да вземе обикновен текст с някои марки и да го предаде, за да го оформи като HTML, LaTex и други. Всичко добре до там.

Това поражда няколко проблема. Първо и най-важното е, че някои внедрения нямат todas характеристиките, които искаме. Или език за маркиране, който вече е приложил това, което не ни харесва.

И преди да се хванем за прищевките, трябва да помислите и да осъзнаете, че има по-добро решение. Нещо, което превръща всеки език за маркиране в нещо друго. Всеки.

Тук Хаскел влиза в картината. Чудото, за което говоря, съществува, живо е, има име, работи и е невероятно. Обажда се пандока и то дойде от ръката на философ от университета в Бъркли, Джон Макфарлейн. Дръж се, защото доброто започва.

Всички срещу всички

Можем да очакваме pandoc да предложи посредствено отразяване на всичко, като не се концентрира. Но не. Работи отлично и има невероятни функционалности.

За да бъде просто, вие предавате всеки изходен файл на pandoc (или в Markdown, или в reStructuredText или други, които pandoc поддържа) и го преобразува в завършен формат, като - всички готови ли са? -

LaTex, обикновен HTML, PDF, DocBook, OpenDocument, docx, rtf, man, обикновен текст и до три различни вида HTML презентации; и списъкът ми е кратък, много кратък. Ето диаграма, илюстрираща неговата сила:

И ако това не беше достатъчно, това е библиотека на Haskell (или книжарница, наречете я както искате); които могат да бъдат интегрирани в кода на други програми. Хакил Той е един от най-експлоатираните, като това е статичен генератор на страници, който с помощта на pandoc може да конвертира от безвреден Markdown и малко LaTex в чист HTML.

Тук a списък с сайтове които вече го използват като личен сайт, в стила на блог.

И това е доста бързо, за да го завършите. И дори с всички тези предимства, изглежда, че се разширява само в англосаксонските страни и тук едва ли има налична информация, като например - и боли - презентации от този тип. Може би защото ръководството за употреба е на английски.

Недостатъците

Разбира се, че трябва да има. Освен относително краткото разпространение, повечето издатели не го подкрепят напълно.

Vim има подчертаване на синтаксиса за Markdown и малко друго по подразбиране, така че пропускаме някои от най-страхотните неща за pandoc: неговият разширен синтаксис.

Нещата никога не се повдигат в оригиналния Markdown и които улесняват живота ни, като таблици, цитати, бележки под линия, HTML и LaTex в кода, метаданни и по-усъвършенствани характеристики.

Между другото, Emacs има предимство в това. Той има режим Markdown, който ни дава подчертаване на синтаксиса и няколко полезни команди, но има режим pandoc пълноправен, чийто еквивалент на Vim все още не може да се конкурира с него.

Ако все още се интересувате да го вкарате във Vim, ето файлът на синтаксиса. За emacs трябва да инсталирате режимите за маркиране и pandoc, както вече споменахме.

Направо до точката

Открих pandoc, когато търсех пакета text2tags (друг конвертор, но по-ограничен) en crunchbang и сега знам, че е наличен в Debian конюшня с името, познайте какво, pandoc. A aptitude инсталиране достатъчно за това. Но тези, които използваме ArchLinux първо трябва да претърпим няколко неуспехи.

Този ад на зависимости

Първото нещо, за което мислим, е да направим pacman -S pandoc. Е, не. Няма пакет в официалните хранилища и AUR не работи поради огромното количество зависимости, които изисква. Ако вече знаете нещо за Haskell, сега ще помислите, че cabal ще го реши. И да, но с резерви. За да направите това, трябва да изпълните следното:

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

Това би трябвало да работи, но не го препоръчвам. Особено ако искате да влезете в света на Хаскел, защото това ще ви донесе ужасяващи проблеми в бъдеще.

Със сигурност звучи странно да чуете оплакване за ArchLinux и неговата философия, но ми се струва пълна глупост да премахнете пакета haskell-platform от хранилищата, който предостави на последната среда достатъчно развита съвместими помежду си; защо ghc и cabal-install се актуализираха.

Ако искате да инсталирате други пакети с помощта на cabal, най-добре е да ги изтеглите Antiguos ghc и cabal-install от Машина за връщане на арка.

Инсталираме ги с обикновен pacman -U път на пакет и караме pacman да ги игнорира при актуализиране на системата, във файла /etc/pacman.conf; вътрешна секция ИгнорирайPkg.

Сега сме в състояние да използваме cabal за инсталиране на pandoc и за да работи както трябва, поставяме този ред в нашия .bashrc файл:

износ PATH = ~ / .cabal / bin: $ PATH

И това е. Нещо замислено, но избягваме проблеми. Ако искате да започнете с други пакети, вместо да ги инсталирате локално, можете да използвате hsenv за създаване на изолирани среди и избягване на главоболието от инсталирането, например, Hakyll.

И веднъж ви предупреждавам, че е ужасно. Всичко това, защото Haskell и Cabal все още не са разрешили ада, който вече са се отървали от други езици, като Ruby с неговия пакет и скъпоценни камъни. Както и да е, това малко решение, на което го дължа Иън Рос от групата на Хакил.

Бъди търпелив. Това е дълго инсталиране, защото го компилира за нас.

Използване и заключения

Взимате терминал и изпращате поръчка като тази:

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

Когато Markdown (* .md, е разширението, което използвам) може да бъде заменен от всеки друг формат и .ext от всеки друг наличен в изхода.

За мен, че правя това практически всеки ден, ми помогна много, особено за експортиране в OpenDocument.

А екосистемата е невероятна. Самият MacFarlane е разработил уики в Haskell, който Pandoc използва, за да конвертира страниците си, но това е за друга история. Между другото, този пост беше написан с гордост с Pandoc, както повечето от тези, които съм писал досега,


Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   Гади каза той

    Използвам и Markdown. Кейт и Gedit могат да имат инсталиран плъгин, за да подчертаят синтаксиса. След това, за да го конвертирам в ODT, избирам MultiMarkdown, той е този, който най-много, как да го кажа, "уважава текста", така че при копирането му в документ със стилове на абзаци да е по-удобно. Pandoc не ми е дал същите резултати или поне не знаех как да го направя 😛

    1.    анти каза той

      Можете да накарате Pandoc да вземе само стандартната Markdown, като активирате опцията –strict; ако имаш предвид това. Основното му предимство обаче е гъвкавостта между форматите.
      Препоръчайте го, с малкото, което видях, че го използват, не ми навреди.

  2.   Ерунамо ДЖАЗ каза той

    Използвал съм го, за да премина от LaTeX към reStructuredText. Прави го много добре (през повечето време xD)

  3.   MSX каза той

    Интересно, благодаря за споделянето.