---
name: typo3-docs
description: Create and maintain TYPO3 extension documentation following official docs.typo3.org standards. RST syntax, TYPO3 directives, rendering, and deployment.
version: 1.0.0
typo3_compatibility: "13.0 - 14.x"
triggers:
- documentation
- rst
- docs
- readme
- typo3 documentation
---
# TYPO3 Documentation Skill
Create and maintain TYPO3 extension documentation following official docs.typo3.org standards.
## When to Use
- Creating documentation from scratch (no `Documentation/` exists)
- Editing `Documentation/**/*.rst` files
- Using TYPO3 directives: `confval`, `versionadded`, `card-grid`, `tabs`
- Creating/adding screenshots
- Rendering and testing documentation locally
- Deploying to docs.typo3.org
## Documentation Structure
```
Documentation/
├── Index.rst # Main entry point
├── guides.xml # Configuration file
├── Introduction/
│ └── Index.rst
├── Installation/
│ └── Index.rst
├── Configuration/
│ └── Index.rst
├── Usage/
│ └── Index.rst
├── Developer/
│ └── Index.rst
└── Images/
└── screenshot.png
```
## Creating Documentation from Scratch
When no `Documentation/` directory exists, use the init command:
```bash
docker run --rm --pull always -v $(pwd):/project -it \
ghcr.io/typo3-documentation/render-guides:latest init
```
**Interactive prompts:**
1. **Format**: Choose `rst` (ReStructuredText) for full TYPO3 theme features
2. **Site Set**: Enter name/path if extension defines a Site set
## guides.xml Configuration
```xml
```
### With GitHub Integration
```xml
```
## RST Syntax Reference
### Headings
```rst
==========
Page Title
==========
Section
=======
Subsection
----------
Subsubsection
~~~~~~~~~~~~~
```
### Code Blocks
```rst
.. code-block:: php
:caption: Classes/Service/MyService.php
`__
.. _my-reference-label:
Section with Reference
======================
This section can be referenced from anywhere.
```
## TYPO3 Directives
### confval (Configuration Values)
```rst
.. confval:: encryptionMethod
:name: ext-myext-encryptionMethod
:type: string
:default: 'aes-256-gcm'
:required: false
The encryption method to use for API keys.
Available options:
- ``aes-256-gcm`` (recommended)
- ``aes-256-cbc``
```
### versionadded / versionchanged / deprecated
```rst
.. versionadded:: 2.0.0
This feature was added in version 2.0.0.
.. versionchanged:: 2.1.0
The default value was changed from ``false`` to ``true``.
.. deprecated:: 3.0.0
Use :php:`newMethod()` instead.
```
### Admonitions
```rst
.. note::
Background information users should know.
.. tip::
Helpful suggestion for better results.
.. warning::
Potential issue or data loss risk.
.. important::
Critical information that must not be missed.
```
### Tabs
```rst
.. tabs::
.. group-tab:: Composer
Install via Composer:
.. code-block:: bash
composer require vendor/my-extension
.. group-tab:: TER
Download from the TYPO3 Extension Repository.
```
### Card Grid
```rst
.. card-grid::
:columns: 2
:card-height: 100
.. card:: Installation
Learn how to install the extension.
:ref:`Read more `
.. card:: Configuration
Configure the extension for your needs.
:ref:`Read more `
```
### Accordion
```rst
.. accordion::
.. accordion-item:: How do I install this extension?
See the :ref:`installation` chapter.
.. accordion-item:: What PHP version is required?
PHP 8.2 or higher is required.
```
## Editor Configuration
Create `Documentation/.editorconfig`:
```editorconfig
root = true
[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 4
insert_final_newline = true
trim_trailing_whitespace = true
max_line_length = 80
```
## Rendering Documentation
### Local Rendering
```bash
# Render documentation
docker run --rm --pull always -v $(pwd):/project -it \
ghcr.io/typo3-documentation/render-guides:latest
# Output is in Documentation-GENERATED-temp/
```
### With Live Preview
```bash
# Start watch mode for live preview
docker run --rm --pull always -v $(pwd):/project -p 8080:8080 -it \
ghcr.io/typo3-documentation/render-guides:latest --watch
# Open http://localhost:8080 in browser
```
### Validation
```bash
# Validate RST syntax
docker run --rm --pull always -v $(pwd):/project -it \
ghcr.io/typo3-documentation/render-guides:latest --no-progress --fail-on-log
```
## Screenshots
### Requirements
- PNG format
- 72 DPI
- Appropriate size (not too large)
- Always include `:alt:` text
### Adding Screenshots
```rst
.. figure:: /Images/BackendModule.png
:alt: Backend module screenshot
:class: with-shadow
The backend module provides an overview of all items.
```
### Screenshot Directory
```
Documentation/
└── Images/
├── BackendModule.png
├── Configuration.png
└── Frontend.png
```
## Writing Guidelines
### General Rules
- Use **American English** spelling (color, behavior, optimize)
- Use **sentence case** for headings (not Title Case)
- Maximum line length: **80 characters**
- Use **4 spaces** for indentation (no tabs)
- Add blank line before and after code blocks
- Use present tense
### CamelCase for Files
- `Index.rst` (not `index.rst`)
- `Configuration/` (not `configuration/`)
- `BackendModule.png` (not `backend-module.png`)
### Example: Good Documentation
```rst
============
Installation
============
This chapter explains how to install the extension.
Requirements
============
- TYPO3 v13.4 or v14.x
- PHP 8.2 or higher
Installation via Composer
=========================
Run the following command:
.. code-block:: bash
composer require vendor/my-extension
After installation, activate the extension:
.. code-block:: bash
vendor/bin/typo3 extension:activate my_extension
```
## Deployment to docs.typo3.org
### Prerequisites
1. Extension registered on extensions.typo3.org
2. Documentation in `Documentation/` directory
3. Valid `guides.xml` configuration
### Webhook Setup
1. Go to https://intercept.typo3.com/
2. Login with TYPO3.org account
3. Register your repository
4. Add webhook to GitHub/GitLab
### Trigger Rendering
Documentation is automatically rendered when:
- Webhook receives push event
- Manual trigger via Intercept
## Complete Index.rst Example
```rst
.. include:: /Includes.rst.txt
.. _start:
==============
My Extension
==============
:Extension key:
my_extension
:Package name:
vendor/my-extension
:Version:
|release|
:Language:
en
:Author:
Your Name
:License:
This document is published under the
`Creative Commons BY 4.0 `__
license.
:Rendered:
|today|
----
This extension provides functionality for managing items.
----
**Table of Contents**
.. toctree::
:maxdepth: 2
:titlesonly:
Introduction/Index
Installation/Index
Configuration/Index
Usage/Index
Developer/Index
.. toctree::
:hidden:
Sitemap
```
## Resources
- **TYPO3 Documentation Guide**: https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/
- **RST Primer**: https://docs.typo3.org/m/typo3/docs-how-to-document/main/en-us/WritingReST/
- **Render Guides**: https://github.com/TYPO3-Documentation/render-guides
- **Intercept**: https://intercept.typo3.com/
---
## Credits & Attribution
This skill is based on the excellent work by
**[Netresearch DTT GmbH](https://www.netresearch.de/)**.
Original repository: https://github.com/netresearch/typo3-docs-skill
**Copyright (c) Netresearch DTT GmbH** - Methodology and best practices
Adapted by webconsulting.at for this skill collection