VitePress 搭建组件库文档

当我们组件库完成的时候,一个详细的使用文档是必不可少的。本篇文章将介绍如何使用 VitePress 快速搭建一个组件库文档站点并部署到GitHub上

安装

首先新建 site 文件夹,并执行pnpm init,然后安装vitepress和vue

pnpm install -D vitepress vue

安装完成之后,新建 docs/index.md 文件

# Hello Easyest

然后 package.json 中新增scripts命令

"scripts": {
"docs:dev": "vitepress dev docs",
"docs:build": "vitepress build docs",
"docs:preview": "vitepress preview docs"
},

执行pnpm run docs:dev

导航栏配置

在 docs/.vitepress 目录下新建config.js

export default {
themeConfig: {
siteTitle: "vitepress",
nav: [
{ text: "指南", link: "/guild/installation" },
{ text: "组件", link: "/components/button/" },
],
socialLinks: [
{ icon: "github", link: "https://github.com/qddidi/easyest" },
],
},
};

这里我们加了两个导航栏和一个 github 地址,重启项目就可以看到导航栏已经生效了

但是点击指南和组件是 404,因为我们还没有创建这些目录和文件。所以我们需要在 docs 目录下新建guild/index.md以及components/button/index.md,再次点击即可跳转对应页面

侧边栏配置

同样的在config.js中进行侧边栏配置sidebar

   sidebar: {
"/guild/": [
{
text: "基础",
items: [
{
text: "安装",
link: "/guild/installation",
},
{
text: "快速开始",
link: "/guild/quickstart",
},
],
},
{
text: "进阶",
items: [
{
text: "xx",
link: "/xx",
},
],
},
],
"/components/": [
{
text: "基础组件",
items: [
{
text: "Button",
link: "/components/button",
}
],
}
]
},

此时便有了侧边栏

引入组件库

因为我们要搭建的是一个组件库文档站点,因此肯定是需要引入我们的组件库的。这里我们同样引入的是本地的组件库,所以在 pnpm 的工作空间pnpm-workspace.yaml新增一个site目录

packages:
- "packages/**"
- "play"
- "site"

然后 site 目录下安装pnpm add easyest,在 docs 下新建 theme/index.js引入我们的组件库

import DefaultTheme from "vitepress/theme";
import easyest from "easyest";
export default {
...DefaultTheme,
enhanceApp: async ({ app }) => {
// app is the Vue 3 app instance from `createApp()`. router is VitePress'
// custom router. `siteData`` is a `ref`` of current site-level metadata.
app.use(easyest);
},
};

回到 components/button/index.md 中直接使用我们的 button 组件试一下

## Button 按钮

<ea-button>默认按钮</ea-button>

<ea-button type="primary">默认按钮</ea-button>

可以发现我们的组件生效了

同时我们还可以新增代码展示效果,如将 button/index.md 改为

## Button 按钮

<ea-button>默认按钮</ea-button>
<ea-button type="primary">默认按钮</ea-button> ::: details 显示代码 ```html
<ea-button>默认按钮</ea-button> <ea-button type="primary">默认按钮</ea-button>
``` :::

是不是非常简单!

部署静态站点

打包完成后你可以部署到自己的服务器,也可以选择部署到 github 站点上,这里将介绍如何部署到 github 站点

首先新建一个组织叫做easyestui,然后再组织下新建一个easyest仓库

然后将 site/docs/.vitepress/dist 提交到这个仓库里

点击 settings 选择部署的分支以及目录,这里是根目录,保存即可

最终我们站点的访问的地址为 https://easyestui.github.io/easyest/ 所以在打包的时候 site/docs/.vitepress/config.js 的 base 应该为/easyest/

export default {
base: process.env.NODE_ENV === 'production' ? '/easyest/' : '/',
...
}

以上完成之后便可访问我们的站点了 Easyest,站点是实时更新的,只要你的仓库发生改变站点就会改变

注意:如果你的访问出现了404,那么可能是你的base配置出错了

本篇文章对应仓库地址: VitePress 搭建部署组件库文档

从0搭建Vue3组件库(九):VitePress 搭建部署组件库文档的更多相关文章

  1. (转载)学校搭建使用nginx同时编译rtmp-module进行直播的技术文档

    原文地址:学校搭建使用 nginx 同时编译 rtmp-module 进行直播的技术文档 转载自我的大佬同学 MetalkgLZH.学校有几次需要全校观看网络直播的情况,但是学校的带宽不允许所有的班一 ...

  2. Spring Boot(九)Swagger2自动生成接口文档和Mock模拟数据

    一.简介 在当下这个前后端分离的技术趋势下,前端工程师过度依赖后端工程师的接口和数据,给开发带来了两大问题: 问题一.后端接口查看难:要怎么调用?参数怎么传递?有几个参数?参数都代表什么含义? 问题二 ...

  3. C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)

    由于项目需要,需要一个在线预览office的功能,小编一开始使用的是微软提供的方法,简单快捷,但是不符合小编开发需求, 就另外用了:将文件转换成html文件然后预览html文件的方法.对微软提供的方法 ...

  4. 权限组件(15):rbac的使用文档和在业务中的应用

    这里用主机管理系统当做示例. 一.将rbac组件拷贝到项目中. 注意: rbac自己的静态文件.layout.html(被继承的模板).bootstrap.fontsize.公共的css.jquery ...

  5. CAML获取SharePoint文档库中除文件夹外所有文档

    方法一: <QueryOptions> <ViewAttributes Scope="Recursive" /> </QueryOptions> ...

  6. How to create a zip file in NetSuite SuiteScript 2.0 如何在现有SuiteScript中创建和下载ZIP压缩文档

    Background We all knows that: NetSuite filecabinet provided a feature to download a folder to a zip ...

  7. PDF 补丁丁 0.6.1.3498 版重大更新:为文本PDF文档自动生成书签!

    新的 PDF 补丁丁开放了内部测试了很久的好用功能——自动书签. 这个功能可以在一分钟内快速生成文本型 PDF 文档的书签(说明:本功能分析文档中的文本,生成标题,故对扫描版的 PDF 文档无效). ...

  8. 《Javascript权威指南》学习笔记之十九--HTML5 DOM新标准---处理文档元信息和管理交互能力

    一.了解DOM 1.DOM是Document Object Model的缩写,即文档对象类型,是文档在内存中的表示形式,是一个应用程序接口,定义了文档的逻辑结构以及一套訪问和处理文档的方法. 2.HT ...

  9. 通过cmd命令查看Python库、函数和模块的帮助文档与介绍

    dir函数式可以查看对象的属性 使用方法很简单,举os类型为例,在Python命令窗口输入 dir(‘os’) 即可查看os模块的属性 打开cmd命令窗口 输入python(注意:计算机需要有Pyth ...

  10. 从零搭建vue3.0项目架构(附带代码、步骤详解)

    前言: GitHub上我开源了vue-cli.vue-cli3两个库,文章末尾会附上GitHub仓库地址.这次把2.0的重新写了一遍,优化了一下.然后按照2.0的功能和代码,按照vue3.0的语法,完 ...

随机推荐

  1. MySQL与Java常用数据类型的对应关系

    一.字符串数据类型: MySQL类型名 大小 用途 对应Java类名 char 0-255 bytes 定长字符串 (姓名.性别.学号) String varchar 0-65535 bytes 变长 ...

  2. CSS3新特性值逻辑选择器

    1. :is 解释::is() CSS伪类函数将选择器列表作为参数,并选择该列表中任意一个选择器可以选择的元素. 例如 对于多个不同父容器的同个子元素的一些共性样式设置,传统写法如下 header p ...

  3. HTTP TCP UDP WEBSOCKET

    概念: TCP和UDP:传输层协议:(卡车) HTTP:应用层协议:(货物).HTTP(超文本传输协议)是利用TCP在两台电脑(通常是Web服务器和客户端)之间传输信息的协议.客户端使用Web浏览器发 ...

  4. Spring(Bean详解)

    GoF之工厂模式 GoF是指二十三种设计模式 GoF23种设计模式可分为三大类: 创建型(5个):解决对象创建问题. 单例模式 工厂方法模式 抽象工厂模式 建造者模式 原型模式 结构型(7个):一些类 ...

  5. 【Deep Learning】DDPM

    DDPM 1. 大致流程 1.1 宏观流程 1.2 训练过程 1.3 推理过程 2. 对比GAN 2.1 GAN流程 2.2 相比GAN优点 训练过程更稳定,损失函数指向性更强(loss数值大小指示训 ...

  6. 二进制安装Kubernetes(k8s) v1.22.10 IPv4/IPv6双栈

    二进制安装Kubernetes(k8s) v1.22.10 IPv4/IPv6双栈 Kubernetes 开源不易,帮忙点个star,谢谢了 介绍 kubernetes二进制安装 后续尽可能第一时间更 ...

  7. pysimplegui之常用元素介绍

    1文本元素 | T == Txt == Text 2多行文本sg.Multiline('This is what a Multi-line Text Element looks like', size ...

  8. MySql中执行计划如何来的——Optimizer Trace

    作者:京东物流 籍磊 1.前言 当谈到MySQL的执行计划时,会有很多同学想:"我就觉得使用其他的执行方案比EXPLAIN语句输出的方案强,凭什么优化器做的决定与我得不一样?".这 ...

  9. flink之Sink to MySQL和Redis

    前言 下面这篇文章是使用Flink的Sink 写出数据到Redis和MySQL Flink之Sink写入Redis和MySQL Flink需要添加Sink的时候,需要自己去添加写Sink,我们可以实现 ...

  10. Linux修改系统时间(手动/自动同步)

    一.手动修改 1.在终端窗口中输入date来查看系统当前的时间. 2.使用命令:"date -s 完整日期时间(YYYY-MM-DD hh:mm:ss)" 3.最后使用命令:&qu ...