Make and publish extensions. Developed by Anna Svensson.
Download ZIP file and copy it into your system/extensions folder. Learn more about extensions.
Start with an example feature or example theme for Datenstrom Yellow. It's best to have a look at the code of some extensions in your system/workers folder. Make yourself familiar with our coding style. Then you can dive into any extension and find a well-known structure in which you can quickly find your way around. For sophisticated extensions there's an API for developers. The extension settings are stored in file extension.ini. These extension settings contain information about all the files that should be installed. Do you want to make an extension? Create a new repository on Codeberg, GitHub or one of the many Git hosting platforms. Upload the necessary files and add the topic datenstrom-yellow to your repository.
You can improve your extension and show it to other people. This is a great way to get feedback and to experiment with features. Most extensions start as experimental with Status: experimental. Over time you get a better understanding of what people need and can improve experimental extensions. Good technology is made for people. Review your extension from the perspective of the user. Imagine what the user wants to do and what would make their life easier. Remember to focus on people. Not on technical details and lots of features. Do you want tips for improving your code and documentation? Ask the Datenstrom community, see contributing guidelines.
This step is only necessary for extensions on the official website with Status: available. It's optional for experimental extensions. Publishing primarily updates the extension settings and readme files. Publishing also informs the update mechanism that a new version of an extension is available. Keep in mind that only extensions available on the official website will be included in the update mechanism.
You can publish your extension at the command line. Make sure to complete the self-review checklist and increase the VERSION in the code before publishing an extension. Are you ready to publish your extension? Open a terminal window. Go to your installation folder, where the file yellow.php is. Type php yellow.php publish all. You can optionally add the name of a folder. This will update the necessary files. Upload your changes and create a pull request for the repository datenstrom/yellow.
Extension settings for a feature:
# Datenstrom Yellow extension settings
Extension: Example
Version: 0.9.2
Description: Example feature for Datenstrom Yellow.
Developer: Anna Svensson
Tag: example, feature
DownloadUrl: https://github.com/datenstrom/yellow-example/archive/refs/heads/main.zip
DocumentationUrl: https://github.com/datenstrom/yellow-example
Published: 2026-01-30 19:00:30
Status: experimental
system/workers/example.php: example.php, create, update
Extension settings for a language:
# Datenstrom Yellow extension settings
Extension: English
Version: 0.9.5
Description: English language.
Translator: Mark Seuffert
Tag: language
DownloadUrl: https://github.com/annaesvensson/yellow-language/raw/main/downloads/english.zip
DocumentationUrl: https://github.com/annaesvensson/yellow-language/tree/main/translations/english
Published: 2025-12-19 01:21:34
Status: available
system/workers/english.php: english.php, create, update
Extension settings for a theme:
# Datenstrom Yellow extension settings
Extension: Stockholm
Version: 0.9.5
Description: Stockholm is a clean theme.
Designer: Anna Svensson
Tag: example, theme
DownloadUrl: https://github.com/annaesvensson/yellow-stockholm/archive/refs/heads/main.zip
DocumentationUrl: https://github.com/annaesvensson/yellow-stockholm
DocumentationLanguage: en, de, sv
Published: 2025-10-02 00:07:19
Status: available
system/workers/stockholm.php: stockholm.php, create, update
system/themes/stockholm.css: stockholm.css, create, update, careful
system/themes/stockholm.png: stockholm.png, create
system/themes/stockholm-opensans-bold.woff: stockholm-opensans-bold.woff, create, update, careful
system/themes/stockholm-opensans-light.woff: stockholm-opensans-light.woff, create, update, careful
system/themes/stockholm-opensans-regular.woff: stockholm-opensans-regular.woff, create, update, careful
Showing available folders at the command line:
php yellow.php publish
Publishing all folders at the command line:
php yellow.php publish all
Publishing extensions at the command line:
php yellow.php publish yellow-example
php yellow.php publish yellow-language
php yellow.php publish yellow-stockholm
The following settings can be configured in file system/extensions/yellow-system.ini:
PublishCodeDirectory = directory with code of published extensions
PublishWebsiteDirectory = directory with files of the official website
The following settings can be configured in file extension.ini:
Extension = extension name
Version = extension version number
Description = extension description, one short sentence
Developer = responsible developer(s) of a feature, comma separated
Designer = responsible designer(s) of a theme, comma separated
Translator = responsible translator(s) of a language, comma separated
Tag = extension tag(s) for categorisation, comma separated
DownloadUrl = extension download address
DocumentationUrl = extension documentation
DocumentationLanguage = extension documentation language(s), comma separated
Published = extension publication date, YYYY-MM-DD format
Status = extension status, supported status values
The following extension status values are supported:
experimental = extension is experimental, use at your own risk
available = extension is available and shown on the official website
unmaintained = extension is no longer maintained
unassembled = extension is assembled by toolchain
The following file actions are supported:
create = create file if not exists
update = overwrite file if exists
delete = delete file if exists
optional = only for first installation
additional = only after first installation
careful = only if not modified
compress = make ZIP file from specified directory
multi-language = use content file from corresponding directory
Do you have questions? Get help.
