_includes Directory Organization¶
This directory has been reorganized for better maintainability and clarity. Files are now grouped by functionality into subdirectories.
Directory Structure¶
core/¶
Essential layout components that form the foundation of the site:
head.html- HTML document head with meta tags, scripts, and stylesfavicon.html- Favicon / browser-identity tags (icon links, apple-touch, manifest, scheme-aware theme-color) driven by the optionalfavicon:config block; the theme-color tags are emitted even with no configheader.html- Main site header with navigationfooter.html- Site footer (if exists)branding.html- Site branding and title displayi18n.html- Resolves the per-page-language UI-string set into theuivariable (generated translations fall back to English)hreflang.html-<link rel="alternate" hreflang>tags for pages with machine-generated translations
navigation/¶
All navigation-related components:
navbar.html- Main navigation menusidebar-left.html- Left sidebar panel (offcanvas shell around the resolved nav)sidebar-config.html- Resolves the effective sidebar mode/title/icon (page → collection → site); shared by layout, header, sidebar, and drawersidebar-nav.html- Renders the resolved sidebar mode (dispatches to the includes below)sidebar-right.html- Right sidebar contentsidebar-folders.html- "collection" mode: collapsible folder tree of a collection's documentssidebar-categories.html- "categories"/"tags" modes: posts grouped by taxonomy termnav_list.html- Manual navigation list renderingbreadcrumbs.html- Navigation breadcrumbs
analytics/¶
Analytics and tracking integrations:
google-analytics.html- Google Analytics trackinggoogle-tag-manager-head.html- GTM head section (emits nothing unlessgoogle_tag_manager:is set in_config.yml)google-tag-manager-body.html- GTM body section (same config gate)
components/¶
Reusable UI components and widgets:
searchbar.html- Deprecated search stub (superseded bysearch-modal.html)language-toggle.html- Switches between the English original and its machine-generated translations. Two variants:panel(shipped, inside the Settings offcanvas) and the default navbar dropdown (icon-only trigger, ≤220px menu, every row a live link)translation-notice.html- Disclosure banner on machine-translated pages linking back to the English originalpowered-by.html- "Powered by" credits displayquick-index.html- Quick page indexdev-shortcuts.html- Developer shortcutsinfo-section.html- Settings offcanvas (Appearance / Site / Developer tabs)admin-links.html- Cached admin quick links for the settings offcanvashalfmoon.html- Light/dark/auto color-mode segmented controlzer0-env-var.html- Environment variable configurationsvg.html- SVG icon definitionsjs-cdn.html- CDN JavaScript librariespreview-image.html- Consistent preview image rendering with lazy loadingbackground-image.html- Cover art painted as a CSS background, announced correctly:role="img"+aria-labelfor a real image,aria-hiddenwhen decorative. Sibling topreview-image.html(which covers the<img>-in-flow case)post-card.html- Reusable post card component for listingspage-views.html- Inline "N views" badge for a page (hidden until a count is known)page-views-init.html- Page-view counter bootstrap: injectssite.page_viewsconfig and loadsassets/js/page-views.js(included once fromcore/head.html)mermaid.html- Mermaid loader for pages withmermaid: true(included fromcore/head.html): injectssite.mermaidconfig + translated toolbar labels and loads the vendored bundle andassets/js/mermaid-diagrams.js, both deferred. Every```mermaidfence becomes a figure with a zoom / fullscreen / copy / download toolbar, anaccTitlecaption, token-derived colours, and an error card that keeps the sourcedata-card.html- One generic card rendered from a plain data hash (title/url/icon/badge/meta/buttons schema in its header)card-grid.html- Responsive grid ofdata-cards from any data array — hub dashboards, fleet registries, service gridsbookshelf.html- Grid of every book in thebookscollection (home-page library)book-card.html- One book's portrait cover card (bookshelf tile)book-toc.html- Ordered story/chapter list for one bookbook-nav.html- Prev/next-story + contents navigation inside a bookbook-plate.html- Full-width illustration figure with optional caption for story pagesrecipe-index.html- Grid of every recipe in therecipescollection, grouped into course sectionsrecipe-card.html- One recipe's index card (photo, total time, yield, difficulty)recipe-meta.html- Fact bar: prep/cook/rest/total time, yield, difficulty, cuisine, ovenrecipe-scaler.html- Serving-scaling + US/metric unit controls for a recipe pagerecipe-ingredients.html- Grouped ingredient checklist with scalable, convertible amountsrecipe-steps.html- Numbered method with per-step timings, temperatures, and photosrecipe-ratio.html- Baker's-percentage table — every ingredient as a share of one reference ingredientrecipe-nutrition.html- Per-serving nutrition panel (schema.org NutritionInformation)recipe-qty.html- One scalable, convertible quantity (the atom the recipe components share)recipe-temp.html- A temperature that follows the reader's unit choicerecipe-grams.html- Value resolver: quantity + unit + density → grams (build-time, for ratios)recipe-duration.html- Value resolver: minutes → "1 hr 30 min" or ISO 8601PT1H30M
content/¶
Content-specific features and enhancements:
seo.html- SEO meta tags and structured datatoc.html- Table of contents generationgiscus.html- GitHub Discussions comment systemintro.html- Page introduction sectionsitemap.html- Sitemap generation
landing/¶
Landing page specific components:
landing-install-cards.html- Installation method cardslanding-quick-links.html- Quick links bar
docs/¶
Documentation and reference materials:
bootstrap-docs.html- Bootstrap documentation (moved from style.html)
setup/ — the Site Builder¶
The guided, Claude-assisted setup wizard rendered at /setup/ and on the welcome layout:
wizard.html- Nine-step Site Builder (connect → prerequisites → identity → URLs → structure → appearance → voice → integrations → build) with a stepper, the step panes, a sticky side column and the JSON blocks both scripts read (#siteBuilderData,#siteBuilderConfig). Drivesassets/js/setup-wizard.js(form, generators, drafts) andassets/js/site-builder.js(Claude session)prereq-checklist.html- Prerequisites step: one row per tool from_data/site_builder.yml, per-OS install + verify commands, manual "done" toggles, live check state from the dev proxyclaude-session.html- The embedded Claude panel: connection badge, transcript, per-step suggested prompts, composer. Proxy-only; renders a connect prompt until the dev proxy answers
custom/ — consumer extension hooks¶
Empty stubs the theme includes at fixed points in the page chrome. A consumer site creates a file at the same path to inject markup there — no fork of root.html, head.html, or footer.html needed, so theme updates keep flowing without merge drift:
custom/head.html- end of<head>(JSON-LD, font preloads, verification tags, extra meta)custom/body-start.html- immediately after<body>(e.g. GTM<noscript>)custom/footer.html- after the theme footer, before the cookie-consent bannercustom/body-end.html- last thing before</body>(site scripts, third-party widgets)
The stubs ship empty (comment-only) and render nothing until shadowed.
Usage¶
When including files in layouts or other templates, use the full path:
{% include core/head.html %}
{% include navigation/sidebar-left.html %}
{% include components/search-modal.html %}
{% include analytics/google-analytics.html %}
Benefits of This Organization¶
- Logical Grouping: Related functionality is grouped together
- Easier Maintenance: Finding and editing specific components is simpler
- Reduced Conflicts: Clear separation reduces naming conflicts
- Better Documentation: Each directory has a clear purpose
- Scalability: Easy to add new components to appropriate directories
Migration Notes¶
- All include paths in layouts have been updated to reflect the new structure
- The duplicate
tocfile has been removed - Large Bootstrap documentation moved to
docs/directory - No functionality has been changed, only organization