If processing is successful, nothing is written to the log, so the file will be empty if there are no
errors or warnings. To include informational messages in the log, add the
- --verbose option (or -v).
In 2017, the Markdown plug-in was superseded by the LwDITA plug-in, which was bundled with DITA-OT 3.0, and added new formats for Lightweight DITA. The mdita format implements the subset of Markdown features proposed in the latest specification drafts, but differs in some ways from the original Markdown DITA format.
To apply the stricter LwDITA-specific processing to a Markdown topic, create a topic reference in your map and set the @format attribute to mdita:
<map>
+
MDITA syntax
In 2017, the Markdown plug-in was superseded by the LwDITA plug-in, which was bundled with DITA-OT 3.0, and added new formats for Lightweight DITA. The mdita format implements the subset of Markdown features proposed in the latest specification drafts, but differs in some ways from the original Markdown DITA format.
To apply the stricter LwDITA-specific processing to a Markdown topic, create a topic reference in your map and set the @format attribute to mdita:
In this case, the first paragraph in the topic is treated as a short description, and tables are converted to DITA <simpletable> elements.
The MDITA format uses CommonMark as the underlying markup language. MDITA files must be UTF-8 encoded.
The MDITA parser processes topics according to the MDITA “Extended profile” proposed for LwDITA. The "Core profile" can be enabled for custom parser configurations.
The following Markdown constructs are parsed differently when the @format attribute is set to mdita.
Titles and document structure
The first heading level generates a topic and the second heading level a section:
# Topic title
+</map>
In this case, the first paragraph in the topic is treated as a short description, and tables are converted to DITA <simpletable> elements.
The MDITA format uses CommonMark as the underlying markup language. MDITA files must be UTF-8 encoded.
The MDITA parser processes topics according to the MDITA “Extended profile” proposed for LwDITA. The "Core profile" can be enabled for custom parser configurations.
The following Markdown constructs are parsed differently when the @format attribute is set to mdita.
Titles and document structure
The first heading level generates a topic and the second heading level a section:
In 2015, the original DITA-OT Markdown plug-in introduced a series of conventions to convert Markdown content to DITA, and vice-versa. This Markdown flavor was called “Markdown DITA”. The markdown format adds several complementary constructs to represent DITA content in Markdown, beyond those proposed for the MDITA format in the Lightweight DITA specification drafts.
To add a Markdown topic to a DITA publication, create a topic reference in your map and set the @format attribute to markdown. This allows the toolkit to recognize the source file as Markdown and convert it to DITA:
<map>
+
Markdown DITA syntax
In 2015, the original DITA-OT Markdown plug-in introduced a series of conventions to convert Markdown content to DITA, and vice-versa. This Markdown flavor was called “Markdown DITA”. The markdown format adds several complementary constructs to represent DITA content in Markdown, beyond those proposed for the MDITA format in the Lightweight DITA specification drafts.
To add a Markdown topic to a DITA publication, create a topic reference in your map and set the @format attribute to markdown. This allows the toolkit to recognize the source file as Markdown and convert it to DITA:
In this case, the first paragraph in the topic is treated as a body paragraph, and each heading level generates a nested topic.
The Markdown DITA format uses CommonMark as the underlying markup language, with several extensions as noted below. Markdown DITA files must be UTF-8 encoded.
The following Markdown constructs are parsed differently when the @format attribute is set to markdown.
Titles and document structure
Each heading level generates a topic and associated title:
# Topic title
+</map>
In this case, the first paragraph in the topic is treated as a body paragraph, and each heading level generates a nested topic.
The Markdown DITA format uses CommonMark as the underlying markup language, with several extensions as noted below. Markdown DITA files must be UTF-8 encoded.
The following Markdown constructs are parsed differently when the @format attribute is set to markdown.
Titles and document structure
Each heading level generates a topic and associated title:
DITA Open Toolkit major versions may include incompatible API changes, minor versions add
functionality in a backwards-compatible manner and patch versions are maintenance releases
that include backwards-compatible bug fixes.
-
Tip:
Download the dita-ot-4.4.zip
+
Tip:
Download the dita-ot-4.4.1.zip
package from the project website at
dita-ot.org/download.
@@ -63,9 +63,50 @@
Requirements: Java 17
-
-
DITA-OT 4.4
- released January 31, 2026
+
+
DITA-OT 4.4.1
+
+
+
+
+
DITA Open Toolkit 4.4.1 is a maintenance release that includes the
+ following bug fixes.
+
+
+
In earlier versions, table entries with a @scope attribute set to
+ row or col were not rendered as header cells (<th>) in HTML5 output, and the @scope value itself was not carried through to
+ the generated markup. The table templates have been updated to promote these entries to header cells and
+ preserve the @scope value, improving accessibility for complex tables that rely on explicit
+ header associations.
+ #2962,
+ #4776
+
+
Several bundled dependencies have been updated to address reported CVEs. Jackson has been
+ updated to version 2.21.4 to address CVE-2026-54512, and Logback and SLF4J have been updated to versions 1.5.37 and 2.0.18 to address
+ CVE-2026-13006. DITA-OT is not known to be affected by either vulnerability, but the dependencies
+ have been updated proactively so they are no longer flagged by CVE scanners.
+ #4777,
+ #4778,
+ #4779,
+ #4780
+
+
The pre-release DITA 2.0 grammar files have been updated to the latest draft published by
+ OASIS, which includes fixes and minor updates since the previous update. Anyone building or testing content
+ against the DITA 2.0 preview grammar should update to pick up these changes.
+ #4781
+
+
+
For additional information on the issues resolved since the previous release, see the
+ 4.4.1 milestone and
+
+ changelog on GitHub.
PDF output: plugins/org.dita.pdf2/cfg/common/vars/en.xml
@@ -57,8 +57,8 @@
Adding new languages
Repeat step
- 3 to step
- 5 for each language.
+ 3 to step
+ 5 for each language.
Update your plugin.xml file to extend the strings available.
@@ -70,7 +70,7 @@
Adding new languages
context where the @xml:lang value is vi-VN, the following call returns
“Chủ đề tiếp theo” because it was defined as the text for the variable with
@id value of Next topic in step
- 5.
+ 5.
Repeat step
- 3 and step
- 4 for each language.
+ 3 and step
+ 4 for each language.
Update your plugin.xml file to extend the strings available.
@@ -73,7 +73,7 @@
Adding new strings
the @xml:lang value is en-US, the following call returns “Another
string in English” because it was defined as the text for the variable with @id value
of Another String in step
- 4.
+ 4.
If processing is successful, nothing is written to the log, so the file will be empty if there are no
errors or warnings. To include informational messages in the log, add the
- --verbose option (or -v).
# Use the latest DITA-OT image ↓ as parent:
-FROM ghcr.io/dita-ot/dita-ot:4.4
+FROM ghcr.io/dita-ot/dita-ot:4.4.1
Optional: You can extend your image with a RUN declaration that runs the dita
@@ -48,7 +48,7 @@
Installing plug-ins in a Docker
Figure 1. Sample Dockerfile with custom plug-ins: dita-ot-dir/docsrc/samples/docker/Dockerfile
# Use the latest DITA-OT image ↓ as parent:
-FROM ghcr.io/dita-ot/dita-ot:4.4
+FROM ghcr.io/dita-ot/dita-ot:4.4.1
# Install a custom plug-in from a remote location:
RUN dita --install https://github.com/infotexture/dita-bootstrap/archive/master.zip
@@ -66,9 +66,9 @@
Installing plug-ins in a Docker
=> => transferring dockerfile: 367B 0.0s
=> [internal] load .dockerignore 0.0s
=> => transferring context: 2B 0.0s
- => [internal] load metadata for ghcr.io/dita-ot/dita-ot:4.4
- => [1/3] FROM ghcr.io/dita-ot/dita-ot:4.4@sha256:<hash>
- => => resolve ghcr.io/dita-ot/dita-ot:4.4@sha256:<hash>
+ => [internal] load metadata for ghcr.io/dita-ot/dita-ot:4.4.1
+ => [1/3] FROM ghcr.io/dita-ot/dita-ot:4.4.1@sha256:<hash>
+ => => resolve ghcr.io/dita-ot/dita-ot:4.4.1@sha256:<hash>
Step 2/3 : RUN dita --install https://github.com/infotexture/dita-bootstrap/archive/master.zip
---> Running in d510f874cae0
Added net.infotexture.dita-bootstrap
diff --git a/4.4/topics/determining-version-of-ditaot.html b/4.4/topics/determining-version-of-ditaot.html
index 889334079..6f5e4f872 100644
--- a/4.4/topics/determining-version-of-ditaot.html
+++ b/4.4/topics/determining-version-of-ditaot.html
@@ -23,7 +23,7 @@
Checking the DITA-OT version nu
Results
The DITA-OT version number appears on the console:
'%1' is not a recognized transformation type. Supported transformation types are dita, eclipsehelp, html5, htmlhelp, markdown, markdown_gitbook, markdown_github, pdf, pdf2, validate, xhtml.
Default transformation types that
+
Table 1. DITA-OT error messages
Message ID
Severity
Message text
Additional details
DOTA001F
Fatal
'%1' is not a recognized transformation type. Supported transformation types are dita, eclipsehelp, html5, htmlhelp, markdown, markdown_gitbook, markdown_github, org.dita-ot.html, pdf, pdf2, validate, xhtml.
Default transformation types that
ship with the toolkit include dita, eclipsehelp, html5, htmlhelp, markdown variants, pdf (or pdf2), and
xhtml. Additional transformation types may be available if toolkit plug-ins are installed.
DOTA002F
Fatal
Input not specified, or specified using the wrong parameter.
The input parameter was not
specified, so there is no DITA or DITAMAP file to transform. Ensure the parameter is set properly; see
diff --git a/4.4/topics/installing-via-homebrew.html b/4.4/topics/installing-via-homebrew.html
index 7bacba6b8..81447e5c7 100644
--- a/4.4/topics/installing-via-homebrew.html
+++ b/4.4/topics/installing-via-homebrew.html
@@ -33,10 +33,10 @@
Installing DITA-OT via Homebrew
Optional: Check the version of DITA-OT that is available from Homebrew:
$ brew info dita-ot
-dita-ot: stable 4.4
+dita-ot: stable 4.4.1
DITA Open Toolkit is an implementation of the OASIS DITA specification
https://www.dita-ot.org/
-/opt/homebrew/Cellar/dita-ot/4.4 (number of files, package size) *
+/opt/homebrew/Cellar/dita-ot/4.4.1 (number of files, package size) *
Poured from bottle using the formulae.brew.sh API on YYYY-MM-DD at hh:mm:ss
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/dita-ot.rb
License: Apache-2.0
@@ -63,7 +63,7 @@
Installing DITA-OT via Homebrew
Optional: Check the DITA-OT version number:
$ dita--version
-DITA-OT version 4.4
+DITA-OT version 4.4.1
The DITA-OT version number appears on the console.
@xml:lang value is en-US, the following call returns “Fig.”,
because it was defined as the text for the variable with @id value of Figure
in step
- 5, which overrides the default text found in org.dita.base.
+ 5, which overrides the default text found in org.dita.base.
These settings use the secondary brand color for page headers (as defined above under
- Setting custom colors), the sans-serif font families defined above under
- Defining custom font stacks, and position the content with indentation and padding.
+ Setting custom colors), the sans-serif font families defined above under
+ Defining custom font stacks, and position the content with indentation and padding.
Figure 7. Formatting footers and page numbers in dita-ot-dir/docsrc/samples/themes/dita-ot-docs-theme.yaml