Skip to content

Repository files navigation

Tebako Website (tebako.org)

What this is

The public website for the tebako packaging and loading ecosystem: marketing pages, how-to guides, architecture documentation, reference material, and the blog.

Built with Astro 7 (static output), Tailwind CSS 4, and Vue islands for the interactive chrome (theme toggle, mobile menu, search, hero animation). Search is Pagefind, built after the static build.

Quick start

npm install
npm run dev        # http://localhost:4321
npm run build      # dist/ + Pagefind index
npm run preview    # serve the production build
npm run check      # astro check (types/templates)
npm test           # vitest — docs registry invariants

Layout

src/pages/

Routes. Top-level pages plus docs/architecture/ (24), docs/guides/ (13), docs/reference/ (home + planned stubs).

src/layouts/

BaseLayout.astro — head, nav, footer, theme script. DocsLayout.astro — docs page frame (breadcrumbs, numbering, section nav, prev/next), derived from the registry below.

src/config/site.ts

Single source for site metadata, top nav, footer links.

src/config/docs.ts

Single source for docs navigation: sections, order, labels, hrefs, and `live

planned` status. DocsLayout and DocsNav derive everything from it; tests/docs-registry.test.ts asserts its invariants against the filesystem.

src/components/

Astro components plus Vue islands and docs/, easter/ subdirectories.

src/styles/global.css

Theme tokens (paper/ink light + dark), prose and component styles.

_posts/*.adoc

Blog source — AsciiDoc, loaded by the custom content loader (src/content/loaders/adoc-loader.ts).

assets/

Blog imagery referenced by posts. Live content.

public/

Adding a documentation page

  1. Create an AsciiDoc entry at _docs/<section>/<slug>.adoc with frontmatter: title, description, optional heading and lede. The dynamic [slug].astro route renders it through DocsLayout automatically.

  2. Add one entry to the matching section in src/config/docs.ts.

That is the whole contract. npm test fails if the entry and the file disagree; navigation, numbering, breadcrumbs, and prev/next follow the registry automatically. Pages that are planned but unwritten carry status: 'planned' and an honest stub page — never a dead link.

Legacy remnants (read before cleaning)

The Jekyll era is fully retired: the theme hub, Ruby tooling files, and the old build outputs are gone. What remains from that era is intentional: _posts/ and assets/ are the live blog source and imagery, and _drafts/ holds unpublished posts held for release-time publication.

About

Official website for Tebako, the executable packager

Resources

Stars

2 stars

Watchers

2 watching

Forks

Releases

Packages

Used by

Contributors

Languages