Vuepress 2从0-1保姆级入门教程——安装流程篇

在这里插入图片描述

Vuepress 2 专栏目录【已完结】

1. 入门阶段

  1. Vuepress 2从0-1保姆级入门教程——环境配置篇
  2. Vuepress 2从0-1保姆级入门教程——安装流程篇
  3. Vuepress 2从0-1保姆级入门教程——文档配置篇
  4. Vuepress 2从0-1保姆级入门教程——主题与部署

2.进阶阶段

  1. Vuepress 2从0-1保姆级进阶教程——全文搜索篇
  2. Vuepress 2从0-1保姆级进阶教程——美化与模版
  3. Vuepress 2从0-1保姆级进阶教程——标准化流程

更新日志

  • Markdown引用格式改为图片形式,更加醒目
  • 图标数据更新
  • 教程重制版更新,替换部分过时图片,添加路由说明
  • 教程素材添加新版图标和源文档,方便找问题
  • 修改文章病句
  • 删除vuepress手动安装方式(对新手不友好)
  • 更新到VuePress 2.0.0-rc.13版本,默认主题2.0.0-rc.35
  • 引用块放大显示,避免文字不清晰

在这里插入图片描述

教程仓库:https://gitee.com/passwordgloo/comet-tutorial
蓝奏云:https://wwk.lanzouo.com/b04x8f3hg
密码:666

官方文档

Vuepress 2 官方文档

Vuepress 2 默认主题和插件

教程仓库

git clone https://gitee.com/passwordgloo/comet-tutorial.git
cd comet-tutorial
pnpm install

如果你按照教程一步步来,最后会得到下面的效果👇

在这里插入图片描述

一、安装Vuepress2

✅ 本教程以空白项目comet(彗星)为例,使用默认主题
✅ 如需换用其他主题,请跳转 Vuepress 2 主题与部署
✅ 本教程选用pnpm Node.js 包管理器,不清楚npm、yarn、pnpm区别的请参考程序员晚天的npm、yarn、pnpm优缺点
⚠️ 请确保GitNodePnpm安装完毕,如果不清楚环境配置,移步这里Vuepress 2.X 环境配置篇
❌ 请勿在驱动器根目录运行,比如D:\ ,会提示没有权限

在这里插入图片描述

(一)自动化安装

在这里插入图片描述

pnpm create vuepress comet
  • 非常方便,只需要一行命令
  • 已有空仓库直接执行下列代码会提示文件夹非空,可以在执行完后把空仓库📁.git复制过去

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

填y同意预览,点击链接,此时显示VuePress 2 介绍页

🥎 官方修复该错误后,请忽略本提示

🔔 目前在默认主题2.0.0-rc.35预览会报以下错误,即找不到引用的@vuepress/plugin-theme-data文件
在这里插入图片描述

@vuepress/plugin-theme-data在先前版本已经内置在主题中,除非主题开发和多语言需要,才需要单独安装

需要输入下列指令,即可修复错误

pnpm i -D @vuepress/plugin-theme-data@next

在这里插入图片描述

Vscode打开comet文件夹,新建.gitignore文件(git忽略目录)

#ide
*.DS_Store
.idea
.vscode

#npm
package-lock.json
yarn.lock

#build result
dist
lib
docs/.vuepress/.temp
docs/.vuepress/.cache
docs.vuepress/dist

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Runtime config
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov

# Coverage directory used by tools like istanbul
coverage

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Optional REPL History
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env

#lerna-changelog
.changelog

#vscode history extension
.history

此时文件目录如下,注意.gitignore文件Windows用户正常显示,Ubuntu和Mac默认隐藏.开头的文件

📂 docs 存放文档和主题配置文件

📁 node_modules(node模块) 依赖包位置,定制化需求时再动

🔖 package.json记载包的安装版本,请参考我有一棵树的关于package.json 和package-lock.json了解详情

在这里插入图片描述
Ubuntu页面

在这里插入图片描述

(二)预览

pnpm docs:dev

使用pnpm docs:dev预览时,会生成缓存文件(.cache,temp)方便下次更快预览,但是下次作出重大调整后,如果还是之前的效果,请使用下列指令,作用相当于先清除缓存再预览

pnpm docs:clean-dev

框架搭建

一、Package.json【可选】

Vscode打开项目文件夹,编辑package.json

✔️ 以下内容可选,SEO需要这些,不需要的话可以跳过

"keywords": [
    "关键词1",
    "关键词2",
    "关键词3"
  ],
"author": "作者名字",
"homepage": "你的主页地址",
"repository": {
    "type": "git",
    "url": "你的仓库地址"
},

在这里插入图片描述

二、搭建文档首页

(一)路由

1. 路由解释

好多人都会忽略这一块,但请你一定要过一下,不然后面的文件路径你看不明白

这里的路由不是计算机网络中的路由,它是单页应用路径管理器。Vuepress里每一个Markdown文件借助markdown-it转换为浏览器熟悉的单个html文件,使用Vue自家的vue router规划好路由路径,浏览器就能根据地址找到对应文件。

咦,HTML中a标签不也能实现页面跳转吗?Vue干嘛要折腾出一个vue-router?因为a标签每执行一次都会重新渲染一次页面,白白消耗DOM性能,vue学聪明了,按照模块组件化设计,我按需渲染指定的组件(component),避免了重复渲染问题,这种优势在本地页面视觉效果不明显,但是放在云端,你使用a标签点击一个页面,出现了视觉”闪烁“效果,用户体验不就没了

2.相对路径与路由路径关系

Vuepress使用相对路径描述文件位置,再转化为路由路径(这个我们不用管),下表展示了二者的对应关系:

相对路径路由路径
/README.md/
/index.md/
/about.md/about.html
/vue/README.md/vue/

相对路径里README.md和index.md都会转化成index.html,两者同一层级时会冲突的
换句话说,README.md和index.md不能在一个文件夹共存

3.相对路径父目录

相对路径前面的/不同情形下指代的父级目录是不同的

情形父目录
markdown文件默认是📁docs,配置里可自定为其他
音乐、图标、附件等静态文件在这里插入图片描述
导航栏、侧边栏语言设置、vuepress语言设置,主题语言设置/指当前语言
/en/指📂docs里的📁en
/zh/指📂docs里的📁zh
(en和zh名字任取)

(二)文档首页

1️⃣ 在📁docs文件夹内部新建README.md,自动化安装的用户直接替换原先内容
2️⃣ Markdown文件开头可以设置YAML Frontmatter。代码两端使用---隔开,你可以理解为当前文档的属性信息,后面是自己写的内容,遵循Markdown语法

---
home: true
heroImage: /comet.png
heroText: 彗星文库
tagline: 繁星似海 熠熠生辉
actions:
  - text: 博客
    link: https://blog.csdn.net/passwordgloo
    type: primary
  - text: 关于
    link: about.md
    type: secondary
features:
- title: 笔记
  details: Markdown语言,简洁高效记录每一刻
  link: https://www.baidu.com
- title: 博客
  details: 干净整洁的博客,易于存档文件
- title: 文档
  details: 在线个人文档,创作中意的文档
footer: MIT Licensed | Copyright © 2020-present Passwordgloo
---
名称含义
home判断是否是首页
heroImage首页logo图,支持svg、png、gif、jpg
heroText首页标题
tagline首页标语
actions按钮,text和link可以多个
text按钮文字
link按钮链接,子版块文件夹名
features文档分栏,title和details数量自定
footer文档底部板块

在这里插入图片描述
3️⃣ 📁.vuepress文件夹内新建📁public文件夹,放入comet.pngfavicon.ico文件

在这里插入图片描述

在这里插入图片描述

(三)预览效果

🔔 终端使用Ctrl+C🉑停止前面的预览

pnpm docs:dev

在这里插入图片描述

🎯 点击右上角太阳图标,查看深色模式

在这里插入图片描述

三、子版块

(一)定义

子版块是除首页外其他内容的版块
子版块首页还是README.md文件
不同子版块和多语言使用文件夹分隔,避免相互干扰

在📁docs文件夹新建文件夹存放子版块,名字任意不重复,不区分字母大小写,数量无要求,不推荐中文命名,容易报错

(二)YAML Frontmatter

与文档首页一样,子版块Markdown 文件可以包含一个 YAML Frontmatter 。Frontmatter 必须在 Markdown 文件的顶部,并且被包裹在一对三短划线中间

默认主题提供的选项如下,属性值都为true(启用)/ false(不启用)

英文名中文解释备注
navbar导航栏默认启用
sidebar侧边栏可设置sidebar:heading本页面启用
lastUpdated最近更新时间git push的时间
editLink编辑本页功能
contributors贡献者有需要就加

(三)示例

docs文件夹新建⭐️about.md

---
sidebar: heading
---

# 了解我

![](https://img.shields.io/badge/Author-passwordgloo-blueviolet?logo=github&style=flat) 
![](https://img.shields.io/github/last-commit/passwordgloo/stairs-doc?logo=git) 
![](https://img.shields.io/badge/passwordgloo-4-white?logo=bilibili&logoColor=white&labelColor=FE7398&style=flat) 
![](https://img.shields.io/badge/麦田守望者-92-white?logo=zhihu&logoColor=white&labelColor=0084ff&style=flat) 
![](https://img.shields.io/badge/dynamic/json?color=white&label=%E7%BD%91%E6%98%93%E4%BA%91%E9%9F%B3%E4%B9%90&query=%24.data.totalSubs&url=https%3A%2F%2Fapi.spencerwoo.com%2Fsubstats%2F%3Fsource%3DneteaseMusic%26queryKey%3D1732207004&logo=data:image/svg+xml;base64,PHN2ZyBpZD0i5Zu+5bGCXzEiIGRhdGEtbmFtZT0i5Zu+5bGCIDEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDQyNS4yIDQyNS4yIj48ZGVmcz48c3R5bGU+LmNscy0xe2ZpbGw6I2ZmZjt9PC9zdHlsZT48L2RlZnM+PHRpdGxlPue9keaYk+S6kTwvdGl0bGU+PHBhdGggY2xhc3M9ImNscy0xIiBkPSJNMzIwLjYsNDI1LjJIMTA1LjQyYy0xLjY5LS4yLTMuNC0uNDQtNS4wOS0uNjEtOC4xNy0uODctMTYuNDMtMS4xOS0yNC40OC0yLjY4QzUxLjQxLDQxNy40LDMxLjc3LDQwNSwxNy40NSwzODQuNTYsNy40NSwzNzAuMjksMi44NSwzNTQuMTUsMS4zMywzMzcsLjgxLDMzMS4yNi40NCwzMjUuNTEsMCwzMTkuNzdWMTA3LjA4Yy4yMi0yLjQxLjQzLTQuODIuNjctNy4yMi44My04LjE3LDEuMTYtMTYuNDMsMi41OS0yNC40OSw2LjQ1LTM2LjUyLDM0LjQ5LTY0LjY0LDcxLTcxLjkxQzg5LjQuNDYsMTA0LjcuMSwxMjAsLjA4LDE4NC44MiwwLDI0OS42MS0uMSwzMTQuNC4xN2ExODEuMTIsMTgxLjEyLDAsMCwxLDM0Ljc4LDNjMzYuOTUsNy4zOCw2MS4xOSwyOS4zMyw3MS41Nyw2NS44LDQsMTQuMTgsNC4zNSwyOC44OSw0LjM4LDQzLjUxcS4xNSwxMDAuMDgsMCwyMDAuMTdBMjQzLjU4LDI0My41OCwwLDAsMSw0MjIuNzgsMzQ2Yy0zLjksMjcuMjMtMTcuNjMsNDguNTEtNDAuOCw2My40Ny0xMy43OSw4LjktMjkuMjIsMTIuOTQtNDUuNCwxNC40MUMzMzEuMjIsNDI0LjM3LDMyNS44Nyw0MjQuNzcsMzIwLjYsNDI1LjJaTTI2Ni44NCwxNjQuNzZjMS42OC40MiwyLjY3LjYxLDMuNjIuOTFBNjQuMzgsNjQuMzgsMCwwLDEsMjk2LjA5LDE4MWMzMSwzMC4zNywzMi40Nyw4Mi4zOSwyLjUyLDExNS4xMy0yNy40MSwzMC02MS44NSw0MS41LTEwMS42OSwzNC40OS02OS40Mi0xMi4xOC0xMTAuMS04NS40NS04NC4xMS0xNTAuODksMTEuNTktMjkuMTcsMzIuNDMtNDkuNiw2MS4yNi02Miw5LTMuODYsMTIuODYtMTIuODQsOS4zNC0yMS4xNy0zLjYxLTguNTQtMTIuNzYtMTItMjEuODktOC4yMkExNDIuOTIsMTQyLjkyLDAsMCwwLDc2LjY5LDI1M0M5MSwzMTUsMTQ1Ljg3LDM2MS4xMywyMDkuMTgsMzY0LjE4YzM2LjE3LDEuNzQsNjktOC4zMiw5Ni44Mi0zMS4zOCwzOS41MS0zMi43MSw1NC44My03NC42MSw0MS43MS0xMjQuODEtOC4yNi0zMS42MS0yNy42NS01NS4yMi01Ny44OC02OWExMDIuNTIsMTAyLjUyLDAsMCwwLTI5LjU2LThjLTEtLjE0LTIuNjUtLjgxLTIuODUtMS41NGExOTMsMTkzLDAsMCwxLTQuODktMjAuMSwxNSwxNSwwLDAsMSw4LjMzLTE1LjksMTYsMTYsMCwwLDEsMTcuOSwyLjQ0YzEuNjEsMS40LDMsMyw0LjYyLDQuNDNhMTYsMTYsMCwwLDAsMjIuNTUtMS4zOC42OS42OSwwLDAsMCwuMTEtLjEzYzUuNTMtNi40Miw1LjM0LTE1LjE5LTEtMjIuMTRhNDksNDksMCwwLDAtNzUuNDgsMi44M2MtMTAsMTMuMTMtMTAuOTMsMjgtNyw0My40OS44MSwzLjIsMS42NSw2LjQsMi40NCw5LjM5YTcuMzcsNy4zNywwLDAsMS0uNjEuNWMtMS4yNy4zNi0yLjUzLjcyLTMuOCwxLTE4LjgyLDQuODgtMzUsMTQuMjUtNDcuMzMsMjkuMzYtMTkuMjksMjMuNTctMjUuNDUsNDkuOTMtMTQuMSw3OC44MiwxMi40OSwzMS43OSw0NS45Miw0Ny44Myw3Ny41LDM3Ljc4LDI4LjA4LTguOTQsNDQuNzMtMzUuMzQsNDIuMTEtNjUuMjItLjgzLTkuNjEtMy42Ni0xOS4wOC01LjkyLTI4LjUzQzI3MS4xNiwxNzkuMTUsMjY5LDE3Mi4zMSwyNjYuODQsMTY0Ljc2WiIgdHJhbnNmb3JtPSJ0cmFuc2xhdGUoMCAwKSIvPjxwYXRoIGNsYXNzPSJjbHMtMSIgZD0iTTE4NS42OCwyMTEuNTJjMS0xNy44MywxMS44NS0zMi40OSwzMC4xNS00MS45Miw0LjcyLTIuNDQsMTAuMS0zLjU2LDE1LjE1LTUuMzQsMS43NC0uNjEsMi41Mi0uMTYsMywxLjY4LDMuOTMsMTQuMzcsOC4wOSwyOC42OCwxMS44OCw0My4xMWEzNy4zOSwzNy4zOSwwLDAsMS0uNzYsMjMuMDhjLTcuMzgsMTkuNzctMzIuNDMsMjUuMjUtNDcuODUsMTAuNDdDMTg5LjM0LDIzNSwxODUuNiwyMjUuNjcsMTg1LjY4LDIxMS41MloiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgMCkiLz48L3N2Zz4=&labelColor=d62f2e)

<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=100% height=110 src="//music.163.com/outchain/player?type=0&id=7113076622&auto=1&height=90"></iframe>

## 教程使用

访问[蓝奏云](https://wwk.lanzouo.com/b04x8f3hg),密码666

## 项目用途

*   归档个人学习经验
*   留下自己学习印迹
*   启迪他人思想火花

## 联系信息

- [Github](https://github.com/passwordgloo)
- [Gmail](mailto:flyigloo@gmail.com)
- [163邮箱](mailto:passwordgloo@163.com)

重新进入首页,点击关于
在这里插入图片描述

在这里插入图片描述

Vuepress 2 文档配置篇我们将完善config.ts,添加logo、导航栏、侧边栏

  • 12
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
当涉及到 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程时,以下是一步一步的指南: 1. 确保您的项目中已经安装Vue 和 DHTMLX-Gantt。如果尚未安装,请使用以下命令进行安装: ```bash npm install vue dhtmlx-gantt ``` 2. 在您的 Vue 组件中引入所需的库和样式: ```javascript import 'dhtmlx-gantt'; import 'dhtmlx-gantt/codebase/dhtmlxgantt.css'; ``` 3. 创建一个 Vue 组件,并在模板中添加一个 Gantt 图表和一个按钮: ```html <template> <div ref="ganttContainer" style="width: 100%; height: 600px;"></div> <button @click="exportData">导出 Excel</button> </template> <script> import * as XLSX from 'xlsx'; import FileSaver from 'file-saver'; export default { mounted() { const ganttContainer = this.$refs.ganttContainer; gantt.init(ganttContainer); // 设置 Gantt 图表的配置和数据 // 示例数据 const tasks = [ { id: 1, text: '任务1', start_date: '2022-01-01', duration: 5, progress: 0.5 }, { id: 2, text: '任务2', start_date: '2022-01-06', duration: 4, progress: 0.2 }, // 其他任务... ]; gantt.parse({ data: tasks }); }, methods: { exportData() { const gantt = this.$refs.ganttContainer.$gantt; const tasks = gantt.getDatastore('task').getItems(); // 将任务数据转换为 Excel 数据格式 const data = tasks.map((task) => { return { id: task.id, text: task.text, start_date: task.start_date, duration: task.duration, progress: task.progress, }; }); // 创建 Excel 文件 const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, worksheet, 'Gantt Data'); const excelBuffer = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); const excelData = new Blob([excelBuffer], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); // 下载 Excel 文件 FileSaver.saveAs(excelData, 'gantt_data.xlsx'); }, }, }; </script> <style> /* 可选的样式 */ </style> ``` 4. 在上述示例代码中,需要注意以下部分: - 在 `mounted` 钩子中,使用 `gantt.init(ganttContainer)` 初始化 Gantt 图表,并根据您的需求设置其配置和数据。 - `exportData` 方法用于将 Gantt 图表数据导出到 Excel。确保在 `exportData` 方法中的 `this.$refs.ganttContainer.$gantt` 是对 Gantt 图表组件的正确引用。 - 点击 "导出 Excel" 按钮时,将会生成一个名为 `gantt_data.xlsx` 的 Excel 文件,其中包含了 Gantt 图表的数据。 这就是使用 Vue DHTMLX-Gantt 导出 Excel 的保姆完整教程。希望对您有所帮助!如果您有任何其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值