hexo + github pages 打造你自己的博客
前言
一周前手贱,spark.write.mode("overwrite").save("xxx")
覆盖了家目录,导致大部分代码和博客源文件被删除,mac 的个性化配置基本上也都没了,欲哭无泪,生活还要继续。一切从头再来吧,本文记录重新搭建博客的过程,踩坑甚多(主要是 next 7.x 相比以前的版本更改了很多配置项)。本文主要参考了 小丁的博客。
tips: 强烈建议大家一定要备份,备份,备份!
hexo
hexo 安装
创建 github pages 和创建普通的 github 仓库没太大区别(记住仓库名称是 username.github.io 就行了),这里就不在赘述了。以下的安装基于 mac,其实都差不多,现在的操作系统都提供了良好的包管理工具用于简化软件的安装。
- 安装 node 和 npm如果你想安装其他版本的 node,可以使用
1
brew install node
brew search node
,找到对应的版本包然后安装。 - 安装 hexo
1
npm install -g hexo-cli
- hexo init
hexo 初始化并自动创建博客目录,根据提示,初始化完成后,进入到博客目录,执行npm install
1
hexo init Flyraty.github.io
- 常用命令
1
2
3
4
5hexo d -g 生成并部署
hexo s 本地部署
hexo g 生成站点
hexo clean
hexo new 新建文章
基础配置
一下是一些基础配置,主题选择,页面布局等,我们只需要记住两个配置文件就行了。
- 站点配置文件
_config.yml
- 主题配置文件
themes/主题名/_config.yml
,我这里就是themes/next/_config.yml
next 安装
下载解压放入 themes 目录或者 git clone。
1 | git clone https://github.com/iissnan/hexo-theme-next themes/next |
推荐 git 的方式,可以持续跟进更新 next。也可以用 git submoudle 维护。
1 | git stash |
启用 next
编辑站点配置文件,修改 theme 选项。
1 | theme: next |
更换 Schema
next 主题同样有好几种模板,这里选用的是 Gemini,因为文章间的界限比较清晰。
1 | # Schemes |
新建标签,分类,关于页面
会在 source 目录下生成对应的文件夹。这几个页面也是 markdown 文件,你可以自由编辑,比如关于页面。
1 | hexo new page tag |
设置站点语言
修改站点配置文件,如果你发现配置不管用的话,可以查看下 themes/next/languages
目录,看下是否存在 zh-Hans.yml 或者 zh-CN.yml。如果只存在 zh-CN.yml,重命名成 zh-Hans.yml 即可。
1 | language: zh-Hans |
设置侧边栏菜单
修改主题配置文件,想显示哪个菜单,把对应的注释去掉就行。
1 | menu: |
侧栏位置
修改主题配置文件
1 | sidebar: |
头像
修改主题配置文件,可以选择是否圆框,是否鼠标点击头像旋转。
1 | # Sidebar Avatar |
站点描述
修改站点配置文件,主要是站点名称,描述,关键字,作者这些
1 | # Site |
开启阅读数,字数统计
修改主题配置文件
1 | # Post wordcount display settings |
不蒜子统计
添加站点统计,比如 uv,pv 这些,可以选择百度统计,谷歌统计,不蒜字等。可以参考官方文档。这里选用了不蒜子
修改主题配置文件
1 | busuanzi_count: |
添加搜索栏
安装搜索插件
1 | npm install hexo-generator-searchdb --save |
修改站点配置文件,添加 search 配置
1 | # search |
RSS 订阅
安装插件
1 | npm install hexo-generator-feed --save |
修改站点配置文件,添加以下内容
1 | # RSS |
修改主题配置文件
1 | follow_me: |
相关文章
安装插件
1 | npm install hexo-related-popular-posts --save |
修改主题配置文件
1 | related_posts: |
社交地址
修改主题配置文件,用自带的图标其实就可以了
1 | social: |
自动生成摘要
自动生成摘要在 next7 中被去除掉了。不想显示全文的话,有两种方式控制,建议第一种方式
<!--more-->
,会显示之前的内容,之后的内容不会显示- 文章 meta 中添加 description字段
不要在设置啥 auto_encrypt 了。。。
添加 Disqus 评论系统
访问 disqus.com
,选择 i want to install disqus on my site
。然后跟着提示一步步走,只需要记住自己的 shortname 即可。
修改主题配置文件
1 | Disqus |
部署到 git
安装插件
1 | npm install hexo-deployer-git --save |
修改站点配置文件,部署站点,如果你以前没有使用过 git 的话,最好配置下 SSH
1 | deploy: |
直接 hexo d -g
并不会把你的博客源文件,比如文章 markdown push 到仓库,只是生成 public 下的静态 html push 到了站点进行渲染。此处建议新开一分支 hexo ,push 站点源文件到 hexo 分之上用于备份,可以把 hexo 分支设置为默认分支。
美化
代码框风格,并添加复制按钮
修改主题配置文件,设置 theme 和 style
1 | codeblock: |
动态背景图片
新建 source/_date/styles.styl,添加如下代码,如果想要设置动态背景效果,只需要将 background:url
替换成一个动态背景接口就行了。
设置了背景图片,可能会导致文字看不到,所以需要设置透明度。
tips: 推荐图片网址 https://wallhaven.cc/
styles.styl
>1 | // 设置背景图片 |
修改主题配置文件,打开自定义 styles.styl 设置
1 | custom_file_path: |
页面动画效果
hexo 内置了一些页面动态效果。如果想打开的话,只需要在主题配置文件里搜索打开即可。
- canvas_nest
- canvas_ribbon
- three_waves
比如 canvas_nest
1 | # Canvas-nest |
页面顶部加载阅读进度条
修改主题配置文件
1 | # Reading progress bar |
文章阅读进度条
安装插件
1 | npm install hexo-cake-moon-menu --save |
修改主题配置文件,添加如下内容
1 | moon_menu: |
next 自带了文章阅读进度条(pace 配置),但是不如这个插件好看。
鼠标点击烟花效果
参考 小丁的博客
修改页面布局为圆角
新建 source/_data/variables.styl
1 | // 圆角设置 |
修改主题配置文件,打开自定义 variables.styl 的设置
1 | custom_file_path: |
添加粒子时钟
参考 小丁的博客
去掉底部·强力驱动·
修改主题配置文件
1 | footer: |
关于页面显示 github commit chart
参考 小丁的博客
优化加速
启用 FastClick
修改主题配置文件
1 | fastclick: true |
启用 QuickLink
修改主题配置文件,quickclick 用于资源文件的预加载
1 | quicklink: |
SEO
主要就是生成站点地图并提交百度和谷歌收录,生成永久链接,参考 https://flyraty.github.io/posts/cfd1b897/