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

В последний раз я упомянул Haskell в статье о XМонад. Однако это не единственная замечательная вещь в мире, которую я вам представляю.

Наверняка все уже знают уценка, и если я их не представлю. Это легкий язык разметки, который позволяет нам быстрее и продуктивнее писать текст. А пока хватит.

Что ж, Markdown не одинок, и существует множество языков, выполняющих ту же функцию. Обычно все приходят к идее взять простой текст с некоторыми пометками и передать его для придания ему формы в виде HTML, LaTex и других. До этого все хорошо.

Это вызывает несколько проблем. Во-первых, и это самое главное, в некоторых реализациях нет тода функции, которые мы хотим. Или язык разметки, в котором это уже реализовано, что нам не нравится.

И прежде чем мы увлечемся капризами, вы должны подумать и осознать, что есть лучшее решение. То, что превращает любой язык разметки во что-то другое. Кто угодно.

Здесь на сцену выходит Haskell. Чудо, о котором я говорю, существует, оно живое, у него есть имя, оно работает и оно потрясающее. Называя себя пандок и это было сделано рукой философа из Университета Беркли, Джона Макфарлейна. Держитесь, потому что хорошее начинается.

Тодос против тодос

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

Чтобы не усложнять, вы передаете любой исходный файл в pandoc (либо в Markdown, либо в reStructuredText, либо в других, поддерживаемых pandoc) и преобразует его в готовый формат, вроде - все готовы? -

LaTex, простой HTML, PDF, DocBook, OpenDocument, docx, rtf, man, простой текст и до трех различных типов презентаций HTML; и мой список короткий, очень короткий. Вот диаграмма, показывающая его мощность:

И наконец, что не менее важно, это библиотека Haskell (или книжный магазин, называйте как хотите); которые можно интегрировать в код других программ. Хакил Это один из наиболее часто используемых, поскольку это генератор статических страниц, который с помощью pandoc может преобразовывать безобидный Markdown и некоторые LaTex в чистый HTML.

Здесь список сайтов кто уже использует его как личный сайт, в стиле блога.

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

Минусы

Конечно, должно быть. Помимо относительно небольшого распространения, большинство издателей не полностью поддерживают его.

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

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

Между прочим, у Emacs здесь есть преимущество. У него есть режим Markdown, который дает нам подсветку синтаксиса и несколько полезных команд, но есть pandoc-режим полноценный, чей Vim-эквивалент до сих пор не может с ним конкурировать.

Если вы все еще хотите добавить его в Vim, вот файл синтаксиса. Для emacs вам необходимо установить режимы markdown и pandoc, как уже упоминалось.

Прямо в точку

Я обнаружил pandoc при поиске пакета text2tags (другой конвертер, но более ограниченный) en CrunchBang и теперь я знаю, что он доступен в Debian стабильная с именем, угадайте, что, pandoc. А возможность установить хватит для этого. Но те, которые мы используем ArchLinux сначала мы должны потерпеть пару неудач.

Этот ад зависимостей

Первое, о чем мы думаем, - это сделать pacman -S pandoc. Ну нет. В официальных репозиториях нет пакета, а пакет из AUR не работает из-за большого количества требуемых зависимостей. Если вы уже что-то знаете о Haskell, теперь вы думаете, что клика решит эту проблему. И да, но с оговорками. Для этого вам необходимо запустить следующее:

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

Это должно сработать, но я не рекомендую. Особенно, если вы хотите войти в мир Haskell, потому что это принесет вам ужасающие проблемы в будущем.

Конечно, звучит странно слышать жалобу на ArchLinux и его философию, но мне кажется полной ерундой удалить пакет haskell-platform из репозиториев, который обеспечил последнюю среду достаточно развитой и совместимы друг с другом; почему обновились ghc и cabal-install.

Если вы хотите установить другие пакеты с помощью cabal, лучше всего загрузить пакеты старый ghc и cabal-install из Машина для отката арки.

Устанавливаем их простым pacman -U пакетный путь и мы заставляем pacman игнорировать их при обновлении системы в файле /etc/pacman.conf; внутри раздела Игнорепакг.

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

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

Вот и все. Что-то надуманное, но мы избегаем проблем. Если вы хотите начать с других пакетов, вместо того, чтобы устанавливать их локально, вы можете использовать Hsenv для создания изолированной среды и избежания головной боли при установке, например, Hakyll.

И сразу предупреждаю, что это ужасно. Все это потому, что Haskell и Cabal еще не разрешили ад зависимостей, от которого уже избавились другие языки, такие как Ruby с его Bundle и гемами. В любом случае, это маленькое решение, которому я обязан Ян Росс группы Хакилла.

Потерпи. Это долгая установка, потому что она компилируется для нас.

Использование и выводы

Вы берете терминал и отправляете такой заказ:

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

Где Markdown (* .md - это расширение, которое я использую) можно заменить любым другим форматом, а .ext - любым другим, доступным в выводе.

То, что я делаю это практически каждый день, мне очень помогло, особенно экспорт в OpenDocument.

И экосистема невероятная. Сам Макфарлейн разработал вики на Haskell, которую Пандок использует для преобразования своих страниц, но это уже другая история. Между прочим, этот пост был написан с гордостью с помощью 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 сказал

    Интересно, спасибо, что поделились.