You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Asciidoctor为段落添加自定义数据属性?

在Asciidoc/Asciidoctor中添加自定义数据属性的正确方式

你之前的问题在于用错了属性写法——把自定义数据属性当成了class的扩展,导致progress=23被当成了class名称的一部分。其实Asciidoctor原生就支持直接添加HTML的data属性,下面分两种场景给你说明正确用法:

1. 给普通段落添加data属性

如果你要给一段普通文本(非章节标题)添加data-progress属性,只需要在段落内容上方单独一行写带data-*前缀的块属性:

[data-progress="23"]
Lorem ipsum dolor sit.

生成的HTML完全符合你的需求:

<div class="paragraph" data-progress="23">
  <p>Lorem ipsum dolor sit.</p>
</div>

2. 给章节(Section)添加data属性

如果你是想给三级章节(即你用===定义的标题块)加属性,只需要把原来的.progress=23改成data-progress="23"即可:

=== 5 [data-progress="23"] Lorem ipsum dolor sit

对应的HTML输出会是:

<div class="sect3" data-progress="23">
  <h3 id="_5_lorem_ipsum_dolor_sit">5 Lorem ipsum dolor sit</h3>
</div>

核心原理

Asciidoctor对块属性有特殊处理:只要属性名以data-开头,就会自动被解析为HTML元素的自定义数据属性,而不是class的一部分。你之前的写法用了.前缀,这是Asciidoc中添加class的语法,所以才会把整个progress=23当成class名称。

如果需要批量处理这类属性,还可以结合自定义属性和模板扩展,但针对单个元素的话,上面的直接写法最简洁高效。

内容的提问来源于stack exchange,提问作者aggsol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:09:11