(seo) add title and description to some pages missing it

This commit is contained in:
Valentyne Stigloher 2024-12-28 15:35:08 +01:00
parent b1fd9adadc
commit 36dbf51c75
4 changed files with 69 additions and 79 deletions

View File

@ -1,3 +1,26 @@
<script setup lang="ts">
import { useAsyncData, useNuxtApp } from 'nuxt/app';
import { computed } from 'vue';
import useSimpleHead from '~/composables/useSimpleHead.ts';
import parseMarkdown from '~/src/parseMarkdown.ts';
const { $translator: translator } = useNuxtApp();
const { data: license } = useAsyncData(async () => {
const markdown = (await import('../LICENSE.md')).default;
return parseMarkdown(markdown, translator);
});
const title = computed(() => license.value?.title ?? null);
const banner = computed(() => license.value?.img ?? null);
const content = computed(() => license.value?.content);
useSimpleHead({
title,
banner,
description: computed(() => license.value?.intro ?? ''),
}, translator);
</script>
<template>
<Page>
<div class="blog-post">
@ -12,32 +35,3 @@
</div>
</Page>
</template>
<script lang="ts">
import { useAsyncData, useNuxtApp } from 'nuxt/app';
import { computed, defineComponent } from 'vue';
import useSimpleHead from '../composables/useSimpleHead.ts';
import parseMarkdown from '../src/parseMarkdown.ts';
export default defineComponent({
setup() {
const { $translator: translator } = useNuxtApp();
const { data: license } = useAsyncData(async () => {
const markdown = (await import('../LICENSE.md')).default;
return parseMarkdown(markdown, translator);
});
const title = computed(() => license.value?.title ?? null);
const banner = computed(() => license.value?.img ?? null);
const content = computed(() => license.value?.content);
useSimpleHead({
title,
banner,
}, translator);
return {
title,
content,
};
},
});
</script>

View File

@ -1,3 +1,24 @@
<script setup lang="ts">
import useConfig from '../composables/useConfig.ts';
definePageMeta({
translatedPaths: (config) => {
if (!config.user.enabled) {
return [];
}
return [`/${encodeURIComponent(config.user.privacyRoute)}`];
},
});
const { $translator: translator } = useNuxtApp();
useSimpleHead({
title: translator.translate('privacy.header'),
description: translator.translate('privacy.content.intro'),
}, translator);
const config = useConfig();
</script>
<template>
<Page>
<h2>
@ -39,29 +60,3 @@
<p><T>privacy.content.gdpr</T></p>
</Page>
</template>
<script>
import useConfig from '../composables/useConfig.ts';
export default {
setup() {
definePageMeta({
translatedPaths: (config) => {
if (!config.user.enabled) {
return [];
}
return [`/${encodeURIComponent(config.user.privacyRoute)}`];
},
});
return {
config: useConfig(),
};
},
methods: {
revokeCookieConsent() {
window.googlefc.callbackQueue.push(window.googlefc.showRevocationMessage);
},
},
};
</script>

View File

@ -9,6 +9,12 @@ definePageMeta({
return [`/${encodeURIComponent(config.user.termsRoute)}`];
},
});
const { $translator: translator } = useNuxtApp();
useSimpleHead({
title: translator.translate('terms.header'),
description: translator.translate('terms.content.intro'),
}, translator);
</script>
<template>

View File

@ -1,3 +1,22 @@
<script setup lang="ts">
import { useNuxtApp } from 'nuxt/app';
import useConfig from '~/composables/useConfig.ts';
import useSimpleHead from '~/composables/useSimpleHead.ts';
definePageMeta({
translatedPaths: (config) => translatedPathByConfigModule(config.workshops),
});
const { $translator: translator } = useNuxtApp();
useSimpleHead({
title: translator.translate('workshops.headerLong'),
description: translator.translate('workshops.content')[0],
}, translator);
const config = useConfig();
</script>
<template>
<Page v-if="config.workshops?.enabled">
<h2>
@ -23,27 +42,3 @@
<Mission />
</Page>
</template>
<script lang="ts">
import { useNuxtApp } from 'nuxt/app';
import { defineComponent } from 'vue';
import useConfig from '../composables/useConfig.ts';
import useSimpleHead from '../composables/useSimpleHead.ts';
export default defineComponent({
setup() {
definePageMeta({
translatedPaths: (config) => translatedPathByConfigModule(config.workshops),
});
const { $translator: translator } = useNuxtApp();
useSimpleHead({
title: translator.translate('workshops.headerLong'),
}, translator);
return {
config: useConfig(),
};
},
});
</script>