(https://coder.itclan.cn/)
前言
如果说阅读是知识的输入,那么写作就是知识的输出,输出是一个内化知识理解的过程,有些知识,一问,知道,一动手,不会,看似简单,一看就会,一做就废,凡是不被自己吸收,为自己所用的,都只能称作为做信息,而不能视作为知识.
记录就像是复盘,迭代自己,不断试错,反馈. 无论是前端还是后端,甚至是其他,多动手,多实践才是真理
几大建站技术比较
每一个技术的涌现,受人追捧,必然有着它令人着迷之处,相比于jekyll
,Hexo
,GitBook
,Nuxt
,Docsify/Docute
,以及现在的vuepress
,而不久前尤大又多了个兄弟vitePress
,它们都是一种静态网站生成器,各有特点,没有好坏,都有自己适宜的应用场景
技术永远都是在不断更新迭代,越来越进步
简单做一下对比
Jekyll
特点:Github
自带的,您不用部署静态页面,您只要往 GitHub
上推 md
文件就能产生 blog
问题:
- 当
md
文件多了之后,排序是一个很头疼的问题,纯体力手工劳动,无法实现自动化,速度很是极具考验 - 后端基于 Ruby 语言
- 我早期的博客就是用
jekyll
搭建的,但是后来因为管理确实麻烦,就没打理了的Jekyll
官方文档 http://jekyllcn.com/
Hexo
特点:比Jekyll
要先进一点,先生成文件,在部署
- 基于
Node.js
的静态网站生成器 - 主题很丰富,在vuepress之前很多博客,文档网站都是基于Hexo搭建的,是用jekyll还是Hexo搭建的,基本上做
IT
的小伙伴,也能辨别出来
问题:
每次都需要把生成的静态页面推上去,md
若出现错误,编译会出错,配置的不是特别灵活Hexo
官方文档 https://hexo.io/
GitBook
问题
默认主题有限制,随着文档的增加,每次加载的时间会很长,也不是 Vue
驱动的 官方团队专注于打造一个商业产品,而并非开源工具
- GitBook 官方文档 https://www.gitbook.com/
Docsify-Docute
- 两者都是基于
Vue
,在运行时驱动 Docsify
由于只用于解析Markdown
文件并生成网站,不会生成静态html
文件,所以它是不利于搜索引擎,百度,谷歌等是难以被收录的,即使做了网站统计,也很爬取到你的内容,但是简单,你只需专注 md 编写就可以Docute
,是Docsify
的升级,没有构建过程,将md
文件呈现为单页面应用程序,会生成静态HTML
,对SEO
很友好,利于百度蜘蛛的抓取Docsify
官方文档,- Docute 官方文档https://docute.org/#what-is-docute
Nuxt
更偏向于构建应用程序,SSR
服务端渲染框架,适合构建复杂的系统应用程序,对于开发人员要求是有门槛的,如果自己只专注于内容创作,而耗费精力去搭建一个静态博客,个人觉得,有种大材小用
- Nuxt官方文档 https://zh.nuxtjs.org/
比较
- 阅读体验上:
gitBook
>Docsify/Docute
=vuepress
=HEXO
>Jekyll
- 配置上:
Jekyll
==Docsify
<Docute
<Hexo
<vuepress
,其中Jekyll
和Docsify
配置是最简单的,如果只用于专注内容创作,挺合适的,但是功能很弱,拓展性差 - 性能/
seo
上:VuePress
是最好的,虽然docsify
,docute
都是基于vue
,但是他们是在运行时解析,而vuepress
是预先解析HTML
,体验上会更好,而用Docsify
搭建的网站,是很难被浏览器,搜索引擎录取的,百度,谷歌抓取不到,无人问津状况 - 灵活上:
Vuepress
更加灵活,可实现定制化,网站风格并非千篇一律,熟悉Vue
组件化开发的,上手也不难 - 代码上: 文件结构非常清晰,可维护性,可拓展性好
为什么推荐选择-VuePress
VuePress
- Vue 驱动,强大的插件生态系统,官方文档详细
- 支持搜索引擎优化(SEO),单页面应用,按需加载,支持 PWA(无网络情况下照样能访问)
- 为技术文档而优化内置 markdown 拓展
- 在
md(Markdown) 中可以写
vue组件,甚至写原生
JS,
Ts,
HTML,
CSS`,无任何压力阻碍,更加的灵活,可定制化 - 可以自定义开发主题,任意修改,网站风格不在千篇一律
- 支持
PWA
(自动生成Service Worker
),像app
应用一样添加到手机桌面上 - 集成了 Google Analytics 集成,也支持百度统计
- 基于 git 的最后上传更新时间
- 支持国际化,多语言,只需配置一下就好
- 响应式布局,手机端,PC 端网站友好的用户体验
远不止于用来搭建博客,可以开发公司企业官网等网站应用,也可结合boostrap,Element UI等技术进行二次开发,构建更复杂的应用....
vuepress 官方文档-https://www.vuepress.cn/
注意
- 目前
VuePress
版本并没有支持typescript
,并且没有提供类型定义,但如果想要用TS
,可以安装vuepress-plugin-typescript
插件,它提供了在VuePress
中使用typescript
的部分能力。如果你想获取到正确的类型定义,你可以配合vuepress-types
一起使用 vuepress-types
作为VuePress
的类型定义包,还处于实验阶段- 具体使用,可参考文档
vuepress-plugin-typescript
使用文档,可以去尝试一下,这个不仅仅可以写Ts,在md
也可以写TypeScript
在自己用 VuePress
搭建网站的过程中,从零开始,一行行代码的配置,编写,以及考虑代码模块化的拆分,维护性,可实现按需定制化,到最终部署上线,自定义域名等,在这个过程中,踩了很多坑
当然,也借鉴了不少网上的博客,但很多不是把配置写死,就是代码拓展性极其受限,而且每个人遇到的问题都是不一样的,而官方文档 VuePress
的 API
琳郎满目,对于新手小白,的确眼花缭乱,不知从何看起,配着配着就晕了的
而很多博客,大佬,基本上都是基于一个模板,有很多坑并没有提及
官方文档只适合查阅,也并不适合从头看到尾,不用每个 API 都熟记于心,你只需要知道怎么去查,在哪个地方找就可以了的
VuePress
的配置的确复杂,比较零散,但并非令人望而却步,一旦你掌握了套路后,就会欣赏它的独特,配置选项虽然多,但是它的结构非常清晰
本篇文章有些长,建议一步步的按阶段完成,有些配置你不必知道原因,你只需要知道按照官方文档那么配置,能出来,达到你想要的效果就可以了,至于内部原理,富有闲于时,可自行探索,不必深究
也不要一上来,就去折腾自定义主题,看到酷炫花销的博客,就立马想搞一个出来
一个能吸引到你的网站,让你停留片刻,收藏,点赞,转发,三连击的,起决定性作用,并非是你的 UI,而是你网站所提供的内容服务,如果一味的追求 UI 效果,却忽略建站的初衷,就有些本末倒置了
先把官方默认的主题,玩熟悉了,在去玩自定义主题,以及进行二次开发,都是可以的
口说无凭,话说多了,都是故事,下面一步步带你从零开始,到域名部署等,搭建属于自己的网站,开始自己的记录之旅.
你可前往https://coder.itclan.cn/(还在完善当中,如果有不足bug,谢路过的童鞋指正)
前提准备
安装NodeJs
- 下载
NodeJs
,并安装到本地,下一步,下一步,即可安装 - 检测
NodeJs
是否安装成功,可在命令行终端输入node -v
,同时查看一下npm
的版本npm -v
(在安装Node
完后,npm
是自动就安装上了的,集成在了Node
运行坏境里)
C:Usersitclancoder>node -v
v12.18.0
C:Usersitclancoder>npm -v
6.14.4
警告
请确保你的 Node.js 版本 >= 8
NodeJs 下载地址:(NodeJS-长期支持版下载)
- 安装
git bash
:用于向 github 提交代码,虽然cmd或者power Shell都可以,但还是建议使用git bash - git bash 下载地址:git bash
- 熟悉下
markdwon
语法,不熟悉也没有关系,后续都是用它来写文档,五分钟立马就可以上手,可前往在线练习markdonw
语法 - vscode 插件商店里安装
markdown
,markdown Preview
插件,也可下载安装Typora软件到本地编写md
项目搭建
全局安装-vuepress
- 命令行(
cmd/git bash
)终端下全局安装vuepress
yarn global add vuepress # 或者:npm install -g vuepress 或者cnpm install -g vuepress
警告
- 若是使用
yarn
安装,需要先全局安装yarn(npm install -g yarn),yarn
使用官方文档 - 若是使用
npm
全局安装,请确保你的Node.js
版本 >= 8 - 如果你的现有项目依赖了
webpack 3.x
,推荐使用Yarn
而不是npm
来安装VuePress
。因为在这种情形下,npm
会生成错误的依赖树
初始化项目
在你的电脑某个磁盘下创建一个项目目录:mkdir itclan
,这个是文件夹名字是任意的
mkdir itclan
cd itclan
进入itclan
文件夹后,在cmd
或git bash
终端下,使用npm init -y
,或yarn init -y
初始化,会自动生成一个package.json
文件
yarn init -y 或 npm init -y
经过yarn init -y
后,会生成一个package.json
文件,内容如下所示
{
"name": "itclan",
"version": "1.0.0",
"main": "index.js",
"license": "MIT",
}
紧接着,在 package.json
里加一些脚本,配置启动命令
"scripts": {
"docs:dev": "vuepress dev docs",
"docs:build": "vuepress build docs"
}
警告
当 package.json
配置成这种格式时,在当前文件下,启动时使用npm run docs:dev
,启动项目,而打包构建时,使用npm run docs:build
这个也可以简化成
代码语言:javascript复制"scripts": {
"dev": "vuepress dev docs",
"build": "vuepress build docs"
}
警告
当package.json
配置成这种格式时,在当前文件下,启动时可以使用npm run dev
,启动项目,而打包构建时,使用npm run build
如果是使用 yarn
方式启动和构建项目:可以使用yarn dev启动项目,而使用yarn build构建项目
- 启动项目:
npm run docs:dev
这条命令相当于vuepress dev docs
- 打包项目:
npm run build
这条命令相当于vuepress build docs
在接着,创建docs
目录, 这个docs
文件夹主要用于放置我们写的.md
类型的文章以及.vuepress
相关的配置,这个文件夹的名字你可以任意,与你启动项目和构建项目时的配置保持一致就可以了的
mkdir docs
进入docs
文件夹中使用mkdir
命令创建.vuepress
文件夹,注意这个文件夹的名字时固定的,不要随便改变
cd docs
mkdir .vuepress
这个.vuepress
主要就是我们用于存放全局的配置、组件、静态资源等与VuePress
相关的文件配置都将会放在这里
具体更详细配置说明可见官网:基本配置 具体更详细的目录树结构说明:目录结构 至此,项目大体已经搭建完成了,接下来,主要就是一些配置
限于篇幅所致,更多配配置见后文...