1

我最近一直在使用Markdown

我对 Markdown 的最大问题之一是 Markdown 没有在文档中包含文件的语法(相listings对于 LaTeX 的包)。

我想扩展 Markdown 以支持将整个和部分文件包含为代码片段。例如,它可能看起来像这样:

![:include src/foo/bar.rb](10-20)

这会将第bar.rb10-20 行的内容作为一个code块放入我的文档中。理由是

  • 文档可以随着代码的变化而更新。(与总是过时的复制和粘贴相比)
  • 然后,您可以对文档中的确切代码进行单元测试

我的问题是:

  1. 语法应该是什么?
  2. 这已经完成了,我错过了吗?
4

3 回答 3

1

我更倾向于提出一种扩展 Markdown 语法的通用方法,然后使用它来为包含函数提供支持。因此,例如,您可以定义如下语法(我并不是真的建议这种特定的语法,只是一个示例):

[[command: arg arg arg...]]

..wherecommand指的是markdown解析器不理解的命令,但可以回调到其他东西来处理它。然后,您可以构建一个可与 markdown 一起使用的包含函数,但实际上并不是它的一部分。就像是:

[[include: src/foo/bar.md]]

哦,如果你这样做,我可能不会提供包含部分文件的方法,至少不使用行号 - 因为这意味着如果你更改长度,你必须返回并编辑所有包含调用文档,这实际上使重用变得更加困难(如果您能想出一种标记部分的方法,那可能会更好)。

于 2009-10-27T20:08:27.600 回答
1

我通常倾向于看看是否可以以合理的方式使用现有语法。目前,

    ![示例照片](http://example.com/example.jpg)

语法及其亲属用于在文本中包含图像。与此相类似,

    +[通用标题](http://example.com/heading.txt)

或者

    +[本地标题](file:///dir/a/b/c/example.txt)

可用于包含文本。在这种情况下,方括号中的文本就像alt-text内嵌图像的属性:它包含对所包含文件的简短、人类可理解的描述。

使用+对我来说很直观:这意味着这个文件的内容添加到这个文档中。

于 2009-10-27T21:00:08.323 回答
0

我来晚了,抱歉。但 restructuredText 已经支持这个: http ://docutils.sourceforge.net/docs/ref/rst/directives.html#include-an-external-document-fragment

于 2009-11-03T19:49:56.653 回答