Skip to main content

Convert a generic DITA topic to a specialized concept, task, or reference.

Project description

DITA Custom XSLT

dita-custom-xslt is a set of XSLT stylesheets that convert a generic DITA topic to a specialized DITA concept, reference, or task. dita_convert is a Python 3 package that provides a convenient access to these stylesheets and a command-line utility to perform the conversions.

In combination with asciidoctor-dita-topic, this project can be used to rapidly convert AsciiDoc content to DITA.

Installation

Install the dita_convert Python package:

python3 -m pip install --upgrade dita_convert

Usage

Using the command-line interface

To convert a DITA topic to a specialized DITA content type, run the following command:

python3 -m dita.convert -t TYPE TOPIC_FILE

For convenience, the package also provides a wrapper script that you can run directly as follows:

dita-convert -t TYPE TOPIC_FILE

Available TYPE values are concept, reference, task, and task-generated for converting files generated by asciidoctor-dita-topic that follow the guidelines for procedure modules as defined in the Modular Documentation Reference Guide.

Using the Python interface

To convert a DITA topic to a specialized DITA content type, the dita_convert package exports the corresponding to_concept(), to_reference(), to_task(), and to_task_generated() functions that return an ElementTree object:

import sys

from lxml import etree
from dita.convert import to_task

# Parse the contents of a sample DITA topic file:
topic = etree.parse("topic.dita")

# Report possible errors:
try:
    # Convert the DITA topic to a DITA task:
    task  = to_task(topic)
except etree.XSLTApplyError as msg:
    # Print the error message to standard error output:
    print(msg, file=sys.stderr)

    # Terminate the script:
    sys.exit(1)

# Report possible warnings:
for error in to_task.error_log:
    # Print the warning message to standard error output:
    print(error.message, file=sys.stderr)

# Print the resulting XML to standard output:
print(str(task))

If you prefer to work with the underlying XSLT stylesheets directly, you can access their Path objects as follows:

from dita.convert import xslt

# Print the full path to the XSLT stylesheet for DITA reference:
print(xslt.reference)

Available variables are concept, reference, task, and task_generated.

Copyright

Copyright © 2024 Jaromir Hradilek

This program is free software, released under the terms of the MIT license. It is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dita_convert-1.0.2.tar.gz (10.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

dita_convert-1.0.2-py3-none-any.whl (18.7 kB view details)

Uploaded Python 3

File details

Details for the file dita_convert-1.0.2.tar.gz.

File metadata

  • Download URL: dita_convert-1.0.2.tar.gz
  • Upload date:
  • Size: 10.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for dita_convert-1.0.2.tar.gz
Algorithm Hash digest
SHA256 0ab06044335df5b8c040afc93bf92ad5786e0429018d0bcc4922f440055177e0
MD5 60e64acdc7d97c8a86da1ff60cf37aee
BLAKE2b-256 8d305044aedfeb3a7d78bafd045df4bc9bc58efdcfdb5c4d1fafd4a1da1c1e3a

See more details on using hashes here.

File details

Details for the file dita_convert-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: dita_convert-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 18.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.6

File hashes

Hashes for dita_convert-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 5c4f12fe159d921f67a7746ea297c3dec08935dee259ef22c93a644ceabf31ee
MD5 0f32e3550f8e0fdc8d5df8993b5758a6
BLAKE2b-256 e5f1e397b3e043666eb3275b1ab9d78944f7c0b53794c29ccbc847d6133d9726

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page