0

尝试使用 pandoc 从 iPython 笔记本 (0.12) 转换基于 JSON 的文件 (.ipynb) 时,我收到一条错误消息,指出 JSON 的“错误 decodeArgs”。我怀疑这可能是由于我使用的是 Ubuntu 提供的 pandoc 版本(1.8.1.1)。似乎要获得最新的 pandoc 版本需要设置 Haskell 平台,但由于依赖挑战(并且真的不想这样做),我没有成功。如果这不是我的问题,我不想再花时间尝试安装 Haskell。

有没有办法在不重建的情况下为 Ubuntu 获取最新的 pandoc 二进制文件?

鉴于 iPython 笔记本是新的(而且非常酷!!),很高兴听到有关将 JSON 转换为其他格式的经验。除了 pandoc 之外,也许还有另一种方法可以实现这一点。

4

2 回答 2

2

关于您“与 Pandoc 保持同步”,恐怕您确实需要安装 Haskell。最好的方法是通过 Haskell 平台(“HP”)包,然后就像使用 Ruby 一样,使用环境的包管理器来处理依赖项比使用操作系统更加一致。即使在 Windoze 中,我也没有遇到任何问题。. .

我确信 Haskell 邮件列表中的问题会为像 Debian/Ubuntu 这样的主流平台带来快速帮助,但您可能需要手动安装更新版本的 HP,该版本可通过 OS 包管理器获得。

一旦你启动并运行了 HP,开发 Pandoc 就很容易编译,git 将让你及时了解最新的特定说明,目前维护: https ://github.com/jgm/pandoc/wiki/安装-the-development-version-of-pandoc-1.9

请注意,如果您真的不想麻烦地跟上开发周期,那么 v1.9 现在已经正式发布了,但是当然,在相当长的一段时间内您也不会在您的操作系统包管理器中获得它在那之后的时间(我想无论如何)。

========================== 关于您将 JSON 视为文档语法的尝试:

目前,Pandoc 的最佳语法输入是它的原生 markdown+extensions 和 reST(尤其是对于 Python 人员/环境),基本上保持功能等效,尽管前者中可能有一些可用的功能在后者中没有表示,因为约翰可以随时添加扩展名。AFAIK Pandoc 还没有开始支持 Sphinx 扩展(还没有?)

Pandoc 内部使用的 JSON 格式没有记录(还没有?),但它是原生的 Haskell 数据类型。正如 Thomas K 所指出的,这两种工具在表示数据的方式之间可能存在一些相似之处,但可能不足以将它们视为“只是另一种标记格式”。

但是,如果您正在处理这个问题,很容易看到 Pandoc 在 JSON 输入方式中查找的内容。

pandoc -t json

将此与

pandoc -t 本机

并且很容易看到由 Text.Pandoc.Definition 和 Text.JSON.Generic 创建的规范

使用 Pandoc 的内部数据表示作为输入显然比标记的文本流更稳定,并且其他人表达了对这方面的文档的渴望,这将是对社区的巨大贡献。

请务必将在该领域所做的任何工作告知Pandoc 邮件列表。那里的工作人员反应非常迅速,包括直接从 John M(首席开发人员)本人那里获得快速反馈。

于 2012-02-05T09:01:45.163 回答
0

我怀疑 pandoc 或任何其他工具是否知道如何处理 ipynb 文件(在撰写本文时,IPython notebook 发布不到一个月前)。JSON 只是一种类似于 XML 的通用数据结构,而不是一种文档格式。

我们(IPython)正在开发将笔记本导出为其他格式的工具,但它们还没有准备好发布。如果您想帮助开发它,请参阅此邮件列表线程。希望它将成为下一个 IPython 版本的一部分。

于 2012-01-09T00:16:01.503 回答