# Use structured authoring

DITA XML and the discipline of information typing: splitting content into concepts, tasks, and reference material that can be reused and assembled into different deliverables.

## Formats and architecture

  - [**Structured vs. unstructured formats**](https://docs.redaction-technique.org/en/formats/structured-vs-unstructured-formats/): The foundational choice that determines reuse, translation cost, and tooling.
  - [**DITA XML case studies**](https://docs.redaction-technique.org/en/formats/dita-xml-case-studies/): Real-world structured-authoring solutions.
  - [**Document architecture complexity**](https://docs.redaction-technique.org/en/formats/document-architecture-complexity/): When a documentation architecture becomes too complex — and how to recognize it.
  - [**From document to modular documentation**](https://docs.redaction-technique.org/en/formats/modular-documentation/): Moving from monolithic documents to a modular, reusable content base.
  - [**Case study: NuFirewall documentation**](https://docs.redaction-technique.org/en/formats/nufirewall-case-study/): Structured authoring in production, from a press-validated open-source project.

## Tutorials

  - [**DITA XML and XSL-FO tutorials**](https://docs.redaction-technique.org/en/tutorials/dita-xml-xsl-fo-tutorials/): Authoring in DITA XML and generating PDF output with XSL-FO style sheets.
  - [**Auto-insert data into a DITA XML file**](https://docs.redaction-technique.org/en/tutorials/auto-insert-data-dita-xml/): Dynamically insert product data into DITA topics.
  - [**Conditional text with Jinja (object method)**](https://docs.redaction-technique.org/en/tutorials/conditional-text-jinja-object-method/): Define audience, platform, and version as Python objects, then filter content at build time.
  - [**Conditional text with Jinja**](https://docs.redaction-technique.org/en/tutorials/conditional-text-jinja/): A Python preprocessing script that includes or strips content sections before generation.
  - [**Conditional text with Sphinx/ReST**](https://docs.redaction-technique.org/en/tutorials/conditional-text-sphinx-rest/): Generate document variants from the same ReST sources.
  - [**Auto-insert data into a reStructuredText file**](https://docs.redaction-technique.org/en/tutorials/auto-insert-data-restructuredtext/): Template a ReST file so Python fills in product names and versions at build time.
  - [**Auto-insert SQL data into a reStructuredText file**](https://docs.redaction-technique.org/en/tutorials/auto-insert-sql-data-restructuredtext/): Query a product database and render results directly into documentation.

Deciding between DITA and Markdown in the first place? See [choosing tools and formats](https://docs.redaction-technique.org/en/tools-and-formats/).

---

Source: https://docs.redaction-technique.org/en/structured-authoring/
