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>