如何在AsciiDoc中引用其他文档属性,实现类Confluence页面属性报告功能?
可行的AsciiDoc实现策略
使用属性文件+包含指令
给每个ADR单独创建属性文件(如adr-1.properties),存储属性值:adr-status=Accepted adr-date=2024-01-01 adr-amends=无 adr-amendedby=张三汇总文档中按顺序引入属性文件并填充表格:
|=== |Decision|Status|Decision date|Amends|Amended by :include: adr-1.properties[] |xref:adr-1.adoc[ADR 1: Decision Foo] |{adr-status} |{adr-date} |{adr-amends} |{adr-amendedby} :include: adr-2.properties[] |xref:adr-2.adoc[ADR 2: Decision Bar] |{adr-status} |{adr-date} |{adr-amends} |{adr-amendedby} |===注意:新属性文件会覆盖同名旧属性,需逐行引入对应表格行。
利用文档内属性传递
在每个ADR顶部定义属性,通过条件渲染避免导入正文:// ADR文档内 :ifeval: {include-adr-properties} != "" :adr-status: Accepted :adr-date: 2024-01-01 :adr-amends: 无 :adr-amendedby: 张三 :endif: // ADR正文内容...汇总文档中开启属性导入模式,依次引入ADR并填充表格:
:include-adr-properties: true |=== |Decision|Status|Decision date|Amends|Amended by :include: adr-1.adoc[] |xref:adr-1.adoc[ADR 1: Decision Foo] |{adr-status} |{adr-date} |{adr-amends} |{adr-amendedby} :include: adr-2.adoc[] |xref:adr-2.adoc[ADR 2: Decision Bar] |{adr-status} |{adr-date} |{adr-amends} |{adr-amendedby} |===轻量脚本辅助生成
写个简单的Shell/Python脚本,遍历ADR目录提取顶部属性,自动生成表格行的AsciiDoc代码片段。手动将片段插入汇总文档即可,既减少重复劳动,又保留手动控制的灵活性,无需完全自动化。
内容的提问来源于stack exchange,提问作者Courtney Miles
相关产品推荐
相关产品推荐

