Curvea

Data and Content

@load Directive

The @load directive loads JSON data from src/data into the current template scope.

Basic usage

@load site

Loads:

src/data/site.json

Exposes:

{{ site.name }}

Alias usage

@load site as company

Exposes:

{{ company.name }}

Folder collection

@load posts

If src/data/posts is a folder, Curvea loads every .json file in that folder as an array.

Example:

@for post in posts
  <h2>{{ post.title }}</h2>
@end

Wildcard folder map

@load settings/* as settings

Loads every .json file inside:

src/data/settings

and exposes an object map.

Example files:

src/data/settings/nav.json
src/data/settings/footer.json

Template:

{{ settings.nav.title }}
{{ settings.footer.copyright }}

Error behavior

Invalid JSON throws an error.

Missing data sources also throw errors when explicitly loaded.