vitepress从0到1

vitepress

VitePress 是 VuePress 的小弟弟,在 Vite 上构建的。

vitepress-theme-demoblock 是一个基于 Vitepress 的主题插件,它可以帮助你在编写文档的时候增加 Vue 示例,它的诞生初衷是为了降低编写组件文档时增加一些相关示例的难度。

创建项目

  1. 创建项目

image-20220406114238701

  1. 安装vitepress,创建docs文件夹
yarn add --dev vitepress
mkdir && echo '# Hello VitePress' > docs/index.md

  1. 添加这些脚本到 package.json
{
  "scripts": {
    "docs:dev": "vitepress dev docs",
    "docs:build": "vitepress build docs",
    "docs:serve": "vitepress serve docs"
  }
}

image-20220406114758249

  1. 启动服务
yarn docs:dev

image-20220406115227240

vitepress配置

  1. vitepress配置

docs 目录下创建 .vitepress 目录即可开始设置配置

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

.vitepress/config.js 是配置 VitePress 站的必要的文件,其将导出一个 JavaScript 对象

module.exports = {
  title: 'Hello VitePress',
  description: 'Just playing around.'
}
  1. 优化配置

优化后目录结构

.
├─ docs
│  ├─ .vitepress
|  |  ├─ configs
|  |  |  ├─ nav.js
|  |  |  ├─ sidebar.js
|  |  |  └─ utils.js
│  │  └─ config.js
│  └─ index.md
└─ package.json

public文件夹下是静态资源。

config.js

const nav = require('./configs/nav.js')
const sidebar = require('./configs/sidebar.js')

module.exports = {
  // 网站标题
  title: 'Hello VitePress',
  // 网站描述
  description: 'Just playing around.',
  themeConfig: {
    // 顶部右上角导航
    nav,
    // 左侧导航
    sidebar,
    //丝滑滚动
    smoothScroll: true,
    // 启用时间线
    editLinks: true,
    //在git上编辑提示文字
    editLinkText: '在 GitHub 上编辑此页',
    // 获取每个文件最后一次 git 提交的 UNIX 时间戳(ms),同时它将以合适的日期格式显示在每一页的底部
    lastUpdated: '上次更新',
  },
}

nav.js

const { getPath } = require('./utils')

module.exports = [
  {
    text: '文档',
    link: '/guide/',
  },
]

siderbar.js

const { getPath } = require('./utils')

module.exports = {
  [getPath('/guide/')]: getGuideSidebar(),
}

function getGuideSidebar() {
  return [
    {
      text: '文档',
      children: [
        {
          text: 'Demo1',
          link: '/guide/demo1',
        },
        {
          text: 'Demo2',
          link: '/guide/demo2',
        },
      ],
    },
  ]
}

utils.js

// vitepress设置base后,sidebar会出现问题,手动补全path
exports.getPath = function (path) {
  return path
  // return path.replace('/', base)
}

最终结构目录

image-20220406142205858

运行效果

image-20220406142222965

image-20220406142241040

vitepress-theme-demoblock

  1. 使用vitepress-theme-demoblock

安装插件

yarn add -D vitepress-theme-demoblock
yarn add less

markdown 中的vue代码包含的style内容,会被组合成一个style统一处理,如果需要使用css预处理器,需要提前指定并且手动安装使用的css预处理器。

markdown: {
  config: (md) => {
    const { demoBlockPlugin } = require('vitepress-theme-demoblock')
    md.use(demoBlockPlugin, {
      cssPreprocessor: 'less'
    })
  }
}

.vitepress/theme/index.js中使用vitepress-theme-demoblock主题,并注册组件(包含主题中默认的组件)。

import theme from 'vitepress/dist/client/theme-default'
import 'vitepress-theme-demoblock/theme/styles/index.css'
import { registerComponents } from './register-components'

export default {
  ...theme,
  enhanceApp({ app, router, siteData }) {
    registerComponents(app)
  }
}

package.json配置命令scripts,vitepress-rc用来注册组件(–docsDir 指定docs目录,–componentsDir 指定组件注册目录)

"scripts": {
  "docs:dev": "yarn run register:components && vitepress dev docs",
  "docs:build": "yarn run register:components && vitepress build docs",
  "docs:serve": "vitepress serve docs",
  "register:components": "vitepress-rc"
}
  1. 在文件中编写vue文件

demo1.md

# demo1

:::demo canvas 矩形的绘制

```vue
<template>
  <div class="rectangular">
    <div class="rectangular-box">
      <canvas id="rectangular" width="150" height="150"> </canvas>
    </div>
  </div>
</template>

<script>
import { onMounted } from 'vue'
export default {
  setup() {
    function draw() {
      const rectangular = document.getElementById('rectangular') //引用Dom元素
      const ctx = rectangular.getContext('2d')
      //函数绘制了一个边长为100px的黑色正方形
      ctx.fillRect(25, 25, 100, 100)
      //函数从正方形的中心开始擦除了一个60*60px的正方形
      ctx.clearRect(45, 45, 60, 60)
      //函数从正方形的中心开始擦除了一个60*60px的正方形
      ctx.strokeRect(50, 50, 50, 50)
    }
    onMounted(() => {
      draw()
    })
  },
}
</script>
```

:::

效果

image-20220406143312941

自定义样式

9.自定义样式

yarn add -D stylus stylus-loader

.vitepress 文件夹下新建 custom.styl 文件

image-20220406144953634

  1. 预览

Gif_948

导入Threejs模块

在config.js文件中添加scriptImports: ["import * as THREE from 'three'"],全局导入

image-20220407114115783

查看测试效果,获取相同代码

Gif_600

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

sea_lichee

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值