十分钟教会你如何使用VitePress搭建及部署个人博客站点

简介: 十分钟教会你如何使用VitePress搭建及部署个人博客站点

image.png


携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第1天,点击查看活动详情


使用VitePress可以让我们快速搭建一个静态博客网站,这篇文章将带领大家搭建一个基于VitePress的静态博客网站并且部署到GitHub Pages(github提供的静态网页服务)


快速上手



  • 新建目录并初始化(我的目录名为kittydocs)

这里我们使用pnpm式,当然yarn,npm都是可以的,如果你没有安装pnpm可以全局安装

npm i pnpm -g

然后初始化

pnpm init
  • 安装vitepress
pnpm i vitepress
  • package.json添加script
"scripts": {
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:serve": "vitepress serve docs"
  }

这三个脚本分别代表启动本地文档服务,打包文档,启动打包后(dist)服务

  • 创建文档 文档放在docs目录下,新建docs/index.md
## hello juejin

此时我们的文件结构为

.
├─ docs 
│  └─ index.md
└─ package.json
  • 启动本地服务文档站点
pnpm run docs:dev

此时便会启动一个http://localhost:3000/ 的服务,默认加载docs/index.md

image.png

到这里一个简单的站点就完成了,当然这肯定是不够的,接下来我们看vitepress的配置


配置文件



在docs目录下创建一个 .vuepress目录,如下结构

.
├─ docs
│  ├─ .vitepress
│  │  └─ config.js
│  └─ index.md
└─ package.json

config.js导出一个js对象

export default {
    title: 'kittyui', //站点标题
    description: '一个vue3组件库',//mate标签description,多用于搜索引擎抓取摘要
  }

此时我们重启服务便可看到

image.png


导航栏



  • title和logo

首先看一下title和logo的配置

export default {
  themeConfig: {
    siteTitle: "Kitty",
    logo: "/logo.png",
  },
};

其中logo的地址对应的是public下的图片,目录结构如下所示

.
├─ docs
│  ├─ .vitepress
│  │  └─ config.js
│  ├─ public
│  │   └─ logo.png
│  └─ index.md
└─ package.json

这里logo我是用了vue的图标,此时页面效果为

image.png

  • 右侧导航

我们可以在themeConfig.nav配置右侧导航,并且点击可以跳转我们指定页面。

themeConfig: {
    siteTitle: "Kitty",
    logo: "/logo.png",
    nav: [
      { text: "Guide", link: "/guide/" },
      { text: "GuideTest", link: "/guide/test" },
      { text: "gitee", link: "https://gitee.com/geeksdidi" },
    ],
  }

同时我们在docs下新建guide/index.md和test.md

# guild
shell

此时我们页面即可展示我们打nva并且支持了跳转本地markdown文件以及外部链接

image.png

我们还可以这样嵌套配置,使得导航栏出现下拉选项

themeConfig: {
    siteTitle: "Kitty",
    logo: "/logo.png",
    nav: [
      { text: "Guide", link: "/guide/" },
      { text: "GuideTest", link: "/guide/test" },
      { text: "gitee", link: "https://gitee.com/geeksdidi" },
      {
        text: "Drop Menu",
        items: [
          { text: 'Item A', link: '/item-1' },
          { text: 'Item B', link: '/item-2' },
          { text: 'Item C', link: '/item-3' }
        ]
      }
    ]
  }

如果我们想要让下拉选项分组,即中间有条分割线,我们的nav可以这样写

nav: [
      { text: "Guide", link: "/guide/" },
      { text: "GuideTest", link: "/guide/test" },
      { text: "gitee", link: "https://gitee.com/geeksdidi" },
      {
        text: "Drop Menu",
        items: [
          {
            items: [
              { text: "Item A1", link: "/item-A1" },
              { text: "Item A2", link: "/item-A2" },
            ],
          },
          {
            items: [
              { text: "Item B1", link: "/item-B1" },
              { text: "Item B2", link: "/item-B2" },
            ],
          },
        ],
      },
    ]

此时效果为

image.png


配置社交链接socialLinks



使用themeConfig.socialLinks可以配置我们的社交链接,目前支持的有


type SocialLinkIcon =
  | 'discord'
  | 'facebook'
  | 'github'
  | 'instagram'
  | 'linkedin'
  | 'slack'
  | 'twitter'
  | 'youtube'
  | { svg: string }

,配置如下

socialLinks: [
      { icon: "github", link: "https://gitee.com/geeksdidi" },
      { icon: "twitter", link: "..." },
      // You can also add custom icons by passing SVG as string:
      {
        icon: {
          svg: '<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Dribbble</title><path d="M12...6.38z"/></svg>',
        },
        link: "...",
      },
    ],

image.png


侧边栏Sidebar



侧边栏可以在themeConfig.Sidebar中配置,其实和nav配置差不多

sidebar: [
      {
        text: "组件库源码实现",
        items: [
          {
            text: "组件库环境搭建",
            link: "/articles/组件库环境搭建",
          },
          { text: "gulp的使用", link: "/articles/gulp的使用" },
        ],
      },
      {
        text: "vue教程",
        items: [
          {
            text: "pina和vuex",
            link: "/articles/pina和vuex",
          },
        ],
      },
    ],

这里我搬运了我掘金上的一些文章放了进去,目录结构如下图

image.png

页面展示效果如下

image.png

不过我们一般不会使用这种方式配置侧边栏,因为这样每个页面都会有侧边栏。我们需要做到仅某些页面才会出现侧边栏。所以我们可以这样配置

sidebar: {
      "/articles/": [
        {
          text: "组件库源码实现",
          items: [
            {
              text: "组件库环境搭建",
              link: "/articles/组件库环境搭建",
            },
            { text: "gulp的使用", link: "/articles/gulp的使用" },
          ],
        },
        {
          text: "vue教程",
          items: [
            {
              text: "pina和vuex",
              link: "/articles/pina和vuex",
            },
          ],
        },
      ],
    },

sideBar值改成一个对象,对象的key是一个路径,只有包含这个路径的才会出现侧边栏。所以我们将nav的配置中的guild改成博客,同时路径指向我们的articles下的markdown文件

nav: [
      { text: "博客", link: "/articles/组件库环境搭建" },
     ]

此时你会发现进入首页并不会出现sideBar,只有点击博客才会出现侧边栏

image.png

配置可折叠侧边栏

配置可折叠侧边栏只需将collapsible设置为true即可,默认初始页面是全部展开页面,如果你需要关闭状态只需要将collapsed设置为true

...
        {
          text: "vue教程",
          collapsible: true,
          collapsed:true,
          items: [
            {
              text: "pina和vuex",
              link: "/articles/pina和vuex",
            },
          ],
        },
...

首页布局



首页就是进入我们博客会加载docs/index.md,所以我们需要对其进行一个美化,我们VitePress默认主题提供了一个主页布局

---
layout: home
hero:
  name: 东方小月的博客
  text: 随便写点啥.
  tagline: 帅气又迷人的小月
  image:
    src: /logo.png
    alt: Kitty
  actions:
    - theme: brand
      text: 快来快来
      link: /articles/组件库环境搭建
    - theme: alt
      text: View on Gitee
      link: https://gitee.com/geeksdidi
features:
  - icon: ⚡️
    title: 这是一个闪电图标
    details: wawawa
  - icon: 🖖
    title: 这是一个手掌图标
    details: good...
  - icon: 🛠️
    title: 这是一个修理图标
    details: cocococo
---

image.png


部署到GitHub Pages



既然要部署到GitHub Pages,你得先在github新建一个仓库,因为要用他的GitHub Pages,所以仓库命名为username.github.io的形式,username是你github的用户名。然后点击设置

image.png

选择pages

image.png

这里设置根目录/(root),当然也可以选择其它目录,点击保存,如果选择其它目录比如docs,config.js就需要配置一个base

export default {
    base:'/docs/'
  }

最后选择一个主题(这里不选择我发现站点不生效,后面把打包后的代码推上来即可,会默认加载index.html)

然后将打包后的dist下的文件推送到你的远程仓库。vitepress官网给我们提供了一个脚本文件deploy.sh,我们只需要改下远程仓库即可

#!/usr/bin/env sh
# 忽略错误
set -e
# 构建
npm run docs:build
# 进入待发布的目录
cd docs/.vitepress/dist
# 如果是发布到自定义域名
# echo 'www.example.com' > CNAME
git init
git add -A
git commit -m 'deploy'
# 如果部署到 https://<USERNAME>.github.io
# git push -f git@github.com:<USERNAME>/<USERNAME>.github.io.git master
# 如果是部署到 https://<USERNAME>.github.io/<REPO>
# git push -f git@github.com:<USERNAME>/<REPO>.git master:gh-pages
cd -

直接执行这个脚本文件,我们的打包后的文件就会被推送到我们的仓库。然后我们就可以直接访问我们的静态博客站点了,比如我的这个示例博客东方小月.如果你想要自定义其它域名的话,可以创建一个组织然后在组织下新建仓库名为organization.github.io的形式(organization是你组织名)然后执行同样的操作即可。具体可以点这里创建 GitHub Pages 站点

最后代码已经推送到kittypage,需要的可以自行获取


相关文章
另辟蹊径,利用宝塔快速搭建一个VuePress博客
另辟蹊径,利用宝塔快速搭建一个VuePress博客
2189 0
另辟蹊径,利用宝塔快速搭建一个VuePress博客
|
存储 安全 对象存储
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
本文详细介绍了怎样帮助新手小白从注册,购买阿里云OSS,到一步一步配置OSS做为图床,和PicGo、Typora软件连接,配置好关联之后,在使用Typora写文章时,如果需要插入图片,只需要将图片复制粘贴到Typora的编辑区域,就会自动通过PicGo上传到指定图床,自动复制外网能访问的URL并展示,简直不要太方便,极大的解决了编辑文章时复制处理图片链接的痛点。
14586 16
手把手教你搭建阿里云图床(PicGo+Typora+阿里云OSS),新手小白一看就会
|
Web App开发 域名解析 缓存
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
本文我们主要为大家介绍在 Ubuntu 20.04 上安装 Node.js 和 npm 的三种不同的方式。
170935 7
如何在 Ubuntu 20.04 上安装 Node.js 和 npm
|
JavaScript 搜索推荐 程序员
Vuepress + gitee五分钟免费搭建个人博客(保姆级教程)
前言 作为一个程序员,没有折腾过个人博客是不算完整的。技术文章的输出是我们程序员能力的一种体现,也是一种非常好的个人总结。 市面上有很多搭建个人博客的工具或框架,包括hexo、wordpress等等。不可否认,市面上有些博客系统做得很好,博客主题也很丰富,但是往往存在一个问题:比较重。 作为一个Vue程序员,我就比较推荐使用vuepress搭建个人博客,因为它毕竟是Vue出品的,大家熟知的vue官方就是利用vuepress搭建的。 本篇文章就从零开始教大家搭建一个免费的博客,零基础小白也可以学习哦!
4275 0
Vuepress + gitee五分钟免费搭建个人博客(保姆级教程)
|
5月前
|
人工智能 运维 API
n1n:从替代 LiteLLM API Proxy 自建网关到企业级 AI 大模型 LLM API 统一架构的进阶之路
在 2026 年的大模型应用开发中,如何统一管理 GPT-5、Claude 4.5、Gemini 3 pro 等异构 AI 大模型 LLM API 成为企业的核心痛点。本文将深度解析开源网关 LiteLLM 的技术原理与实施路径,剖析自建网关在生产环境中的“隐形深坑”,并探讨如何通过 n1n.ai 等企业级聚合架构实现从“可用”到“高可用”的跨越。
1988 9
|
10月前
|
人工智能 安全 文件存储
炸裂!Github 6000+ star 开源免费易用,支持1000+格式转换,值得收藏!
ConvertX 是一款开源免费的在线文件转换工具,支持超过 1000 种格式转换,涵盖视频、文档、图像、3D 模型等。基于 FFmpeg、Pandoc 等强大组件,提供高效、私密的转换服务。支持 Docker、NAS 自托管部署,界面简洁,操作便捷,适合多场景使用,已在 GitHub 收获 6000+ Star,值得收藏和使用。
1487 0
|
算法 前端开发 开发工具
vitepress从0到1,让每个前后端小伙伴都拥有一个属于自己的博客
这篇文章详细介绍了如何从零开始使用VitePress搭建个人博客,包括项目初始化、配置美化及部署全流程。
|
缓存 Ubuntu 网络安全
使用 Docker 快速搭建最新版 Flarum 论坛
本文分享了使用Docker在4核4GB的Ubuntu 20.04云服务器上搭建Flarum轻论坛的经验。通过Nginx-Proxy和ACME伴侣自动配置SSL,并使用Docker Compose部署Flarum及MariaDB容器。关键步骤包括:创建Nginx-Proxy容器、配置Flarum容器及其环境变量、设置桥网络连接以及更新Flarum版本。文中提供了详细的Docker Compose配置示例和必要的环境变量设置,帮助读者顺利搭建并运行Flarum论坛。
|
应用服务中间件 网络安全 nginx
轻松上手Nginx Proxy Manager:安装、配置与实战
Nginx Proxy Manager (NPM) 是一款基于 Nginx 的反向代理管理工具,提供直观的 Web 界面,方便用户配置和管理反向代理、SSL 证书等。本文档介绍了 NPM 的安装步骤,包括 Docker 和 Docker Compose 的安装、Docker Compose 文件的创建与配置、启动服务、访问 Web 管理界面、基本使用方法以及如何申请和配置 SSL 证书,帮助用户快速上手 NPM。
14970 1
|
域名解析 缓存 网络协议
中间人攻击之DNS欺骗
【8月更文挑战第13天】
1314 2

热门文章

最新文章