feat(website): add samples/cookbook page with recipe browser

Integrates the cookbook/ folder into the website's Samples page:

Data Structure:
- Add cookbook/cookbook.yml manifest defining cookbooks and recipes
- Add .schemas/cookbook.schema.json for validation
- Add COOKBOOK_DIR constant to eng/constants.mjs

Build Integration:
- Add generateSamplesData() to generate samples.json from cookbook.yml
- Include recipe variants with file paths for each language
- Add samples count to manifest.json

Website UI:
- Create samples.ts with FuzzySearch, language/tag filtering
- Replace placeholder samples.astro with functional recipe browser
- Recipe cards with language indicators and action buttons
- Language tabs for switching between implementations
- View Recipe/View Example buttons open modal
- GitHub link for each recipe

Features:
- Search recipes by name/description
- Filter by programming language (Node.js, Python, .NET, Go)
- Filter by tags (multi-select with Choices.js)
- 5 recipes across 4 languages = 20 recipe variants
This commit is contained in:
Aaron Powell
2026-02-02 15:11:12 +11:00
parent 23f08bbb63
commit b8d93a0344
14 changed files with 1699 additions and 67 deletions

View File

@@ -113,6 +113,18 @@
"path": "instructions/apex.instructions.md",
"filename": "apex.instructions.md"
},
{
"id": "arch-linux",
"title": "Arch Linux",
"description": "Guidance for Arch Linux administration, pacman workflows, and rolling-release best practices.",
"applyTo": "**",
"applyToPatterns": [
"**"
],
"extensions": [],
"path": "instructions/arch-linux.instructions.md",
"filename": "arch-linux.instructions.md"
},
{
"id": "aspnet-rest-apis",
"title": "Aspnet Rest Apis",
@@ -272,6 +284,18 @@
"path": "instructions/blazor.instructions.md",
"filename": "blazor.instructions.md"
},
{
"id": "centos-linux",
"title": "Centos Linux",
"description": "Guidance for CentOS administration, RHEL-compatible tooling, and SELinux-aware operations.",
"applyTo": "**",
"applyToPatterns": [
"**"
],
"extensions": [],
"path": "instructions/centos-linux.instructions.md",
"filename": "centos-linux.instructions.md"
},
{
"id": "clojure",
"title": "Clojure",
@@ -675,6 +699,18 @@
"path": "instructions/dataverse-python-testing-debugging.instructions.md",
"filename": "dataverse-python-testing-debugging.instructions.md"
},
{
"id": "debian-linux",
"title": "Debian Linux",
"description": "Guidance for Debian-based Linux administration, apt workflows, and Debian policy conventions.",
"applyTo": "**",
"applyToPatterns": [
"**"
],
"extensions": [],
"path": "instructions/debian-linux.instructions.md",
"filename": "debian-linux.instructions.md"
},
{
"id": "declarative-agents-microsoft365",
"title": "Declarative Agents Microsoft365",
@@ -807,6 +843,18 @@
"path": "instructions/dotnet-wpf.instructions.md",
"filename": "dotnet-wpf.instructions.md"
},
{
"id": "fedora-linux",
"title": "Fedora Linux",
"description": "Guidance for Fedora (Red Hat family) systems, dnf workflows, SELinux, and modern systemd practices.",
"applyTo": "**",
"applyToPatterns": [
"**"
],
"extensions": [],
"path": "instructions/fedora-linux.instructions.md",
"filename": "fedora-linux.instructions.md"
},
{
"id": "genaiscript",
"title": "Genaiscript",