Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
52 commits
Select commit Hold shift + click to select a range
f8829be
feat: Add GitHub Pages website for browsing resources
aaronpowell Jan 28, 2026
8752198
Add multi-select filters, light/dark theme, and skill ZIP downloads
aaronpowell Jan 28, 2026
6bcb6ff
refactor(website): convert to ES modules with TypeScript
aaronpowell Jan 28, 2026
4b3bd3d
chore: remove old vanilla website implementation
aaronpowell Jan 28, 2026
aa42998
chore: rename website-astro to website, update gitignore
aaronpowell Jan 28, 2026
fbb92dc
chore: clean up package.json scripts
aaronpowell Jan 28, 2026
f76f638
fix: parse featured field from display.featured in collections
aaronpowell Jan 28, 2026
57edb2a
style: modernize website design with gradients and glassmorphism
aaronpowell Jan 28, 2026
4411eea
fix: improve homepage search results dropdown styling
aaronpowell Jan 28, 2026
63f2080
fix: allow search result descriptions to wrap fully
aaronpowell Jan 28, 2026
d0bcc22
feat: add VS Code and VS Code Insiders install buttons
aaronpowell Jan 28, 2026
1887d9b
feat: add VS Code install buttons to list views
aaronpowell Jan 28, 2026
7e7b5c8
feat: implement split button dropdown for install options
aaronpowell Jan 28, 2026
c378488
style: remove icon from install button
aaronpowell Jan 28, 2026
009c6c7
style: remove VS Code icons from dropdown menu items
aaronpowell Jan 28, 2026
d450d7d
feat: add download and share buttons to list view and modal
aaronpowell Jan 28, 2026
63fb276
Tweaking a label set
aaronpowell Jan 28, 2026
d46210b
fix: make FuzzySearch generic to support typed items
aaronpowell Jan 28, 2026
82accb2
Some more ts updates
aaronpowell Jan 28, 2026
c052ec0
style: remove gradient from page header text for readability
aaronpowell Jan 28, 2026
9da53a2
feat: add deep linking support for file modal
aaronpowell Jan 28, 2026
3bb7996
feat: show collections as item list in modal instead of raw YAML
aaronpowell Jan 28, 2026
10e42f4
style: fix collection modal spacing and make items more compact
aaronpowell Jan 28, 2026
43a1ca1
style: update colors to GitHub Copilot brand palette
aaronpowell Jan 28, 2026
0c6ccf3
feat: use official GitHub Copilot logo in header
aaronpowell Jan 28, 2026
1388d08
flattening the base url
aaronpowell Jan 29, 2026
36a26b0
ci: update deploy workflow for Astro website
aaronpowell Jan 29, 2026
c8d342c
Add tools catalog with YAML schema and website page
aaronpowell Jan 29, 2026
e9f2018
Configuring for vscode support
aaronpowell Jan 29, 2026
e3894a0
Merge resource counts into home page cards
aaronpowell Feb 1, 2026
b1b3ab3
Fix search results dropdown z-index on home page
aaronpowell Feb 1, 2026
0cabb88
Enable source maps for JavaScript and CSS
aaronpowell Feb 1, 2026
4318aa5
Remove unused src/styles/global.css
aaronpowell Feb 1, 2026
f99c99a
fixing overflow
aaronpowell Feb 1, 2026
94a395d
feat(website): add comprehensive accessibility improvements
aaronpowell Feb 2, 2026
2f9c594
fix(website): update button styles and fix dropdown z-index
aaronpowell Feb 2, 2026
23f08bb
Merge branch 'main' into experiment/github-pages-website
aaronpowell Feb 2, 2026
b8d93a0
feat(website): add samples/cookbook page with recipe browser
aaronpowell Feb 2, 2026
9eab4ec
fix(website): use Choices.js wrapper for samples tag filter
aaronpowell Feb 2, 2026
3a7c8cc
feat(website): add Nerd Fonts for programming language icons
aaronpowell Feb 2, 2026
a64f4e7
Fixing some whitespace
aaronpowell Feb 2, 2026
f1f2a2f
Updating unicode for c#
aaronpowell Feb 2, 2026
f8d9322
these are generated, shouldn't be committed
aaronpowell Feb 2, 2026
611474f
fix(website): resolve TypeScript errors in samples.ts
aaronpowell Feb 2, 2026
26df6a2
feat(ci): add PR preview deployments
aaronpowell Feb 2, 2026
bd7209a
Revert "feat(ci): add PR preview deployments"
aaronpowell Feb 2, 2026
8b9fa46
Initial plan
Copilot Feb 2, 2026
fb5f22a
fix(website): properly escape backslashes and quotes in file paths
Copilot Feb 2, 2026
9e44173
Improve comment clarity for string escaping fix
Copilot Feb 2, 2026
a424744
Merge pull request #638 from github/copilot/sub-pr-637
aaronpowell Feb 2, 2026
cdb056e
Merge branch 'experiment/github-pages-website' of https://github.com/…
aaronpowell Feb 2, 2026
a1da290
Refactor code for consistency and readability
aaronpowell Feb 2, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions .github/workflows/deploy-website.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
# GitHub Pages deployment workflow
# Builds the Astro website and deploys to GitHub Pages

name: Deploy Website to GitHub Pages

on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
paths:
- "website/**"
- "agents/**"
- "prompts/**"
- "instructions/**"
- "skills/**"
- "collections/**"
- "cookbook/**"
- "eng/generate-website-data.mjs"
- ".github/workflows/deploy-website.yml"

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"

- name: Install root dependencies
run: npm ci

- name: Install website dependencies
run: npm ci
working-directory: ./website

- name: Generate website data
run: npm run website:data

- name: Build Astro site
run: npm run build
working-directory: ./website

- name: Setup Pages
uses: actions/configure-pages@v5

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: "./website/dist"

# Deployment job
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,8 @@ reports/
# macOS system files
.DS_Store
*.tmp

# Website build artifacts
website/dist/
website/.astro/
website/public/data/*
99 changes: 99 additions & 0 deletions .schemas/cookbook.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Cookbook Manifest",
"description": "Schema for cookbook.yml manifest defining cookbooks and recipes",
"type": "object",
"required": ["cookbooks"],
"properties": {
"cookbooks": {
"type": "array",
"description": "List of cookbooks",
"items": {
"type": "object",
"required": ["id", "name", "description", "path", "languages", "recipes"],
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the cookbook",
"pattern": "^[a-z0-9-]+$"
},
"name": {
"type": "string",
"description": "Display name for the cookbook"
},
"description": {
"type": "string",
"description": "Brief description of the cookbook"
},
"path": {
"type": "string",
"description": "Relative path to the cookbook folder"
},
"featured": {
"type": "boolean",
"description": "Whether this cookbook should be featured",
"default": false
},
"languages": {
"type": "array",
"description": "Programming languages supported by this cookbook",
"items": {
"type": "object",
"required": ["id", "name"],
"properties": {
"id": {
"type": "string",
"description": "Language identifier (folder name)",
"pattern": "^[a-z0-9-]+$"
},
"name": {
"type": "string",
"description": "Display name for the language"
},
"icon": {
"type": "string",
"description": "Emoji icon for the language"
},
"extension": {
"type": "string",
"description": "File extension for runnable examples",
"pattern": "^\\.[a-z]+$"
}
}
}
},
"recipes": {
"type": "array",
"description": "List of recipes in this cookbook",
"items": {
"type": "object",
"required": ["id", "name", "description"],
"properties": {
"id": {
"type": "string",
"description": "Recipe identifier (matches markdown filename without extension)",
"pattern": "^[a-z0-9-]+$"
},
"name": {
"type": "string",
"description": "Display name for the recipe"
},
"description": {
"type": "string",
"description": "Brief description of what the recipe covers"
},
"tags": {
"type": "array",
"description": "Tags for filtering and categorization",
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}
151 changes: 151 additions & 0 deletions .schemas/tools.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,151 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Tools Catalog",
"description": "Schema for the awesome-copilot tools catalog (website/data/tools.yml)",
"type": "object",
"required": ["tools"],
"additionalProperties": false,
"properties": {
"tools": {
"type": "array",
"description": "List of tools in the catalog",
"minItems": 1,
"items": {
"type": "object",
"required": ["id", "name", "description", "category"],
"additionalProperties": false,
"properties": {
"id": {
"type": "string",
"description": "Unique identifier for the tool",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"maxLength": 50
},
"name": {
"type": "string",
"description": "Display name for the tool",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"description": "Description of what this tool does",
"minLength": 1,
"maxLength": 1000
},
"category": {
"type": "string",
"description": "Category for grouping tools",
"minLength": 1,
"maxLength": 50,
"examples": ["MCP Servers", "VS Code Extensions", "CLI Tools", "Visual Studio Extensions"]
},
"featured": {
"type": "boolean",
"description": "Whether this tool is featured (shown first)",
"default": false
},
"requirements": {
"type": "array",
"description": "List of requirements to use this tool",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 10
},
"features": {
"type": "array",
"description": "List of key features",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 200
},
"maxItems": 20
},
"links": {
"type": "object",
"description": "Links related to this tool",
"additionalProperties": false,
"properties": {
"blog": {
"type": "string",
"description": "Link to a blog post about the tool",
"format": "uri"
},
"documentation": {
"type": "string",
"description": "Link to documentation",
"format": "uri"
},
"github": {
"type": "string",
"description": "Link to GitHub repository",
"format": "uri"
},
"marketplace": {
"type": "string",
"description": "Link to VS Code or Visual Studio Marketplace",
"format": "uri"
},
"npm": {
"type": "string",
"description": "Link to npm package",
"format": "uri"
},
"pypi": {
"type": "string",
"description": "Link to PyPI package",
"format": "uri"
},
"vscode": {
"type": "string",
"description": "VS Code install link (vscode: URI or aka.ms link)"
},
"vscode-insiders": {
"type": "string",
"description": "VS Code Insiders install link"
},
"visual-studio": {
"type": "string",
"description": "Visual Studio install link"
}
}
},
"configuration": {
"type": "object",
"description": "Configuration snippet for the tool",
"required": ["type", "content"],
"additionalProperties": false,
"properties": {
"type": {
"type": "string",
"description": "Type of configuration (for syntax highlighting)",
"enum": ["json", "yaml", "bash", "toml", "ini"]
},
"content": {
"type": "string",
"description": "The configuration content"
}
}
},
"tags": {
"type": "array",
"description": "Tags for filtering and discovery",
"items": {
"type": "string",
"pattern": "^[a-z0-9-]+$",
"minLength": 1,
"maxLength": 30
},
"uniqueItems": true,
"maxItems": 15
}
}
}
}
}
}
3 changes: 2 additions & 1 deletion .vscode/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
"*.prompt.md": "prompt"
},
"yaml.schemas": {
"./.schemas/collection.schema.json": "*.collection.yml"
"./.schemas/collection.schema.json": "*.collection.yml",
"./.schemas/tools.schema.json": "website/data/tools.yml",
}
}
Loading