wiki:DitaOtAndEclipseBuildXml

Изготовление ant-сценария для запуска под Эклипсом

Делаем проект под Эклипс-проект, а в нем заводим DITA-файлы, а также файл build.xml.

Общий вид файла build.xml

Cодержимое файла build.xml должно выглядеть примерно так:

<?xml version="1.0" encoding="UTF-8" ?>

<project name="make_eclipsehelp" default="dita2htmlhelp" basedir=".">

  <property name="map.name" value="RfpManual" />

  <property environment="env" />
  <property name="dita.dir" value="${env.DITA_DIR}" />

  <target name="dita2htmlhelp">
    <!-- Генерация документации в виде Html Help, т.е. chm-файла -->
  </target>

  <target name="dita2pdf">
    <!-- Генерация документации в виде pdf-файла -->
  </target>

  <target name="dita2eclipsehelp">
    <!-- Генерация документации в виде Eclipse Help -->
  </target>

</project>

basedir устанавливается на папку, в которой лежит файл build.xml, т.е. на папку, в которой находится Эклипс-проект. И дальше все относительные пути отсчитываются от этой папки.

Дальше устанавливаются значения свойств map.name и dita.dir. Затем идут определения целей dita2htmlhelp, dita2pdf и dita2eclipsehelp для генерации результата в разных форматах.

Установка свойств

Свойству map.name присваивается имя map-файла, описывающего способ сборки выходного документа из частей. Это делается в строчках

  <property name="map.name" value="RfpManual" />

Затем свойству dita.dir присваивается путь к папке, где находится DITA OT. А это значение берется из переменной окружения DITA_DIR следующим образом:

  <property environment="env" />
  <property name="dita.dir" value="${env.DITA_DIR}" />

Тут есть тонкость. Значение переменная окружения DITA_DIR может (или даже должно?) оканчиваться на \, но при этом в dita.dir загадочным образом оказывается путь без последнего \!

Общие части в определениях целей

Во всех определениях целей есть определения свойств, общие для всех типов результатов:

      <property name="args.input" value="src/${map.name}.ditamap" />
      <property name="output.dir" value="." />
      <property name="dita.temp.dir" value="temp" />
      <property name="dita.extname" value=".dita"/>
      <property name="clean.temp" value="yes" />
  • args.input - путь к файлу, где лежит map-файл, описывающий структуру результата.
  • output.dir - папка, в которую надо писать выходные файлы.
  • dita.temp.dir - папка для временных файлов.
  • dita.extname - расширение для DITA-файлов (xml или dita).
  • clean.temp - надо ли чистить папку временных файлов перед началом работы.

Генерация документации в виде Html Help, т.е. chm-файла

  <target name="dita2htmlhelp">
      <property name="args.input" value="src/${map.name}.ditamap" />
      <property name="output.dir" value="." />
      <property name="dita.temp.dir" value="temp" />
      <property name="dita.extname" value=".dita"/>
      <property name="clean.temp" value="yes" />
      <property name="args.css" value="src/RfpManual.css" />
      <property name="args.csspath" value="css" />
      <property name="args.copycss" value="yes" />
    </ant>
  </target>
  • args.css - путь к файлу, в котором лежит css-шаблон для "подкрутки" внешнего вида результата.
  • args.csspath - путь к папке, в которую будет помещен css-шаблон в результате.
  • args.copycss - нужно ли копировать css-шаблон на новое место в результате.

Генерация документации в виде pdf-файла

  <target name="dita2pdf">
    <ant antfile="${dita.dir}${file.separator}build_dita2pdf.xml">
      <property name="args.input" value="src/${map.name}.ditamap" />
      <property name="output.dir" value="." />
      <property name="dita.temp.dir" value="temp" />
      <property name="dita.extname" value=".dita"/>
      <property name="clean.temp" value="yes" />
      <property name="args.fo.output.rel.links" value="no"/>
    </ant>
  </target>
  • args.fo.output.rel.links - нужно ли генерировать в pdf-документе перекрестные ссылки, как это делается для html-результатов.

Генерация документации в виде Eclipse Help

  <target name="dita2eclipsehelp">
    <ant antfile="${dita.dir}${file.separator}build_dita2eclipsehelp.xml">
      <property name="args.input" value="src/${map.name}.ditamap" />
      <property name="output.dir" value="." />
      <property name="dita.temp.dir" value="temp" />
      <property name="dita.extname" value=".dita"/>
      <property name="clean.temp" value="yes" />
      <property name="args.css" value="src/RfpManual.css" />
      <property name="args.csspath" value="css" />
      <property name="args.copycss" value="yes" />
      <property name="args.eclipse.version" value="1.0" />
      <property name="args.eclipse.provider" value="Program Systems Institute, Pereslavl-Zalessky, Russia" />
    </ant>
  </target>
  • args.css - путь к файлу, в котором лежит css-шаблон для "подкрутки" внешнего вида результата.
  • args.csspath - путь к папке, в которую будет помещен css-шаблон в результате.
  • args.copycss - нужно ли копировать css-шаблон на новое место в результате.
  • args.eclipse.version - версия плагина, чтобы вставить ее в plugin.xml.
  • args.eclipse.provider - имя провайдера плагина, чтобы вставить его в plugin.xml.
Last modified 13 years ago Last modified on Sep 13, 2007, 9:30:56 PM