/* * @LastEditTime: 2024-06-24 00:44:59 * @Description: ... * @Date: 2023-09-19 19:04:57 * @Author: isboyjc * @LastEditors: isboyjc */ import path from 'path' import { fileURLToPath } from 'url'; import { defineConfig } from 'vitepress' // 原子CSS UnoCSS import UnoCSS from "unocss/vite"; // 组件自动引入 import Components from 'unplugin-vue-components/vite' // Iconify 解析插件 import Icons from 'unplugin-icons/vite' // Iconify 自动引入解析器 import IconsResolver from 'unplugin-icons/resolver' // icon 加载 loader import { FileSystemIconLoader } from 'unplugin-icons/loaders' import {description, title, titleEn, descriptionEn, keywords, ico, site, icp, publicSecurityFiling, mail} from './meta' import {icons} from "./icon" const __dirname = path.dirname(fileURLToPath(import.meta.url)); const resolve = (dir) => dir ? path.resolve(__dirname, '../', dir) : __dirname // https://vitepress.dev/reference/site-config export default defineConfig({ lang: 'zh', locales: { root: { label: '简体中文', lang: 'zh', title, description, link: '/', head: [ ['meta', { name: 'referrer', content: 'no-referrer-when-downgrade' }], ['meta', { name: 'keywords', content: keywords }], ['meta', { name: 'author', content: 'isboyjc' }], ['meta', { name: 'application-name', content: title }], ['meta', { name: 'apple-mobile-web-app-title', content: title }], ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'default' }], ['link', { rel: 'shortcut icon', href: ico }], ['link', { rel: 'icon', type: 'image/x-icon', href: ico }], // ['link', { rel: 'mask-icon', href: '.svg', color: '#06f' }], // ['meta', { name: 'theme-color', content: '#06f' }], // webfont ['link', { rel: 'dns-prefetch', href: 'https://fonts.googleapis.com' }], ['link', { rel: 'dns-prefetch', href: 'https://fonts.gstatic.com' }], ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.googleapis.com' }], ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.gstatic.com' }], // og ['meta', { property: 'og:type', content: 'website' }], ['meta', { property: 'og:description', content: description }], ['meta', { property: 'og:url', content: site }], ['meta', { property: 'og:locale', content: 'zh_CN' }], ], themeConfig: { outline: 'deep', outlineTitle: '目录...', returnToTopLabel: '返回顶部', darkModeSwitchLabel: '模式', sidebarMenuLabel: '归档', lastUpdatedText:"最后更新时间", docFooter: { prev: '上一页', next: '下一页', }, nav: [ { text: '快速了解', link: '/docs/guide' }, { text: 'API & 扩展', link: '/docs/api/api' }, { text: '订阅', link: '/docs/setting/subscribe' }, { text: '联系我们', link: '/docs/team/support' } ], sidebar: { '/docs': [ { text: '公告', link: '/docs/notice' }, { text: '快速了解', link: '/docs/guide' }, { text: '介绍', items: [ { text: '记录', link: '/docs/basic/record' }, { text: '编排', link: '/docs/basic/layout' }, { text: '编辑器', link: '/docs/basic/editor' }, { text: '微信录入', link: '/docs/basic/wechat' }, { text: '多级标签', link: '/docs/basic/label' }, { text: '每日回顾', link: '/docs/basic/review' }, { text: '快速搜索', link: '/docs/basic/search' }, ] }, { text: '帐号 & 订阅', items: [ { text: '关于订阅', link: '/docs/setting/subscribe' }, { text: '帐号设置', link: '/docs/setting/account' }, { text: '数据迁移', link: '/docs/setting/transfer' }, { text: '用户反馈', link: '/docs/setting/feedback' }, ] }, { text: 'API & 扩展', items: [ { text: 'API', link: '/docs/api/api' }, { text: '扩展', link: '/docs/api/extend' } ] }, { text: '团队', items: [ { text: '关于我们', link: '/docs/team/about' }, { text: '联系我们', link: '/docs/team/support' } ] }, { text: '服务协议', items: [ { text: '用户协议', link: '/docs/other/ua' }, { text: '隐私协议', link: '/docs/other/pa' } ] } ] }, socialLinks: [ { icon: icons.mail, link: `Mailto:${mail}` } ], footer: { psf: publicSecurityFiling, icp: icp, }, }, }, en: { label: 'English', lang: 'en', title: titleEn, description: descriptionEn, link: '/en/', head: [ ['meta', { name: 'referrer', content: 'no-referrer-when-downgrade' }], ['meta', { name: 'keywords', content: keywords }], ['meta', { name: 'author', content: 'isboyjc' }], ['meta', { name: 'application-name', content: titleEn }], ['meta', { name: 'apple-mobile-web-app-title', content: titleEn }], ['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'default' }], ['link', { rel: 'shortcut icon', href: ico }], ['link', { rel: 'icon', type: 'image/x-icon', href: ico }], // ['link', { rel: 'mask-icon', href: '.svg', color: '#06f' }], // ['meta', { name: 'theme-color', content: '#06f' }], // webfont ['link', { rel: 'dns-prefetch', href: 'https://fonts.googleapis.com' }], ['link', { rel: 'dns-prefetch', href: 'https://fonts.gstatic.com' }], ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.googleapis.com' }], ['link', { rel: 'preconnect', crossorigin: 'anonymous', href: 'https://fonts.gstatic.com' }], // og ['meta', { property: 'og:type', content: 'website' }], ['meta', { property: 'og:description', content: descriptionEn }], ['meta', { property: 'og:url', content: site }], ['meta', { property: 'og:locale', content: 'zh_CN' }], ], themeConfig: { nav: [ { text: 'Guide', link: '/en/docs/guide' }, { text: 'API & Extend', link: '/en/docs/api/api' }, { text: 'Subscribe', link: '/en/docs/setting/subscribe' }, { text: 'Contact Us', link: '/en/docs/team/support' } ], sidebar: { '/en/docs': [ { text: 'Notice', link: '/en/docs/notice' }, { text: 'Get Guide', link: '/en/docs/guide' }, { text: 'Introduce', items: [ { text: 'Record', link: '/en/docs/basic/record' }, { text: 'Layout', link: '/en/docs/basic/layout' }, { text: 'Editor', link: '/en/docs/basic/editor' }, { text: 'WeChat Input', link: '/en/docs/basic/wechat' }, { text: 'Multi Level Tags', link: '/en/docs/basic/label' }, { text: 'Daily Review', link: '/en/docs/basic/review' }, { text: 'Quick Search', link: '/en/docs/basic/search' }, ] }, { text: 'Account & Subscribe', items: [ { text: 'About Subscribe', link: '/en/docs/setting/subscribe' }, { text: 'Account Settings', link: '/en/docs/setting/account' }, { text: 'Data Migration ', link: '/en/docs/setting/transfer' }, { text: 'User Feedback', link: '/en/docs/setting/feedback' }, ] }, { text: 'API & Extend', items: [ { text: 'API', link: '/en/docs/api/api' }, { text: 'Extend', link: '/en/docs/api/extend' } ] }, { text: 'Team', items: [ { text: 'About Us', link: '/en/docs/team/about' }, { text: 'Contact Us', link: '/en/docs/team/support' } ] }, { text: 'Service Agreement', items: [ { text: 'User Agreement', link: '/en/docs/other/ua' }, { text: 'Privacy Agreement', link: '/en/docs/other/pa' } ] } ] }, socialLinks: [ { icon: icons.mail, link: `Mailto:${mail}` } ], footer: { psf: publicSecurityFiling, icp: icp, }, }, } }, markdown: { lineNumbers: true, }, // vite配置 vite: { plugins: [ // 插件 Components({ // dirs 指定自动引入组件所在目录位置 dirs: [resolve('.vitepress/theme/components')], include: [/\.vue$/, /\.vue\?vue/, /\.md$/], resolvers: [ IconsResolver({ prefix: 'icon', // 默认 iconify 集合别名 // alias: { // vsci: 'vscode-icons' // }, customCollections: ['custom'] }) ] }), Icons({ compiler: 'vue3', customCollections: { // custom 图标集, 给svg文件设置fill="currentColor"属性,使图标的颜色具有适应性 custom: FileSystemIconLoader('public/svg/custom', svg => svg.replace(/^