vitepress搭建博客
vitepress搭建博客
之前使用的Hugo搭建了一个博客,感兴趣的可以看看Hugo搭建个人博客,使用了一段时间,配置完成后使用还是相对简单的,不过总感觉不够顺手,后来看到vitepress,就尝试了一下,感觉使用更顺手一些,所以打算换成vitepress,下面记录一下搭建的过程。
搭建博客流程
-
关于使用vitepress搭建博客的基本流程,官方文档已经写的很详细了,简单看一遍照着做就可以搭起来,这里不多赘述。
官方文档链接:https://vitepress.dev/zh/guide/getting-started -
下面记录几个特殊配置,方便使用。
关于顶部导航栏和侧边栏的配置
- 关于顶部导航栏和侧边栏的配置,官方文档只是给了一个简单示例,而且是统一都写在了一个
config.mts
配置文件中,如果后期博客多了,每次添加新博客,都要修改这个配置文件,而且都在一个文件,很多嵌套关系,很容易改错了,针对这个问题,我们可以把顶部导航栏和侧边栏的配置单独提出来分开进行管理,这样就不用每次都去修改config.mts
文件了。
顶部导航栏单独提出
- 在
.vitepress/
目录下新建文件夹themeConfig
,然后在themeConfig
文件夹下新建文件nav.ts
,下面代码中,我们定义了一个NavItem[]
类型的nav
,在其中配置我们自定义的导航栏,我们只需要在config.mts
文件中引用这个nav
就可以了。
nav.ts
文件
import { DefaultTheme } from 'vitepress' export const nav: DefaultTheme.NavItem[] = [ { text: '编程技术', items: [ { text: 'Git', link: '/tec/git/git使用.md' }, ] }, { text: '工具', items: [ { text: '编程环境', link: '/tools/env/python安装及pip源切换.md' }, { text: '记录', link: '/tools/notes/博客创建.md' } ] }, { text: '关于', link: '/about' } ]
- 在
config.mts
文件中引用这个nav
import { defineConfig } from 'vitepress' import { nav } from './themeConfig/nav' // [!code ++] export default defineConfig({ ... themeConfig: { nav: nav, // [!code ++] ... } })
侧边栏单独提出
-
侧边栏提出和导航栏方式类似,新建文件
sidebar.ts
,,下面代码中,我们定义了一个Sidebar
类型的sidebar
,在其中配置我们自定义的导航栏,这样,我们只需要在config.mts
文件中引用这个sidebar
就可以了。 -
sidebar.ts
文件
import { DefaultTheme } from 'vitepress' export const sidebar: DefaultTheme.Sidebar = [ { text: '笔记', items: [ { text: '使用Github+PicGo搭建图床', link: '/tools/notes/使用Github+PicGo搭建图床' }, { text: 'vitepress搭建博客', link: '/tools/notes/vitepress搭建博客' }, ] } ]
-
但是随着博客和侧边栏配置变多,
sidebar.ts
文件会变得很大,也不容易管理,所以我们可以对sidebar.ts
文件进行拆分,将每个分类的侧边栏单独拆分出来。 -
在
themeConfig
下新建文件夹sidebar\tools
,新建文件notes.ts
,下面的代码我们定义了一个SidebarItem[]
类型的tools_notes
,然后在notes.ts
中配置我们笔记分类对应的侧边栏,并在sidebar.ts
中引用这个tools_notes
。 -
这样笔记分类下新添加博客时就可以只修改
notes.ts
文件就可以,里面的结构比不拆分清晰很多,容易修改,不易出错。 -
notes.ts
文件
import { DefaultTheme } from 'vitepress' export const tools_notes: DefaultTheme.SidebarItem[] = [ { text: '笔记', items: [ { text: '使用Github+PicGo搭建图床', link: '/tools/notes/使用Github+PicGo搭建图床' }, { text: 'vitepress搭建博客', link: '/tools/notes/vitepress搭建博客' }, ] } ]
- 在
sidebar.ts
文件中引用这个tools_notes
import { DefaultTheme } from 'vitepress' import { tools_notes } from './sidebar/tools/notes' // [!code ++] import { self_talk } from './sidebar/self-talk' export const sidebar: DefaultTheme.Sidebar = { ... // 工具->记录 '/tools/notes/': tools_notes, // [!code ++] // 碎碎念 '/self-talk/': self_talk }
-
其中
'/tools/notes/': tools_notes,
这句含义是当用户位于/tools/notes/
目录时,会显示此侧边栏。
具体参考官方多侧边栏配置:https://vitepress.dev/zh/reference/default-theme-sidebar#multiple-sidebars -
在
config.mts
文件中引用这个sidebar
import { defineConfig } from 'vitepress' import { sidebar } from './themeConfig/sidebar' // [!code ++] export default defineConfig({ ... themeConfig: { sidebar: sidebar, // [!code ++] ... } })
目录结构
- 最终目录结构大致如下:
├── .vitepress │ ├── config.mts │ ├── themeConfig │ │ ├── nav.ts │ │ ├── sidebar.ts │ │ └── sidebar │ │ └── tools │ │ └── notes.ts
主题配置
默认主题
-
主题配置文件
config.mts
中,可以配置很多主题相关的配置,具体可以参考官方文档:https://vitepress.dev/zh/reference/default-theme-config -
如下配置中,可以在官方文档查看各项配置的作用,都有详细说明。
import { defineConfig } from 'vitepress' import { nav } from './themeConfig/nav' import { sidebar } from './themeConfig/sidebar' export default defineConfig({ ... themeConfig: { nav: nav, sidebar: sidebar, logo: '/avatar.jpg', search: { provider: 'local' }, socialLinks: [ { icon: 'github', link: 'https://github.com/mazy699' } ], outline: { level: [2, 6], label: '目录' }, lastUpdated: { text: '最后更新于', formatOptions: { dateStyle: 'full', timeStyle: 'medium' } }, darkModeSwitchLabel: '主题', lightModeSwitchTitle: '切换到浅色模式', darkModeSwitchTitle: '切换到深色模式', sidebarMenuLabel: '菜单', returnToTopLabel: '返回顶部', docFooter: { prev: '上一页', next: '下一页' }, footer: { copyright: 'MIT Licensed | Copyright © 2021-present Mazy' }, } })
Markdown相关
- 代码块显示行号, 具体可以参考官方文档:https://vitepress.dev/zh/guide/markdown#line-numbers
export default defineConfig({ ... markdown: { lineNumbers: true }, themeConfig: { ... } })
- 更多Markdown相关配置,如代码高亮式样等等,可以参考官方文档:https://vitepress.dev/zh/reference/site-config#markdown
默认的我使用感觉还可以,就没有修改了
本文来自博客园,作者:Mazy_699,转载请注明原文链接:https://www.cnblogs.com/mazy-699/p/18145429
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通