mirror of
https://github.com/github/awesome-copilot.git
synced 2026-03-12 12:15:12 +00:00
* 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>
136 lines
5.8 KiB
Plaintext
136 lines
5.8 KiB
Plaintext
---
|
|
import StarlightPage from '@astrojs/starlight/components/StarlightPage.astro';
|
|
import Modal from '../components/Modal.astro';
|
|
|
|
const base = import.meta.env.BASE_URL;
|
|
---
|
|
|
|
<StarlightPage frontmatter={{ title: 'Awesome GitHub Copilot', template: 'splash', pagefind: false, prev: false, next: false, editUrl: false }} hasSidebar={false}>
|
|
<main id="main-content">
|
|
<!-- Hero Section -->
|
|
<section class="hero" aria-labelledby="hero-heading">
|
|
<div class="container">
|
|
<h1 id="hero-heading">Awesome GitHub Copilot</h1>
|
|
<p class="hero-subtitle">Community-contributed agents, instructions, and skills to enhance your GitHub Copilot experience</p>
|
|
<div class="hero-search">
|
|
<label for="global-search" class="sr-only">Search all resources</label>
|
|
<input type="text" id="global-search" placeholder="Search all resources..." autocomplete="off" role="combobox" aria-autocomplete="list" aria-expanded="false" aria-controls="search-results">
|
|
<div id="search-results" class="search-results hidden" role="listbox" aria-label="Search results"></div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Quick Links -->
|
|
<section class="quick-links" aria-labelledby="quick-links-heading">
|
|
<h2 id="quick-links-heading" class="sr-only">Browse Resources</h2>
|
|
<div class="container">
|
|
<div class="cards-grid">
|
|
<a href={`${base}agents/`} class="card card-with-count" id="card-agents">
|
|
<div class="card-icon" aria-hidden="true">🤖</div>
|
|
<div class="card-content">
|
|
<h3>Agents</h3>
|
|
<p>Custom agents for specialized Copilot experiences</p>
|
|
</div>
|
|
<div class="card-count" data-count="agents" aria-label="Agent count">-</div>
|
|
</a>
|
|
<a href={`${base}instructions/`} class="card card-with-count" id="card-instructions">
|
|
<div class="card-icon" aria-hidden="true">📋</div>
|
|
<div class="card-content">
|
|
<h3>Instructions</h3>
|
|
<p>Coding standards and best practices for Copilot</p>
|
|
</div>
|
|
<div class="card-count" data-count="instructions" aria-label="Instruction count">-</div>
|
|
</a>
|
|
<a href={`${base}skills/`} class="card card-with-count" id="card-skills">
|
|
<div class="card-icon" aria-hidden="true">⚡</div>
|
|
<div class="card-content">
|
|
<h3>Skills</h3>
|
|
<p>Self-contained folders with instructions and resources</p>
|
|
</div>
|
|
<div class="card-count" data-count="skills" aria-label="Skill count">-</div>
|
|
</a>
|
|
<a href={`${base}hooks/`} class="card card-with-count" id="card-hooks">
|
|
<div class="card-icon" aria-hidden="true">🪝</div>
|
|
<div class="card-content">
|
|
<h3>Hooks</h3>
|
|
<p>Automated workflows triggered by agent events</p>
|
|
</div>
|
|
<div class="card-count" data-count="hooks" aria-label="Hook count">-</div>
|
|
</a>
|
|
<a href={`${base}workflows/`} class="card card-with-count" id="card-workflows">
|
|
<div class="card-icon" aria-hidden="true">⚡</div>
|
|
<div class="card-content">
|
|
<h3>Workflows</h3>
|
|
<p>AI-powered automations for GitHub Actions</p>
|
|
</div>
|
|
<div class="card-count" data-count="workflows" aria-label="Workflow count">-</div>
|
|
</a>
|
|
<a href={`${base}plugins/`} class="card card-with-count" id="card-plugins">
|
|
<div class="card-icon" aria-hidden="true">🔌</div>
|
|
<div class="card-content">
|
|
<h3>Plugins</h3>
|
|
<p>Curated plugins organized by themes</p>
|
|
</div>
|
|
<div class="card-count" data-count="plugins" aria-label="Plugin count">-</div>
|
|
</a>
|
|
<a href={`${base}tools/`} class="card card-with-count" id="card-tools">
|
|
<div class="card-icon" aria-hidden="true">🔧</div>
|
|
<div class="card-content">
|
|
<h3>Tools</h3>
|
|
<p>MCP servers and developer tools</p>
|
|
</div>
|
|
<div class="card-count" data-count="tools" aria-label="Tool count">-</div>
|
|
</a>
|
|
<a href={`${base}learning-hub/`} class="card card-with-count" id="card-learning-hub">
|
|
<div class="card-icon" aria-hidden="true">📚</div>
|
|
<div class="card-content">
|
|
<h3>Learning Hub</h3>
|
|
<p>Articles and guides to master GitHub Copilot</p>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Featured Plugins -->
|
|
<section class="featured" aria-labelledby="featured-heading">
|
|
<div class="container">
|
|
<h2 id="featured-heading">Featured Plugins</h2>
|
|
<div id="featured-plugins" class="cards-grid" aria-live="polite">
|
|
<!-- Populated by JS -->
|
|
</div>
|
|
</div>
|
|
</section>
|
|
|
|
<!-- Getting Started -->
|
|
<section class="getting-started" aria-labelledby="getting-started-heading">
|
|
<div class="container">
|
|
<h2 id="getting-started-heading">Getting Started</h2>
|
|
<div class="steps">
|
|
<div class="step">
|
|
<div class="step-number" aria-hidden="true">1</div>
|
|
<h3>Browse</h3>
|
|
<p>Explore agents, instructions, skills, and plugins</p>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number" aria-hidden="true">2</div>
|
|
<h3>Preview</h3>
|
|
<p>Click any item to view its full content</p>
|
|
</div>
|
|
<div class="step">
|
|
<div class="step-number" aria-hidden="true">3</div>
|
|
<h3>Install</h3>
|
|
<p>One-click install to VS Code or copy to clipboard</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
|
|
<Modal />
|
|
|
|
<script>
|
|
import '../scripts/pages/index';
|
|
</script>
|
|
</StarlightPage>
|