我上次提到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自豪地撰写的,就像我到目前为止撰写的大多数文章一样,
我也使用Markdown。 Kate和Gedit可以安装插件来突出显示语法。 然后将其转换为ODT,我选择了MultiMarkdown,它是大多数人(怎么说)“尊重文本”的一种语言,以便在将其复制到具有段落样式的文档时更加舒适。 Pandoc没有给我相同的结果,或者至少我不知道该怎么做😛
通过激活–strict选项,可以使Pandoc仅采用标准Markdown; 如果那是你的意思。 但是,它的主要优点是格式之间的通用性。
推荐它,尽管我很少看到他们使用它,但是它并没有伤害我。
我用它来从LaTeX到reStructuredText。 他做得很好(大部分时间是xD)
有趣,感谢分享。