Apr 19, 2026 1.5 KB markdown

+++ title = "internal links and references" date = 2026-04-17 description = "linking between pages with compile-time validation" [taxonomies] tags = ["zola", "demo"] +++

zola has a built-in internal linking system that validates links at build time. if you link to a page that doesn't exist, the build fails — no broken links in production.

syntax

use @/ prefix to reference content files by their path:

check out the [hello world](@/posts/hello-world.md) post.

this resolves to the correct permalink at build time, so URLs stay valid even if you change your URL structure.

cross-references

here are links to other posts on this site:

why this matters

  • no broken links — the build fails if a target doesn't exist

  • refactoring-safe — rename a file, update the @/ path, done

  • no hardcoded URLs — works across environments (dev, staging, prod)

summary separator

zola supports a <!-- more --> marker to split content into summary and body. the text before the marker becomes page.summary, useful for post previews in listings.

everything below this line is only visible on the full page, not in post listings (if the template uses page.summary).