Skip to content

feat!: ak v4 doc updates#574

Draft
lempira wants to merge 234 commits intomainfrom
release/ak-v4
Draft

feat!: ak v4 doc updates#574
lempira wants to merge 234 commits intomainfrom
release/ak-v4

Conversation

@lempira
Copy link
Copy Markdown

@lempira lempira commented Mar 4, 2026

No description provided.

Reorganize import configs into per-library directories with unified
metadata, language variants, and version declarations. Each library
gets a single .import.ts file containing both UI metadata and import
configuration — the single source of truth per library.

New files:
- imports/types.ts: Shared types (LibraryMetadata, VariantImportConfig,
  LibraryImportConfig)
- imports/configs/{lib}/{lib}.import.ts: Per-library configs (6 libraries)
- imports/configs/index.ts: Barrel exporting REMOTE_CONTENT and LIBRARY_CONFIGS
- src/config/libraries.ts: Registry builder + URL parsing/building helpers
- src/config/lang-icons.ts: Language icon definitions for library badges

Modified:
- src/content/config.ts: Imports REMOTE_CONTENT from new barrel
- scripts/clean-docs-import.ts: Updated for new barrel shape
- package.json: Point @larkiny/astro-github-loader to local fork

Deleted: 5 old flat config files (moved to per-library directories)
…-config-system

DVP-1187: Add library configuration system
Library logos: cli, liquidauth, nodekit, rest, subscriber, tui, utils
Language logos: algorand-python, algorand-typescript, go, py, python, ts, typescript
UI: thinking

Pure static assets — no code changes.
- Add github-script step to post/update Cloudflare preview URL as a
  PR comment (find-and-update pattern avoids comment spam)
- Remove unnecessary "Capture PR Information" step that used
  deprecated ::set-output syntax
- Reference PR context directly in Slack step instead of via
  intermediate outputs
- Fix PR title JSON injection risk with toJSON() in Slack payload
The lint and build acceptance checks were not running for PRs
targeting refactor/library-enablement because it wasn't in the
pull_request.branches list.
…-svg-assets

DVP-1188: Add library and language SVG logo assets
OpcodeFilters.astro:
- Replace DOMContentLoaded with astro:page-load so filters
  re-initialize on client-side navigations
- Add null guard for pages without opcode filter elements
- Clear dynamic <option> elements before rebuilding to prevent
  duplicates on re-navigation

DropDown.astro:
- Replace throw with soft guard for pages without this dropdown
- Add AbortController to window click listener to prevent
  listener accumulation across client-side navigations

Both changes are backward-compatible: astro:page-load fires on
initial load identically to DOMContentLoaded, and AbortController
is a no-op when the script only runs once.
…script-fixes

DVP-1189: Fix inline scripts for View Transition compatibility
Port sidebar component override and library navigation from experimental
branch. Sidebar.astro gates on getLibraryFromPath() to branch between:
- Library pages: LibraryDocsSidebar with language/version selectors
- Main pages: LibraryPicker dropdown + default Starlight sidebar

Components degrade gracefully — sidebar nav is empty until PR 2.5
populates library.sidebar entries. LibrarySwitcher available for Header
integration in PR 2.2.
SiteTitle now detects library pages via getLibraryFromPath() and swaps
the site logo for the library-specific SVG. The logo href also points
to the library root on library pages. Footer rendering is unaffected.

Header.astro is intentionally unchanged — Starlight's <Default> renders
our overridden SiteTitle automatically, so no Header replacement needed.
…-sidebar-components

feat(DVP-1190): Add library sidebar and navigation components
- Move library logo map from hardcoded SiteTitle imports to
  imports/configs/library-logos.ts (alongside other library configs)
- Remove stale ./imports exclusion from tsconfig (repos/ no longer exists)
- Update @larkiny/astro-github-loader to 0.12.0 (exports VersionConfig)
- Add @types/picomatch dev dependency (surfaced by tsconfig fix)
- Fix logo dimension mismatch: use library logo's own width/height when
  active instead of site logo dimensions that could distort the SVG
- Add LibrarySlug union type and use satisfies for compile-time safety:
  missing a logo entry for a new library now causes a type error
- Improve comments: logo fallback priority, footer guard, @ts-expect-error
- Fix JSDoc accuracy in library-logos.ts
These optional fields allow the GitHub loader to tag imported docs with
their source library and version, enabling components to determine
virtual collection membership at render time.
Strip version entries that have no backing content. Each variant imports
from a single branch ref, so only 'latest' is valid until repos adopt
the docs-dist versioned workflow.
Adds a /docs/ landing page with library cards grouped by category.
The LibraryIndex component is fully config-driven — it pulls metadata,
logos, and categories from the config system so adding a new library
config automatically adds a card.
…library-detection

feat(DVP-1191): Add library logo detection to SiteTitle
…-schema-fields

feat(DVP-1193): Add library/version schema fields to content config
- Run Prettier on LibraryIndex.astro
- Replace any[] return type on toStarlightSidebar with a proper
  StarlightSidebarEntry union type to satisfy no-explicit-any lint rule
…f hand-written mirror

Replace hand-written StarlightSidebarEntry type with derivation from
@astrojs/starlight/route-data public export. Add toStarlightBadge()
normalizer to bridge optional→required badge variant.
…-index-page

feat(DVP-1192): Add data-driven library index page
- Derive StarlightBadge from StarlightSidebarEntry (stays in sync with
  Starlight's Badge type including 'success' variant)
- Use StarlightBadge['variant'] in LibrarySidebarLink/Group badge types
- Add explicit return type to toStarlightBadge, remove unnecessary as const
- Extract LibraryCategory type from LibraryConfig['category']
- Tighten getLibrariesByCategory() return to Partial<Record<LibraryCategory, ...>>
- Tighten categoryLabels to Record<LibraryCategory, string> (compile error
  if a category label is missing)
- Type-check categoryOrder in LibraryIndex.astro against LibraryCategory
…-index-page

refactor(DVP-1192): Address code review findings for type safety
Migrate algokit-utils (pilot library) content from legacy paths to
URL-aligned paths matching the library virtual collection system.
This enables /docs/algokit-utils/{language}/{version}/ URLs to resolve
to actual content.

- Update import config basePaths to new URL-aligned structure
- Remove assetsPath/assetsBaseUrl in favor of co-located assets (loader v0.12.0)
- Split README/index into own include for version-root landing pages
- Add sidebar metadata (label + order) to both TS and Python index transforms
- Delete old content dirs (algokit/utils/, reference/algokit-utils-{ts,py}/)
- Delete old separate asset dirs (now co-located under content)
- Update 8 hardcoded links across 5 files to new URL format
- Update auto-sidebar-config.yml paths for new API doc locations
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 29, 2026

☁️ Cloudflare Pages Preview

Preview URL: https://ddcdbc5f.devportal-7it.pages.dev
Branch: release/ak-v4
Commit: ddecd8ab5df1cb45bf95dd3eaf94bd8fa92f14aa

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.

5 participants