Skip to content

Commit d382de7

Browse files
committed
fix: align code link and prefer package docs URL
- Add icon to code link for consistent alignment with other links - Docs link now uses package homepage (typically their docs) when available - Falls back to our generated API docs when no homepage exists - Remove redundant homepage link (now covered by docs)
1 parent 911c431 commit d382de7

10 files changed

Lines changed: 924 additions & 854 deletions

File tree

app/pages/[...package].vue

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
220244
function 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

Comments
 (0)