Development documentation may describe unreleased features. Type ? for keyboard shortcuts · Switch to the latest release: 3.0 Docs
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.
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:
…we’re dropping XSLT 1.0 backwards compatibility mode from Saxon-HE, and hope to eliminate it entirely in due course.
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">
.
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 | https://github.com/dita-ot/org.dita.javahelp |
To re-install the JavaHelp plug-in, run the following command:
dita --install https://github.com/dita-ot/org.dita.javahelp/archive/2.5.zip
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.
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.