Skip to main content

Writing Content & References

The body of a page is raw HTML plus a small reference syntax for linking pages and placing design-system components. RIFT resolves references at publish time — your source stays clean and your output stays static.

Raw HTML, unsanitized

RIFT does not sanitize, escape, or modify the code you enter — custom CSS, JavaScript, embeds, and web components all pass through verbatim. That's a deliberate trust decision: RIFT is built for expert authors, and every change is versioned and audit-logged rather than filtered. Paste from Word or Google Docs is optionally transformed into semantic HTML (a per-site setting); everything else ships exactly as written.

Link to another content item by identity, not by path:

<a href="{{cms:item/3c8c8d00-0e31-4698-b594-7752e67e98da}}">Request access</a>

At publish time this resolves to the target item's current URL on the site being published. If the target is later renamed, moved to another folder, or replaced by a new version through the public-edit flow, your link keeps resolving — RIFT follows the item's succession chain instead of leaving a dead href. The item picker in the editor inserts these references for you.

Placing components: ds:component

Drop a design-system component into a page with its slug and parameters, pipe-separated:

{{ds:component/alert|type=warning|heading=Review Required|message=This page has not passed review.}}

Parameters you supply override the component's declared defaults; omitted parameters fall back to those defaults. Component templates use plain slot substitution — a component's template is ordinary HTML with named slots, no template logic — which keeps rendering deterministic and inspectable.

Token values: ds:token

Reference a design token's raw value inline — useful inside style attributes or embedded CSS:

<div style="border-color: {{ds:token/color.primary}}">

Every save re-parses your body's references into a live link graph. Before you archive or replace a page, RIFT shows you exactly what points at it — so you find out before publishing, not from next month's broken-link report. A crawler also verifies the published site after each publish.

The AI authoring assistant

The assistant reads your existing pages, writes in your design system's components, and links naturally to content you've already published. It never touches the database directly: every proposal is presented as a reviewable diff — with a plain-language summary of what's added and removed — and nothing is applied without your explicit acceptance.