是否有任何markdown fork允许你引用其他文件,比如包含文件?具体来说,我想创建一个单独的markdown文件,其中包含我经常调用但不总是调用的链接(调用此B.md),然后当我通过引用链接到我正在写入的md文件(A.md)时,我希望它从另一个文件(B.md)中拉出链接,而不是从当前文件(A.md)的末尾。
当前回答
vcode -markdown-preview-enhanced支持@import语法
https://github.com/shd101wyy/vscode-markdown-preview-enhanced
这可能意味着它是底层工具的一部分
https://github.com/shd101wyy/mume
以及其他基于mume的工具
https://github.com/gabyx/TechnicalMarkdown
下面是我如何在我的文档中使用它的一个例子,我用vcode -markdown-preview-enhanced处理:
[[Epigenetics]]
@import "epigenetics.md"
其他回答
我的解是用m4。大多数平台都支持它,并且包含在binutils包中。
首先在文件中包含一个宏changequote(),以将引用字符更改为您喜欢的字符(默认为“)。处理文件时将删除宏。
changequote(`{{', `}}')
include({{other_file}})
在命令行中:
m4 -I./dir_containing_other_file/ input.md > _tmp.md
pandoc -o output.html _tmp.md
就在最近,我在Node中写了一些类似的东西,叫做markdown-include,它允许你用C风格的语法包含markdown文件,像这样:
#include "my-file.md"
我相信这和你问的问题很吻合。我知道这是一个旧的,但我至少想更新它。
您可以将此包含在任何您希望的标记文件中。该文件还可以有更多的include, markdown-include将创建一个内部链接,并为您完成所有工作。
你可以通过npm下载它
npm install -g markdown-include
Multimarkdown天生就有这个。它称之为文件传输:
{{some_other_file.txt}}
这就是一切。名字很奇怪,但符合所有条件。
受@Oliver Matthews回答的启发,你可以创建一个perl脚本,递归地查找语法!md]],并将其替换为B.md content
让我们创建名为parsem .sh的递归脚本
#!/usr/bin/env bash
perl -ne 's#^!\[\[(.+?)\]\].*#`'$0' "$1"`#e;print' "$@"
像这样使用它
./parseMd.sh A.md > result.md
使用它和pandoc一起导出为pdf
pandoc <(./parseMd.sh A.md) -o result.pdf
另一个使用markdown-it和jQuery的基于html的客户端解决方案。下面是一个小的HTML包装作为主文档,它支持无限的markdown文件的include,但不支持嵌套include。在JS注释中提供了解释。错误处理略。
<script src="/markdown-it.min.js"></script>
<script src="/jquery-3.5.1.min.js"></script>
<script>
$(function() {
var mdit = window.markdownit();
mdit.options.html=true;
// Process all div elements of class include. Follow up with custom callback
$('div.include').each( function() {
var inc = $(this);
// Use contents between div tag as the file to be included from server
var filename = inc.html();
// Unable to intercept load() contents. post-process markdown rendering with callback
inc.load(filename, function () {
inc.html( mdit.render(this.innerHTML) );
});
});
})
</script>
</head>
<body>
<h1>Master Document </h1>
<h1>Section 1</h1>
<div class="include">sec_1.md</div>
<hr/>
<h1>Section 2</h1>
<div class="include">sec_2.md</div>
推荐文章
- 如何将LaTeX与Markdown混合?
- 乳胶渲染在README。md在Github上
- 在Markdown Jekyll中使用图像说明
- Slack Markdown链接没有解决
- 差异语法突出显示在Github Markdown
- 我如何创建一个文本框的笔记在markdown?
- 在Markdown中创建一个没有标题的表
- R -降价避免包装加载消息
- 在MarkDown中包含SVG(托管在GitHub上)
- 自动TOC在github风味markdown
- 使用pandoc从Markdown转换为PDF时设置空白大小
- 如何显示数学方程在一般github的markdown(不是github的博客)
- 使用Markdown的Sphinx而不是reST
- 降价和图像对齐
- 如何样式一个JSON块在Github维基?