File types
How the build treats .c.html, .t.html, static/, and folders that start with _.
.c.html (coupled file)
YAML frontmatter between ---, then HTML. The file can contain <style> and <script>; use attributes like mount, serve, bundle, destination on those tags.
- TYPE: page — Treated as a page. The file path under
src/becomes a URL underdist/(e.g.src/docs/foo.c.html→dist/docs/foo.html). Pages require aTEMPLATE:in frontmatter. - TYPE: component — Not a page. No URL. The file only fills mount slots that pages or the template reference via
{{MOUNT.slotName}}or{{MOUNT.slotName:var}}. Components can include other components.
You can use components in a template (e.g. {{MOUNT.nav}}) or in a page body ({{MOUNT.hero:heroTitle}}). Each page specifies which template it uses in frontmatter.
--- title: About TYPE: page MOUNT: content TEMPLATE: _templates/layout.t.html --- <p>Page body goes here.</p>
--- TYPE: component MOUNT: nav --- <nav><a href="/coupled-docs/">Home</a></nav>
.t.html (template)
An HTML skeleton with placeholders like {{title}} and {{MOUNT.slotName}}. Templates are not emitted as their own page. Each page chooses a template in frontmatter with TEMPLATE: layout.t.html or TEMPLATE: _templates/layout.t.html. The build runs each page through that template and outputs one HTML file per page.
Any number of pages can use the same template. Put templates in _templates/ (or anywhere) and reference by path.
<!DOCTYPE html>
<html>
<head>
<title>{{title}}</title>
{{MOUNT.head}}
</head>
<body>
{{MOUNT.nav}}
<main>{{MOUNT.content}}</main>
{{MOUNT.body}}
</body>
</html>src/static/
Copied as-is to dist/static/. Put images, fonts, or global assets here. Link to them from the template or from pages (e.g. /static/logo.png). The build does not process file contents — it only copies.
<img src="/coupled-docs/static/logo.png" alt="Logo"> <link rel="stylesheet" href="/coupled-docs/static/fonts.css">
Folders starting with _
That path segment is omitted in dist/. For example src/_stuff/foo.c.html becomes dist/foo.html (not dist/_stuff/foo.html). Use _ for shared layouts, components, or any directory you do not want in the output URL path.
Common: src/_templates/, src/_components/. Files inside still produce output if they are pages; only the _ segment is stripped from the path.
src/_components/nav.c.html → (component, no URL) src/_templates/docs.t.html → (template, not emitted) src/docs/file-types.c.html → dist/docs/file-types.html