chore: publish from main

This commit is contained in:
github-actions[bot]
2026-07-16 23:29:30 +00:00
parent 5051426463
commit 9f38d06fb1
3 changed files with 198 additions and 28 deletions
+11 -21
View File
@@ -46,6 +46,7 @@ interface ExtensionEntry extends HeaderItem {
installUrl?: string | null;
installCommand?: string | null;
sourceUrl?: string | null;
externalSource?: string | null;
external?: boolean;
author?: ExtensionAuthor | null;
keywords?: string[];
@@ -117,6 +118,7 @@ const installUrl = safeUrl(
: "")
);
const sourceUrl = safeUrl(item.sourceUrl);
const externalSource = (item.externalSource || "").trim();
const installCommand =
item.installCommand ||
(item.pluginName
@@ -124,16 +126,13 @@ const installCommand =
: "");
const githubUrl = isExternal
? sourceUrl || installUrl || GITHUB_TREE
? sourceUrl || GITHUB_TREE
: item.path
? `${GITHUB_TREE}/${item.path}`
: installUrl || GITHUB_TREE;
// Sidebar "Source" shows item.path; external extensions have no repo path.
const sidebarItem =
isExternal && (sourceUrl || installUrl)
? { ...item, path: sourceUrl || installUrl }
: item;
const sidebarItem = isExternal && sourceUrl ? { ...item, path: sourceUrl } : item;
const shortHash = (value: string) =>
/^[0-9a-f]{40}$/i.test(value) ? value.slice(0, 7) : value;
@@ -262,22 +261,13 @@ if (!isExternal && item.ref) {
>
{
isExternal ? (
<div class="skill-install" slot="install">
<p class="skill-install-label">Install this extension</p>
<p class="skill-install-note">
This extension is maintained in an external repository.
</p>
{installUrl && (
<button
type="button"
class="btn btn-secondary skill-install-url-btn"
data-action="copy-install-url"
data-install-url={installUrl}
>
Copy install URL
</button>
)}
</div>
<PluginInstall
slot="install"
isExternal={true}
externalSource={externalSource || null}
label="Install this extension"
note="This extension is maintained in an external repository."
/>
) : (
<PluginInstall
slot="install"
+19 -7
View File
@@ -48,6 +48,7 @@ export interface RenderableExtension {
installCommand?: string | null;
installUrl?: string | null;
sourceUrl?: string | null;
externalSource?: string | null;
external?: boolean;
author?: { name: string; url?: string } | null;
}
@@ -95,13 +96,20 @@ export function renderExtensionsHtml(items: RenderableExtension[]): string {
const sourceUrl = safeUrl(
item.sourceUrl || (item.path ? getGitHubUrl(item.path) : "")
);
const externalSource = (item.externalSource || "").trim();
const pluginId = item.pluginName || item.id;
const ghappInstallUrl =
!item.external && pluginId
? `ghapp://plugins/install?source=${encodeURIComponent(
`${pluginId}@awesome-copilot`
)}`
: "";
item.external
? externalSource
? `ghapp://plugins/marketplace/add?source=${encodeURIComponent(
externalSource
)}`
: ""
: pluginId
? `ghapp://plugins/install?source=${encodeURIComponent(
`${pluginId}@awesome-copilot`
)}`
: "";
const previewImageUrl = safeUrl(item.imageUrl);
const previewMediaHtml = previewImageUrl
@@ -152,14 +160,18 @@ export function renderExtensionsHtml(items: RenderableExtension[]): string {
</a>`
: ""
}
<button
${
!item.external
? `<button
class="btn btn-secondary btn-small copy-install-url-btn"
data-install-url="${escapeHtml(installUrl)}"
title="Copy fallback URL install target"
${installUrl ? "" : "disabled"}
>
Copy URL
</button>
</button>`
: ""
}
${
sourceUrl
? `<a href="${escapeHtml(