如何渲染AsciiDoc文件属性并输出替换变量后的adoc文件?
AsciiDoc 属性变量替换的简便方案
你可以直接借助Asciidoctor的内置能力实现,无需自行编写脚本,推荐两种实用方式:
使用
expand-attributes预处理器
在命令行执行Asciidoctor时添加参数,直接展开文档内所有属性变量:asciidoctor -b docbook -a expand-attributes=all your-file.adoc | asciidoctor -b asciidoc -原理是先将文档转换为DocBook格式(此步骤会自动展开所有属性),再转回AsciiDoc格式,最终输出的文档里所有属性变量都会被替换为对应值,包括注释块内的变量。
自定义Asciidoctor扩展
如果需要更灵活的控制范围,可以编写简单的Ruby扩展遍历文档节点,手动替换属性变量。比如创建expand_attrs_ext.rb文件:Asciidoctor::Extensions.register do preprocessor do process do |document, reader| reader.lines.map! do |line| document.substitute(line, attribute_quoting: :none) end reader end end end运行时加载该扩展即可:
asciidoctor -r ./expand_attrs_ext.rb -b asciidoc your-file.adoc这种方式能精准控制需要替换的节点范围,比如仅处理注释块或特定内容区域。
注:第一种方式无需额外代码,适合快速解决问题;第二种方式需要基础Ruby知识,适配个性化需求场景。
内容的提问来源于stack exchange,提问作者Ser
相关产品推荐
相关产品推荐

