我报名参加金石方案1期应战——瓜分10万奖池,这是我的榜首篇文章,点击检查活动概况
✨ 前语
前阵子把自己的技能网站从vuepress
升级到了vitepress
,在看文档时发现 vitepress
没有中文文档,于是乎就做了一个中文文档的版别,便利自己翻阅文档,也为后续研讨vitepress源码做准备。现在全新的vitepress中文文档已发布,快点击加收藏检查吧:
vitepress 中文文档 。
文档仓库
什么是vitepress
VitePress 是根据vite
的vuepress兄弟版。特别适合写博客网站,技能文档,面试题网站,就有着它先天的优势。根本上现在vue官方团队的网站也都运用了vitepress,例如vuejs、vitejs、Vitest、vueuse…哦,还有vitepress官网自己。
不仅如此,它还有极易上手、构建速度快、开发体检佳等优点。而且,它开箱即用,现在正处于 alpha 阶段,装备和 API 可能会在小版别之间发生变化。
相比vuepress的改善点
构建
这个结果清楚明了,运用vite能够带来:
- 更快的本地服务启动
- 更快的热更新
- 更快的打包(内部运用Rollup)
更小的页面体积
vitepress运用了vue3,根据Vue3的tree-shaking + Rollup 代码拆分达到了打包体积更小的作用
-
每个页面的每个请求不会发送元数据。 这将页面权重与页面总数别离。仅返回当前页面的元数据。客户端导航将同时获取新页面的组件和元数据。
-
不运用 vue-router,因为 VitePress 的需求十分简单和具体 – 运用简单的自定义router(200行以下代码)替代。
装备
VitePress 旨在削减当前 VuePress 的复杂性,并从其极简主义本源重新开端。
新特性
布局
vitepress内置了包括doc
、home
、page
的文档布局,
如果你不想要任何布局,你能够经过frontmatter传递layout: false
。如果您想要一个完全可定制的登录页面(默许情况下没有任何侧边栏、导航栏或页脚),这个选项很有用。
主题
VitePress 带有默许主题,并提供许多开箱即用的功用。主题涵盖了导航栏、侧边栏、上下页按钮、编辑链接、最近更新日期、列表、搜索、团队组件等多个功用。
运用自定义主题
你能够经过增加.vitepress/theme/index.ts
文件(“主题入口文件”)来启用自定义主题。
.
├─ docs
│ ├─ .vitepress
│ │ ├─ theme
│ │ │ └─ index.js
│ │ └─ config.js
│ └─ index.md
└─ package.json
VitePress 自定义主题是一个只包括四个属性的对象,定义如下:
interface Theme {
Layout: Component // Vue 3 component
NotFound?: Component
enhanceApp?: (ctx: EnhanceAppContext) => void
setup?: () => void
}
主题入口文件应将主题作为其默许导出:
// .vitepress/theme/index.js
import Layout from './Layout.vue'
export default {
Layout,
NotFound: () => 'custom 404',
}
Layout
组件如下所示:
<!-- .vitepress/theme/Layout.vue -->
<template>
<h1>Custom Layout!</h1>
<!-- Content便是markdown烘托的方位 -->
<Content />
</template>
默许导出是自定义主题的仅有方法。 在自定义主题中,它就像一般的 Vite + Vue 3 应用程序一样作业。
扩展默许主题
如果想扩展和自定义默许主题,能够从vitepress/theme
导入它并在导出自定义主题中对其进行扩展。 以下是一些常见自定义的示例:
注册大局组件
// .vitepress/theme/index.js
import DefaultTheme from 'vitepress/theme'
export default {
...DefaultTheme,
enhanceApp({ app }) {
// 注册一个大局组件
app.component('MyGlobalComponent', /* ... */)
}
}
因为我们运用 Vite,你还能够利用 Vite 的大局导入特性主动注册组件目录。
自定义 CSS
默许主题 CSS 可经过覆盖根元素的 CSS 变量进行自定义:
// .vitepress/theme/index.js
import DefaultTheme from 'vitepress/theme'
import './custom.css'
export default DefaultTheme
/* .vitepress/theme/custom.css */
:root {
--vp-c-brand: #646cff;
--vp-c-brand-light: #747bff;
}
这里能够看到支撑的 默许的主题 CSS 变量.
Layout 组件插槽
默许主题<Layout/>
组件有一些插槽,可用于在页面的某些方位注入内容。具体能够点击检查
还有主题颜色,支撑亮/暗黑主题,例如下面这个好看的暗黑主题。
布置
执行 build 后默许会在(.vitepress/dist
)生成构建的产品,然后就能够开端布置到服务器上了。
vitepress 官网提供了 github page 、gitlab page、firebase等多个服务器的布置方法。推荐运用github page,提供了github action的示例代码,根本一步到位。
我个人的文档网站就发布在github page,运用action主动布置,还不清楚怎样用github action主动布置自己的文档网站的能够看我之前的文章:用GitHub Action + VuePress主动化布置自己的文档网站。
怎样做贡献
现在vitepress还处在aplha
阶段,更新比较频频,而且现在还没有国际化的支撑,想必很多人都会想为开源做贡献,这不便是一个很好的时机吗。