能否在Asciidoc中定义仅作用于单个文件的局部变量?
在Asciidoc中实现文件局部变量(针对arc42模板场景)
Asciidoc本身没有原生的"文件局部变量"概念,属性默认全局生效,但可以通过两种方式实现你要的「仅当前章节文件生效的属性重定义」:
方法1:保存并恢复原属性值
在目标章节文件(比如05_building_block_view.adoc)中,先留存主文件定义的原始imagesdir值,完成当前文件内容编写后再重置回原值:
// 保存主文件的原始imagesdir值 :original-imagesdir: {imagesdir} // 重定义当前文件专属的imagesdir :imagesdir: ./diagrams --- // 此处为章节内容,所有图片引用会使用./diagrams路径 --- // 恢复主文件的原始imagesdir值,确保后续章节不受影响 :imagesdir: {original-imagesdir}
方法2:使用Asciidoctor的局部属性块
如果你用的是Asciidoctor处理器(arc42模板通常兼容),可以带local选项的属性块,让属性仅在当前文件内生效:
[attributes="local"] :imagesdir: ./diagrams // 章节内容,属性仅在此文件内有效,后续章节自动沿用主文件的默认值
这个local标记会告知处理器,该块内的属性不会传递到后续被包含的文件中,完美适配arc42主文件包含多章节的结构。
内容的提问来源于stack exchange,提问作者AndrewBloom
相关产品推荐
相关产品推荐

