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

Asciidoctor中自定义全局编号remark元素的实现可行性问询

当然可以实现!AsciiDoc(尤其是搭配Asciidoctor处理器时)的定制灵活性完全能满足你的需求——打造一个和NOTE:样式一致、还能自动顺序编号的自定义remark元素。下面给你两种实用的实现方案:

方案一:基于内置Admonition机制(贴合原生体验)

这种方案利用AsciiDoc原生的admonition系统,只需要简单配置就能实现带编号的remark,样式和原生NOTE完全对齐。

步骤1:文档头部配置

在文档最开头添加以下配置:

# 你的文档标题
:counter-remark: 0
:remark-caption: Remark {counter:remark:increment}
:admonition-types: note,tip,important,caution,warning,remark
  • :counter-remark: 0:初始化remark的计数器,从0开始
  • :remark-caption: Remark {counter:remark:increment}:定义remark的标题,其中{counter:remark:increment}会自动帮你递增计数
  • :admonition-types::把自定义的remark加入到系统支持的admonition类型列表中

步骤2:使用方式

配置完成后,就可以像使用原生NOTE一样调用remark了:

[remark]
====
Text of remark
====

[remark]
====
Text of remark 2
====

渲染后会自动显示为:

Remark 1: Text of remark
Remark 2: Text of remark 2

如果想调整样式(比如图标、边框颜色),只需要给.admonition.remark类写自定义CSS即可,完全复用NOTE的样式逻辑。

方案二:自定义Block Macro(支持remark:: Text简洁格式)

如果你更偏好题目里提到的remark:: Text这种短格式写法,可以自定义一个block macro来实现:

步骤1:文档头部添加宏定义

在文档开头加入计数器初始化和宏的定义:

# 你的文档标题
:counter-remark: 0

[blockmacro]
defmacro::remark[text]
  :counter-remark: {counter:remark} + 1
  pass::[<div class="admonition remark">
    <p class="admonition-title">Remark {counter-remark}</p>
    <p>{text}</p>
  </div>]
  • defmacro::remark[text]:定义一个名为remark的block macro,接收你输入的文本内容
  • 每次调用宏时,计数器会自动加1
  • 用pass::输出和原生admonition一致的HTML结构,保证样式匹配

步骤2:使用方式

直接用你想要的简洁格式即可:

remark:: Text of remark
remark:: Text of remark 2

渲染效果和方案一完全一致,同样是带自动编号、样式和NOTE相同的提示块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:58:07