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

如何在AsciiDoctor中手动高亮literal/listing/source块部分内容?

在AsciiDoctor中手动高亮literal/listing/source块内容的可行方案
  • 核心限制说明:literal块的设计是纯文本展示,会直接转义所有标记语法,你示例里的[.red]#ffff#写法在literal块中只会原样输出,无法生效。要实现局部高亮,需要换用支持内联格式的块类型,或者借助扩展能力。

  • 方案1:使用listing块结合内联样式标记
    listing块默认允许解析部分内联格式,你可以用[.类名]#目标内容#的语法给文本添加自定义类,也可以用**目标内容**实现加粗(对应HTML的<strong>标签)。示例代码:

    [listing]
    ....
    000000: 1234 7364 2832 9323
    000008: 4823 [.red]#ffff# 4634 7434
    000010: 1234 7364 2832 9323
    ....
    

    渲染后,ffff会被包裹在带有red类的<span>标签中,你只需要添加CSS规则(比如.red { color: red; })就能实现高亮效果。

  • 方案2:使用source块结合自定义语法处理
    如果你处理的是代码类内容,source块支持语法高亮,可通过两种方式实现局部高亮:

    1. 直接在内容中插入HTML标签(需确保语法高亮器不转义这些标签),示例:
      [source]
      ----
      000000: 1234 7364 2832 9323
      000008: 4823 <strong>ffff</strong> 4634 7434
      000010: 1234 7364 2832 9323
      ----
      
    2. 自定义语法高亮规则,让高亮器自动匹配并标记目标内容。
  • 方案3:编写Asciidoctor扩展
    如果你必须使用literal块,可通过编写Ruby扩展拦截块内容,识别自定义标记并转换为对应的HTML元素。比如将[.red]#(.*?)#替换为<span class="red">$1</span>,实现样式类的添加。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 10:33:36