Idea Title
Content Blocks JSON Schema / YAML Linter
What is my idea about?
Currently, there are no checks to validate the correctness of a Content Blocks configuration file. Sometimes errors occur due to incorrect configuration or typos. The current JSON Schema for Content Blocks is not really up to date and needs more maintenance to implement all available options. Once the Schema is complete, it can be used to implement a linter command.
What do you want to achieve by 30th of April 2026?
We already have started with a JSON Schema for Content Blocks config.yaml, but it needs a lot more attention. First, the schema needs to be updated to current capabilities of Content Blocks. Then, it should be directly integrated into the Core of Content Blocks so that it’s always up to date. Having the schema available locally, a new opportunity arises to directly implement a linter for Content Blocks. This could be called from the CLI and be integrated into CI pipelines, helping to keep the configuration valid and avoid mistakes.
The linter command can be called from the TYPO3 console and will either return a success message or list all violations to the JSON Schema. The errors will be grouped by Content Block and formatted cleanly, so they can be easily fixed one by one.
The technical implementation will most likely build upon the opis/json-schema PHP package: Opis JSON Schema | PHP Library
This package is able to take a PHP array or object and validate it against an existing JSON Schema.
In summary the goals are:
Part 1: Complete overhaul of the current JSON Schema
- Fix current bugs in the existing JSON Schema
- Add missing Types and options to the JSON Schema
- Make the JSON Schema ready for TYPO3 v14 features
- Integrate the JSON Schema into Content Blocks Core extension
- Update the documentation and how to integrate the JSON Schema into your IDE for Code autocompletion
Part 2: YAML Linter
- Implement a linter for a Content Block definition
- Add Unit Tests for the linter based on the local JSON Schema
- Wrap the linter into a TYPO3 command
- The command will only be available for composer installations
This feature will be backported to the TYPO3 v13 version of Content Blocks.
What is the potential impact of your idea for the overall goal?
The community will receive new major releases of Content Blocks 2.1.0 for TYPO3 v14 and 1.4.0 for TYPO3 v13.
The new feature will pave the way to stricter handling of configuration in Content Blocks.
How does your Idea align with the strategic goals for TYPO3 v14.
This aligns with Strategic Goal 3: “Enhance content creation experience”.
Which budget do we need for this idea?
10000 Euro
My Name
Nikita Hovratov