On this page

Optional Docs

Create content/docs/_index.md:

+++
title = "Documentation"
sort_by = "weight"
template = "docs.html"
page_template = "doc-page.html"
+++

Register the root and add a header link in zola.toml:

[extra.devlab.collections.manual]
section = "docs/_index.md"

[extra.devlab.navigation]
links = [{ name = "Home", path = "/" }, { collection = "manual" }]

Create content/docs/install.md with a title and weight:

+++
title = "Installation"
weight = 1
+++

## Requirements

List the tools needed to install the project.

page_template applies to all descendant pages. A closer section or the page itself can override it. A nested section selects its own template. Pages follow weight order. Directories with _index.md form navigation groups. Docs navigation describes nested and curated trees.

Reading optionDefaultEffect when false
show_breadcrumbstrueRemoves the path above the article.
show_toctrueRemoves heading navigation.
show_paginationtrueRemoves Previous/Next links.

Set shared defaults in extra.devlab.docs, or set them on an individual collection. Collections explains local overrides.

Page provenance actions

[extra.devlab.docs.page_actions]
show_last_updated = true
show_copy_link = true
edit_url = "https://codeberg.org/acme/project/_edit/main/content/"
report_url = "https://codeberg.org/acme/project/issues/new"
date_format = "%Y-%m-%d"
FieldDefaultBehavior
show_last_updatedfalseShows the page's native updated date when present.
show_copy_linkfalseAdds Copy link when the browser Clipboard API is available.
edit_urlEmptyPrefix to which the source relative_path is appended, including a translated filename suffix.
report_urlEmptyComplete feedback URL, used unchanged.
date_format%Y-%m-%dFormat of the update date.

Use absolute HTTP(S) contribution URLs. Keep a trailing slash on edit_url and include the repository's content directory. Empty URLs hide the links. Copy link includes the current heading fragment. Edit appears beside the article on wide screens and below it on narrow screens, including when TOC is disabled.

Optional Blog

For the complete authoring and publication sequence, follow Create and publish a blog.

Create content/blog/_index.md:

+++
title = "Blog"
sort_by = "date"
paginate_by = 5
template = "blog.html"
page_template = "blog-page.html"
+++

Create a dated post, for example content/blog/first-post.md:

+++
title = "First post"
date = 2026-10-03
+++

Write the post here.

Add { name = "Blog", path = "/blog/" } to the existing navigation array. Omit paginate_by to list all posts on one page. A custom section path changes the route. Update the header link to match.

Field under extra.devlab.blogDefaultPurpose
date_format%d.%m.%YPublished and updated date format.
show_reading_timetrueShows Zola's estimate; a post can override it with extra.show_reading_time.
show_toctrueShows heading navigation beside or above the article.
show_paginationtrueShows Older/Newer links for posts in a sorted section.

Posts use native date and updated fields. extra.release adds a release badge. Author profiles use the authors taxonomy described in Blog authors. Feeds are configured separately in Publishing.