Integrating a new transformation type

Plug-ins may integrate an entirely new transformation type. The new transformation type can be very simple, such as an XHTML build that creates an additional control file; it can also be very complex, adding any number of new processing steps.

The transtype extension point is used to define a new transformation type, which makes use of targets in your Ant extensions. When a transformation type is defined, the build expects Ant code to be integrated to define the transform process. The Ant code must define a target based on the name of the transformation type; if the transformation type is "mystuff", the Ant code must define a target named dita2mystuff.

dita.conductor.transtype.check
Add a new value to the list of valid transformation type names.
dita.transtype.print
Declare the transformation type as a print type.

The <transtype> element is used to define a new transformation type with the parameters that are supported.

Example

The following feature defines a transformation type of "newtext" and declares it as a print type; using this transformation type will cause the build to look for a target dita2newtext, defined in a related Ant extension from the third feature:

<plugin id="com.example.newtext">
  <feature extension="dita.conductor.transtype.check" value="newtext"/>
  <transtype name="newtext"/>
  <feature extension="dita.transtype.print" value="newtext"/>
  <feature extension="dita.conductor.target.relative" file="antWrapper.xml"/>
</plugin>

The following example shows how the org.dita.html5 plugin uses the <transtype> element to extend the common HTML transformation with a new html5 transformation type and define a new nav-toc parameter with three possible values:

<transtype name="html5" extends="common-html" desc="HTML5">
  <param name="nav-toc" type="enum" 
         desc="Specifies whether to generate a navigation TOC in topic pages.">
    <val default="true" desc="No TOC">none</val>
    <val desc="Partial TOC that shows the current topic">partial</val>
    <val desc="Full TOC">full</val>
  </param>
</transtype>