我正在构建一个文档准备系统,该系统应该能够渲染相当大的文档。使用pandoc制作包含多个单独输入文件的主目录表
输入是在pandoc风味降价。为了使文档更易于管理,文档的每个部分都会有一个降价文件。例如,一个文件可能是这样的:
文件:01_introduction.md
Introduction
============
This is the introduction
Section 1.1
-----------
This is a section
Section 1.2
-----------
This is another section
文件:02_functionaldescription.md
Functional Description
======================
Section 2.1
-----------
This is a section
Section 2.2
-----------
This is another section
之一输出格式是是HTML。我想为每个部分(对应于输入文件)和一个主目录页面生成一个HTML输出文件。主TOC页面应包含指向其他页面中标题的链接。
我没有问题让pandoc生成各个部分的html文件。我甚至可以用它来纠正部分编号,这样它们就像是一个大文档的一部分一样。使用过滤器我也设法修正了部分间链接。
问题是主目录。如果我给它的所有个人文件,一个一个命令行,像这样:
pandoc -f markdown -t html --number-sections --toc -s *.md
然后就是输出的TOC看起来是这样的:
<ul>
<li><a href="#introduction"><span class="toc-section-number">1</span> Introduction</a><ul>
<li><a href="#section-1.1"><span class="toc-section-number">1.1</span> Section 1.1</a></li>
<li><a href="#section-1.2"><span class="toc-section-number">1.2</span> Section 1.2</a></li>
</ul></li>
<li><a href="#functional-description"><span class="toc-section-number">2</span> Functional Description</a><ul>
<li><a href="#section-2.1"><span class="toc-section-number">2.1</span> Section 2.1</a></li>
<li><a href="#section-2.2"><span class="toc-section-number">2.2</span> Section 2.2</a></li>
</ul></li>
</ul>
在href的是假设的链接目标的所有片段在同一个文件中。我需要他们指向包含标题中的实际文件,像这样:
<a href="introduction.html#section-1.1">
一个一直没能做成过滤器工作可靠 - 通过它到达过滤器时,所有文件都被连接在一起没有什么可以显示每个文件开始或结束的位置。
我到目前为止唯一提出的解决方案是使用除pandoc之外的东西来生成toc或者后处理toc。这些解决方案看起来很复杂,所以我想尽可能避免它们。
注意,如果两个小节共享相同的名称(例如,它们被称为摘要“),然后创建一个来自接触文件的主要toc会破坏hrefs(即使我们修复文件名) –
顺便说一下,我注意到上述问题实际上是由--file-scope标志修复的 –