{% extends layout %} {% import '_layout/icons.twig' as icons %} {% block title %}A Second Post{% endblock %} {% block description %}A second post at its own URL, showing that adding a new page under App/pages/blog/ needs nothing but a new directory.{% endblock %} {% block robots %}index, follow{% endblock %} {% block tags %}meta{% endblock %} {% block canonical %}{{ request_path|default('/') }}{% endblock %} {% block og_type %}article{% endblock %} {% block og_title %}{{ block('title') }}{% endblock %} {% block og_description %}{{ block('description') }}{% endblock %} {% block og_url %}{{ block('canonical') }}{% endblock %} {% block twitter_card %}summary{% endblock %} {% block twitter_title %}{{ block('title') }}{% endblock %} {% block twitter_description %}{{ block('description') }}{% endblock %} {% block blog_content %}
A second post at its own URL — App/pages/blog/second-post/index.twig. Just another plain, sidecar-less directory under App/pages/blog/, same as {{ icons.book() }}Hello, World! next to it. Adding a new post is nothing more than a new directory with an index.twig — no route to register, no repository entry to add.
Both posts are listed on {{ icons.book() }}the blog index, built by App/pages/blog/index.php — see {{ icons.link() }}Routing for how a URL maps to a directory in the first place.