是否有任何markdown fork允许你引用其他文件,比如包含文件?具体来说,我想创建一个单独的markdown文件,其中包含我经常调用但不总是调用的链接(调用此B.md),然后当我通过引用链接到我正在写入的md文件(A.md)时,我希望它从另一个文件(B.md)中拉出链接,而不是从当前文件(A.md)的末尾。
当前回答
如果您正在使用pandoc进行markdown处理,除了在调用pandoc时使用多个输入markdown文件外,还没有本地解决方案(在https://github.com/jgm/pandoc/issues/553中讨论)。
然而,使用codebraid(实际上是为了包括自动生成的内容Markdown)可以实现这一点:
This is the content of the main Markdown file `main.md`.
Below this line, the content of the file `chapter01.md` is included:
```{.python .cb.run}
with open('chapter01.md') as fp:
print(fp.read())
```
This line is printed below the external content.
要将其转换为任何输出格式,可以使用如下代码:
codebraid pandoc main.md --to markdown
虽然codebraid可能被认为是“只是”包括外部Markdown文件,但它允许更多,例如包括来自外部来源的CSV或Excel表格:
Details are shown in the following table:
```{.python .cb.run}
import pandas as pd
table = pd.read_csv('table.csv')
print(table.to_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文档说,它在以这种方式合并的文件之间添加了一个空行,但如果没有空行,这对我来说行不通。
我使用一个包含我所有文件的正确顺序的include .txt文件 我像这样执行pandoc:
Pandoc -s $(cat includes.txt)——quiet -f markdown -t html5——css Pandoc .css -o index.html
效果好极了!
我在Mac OS x上使用标记2,它支持以下语法来包含其他文件。
<<[chapters/chapter1.md]
<<[chapters/chapter2.md]
<<[chapters/chapter3.md]
<<[chapters/chapter4.md]
遗憾的是,您不能将其提供给pandoc,因为它不理解语法。但是,编写一个脚本来剥离语法来构造一个pandoc命令行是非常容易的。
恕我直言,你可以通过连接你的输入得到你的结果*。Md文件如下:
$ pandoc -s -o outputDoc.pdf inputDoc1.md inputDoc2.md outputDoc3.md
我只想提一下,在将输入文件输送到markdown_py之前,可以使用cat命令连接输入文件,这与pandoc处理多个输入文件的效果相同。
cat *.md | markdown_py > youroutputname.html
在我的Mac上,Python版本的Markdown与上面的pandoc示例几乎相同。
推荐文章
- 使用pandoc从Markdown转换为PDF时设置空白大小
- 如何显示数学方程在一般github的markdown(不是github的博客)
- 使用Markdown的Sphinx而不是reST
- 降价和图像对齐
- 如何样式一个JSON块在Github维基?
- 标记“本机”文本对齐方式
- Markdown和包括多个文件
- 降价vs加价——它们有关联吗?
- 如何在降价表中编写列表?
- 获得带下划线的文本Markdown
- 我如何测试我的自述。Md文件在提交到github之前会是什么样子?
- 我如何测试我的自述。Md文件在提交到github之前会是什么样子?
- 在Markdown中创建两个空行
- 如何添加脚注到github风味Markdown?
- 如何在Bitbucket中标记嵌套列表项?