Meridian handbook
For agentsRecipes

Recipes

Complete, checked examples of the tasks an agent meets most when building a Meridian site, from adding a content type to a DMO directory, a partner portal and an extension, each with the commands, the files and how to verify them.

Each recipe is a complete change: the commands to run, every file to write, and how to prove it works. Every configuration and template snippet on these pages has passed engine-dmo check in a scratch project, and those that render without a running server were rendered with engine-dmo render.

The core recipes continue one example, a walking site started with engine-dmo init: a walk type with a distance, a difficulty, a photo and a route description, routed at /walks/{slug} with an index at /walks. The DMO recipes start from a project with the core listing and area types. Replace the names with your own.

RecipeUse it to
Add a content typeCreate a custom type with its fields
Add a fieldAdd, change, rename or remove a field, including selects and relations
Add a route and its templateGive a type addresses and pages
Listing page with filters and paginationAn index page with facets, a count, cards and a pager
Navigation menuHeader and footer menus editors can change
Responsive imagesImage transforms, img(), figure(), credits and seeded photographs
Enquiry formA contact form that stores and mails submissions
Multilingual siteA second locale with its own paths, strings and translations
Search pageA search route and its template
DMO directoryListings with areas, categories, place facets and a map
Partner portalTiers, member editing rules, a portal screen and an invitation
Landing pagesPlace and category pages at clean addresses
ClaimsA “this is my business” link on a listing, and seeding what it needs
ExtensionA template filter written in Go, when templates cannot do it

Before each recipe, run engine-dmo guide to see the project as it is, and after it, follow the loop: engine-dmo check, engine-dmo schema plan, engine-dmo schema apply, engine-dmo render <path> --json.