能否使用DITA配置文件属性排除导出内容?
实现DITA内容的反向条件排除(仅标记需移除的内容)
DITA原生条件处理通常基于包含规则(比如用audience、props等属性指定要保留的内容),但要实现仅标记少量需排除的内容,可通过以下两种实用方式实现:
方法1:直接用DITA-OT参数反向过滤
- 给需要排除的元素添加自定义属性,示例:
<note deny="commercial">这是商业敏感内容,发布时需移除</note> - 调用DITA-OT发布时,通过
filter参数指定反向过滤规则:
该命令会让DITA-OT自动移除所有带有dita --input=你的主题地图.ditamap --format=html5 --filter=exclude/@deny="commercial"deny="commercial"属性的元素。
方法2:自定义DITA-OT插件(适配复杂场景)
如果需要更灵活的排除逻辑(比如多维度排除),可以编写轻量插件:
- 扩展DITA-OT的过滤处理阶段,添加对
deny属性的识别逻辑 - 配置插件参数,支持发布时动态指定要排除的
deny属性值
注意事项
- 自定义属性(如
deny)需要在DITA的DTD或Schema中声明,避免文档验证报错 - 若使用DITA 1.3及以上版本,也可借助
props属性的扩展能力,比如写props="deny-commercial",再通过过滤规则匹配该值
内容的提问来源于stack exchange,提问作者ianmayo
相关产品推荐
相关产品推荐

