Skip to content

Commit 4d42b13

Browse files
authored
fix: apply explicit seo meta tags globally (#935)
1 parent 76af2ff commit 4d42b13

File tree

12 files changed

+73
-2
lines changed

12 files changed

+73
-2
lines changed

app/pages/@[org].vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<script setup lang="ts">
22
import type { FilterChip, SortOption } from '#shared/types/preferences'
3-
import { debounce } from 'perfect-debounce'
43
import { normalizeSearchParam } from '#shared/utils/url'
4+
import { debounce } from 'perfect-debounce'
55
66
definePageMeta({
77
name: 'org',
@@ -138,7 +138,11 @@ useHead({
138138
139139
useSeoMeta({
140140
title: () => `@${orgName.value} - npmx`,
141+
ogTitle: () => `@${orgName.value} - npmx`,
142+
twitterTitle: () => `@${orgName.value} - npmx`,
141143
description: () => `npm packages published by the ${orgName.value} organization`,
144+
ogDescription: () => `npm packages published by the ${orgName.value} organization`,
145+
twitterDescription: () => `npm packages published by the ${orgName.value} organization`,
142146
})
143147
144148
defineOgImageComponent('Default', {

app/pages/about.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,11 @@ interface GitHubContributor {
1111
1212
useSeoMeta({
1313
title: () => `${$t('about.title')} - npmx`,
14+
ogTitle: () => `${$t('about.title')} - npmx`,
15+
twitterTitle: () => `${$t('about.title')} - npmx`,
1416
description: () => $t('about.meta_description'),
17+
ogDescription: () => $t('about.meta_description'),
18+
twitterDescription: () => $t('about.meta_description'),
1519
})
1620
1721
defineOgImageComponent('Default', {

app/pages/compare.vue

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,26 @@ useSeoMeta({
5252
packages.value.length > 0
5353
? $t('compare.packages.meta_title', { packages: packages.value.join(' vs ') })
5454
: $t('compare.packages.meta_title_empty'),
55+
ogTitle: () =>
56+
packages.value.length > 0
57+
? $t('compare.packages.meta_title', { packages: packages.value.join(' vs ') })
58+
: $t('compare.packages.meta_title_empty'),
59+
twitterTitle: () =>
60+
packages.value.length > 0
61+
? $t('compare.packages.meta_title', { packages: packages.value.join(' vs ') })
62+
: $t('compare.packages.meta_title_empty'),
5563
description: () =>
5664
packages.value.length > 0
5765
? $t('compare.packages.meta_description', { packages: packages.value.join(', ') })
5866
: $t('compare.packages.meta_description_empty'),
67+
ogDescription: () =>
68+
packages.value.length > 0
69+
? $t('compare.packages.meta_description', { packages: packages.value.join(', ') })
70+
: $t('compare.packages.meta_description_empty'),
71+
twitterDescription: () =>
72+
packages.value.length > 0
73+
? $t('compare.packages.meta_description', { packages: packages.value.join(', ') })
74+
: $t('compare.packages.meta_description_empty'),
5975
})
6076
</script>
6177

app/pages/index.vue

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ useSeoMeta({
2727
title: () => $t('seo.home.title'),
2828
ogTitle: () => $t('seo.home.title'),
2929
twitterTitle: () => $t('seo.home.title'),
30-
twitterCard: 'summary_large_image',
3130
description: () => $t('seo.home.description'),
3231
ogDescription: () => $t('seo.home.description'),
3332
twitterDescription: () => $t('seo.home.description'),

app/pages/package-code/[...path].vue

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,21 @@ useSeoMeta({
283283
}
284284
return `Code - ${packageName.value}@${version.value} - npmx`
285285
},
286+
ogTitle: () => {
287+
if (filePath.value) {
288+
return `${filePath.value} - ${packageName.value}@${version.value} - npmx`
289+
}
290+
return `Code - ${packageName.value}@${version.value} - npmx`
291+
},
292+
twitterTitle: () => {
293+
if (filePath.value) {
294+
return `${filePath.value} - ${packageName.value}@${version.value} - npmx`
295+
}
296+
return `Code - ${packageName.value}@${version.value} - npmx`
297+
},
286298
description: () => `Browse source code for ${packageName.value}@${version.value}`,
299+
ogDescription: () => `Browse source code for ${packageName.value}@${version.value}`,
300+
twitterDescription: () => `Browse source code for ${packageName.value}@${version.value}`,
287301
})
288302
289303
defineOgImageComponent('Default', {

app/pages/package-docs/[...path].vue

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ const pageTitle = computed(() => {
9595
9696
useSeoMeta({
9797
title: () => pageTitle.value,
98+
ogTitle: () => pageTitle.value,
99+
twitterTitle: () => pageTitle.value,
100+
description: () => pkg.value?.license ?? '',
101+
ogDescription: () => pkg.value?.license ?? '',
102+
twitterDescription: () => pkg.value?.license ?? '',
98103
})
99104
100105
defineOgImageComponent('Default', {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -456,7 +456,11 @@ useHead({
456456
457457
useSeoMeta({
458458
title: () => (pkg.value?.name ? `${pkg.value.name} - npmx` : 'Package - npmx'),
459+
ogTitle: () => (pkg.value?.name ? `${pkg.value.name} - npmx` : 'Package - npmx'),
460+
twitterTitle: () => (pkg.value?.name ? `${pkg.value.name} - npmx` : 'Package - npmx'),
459461
description: () => pkg.value?.description ?? '',
462+
ogDescription: () => pkg.value?.description ?? '',
463+
twitterDescription: () => pkg.value?.description ?? '',
460464
})
461465
462466
onKeyStroke(

app/pages/search.vue

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -583,10 +583,22 @@ onKeyDown(['ArrowDown', 'ArrowUp', 'Enter'], handleResultsKeydown)
583583
useSeoMeta({
584584
title: () =>
585585
`${query.value ? $t('search.title_search', { search: query.value }) : $t('search.title_packages')} - npmx`,
586+
ogTitle: () =>
587+
`${query.value ? $t('search.title_search', { search: query.value }) : $t('search.title_packages')} - npmx`,
588+
twitterTitle: () =>
589+
`${query.value ? $t('search.title_search', { search: query.value }) : $t('search.title_packages')} - npmx`,
586590
description: () =>
587591
query.value
588592
? $t('search.meta_description', { search: query.value })
589593
: $t('search.meta_description_packages'),
594+
ogDescription: () =>
595+
query.value
596+
? $t('search.meta_description', { search: query.value })
597+
: $t('search.meta_description_packages'),
598+
twitterDescription: () =>
599+
query.value
600+
? $t('search.meta_description', { search: query.value })
601+
: $t('search.meta_description_packages'),
590602
})
591603
592604
defineOgImageComponent('Default', {

app/pages/settings.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ onKeyStroke(
2020
2121
useSeoMeta({
2222
title: () => `${$t('settings.title')} - npmx`,
23+
ogTitle: () => `${$t('settings.title')} - npmx`,
24+
twitterTitle: () => `${$t('settings.title')} - npmx`,
2325
description: () => $t('settings.meta_description'),
26+
ogDescription: () => $t('settings.meta_description'),
27+
twitterDescription: () => $t('settings.meta_description'),
2428
})
2529
2630
defineOgImageComponent('Default', {

app/pages/~[username]/index.vue

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,11 @@ watch(username, () => {
163163
164164
useSeoMeta({
165165
title: () => `~${username.value} - npmx`,
166+
ogTitle: () => `~${username.value} - npmx`,
167+
twitterTitle: () => `~${username.value} - npmx`,
166168
description: () => `npm packages maintained by ${username.value}`,
169+
ogDescription: () => `npm packages maintained by ${username.value}`,
170+
twitterDescription: () => `npm packages maintained by ${username.value}`,
167171
})
168172
169173
defineOgImageComponent('Default', {

0 commit comments

Comments
 (0)