michaelstaatz / fast-blog
Fast Blog: imports blog posts from Markdown files (with YAML frontmatter) in fileadmin and renders them as a paginated list and a detail view.
Package info
github.com/staatzstreich/fast_blog
Type:typo3-cms-extension
pkg:composer/michaelstaatz/fast-blog
Requires
- php: ^8.2
- league/commonmark: ^2.4
- typo3/cms-core: ^14.0
- typo3/cms-extbase: ^14.0
- typo3/cms-fluid: ^14.0
- typo3/cms-seo: ^14.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
A TYPO3 v14 blog extension where posts are maintained as Markdown files with YAML frontmatter in your fileadmin area and imported into TYPO3 by a single CLI command. The website gets a paginated blog list with a tag filter and a detail view with a per-post language switcher.
Detailed documentation: Documentation/Index.rst (rendered docs in RenderedDocs/).
Features
- Markdown files as source of truth – frontmatter carries title, date, description, author, tags, language and a translation key;
draft: truehides a post in the database (afterwards thehiddenflag stays under editorial control). - Import / re-import –
vendor/bin/typo3 fastblog:importpicks up new and changed files; translated files (sametranslationKey) are linked as TYPO3 translations (l10n_parent). - Security – Markdown is rendered with league/commonmark at import time; raw HTML and unsafe links are stripped.
- Editorial state preserved – re-importing a file never touches the backend
hiddenflag. - Multilingual by configuration – language handling reads entirely from the site configuration; no extension settings needed.
- Theme-agnostic – the blog provides no navigation, footer or theme of its own; its stylesheet maps its color tokens onto the active theme's CSS variables (including daisyUI variables), with self-contained fallback values so it also works without a theme.
- SEO – canonical URL listener keeps paginated/filtered list URLs canonical; meta description and focus keywords from the frontmatter.
Requirements
- TYPO3 14.3+ (
typo3/cms-seofor the canonical handling) - PHP 8.3+
Installation
- Install the extension (
composer req michaelstaatz/fast-blogin your distribution). - Create the blog storage folder (or reuse an existing one) and add the "Blog list" content element to a page – no TypoScript include required.
- Store your Markdown files in your fileadmin area, e.g.
fileadmin/blog/:
--- title: All About Apples pubDate: 2026-08-29 author: Jane Orchard description: An overview of apple varieties. meta_description: Learn about apple varieties from the orchard. tags: [varieties] lang: en translationKey: apples --- # All About Apples The orchard speaks...
- Configure the source directory and the storage sysfolder pid in the extension settings (Admin Tools → Settings → Extension Configuration:
outputDirectoryandblogStoragePid; optionallypostsPerPagefor the list length), then import:
vendor/bin/typo3 fastblog:import
The import is idempotent – re-running picks up changes to existing files and skips unchanged ones.
- Optional – register an Extbase route enhancer for pretty URLs (
/apple-blog/all-about-apples,/page/2,/tag/harvest), see the documentation.
Site package integration
The extension is a building block for a sitepackage/theme: its frontend labels are generic English and can be re-worded per project via the LANG.resourceOverrides mechanism in a sitepackage's ext_localconf.php; the blog element renders inside any backend layout. See the "Site package integration" chapter of the documentation.
License
GPL-2.0-or-later. See LICENSE.txt.