使用 VuePress 搭建一个自己的知识文档

最近准备对前端知识做一个梳理,将自己的平时遇到的问题和解决方案形成一个知识文档。本文记录了搭建 VuePress 的主要过程,同时也提供了部分自定义的配置,示例地址:http://doc.i-fanr.com

环境搭建

VuePress 有着比较完善的中文文档,我们可以直接参照文档搭建,首先确保电脑上已经安装了 Node.js 并且版本号不小于 8.6

# 检查 Node.js 版本号
node -v

建立一个文件夹用来搭建 VuePress, 例如我的 VuePress 搭建在 spacexcode目录 下

mkdir spacexcode && cd spacexcode

将 VuePress 安装为本地依赖

yarn add -D vuepress # npm install -D vuepress

创建你的第一篇文档

mkdir docs && echo '# Hello VuePress' > docs/README.md

在 package.json 中添加一些 scripts

{"scripts": {"docs:dev": "vuepress dev docs","docs:build": "vuepress build docs"}
}

在本地启动服务器

yarn docs:dev # npm run docs:dev

添加主题

环境添加完毕后接下来就是装修完善了,VuePress 的原始样式更适合制作文档,因此我们需要自定义样式。VuePress 提供了自定义主题与样式的方法,为了简单我们可以直接使用别人制作好的博客主题 这里推荐一个我正在使用的主题 vuepress-theme-reco 主题的使用方法文档中已经介绍的很详细了,这里分享几个我自己的自定义设置

修改页面样式

原始主题的页面内容宽度最大值是固定的,在我的大屏幕上显得有些窄了,因此我将文本宽度改为了页面宽度的 50%,这个设置与 Hexo 的设置一致,每个人可以根据自己的爱好修改。在 .vuepress/styles/palette.styl 文件中添加如下样式

// 首页内容宽度更改为页面的 75%
.home-blog.home-blog-wrapperwidth :75%// 文章页内容宽度更改为页面的 50%  
.page.page-titlemax-width :50%.content__default:not(.custom)max-width :50%.page-navmax-width :50%.comments-wrappermax-width :50% !important

添加插件

安装插件,以  vuepress-plugin-image插件为例

yarn add vuepress-plugin-image

然后在 config.js 中添加插件

plugins: ['@vuepress/plugin-back-to-top','@vuepress/plugin-medium-zoom','image']

添加主题中未包含的插件,这里介绍几个我使用的插件 vuepress-plugin-viewer 一个图片查看插件 vuepress-plugin-pangu 自动在文章中英文与汉字之间添加空格 vuepress-plugin-tabs 增加一个带有 tab 标签的容器 vuepress-plugin-click 鼠标点击时增加特殊效果 vuepress-plugin-demo-block 添加 H5 代码预览区块

部署

博客搭建完成后需要部署,我们可以创建一个 shell 文件来打包部署,我的部署到 github.io 下面,这是我的 shell 文件

#!/usr/bin/env sh# 确保脚本抛出遇到的错误
set -e# 生成静态文件
yarn docs:build# 进入生成的文件夹
cd docs/.vuepress/distgit init
git add -A
git commit -m 'deploy'
git push -f git@github.com:fantingsheng/spacexcode.git master
- END -

太空编程

分享硬核的编程知识

分享精彩,码上快乐。JavaScript已然上天,有朝一日实现太空编程!回复【pdf】更有海量的优质电子书供下载。

spacexcode

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/354569.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

代码重构学习

文章:浅谈重构中踩过的坑 文章中有一个很好的,优化if else多分支判断的例子,将方法抽象出来,根据不同场景实现抽象类,然后用写一个工厂类,一个工厂方法,通过传入类型,进行实例化。 很…

pta 朋友圈

某学校有N个学生,形成M个俱乐部。每个俱乐部里的学生有着一定相似的兴趣爱好,形成一个朋友圈。一个学生可以同时属于若干个不同的俱乐部。根据“我的朋友的朋友也是我的朋友”这个推论可以得出,如果A和B是朋友,且B和C是朋友&#…

金三银四跳槽面试季,我整理前端知识做了个网站

每年的金三银四,都将迎来求职面试的一个高峰期,为什么会有那么多的求职需求?多是因为以下几个来源:已拿 offer 等年终奖的:年前已经找到机会,领了年终奖辞职要到新公司报到的临时起意要辞及裸辞的&#xff…

web框架和后台开发_Web开发框架–第1部分:选项和标准

web框架和后台开发在我的公司,我们正在评估未来几年将使用哪种Web开发框架。 自上次评估以来,我们一直在使用由Struts 2驱动的Java应用服务器作为MVC,将Tiles作为模板引擎,将jQuery用于Javascript awesomennes,将DWR用…

hadoop的Map阶段的四大步骤

深入理解map的几个阶段是怎样执行的。转载于:https://www.cnblogs.com/xubiao/p/7846080.html

小程序 Typescript 最佳实践

小程序结合TypeScript开发,如果用第三方框架,首选Taro已完美支持。但是如果你选择原生开发,那么下面的这份实践可能会帮到你。小程序 Typescript 最佳实践使用 gulp 构建(支持 typescript 和 less/sass/scss)使用 type…

DIY注释

从Java 5开始,Java中出现了注释。 我想做一个自己的注释,只是为了看看需要什么。 但是,我发现它们只是接口。 有擦 接口后面没有牙。 必须执行一些代码。 我认为这是橡胶行之有效的方法,我真的找到了解决方法。 首先&#xff0c…

这款电脑升降桌美到我了

一直在寻觅一款集颜值与功能于一体的电脑升降桌,这款乐歌 E5 电动桌终于成功地满足了我的需求。有黑白两款颜色可选,但其中白色钢化玻璃版常适合用来作为白色系桌面的基础——四周圆角设计,再加上碳素钢的桌体框架,整体非常有质感…

spring boot集成mybatis+事务控制

一下代码为DEMO演示,采用注解的方式完成Spring boot和Mybatis的集成,并进行事物的控制 数据源的配置: 1 spring.datasource.urljdbc:mysql://localhost:3306/book 2 spring.datasource.usernameroot 3 spring.datasource.password 4 spring.datasource.d…

分享一个引起极度舒适的工作桌面

干净整洁的桌面或许不能带给你工作效率的提升,但一定会给你带来愉悦的心情。长期码字一定需要一个升降桌,可自由地调节高度,以保证舒适的坐姿和灵活的视角。另外坐久了,累了还能站立工作一会儿。有了外显之后,如果不需…

canvas绘制多边形

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>canvas绘制多边形</title> </head> <body> <canvas id"canvas" style"border: 1px solid darkcyan;" width…

ehcache rmi_EhCache复制:RMI与JGroups

ehcache rmi最近&#xff0c;我正在研究一种需要复制缓存的产品。 缓存提供程序已经确定-EhCache&#xff0c;剩下的就是有关传输的问题。 哪一个是最佳选择&#xff1f; 这里的最佳选择是指性能更好的选择。 仅在两个可用传输之间进行了性能评估-JGroups和RMI&#xff0c;对其…

Element Table 可以实现哪些常见的有用的功能

最近项目中频繁使用 table 功能&#xff0c;因为 UI 框架使用的又是 Element UI&#xff0c;于是总结下在 Element 下 el-table 组件使用技巧。1.行背景色table 组件提供了 row-style 属性&#xff0c;说明&#xff1a;行的 style 的回调方法&#xff0c;也可以使用一个固定的 …

从0开始 Java实习 黑白棋

黑白棋的设计 代码如下&#xff1a; import java.util.*; public class Chess{char[][] chess new char[16][16];public static void main(String args[]){ Scanner in new Scanner(System.in);Chess ch new Chess();ch.init(); ch.output();int tag 0;int nn 0;wh…

如果在这样的环境中写代码,会不会很高效

桌面环境分享系列又来了。我会把平时看到的好的桌面布置分享给大家&#xff0c;帮助大家在桌面整理和打造方面提供一些新的想法和创意。如何评价一个开发桌面的好坏&#xff0c;首先一定要清爽整洁&#xff0c;该有的家伙事儿一定要有。不是要看上去要有多高大上&#xff0c;重…

为什么选择SpringBoot?

使用Spring MSpring进行许可是一种非常流行的基于Java的框架&#xff0c;用于构建Web和企业应用程序。 与许多其他只关注一个领域的框架不同&#xff0c;Spring框架通过其投资组合项目提供了广泛的功能来满足现代业务需求。 Spring框架提供了以多种方式&#xff08;例如XML &a…

wamp2.5可用php5.6,局域网访问,多站点配置

1.用php5.6 直接下载个wamp3.0的&#xff0c;那里的php支持5.6&#xff0c;安装之后把php5.6的文件夹剪切到wamp2.5的放php的文件夹&#xff0c;然后wamp那里就有php5.6的选择了&#xff0c;选择后就可以用了 2.局域网访问 打开apache的配置文件&#xff0c;然后搜索Require lo…

Vue 页面如何监听用户预览时间

最近的业务中涉及到这样一个需求&#xff0c;在线培训的系统需要知道用户对某个在线预览的页面追踪用户的预览时长。初步我们首先想到借助 Vue 页面的生命周期函数 mounted 和 destroyed&#xff0c;分别在其中加入开始计时和清除计时的逻辑&#xff0c;通过后台的接口上报对应…

一个追求高效的学习者手机里装有哪些APP?(转)

转载&#xff1a;http://www.jianshu.com/p/f568c8d8b6bb 1、录音软件-Recordium 参加活动&#xff0c;如果不想错过活动现场的经常片段&#xff0c;速记又来不及&#xff0c;那就选择录音吧。小六之前都使用录音笔&#xff0c;但是自从有了这个APP之后&#xff0c;在开会&…

spring social_Spring Social入门

spring social像我一样&#xff0c;无论是添加简单的Facebook“赞”按钮&#xff0c;一大堆“共享”按钮还是显示时间轴信息&#xff0c;您都不会注意到当前对应用程序“社交化”的热衷。 每个人都在做这件事&#xff0c;包括Spring的家伙&#xff0c;事实上&#xff0c;他们提…