У меня есть следующее:
- Две карты DITA, bkmap_a.ditamap и bkmap_b.ditamap . Они равноправны.
- Каждый из них содержит topicref () к своему собственному topi c в подкаталоге - bk_a / bkatopi c .dita и bk_b /bkbtopic.dita.
- Каждый topi c имеет ключевую ссылку на topi другой карты c.
- Отдельная карта, resources.map , который содержит maprefs для каждой ditamap. Это одноранговый узел для bkmapa.ditamap и bkmapb.ditamap , но не обязательно должен быть.
Список этих файлов приведен ниже.
Я ожидаю, что ссылка на xref keyref в каждом topi c должна быть преобразована в другую через maprefs в resources.map.
Согласно сообщению на https://github.com/dita-ot/dita-ot/pull/3412 (автор: jelovirt 17 ноября 2019 г.), новая функция args.resources в DITA-OT 3.5 может быть способной разрешать эти mapref. Я использовал следующий вызов DITA-OT 3.5.1, но не смог разрешить эти maprefs в HTML5 выводе.
dita -f html5 -r resources.ditamap -i bkmap_a.ditamap
Я надеюсь, что OT разрешит mapref в bkatopi c .dita, поймет, что ему также нужно обработать bk_map_b.ditamap, и выдаст HTML вывод с содержанием обеих тем и рабочие связи между ними, со структурой вроде этой:
out/
index.html
bk_a/
bktopica.html
bk_b/
bktopicb.html
Код начинается ...
bkmap_a.ditamap
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE bookmap
PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd">
<bookmap >
<title>book a map </title>
<frontmatter>
<!-- commented out in favor of resources.map
<mapref href="bkmap_b.ditamap" format="ditamap" keyscope="bkb_keyscope"
navtitle="map b mapref to bkmap_a" scope="peer" processing-role="resource-only"/>
-->
</frontmatter>
<chapter href="bk_a/bkatopic.dita" navtitle="chapter ref to bka topic" keys="bka_keys_in_mapa_chapref"/>
</bookmap>
bkmap_b.ditamap
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE bookmap
PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd">
<bookmap >
<title>book b map </title>
<frontmatter>
<!-- commented out in favor of resources.map
<mapref href="bkmap_a.ditamap" format="ditamap" keyscope="bka_keyscope"
navtitle="map a mapref to bkmap_b" scope="peer" processing-role="resource-only"/>
-->
</frontmatter>
<chapter href="bk_b/bkbtopic.dita" navtitle="chapter ref to bkb topic" keys="bkb_keys_in_mapb_chapref" class="- map/topicref bookmap/chapter "/>
</bookmap>
bkatopi c .dita (входит в подкаталог bk_a)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
PUBLIC "-//OASIS//DTD DITA 1.2 Topic//EN" "topic.dtd">
<topic id="bkatopicid1">
<title>topic one in book a</title>
<body>
<p>this is a paragraph in book a topic one</p>
<p>this should be a cross-bookmap keyref to the book b topic <xref keyref="bkb_keyscope.bkb_keys_in_mapb_chapref"
>text within the xref</xref> to topic in
book b. keyref is keyref="bkb_keyscope.bkb_keys_in_mapb_chapref"</p>
</body>
</topic>
bkbtopi c .dita (входит в подкаталог bk_b)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE topic
PUBLIC "-//OASIS//DTD DITA 1.2 Topic//EN" "topic.dtd">
<topic id="bkbtopicid1">
<title>topic one in book b</title>
<body>
<p>this is a paragraph in book b topic one</p>
<p>this should be a cross-bookmap keyref to the topic in book a: <xref keyref="bka_keyscope.bka_keys_in_mapa_chapref">manually entered xref text</xref> to topic
in book a. Keyref is keyref="bka_keyscope.bka_keys_in_mapa_chapref"</p>
</body>
</topic>
ресурсы. Карта
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE map
PUBLIC "-//OASIS//DTD DITA Map//EN" "map.dtd">
<map processing-role="resource-only" keyscope="resources_scope">
<mapref href="bkmap_a.ditamap" format="ditamap" keyscope="resource_bka_keyscope"
navtitle="resources map mapref to bkmap_a" scope="peer" processing-role="resource-only">
<topicmeta>
<navtitle>resources map mapref to bkmap_a</navtitle>
<linktext>resources map mapref to bkmap_a</linktext>
</topicmeta>
</mapref>
<mapref href="bkmap_b.ditamap" format="ditamap" keyscope="resource_bkb_keyscope"
navtitle="resources map mapref to bkmap_b" scope="peer" processing-role="resource-only">
<topicmeta>
<navtitle>resources map mapref to bkmap_b</navtitle>
<linktext>resources map mapref to bkmap_b</linktext>
</topicmeta>
</mapref>
</map>