Skip to content
Tartarus

Templates

The project layout and what each template is responsible for.

On this page

Project structure

text
tartarus/
├── assets/
│   ├── css/
│   │   ├── main.css          design tokens + components
│   │   └── chroma.css        generated syntax colours
│   └── js/
│       ├── main.js           Alpine bootstrap
│       ├── theme-init.js     inline, runs before paint
│       ├── theme.js          light/dark/system store
│       ├── search.js         command palette
│       ├── pagefind.js       lazy loader for the index
│       ├── toc.js            IntersectionObserver scroll spy
│       └── ui.js             copy button, tabs, drawer
├── content/docs/
├── layouts/
│   ├── baseof.html
│   ├── home.html
│   ├── single.html
│   ├── list.html
│   ├── 404.html
│   ├── _markup/              render hooks
│   ├── partials/
│   └── shortcodes/
├── scripts/gen-chroma.sh
├── hugo.toml
└── package.json

Layouts

TemplateRenders
baseof.htmlDocument shell, navbar, footer, dialogs
home.htmlLanding page
single.htmlA documentation page
list.htmlA section overview
404.htmlNot-found page

single.html and list.html are one line each — both delegate to partials/docs-layout.html, which owns the three-pane layout.

Partials

PartialResponsibility
head.htmlMetadata, asset pipeline, theme bootstrap
head-extra.htmlEmpty by design — your extension point
navbar.htmlLogo, menu, search trigger, social, theme control
sidebar.htmlResolves the section to render
sidebar-tree.htmlRecursive navigation tree
toc.htmlTable of contents from heading fragments
breadcrumb.htmlAncestor trail
pagination.htmlPrevious/next in reading order
docs-order.htmlFlattens a section into reading order
edit-link.htmlRepository edit URL
search.htmlSearch dialog
mobile-nav.htmlNavigation drawer
theme-toggle.htmlTheme dropdown
child-pages.htmlSection index cards
icon.htmlSVG icon wrapper

Render hooks

HookAdds
render-heading.htmlid and an anchor link
render-codeblock.htmlLanguage label, copy button, Chroma highlighting
render-link.htmltarget="_blank" and an icon for external links
render-image.htmlPage-resource resolution and lazy loading

JavaScript boundaries

Alpine components are registered in main.js and stay small:

ComponentState
ttSearchQuery, results, selected index
ttTabsActive tab
ttCopyCopied flag
ttDrawerShow/hide the drawer
$store.themeTheme mode

Anything that can be computed at build time is not in this table.

Searching…

No results for “

Type to search the documentation.