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
2 changes: 1 addition & 1 deletion docs/README.plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| [go-mcp-development](../plugins/go-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | go, golang, mcp, model-context-protocol, server-development, sdk |
| [java-development](../plugins/java-development/README.md) | Comprehensive collection of prompts and instructions for Java development including Spring Boot, Quarkus, testing, documentation, and best practices. | 4 items | java, springboot, quarkus, jpa, junit, javadoc |
| [java-mcp-development](../plugins/java-mcp-development/README.md) | Build Model Context Protocol (MCP) servers in Java with the official MCP Java SDK 2.x. Includes a skill that generates a server project and an expert agent for guidance. | 2 items | java, mcp, model-context-protocol, mcp-java-sdk, server-development, spring-ai |
| [java-modernization-studio](../plugins/java-modernization-studio/README.md) | Drive the GitHub Copilot App Modernization for Java workflow from an interactive canvas: environment readiness, repo assessment, prioritized plan and progress, validation gates, and one-click predefined-task runs grounded in the repo's real artifacts. | 1 items | app-modernization, assessment-dashboard, azure-migration, java-modernization, legacy-java, modernization-cockpit, validation-gates |
| [java-modernization-studio](../plugins/java-modernization-studio/README.md) | Drive the GitHub Copilot App Modernization for Java workflow from an interactive canvas: environment readiness, repo assessment, prioritized plan and progress, validation gates, and one-click predefined-task runs grounded in the repo's real artifacts. | 1 items | app-modernization, assessment-dashboard, azure-migration, java, java-modernization, legacy-java, modernization-cockpit, validation-gates |
| [jupyter-notebooks](../plugins/jupyter-notebooks/README.md) | Create, edit, run, save, and checkpoint Jupyter notebooks in an interactive Copilot canvas. | 1 items | data-analysis, interactive-notebooks, jupyter, python |
| [kotlin-mcp-development](../plugins/kotlin-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Kotlin using the official io.modelcontextprotocol:kotlin-sdk library. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | kotlin, mcp, model-context-protocol, kotlin-multiplatform, server-development, ktor |
| [mcp-m365-copilot](../plugins/mcp-m365-copilot/README.md) | Comprehensive collection for building declarative agents with Model Context Protocol integration for Microsoft 365 Copilot | 4 items | mcp, m365-copilot, declarative-agents, api-plugins, model-context-protocol, adaptive-cards |
Expand Down
1 change: 1 addition & 0 deletions plugins/java-modernization-studio/plugin.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
"app-modernization",
"assessment-dashboard",
"azure-migration",
"java",
"java-modernization",
"legacy-java",
"modernization-cockpit",
Expand Down
10 changes: 7 additions & 3 deletions website/src/components/brand/PluginsCatalog.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ const sizeLabelOf = (plugin: PluginItem) =>
* the build-time filter list offers.
*/
const CATEGORY_LIMIT = 12;
// Categories that are always offered, even when they are not among the most-used tags.
const PINNED_CATEGORIES = ["java"];

function categoryOptions(plugins: PluginItem[], tags: string[]): string[] {
const counts = new Map<string, number>();
Expand All @@ -101,10 +103,12 @@ function categoryOptions(plugins: PluginItem[], tags: string[]): string[] {
counts.set(tag, (counts.get(tag) ?? 0) + 1);
}
}
return tags
.filter((tag) => counts.has(tag))
const pinned = PINNED_CATEGORIES.filter((tag) => counts.has(tag));
const popular = tags
.filter((tag) => counts.has(tag) && !pinned.includes(tag))
.sort((a, b) => (counts.get(b) ?? 0) - (counts.get(a) ?? 0) || a.localeCompare(b))
.slice(0, CATEGORY_LIMIT);
.slice(0, CATEGORY_LIMIT - pinned.length);
return [...pinned, ...popular];
}

/**
Expand Down
14 changes: 10 additions & 4 deletions website/src/pages/plugins.astro
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,16 @@ for (const plugin of plugins as { tags?: string[] }[]) {
tagCounts.set(tag, (tagCounts.get(tag) ?? 0) + 1);
}
}
const tags = [...tagCounts.entries()]
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
.slice(0, 12)
.map(([tag]) => tag);
const pinnedTags = ["java"].filter((tag) => tagCounts.has(tag));
const tags = [
...new Set([
...pinnedTags,
...[...tagCounts.entries()]
.sort((a, b) => b[1] - a[1] || a[0].localeCompare(b[0]))
.slice(0, 12)
.map(([tag]) => tag),
]),
];
---

<BaseLayout
Expand Down
Loading