Sine.

VitePress+Markdown搭建个人博客

从选择静态博客方案出发,记录 VitePress 的安装初始化、主题配置、搜索、图标、数学公式、图片懒加载和构建预览流程。

​ 拥有个人博客是一件很酷的事情,你可以用它为自己构建知识库,作为在线笔记,或分享一些有趣的研究.

​ 在大学时期,我使用Wordpress作为个人博客的解决方案.因为他可以不需要代码,只需要懂得一点点基础的Linux知识,将Wordpress部署到自己的服务器上就行.

​ Wordpress非常优秀,有非常丰富的生态,各种现成的主题可以挑选.你可以在一天内搭建好一个功能完整的商业网站,还附带完整的后台.我将WordPress作为我的博客解决方案持续使用了6年时间,它稳定且可靠,但是最后我还是决定将他换掉,因为他对于博客而言太臃肿了,或许是对我而言太臃肿了.

​ 我一直将博客作为我的在线笔记,他只需要能够正常显示文章就行了,我并不需要账户管理,评论管理这些功能,他反而使我的网页加载变慢.我忽然意识到一点,我其实只是需要一个静态网页.

​ 并且由于我习惯使用Markdown来记录笔记,每次发表新的博客,都需要从Markdown复制到Wordpress中,这不太利于我管理他们.

​ 因此我开始寻找一个将Markdown文本转换成静态网页的解决方案.

​ 幸运的是,有很多工具都能做到这个.我一开始尝试了MkDocs,他非常轻量化,安装和使用都非常简单,但是它的侧重于生成一个文档站点,而不是博客,为它自定义主题需要从零开始实现交互,我并不想在这上面花费过多的时间.

​ 之后,我找到了VitePress,这是一个由Vue驱动的静态站点生成器.Vue是一个前端框架,这意味着如果我需要为VitePress自定义主题,只需要一点点代码,调用Vue为我们准备好的组件就行.

​ 没错,你现在看到的这个博客,就是由VitePress构建.

​ 好了,啰嗦了这么多,终于可以开始我们的教程环节了,请原谅我的啰嗦....

DANGER

注意: VitePress的作用是将Markdown文本转换成静态网页,如果你没有使用Markdown写文章的习惯,并不建议使用VitePress

VitePress的安装

官方网站

https://vitepress.dev/zh/

官方文档

https://vitepress.dev/zh/guide/what-is-vitepress

环境配置与初始化

安装Node.js 20 及以上版本

​ 进入Node.js的官网,下载安装包,然后安装即可,这里就不过多赘述了.

​ 安装完成后在cmd运行以下指令,如果输出版本号,那么说明你已经安装成功了.

​ 运行.

cmd
node -v

​ 输出.

cmd
v24.13.0 (类似这种版本号)

安装VitePress

cmd运行以下指令.

cmd
npm add -D vitepress@next

验证安装

cmd

自定义主题的依赖项

局域网访问

npm.cmd run docs:dev -- --host 0.0.0.0

初始化一个VitePress项目

​ 首先先进入你想要存放Vitepresss项目的路径,然后在 cmd运行以下指令.

cmd
npx vitepress init

​ VitePress会问你几个问题,请按如下参考填写.

cmd
┌  Welcome to VitePress!

◇  Where should VitePress initialize the config?
│  ./docs

◇  Where should VitePress look for your markdown files?
│  ./docs

◇  Site title:
│  My Awesome Project

◇  Site description:
│  A VitePress Site

◇  Theme:
Default Theme

◇  Use TypeScript for config and theme files?
│  Yes

Add VitePress npm scripts to package.json?
│  Yes

Add a prefix for VitePress npm scripts?
│  Yes

◇  Prefix for VitePress npm scripts:
│  docs

└  Done! Now run pnpm run docs:dev and start writing.

​ 之后VitePress便会在目录下生成以下内容.

.
├─ docs
│  ├─ .vitepress
│  │  └─ config.mts
│  ├─ api-examples.md
│  ├─ markdown-examples.md
│  └─ index.md
└─ package.json

docs 目录作为 VitePress 站点的项目根目录.vitepress 目录是 VitePress 配置文件、Dev服务器缓存、构建输出和可选主题自定义代码的位置.

​ 此时你在cmd中运行如下指令,即可预览网页.

npm run docs:dev

​ 运行成后会返回如下结果,端口不一定一样

cmd
  vitepress v2.0.0-alpha.17

  ➜  Local:   http://localhost:5174/(预览网址)
  ➜  Network: use --host to expose
  ➜  press h to show help

​ 其中 http://localhost:5174/便是预览的网址.

​ 在浏览器中输入以下地址,便可预览效果.

image-20260420175632754

​ 接下来便开始讲解配置文件如何修改.

配置文件

初始配置文件详解

配置文件路径./docs/.vitepress/config.mts

js
// 1. 从 VitePress 导入配置定义函数(提供类型提示,避免写错配置)
import { defineConfig } from 'vitepress'

// 2. 导出 VitePress 配置(固定写法,VitePress 会自动读取这个配置)
export default defineConfig({
  // ============== 基础配置(网站全局设置) ==============
  title: "My Awesome Project",       // 网站标题(浏览器标签页 + 页面左上角标题)
  description: "A VitePress Site",   // 网站描述(SEO 优化,搜索引擎抓取的简介)

  // ============== 主题配置(页面样式、导航、菜单) ==============
  themeConfig: {
    // ---------------- 顶部导航栏(页面最上方的菜单) ----------------
    nav: [
      { text: 'Home', link: '/' },          // 导航文字:首页,链接:根目录
      { text: 'Examples', link: '/markdown-examples' } // 导航文字:示例,链接:markdown-examples.md
    ],

    // ---------------- 左侧侧边栏(文档目录) ----------------
    sidebar: [
      {
        text: 'Examples',          // 侧边栏分组标题(不可点击,仅展示)
        items: [                   // 分组下的子菜单
          { text: 'Markdown Examples', link: '/markdown-examples' }, // 菜单1
          { text: 'Runtime API Examples', link: '/api-examples' }   // 菜单2
        ]
      }
    ],

    // ---------------- 右上角社交链接(图标+链接) ----------------
    socialLinks: [
      { icon: 'github', link: 'https://github.com/vuejs/vitepress' }
      // icon:内置图标(支持 github/twitter/gitlab 等)
      // link:点击图标跳转的地址
    ]
  }
})

设置网站标题与描述

设置Nav

设置Sidebar

添加页面

修改主页内容

添加搜索功能

​ 在themeConfig中加入如下代码,就可以开启Vitepress内置的搜索功能.

js
  themeConfig: {
  
    ......OtherCode......
  
    search: {
      provider: 'local',
      options: {
        locales: {
          root: {
            placeholder: '搜索文档',
            translations: {
              button: { buttonText: '搜索' },
              modal: { noResults: '暂无搜索结果' }
            }
          }
        }
      }
    },
    
    ......OtherCode......
    
    ]
  }

​ 添加后效果.

image-20260420180818242

添加站点图标

​ 在themeConfig中加入如下代码,就可以指定Vitepress的站点图标.

​ 支持本地路径和网址,如果是本地路径,则需要导入图片到对应的路径.

js
  themeConfig: {
  
    ......OtherCode......
    
    logo: '/logo.svg',
    //如果是网络地址,则为如下所示
    //logo: 'https://drawingbed.aiferu.xyz/i/2023/08/03/ly8crc.jpeg',
    
    ......OtherCode......
    
    ]
  }

​ 以下是我使用网络地址指定好对应的图标之后的效果.

image-20260420184224606

添加标签页图标

​ 与站点Logo相同,他也支持本地路径和网络路径.

​ 注意,标签页图标设置在 export default下,而不在themeConfig下.

js
export default defineConfig({

  ......OtherCode......
  
  head: [
    ['link', { rel: 'icon', href: 'https://drawingbed.aiferu.xyz/i/2023/08/03/ly8crc.jpeg' }]
  ],
  
  ......OtherCode......
  
})

​ 以下是我使用网络地址指定好对应的图标之后的效果.

image-20260420185817773

支持数学公式

​ 要启用它,需要安装 markdown-it-mathjax3,并在配置文件中设置markdown.mathtrue.

​ 在cmd中运行以下指令安装 markdown-it-mathjax3.

cmd
npm add -D markdown-it-mathjax3@^4

​ 在配置文件中添加如下代码.

js
export default defineConfig({

  ......OtherCode......
  
  markdown: {
    math: true
  }
  
  ......OtherCode......
  
})

​ 之后只需要在Markdown文件中插入以下代码,便可以渲染数学公式.

$$
\pi =3.1415926
$$
π=3.1415926

​ 更多的Latex数学公式语法详见,也可自行搜索.

https://oi-wiki.org/tools/latex/#公式

图片懒加载

​ 图片懒加载,即图片延迟加载.具体就是当你打开网页时,并不一次性加载所有图片,只加载当前页面能渲染到的图片,你滚动到哪里,图片才加载到哪里.

​ 开启图片懒加载,可以加快我们的网页打开速度

​ 通过在配置文件中将 lazyLoading 设置为 true,可以为通过Markdown 添加的每张图片启用懒加载.

js
export default defineConfig({

  ......OtherCode......
  
  markdown: {
    image: {
      // 默认禁用;设置为 true 可为所有图片启用懒加载。
      lazyLoading: true
    }
  }
  
  ......OtherCode......
  
})

设置编译路径

​ 默认值: ./.vitepress/dist

js
export default defineConfig({

  ......OtherCode......
  
  outDir: '../build',
  
  ......OtherCode......
  
})

运行指令

​ 现在,我们来总结一下运行指令,VitePress有三个常用指令,分别是开发,编译,和预览指令.

开发指令

​ 我们之前已经运行过这个指令了,开发指令会给我们一个预览网址,当我们修改文档或配置文件时,预览网站会同步更新.

cmd
npm run docs:dev

编译指令

​ 编译指令会将我们当前的网站进行打包,并保存到我们之前设置好的编译路径中,后续部署到网页时至需要推送这部分文件到服务器上就行.

cmd
npm run docs:build

预览指令

​ 预览指令会给我们一个预览网址,此时进入的网页,就是我们通过编译指令打包出来的网页.

cmd
npm run docs:preview

​ 到了这里,我们已经将VitePress常用设置以及基础主题的设置讲完了,但是还没有讲到该如何用VitePress搭建博客网站.

​ 相信你已经发现了,Vitepress的基础主题是一个为了文档设计的主题,他并不能满足我们的博客需求.

​ 因此,下面我将会介绍一些第三方博客主题,并讲解如何安装与使用本博客对应的主题.

VitePress 的第三方主题

TeekBlog

Demo站点与使用教程

https://vp.teek.top/

Pure

项目地址与使用教程

https://github.com/airene/vitepress-blog-pure

Demo站点

https://ti.bi/

Sakura

​ 项目地址与使用教程

https://github.com/flaribbit/vitepress-theme-sakura

​ Demo站点

https://flaribbit.github.io/vitepress-theme-sakura/

VitePress 使用本博客同款主题

如何安装

如何配置

添加分类

添加文章