Zorto does not have a special β€œblog” feature. Instead, its section system naturally handles any date-ordered content: blog posts, changelogs, event listings, release notes, newsletters. If it has a date and belongs in a list, it is a section.

The pattern #

A section is a directory with an _index.md file. Every markdown file in that directory becomes a page in the section. The section’s frontmatter controls sorting and pagination, while each page’s frontmatter provides its metadata.

πŸ“‚content/posts/
β”œβ”€β”€ πŸ“_index.mdsection: sort_by=date, paginate_by=10
β”œβ”€β”€ πŸ“first-post.mdpage with date, title, tags
β”œβ”€β”€ πŸ“second-post.mdpage
β”œβ”€β”€ πŸ“‚announcing-v2/
Β Β Β Β β”œβ”€β”€ πŸ“index.mdpage with co-located assets
Β Β Β Β β”œβ”€β”€ πŸ“screenshot.png

A blog is just a section. No special blog feature β€” just the content model.

This is the same content model used everywhere in Zorto β€” there is no blog-specific configuration or special directory name. A section called posts/, blog/, news/, or changelog/ all work identically.

Consequence: one model for everything #

Because blogs are just sections, everything you learn about the content model applies directly. Sorting, pagination, taxonomies, co-located assets, internal links, custom templates β€” they all work the same way whether you are building a blog, a docs site, or both.

This also means you can have multiple blog-like sections on one site. A /posts/ for articles and a /changelog/ for release notes, each with their own sorting and pagination, coexist naturally.

Taxonomies tie sections together #

Tags and categories work across sections. Define taxonomies in your config, assign terms in page frontmatter, and Zorto generates listing pages for each term automatically. A tag page at /tags/rust/ lists every page tagged β€œrust” regardless of which section it lives in.

Summaries #

Use <!-- more --> in a post to mark where the summary ends. Everything above it appears on listing pages; the full content appears on the post’s own page.

Feeds #

When generate_feed = true in your config, Zorto generates an Atom feed. Pages need a date in their frontmatter to appear in the feed. Pages without dates are silently excluded.

Further reading #