前言
捯饬了这么久,稍稍回顾下。
鉴于百度、知乎、简书等的相关教程良莠不齐和自己些许的心得,在这里备份经验罢了。
一句话,还是得多看网站的Help Center,找到相关问题的解决方案才是最理想的选择,避免走太多弯路!
所以以下内容以各官网Help Center解决方案内容为主进行梳理。
博客搭建
1.Set Up Git[1]
基本保持默认设置即可,直至安装成功。
Ctrl+R,输入cmd回车,在Windows命令行界面中输入git –version,检查是否安装成功
2.Set Up Node.js[2]
同上输入node -v和npm -v,查看版本信息以确定是否安装成功
1 | node --version |
3.Create A Repo[3]
4.Install Hexo
①在自己认为合适的地方创建一个名为hexo的文件夹,然后由cmd进入该文件夹(一定要进入此文件夹,相关操作命令类同Linux)
②输入npm install hexo-cli -g,随后输入hexo -v检查是否有hexo-cli的版本信息,若有则安装成功。
③输入npm install hexo –save,同样输入hexo -v检查是否有hexo的版本信息以确定是否安装成功。
④配置hexo,输入hexo init
⑤输入npm install
⑥新建完成,到指定文件夹目录检查资源:
1 | _config.yml--站点配置文件,配置各类参数 |
5.站点_config.yml设置
1 | ... |
其他参数设置请参考Hexo官网[4]。
6.Select a theme
①Hexo官网主题[5]
选择一个主题进入,然后找到GitHub入口,就可以找到此主题在GitHub的代码库,找到download按钮进行zip格式下载安装至hexo/themes目录下,然后
将站点配置文件_config.yml内的theme: theme_name的theme_name改成相应主题的名字即可,注意查看代码库关于此主题配置文件_config.yml的参数说明,
其次区分好站点配置文件和主题配置文件!
②知乎主题[6]
个人比较推荐这个吧,喜欢简洁类型的。
7.Install Atom[7]
为了方便编写文章,个人使用Atom的markdown编辑器,所以推荐之。
安装之后,相关常用命令:(需要使用git-bash,进入hexo主目录)
hexo clean —— 清楚public目录(该目录就是上传部署到GitHub代码仓库的目录文件),此命令不可轻易使用,特别是个人另外在public添加了相关文件,一旦使用则会删除
hexo g —— 生成静态页面
hexo d —— 部署上传至GitHub
hexo new “file_name” —— 生成名为file_name的md文件,在atom中即可编辑
hexo s —— 本地测试,一般先本地测试调试成功后再hexo d部署
以上内容参考如下:
①Hexo官网[4]
②GitHub官网[8]
8.配置SSH
①添加SSH Key
执行以下命令获取密匙,密匙所在目录为/c/Users/you_PC/.ssh/id_rsa,可以用atom打开
1 | ssh-keygen -t rsa -C "your_email@example.com" //一直回车直至密匙生成成功 |
在Github个人setting(不是仓库的setting)点击SSH and GPGkeys选项,选择New SSH key
复制/c/Users/you_PC/.ssh/id_rsa.pub中的内容到Key框中,Title框中名字随意。
②测试SSH Key
1 | ssh -T git@github.com |
③补充解释第5点
站点配置文件的repo设置,如果设置了SSH,才能用诸如
1 | repo: git@github.com:xxx/xxx.github.io.git |
否则只能用第二种。
9.配置Git个人信息
1 | git config --global user.name "name" |
主页设置
这个主要是个人的想法,希望一个主页充当门面🙈,所以就捯饬了一番:
①进入hexo/node_modules,找到hexo-generator-index,将其删除,当然最好是备份后删除,万一以后要用呢?😼。(该插件用于渲染网页,效果就是将所有页面集合到一个页面中充当主页)
②hexo new “index”(必须名为index),随后进入atom将index.md文件拖拽至hexo/source目录下即可,也就是与_post目录并列
③编辑index.md内容,内容即主页内容,随后hexo d -g即可。
音乐设置
个人采用yilia主题,所以希望在left区域底部设置音乐模块。
atom进入/hexo/themes/yiia/layout/_partial/left-col.ejs
最后一对nav标签前添加,即class为header-smart-menu和header-nav中间
①网易外链
1 | <nav> |
②Aplayer自定义
Aplayer是H5音频播放器,这和之前的个人插件aplayer内核一样,只不过这个是原生的,而插件则是为了更好地在md文件中使用,犹豫已经安装了插件,而aplayer对应的js文件已经有了,只要引用就好了。
1 |
|
绑定域名
如果不喜欢github自动生成的域名,则可以购买域名,使用之。
①购买域名
Gandi、GoDaddy、DNSPod等DNS provider都可以购买,根据自己的喜好选择后缀。
②域名解析
这里参考网上许多人的建议,为了防止被中国国家防火墙给屏蔽了,建议使用DNSPod进行域名解析。
a.修改域名提供商的DNS
进入购买域名的DNS provider官网管理自己的域名
这里建议进入DNSPod官网问题向导[9],有关于各家DNS provider进行DNS修改的解决方案,参考即可。
b.设置DNSPod域名解析记录
添加两条A记录,主机记录为@,记录值为192.30.252.153和192.30.252.154(GitHub的DNS服务器IP地址)
主机记录 | 记录类型 | 线路类型 | 记 录 值 | 权重 | MX优先级 | TTL | 操 作 |
---|---|---|---|---|---|---|---|
@ | A | 默认 | 192.30.252.153 | - | - | 10 | 删除 暂停 |
@ | A | 默认 | 192.30.252.154 | - | - | 10 | 删除 暂停 |
www | CNAME | 默认 | lourisxu.github.io | - | - | 10 | 删除 暂停 |
③绑定域名
进入GitHub代码仓库,setting里找到custom domain,输入你的域名example.com,save即可,之后回到代码仓库的code可以发现多了CNAME文件,说明成功了。
这里需要注意的是,可以在本地hexo/source内新创建CNAME(无后缀名)文件,内容仅为example.com即可,以免之后每次部署会将代码仓库中的CNAME文件给刷新掉而需要每次部署后重新setting操作。
(但是个人测试发现,第一次配置必须先进入代码仓库setting内设置,如果刚开始就本地创建了CNAME,则无效,这个是否为偶发事件有待进一步验证,谁会是下个小白鼠呢?🎃)
耐心等待一会就可以通过自己的域名访问自己的博客了!👏
详细参考如下:
Using a custom domain with GitHub Pages[10]
个人常用插件
hexo-encrypt[11] —— 文章加密
hexo-pdf[12] —— 加载pdf文件,已经改用外链脚注代替,以免影响网页加载速度
hexo-reference[13] —— 引用插件,测试还有issues,所以有待进一步跟进,已经反馈了,等回复
hexo-tag-aplayer[14] —— 音频文件插件
hexo-tag-dplayer[15] —— 视频文件插件
hexo-filter-github-emojis[16] —— 表情包[17]插件
hexo-neat[18] —— 懒人压缩插件,虽然说可以在hexo g的时候就压缩,但是亲测效果一般,还不带图片压缩,故这里不做介绍,参考链接即可
hexo-filter-flowchart
hexo-translate-title-vsshexo插件官网那个没更新了,导致每次已经翻译了的文章都得重新翻译,hexo s的时候贼烦人,所以用这个了,一样的,就是更新了些东西。
hexo-helper-live2d 博客右下角的模型插件
其他有用的插件请自行参考下载:
Hexo插件官网[19]
hexo-reference问题修复:
等不到作者反馈,那只能自己动手了,毕竟自力更生,丰衣足食!!
①进入/hexo/node_modules/hexo-reference/src/footnotes.js
按下图注释掉代码即可
1 | // render footnotes (HTML) |
②进入/hexo/node_modules/hexo-reference/test/footnotes.spec.js
按下图注释所有同类代码(此步骤不重要,第一步完成就成功了,此文件的目录顾名思义,测试用的,无关大雅)
1 | it('render (basic)', function() { |
图床
由于GitHub服务器在国外,所以访问速度不快,特别是博客后期图片、音频、视频等文件多了以后,加载速度不尽人意,为此个人选择采用七牛云作为图床,将博客所需的相关文件上传至七牛云上,获得外链链接即可。
比如,主题配置文件中的头像设置的两种方法:
①本地hexo/source内新建一个与_post目录平级的目录放置头像图片,在主题配置文件中修改 avatar: /example_floder/example.jpg
或者进入GitHub代码仓库找到对应文件夹/example_floder/example.jpg,点击进入,找到右上角download并点击,进入图片下载网页,获取其地址修改avatar。
②将图片上传至七牛云,获取外链,修改avatar,请自行比较加载速度即可发现其优势。
SSL证书详见七牛云开发者中心,唉,访问必须https啊,否则我的chrome报加载不安全脚本错误,每次都得手动点开,麻烦,不过还好七牛云有个免费的SSL证书申请,与Coding的也差不了多少。
Gulp压缩
当年学HTML的时候就了解到虽然当时用Dreamweaver编写的代码分行都很清楚,但是不利于网页加载,所以采用Gulp对html、css、js、images等静态文件进行有效压缩,可以减少请求的数据量从而达到优化博客访问速度的目的。
1.安装Gulp
1 | npm install gulp-cli -g |
2.安装压缩所需插件
1 | npm install gulp-htmlclean --save-dev |
安装成功后,可以进入hexo/package.json文件内查看,该文件含有各个插件的版本信息
这里不妨给出个人的package.json
1 | { |
3.编辑gulpfile.js
内容如下:
1 | var gulp = require('gulp'); |
上述注释的检测代码根据需要设置,同时由于个人路径和设置不同,代码可能需要相应更改,同时也为了进一步优化,这里给出参考索引:
知乎——Hexo博客之速度优化[20]
Gulp官网[21]
Gulp插件[22]
Gulp官网API[23]
Gulp中文API[24]
Gulp入门指南[25]
4.执行压缩
与普通生成和部署类似
hexo g //生成静态文件
gulp //执行压缩
hexo d //部署上传
三步即可
这里给出gulp事例执行结果:
1 | $ gulp |
Coding部署
由于Github的服务器在国外,访问速度一直不稳定,所以可以采用Coding进行代码托管、项目管理和Pages服务等,相当于国内的Github,部署完成后设置站点配置文件_config.yml实现Github和Coding上的同时更新,然后通过域名分流解析,来达到网站加速的目的。
1.Coding新建项目
Coding官网[26]
2.创建项目
项目名称最好和Github的相同
3.部署公匙
进入个人设置中的SSH公匙设置,将之前已经部署的/c/Users/you_PC/.ssh/id_rsa.pub中,赋值即可,名字自定。
4.测试公匙
1 | ssh -T git@git.coding.net |
yes回车即可
5.修改站点配置文件
1 | deploy: |
6.开启Pages服务
项目->代码->Pages服务
分支选择master分支即可
部署来源,设置自己购买的域名,和Github一样
7.域名分流解析
修改之前的Github的域名解析,线路类型修改位国外,添加新的记录,线路类型为默认/国内,记录值为pages.coding.me
主机记录 | 记录类型 | 线路类型 | 记 录 值 | 权重 | MX优先级 | TTL | 操 作 |
---|---|---|---|---|---|---|---|
@ | A | 国外 | 192.30.252.153 | - | - | 10 | 删除 暂停 |
@ | A | 国外 | 192.30.252.154 | - | - | 10 | 删除 暂停 |
@ | CNAME | 默认 | pages.coding.me | - | - | 10 | 删除 暂停 |
稍等片刻即可!但是如果想获得Coding的SSL/TLS证书,则必须只是用两个CNAME指向pages.coding.me的记录。
网站访问量显示
不蒜子[27]第三方插件,themes/your_theme/layout/_partial/footer.ejs添加上述脚本即可
1 | <script async src="//dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"> |
多终端编辑
创建hexo分支
默认已经有master分支了,创建hexo分支就可以。
- 该hexo分支存放博客源文件分支,而master为分支hexo编译的结果
配置.gitignore文件
为了筛选出配置文件、主题目录、博文等重要信息,作为需要GItHub管理的文件
public内文件是根据source文件夹内容自动生成,不需要备份,不然每次改动内容太多
1 | .DS_Store |
初始化仓库并提交
1 | git init //初始化本地仓库 |
另一终端
- 首先需要搭建环境(Node,Git)
- 直接clone下来,修改发布后提交本地修改到远程master分支就ok.
将hexo分支clone到本地,再进入根目录安装npmnpm install的时候会根据package.json中的插件列表自动加载相应插件。1
2
3git clone -b brach_i <server> hexo //<server> 是指在线仓库的地址
cd hexo
npm install
注意:json更新后,有可能npm install不能够正常完整根据package.json内容更新,可能需要手动一个个更新package,具体待跟进,自己找官网解释吧,暂时没看明白!😩忠告
1.特殊字符
我是在心里一万个草拟马的心态下新增这一节的!
这么说吧,markdown有两个特殊字符<和&需要特殊处理!
为了保险起见,建议非代码区全部采用Markdown写法:
1 | < —— < |
个人吃<的亏吃得太多了,一开始只是页面显示的问题,一般单字符<出现会出现这样的问题,双个字符诸如<=就不会。
后来加入gulp压缩HTML的时候,发现出现解析错误parse error!!!通过console发现就是特殊字符捣得鬼,导致部分HTML页面压缩失败!
2.服务器等非个人因素故障
服务器有时候会不稳定,我就遇到过Coding上传失败(反馈得到是Coding线路出现了问题),莫名其妙,github成功的,这种情况不太可能是自己的问题,像之前github我在提交的时候中断的话,容易导致之后hexo d提交很慢,类似的,Coding也有可能有诸如此类的问题,一般hexo s本地测试完后,hexo g或者gulp会报错,之后hexo d一般不会有问题,耐心点就好!!!!
3.Git配置相关问题
Git配置个人信息后,也就是让其识别你的身份后,我的文档里会多出三个文件,分别是.config、.v8flags.5.1.281.101.6faf649d53532d867662f5e14332100c.json和.bash_history,切勿手残删了啊!否则又得重新配置了
1 | .-' _..`. |
4.node版本/npm内存问题
1 | node 版本需要12.10.0,不要14以上! |
后序
关于hexo博客搭建的些许经验到此告一段落,如果之后的使用过程中还有新内容也会及时添加,看看之后关于网页加载速度的情况再考虑是不是要进一步优化,毕竟Gulp看的半桶水哈,不过大概就那样吧,开始的时候也是参考了很多文章,主要还是Gulp官网的API有很大帮助。(本博客采用的主题不支持IE 6 7 8,最好用火狐或者chrome,加载的插件记得允许运行哦,不然不好看,SSL的关系,有些如果不是https协议会被浏览器判断为链接不安全,就是因为http协议传输可能泄密,https是在http基础上采用SSL加密的协议!这个以后再说吧,个人破博客,也没必要那么深究?毕竟还不是学信息安全的!)
后续工作:
其他无限期待定 —— 看心情
- 1.Set Up Git ↩
- 2.Set Up Node.js ↩
- 3.Create A Repo ↩
- 4.Hexo官网 ↩
- 5.Hexo官网主题 ↩
- 6.知乎主题 ↩
- 7.Install Atom ↩
- 8.GitHub官网 ↩
- 9.DNSPod官方问题向导 ↩
- 10.Using a custom domain ↩
- 11.hexo-encrypt ↩
- 12.hexo-pdf ↩
- 13.hexo-reference ↩
- 14.hexo-tag-aplayer ↩
- 15.hexo-tag-dplayer ↩
- 16.hexo-filter-github-emojis ↩
- 17.表情 ↩
- 18.hexo-neat ↩
- 19.Hexo插件官网 ↩
- 20.知乎——Hexo博客之速度优化 ↩
- 21.Gulp官网 ↩
- 22.Gulp插件 ↩
- 23.Gulp官网API ↩
- 24.Gulp中文API ↩
- 25.Gulp入门指南 ↩
- 26.Coding官网 ↩
- 27.不蒜子 ↩