feat: Generate model providers table dynamically#21
Open
github-actions[bot] wants to merge 7 commits intomainfrom
Open
feat: Generate model providers table dynamically#21github-actions[bot] wants to merge 7 commits intomainfrom
github-actions[bot] wants to merge 7 commits intomainfrom
Conversation
- Add integrationType field to content schema for filtering docs - Create ModelProvidersList.astro component to query docs collection - Update all 18 model provider pages with integrationType: model-provider - Replace hardcoded table in index.mdx with dynamic component - Add tests for model providers list functionality Component features: - Filters pages by integrationType: 'model-provider' frontmatter - Sorts non-community providers first, then community alphabetically - Shows Python/TypeScript support based on languages field - Displays Community badge for community-contributed providers - Excludes index page from the generated list Resolves #19
Deploying docs with
|
| Latest commit: |
26361fe
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://2c48dd46.docs-72e.pages.dev |
| Branch Preview URL: | https://agent-tasks-19.docs-72e.pages.dev |
zastrowm
reviewed
Mar 10, 2026
Owner
|
/strands |
Per review feedback, moved the table generation logic directly into the index.mdx file using MDX exports and JSX, eliminating the need for a separate ModelProvidersList.astro component. Benefits: - All logic is co-located with the content - Easier to maintain and understand - Follows MDX best practices for simple data transformations
zastrowm
requested changes
Mar 10, 2026
Owner
|
/strands implement |
Per review feedback, moved the filtering and processing logic into a reusable utility module at src/util/integration-content.ts. New utilities: - getLanguageSupport(): Determines Python/TypeScript support from frontmatter - getIntegrationEntries(): Filters and processes docs by integrationType - splitByCategory(): Separates official from community entries - Proper TypeScript types for IntegrationEntry and LanguageSupport Benefits: - Reusable for other integration types (tools, etc.) - Properly typed interfaces - Easier to test and maintain - Cleaner MDX file with minimal inline logic
Owner
|
/strands |
- Add getIntegrationEntries utility to extract and sort content by integrationType - Update model-providers.mdx to auto-generate table from page frontmatter - Add integrationType and description fields to all community pages - Update community-packages.mdx to auto-generate tables for all categories - Add description field to content schema This reduces manual maintenance by deriving catalog entries from page frontmatter. New pages with the correct integrationType and description will automatically appear in the catalog tables. Community pages updated: - 6 tools with community-tool integrationType - 9 model providers with community-model-provider integrationType - 2 session managers with community-session-manager integrationType - 1 integration with community-integration integrationType Resolves #19
zastrowm
reviewed
Mar 11, 2026
| | [strands-telegram](./tools/strands-telegram.md) | Telegram bot | | ||
| | [strands-telegram-listener](./tools/strands-telegram-listener.md) | Telegram listener | | ||
| | [UTCP](./tools/utcp.md) | Universal Tool Calling Protocol | | ||
| <table> |
Owner
There was a problem hiding this comment.
Create a new Astro component SimpleTab;
Usage should look like:
<SimpleTable
data={tools}
columns=[
{ header: "Package", cell: tool => <a href={tool.href}>{tool.sidebarLabel || tool.title}</a> },
{ header: "DescriptIon", cell: tool => tool.description
]
/>
Author
There was a problem hiding this comment.
Done! Created SimpleTable.astro component. Usage in community-packages.mdx:
<SimpleTable
data={communityTools}
columns={[
{ header: "Package", key: "title", link: true },
{ header: "Description", key: "description" }
]}
/>The link: true option renders cells as links using item.href.
Owner
|
/strands |
Extract inline table JSX into a reusable SimpleTable Astro component.
The component accepts data array and column definitions with optional
link rendering.
Usage:
<SimpleTable
data={tools}
columns={[
{ header: 'Package', key: 'title', link: true },
{ header: 'Description', key: 'description' }
]}
/>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Replaces the hardcoded model providers table in the overview page with a dynamically generated table that queries the docs collection for pages with
integrationType: 'model-provider'frontmatter.Changes
New Files
src/util/integration-content.ts- Reusable typed utilities for querying integration contentModified Files
src/content.config.ts- AddedintegrationTypefield to docs schema for filteringsrc/content/docs/user-guide/concepts/model-providers/index.mdx- Uses new utilities to generate tableintegrationType: 'model-provider'frontmatter; addedcommunity: trueflag to redirect pages for community providersTest Files
test/model-providers-list.test.ts- Tests for utility functions and integrationImplementation
Created a reusable utility module
src/util/integration-content.tswith properly typed helpers:The MDX file uses these utilities with minimal inline code:
Features
integrationType: 'model-provider'frontmatterlanguagesfield conventionTesting
Resolves #19