Skip to content

Commit 1a2ee9f

Browse files
committed
feat: add useNuxtifySiteTitle composable
1 parent 226b108 commit 1a2ee9f

File tree

2 files changed

+20
-5
lines changed

2 files changed

+20
-5
lines changed

playground/app.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
<script setup lang="ts">
2-
import { useNuxtifyConfig, useServerSeoMeta } from '#imports'
3-
42
// App state
53
const nuxtifyConfig = useNuxtifyConfig()
64
const dialog = useDialog()
75
const toast = useToast()
86
97
// Page info
8+
useNuxtifySiteTitle()
109
useServerSeoMeta({
1110
title: `${nuxtifyConfig.brand?.name} playground`,
1211
description: `This is the ${nuxtifyConfig.brand?.name} playground.`,

src/runtime/composables/nuxtify.ts

Lines changed: 19 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
1-
// Types
21
import type { ModuleOptions } from '../../types'
3-
4-
import { useAppConfig } from '#imports'
2+
import { useAppConfig, useHead } from '#imports'
53

64
export const useNuxtifyConfig = (): ModuleOptions => useAppConfig().nuxtify
5+
6+
export const useNuxtifySiteTitle = ({
7+
separator = '|',
8+
siteName = '',
9+
}: { separator?: string, siteName?: string } = {}) => {
10+
// App state
11+
const nuxtifyConfig = useNuxtifyConfig()
12+
13+
useHead({
14+
titleTemplate: (titleChunk) => {
15+
return titleChunk ? `${titleChunk} %separator %siteName` : '%siteName'
16+
},
17+
templateParams: {
18+
siteName: siteName || nuxtifyConfig.brand?.name,
19+
separator,
20+
},
21+
})
22+
}

0 commit comments

Comments
 (0)