georgringer / docs
Show rendered documentation in backend
Package info
Type:typo3-cms-extension
pkg:composer/georgringer/docs
Fund package maintenance!
Requires
- typo3/cms-backend: ^14.0
- typo3/cms-core: ^14.0
README
TYPO3 backend extension that adds a documentation toolbar button. Clicking the button opens the project documentation in an iframe modal.
Features
- Toolbar icon in the TYPO3 backend (help icon)
- Opens the project documentation in a modal iframe
- Documentation is served only to authenticated backend users — the HTML lives in a non-public directory and is streamed through a backend middleware (
/typo3/docs/…), never from a publicly reachable_assets/path - Fully translatable (EN/DE included)
How access protection works
The generated documentation is stored outside the public web root (see docPath below), so the web server cannot serve it directly. Requests to /typo3/docs/… are handled by DocsAssetMiddleware, which runs inside the backend request pipeline. It starts the backend user session, rejects the request with 403 when no user is logged in, guards against directory traversal, and otherwise streams the requested file with the correct MIME type. All relative assets (CSS/JS/images/sub-pages) resolve through the same protected path.
Configuration
The documentation directory can be changed in the TYPO3 Extension Manager or Install Tool under Admin Tools → Settings → Extension Configuration → docs.
| Setting | Default | Description |
|---|---|---|
docPath |
EXT:f_theme/Resources/Private/Docs/ |
Filesystem directory (EXT: path or absolute) with the generated daux HTML. Must not be publicly reachable. |
Generating the documentation
The documentation is built with daux.io from the docs/ directory into the non-public target directory:
# Generate static HTML into a private directory (not below public/)
daux generate --destination=packages/f_theme/Resources/Private/Docs/
To also include auto-generated component documentation from TYPO3:
ddev typo3 fbase:component:documentation \
packages/f_theme/Resources/Private/Ui \
--format=markdown > docs/Inhalt/Komponenten.md
daux generate --destination=packages/f_theme/Resources/Private/Docs/
Do not generate into
public/_assets/…anymore — files there are served directly by the web server without any authentication.
Installation
The package is included as a local path repository via Composer:
composer require georgringer/docs