是否有任何markdown fork允许你引用其他文件,比如包含文件?具体来说,我想创建一个单独的markdown文件,其中包含我经常调用但不总是调用的链接(调用此B.md),然后当我通过引用链接到我正在写入的md文件(A.md)时,我希望它从另一个文件(B.md)中拉出链接,而不是从当前文件(A.md)的末尾。


当前回答

就在最近,我在Node中写了一些类似的东西,叫做markdown-include,它允许你用C风格的语法包含markdown文件,像这样:

#include "my-file.md"

我相信这和你问的问题很吻合。我知道这是一个旧的,但我至少想更新它。

您可以将此包含在任何您希望的标记文件中。该文件还可以有更多的include, markdown-include将创建一个内部链接,并为您完成所有工作。

你可以通过npm下载它

npm install -g markdown-include

其他回答

我的解是用m4。大多数平台都支持它,并且包含在binutils包中。

首先在文件中包含一个宏changequote(),以将引用字符更改为您喜欢的字符(默认为“)。处理文件时将删除宏。

changequote(`{{', `}}')
include({{other_file}})

在命令行中:

m4 -I./dir_containing_other_file/ input.md > _tmp.md
pandoc -o output.html _tmp.md

我使用一个包含我所有文件的正确顺序的include .txt文件 我像这样执行pandoc:

Pandoc -s $(cat includes.txt)——quiet -f markdown -t html5——css Pandoc .css -o index.html

效果好极了!

切换到asciidoc,这样你就不必使用Markdown这样的语言了,这些语言现在非常原始:)

简短的回答是否定的。长一点的答案是肯定的。: -)

Markdown的设计目的是让人们能够编写简单、可读的文本,这些文本可以很容易地转换为简单的HTML标记。它不做文档布局。例如,没有真正的方法来将图像向左或向右对齐。至于你的问题,在任何版本的markdown中都没有包含从一个文件到另一个文件的单个链接的markdown命令(据我所知)。

与此功能最接近的是Pandoc。Pandoc允许您将文件合并为转换的一部分,这允许您轻松地将多个文件呈现为单个输出。例如,如果你正在创建一本书,那么你可以有这样的章节:

01_preface.md
02_introduction.md
03_why_markdown_is_useful.md
04_limitations_of_markdown.md
05_conclusions.md

你可以在同一个目录下执行这个命令来合并它们:

pandoc *.md > markdown_book.html

因为pandoc会在翻译之前合并所有的文件,你可以像这样在最后一个文件中包含你的链接:

01_preface.md
02_introduction.md
03_why_markdown_is_useful.md
04_limitations_of_markdown.md
05_conclusions.md
06_links.md

这是你序言的一部分。Md可以是这样的:

I always wanted to write a book with [markdown][mkdnlink].

也是你02_introduction的一部分。Md可以是这样的:

Let's start digging into [the best text-based syntax][mkdnlink] available.

只要你的最后一个文件包含这行:

[mkdnlink]: http://daringfireball.net/projects/markdown

...之前使用的相同命令将执行合并和转换,同时始终包含该链接。只要确保在文件的开头留下一到两行空白即可。pandoc文档说,它在以这种方式合并的文件之间添加了一个空行,但如果没有空行,这对我来说行不通。

就在最近,我在Node中写了一些类似的东西,叫做markdown-include,它允许你用C风格的语法包含markdown文件,像这样:

#include "my-file.md"

我相信这和你问的问题很吻合。我知道这是一个旧的,但我至少想更新它。

您可以将此包含在任何您希望的标记文件中。该文件还可以有更多的include, markdown-include将创建一个内部链接,并为您完成所有工作。

你可以通过npm下载它

npm install -g markdown-include