129 lines
3.2 KiB
TypeScript
129 lines
3.2 KiB
TypeScript
import { defineUserConfig } from 'vuepress'
|
||
import { plumeTheme } from 'vuepress-theme-plume'
|
||
import { viteBundler } from '@vuepress/bundler-vite'
|
||
import { commentPlugin } from '@vuepress/plugin-comment'
|
||
import { umamiAnalyticsPlugin } from '@vuepress/plugin-umami-analytics'
|
||
import { enrichBlogReadingTimePlugin } from './plugins/enrichBlogReadingTime'
|
||
import path from 'node:path'
|
||
import { fileURLToPath } from 'node:url'
|
||
|
||
const __filename = fileURLToPath(import.meta.url)
|
||
const __dirname = path.dirname(__filename)
|
||
|
||
/** 博客目录名 → 中文分类展示(Plume 从路径自动生成分类,此处仅改展示名) */
|
||
const BLOG_CATEGORY_LABEL_ZH: Record<string, string> = {
|
||
blog: '博客',
|
||
competition: '竞赛',
|
||
technology: '技术',
|
||
website: '网站',
|
||
elysia: '爱莉希雅',
|
||
collect: '合集',
|
||
}
|
||
|
||
export default defineUserConfig({
|
||
base: '/',
|
||
lang: 'zh-CN',
|
||
title: '仲夏夜之梦',
|
||
description: '爱与回忆的小世界,记录生活中的每一份温暖与感动',
|
||
|
||
head: [
|
||
['link', { rel: 'icon', type: 'image/png', href: 'https://theme-plume.vuejs.press/favicon-32x32.png' }],
|
||
],
|
||
|
||
bundler: viteBundler({
|
||
viteOptions: {
|
||
resolve: {
|
||
alias: {
|
||
'@theme/Blog/VPPostItem.vue': path.resolve(__dirname, './theme/Blog/VPPostItem.vue'),
|
||
},
|
||
},
|
||
},
|
||
}),
|
||
shouldPrefetch: false,
|
||
|
||
theme: plumeTheme({
|
||
/* 站点域名,启动 SEO 优化 */
|
||
hostname: 'https://www.simengweb.com',
|
||
/* 博客文章页面链接前缀 */
|
||
article: '/article/',
|
||
|
||
/* 启用数学公式支持和Mermaid图表 */
|
||
markdown: {
|
||
math: {
|
||
type: 'katex',
|
||
},
|
||
mermaid: true,
|
||
demo: true,
|
||
},
|
||
/**
|
||
* 编译缓存,加快编译速度
|
||
*/
|
||
cache: 'filesystem',
|
||
|
||
/* 本地搜索, 默认启用 */
|
||
search: { provider: 'local' },
|
||
footer: {
|
||
message: '愿每一份温柔都被世界珍藏 ✨',
|
||
copyright: '<a href="https://beian.miit.gov.cn/" target="_blank" aria-label="gongan filing address">沪ICP备2023010022号-1</a>©2025祀梦的个人博客'
|
||
},
|
||
/**
|
||
* 博客相关配置
|
||
*/
|
||
blog: {
|
||
postCover: {
|
||
layout: 'left',
|
||
// width: 300,
|
||
compact: true
|
||
},
|
||
categoriesTransform: (categories) =>
|
||
categories.map((c) => ({
|
||
...c,
|
||
name: BLOG_CATEGORY_LABEL_ZH[c.name] ?? c.name,
|
||
})),
|
||
},
|
||
|
||
/**
|
||
* 文章贡献者配置
|
||
*/
|
||
contributors: {
|
||
mode: 'inline',
|
||
info: [
|
||
{
|
||
username: 'si-meng-spec',
|
||
name: 'si-meng-spec',
|
||
alias: ['si-meng-spec'],
|
||
}
|
||
]
|
||
},
|
||
|
||
/**
|
||
* Git插件配置
|
||
* 设置为true以在开发环境也启用
|
||
*/
|
||
plugins: {
|
||
git: true
|
||
},
|
||
|
||
codeHighlighter: {
|
||
lineNumbers: true,
|
||
}
|
||
|
||
}),
|
||
|
||
plugins: [
|
||
commentPlugin({
|
||
provider: 'Waline',
|
||
serverURL: 'https://vercel.simengweb.com',
|
||
meta: ['nick'],
|
||
requiredMeta: ['nick']
|
||
}),
|
||
umamiAnalyticsPlugin({
|
||
id: '2114ab32-5543-4be1-b5e8-c4f2c9269d0d',
|
||
link: 'https://umami.simengweb.com/script.js',
|
||
domains: ['www.simengweb.com'],
|
||
cache: true
|
||
}),
|
||
enrichBlogReadingTimePlugin(),
|
||
],
|
||
})
|