简单使用vitepress快速搭建一个文档网站
gaoyangw 2024-11-15 18:43 19 浏览 0 评论
你好,今天简单写写建站。
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的探索与实践,持续迭代中。
相关推荐
- APP广告变现,新增广告位有哪些策略?提前规划广告位
-
APP对接广告联盟广告变现,新增广告位,不同广告平台都有自身的广告算法,需要调取APP的脱敏用户数据来构建用户画像,从而推送最符合用户需求的广告。#APP广告变现#APP如果在用户增长阶段加入广告变现...
- Woot期间SB广告策略,站内SB广告如何配合?
-
在Woot促销期间,SB(SponsoredBrands,品牌推广)广告策略的制定与站内SB广告的配合,对于提升品牌曝光、增加销量和优化关键词排名至关重要。以下是一个详细的策略和操作指南:一、Woo...
- 中东noon电商平台-如何通过选择关键词和类目来提升广告效果?
-
昨天我们了解了noon广告投放的基本情况,很多朋友都比较关心如何提升广告的效果,花最少的钱来获得最多的曝光和销售额。...
- 跨渠道效果评估:统一分析多渠道数据优化广告投放ROI
-
今天,我想和大家深入探讨一下关于跨渠道效果评估的话题,也就是如何统一分析微信、抖音、线下门店等多渠道数据,来优化广告投放ROI,提升营销效率。作为产品经理或者交互设计师,我们在工作中常常会面临各种挑战...
- 做电销从入门到精通需要经历什么
-
一、入门阶段电销基本逻辑明确电销是通过电话快速建立信任、传递价值、达成交易。行业特点:不同行业的客户需求、话术逻辑存在差异。合规要求:学习《反骚扰电话法》等法规,避免触犯法律风险。基础技能知识...
- "SEO引擎涟漪效应:以机器学习拆解单点优化引发的排名巨变"
-
SEO引擎涟漪效应:以机器学习拆解单点优化引发的排名巨变在当今数字化时代,SEO推广已经成为企业提升在线可见性、吸引潜在客户的关键手段。然而,你是否曾想过,一个看似微不足道的SEO优化改动,竟可能像投...
- 高效SEO软件推广:如何让你的SEO工作事半功倍?
-
在数字营销的世界中,SEO(搜索引擎优化)已成为企业线上竞争的重要武器。随着搜索引擎算法的不断更新,如何保持网站的高效优化和快速提升排名成为了SEO从业者和内容推广人员的主要挑战。在这场竞争激烈的SE...
- 如何注册一个让百度和用户喜欢的域名
-
关于域名注册,百度搜索引擎优化指南已经做了非常好的引导,悟道SEO认为说的非常好,我们在申请域名的时候,一定要以百度的三条建议为准,注册一个好的域名,对我们个人、企业和用户、搜索引擎都是一件好事。下面...
- 十八年前注册的CN域名要被强制收回
-
据资深域名投资人沈平透露:他18年前注册的2个CN域名被强制回收,并质疑CN域名的公信力。...
- 网站域名去哪里注册?
-
【新网域名资讯】在Internet上有千百万台主机,为了区分这些主机,每一台主机都被分配一个的IP地址。但由于IP地址没有实际意义难于记忆,于是就有了域名(DomainName)。域名主...
- 域名介绍及域名命名的一般规则
-
域名(DomainName),是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置,地理上的域名,指代有行政自主权的一个...
- 永久免费的顶级域名 eu.org 申请教程
-
大家好,今天介绍一个永久免费的顶级域名。eu.org免费域名从1996年就有了,由此可见是非常非常早,计划是专门给无力承担费用的一些组织使用的,现在我们来申请一个。...
- 注册域名的成本是多少?
-
注册域名的成本是多少?域名是访问网站的入口,简单来说,域名就像网站在互联网上的门牌号。那么,注册域名的成本是多少呢?下面将分析探讨这个问题。域名的注册成本因后缀和注册商的不同而有所差异。一般来说,普通...
- 个人云盘搭建一:十分钟快速申请域名,图文详解教程
-
我个人长期从事连锁运维工作,喜欢捣鼓各种实用技术。并非水平高,只是借此与朋友们交流,同时分享给更多需要的人。导读:个人云盘搭建步骤分解域名申请-配置域名解析及服务端口映射-云系统下载安装-测试-云...
- 有推荐的网站建设公司吗?
-
#建站公司推荐#公司需要做网站有深圳哪些网站设计公司推荐呢,在深圳做网站的公司确实非常多,我们2008年开始在深圳做网站的时候,那个时候确实不多,现在17年过去了,网站建设公司也如同雨后春笋般增加了很...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- 网站建设 (107)
- 网站开发 (47)
- 网络推广哪个平台好 (47)
- 百度收录 (50)
- 搜索引擎排名优化 (49)
- 关键词优化工具 (51)
- 外贸网站建设 (56)
- seo整站优化吧 (50)
- 苏州网站建设 (59)
- 百度搜索推广 (61)
- 关键词优化公司 (51)
- 广州网站建设 (48)
- 电商网站建设 (49)
- 百度站长平台 (48)
- 网站模板 (51)
- 厦门网站建设 (52)
- 百度快照推广 (51)
- 免费网页在线客服系统 (53)
- 雷神代刷网站推广 (53)
- 手机网站建设 (53)
- 网站维护 (53)
- 网页制作教程 (66)
- 百度收录批量查询工具 (48)
- 网站服务器 (53)
- 学生个人网页制作html (56)