Vuepress记录文档

。。 2021-02-23 16:31:48
记录 vuepress 文档 技术开发 SegmentFault


在已有项目中安装

 // 安装:
npm install -D vuepress
// 创建一个docs 目录
mkdir docs
// 创建一个 markdown 文件(相当于入口页)
echo '# Hello VuePress' > docs/README.md
// package.json添语句
"scripts": {
"docs:dev": "vuepress dev docs",
"docs:build": "vuepress build docs"
}

运行

npm run docs:dev

打包

npm run docs:build

运行后出现乱码问题:

解决方式:修改md文件编码为UTF-8, 即可正常显示

如何使用:

目录结构

.
├── docs
│ ├── .vuepress (可选的)
│ │ ├── components (可选的)
│ │ ├── theme (可选的)
│ │ │ └── Layout.vue
│ │ ├── public (可选的)
│ │ ├── styles (可选的)
│ │ │ ├── index.styl
│ │ │ └── palette.styl
│ │ ├── templates (可选的, 谨慎配置)
│ │ │ ├── dev.html
│ │ │ └── ssr.html
│ │ ├── config.js (可选的)
│ │ └── enhanceApp.js (可选的)
│ │
│ ├── README.md
│ ├── guide
│ │ └── README.md
│ └── config.md
│
└── package.json
  • docs/.vuepress: 用于存放全局的配置、组件、静态资源等。
  • docs/.vuepress/components: 该目录中的 Vue 组件将会被自动注册为全局组件。
  • docs/.vuepress/theme: 用于存放本地主题。
  • docs/.vuepress/styles: 用于存放样式相关的文件。
  • docs/.vuepress/styles/index.styl: 将会被自动应用的全局样式文件,会生成在最终的 CSS 文件结尾,具有比默认样式更高的优先级。
  • docs/.vuepress/styles/palette.styl: 用于重写默认颜色常量,或者设置新的 stylus 颜色常量。
  • docs/.vuepress/public: 静态资源目录。
  • docs/.vuepress/templates: 存储 HTML 模板文件。
  • docs/.vuepress/templates/dev.html: 用于开发环境的 HTML 模板文件。
  • docs/.vuepress/templates/ssr.html: 构建时基于 Vue SSR 的 HTML 模板文件。
  • docs/.vuepress/config.js: 配置文件的入口文件,也可以是 YML 或 toml。
  • docs/.vuepress/enhanceApp.js: 客户端应用的增强。

首页docs/README.md

该页为项目的首页,支持配置:

---
home: true // 是否
actionText: 快速上手 →
actionLink: /guide/
features:
- title: 简洁至上
details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。
- title: Vue驱动
details: 享受 Vue + webpack 的开发体验,在 Markdown 中使用 Vue 组件,同时可以使用 Vue 来开发自定义主题。
- title: 高性能
details: VuePress 为每个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将作为 SPA 运行。
footer: MIT Licensed | Copyright 2018-present xxxxxx
---

配置config.js

结构:

 module.exports = {
title: '组件库文档',
description: '组件库使用方法说明',
}

官方文档地址配置参考

这里介绍部分常用属性:

  1. title标题:

    配置当前文档标题(显示在文档左上角和首页位置)

  2. description描述:

    配置当前文档描述部分(显示在文档首页标题之下)

  3. base网站将在其部署的基本 URL。(Default: '/')

    当你的文档默认需要部署在根目录时无需配置,当需要放在doc子路径下时,请配置base: '/doc/', 请注意:这里前后都需要/

  4. port端口号: (Default: 8080)

    运行时的端口号

  5. theme自定义主题:(Default: undefined)

    指定此选项来使用自定义主题。

  6. themeConfig: (Default: {})

    为使用的主题提供配置选项。这些选项将根据你使用的主题而有所不同。具体使用参见默认主题配置(default theme config)

  7. plugins: 插件扩展

    • 直接引入js:

       module.exports = {
      plugins: [
      require('./my-plugin.js')
      ]
      }
    • 使用npm上的插件:

       module.exports = {
      plugins: [ 'vuepress-plugin-xx' ]
      }

      更多属性请参照官方文档

palette.styl样式变量修改项:

// 颜色
$accentColor = #283eb2
$textColor = #2c3e50
$borderColor = #eaecef
$codeBgColor = #282c34
$arrowBgColor = #ccc
$badgeTipColor = #42b983
$badgeWarningColor = darken(#ffe564, 35%)
$badgeErrorColor = #DA5961
// 布局
$navbarHeight = 3.6rem
$sidebarWidth = 20rem
$contentWidth = 740px
$homePageWidth = 960px
// 响应式变化点
$MQNarrow = 959px
$MQMobile = 719px
$MQMobileNarrow = 419px

enhanceApp.js应用增强

类似vue中的mian.js的作用,用于增强应用的功能,如element-ui将在此处进行注册引入。

结构:

import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
export default ({
Vue, // the version of Vue being used in the VuePress app
options, // the options for the root Vue instance
router // the router instance for the app
}) => {
// ...apply enhancements to the app
Vue.use(Element);
}

注意:引入某些库时会出现运行时没任何问题,而打包时报window is not defined或者document is not defined导致打包时失败的话,这是由于vuepress采用的是服务端渲染 所以此时找不到对应的window,请修改为

 import ElementUI from 'element-ui';
import XXX from "XXX";
export default ({
Vue, // VuePress 正在使用的 Vue 构造函数
}) => {
// ...做一些其他的应用级别的优化
Vue.use(ElementUI);
Vue.mixin({
mounted(){
Vue.component(XXX.name, XXX);
}
})
};

或者改为

 // 扩展写这里
import Element from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
export default async ({
Vue,
options,
router,
isServer
}) => {
const components = await import('XXX')
Vue.use(Element);
Vue.use(components.default)
};
版权声明
本文为[。。]所创,转载请带上原文链接,感谢
https://segmentfault.com/a/1190000039263140

  1. RxHttp - 轻量级、可扩展、易使用、完美兼容MVVM、MVC架构的网络封装类库
  2. Rxhttp - lightweight, extensible, easy to use, perfectly compatible with MVVM, MVC architecture network encapsulation class library
  3. Rxhttp - lightweight, extensible, easy to use, perfectly compatible with MVVM, MVC architecture network encapsulation class library
  4. 前端面试常考题:JS垃圾回收机制
  5. Frequently asked questions in front end interview: JS garbage collection mechanism
  6. Rxhttp - lightweight, extensible, easy to use, perfectly compatible with MVVM, MVC architecture network encapsulation class library
  7. Java之HTTP网络编程(一):TCP/SSL网页下载
  8. HTTP network programming in Java (1): TCP / SSL web page download
  9. Java之HTTP网络编程(一):TCP/SSL网页下载
  10. HTTP network programming in Java (1): TCP / SSL web page download
  11. 使用vite搭建vue项目
  12. 在组件中展示pdf文件:vue-pdf (由于未找到方法滑动加载下一页,只能点击加载下一页pdf文件)
  13. 在 vue 中通过 express 连接数据库
  14. Using vite to build Vue project
  15. Display PDF file in component: Vue pdf
  16. Connecting database through express in Vue
  17. 2021届秋招哈啰出行前端面经(一面)
  18. vue使用sdk进行七牛云上传
  19. Javascript性能优化【内联缓存】 V8引擎特性
  20. Small true wireless smart headset evaluation: put intelligence into the ear
  21. The front end experience of the 2021 autumn recruitment
  22. Vue uses SDK to upload Qi Niu cloud
  23. 深入理解 Web 协议 (三):HTTP 2
  24. dhtmlxGantt如何重新排序任务
  25. JavaScript performance optimization [inline cache] V8 engine features
  26. 深入理解 Web 协议 (三):HTTP 2
  27. Deep understanding of Web protocol (3): http 2
  28. 深入理解 Web 协议 (三):HTTP 2
  29. How dhtmlxgantt reorders tasks
  30. 深入理解 Web 协议 (三):HTTP 2
  31. JavaScriptBOM操作
  32. JavaScriptBOM操作
  33. Deep understanding of Web protocol (3): http 2
  34. Deep understanding of Web protocol (3): http 2
  35. dhtmlxGantt甘特图重新排序任视频教程
  36. vue实现七牛云上传图片功能
  37. vue.js环境配置步骤及npm run dev报错解决方案
  38. Deep understanding of Web protocol (3): http 2
  39. JavaScript BOM operation
  40. JavaScript BOM operation
  41. Dhtmlxgantt reordering video tutorial
  42. Vue to achieve seven cattle cloud upload image function
  43. vue.js Environment configuration steps and NPM run dev error reporting solution
  44. 什么是HTTPS以及如何实施HTTPS?
  45. vue使用sdk进行七牛上传
  46. JavaScript 邮箱验证 - 正则验证
  47. Codeless development platform cloud watch sets off a "new revolution" in enterprise Digitalization
  48. Codeless development of cloud watch for enterprise digital solution
  49. What is HTTPS and how to implement it?
  50. Vue uses SDK to upload seven cows
  51. JavaScript mailbox verification - regular verification
  52. JavaScriptBOM操作
  53. JavaScript BOM operation
  54. How to create a new NPM package and publish it to the NPM community
  55. vue --tinymce 解决上传图片的方法
  56. Vue development
  57. A simple solution for vite to batch introduce SVG symbol
  58. Building 3D rendering engine from scratch with JS (2)
  59. Vue -- tinymece solution to upload pictures
  60. Common configuration of nginx