#xslt #ant #dita
Вопрос:
Я преобразую DITA xml в html с помощью DITA-OT 3.4.1. Что я пытаюсь сделать, так это при преобразовании создавать папки на основе названий глав и перемещать все преобразованные html-файлы и изображения в отдельную папку главы. В настоящее время я получаю все html и изображения в одних и тех же папках. Как я могу добиться этого с помощью xslt или ANT
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE bookmap PUBLIC "-//OASIS//DTD DITA BookMap//EN" "bookmap.dtd">
<bookmap>
<booktitle>
<mainbooktitle>Title of the docuemnt</mainbooktitle>
</booktitle>
<chapter href="chapter1.xml">
<topicmeta>
<navtitle>chapter 1</navtitle>
</topicmeta>
<topicref href="topic1.xml">
<topicmeta>
<navtitle>topic 1</navtitle>
</topicmeta>
</topicref>
<topicref href="topic2.xml">
<topicmeta>
<navtitle>topic2</navtitle>
</topicmeta>
</topicref>
</chapter>
<chapter href="chapter 2.xml">
<topicmeta>
<navtitle>chapter 2</navtitle>
</topicmeta>
<topicref href="topic1.xml">
<topicmeta>
<navtitle>topic1</navtitle>
</topicmeta>
</topicref>
</chapter>
</bookmap>
мой образец книжной карты
Комментарии:
1. Я на самом деле не знаком с DITA, но в oXygen пример проекта bookmap с самого начала содержит вложенные папки для тем и задач, поэтому, возможно, ваша структура ввода слишком плоская, и вам следует реорганизовать свои файлы в подкаталоги, тогда, возможно, результат преобразования в HTML будет отражать эту структуру.
2. @MartinHonnen Я не знаю рабочей среды спрашивающего. Но почти тяжелый пользователь DITA использует CCMS в качестве своей платформы. Как только CCMS извлекает содержимое DITA в файловую систему, обычно это плоская структура. Все темы, ditamap и изображения существуют в одной папке. Рахул, ты используешь CCMS для своего контента DITA?
3. Да, я использую CCMS.
4. Я не вижу связи с муравьем Апача в этом вопросе. можешь ли ты
5. ДИТА-ОТ 3.5 добавлено dita-ot.org/3.5/topics/plugin-rewrite-rules.html для перезаписи имен файлов и каталогов во время предварительной обработки. Если вы сможете перейти на версию 3.5, вам нужно будет только настроить поведение, вместо того, чтобы реализовывать его самостоятельно с нуля.