@@ -217,6 +217,30 @@ const homepageUrl = computed(() => {
217217 return homepage
218218})
219219
220+ // Docs URL: prefer package's homepage (often their docs site), fall back to our API docs
221+ const docsLink = computed (() => {
222+ const homepage = displayVersion .value ?.homepage
223+ if (homepage ) {
224+ return {
225+ href: homepage ,
226+ isExternal: true ,
227+ }
228+ }
229+
230+ // Fall back to our generated API docs
231+ if (displayVersion .value ) {
232+ return {
233+ to: {
234+ name: ' docs' as const ,
235+ params: { path: [... pkg .value ! .name .split (' /' ), ' v' , displayVersion .value .version ] },
236+ },
237+ isExternal: false ,
238+ }
239+ }
240+
241+ return null
242+ })
243+
220244function normalizeGitUrl(url : string ): string {
221245 return url
222246 .replace (/ ^ git\+ / , ' ' )
@@ -610,17 +634,7 @@ defineOgImageComponent('Package', {
610634 {{ formatCompactNumber(stars, { decimals: 1 }) }}
611635 </a >
612636 </li >
613- <li v-if =" homepageUrl" >
614- <a
615- :href =" homepageUrl"
616- target =" _blank"
617- rel =" noopener noreferrer"
618- class =" link-subtle font-mono text-sm inline-flex items-center gap-1.5"
619- >
620- <span class =" i-carbon-link w-4 h-4" aria-hidden =" true" />
621- homepage
622- </a >
623- </li >
637+
624638 <li v-if =" displayVersion?.bugs?.url" >
625639 <a
626640 :href =" displayVersion.bugs.url"
@@ -672,12 +686,20 @@ defineOgImageComponent('Package', {
672686 </a >
673687 </li >
674688
675- <li v-if =" displayVersion" >
689+ <li v-if =" docsLink" >
690+ <a
691+ v-if =" docsLink.isExternal"
692+ :href =" docsLink.href"
693+ target =" _blank"
694+ rel =" noopener noreferrer"
695+ class =" link-subtle font-mono text-sm inline-flex items-center gap-1.5"
696+ >
697+ <span class =" i-carbon-document w-4 h-4" aria-hidden =" true" />
698+ docs
699+ </a >
676700 <NuxtLink
677- :to =" {
678- name: 'docs',
679- params: { path: [...pkg.name.split('/'), 'v', displayVersion.version] },
680- }"
701+ v-else
702+ :to =" docsLink.to"
681703 class =" link-subtle font-mono text-sm inline-flex items-center gap-1.5"
682704 >
683705 <span class =" i-carbon-document w-4 h-4" aria-hidden =" true" />
@@ -693,6 +715,7 @@ defineOgImageComponent('Package', {
693715 class =" link-subtle font-mono text-sm inline-flex items-center gap-1.5"
694716 aria-keyshortcuts =" ."
695717 >
718+ <span class =" i-carbon-code w-4 h-4" aria-hidden =" true" />
696719 code
697720 <kbd
698721 class =" hidden sm:inline-flex items-center justify-center w-4 h-4 text-xs bg-bg-muted border border-border rounded"
0 commit comments