sylvainallignol / humans
A Kirby plugin that generates a humans.txt file from a route
Package info
codeberg.org/SylvainAllignol/kirby-humans
Type:kirby-plugin
pkg:composer/sylvainallignol/humans
Requires
- php: >=8.2
- getkirby/cms: ^3.0 || ^4.0 || ^5.0
- getkirby/composer-installer: ^1.1
README
A Kirby CMS plugin to automatically generate a humans.txt file following the humanstxt.org standard. Manage your site's team, technologies, and credits in a simple configuration.
Features
- Automatic
/humans.txtroute generation - Automatic "last modified" date tracking
- Flexible configuration system with closures support
- Clean, human-readable output following the humanstxt.org format
- Browser cache: the generated file is cached for 24 hours via
Cache-ControlandExpires. - Works seamlessly with Kirby 3.x, 4.x, 5.x
Installation
Choose one of the following installation methods:
Via Composer (recommended)
composer require sylvainallignol/humans
Manual Installation
- Download the plugin
- Extract and copy the folder to
site/plugins/ - Rename the folder to
kirby-humans
Quick Start
1. Access the generated file
After installation, your humans.txt file is automatically available at:
https://example.com/humans.txt
2. Add the meta tag (optional)
Include the meta tag in your site's header template:
<?php snippet('humans-meta') ?>
This outputs:
<meta content="https://example.com/humans.txt" rel="author" type="text/plain">
3. Default behavior
If no configuration is provided, the plugin generates a default file with:
- Kirby CMS version information
- Last site modification date (auto-tracked)
- A thank you message to Kirby
Configuration
Configure the plugin in your site/config/config.php file:
Exemple
return [
'sylvainallignol.humans' => [
// Team members section
'TEAM' => [
[
'Name' => 'John Doe',
'Job' => 'Designer',
'Email' => 'john [at] example.com',
'Website' => 'https://johndoe.com',
'Github' => 'johndoe'
],
[
'Name' => 'Jane Smith',
'Job' => 'Developer',
'Email' => 'jane [at] example.com',
'Website' => 'https://janesmith.com',
'Github' => 'janesmith'
]
],
// Site information
'SITE' => [
'Standards' => 'HTML5, CSS3',
'Components' => 'Kirby CMS, PHP'
],
// Acknowledgments
'THANKS' => 'Kirby CMS (https://getkirby.com)',
// Technologies used
'TECHNOLOGIES' => 'PHP, JavaScript, CSS3',
// Custom content-only section (using numeric key)
'Custom footer text here'
]
];
Helper Functions
snippet('humans-meta')
Automatically generates the humans.txt meta tag for your template.
lastModified($dateFormat)
The plugin provides a helper function lastModified($dateFormat):
lastModified('MMMM dd Y');
// returns february 8 2026
Use it in your config to dynamically populate the “Last Modified” field.
The lastModified value is cached and updated on page.update::after and page.delete::after
Generated Output
The plugin generates a file following the humanstxt.org standard format:
/* TEAM */
Name: John Doe
Job: Designer
Email: john [at] example.com
Website: https://johndoe.com
Github: johndoe
Name: Jane Smith
Job: Developer
Email: jane [at] example.com
Website: https://janesmith.com
Github: janesmith
/* SITE */
Standards: HTML5, CSS3
Components: Kirby CMS, PHP
/* THANKS */
Kirby CMS (https://getkirby.com)
/* TECHNOLOGIES */
PHP, JavaScript, CSS3
Custom footer text here
Output formatting rules
- Section headers are wrapped in
/* SECTION_NAME */comments - Key-value pairs are indented with a tab and separated by
: - String values are indented and displayed as-is
- Empty sections are automatically removed