generated from ijkml/nuxt-flint
-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
nuxt.config.ts
122 lines (121 loc) · 3.07 KB
/
nuxt.config.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
import { fileURLToPath } from 'node:url';
import svgLoader from 'vite-svg-loader';
import { redirects } from './redirects';
export default defineNuxtConfig({
compatibilityDate: '2024-08-30',
future: {
compatibilityVersion: 4,
},
// TODO: TEMP FIX
// https://github.com/nuxt/nuxt/issues/28127
build: { transpile: ['shiki'] },
modules: [
'@vueuse/nuxt',
'@unocss/nuxt',
'@nuxt/content',
'@nuxthq/studio',
'@nuxtjs/seo',
'nuxt-umami',
],
umami: {
domains: ['ijkml.dev', 'localhost'],
proxy: 'cloak',
},
site: {
url: 'https://ijkml.dev',
name: 'Moses Laurence (ijkml)',
description: 'Software developer & open-source enthusiast building beautiful, functional web experiences. Let\'s work together!',
defaultLocale: 'en',
},
seo: {
redirectToCanonicalSiteUrl: true,
},
schemaOrg: {
identity: {
type: 'Person',
name: 'Moses Laurence',
alternateName: 'ijkml',
image: '/avatar.png',
sameAs: [
'https://github.com/ijkml',
],
},
},
app: {
pageTransition: { name: 'page', mode: 'out-in' },
head: {
link: [
{ rel: 'icon', type: 'image/svg+xml', href: '/favicon.svg' },
{ rel: 'preload', href: '/fonts/Space-Grotesk-Var.woff2', as: 'font', type: 'font/woff2', crossorigin: true },
],
htmlAttrs: {
lang: 'en-US',
},
meta: [
{
name: 'description',
content: 'Software developer & open-source enthusiast building beautiful, functional web experiences. Let\'s work together!',
},
{ name: 'referrer', content: 'strict-origin-when-cross-origin' },
{ name: 'msvalidate.01', content: '91CC11ED2B60F80CC99F5646E01CD0A2' },
],
},
},
routeRules: {
// Add link shortcuts/redirects
...redirects,
'/posts': { isr: true },
'/posts/**': { isr: true },
'/work': { prerender: true },
'/work/**': { prerender: true },
},
alias: {
'@img': fileURLToPath(new URL('./app/assets/images', import.meta.url)),
'@data': fileURLToPath(new URL('./app/assets/data', import.meta.url)),
},
sitemap: {
strictNuxtContentPaths: true,
sources: [
'/api/__sitemap__/work-urls',
],
},
ogImage: {
fonts: ['Space+Grotesk:400', 'Space+Grotesk:600'],
},
content: {
documentDriven: false,
highlight: {
// Theme used in all color schemes.
theme: 'houston',
preload: ['ts', 'vue', 'js', 'json', 'html', 'css', 'diff', 'scss', 'less', 'shell', 'markdown', 'mdx', 'yaml', 'toml', 'tsx'],
},
},
features: {
inlineStyles: true,
},
experimental: {
typedPages: true,
componentIslands: true,
headNext: true,
},
vite: {
css: {
preprocessorOptions: {
scss: {
additionalData: '@use "~/assets/styles/global.scss" as *;',
},
},
},
plugins: [
svgLoader({
defaultImport: 'url',
}),
],
},
css: ['@unocss/reset/tailwind.css', '~/assets/styles/root.scss'],
devtools: { enabled: true },
devServer: {
host: '',
port: 4444,
},
});