Преобразование файлов записной книжки ipython (на основе JSON) в другие форматы с помощью pandoc - PullRequest
0 голосов
/ 07 января 2012

При попытке использовать pandoc для преобразования файлов на основе JSON (.ipynb) из записной книжки iPython (0.12) я получаю сообщение об ошибке «bad decodeArgs» для JSON. Я подозреваю, что это может быть связано с предоставленной Ubuntu версией pandoc, которую я использую (1.8.1.1). Кажется, что получение последней версии pandoc требует настройки платформы Haskell, что мне не удалось из-за проблем с зависимостями (и я действительно не хочу). Я не хочу тратить больше времени на установку Haskell, если это не моя проблема.

Есть ли способ получить последние версии pandoc для Ubuntu, не перестраивая его?

Учитывая, что ноутбук iPython является новым (и очень классным !!), было бы приятно услышать об опыте, связанном с переводом JSON в другие форматы. Возможно, есть другой способ сделать это, кроме Пандока.

Ответы [ 2 ]

2 голосов
/ 05 февраля 2012

Что касается вашего "поддержания актуальности с Pandoc", я боюсь, вам нужен установленный Haskell. Лучший способ сделать это с помощью пакета Haskell Platform («HP»), а затем, как и в Ruby, гораздо удобнее использовать диспетчер пакетов среды для зависимостей, чем ваша ОС. У меня не было проблем с тем, чтобы он работал, даже в Windoze , .

Я уверен, что вопросы к списку рассылки Haskell приведут к быстрой помощи для платформы, такой же популярной, как Debian / Ubuntu, но вам может потребоваться вручную установить более новую версию HP, которая доступна через диспетчер пакетов ОС.

Как только вы запустите HP, он будет легко компилироваться, и Git будет держать вас в курсе последних специальных инструкций, которые в настоящее время поддерживаются: https://github.com/jgm/pandoc/wiki/Installing-the-development-version-of-pandoc-1.9

Обратите внимание, что версия v1.9 теперь официально выпущена, если вы действительно не хотите идти в ногу с необходимостью идти в ногу с циклом разработки, но, разумеется, вы не получите его в менеджере пакетов ОС. в течение некоторого времени после этого (я так или иначе предполагаю).

========================== Что касается ваших попыток трактовать JSON как синтаксис документа:

Лучшими синтаксическими входами для Pandoc на данный момент являются его собственная разметка + расширения и reST (особенно для людей / сред Python), которые в основном поддерживаются как функционально эквивалентные, хотя в первом возможны функции, которые не представлены во втором случае, поскольку Джон может просто добавлять расширения в любое время, когда захочет. AFAIK Pandoc еще не начал поддерживать расширения Sphinx (пока?)

Формат JSON, используемый внутри Pandoc, не задокументирован (пока?), Но это родной тип данных Haskell. Как отмечает Томас К., может быть некоторое сходство между тем, как эти два инструмента представляют данные, но, вероятно, недостаточно, чтобы рассматривать их как «просто другой формат разметки».

Однако, если вы работаете над этим, достаточно легко увидеть, что Pandoc ищет в способе ввода JSON.

pandoc -t json

Сравните это с

pandoc -t native

и легко увидеть спецификации, созданные Text.Pandoc.Definition и Text.JSON.Generic

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

Пожалуйста, сообщите в почтовый список Pandoc о любой работе, проделанной в этой области. Экипаж очень отзывчив, включая непосредственную обратную связь с самим Джоном М. (ведущим разработчиком).

0 голосов
/ 09 января 2012

Я сомневаюсь, что pandoc или какой-либо другой инструмент еще знает, что делать с файлами ipynb (на момент написания записная книжка IPython была выпущена менее месяца назад). JSON - это просто общая структура данных, такая как XML, а не формат документа.

Мы (IPython) работаем над инструментами для экспорта записных книжек в другие форматы, но они еще не готовы к надлежащему выпуску. Если вы хотите помочь в разработке, см. эту ветку списка рассылки . Надеюсь, это будет частью следующего выпуска IPython.

...