Overview
Currently the model providers overview page contains a table of model providers, hardcoded in text. Instead of doing that, generate it dynamically by querying the docs collection and extracting entries with integrationType: 'model-provider' frontmatter/entry data.
Implementation Requirements
Based on clarification discussion and repository analysis:
Technical Approach
- Framework: Astro/Starlight documentation site
- Filtering: Use frontmatter-based filtering with new
integrationType field
Frontmatter Field
- Add new
integrationType field to content schema in src/content.config.ts
- Value:
'model-provider' for model provider pages
- All model provider pages must be updated with this frontmatter field
Language Support Detection
- Use existing
languages frontmatter field convention:
languages: Python = Python-only support
- No
languages field = Both Python and TypeScript support
- No new fields needed for language detection
Community Provider Handling
- Include community providers in the generated table
- Visually distinguish them from official providers (separate section or badge)
- Community providers are identified by having
community: true in frontmatter
Sort Order
- Sort providers alphabetically by title (non-community first)
Special Cases
- Custom Providers page: Include in the generated table
- Index page: Automatically exclude from the list (it's the overview page itself)
Files to Create/Modify
Create:
src/components/ModelProvidersList.astro - New component to generate the table dynamically
Modify:
src/content.config.ts - Add integrationType field to docs schema
src/content/docs/user-guide/concepts/model-providers/index.mdx - Replace hardcoded table with component
src/content/docs/user-guide/concepts/model-providers/*.mdx - Add integrationType: 'model-provider' frontmatter to all provider pages (18 files)
Tests:
- Add tests for the new
ModelProvidersList.astro component
Model Provider Pages to Update (18 files)
amazon-bedrock.mdx
amazon-nova.mdx
anthropic.mdx
clova-studio.mdx
cohere.mdx
custom_model_provider.mdx
fireworksai.mdx
gemini.mdx
litellm.mdx
llamaapi.mdx
llamacpp.mdx
mistral.mdx
nebius-token-factory.mdx
ollama.mdx
openai.mdx
sagemaker.mdx
writer.mdx
xai.mdx
Acceptance Criteria
Overview
Currently the model providers overview page contains a table of model providers, hardcoded in text. Instead of doing that, generate it dynamically by querying the docs collection and extracting entries with
integrationType: 'model-provider'frontmatter/entry data.Implementation Requirements
Based on clarification discussion and repository analysis:
Technical Approach
integrationTypefieldFrontmatter Field
integrationTypefield to content schema insrc/content.config.ts'model-provider'for model provider pagesLanguage Support Detection
languagesfrontmatter field convention:languages: Python= Python-only supportlanguagesfield = Both Python and TypeScript supportCommunity Provider Handling
community: truein frontmatterSort Order
Special Cases
Files to Create/Modify
Create:
src/components/ModelProvidersList.astro- New component to generate the table dynamicallyModify:
src/content.config.ts- AddintegrationTypefield to docs schemasrc/content/docs/user-guide/concepts/model-providers/index.mdx- Replace hardcoded table with componentsrc/content/docs/user-guide/concepts/model-providers/*.mdx- AddintegrationType: 'model-provider'frontmatter to all provider pages (18 files)Tests:
ModelProvidersList.astrocomponentModel Provider Pages to Update (18 files)
amazon-bedrock.mdxamazon-nova.mdxanthropic.mdxclova-studio.mdxcohere.mdxcustom_model_provider.mdxfireworksai.mdxgemini.mdxlitellm.mdxllamaapi.mdxllamacpp.mdxmistral.mdxnebius-token-factory.mdxollama.mdxopenai.mdxsagemaker.mdxwriter.mdxxai.mdxAcceptance Criteria
integrationTypefield added to content schemaintegrationType: 'model-provider'frontmatterModelProvidersList.astrocomponent created following existing patternsindex.mdxreplaced with new componentnpm run build