From a064da40594b4ba416ad88aa29eb7dc2a5ccfc7d Mon Sep 17 00:00:00 2001 From: Hofstetter Benjamin Date: Thu, 18 Sep 2025 14:36:25 +0200 Subject: [PATCH 1/3] useSeoMeta does not work with SSR Fixes #25 --- .../[datasetId]/distribution/[distributionId].vue | 9 ++++++++- opendata.swiss/ui/pages/datasets/[datasetId]/index.vue | 8 +++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue b/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue index a865159..630d4b0 100644 --- a/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue +++ b/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue @@ -63,8 +63,15 @@ const breadcrumbs = [ } ] +const seoTitle = computed(() => { + if (distribution.value?.title) { + return `${distribution.value.title} | ${t('message.dataset_detail.distribution')} | opendata.swiss` + } + return ` ${t('message.dataset_detail.distribution')} | opendata.swiss` +}) + useSeoMeta({ - title: `${distribution.value?.title} | ${resultEnhanced.value?.getTitle} | ${t('message.header.navigation.datasets')} | opendata.swiss`, + title: seoTitle, }) await suspense() diff --git a/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue b/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue index 3182692..48c71e8 100644 --- a/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue +++ b/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue @@ -73,9 +73,15 @@ const breadcrumbs = computed(() => { return result }) +const seoTitle = computed(() => { + if (dataset.value?.title) { + return `${dataset.value.title} | ${t('message.header.navigation.datasets')} | opendata.swiss` + } + return `opendata.swiss | ${t('message.header.navigation.datasets')}` +}) useSeoMeta({ - title: `${resultEnhanced.value?.getTitle} | ${t('message.header.navigation.datasets')} | opendata.swiss`, + title: seoTitle, }) From ca47ad0e74de88e995798574f8f41245fb877801 Mon Sep 17 00:00:00 2001 From: Hofstetter Benjamin Date: Thu, 18 Sep 2025 15:53:59 +0200 Subject: [PATCH 2/3] useSeoMeta does not work with SSR Fixes #25 --- .../distribution/[distributionId].vue | 17 +++++------------ .../ui/pages/datasets/[datasetId]/index.vue | 12 +++--------- 2 files changed, 8 insertions(+), 21 deletions(-) diff --git a/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue b/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue index 630d4b0..00a5d50 100644 --- a/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue +++ b/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue @@ -19,8 +19,8 @@ const { locale, t } = useI18n(); const route = useRoute() const router = useRouter() -const datasetId = computed(() => route.params.datasetId as string) -const distributionId = computed(() => route.params.distributionId as string) +const datasetId = route.params.datasetId as string +const distributionId = route.params.distributionId as string const { useResource } = useDatasetsSearch() @@ -40,7 +40,7 @@ const distribution = computed(() => { if (!dataset.value) { return undefined } - const dists = dataset.value.distributions.find(d => d.id === distributionId.value) ?? undefined + const dists = dataset.value.distributions.find(d => d.id === distributionId) ?? undefined return dists }) @@ -55,7 +55,7 @@ const breadcrumbs = [ title: resultEnhanced.value?.getTitle, path: { name: 'datasets-datasetId', - params: { datasetId: datasetId.value }, + params: { datasetId: datasetId }, }, }, { @@ -63,15 +63,8 @@ const breadcrumbs = [ } ] -const seoTitle = computed(() => { - if (distribution.value?.title) { - return `${distribution.value.title} | ${t('message.dataset_detail.distribution')} | opendata.swiss` - } - return ` ${t('message.dataset_detail.distribution')} | opendata.swiss` -}) - useSeoMeta({ - title: seoTitle, + title: () => `${distribution.value?.title} | ${t('message.dataset_detail.distribution')} | opendata.swiss`, }) await suspense() diff --git a/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue b/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue index 48c71e8..7370956 100644 --- a/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue +++ b/opendata.swiss/ui/pages/datasets/[datasetId]/index.vue @@ -22,7 +22,7 @@ import { useSeoMeta } from 'nuxt/app'; const { locale, t } = useI18n(); const route = useRoute() const router = useRouter() -const datasetId = computed(() => route.params.datasetId as string) +const datasetId = route.params.datasetId as string const { useResource } = useDatasetsSearch() const { query, isSuccess, resultEnhanced } = useResource(datasetId) @@ -66,22 +66,16 @@ const breadcrumbs = computed(() => { title: resultEnhanced.value?.getTitle, path: { name: 'datasets-datasetId', - params: { datasetId: datasetId.value }, + params: { datasetId: datasetId }, }, }) return result }) -const seoTitle = computed(() => { - if (dataset.value?.title) { - return `${dataset.value.title} | ${t('message.header.navigation.datasets')} | opendata.swiss` - } - return `opendata.swiss | ${t('message.header.navigation.datasets')}` -}) useSeoMeta({ - title: seoTitle, + title: () => `${dataset.value?.title} | ${t('message.header.navigation.datasets')} | opendata.swiss` }) From c6bbb48d4de1c22ce8fabfeb1bb72727f3b7d4f5 Mon Sep 17 00:00:00 2001 From: Hofstetter Benjamin Date: Thu, 18 Sep 2025 16:11:59 +0200 Subject: [PATCH 3/3] use whole path in title --- .../datasets/[datasetId]/distribution/[distributionId].vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue b/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue index 00a5d50..0333513 100644 --- a/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue +++ b/opendata.swiss/ui/pages/datasets/[datasetId]/distribution/[distributionId].vue @@ -64,7 +64,7 @@ const breadcrumbs = [ ] useSeoMeta({ - title: () => `${distribution.value?.title} | ${t('message.dataset_detail.distribution')} | opendata.swiss`, + title: () => `${distribution.value?.title} | ${dataset.value?.title} | ${t('message.header.navigation.datasets')} | opendata.swiss`, }) await suspense()