mirror of
https://github.com/github/awesome-copilot.git
synced 2026-02-20 02:15:12 +00:00
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
100 lines
3.2 KiB
JSON
100 lines
3.2 KiB
JSON
{
|
|
"$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"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|