Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions src/frontend/config/sidebar/integrations.topics.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1336,6 +1336,7 @@ export const integrationTopics: StarlightSidebarTopicsUserConfig = {
{ label: 'JavaScript', slug: 'integrations/frameworks/javascript' },
{ label: 'Node.js extensions', slug: 'integrations/frameworks/nodejs-extensions' },
{ label: 'Orleans', slug: 'integrations/frameworks/orleans' },
{ label: 'Perl', slug: 'integrations/frameworks/perl' },
{ label: 'PowerShell', slug: 'integrations/frameworks/powershell' },
{ label: 'Python', slug: 'integrations/frameworks/python' },
{ label: 'Rust', slug: 'integrations/frameworks/rust' },
Expand Down
4 changes: 4 additions & 0 deletions src/frontend/src/assets/icons/perl-096-1500.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
42 changes: 42 additions & 0 deletions src/frontend/src/content/docs/community/contributor-guide.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -174,6 +174,48 @@ Without the blank lines between steps, the inner content won't render correctly.

</Steps>

## 🧩 Adding a new framework integration

If you've built a new Community Toolkit hosting integration (e.g. `CommunityToolkit.Aspire.Hosting.<Framework>`) and want to document it on `aspire.dev`, you'll need to touch several files. Here's a summary of the steps, using the Perl integration as an example:

<Steps>

1. **Create the documentation page**

Add a new MDX file at `src/frontend/src/content/docs/integrations/frameworks/<framework>.mdx`. Use an existing framework page (such as `python.mdx` or `java.mdx`) as a template. Include frontmatter with a `title`, any required component imports, and a `Badge` indicating it's a Community Toolkit integration.

1. **Add an icon asset**

Place an SVG icon for the framework in `src/frontend/src/assets/icons/`. Reference it in your MDX page with an `Image` component import.

1. **Register the sidebar entry**

In `src/frontend/config/sidebar/integrations.topics.ts`, add a new entry for your framework in the frameworks list (keep alphabetical order):

```ts
{ label: '<Framework>', slug: 'integrations/frameworks/<framework>' },
```

1. **Add the NuGet package name**

In `src/frontend/src/data/aspire-integration-names.json`, add the full NuGet package name for your integration (keep alphabetical order):

```json
"CommunityToolkit.Aspire.Hosting.<Framework>",
```

1. **Add license attribution**

If your integration uses assets or technologies with specific licenses, add entries in `src/frontend/src/data/thanks-license-titles.ts`:

```ts
'<key>': '<License>: <URL>',
```

</Steps>

After making these changes, run `pnpm dev` (or `aspire start`) locally to verify the page renders correctly, the sidebar navigation works, and the icon displays as expected.

## ✍️ Writing style guide

<span id='-writing-style-guide'></span>
Expand Down
Loading