Pandoc中如何为章节添加跳转回目录的链接?
Pandoc目录与标题双向跳转实现方案
完全可以实现你要的双向跳转效果,分手动编写目录和使用--toc自动生成目录两种场景,具体操作如下:
手动编写目录场景
操作步骤很简单,不需要额外插件:
- 先给目录区域设置锚点,比如给目录的标题指定唯一id:
# 目录 {#toc-top} - [功能说明](#feature-intro) - [安装步骤](#install-step) - [使用教程](#usage-tutorial) - 给正文每个对应标题设置匹配的锚点,同时在标题后追加跳回目录的链接:
## 功能说明 {#feature-intro} [↩︎](#toc-top) 这里是功能说明正文内容 ## 安装步骤 {#install-step} [↩︎](#toc-top) 这里是安装步骤正文内容 - 如果你觉得跳转符号放在标题末尾影响美观,可以自定义CSS调整符号位置到标题右侧,和正文区分开。
使用--toc自动生成目录场景
不需要手动修改正文内容,用pandoc原生支持的Lua过滤器就能实现:
- 编译时给自动生成的目录标题指定锚点id,新增命令参数
--metadata=toc-title:# 目录 {#toc-top} - 新建Lua过滤器文件
back-to-toc.lua,内容如下(可自行调整要添加跳转的标题层级):-- 只给h1到h3级标题加跳转回目录的符号,可按需修改level阈值 function Header(el) if el.level <= 3 then table.insert(el.content, pandoc.Space()) table.insert(el.content, pandoc.Link(pandoc.Str("↩︎"), "#toc-top")) return el end end - 编译时引入过滤器即可,示例命令:
pandoc 输入文件.md --toc --lua-filter=back-to-toc.lua -o 输出文件.html
以上方案同时支持生成HTML和PDF格式,内部锚点跳转功能都可以正常生效,只需要确保所有自定义锚点id唯一即可。
内容的提问来源于stack exchange,提问作者Deep Desai
相关产品推荐
相关产品推荐

