“reusing a topic”这个短语通常意味着在许多不同map中使用同一个topic。然而,也有你想要在相同的map中多次使用相同topic的情况。
有一个例子,考虑用一个DITA map来做一些课程材料,里面有总是相同的内容来引入测试。你不必每一次都使用一个独立的topic来介绍测试,只需创建一个共享的可重用的topic,这个topic就可以重复地用于测试内容的撰写。
然而,当你在同一个map中多次重用相同的topic时,你需要在任何引用了通用topic文件的<topicref>元素中使用copy-to属性。
<map> ... <topicref href="my_topic.dita" copy-to="first_copy.dita"/> ... <topicref href="my_topic.dita" copy-to="second_copy.dita"/> ... </map>
使用copy-to的主要原因是保证当你创建交叉引用或一些其他链接到共享topic的链接时,交叉引用所指向的内容是正确的。
使用copy-to属性的最好实践是把它用于所有引用了共享topic的<topicref>,而不是跳过第一个<topicref>直接到达共享topic。如果你重组内容,你可能会无法记录topic被共享的事实。
如果你的map或bookmap引用了一些子map,而每一个子map引用了相同的topic,那么你必须在这些<topicref>元素中使用copy-to属性。当你需要输出时,预处理将会把所有子map都拉入到主map中来创建一个完整的,合并的map。这个合并的map之后便用于输出成品。
你可以使用<navtitle>、<linktext>和<shortdesc>元素来给复制的topic提供唯一的标题和描述信息。
<map> ... <topicref href="my_topic.dita" copy-to="first_copy.dita"> <topicmeta> <navtitle>Name for first copy</navtitle> <linktext>Name for first copy</linktext> <shortdesc>Modified information about the first copy of the topic.</shortdesc> </topicmeta> </topicref> ... <topicref href="my_topic.dita" copy-to="second_copy.dita"> <topicmeta> <navtitle>Name for second copy</navtitle> <linktext>Name for second copy</linktext> <shortdesc>Modified information about the second copy of the topic.</shortdesc> </topicmeta> </topicref> ... </map>