pandoc:如何链接到另一个降价文件中的部分?

Dav*_*ndy 5 markdown pandoc

我想创建两个 Markdown 文件,它们的部分之间有链接。这里的挑战是,无论我要求 pandic 将它们连接到单个 HTML 文件还是分离 HTML 文件,我都希望文件正常工作。麻烦的是,在后一种情况下,链接需要知道其他 HTML 文件的名称才能正常工作。

pandoc 有没有办法在不创建不同版本的降价输入的情况下管理这个?

tar*_*leb 5

以下使用Lua 过滤器来修复您的链接。它假定链接是通过在其中定义链接的文件作为前缀来编写的,例如[see here](some-other-file.md#topic). 一些编辑器可以轻松切换到相应的文件,因此这可能是一个额外的优势。

当转换为多个 HTML 文件时,我们需要做的就是将.md这些链接中的文件扩展名替换为.html.

-- fix-links-multiple-files.lua
function Link (link)
  link.target = link.target:gsub('(.+)%.md%#(.+)', '%1.html#%2')
  return link
end
Run Code Online (Sandbox Code Playgroud)

运行它

pandoc --lua-filter fix-links-multiple-files.lua file-1.md -o file-1.html
Run Code Online (Sandbox Code Playgroud)

在单个文件的情况下,我们可以删除链接的文件部分:

-- fix-links-single-file.lua
function Link (link)
  link.target = link.target:gsub('.+%.md%#(.+)', '#%1')
  return link
end
Run Code Online (Sandbox Code Playgroud)

运行

pandoc --lua-filter fix-links-single-file.lua *.md -o outfile.html
Run Code Online (Sandbox Code Playgroud)