Skip to content
Quilium Docs
Back to site
Reference

Built-in partials and helpers

What the engine actually ships, the helper filters, versus the partial files you write yourself by convention in your site repo.

There is no Quilium-shipped partial library. The engine ships only function-form helpers, which in Liquid you use as filters. Files such as _contents, _localeUrl, _header, and _footer are project conventions you write in your own site repo, not engine built-ins. Quilium does not inject or auto-resolve them.

Engine helpers

The engine ships exactly these helpers. In Liquid you call them as filters, not as functions; the function forms in the render payload are inert (see Variables and context). Each is documented with its signature in Liquid filters.

Helper Filter form Role
_ (alias t) 'msgid' | _ i18n translate.
url 'route' | url: param: item Resolve a named route, locale-aware.
redirect url | redirect: code Set Location + status.
responseCode code | responseCode Set the response status.
setCookie key | setCookie: value, {opts} Emit Set-Cookie.

That is the entire shipped surface. The engine does not provide a _contents block dispatcher, a _header, a card partial, or any other template. Those are yours to write.

Project-convention partials (you write these)

The partials below are common conventions, files you create in your own site repo, not anything Quilium ships. The names come from the fil-rouge reference site; nothing forces them. They are included by name with include (not render), so they share the caller's scope and also receive the params you pass.

Convention file Typical params What it does (when you write it)
_contents.liquid section: page.contents['main'] Block dispatcher: loops a section, resolves each block's content.template, and {% include %}s it.
_localeUrl.liquid path: '/newsletter' Prepends /{{locale.slug}} to a leading-slash path. Not for already-locale-aware URLs.
_localeAltUrl.liquid loc: loc This page's URL in another locale; sanitises serialised route params.
_header.liquid, _footer.liquid various Site chrome.
_articleCard.liquid, _articleMeta.liquid, _errMsg.liquid, _langSwitcher.liquid, _rubLabel.liquid, _mediaTextBody.liquid various Reusable fragments.

A typical block dispatcher you might write, making the elements/ prefix idempotent:

{%- for content in section -%}
  {%- if content.template != blank -%}
    {%- assign _file = content.template | replace: 'elements/', '' | prepend: 'elements/' -%}
    {% include _file %}
  {%- endif -%}
{%- endfor -%}

Called as:

{% include '_contents', section: page.contents['main'] %}
include shares scope, so variables leak. A variable set inside a partial stays visible to later includes on the same page. Pass every per-call input explicitly on every include (e.g. always pass variant: '' or variant: 'dark'); never rely on a prior include having set it.
Placeholder: confirm whether the engine ever auto-injects a template (e.g. a default layout or error view) without an explicit include/layout. Resolved against the CLI renderer (quilium-cli/src/liquid.js): it registers only filters and tags and renders the requested view file; no partial is auto-injected. Re-confirm against the production frontend rendering source before publishing.

Last updated September 6, 2026.