Пандок і невідомі дива

Востаннє я згадував Хаскелла в статті про XMonad. Однак це не єдина чудова річ у світі, яку я представляю вам.

Напевно всі вже знають Markdown, і якщо я їх не пред'явлю. Це легка мова розмітки, яка дозволяє нам бути швидшими та продуктивнішими під час написання тексту. Наразі вистачить.

Ну, Markdown не один, і існує безліч мов, які виконують ту саму функцію. Зазвичай кожен іде на те, щоб взяти звичайний текст з деякими позначками і передати його, щоб сформувати як HTML, LaTex та інші. Все добре там.

Це породжує кілька проблем. По-перше, і найголовніше, це те, що деякі реалізації не мають всі функції, які ми хочемо. Або мова розмітки, яка вже реалізувала це, нам не подобається.

І перш ніж ми потрапимо в примхи, ви повинні подумати і зрозуміти, що є краще рішення. Щось, що перетворює будь-яку мову розмітки на щось інше. Будь-хто.

Тут Хаскелл входить у картину. Диво, про яке я говорю, існує, воно живе, воно має назву, працює і це дивно. Виклик себе пандок і це відбулося з рук філософа з університету Берклі Джона Макфарлейна. Тримайся, бо добро починається.

Всі проти всіх

Ми могли б очікувати, що pandoc запропонує посереднє висвітлення всього, не концентруючись. Але не. Він чудово працює і має дивовижні функціональні можливості.

Щоб все було просто, ви передаєте будь-який вихідний файл pandoc (або в Markdown, або в reStructuredText, або в інших, які підтримує pandoc) і перетворює його у готовий формат, наприклад - чи всі готові? -

LaTex, звичайний HTML, PDF, DocBook, OpenDocument, docx, rtf, man, звичайний текст та до трьох різних типів HTML-презентацій; і мій список короткий, дуже короткий. Ось схема, що ілюструє його силу:

І останнє, але не менш важливе - це бібліотека Haskell (або книгарня, називайте її як хочете); які можуть бути інтегровані в код інших програм. Хакілл Це один із найбільш експлуатованих, це статичний генератор сторінок, який за допомогою pandoc може перетворити з нешкідливого Markdown та деякого LaTex на чистий HTML.

Тут a список сайтів які вже використовують його як особистий сайт у стилі блогу.

І це досить швидко, щоб закінчити це. І навіть незважаючи на всі ці переваги, здається, що він розширюється лише в англосаксонських країнах, і тут навряд чи доступна будь-яка інформація, наприклад, - і це шкодить - презентації такого типу. Можливо, це тому, що посібник користувача є англійською.

Мінуси

Звичайно, має бути. Окрім порівняно короткого поширення, більшість видавців не підтримують його повністю.

Vim має підсвічування синтаксису пункт Маркдаун і трохи іншого за замовчуванням, тому ми пропускаємо деякі найкрутіші речі про pandoc: його розширений синтаксис.

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

До речі, Emacs має в цьому перевагу. Він має режим Markdown, який дає нам підсвічування синтаксису та кілька корисних команд, але є режим pandoc повноцінний, чий еквівалент Vim досі не може з ним конкурувати.

Якщо ви все ще зацікавлені отримати його у Vim, ось файл синтаксису. Для emacs вам потрібно встановити режими розмітки та pandoc, як уже зазначалося.

Прямо до точки

Я виявив pandoc під час пошуку пакета text2tags (ще один перетворювач, але більш обмежений) en Кранчбанг і тепер я знаю, що він доступний у Debian конюшня з іменем, вгадай що, pandoc. A aptitude встановити досить для цього. Але ті, якими ми користуємось ArchLinux спочатку нам доведеться пережити пару невдач.

Ця залежність пекло

Перше, про що ми думаємо, це створення pacman -S pandoc. Ну ні. В офіційних сховищах немає пакету, і AUR не працює через величезну кількість залежностей, які йому потрібні. Якщо ви вже щось знаєте про Хаскелла, ви тепер подумаєте, що Кабал це вирішить. І так, але з застереженнями. Для цього потрібно виконати наступне:

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

Це має спрацювати, але я не рекомендую це робити. Особливо, якщо ви хочете потрапити у світ Хаскелла, адже це принесе вам жахливі проблеми в майбутньому.

Звичайно, дивно чути скаргу на ArchLinux та її філософію, але мені здається цілковитою нісенітницею, що вилучив з репозиторіїв пакет платформи haskell, який забезпечив останнє середовище достатньо розвиненим і сумісні між собою; чому ghc та cabal-install оновились.

Якщо ви хочете встановити інші пакети за допомогою cabal, найкраще завантажити пакети старий ghc та cabal-install з Arch відкат машина.

Встановлюємо їх за допомогою простого pacman -U шлях-пакунок і ми змушуємо pacman ігнорувати їх під час оновлення системи, у файлі /etc/pacman.conf; внутрішня секція ІгноруватиPkg.

Тепер ми можемо використовувати cabal для встановлення pandoc, і щоб він працював належним чином, ми помістили цей рядок у наш файл .bashrc:

експорт PATH = ~ / .cabal / bin: $ PATH

І це все. Щось надумане, але ми уникаємо проблем. Якщо ви хочете почати з інших пакетів, замість того, щоб встановлювати їх локально, ви можете використовувати hsenv для створення ізольованих середовищ та уникнення головного болю при встановленні, наприклад, Hakyll.

І одного разу я попереджаю вас, що це жахливо. Все це тому, що Хаскелл і Кабал ще не вирішили пекло залежності, від якого вже позбулися інші мови, такі як Рубі з його набором та самоцвітами. У будь-якому випадку, це невелике рішення завдяки Ян Росс групи Хакілла.

Наберіться терпіння. Це довга установка, оскільки вона компілює її для нас.

Використання та висновки

Ви берете термінал і відправляєте таке замовлення:

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

Де Markdown (* .md - це розширення, яке я використовую) може бути замінено будь-яким іншим форматом, а .ext - будь-яким іншим, наявним у вихідних даних.

Мені, що я роблю це практично щодня, це дуже допомогло, особливо для експорту в OpenDocument.

І екосистема неймовірна. Сам Макфарлейн розробив у Хаскелі вікі, яку Пандок використовує для перетворення своїх сторінок, але це вже для іншої історії. До речі, ця публікація була гордо написана разом з Pandoc, як і більшість із тих, які я писав досі,


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

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

  1.   Гаді - сказав він

    Я також використовую Markdown. Kate та Gedit можуть встановити плагін для виділення синтаксису. Потім, щоб перетворити його на ODT, я обираю MultiMarkdown, саме він, як кажуть, "поважає текст", щоб при копіюванні його в документ зі стилями абзаців було зручніше. Pandoc не дав мені однакових результатів, або, принаймні, я не знав, як це зробити 😛

    1.    анти - сказав він

      Ви можете змусити Pandoc взяти лише стандартний Markdown, активувавши опцію –стрикт; якщо це ти маєш на увазі. Однак головною його перевагою є універсальність між форматами.
      Порекомендуйте, з тим незначним, що я бачив, що вони ним користуються, це мені не зашкодило.

  2.   ЕрунамоЯЗЗ - сказав він

    Я використовував його для переходу від LaTeX до reStructuredText. Він робить це дуже добре (більшість часу xD)

  3.   MSX - сказав він

    Цікаво, дякую за поділ.