Agent skill
kirby-routing-and-representations
Implements custom Kirby routes and content representations (.json/.xml/.rss), including redirects, sitemap endpoints, and URL pattern filtering. Use when building endpoints, redirects, or representation templates that change how URLs resolve.
Stars
163
Forks
31
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/data/kirby-routing-and-representations
SKILL.md
Kirby Routing and Representations
KB entry points
kirby://kb/scenarios/13-custom-routeskirby://kb/scenarios/21-filtering-via-routeskirby://kb/scenarios/49-sitemap-xml-routekirby://kb/scenarios/78-trailing-slash-and-canonical-urlskirby://kb/scenarios/02-json-content-representation-ajax-load-more
Required inputs
- URL pattern and HTTP methods.
- Response type and content language behavior.
- Redirect or canonicalization rules.
Decision guide
- Use content representations for page-backed JSON/XML/RSS.
- Use routes for non-page endpoints, redirects, or custom logic.
- Avoid greedy patterns that shadow representations.
Pattern hint
- Put specific routes before catch-alls; avoid top-level
(:all)when using representations.
Canonical redirect example
php
[
'pattern' => '(:any)/',
'action' => function ($path) {
return go('/' . trim($path, '/'), 301);
}
]
Common pitfalls
- Route patterns that shadow
.jsonor.rssrepresentations. - Expecting
kirby:kirby_render_pageto execute route logic.
Workflow
- Clarify the URL pattern, HTTP methods, response type, and language behavior.
- Call
kirby:kirby_initand readkirby://rootsto locate config and template roots. - Read
kirby://config/routesto understand current route configuration. - If runtime is available, call
kirby:kirby_routes_indexto see registered patterns; otherwise runkirby:kirby_runtime_statusandkirby:kirby_runtime_installfirst. - Inspect existing templates/controllers to avoid collisions:
kirby:kirby_templates_indexkirby:kirby_controllers_index
- For content representations, add
site/templates/<template>.<type>.phpand optionalsite/controllers/<template>.<type>.php. - For routes, add or adjust
routesinsite/config/config.phpor a plugin. Avoid greedy patterns that shadow.json/.rssrepresentations. - Validate output:
- use
kirby:kirby_render_page(contentType: json|xml|rss)for representations - manually hit route URLs for router behavior (render does not execute the router)
- use
- Search the KB with
kirby:kirby_search(examples: "custom routes", "json content representation", "filtering via routes", "sitemap.xml", "trailing slash").
Didn't find tool you were looking for?