Curvea

Core Concepts

Page Object

The page object contains data about the current page.

It can include user-provided page data, Markdown frontmatter, content metadata, and structural route metadata.

Structural metadata

Curvea Engine adds these structural fields:

{{ page.route }}
{{ page.slug }}
{{ page.id }}

page.route

The public route beginning with /.

Examples:

/
/about
/blog/my-post

page.slug

The slug value.

For dynamic routes, this can come from the route parameter.

For static routes, it is usually the normalized route path.

Important: page.slug is not always only the final URL segment.

page.id

A normalized page identifier generated from the route.

Examples:

/           -> home
/about      -> about
/blog/post  -> blog-post

Markdown page fields

Markdown content pages may include:

{{ page.title }}
{{ page.description }}
{{ page.image }}
{{ page.content }}
{{ page.readingTime }}
{{ page.collection }}
{{ page.previous.route }}
{{ page.next.route }}

Content index pages

Collection index pages expose:

{{ collection.name }}

and:

collection.items

through loop usage:

@for item in collection.items
  <a href="{{ item.route }}">{{ item.title }}</a>
@end

Reserved globals

CurrentYear is a reserved engine global provided by the Curvea Engine runtime.

It is injected at runtime and cannot be overridden by page data, shared data, or local variables.