Migrate website to Starlight with full-text resource search (#883)

* Add search functionality to Learning Hub index page

Add a client-side search bar that filters articles by title, description,
and tags. Sections with no matching results are hidden automatically.
Uses the existing .search-bar CSS pattern from the cookbook page.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* chore: remove deprecated layouts, theme script, and learning-hub config

Phase 5 cleanup of Starlight migration:
- Delete BaseLayout.astro (replaced by StarlightPage)
- Delete ArticleLayout.astro (replaced by Starlight docs rendering)
- Delete theme.ts (Starlight has built-in theme toggle)
- Delete src/config/learning-hub.ts (sidebar order now in astro.config.mjs)
- Replace learning-hub glob collection with Starlight docs collection in content.config.ts
- Keep search.ts (still used by homepage and all resource page scripts)

Build verified: 23 pages, no errors.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Migrate website to Starlight with full-text resource search

- Replace bespoke Astro layouts with Starlight integration
  - Homepage and resource pages use StarlightPage wrapper
  - Learning Hub articles rendered via Starlight docs collection
  - Starlight provides search, theme toggle, sidebar, ToC, a11y

- Add custom Pagefind integration for resource search
  - All 614 agents/skills/instructions/hooks/workflows/plugins
    indexed as custom records with deep-link URLs
  - Type filter pills (horizontal pill toggles) above results
  - Search results link directly to resource modals via #file= hash

- Move global.css to src/styles/ for Vite processing
  - Scope CSS reset to #main-content to avoid Starlight conflicts
  - Full-width page gradient via body:has(#main-content)
  - Light/dark theme support with Starlight gray scale inversion

- Delete old layouts (BaseLayout, ArticleLayout), theme.ts, config

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Address PR review feedback

- Fix pagefind-resources.ts header comment (pagefind:true not false)
- Remove unused base variable in cookbook/index.astro
- Replace hardcoded /awesome-copilot/ paths with relative links in index.md
- Delete stale public/styles/global.css (source of truth is src/styles/)
- Replace fragile getBasePath() with Astro config base in pagefind integration
- Document pagefind:true reasoning in astro.config.mjs
- Use proper visually-hidden pattern + :focus-visible ring for filter pills
- Remove dead header/nav/theme CSS from global.css (~160 lines)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Aaron Powell
2026-03-05 21:50:44 +11:00
committed by GitHub
parent 8fedf95507
commit 40fd1a6c72
50 changed files with 1891 additions and 888 deletions

View File

@@ -1,12 +1,85 @@
import sitemap from "@astrojs/sitemap";
import starlight from "@astrojs/starlight";
import { defineConfig } from "astro/config";
import pagefindResources from "./src/integrations/pagefind-resources";
// https://astro.build/config
export default defineConfig({
site: "https://github.github.com/",
base: "/awesome-copilot/",
output: "static",
integrations: [sitemap()],
integrations: [
starlight({
title: "Awesome GitHub Copilot",
social: [
{
icon: "github",
label: "GitHub",
href: "https://github.com/github/awesome-copilot",
},
],
customCss: ["./src/styles/starlight-overrides.css", "./src/styles/global.css"],
editLink: {
baseUrl:
"https://github.com/github/awesome-copilot/edit/staged/website/",
},
sidebar: [
{
label: "Browse Resources",
items: [
{ label: "Home", link: "/" },
{ label: "Agents", link: "/agents/" },
{ label: "Instructions", link: "/instructions/" },
{ label: "Skills", link: "/skills/" },
{ label: "Hooks", link: "/hooks/" },
{ label: "Workflows", link: "/workflows/" },
{ label: "Plugins", link: "/plugins/" },
{ label: "Tools", link: "/tools/" },
],
},
{
label: "Fundamentals",
items: [
"learning-hub/what-are-agents-skills-instructions",
"learning-hub/understanding-copilot-context",
"learning-hub/copilot-configuration-basics",
"learning-hub/defining-custom-instructions",
"learning-hub/creating-effective-skills",
"learning-hub/building-custom-agents",
"learning-hub/understanding-mcp-servers",
"learning-hub/automating-with-hooks",
"learning-hub/agentic-workflows",
"learning-hub/using-copilot-coding-agent",
"learning-hub/installing-and-using-plugins",
"learning-hub/before-after-customization-examples",
],
},
{
label: "Reference",
items: ["learning-hub/github-copilot-terminology-glossary"],
},
{
label: "Hands-on",
items: [
{
label: "Cookbook",
link: "/learning-hub/cookbook/",
},
],
},
],
disable404Route: true,
// pagefind: true is required so Starlight renders the search UI.
// Our pagefindResources() integration overwrites the index after build.
pagefind: true,
tableOfContents: { minHeadingLevel: 2, maxHeadingLevel: 3 },
components: {
Head: "./src/components/Head.astro",
},
}),
sitemap(),
pagefindResources(),
],
redirects: {
"/samples/": "/learning-hub/cookbook/",
},