简单使用vitepress快速搭建一个文档网站

简介: VitePress 是一个静态站点生成器 (SSG),类似的项目有docsify、VuePress、hexo。用 Markdown 编写的内容生成可以轻松部署到任何地方的静态 HTML 页。

你好,今天简单写写建站。

VitePress 是一个静态站点生成器 (SSG),类似的项目有docsify、VuePress、hexo。

大概原理就是用 Markdown 编写的内容生成可以轻松部署到任何地方的静态 HTML 页面。

VitePress 附带一个专为技术文档设计的默认主题。你现在正在阅读的这个页面以及 Vite、Rollup、Pinia、VueUse、Vitest、D3、UnoCSS、Iconify 等文档都是基于这个主题的。

VitePress 和 VuePress类似的一个项目。最初的 VuePress 基于 Vue 2 和 webpack。借助 Vue 3 和 Vite,VitePress 提供了更好的开发体验、更好的生产性能、更精美的默认主题和更灵活的自定义 API。

使用下来感觉和VuePress差不多。插件和主题都很少,开箱即用的插件和主题也基本够用了。

前置条件

  • nodejs 18+
  • pnpm 包管理

初始化项目

## 安装pnpm
npm i pnpm -g
## 初始化项目
## 创建一个空目录
mkdir doc-demo
cd doc-demo
## 初始化node项目
pnpm init
# 安装vitepress
pnpm add -D vitepress
pnpm vitepress init

初始化后的目录结构如下:

|-- docs
|   |-- .vitepress
|   |-- api-examples.md
|   |-- index.md
|   `-- markdown-examples.md
|-- node_modules
|   `-- vitepress
|-- package.json
`-- pnpm-lock.yaml

启动项目pnpm run docs:dev,访问http://localhost:5173/就可以看到项目网站已经搭建好了。

多语言支持

由于网站默认是英文的,中文翻译需要配置下。

这里使用插件vitepress-i18n来完成这个功能。

## 安装插件
pnpm add -D vitepress-i18n

修改docs/.vitepress/config.js文件。

/**
 * 多语言配置
 */
const defaultLocale = 'zhHans';
const defineSupportLocales = [
  {
    label: defaultLocale, translateLocale: defaultLocale }
];

// https://vitepress.dev/reference/site-config
export default defineConfig({
   
  title: "doc-demo",
  description: "A VitePress Site",
  themeConfig: {
   }, //此处省略
  locales: generateI18nLocale({
   
    defineLocales: defineSupportLocales,
    rootLocale: defaultLocale,
  })
})

启动项目pnpm run docs:dev,访问http://localhost:5173/就可以看到网站已经默认是中文的了。

多语言的支持具体可以参考插件的文档。此处只是修改了默认语言。

发布

原理就是使用pnpm run docs:build命令生成静态文件,将生成的静态文件上传到服务器即可。

但是这里借助github的pages来完成这个功能,所以需要编写一个脚本文件。

具体的内容可以参考vitepress官方文档。

在项目的 .github/workflows 目录中创建一个名为 deploy.yml 的文件,其中包含这样的内容:

# 构建 VitePress 站点并将其部署到 GitHub Pages 的示例工作流程
#
name: Deploy VitePress site to Pages

on:
  # 在针对 `main` 分支的推送上运行。如果你
  # 使用 `master` 分支作为默认分支,请将其更改为 `master`
  push:
    branches: [main]

  # 允许你从 Actions 选项卡手动运行此工作流程
  workflow_dispatch:

# 设置 GITHUB_TOKEN 的权限,以允许部署到 GitHub Pages
permissions:
  contents: read
  pages: write
  id-token: write

# 只允许同时进行一次部署,跳过正在运行和最新队列之间的运行队列
# 但是,不要取消正在进行的运行,因为我们希望允许这些生产部署完成
concurrency:
  group: pages
  cancel-in-progress: false

jobs:
  # 构建工作
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v4
        with:
          fetch-depth: 0 # 如果未启用 lastUpdated,则不需要
      # - uses: pnpm/action-setup@v3 # 如果使用 pnpm,请取消注释
      # - uses: oven-sh/setup-bun@v1 # 如果使用 Bun,请取消注释
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: npm # 或 pnpm / yarn
      - name: Setup Pages
        uses: actions/configure-pages@v4
      - name: Install dependencies
        run: npm ci # 或 pnpm install / yarn install / bun install
      - name: Build with VitePress
        run: npm run docs:build # 或 pnpm docs:build / yarn docs:build / bun run docs:build
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v3
        with:
          path: docs/.vitepress/dist

  # 部署工作
  deploy:
    environment:
      name: github-pages
      url: ${
   {
    steps.deployment.outputs.page_url }}
    needs: build
    runs-on: ubuntu-latest
    name: Deploy
    steps:
      - name: Deploy to GitHub Pages
        id: deployment
        uses: actions/deploy-pages@v4

如果访问有问题就要确保 VitePress 中的 base 选项配置正确。

绑定域名

github的pages默认提供了一个访问url。但是如果想绑定自己的域名,需要在github的settings中配置。

具体的配置可以参考github的文档。这里只是简单描述下大概流程。

  • 绑定域名。在github的用户settings中配置,并点击其中的 Pages选项第四步,在右侧输入要验证的域名,并点击 Add domain按钮。
  • 绑定仓库域名。进入仓库界面,并点击上方的 Settings按钮。在左侧栏的 Code and automation 部分,点击 Pages 选项,在右侧的栏目中,将域名填写进去并点击Save按钮。Github Page 将花费一点时间完成对 DNS 配置的检查。

整个过程还是挺快的。具体还涉及到DNS的相关配置。这里就不细说了。

后续计划

  • 增加https的支持。
  • 开发插件支持mermaid展示。
  • 开发插件支持更多的文档属性,兼容hexo。

关于作者

来自全栈程序员nine的探索与实践,持续迭代中。

目录
相关文章
|
Web App开发 JavaScript 前端开发
网页VUE纯前端在线预览编辑Office,支持doc/docx、xls/xlsx、ppt/pptx、pdf等格式
随着互联网技术的不断发展,越来越多的企业开始采用在线办公模式,微软Office Word 是最好用的文档编辑工具,然而doc、docx、xls、xlsx、ppt、pptx等格式的Office文档是无法直接在浏览器中直接打开的,如果可以实现Web在线预览编辑OffIce,肯定会还带来了更高效、便捷的办公体验,为我们的工作带来了更多可能性。
4928 21
|
12月前
|
人工智能 算法 调度
阿里云ACK托管集群Pro版共享GPU调度操作指南
本文介绍在阿里云ACK托管集群Pro版中,如何通过共享GPU调度实现显存与算力的精细化分配,涵盖前提条件、使用限制、节点池配置及任务部署全流程,提升GPU资源利用率,适用于AI训练与推理场景。
886 1
|
5月前
|
前端开发 JavaScript API
前端组件库 ——LayUI 知识点大全(一)
教程来源 http://oplhc.cn LayUI是由国内开发者“贤心”于2016年推出的经典模块化前端UI框架,MIT开源。不依赖Vue/React等现代框架,零配置、低门槛、开箱即用,尤受后端开发者与中小项目青睐。2026年仍持续更新,最新版2.11+强化组件与工程化支持。
|
11月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
61087 11
|
10月前
|
JSON API PHP
域名注册状态查询免费API接口详细教程
本文介绍“接口盒子”提供的免费域名注册状态查询API,支持批量检测.com/.cn域名是否被注册。提供PHP和Python调用示例,含完整代码与返回参数说明,助力开发者快速集成域名查询功能,适用于品牌保护、域名投资等场景。(239字)
2022 0
|
搜索推荐 前端开发
使用VitePress创建个人网站并部署到GitHub
该网站使用 VitePress 构建,记录了前端开发相关的笔记和教程,涵盖 Vue2 和 Vue3 等内容。网站支持暗黑模式和 Algolia 搜索服务,提供了详细的导航和侧边栏配置。通过自动化脚本进行部署,托管于 GitHub Pages。
454 2
使用VitePress创建个人网站并部署到GitHub
|
JavaScript 前端开发 Shell
使用vitepress搭建自己的静态个人博客 || 个人知识库
使用vitepress搭建自己的静态个人博客 || 个人知识库
608 0

热门文章

最新文章