Pandoc和未知的奇观

我上次提到Haskell是在一篇有关 X莫纳德。 但是,这并不是我要向您展示的世界上唯一的非凡事物。

当然每个人都已经知道 降价,如果我不提出这些建议。 它是一种轻标记语言,使我们在编写文本时更快,更高效。 现在足够了。

好吧,Markdown并不孤单,并且有多种语言可以执行相同的功能。 通常每个人都会想到带有一些标记的纯文本并将其传递为HTML,LaTex等形状。 一切都很好。

这带来了几个问题。 首先,最重要的是,某些实现没有 todas 我们想要的功能。 或已经实现了我们不喜欢的标记语言。

在我们陷入混乱之前,您必须考虑并意识到有更好的解决方案。 可以将任何标记语言变成其他东西的东西。 任何人。

这就是Haskell出现的地方。 我说的那个奇迹存在,它还活着,有个名字,它有效并且令人惊讶。 自称 潘多克 它来自伯克利大学的哲学家约翰·麦克法兰(John MacFarlane)。 坚持下去,因为美好开始。

Todos 对 todos

我们可以期望pandoc通过不集中精力来提供对所有事物的平庸报道。 但不是。 它工作出色,功能惊人。

为简单起见,请将任何源文件传递给pandoc (在Markdown或reStructuredText或pandoc支持的其他语言中) 并将其转换为最终格式,例如-每个人都准备好了吗?-

LaTex,纯HTML,PDF,DocBook,OpenDocument,docx,rtf,man,纯文本以及多达三种不同类型的HTML演示文稿; 我的名单很短,非常短。 这是说明其功能的图:

最后但并非最不重要的是,它是一个Haskell库(或书店,可以根据需要命名)。 可以集成到其他程序的代码中。 哈基尔 它是利用最多的工具之一,它是一个静态页面生成器,使用pandoc可以将无害的Markdown和某些LaTex转换为纯HTML。

这里一个 网站清单 已将其用作博客样式的个人网站。

完成它非常快。 即使具有所有这些优势,它似乎也只会在盎格鲁-撒克逊国家/地区扩展,并且这里几乎没有任何可用的信息,例如-这种类型的展示会受到伤害。 可能是因为用户指南是英文的。

缺点

当然必须有。 除了价差相对较小之外,大多数发行商均未完全支持它。

Vim具有语法突出显示 Markdown和默认情况下没有其他内容,因此我们错过了有关pandoc的一些最酷的东西:它的扩展语法。

原始Markdown中从未提出过的东西,使我们的生活更加轻松,例如表格,引用,脚注,代码中的HTML和LaTex,元数据和更高级的特性。

顺便说一句,Emacs在此方面具有优势。 它具有Markdown模式,可为我们提供语法高亮显示和一些有用的命令,但是有一个 潘多克模式 完全成熟,其Vim同类产品仍无法与其竞争。

如果您仍然有兴趣将其放入Vim,请参见以下语法文件。 如前所述,对于emacs,您必须安装markdown和pandoc模式。

开门见山

我在寻找text2tags包时发现了pandoc (另一个转换器,但更受限制) en 紧缩邦 现在我知道它在 Debian 用名字稳定,猜怎么着,pandoc。 一种 资质安装 足以做到这一点。 但是我们使用的 ArchLinux的 我们必须首先遭受一些挫折。

那依赖地狱

我们考虑的第一件事是制作pacman -S pandoc。 好吧,不。 官方存储库中没有软件包,由于需要大量依赖,AUR中的软件包也不起作用。 如果您已经对Haskell有所了解,那么您现在会认为阴谋集团将解决它。 是的,但有保留。 为此,您必须运行以下命令:

sudo pacman -S ghc cabal安装cabal更新cabal安装pandoc

这应该可以,但是我不建议这样做。 尤其是如果您想进入Haskell的世界,因为这将在将来给您带来可怕的问题。

听到对ArchLinux及其哲学的抱怨当然听起来很奇怪,但是在我看来,从存储库中删除haskell-platform软件包完全是胡说八道,这提供了充分开发和使用的最后一个环境。 彼此兼容; 为什么ghc和cabal-install得到了更新。

如果要使用cabal安装其他软件包,最好下载这些软件包 ghc和cabal-install从 拱退机.

我们用一个简单的pacman -U安装它们 包路径 并且我们在更新系统时使pacman忽略它们,在文件/etc/pacman.conf;中。 内部部分 忽略包.

现在我们可以使用cabal安装pandoc并使其正常工作,我们将此行放入.bashrc文件中:

导出路径=〜/ .cabal / bin:$路径

就是这样。 牵强附会,但我们避免了问题。 如果您想从其他软件包开始,而不是在本地安装它们,则可以使用 赫森夫 创建隔离的环境并避免安装Hakyll等麻烦的事情。

一旦我警告您这太可怕了。 所有这些都是因为Haskell和Cabal尚未解决其他语言已经摆脱的依赖地狱,例如Ruby及其Bundle和gems。 无论如何,这个小解决方案是由于 伊恩·罗斯(Ian Ross) Hakyll小组的成员。

耐心一点。 这是一个漫长的安装,因为它会为我们编译它。

使用和结论

您选择一个终端并发送如下命令:

pandoc -o输出文件.ext -i原始文件.md

Markdown(*。md,是我使用的扩展名)可以用任何其他格式替换,.ext可以用输出中的任何其他可用格式替换。

对我来说,几乎每天都这样做,这对我有很大帮助,尤其是导出到OpenDocument。

生态系统令人难以置信。 MacFarlane自己在Haskell中开发了一个Wiki,Pandoc用它来转换他的页面,但这是另一个故事。 顺便说一句,这篇文章是由Pandoc自豪地撰写的,就像我到目前为止撰写的大多数文章一样,


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   加迪

    我也使用Markdown。 Kate和Gedit可以安装插件来突出显示语法。 然后将其转换为ODT,我选择了MultiMarkdown,它是大多数人(怎么说)“尊重文本”的一种语言,以便在将其复制到具有段落样式的文档时更加舒适。 Pandoc没有给我相同的结果,或者至少我不知道该怎么做😛

    1.   

      通过激活–strict选项,可以使Pandoc仅采用标准Markdown; 如果那是你的意思。 但是,它的主要优点是格式之间的通用性。
      推荐它,尽管我很少看到他们使用它,但是它并没有伤害我。

  2.   Erunamo爵士

    我用它来从LaTeX到reStructuredText。 他做得很好(大部分时间是xD)

  3.   MSX

    有趣,感谢分享。