如何在Asciidoc中正确显示带方括号的等宽行内文本?
Asciidoc行内字面文本"x[0],y,z"等宽显示的解决方案
以下几种方法可以解决你的问题:
- 转义方括号加反引号:直接在方括号前添加反斜杠转义,写成
`x\[0\],y,z`。Asciidoc会将其识别为行内代码块,既保留等宽字体,又不会错误解析方括号,生成的HTML能正确显示x[0],y,z。 - 使用
+标记行内代码:Asciidoc原生支持用+包裹行内字面代码,写法为+x[0],y,z+。这种方式自动应用等宽字体,同时方括号会被当作普通字符处理,输出结果符合预期。 - 利用
:literal:角色:通过行内角色定义实现,写法为{:literal}x[0],y,z{:/literal}。需确保你的Asciidoc处理器支持角色功能,同样能实现等宽显示且保留原文本格式。
问题原因说明
- 使用
pass:[x[0],y,z]出现显示异常,是因为pass宏内部的方括号被误解析为属性列表的组成部分,导致格式错乱。 - 用HTML实体
[/]加反引号时,反引号包裹的内容会被当作纯文本处理,实体编码不会被转义为方括号,所以直接显示了编码本身。
内容的提问来源于stack exchange,提问作者Bryan Wright
相关产品推荐
相关产品推荐

