---
title: "Render documentation with the TYPO3 theme"
manual: "How to Document"
version: "main"
permalink: "https://docs.typo3.org/permalink/h2document:rendering-docs-quickstart"
source: "Howto/RenderingDocs/Index.rst"
rendered: "2026-09-19T10:25:29+00:00"
---

# Render documentation with the TYPO3 theme {#rendering-docs-quickstart}

You can render documentation by executing the following command in the folder
that contains the `Documentation` folder:

**Execute in extension root, the directory that contains your extensions composer.json**

```bash
docker run --rm --pull always -v $(pwd):/project -it ghcr.io/typo3-documentation/render-guides:latest --config=Documentation
```

Open the file saved to `Documentation-GENERATED-temp/Index.html` in a
browser of your choice.

The official manuals commonly contain a make file. You
can use the short command:

```
make docs
```

-   [Rendering the Documentation folder locally with Docker](https://docs.typo3.org/permalink/h2document:rendering-the-file-documentation-folder-locally-with-docker)
-   [Publishing extension documentation to docs.typo3.org](https://docs.typo3.org/permalink/h2document:publishing-extension-documentation-to-docs-typo3-org)
-   [Introduce automatic testing for extension documentation](https://docs.typo3.org/permalink/h2document:introduce-automatic-testing-for-extension-documentation)

## Rendering the `Documentation` folder locally with Docker {#render-documentation-with-docker}

You can render the documentation of an official TYPO3 manual or a third-party
manual with the following steps:

1.  Clone the repository containing the documentation.
1.  Navigate to the extension's root folder, the directory which contains the
    `composer.json`.
1.  Check if there is documentation to be rendered:

    A folder called `Documentation` containing at least the files
    `Index.rst` and `guides.xml`.
1.  Choose your preferred method of rendering (See below):

Make sure that [Docker](https://www.docker.com/) is installed on your system.

> [!TIP]
> Did you know: Instead of the `docker` client you can also use
> the lightweight drop-in replacement [Podman](https://podman.io/) to run
> the mentioned containers by replacing all `docker` commands in the
> following steps with `podman`.

**Execute in extension root, the directory that contains your extensions composer.json**

```bash
docker run --rm --pull always -v $(pwd):/project -it ghcr.io/typo3-documentation/render-guides:latest --config=Documentation
```

Open the file saved to `Documentation-GENERATED-temp/Index.html` in a
browser of your choice.

## Publishing extension documentation to `docs.typo3.org` {#rendering-docs-publishing-extension-documentation}

For your documentation to be published to [https://docs.typo3.org](https://docs.typo3.org), your
TYPO3 extension has to have a valid `composer.json` and either a folder
called `Documentation` with a `Documentation/Index.rst` and
a `Documentation/guides.xml` or a `README.rst` / `README.md`
in the extension's root directory.

The extension has to be publicly available on GitHub or GitLab. You have to
establish a [Webhook](https://docs.typo3.org/permalink/h2document:webhook) and the Documentation Team has to
[approve](https://docs.typo3.org/permalink/h2document:approval-intercept) your first rendering.

## Introduce automatic testing for extension documentation {#test-documentation}

It is recommended to make sure your documentation always renders without
warning. On GitHub or GitLab you can introduce actions that test your
documentation automatically:

**GitHub**

**.github/workflows/documentation.yml**

```yaml
name: test documentation

on: [ push, pull_request ]

jobs:
  tests:
    name: documentation
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd

      - name: Test if the documentation will render without warnings
        run: |
          mkdir -p Documentation-GENERATED-temp \
          && docker run --rm --pull always -v $(pwd):/project \
             ghcr.io/typo3-documentation/render-guides:latest --config=Documentation --no-progress --minimal-test
```

**GitLab**

**.gitlab-ci.yml**

```bash
stages:
  - test

test_documentation:
  stage: test
  image:
    name: ghcr.io/typo3-documentation/render-guides:latest
    entrypoint: [""]
  script:
    - mkdir -p Documentation-GENERATED-temp
    - /opt/guides/entrypoint.sh --config=Documentation --no-progress --minimal-test
```
