From 33bf025fdbf848446d4f8d382e2a58e7b645c58f Mon Sep 17 00:00:00 2001 From: Sabrina Hennrich Date: Wed, 11 Jun 2025 18:19:53 +0200 Subject: [PATCH] json ld + nav --- components/template/NavBar.vue | 8 ++++++-- composables/usePageMeta.ts | 35 ++++++++++++++++++++++++++++++++-- i18n/locales/de.json | 2 ++ 3 files changed, 41 insertions(+), 4 deletions(-) diff --git a/components/template/NavBar.vue b/components/template/NavBar.vue index 02df527..b710485 100644 --- a/components/template/NavBar.vue +++ b/components/template/NavBar.vue @@ -101,8 +101,12 @@ const navigationLinks = [ { - routeKey: 'webagency', - label: 'menu.webagency' + routeKey: '', + label: 'menu.webagency', + subNav: [ + { routeKey: 'webagency', label: 'menu.menuAbout' }, + { routeKey: 'magazin', label: 'menu.menuMagazin' } + ] }, { routeKey: '', diff --git a/composables/usePageMeta.ts b/composables/usePageMeta.ts index 446b908..1b54941 100644 --- a/composables/usePageMeta.ts +++ b/composables/usePageMeta.ts @@ -7,6 +7,31 @@ import { storeToRefs } from 'pinia' import { i18nPages } from '../i18n/i18n-pages' // relativ zu deinem Composable-Pfad anpassen! export function usePageMeta () { + + const nearbyPlaces = [ + 'Herrsching', 'Starnberg', 'Landsberg am Lech', + 'Weilheim', 'Fürstenfeldbruck', 'Kaufering', + 'Andechs', 'Seefeld', 'Utting am Ammersee', + 'Dießen am Ammersee', 'Schondorf am Ammersee', + 'Wörthsee', 'Inning am Ammersee', 'Greifenberg', + 'Pöcking', 'Weßling', 'Gauting', 'Gilching', + 'Feldafing', 'Tutzing', 'Krailling', 'Germering', 'München', + 'Erding', 'Augsburg', 'Wolfratshausen', 'Bad Tölz', 'Murnau', + 'Grünwald', 'Planegg', 'Oberhaching', 'Geltendorf', 'Peißenberg', + 'Bad Tölz', 'Schongau', 'Peißenberg', 'Schwabmünchen', + 'Oberbayern', 'Bayern', 'Deutschland' + ] + + function makeAreaServedArray(names: string[]) { + return names.map(name => { + if (name === 'Deutschland') return { '@type': 'Country', name } + if (name === 'Bayern') return { '@type': 'State', name } + if (name === 'Oberbayern') return { '@type': 'AdministrativeArea', name } + return { '@type': 'Place', name } + }) + } + + const route = useRoute() const mainStore = useMainStore() const { companyinfo } = storeToRefs(mainStore) @@ -49,6 +74,11 @@ export function usePageMeta () { postalCode: companyinfo.value.postalcode, addressCountry: 'DE' }, + geo: { + '@type': 'GeoCoordinates', + latitude: 47.9975, + longitude: 11.1864 + }, openingHoursSpecification: [ { '@type': 'OpeningHoursSpecification', @@ -56,8 +86,9 @@ export function usePageMeta () { opens: '09:00', closes: '17:00' } - ] - } + ], + areaServed: makeAreaServedArray(nearbyPlaces) + } // Falls Home oder References: ergänze das Rating (2 Bewertungen mit 5 Sternen) let jsonLd = undefined diff --git a/i18n/locales/de.json b/i18n/locales/de.json index ac5c489..23f1de3 100644 --- a/i18n/locales/de.json +++ b/i18n/locales/de.json @@ -4,6 +4,8 @@ "upperBavaria": "Oberbayern", "menu": { "webagency": "Webagentur", + "menuAbout": "Über uns", + "menuMagazin": "Wissenswertes", "services": "Leistungen", "sectors": "Branchen", "menuCms": "Headless Content-Management-System (CMS)",