Migrating to release 3.0
DITA-OT 3.0 adds support for Markdown, normalized DITA output, and the alternative authoring formats proposed for Lightweight DITA. The map-first preprocessing approach provides a modern alternative to the default preprocess
operation.
Note: This topic provides a summary of changes in DITA-OT 3.0 that may require modifications to custom stylesheets or plug-ins. For more information on changes in this release, see the DITA-OT 3.0 Release Notes.
Upgrade stylesheets to XSLT 2.0
The Saxon project has announced plans to remove XSLT 1.0 support from the Saxon-HE library that ships with DITA-OT:
DITA-OT 3.0 and 3.0.1 included Saxon-HE 9.8.0.5, which rejects XSLT stylesheets that specify version="1.0"
. Plug-ins with XSLT templates specifying version 1.0 will fail with the message “ XSLT 1.0 compatibility mode is not available in this configuration
.”
To resolve this issue, change any occurrences of <xsl:stylesheet version="1.0">
in custom plug-in stylesheets to at least <xsl:stylesheet version="2.0">
.
Tip: DITA-OT 3.0.2 includes Saxon-HE 9.8.0.7, which restores XSLT 1.0 backwards-compatibility mode, but the DITA Open Toolkit project recommends upgrading all stylesheets to XSLT 2.0 to ensure plug-ins remain compatible with future versions of DITA-OT and Saxon-HE.
Legacy plug-ins removed
DITA-OT 3.0 no longer includes the following legacy transformation plug-ins in the default distribution:
Plug-in | Source code location |
---|---|
JavaHelp |
Note: If necessary, legacy plug-ins may be re-installed from earlier DITA-OT distributions, but they are no longer actively maintained or supported by the core toolkit committers. The source code is available on GitHub for anyone interested in maintaining the plug-ins for use with future toolkit versions.
To re-install the JavaHelp plug-in, run the following command:
Map-first preprocessing
DITA-OT 3.0 provides a map-first preprocessing option as an alternative to the default preprocess
operation. The method, which was introduced in DITA-OT 2.5 as an experimental feature, has been improved and is ready for use in many production scenarios. Map-first-preprocessing provides the same functionality as the default preprocess
, but takes a different approach.
The internal extension points that run before or after individual steps in the original preprocess
pipeline (preprocess.*.pre/preprocess.*.post
) are not available in the newer map-first preprocessing pipeline (preprocess2
), which is used in the PDF and HTML Help transformations as of DITA-OT 3.0.
Tip: See Map-first preprocessing for information on how to use (or test) map-first preprocessing, or revert to the default preprocess
target.
New ant.import extension point
A new extension point has been added to make it easier to add new targets to the Ant processing pipeline.
Earlier versions of DITA-OT use the dita.conductor.target.relative
to call a wrapper file with a dummy task that imports the Ant project file. This approach is still supported for backwards compatibility, but the simpler ant.import
approach should be used for all new customizations.
Tip: See Adding a new target to the Ant build process for details.