如何将带有站点导航的通用页面 header 添加到 asciidoc 文档?

How can I add a generic page header with site navigation to an asciidoc document?

我正在尝试使用 asciidoctor 构建一个基本的文档站点。我苦苦挣扎的一件事是如何将标准站点 header(带有徽标和 top-level 导航的横幅)注入每个文档页面。

我从命令行直接将 asciidoc 渲染到 html。我试图找到一种方法来以某种方式注入额外的 div 元素并将其固定在顶部,但我无法弄清楚为此使用什么机制。我早期的尝试涉及使用 docinfo.html,但它被注入到 <head> 元素中的 html,而不是 <body>

我知道像 Jekyll 这样的 full-on 发布系统允许我配置 "front matter" 可能会解决这个问题,但我希望有一种机制或技巧可以使用 vanilla asciidoctor做到这一点。

邮件列表中的 Ted Bergeron mentioned 一个简单的项目:

Demo website 仅使用 Asciidoctor 创建。

检查 corresponding repo 以查看文件以及如何创建站点(仅使用一个命令)。

总而言之:只需创建一个包含站点导航的 header asciidoc 文件(在演示站点中,这是使用 table 标记完成的),没有 包括 0 级(文档)标题。将此 header 文件包含在您网站每个页面的顶部。然后在您的项目中仅通过 运行 asciidoctor *.txt 进行渲染。

--embedded选项+简单post处理

使用此选项,asciidoctor 仅生成 <body> 元素的内部部分。

例如:

main.adoc

= Super title

== Second level

asdf

== Also second level

qwer

然后:

asciidoctor --embedded main.adoc

产生:

main.html

<div class="sect1">
<h2 id="_second_level">Second level</h2>
<div class="sectionbody">
<div class="paragraph">
<p>asdf</p>
</div>
</div>
</div>
<div class="sect1">
<h2 id="_also_second_level">Also second level</h2>
<div class="sectionbody">
<div class="paragraph">
<p>qwer</p>
</div>
</div>
</div>

然后您可以 cat 一个页眉和结束页脚,就完成了。

使用 Asciidoctor 2.0.10 测试。