将 AsciiDoc 内容包装在 block/container 中并为其分配 class 或 id

Wrap AsciiDoc content inside a block/container and assign a class or id to it

我想将部分内容包装在任何块或容器中,以便我可以在 CSS 中引用它。

到目前为止,我已经尝试将内容包装在一个打开的块中,并为其分配一个自定义 id 属性。

= My document

Lorem ipsum

[id="changelog"]
--

== Changelog

* Foo
* Bar

--

它有效,但部分或标题(在本例中为 Changelog)未正确呈现。

P.S 顺便说下我用的是AsciiDoctor

正如我在问题中提到的,可以将内容包装在一个开放的块中,但 titles/sections/headings 将不会被解析,因为它违反了文档结构规则。

一个简单的解决方法是使用 discrete 样式使其成为常规标题,这样它就会正确呈现:

= My document

Lorem ipsum

[id="changelog"]
--

[discrete]
== Changelog

* Foo
* Bar

--

更好的方法是使用 table 块并将内容放入具有 AsciiDoc 样式的 table 单元格中,该样式将接受要呈现的所有 AsciiDoc 语法

我们可以识别 table 并在 CSS 中引用它,如本例所示:

= My document

Lorem ipsum

++++
<style>
/* Hide the table's style */

#changelog {
    border-width: 0px;
    border-collapse: collapse;
}

#changelog tbody > tr > td {
    padding: 0px;
}
</style>
++++

[id="changelog"]
|===
a|

== Changelog

* Foo
* Bar

|===

这在使用 include 指令时特别有用,在这种情况下您无法修改包含的文件本身并且您想使用 CSS.

控制内容块