问题描述
我们目前正在使用asciidoc格式来记录产品的相关信息-每个信息部分都存储为adoc文件。然后,我们使用makefile运行asciidoctor工具为每个更改的adoc文件创建html文件。
我想也许我可以根据adoc文件创建一本书,但以下内容似乎无效:
asciidoctor --doctype=book --out-file=book.html file1.adoc file2.adoc dir1/file3.adoc
这将导致最后一个adoc文件(dir / file3.adoc)构成book.html文件,而不是包括所有指定的adoc文件。
解决方法
您需要将文件合并为一个。比较简单的方法是:
cat *.adoc > all_in_one.adoc
不幸的是,一个Asciidoc文件只能具有一个顶级标题。您现有的每个Asciidoc文件都可能已经具有顶级标题。
我建议创建一个使用include
宏来“包含”每个文件内容的“主”文档。您可以在每个include中使用leveloffset
属性,以防止出现有关多个顶级标题的警告。
例如,您可以将所有Asciidoc文件名收集到一个文件中,如下所示:
find . -name '*.adoc' > all_in_one.adoc
然后编辑文件,如下所示:
./a.adoc
./B/b.adoc
./c.adoc
...
对于这样的事情:
= Top-level title
include::./a.adoc[leveloffset=1]
include::./B/b.adoc[leveloffset=1]
include::./c.adoc[leveloffset=1]
...
另一个问题:如果有多个具有相同ID或名称的节标题,并且使用自动生成的ID,则会看到有关id assigned to section already in use
的警告。您必须根据需要添加自定义ID,或调整标题文本以使其与众不同。