Skip to content

feat: add a documentation site (Astro + Starlight)#81

Open
OmarAlJarrah wants to merge 21 commits into
mainfrom
docs/astro-site
Open

feat: add a documentation site (Astro + Starlight)#81
OmarAlJarrah wants to merge 21 commits into
mainfrom
docs/astro-site

Conversation

@OmarAlJarrah

Copy link
Copy Markdown
Member

Summary

Adds a full documentation site for kuri, built with Astro 7 and Starlight, deployed to GitHub Pages:

  • Landing page, 14 guide pages (installation through security/contributing), and the normative spec rendered as its own page — restructured from the README/docs/SPEC.md rather than a straight copy.
  • A self-hosted, brand-themed API reference: Dokka's generated HTML gets a custom stylesheet and is served at /api/, replacing the previous plan to rely on javadoc.io.
  • An original theme stylesheet matching the dexpace brand's colors/fonts/radius — authored fresh for this project, with no dependency on or copy of any external private source.
  • .github/workflows/docs.yml: builds the Dokka reference and the Astro site, then deploys via the GitHub Actions Pages artifact method (no branch ever holds built output). Includes an astro check gate and an internal link checker.
  • The root README.md is trimmed to a concise overview + install snippet, pointing to the new site for everything else.

site/ is a fully independent bun-managed toolchain — it never touches ./gradlew build, ktlintCheck, or detekt.

Manual follow-up required

Before the deploy workflow's first run can succeed, a repo admin needs to set Settings → Pages → Build and deployment → Source to GitHub Actions (not "Deploy from a branch"). This is a one-time console setting; nothing in this PR can change it via the API.

Test plan

  • cd site && bun install && bun run build — builds all 17 routes (14 guides, landing, spec, plus sitemap/search index)
  • bun run check — passes with public/ excluded from type-checking (avoids an OOM against Dokka's copied JS assets)
  • ./gradlew :kuri:dokkaGeneratePublicationHtml — generates the themed API reference; verified the custom stylesheet is linked in the output
  • .github/workflows/docs.yml validated as well-formed YAML

Starlight's pathWithBase() always prepends the configured base (/kuri)
to sidebar link: values, so a link already containing that prefix
resolved to /kuri/kuri/api/ instead of /kuri/api/. Only surfaced now
that public/api/ has real content to click through to.
…rce guide

This page claimed a flat 80% line-coverage floor, matching the same wrong
figure fixed elsewhere in issue #91. The actual per-module Kover verify
rules are kuri and kuri-bind at 99% line (85% and 88% branch), and
kuri-serde-kotlinx at 90% line / 80% branch.
…alse

The comment said a newer push to main supersedes an in-flight deploy
rather than queueing behind it, but cancel-in-progress: false right
below it does the opposite: the in-flight run keeps going and a newer
run in the same pages group waits for it. That's the standard GitHub
Pages template setting, chosen deliberately so a production deploy
isn't interrupted midway. Reword the comment to describe what actually
happens instead of the reverse.

Closes #100
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant