Content and blog

Pages, policies, articles, blog listings, and blog categories.

These pages list the exact data fields available to hosted Vascula themes. Add a root name such as product to a section's ctx_needs, then read it directly as product.title in the template. The ctx. prefix shown here identifies the public contract; do not include that prefix in a Vascula expression. Required fields are present whenever their containing object is present. Optional fields may be absent, and nullable fields may be present as null. [] marks an array item and {key} marks a key selected at runtime. Named types such as Price and Media are detailed on Shared data shapes.

ctx.page#

The routed published content page. Available on Page routes when declared in ctx_needs.

Field

Type

Requirement

ctx.page

Object

Declared root

ctx.page.content

HTML

Required

ctx.page.metafields

Metafields

Optional

ctx.page.seo_description

String or null

Required; may be null

ctx.page.seo_title

String or null

Required; may be null

ctx.page.slug

String

Required

ctx.page.title

String

Required

ctx.pages#

Bounded route-free index of published content pages for navigation surfaces. Loaded when a section declares it in ctx_needs.

Field

Type

Requirement

ctx.pages

Array of content index

Declared root

ctx.policy#

The routed published store policy. Available on Policy routes when declared in ctx_needs.

Field

Type

Requirement

ctx.policy

Object

Declared root

ctx.policy.content

HTML

Required

ctx.policy.seo_description

String or null

Required; may be null

ctx.policy.seo_title

String or null

Required; may be null

ctx.policy.slug

String

Required

ctx.policy.title

String

Required

ctx.policy.type

String

Required

ctx.policies#

Route-free index of published store policies for legal navigation. Loaded when a section declares it in ctx_needs.

Field

Type

Requirement

ctx.policies

Array of object

Declared root

ctx.policies[].id

String

Required

ctx.policies[].slug

String

Required

ctx.policies[].title

String

Required

ctx.policies[].type

String

Required

ctx.policies[].url

URL

Required

ctx.blog_post#

The routed blog article, author, categories, comments, and comment pagination. Available on Blog post routes when declared in ctx_needs.

Field

Type

Requirement

ctx.blog_post

Object

Declared root

ctx.blog_post.author

Object or null

Required; may be null

ctx.blog_post.author.avatar_url

String

Required

ctx.blog_post.author.bio

String

Required

ctx.blog_post.author.name

String

Required

ctx.blog_post.author.url

URL

Required

ctx.blog_post.author_name

String

Required

ctx.blog_post.categories

Array of object

Required

ctx.blog_post.categories[].name

String

Required

ctx.blog_post.categories[].slug

String

Required

ctx.blog_post.categories[].url

URL

Required

ctx.blog_post.comment_count

Integer

Required

ctx.blog_post.comment_submission_id

String

Required

ctx.blog_post.comments

Array of object

Required

ctx.blog_post.comments[].author_name

String

Required

ctx.blog_post.comments[].content

String

Required

ctx.blog_post.comments[].created_at

String

Required

ctx.blog_post.comments[].created_at_iso

Timestamp

Required

ctx.blog_post.comments[].id

String

Required

ctx.blog_post.comments_enabled

Boolean

Required

ctx.blog_post.comments_login_required

Boolean

Required

ctx.blog_post.comments_name_required

Boolean

Required

ctx.blog_post.comments_pagination

Object

Required

ctx.blog_post.comments_pagination.current_page

Integer

Required

ctx.blog_post.comments_pagination.has_next

Boolean

Required

ctx.blog_post.comments_pagination.has_prev

Boolean

Required

ctx.blog_post.comments_pagination.next_url

String

Required

ctx.blog_post.comments_pagination.prev_url

String

Required

ctx.blog_post.comments_pagination.total_count

Integer

Required

ctx.blog_post.comments_pagination.total_pages

Integer

Required

ctx.blog_post.comments_total

Integer

Required

ctx.blog_post.content

HTML

Required

ctx.blog_post.excerpt

String

Required

ctx.blog_post.featured_image

Object or null

Required; may be null

ctx.blog_post.featured_image.url

URL

Required

ctx.blog_post.feed_urls

Object

Required

ctx.blog_post.feed_urls.atom

URL

Required

ctx.blog_post.feed_urls.rss

URL

Required

ctx.blog_post.metafields

Metafields

Optional

ctx.blog_post.published_at

String

Required

ctx.blog_post.published_at_iso

Timestamp

Optional

ctx.blog_post.related_posts

Array of object

Required

ctx.blog_post.related_posts[].author

Object or null

Required; may be null

ctx.blog_post.related_posts[].author.avatar_url

String

Required

ctx.blog_post.related_posts[].author.bio

String

Required

ctx.blog_post.related_posts[].author.name

String

Required

ctx.blog_post.related_posts[].author.url

URL

Required

ctx.blog_post.related_posts[].author_name

String

Required

ctx.blog_post.related_posts[].categories

Array of object

Required

ctx.blog_post.related_posts[].categories[].name

String

Required

ctx.blog_post.related_posts[].categories[].slug

String

Required

ctx.blog_post.related_posts[].categories[].url

URL

Required

ctx.blog_post.related_posts[].comment_count

Integer

Required

ctx.blog_post.related_posts[].excerpt

String

Required

ctx.blog_post.related_posts[].featured_image

Object or null

Required; may be null

ctx.blog_post.related_posts[].featured_image.url

URL

Required

ctx.blog_post.related_posts[].published_at

String

Required

ctx.blog_post.related_posts[].published_at_iso

Timestamp

Optional

ctx.blog_post.related_posts[].slug

String

Required

ctx.blog_post.related_posts[].tags

Array of object

Required

ctx.blog_post.related_posts[].tags[].name

String

Required

ctx.blog_post.related_posts[].tags[].slug

String

Required

ctx.blog_post.related_posts[].tags[].url

URL

Required

ctx.blog_post.related_posts[].title

String

Required

ctx.blog_post.related_posts[].url

URL

Optional

ctx.blog_post.seo_description

String

Optional

ctx.blog_post.seo_title

String

Optional

ctx.blog_post.slug

String

Required

ctx.blog_post.tags

Array of object

Required

ctx.blog_post.tags[].name

String

Required

ctx.blog_post.tags[].slug

String

Required

ctx.blog_post.tags[].url

URL

Required

ctx.blog_post.title

String

Required

ctx.blog_post.updated_at_iso

Timestamp

Optional

ctx.blog#

The routed blog landing page and paginated article cards. Available on Blog routes when declared in ctx_needs.

Field

Type

Requirement

ctx.blog

Object

Declared root

ctx.blog.archives

Array of object

Required

ctx.blog.archives[].count

Integer

Required

ctx.blog.archives[].month

String

Required

ctx.blog.archives[].url

URL

Required

ctx.blog.feed_urls

Object

Required

ctx.blog.feed_urls.atom

URL

Required

ctx.blog.feed_urls.rss

URL

Required

ctx.blog.items

Array of object

Required

ctx.blog.items[].author

Object or null

Required; may be null

ctx.blog.items[].author.avatar_url

String

Required

ctx.blog.items[].author.bio

String

Required

ctx.blog.items[].author.name

String

Required

ctx.blog.items[].author.url

URL

Required

ctx.blog.items[].author_name

String

Required

ctx.blog.items[].categories

Array of object

Required

ctx.blog.items[].categories[].name

String

Required

ctx.blog.items[].categories[].slug

String

Required

ctx.blog.items[].categories[].url

URL

Required

ctx.blog.items[].comment_count

Integer

Required

ctx.blog.items[].excerpt

String

Required

ctx.blog.items[].featured_image

Object or null

Required; may be null

ctx.blog.items[].featured_image.url

URL

Required

ctx.blog.items[].published_at

String

Required

ctx.blog.items[].published_at_iso

Timestamp

Optional

ctx.blog.items[].slug

String

Required

ctx.blog.items[].tags

Array of object

Required

ctx.blog.items[].tags[].name

String

Required

ctx.blog.items[].tags[].slug

String

Required

ctx.blog.items[].tags[].url

URL

Required

ctx.blog.items[].title

String

Required

ctx.blog.items[].url

URL

Optional

ctx.blog.pagination

Pagination

Required

ctx.blog.search

Object

Required

ctx.blog.search.max_length

Integer

Required

ctx.blog.search.query

String

Required

ctx.blog.tag

String

Required

ctx.blog_recent#

A bounded route-free list of recent published article cards. Loaded when a section declares it in ctx_needs.

Field

Type

Requirement

ctx.blog_recent

Array of object

Declared root

ctx.blog_recent[].author

Object or null

Required; may be null

ctx.blog_recent[].author.avatar_url

String

Required

ctx.blog_recent[].author.bio

String

Required

ctx.blog_recent[].author.name

String

Required

ctx.blog_recent[].author.url

URL

Required

ctx.blog_recent[].author_name

String

Required

ctx.blog_recent[].categories

Array of object

Required

ctx.blog_recent[].categories[].name

String

Required

ctx.blog_recent[].categories[].slug

String

Required

ctx.blog_recent[].categories[].url

URL

Required

ctx.blog_recent[].comment_count

Integer

Required

ctx.blog_recent[].excerpt

String

Required

ctx.blog_recent[].featured_image

Object or null

Required; may be null

ctx.blog_recent[].featured_image.url

URL

Required

ctx.blog_recent[].published_at

String

Required

ctx.blog_recent[].published_at_iso

Timestamp

Optional

ctx.blog_recent[].slug

String

Required

ctx.blog_recent[].tags

Array of object

Required

ctx.blog_recent[].tags[].name

String

Required

ctx.blog_recent[].tags[].slug

String

Required

ctx.blog_recent[].tags[].url

URL

Required

ctx.blog_recent[].title

String

Required

ctx.blog_recent[].url

URL

Optional

ctx.blog_category#

The routed blog category metadata. The blog root carries its paginated article cards. Available on Blog category routes when declared in ctx_needs.

Field

Type

Requirement

ctx.blog_category

Object

Declared root

ctx.blog_category.description

String

Required

ctx.blog_category.metafields

Metafields

Optional

ctx.blog_category.name

String

Required

ctx.blog_category.post_count

Integer

Required

ctx.blog_category.seo_description

String

Required

ctx.blog_category.seo_title

String

Required

ctx.blog_category.slug

String

Required