feat!: upgrade to Nuxt 4 for kit and client (#901) · nuxt/devtools@bc5817e
11import type { BuiltinLanguage } from 'shiki'
2-import { defineNuxtModule, extendViteConfig, logger } from '@nuxt/kit'
2+import { addVitePlugin, defineNuxtModule, logger } from '@nuxt/kit'
33import { consola } from 'consola'
44import LinkAttributes from 'markdown-it-link-attributes'
55import { createHighlighter } from 'shiki'
@@ -24,39 +24,38 @@ export default defineNuxtModule({
24242525nuxt.options.extensions.push('.md')
262627-extendViteConfig((config) => {
28-config.plugins!.push(
29-Markdown({
30-async markdownItSetup(md) {
31-md.use(LinkAttributes, {
32-matcher: (link: string) => /^https?:\/\//.test(link),
33-attrs: {
34-target: '_blank',
35-rel: 'noopener',
27+addVitePlugin(() => {
28+return Markdown({
29+frontmatter: false,
30+async markdownItSetup(md) {
31+md.use(LinkAttributes, {
32+matcher: (link: string) => /^https?:\/\//.test(link),
33+attrs: {
34+target: '_blank',
35+rel: 'noopener',
36+},
37+})
38+39+const highlighter = await createHighlighter({
40+themes: [
41+'vitesse-dark',
42+'vitesse-light',
43+],
44+langs: Object.keys(bundledLanguages),
45+})
46+47+md.options.highlight = (code, lang) => {
48+const _lang = (highlighter.getLoadedLanguages().includes(lang) ? lang : 'text') as BuiltinLanguage
49+return highlighter.codeToHtml(code, {
50+lang: _lang || 'text',
51+themes: {
52+dark: 'vitesse-dark',
53+light: 'vitesse-light',
3654},
3755})
38-39-const highlighter = await createHighlighter({
40-themes: [
41-'vitesse-dark',
42-'vitesse-light',
43-],
44-langs: Object.keys(bundledLanguages),
45-})
46-47-md.options.highlight = (code, lang) => {
48-const _lang = (highlighter.getLoadedLanguages().includes(lang) ? lang : 'text') as BuiltinLanguage
49-return highlighter.codeToHtml(code, {
50-lang: _lang || 'text',
51-themes: {
52-dark: 'vitesse-dark',
53-light: 'vitesse-light',
54-},
55-})
56-}
57-},
58-}),
59-)
60-})
56+}
57+},
58+})
59+}, { server: false, client: true })
6160},
6261})