DITA:对每个实例使用不同的变量设置多次重用同一文本



我正在编写一个文档,其中需要解释两个非常相似的单元。我想在两个描述中重复使用文本,但我想在共享文本中使用单位的名称,并配置替换/变量的形式,使单位的名称显示在每个描述中。请注意,这两个单元的说明都出现在最终文档中。

我们使用这样的结构:

top.ditamap, which includes:
units_a_and_b.ditamap, which includes:
unit_a.dita
unit_b.dita

然后这个带有文本片段的文件:

unit_a_b_shared.dita

unit_a.dita和unit_b.dita将引用unit_a_b_shared.dita.中的文本片段

所以基本上我希望unit_a_b_shared.dita包含这样的内容:

"When you configure DOODAA to ..."

然后我希望DOODAA在文档的unit_a部分中被替换为unit_a,在unit_b部分中替换为unit_b。

我尝试过使用关键字,但到目前为止没有成功。我还没有找到一种方法使它们在不同的文件中具有不同的值,即使在使用这里解释的密钥作用域时也是如此:https://blog.oxygenxml.com/keyscopes/keyscopesBlog.html

问题似乎是,对于keyscope,我需要完整的路径,其中包括它是哪个单元,因此不能在共享的文本片段中使用。如果没有keyscopes,则关键字的第一个定义适用于所有地方。

关于如何实现这一目标(是否使用关键字(,有什么建议吗?

我在Oxygen XML博客上写了一篇关于关键作用域的文章,我认为关键作用域似乎是您案例的答案。因此;unit_a_b_shared.dita";文件内部会有一个类似的东西:

<p id="reusablePara">some text before <ph keyref="unit"/> some text after</p>

然后在DITA映射中"unit_a_b_shared.dita"在不同的密钥范围中,并重新定义密钥";单位";将其绑定到不同的值。DITA映射需要如下所示:

<map>
<title>Main</title>
<topicref href="unit_a.dita" keyscope="unitA">
<keydef href="unit_a_b_shared.dita" keys="reusables"/>
<keydef keys="unit">
<topicmeta>
<keywords>
<keyword>KM</keyword>
</keywords>
</topicmeta>
</keydef>
</topicref>
<topicref href="unit_b.dita" keyscope="unitB">
<keydef href="unit_a_b_shared.dita" keys="reusables"/>
<keydef keys="unit">
<topicmeta>
<keywords>
<keyword>KG</keyword>
</keywords>
</topicmeta>
</keydef>
</topicref>
</map>

而内部";unit_a.dita";您将conkeyref引用到";unit_a_b_shared.dita";文件:

<p conkeyref="reusables/reusableParagraph"/>

注意,我使用的是";conkeyref";而不是";conref";。一旦使用了键作用域,就应该避免直接链接或直接内容引用,只使用键的间接链接。

最新更新