+++ 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:
hello world — markdown and syntax highlighting
templates and sections — how zola templates work
shortcodes — reusable template snippets
about page — how this site works
why this matters
no broken links — the build fails if a target doesn't exist
refactoring-safe — rename a file, update the
@/path, doneno 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).