我使用spring restdocs在我的REST webapi上生成文档;我已经整合了这个东西,我的html生成了(maven + asciidoc插件,重新安装的apis)。 我唯一的问题是,ifeval要么不像宣传的那样工作,要么我弄错了。
我的自定义request-fields.snippet看起来像这样:
|===
|Path|Type|Description|Optional
{{#fields}}
|{{#tableCellContent}}
ifeval::["{optional}"=="true"]
`{{path}}`
endif::[]
ifeval::["{optional}"="false"]
*`{{path}}`*
endif::[]
{{/tableCellContent}}
|{{#tableCellContent}}`{{type}}`{{/tableCellContent}}
|{{#tableCellContent}}{{description}}{{/tableCellContent}}
|{{#tableCellContent}}{{optional}}{{/tableCellContent}}
{{/fields}}
|===
'可选' tablecellcontent中的值被正确呈现(' true'或' false'取决于具体情况),但ifeval未被解析(因此在最终的html上显示自己未解析,没有误差)。
我为表达式尝试了不同的语法,但似乎都没有用;关于可能是正确语法的任何提示,如果有的话? 我正在考虑定义一个自定义属性并使用ifndef来获得相同的结果,但我希望尽可能使用现有的optional()支持。
根据要求,我将添加生成的.adoc
|===
|Path|Type|Description|Optional
|
ifeval::["{optional}"=="true"]
`name`
endif::[]
ifeval::["{optional}"=="false"]
*`name`*
endif::[]
|`String`
|Name of the new Axis
|false
|
ifeval::["{optional}"=="true"]
`description`
endif::[]
ifeval::["{optional}"=="false"]
*`description`*
endif::[]
|`String`
|Description of the new Axis
|true
|
ifeval::["{optional}"=="true"]
`tags[]`
endif::[]
ifeval::["{optional}"=="false"]
*`tags[]`*
endif::[]
|`TagDto[]`
|Hierarchical view of axis' tags
|false
|
ifeval::["{optional}"=="true"]
`tags[].id`
endif::[]
ifeval::["{optional}"=="false"]
*`tags[].id`*
endif::[]
|`Number`
|Id of the tag
|false
|
ifeval::["{optional}"=="true"]
`tags[].name`
endif::[]
ifeval::["{optional}"=="false"]
*`tags[].name`*
endif::[]
|`String`
|Name of the tag
|false
|
ifeval::["{optional}"=="true"]
`tags[].children`
endif::[]
ifeval::["{optional}"=="false"]
*`tags[].children`*
endif::[]
|`TagDto[]`
|Child tags for this tag, if any
|true
|===
答案 0 :(得分:2)
问题出在自定义模板中,您在{optional}
宏中使用{{optional}}
而不是ifeval
。这意味着{optional}
未被字段的optional
属性替换,因此,Asciidoctor正在评估"{optional}"=="true"
或"{optional}"=="false"
。
您需要更新模板才能使用{{optional}}
:
|===
|Path|Type|Description|Optional
{{#fields}}
|{{#tableCellContent}}
ifeval::["{{optional}}"=="true"]
`{{path}}`
endif::[]
ifeval::["{{optional}}"=="false"]
*`{{path}}`*
endif::[]
{{/tableCellContent}}
|{{#tableCellContent}}`{{type}}`{{/tableCellContent}}
|{{#tableCellContent}}{{description}}{{/tableCellContent}}
|{{#tableCellContent}}{{optional}}{{/tableCellContent}}
{{/fields}}
|===