Creating a new plug-in extension point
_template
" to the filename before the file suffix. During integration, this
file will be processed like the built-in DITA-OT templates.
Template files are used to integrate most DITA-OT extensions. For example, the file
dita2xhtml_template.xsl
contains all of the default rules for
converting DITA topics to XHTML, along with an integration point for plug-in extensions.
When the integrator runs, the file dita2xhtml.xsl is recreated, and the integration
point is
replaced with references to all appropriate plug-ins.
To mark a new file as a template
file, use the <template>
element.
The template extension namespace has the URI
http://dita-ot.sourceforge.net
. It is used to identify elements and
attributes that have a special meaning in template processing. This documentation
uses a
prefix of dita:
for referring to elements in the template extension
namespace. However, template files are free to use any prefix, provided that there
is a
namespace declaration that binds the prefix to the URI of the template extension namespace.
dita:extension
element
The dita:extension
elements are used to insert generated content during
integration process. There are two required attributes:
- The
id
attribute defines the extension point ID which provides the argument data. - The
behaviour
attribute defines which processing action is used.
Supported values for behavior
attribute:
org.dita.dost.platform.CheckTranstypeAction
- Create Ant condition elements to check if
${transtype}
property value equals a supported transtype value. org.dita.dost.platform.ImportAntLibAction
- Create Ant
pathelement
elements for library imported extension point. Theid
attribute is used to define the extension point ID. org.dita.dost.platform.ImportPluginCatalogAction
- Include plug-in metadata catalog content.
org.dita.dost.platform.ImportPluginInfoAction
- Create plug-in metadata Ant properties.
org.dita.dost.platform.ImportStringsAction
- Include plug-in string file content base on generated text extension point. The
id
attribute is used to define the extension point ID. org.dita.dost.platform.ImportXSLAction
- Create
xsl:import
elements based on XSLT import extension point. Theid
attribute is used to define the extension point ID. org.dita.dost.platform.InsertAction
- Include plug-in conductor content based on Ant import extension point. The
id
attribute is used to define the extension point ID. org.dita.dost.platform.InsertAntActionRelative
- Include plug-in conductor content based on relative Ant import extension point. The
id
attribute is used to define the extension point ID. org.dita.dost.platform.InsertCatalogActionRelative
- Include plug-in catalog content based on catalog import extension point. The
id
attribute is used to define the extension point ID. org.dita.dost.platform.ListTranstypeAction
- Create a pipe delimited list of supported transtypes.
dita:extension
attribute
The dita:extension
attribute is used to process attributes in elements
which are not in template extension namespace. The value of the attribute is a space
delimited tuple, where the first item is the name of the attribute to process and
the second
item is the action ID.
Supported values:
depends org.dita.dost.platform.InsertDependsAction
- Ant target dependency list is processed to replace all target names which start with an open curly bracket and end with a close curly bracket. The value of the extension point is the ID between the curly brackets.
Example
The following plug-in defines
myBuildFile_template.xml
as a new template for extensions, and two
new extension points.
<plugin id="com.example.new-extensions"> <extension-point id="com.example.new-extensions.pre" name="Custom target preprocess"/> <extension-point id="com.example.new-extensions.content" name="Custom target content"/> <template file="myBuildFile_template.xml"/> </plugin>
When the integrator runs, this will be used to recreate
myBuildFile.xml
, replacing Ant file content based on extension point
use.
<project xmlns:dita="http://dita-ot.sourceforge.net"> <target name="dita2custom" depends="dita2custom.init, {com.example.new-extensions.pre}, dita2xhtml" dita:extension="depends org.dita.dost.platform.InsertDependsAction"> <dita:extension id="com.example.new-extensions.content" behaviour="org.dita.dost.platform.InsertAction"/> <target> </project>