如何将asciidoc文件的集合转换为统一的html文件?

问题描述

我们目前正在使用asciidoc格式来记录产品的相关信息-每个信息部分都存储为adoc文件。然后,我们使用makefile运行asciidoctor工具为每个更改的adoc文件创建html文件

但是,我想将所有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,或调整标题文本以使其与众不同。