人生天地间,忽如远行客 
1. 工具
- github账号
 
- node.js
 
让js能作为服务端脚本语言
1  | # 检测 node版本尽量高点,不高先升级nodejs版本,我的是v16.15.0,windows建议直接下载安装包覆盖安装地址  | 
- npm
 
非官方的NodeJS包管理和分发工具
1  | # 查看版本  | 
- git
 
分布式版本控制
1  | # 检测  | 
- hexo
 
一个快速、简洁且高效的博客框架,默认端口4000
1  | # 安装  | 
2. 搭建个人仓库
- 名字要和登录名相同【特别注意】
 
1  | 用户名.github.io  | 
- 是公开的
 
1  | public  | 
- 将博客目录下的_config.yml,加入deploy设置为个人仓库名
 
1  | deploy:  | 
- 安装hexo-deployer-git自动化部署发布工具
 
1  | npm install hexo-deployer-git --save  | 
- 令牌
 
1  | 开发者设置 Developer settings  | 
- 发布博客
 
1  | # 清除已生成文件及缓存  | 
gitee
gitee pages需要实名
公开且仓库名要是用户名,不需要是 用户名.gitee.io
确定公钥,私人令牌
部署到gitee,需要你每次推送后,去更新一下,如果想要自动更新,就需要开通 Gitee 的会员。
1  | deploy:  | 
3. 美化博客
美化博客根据自己风格来定,我比较喜欢next风格
- 下载next,我用的是稳定版5.1.4
 
- 将next复制到博客根目录的themes文件下
 - 修改博客主配置文件_config.yml文件
 
1  | # theme: landscape  | 
- 报错
 
1  | {% extends '_layout.swig' %} {% import '_macro/post.swig' as post_template %} {% import '_macro/sidebar.swig' as sidebar_template %} {% block title %}{{ config.title }}{% if theme.index_with_subtitle and config.subtitle %} - {{config.subtitle }}{% endif %}{% endblock %} {% block page_class %} {% if is_home() %}page-home{% endif -%} {% endblock %} {% block content %}  | 
- 解决方案 没有hexo-renderer-swig模块
 
1  | npm i hexo-renderer-swig  | 
这里可能需要等待,会出现为一片空白的情况,因为github速度限制
- 主配置的_config.yml
 
1  | # Hexo Configuration  | 
- 主题配置文件next 中的_config.yml
 
1  | # When running the site in a subdirectory (e.g. domain.tld/blog), remove the leading slash from link value (/archives -> archives).  | 
- 版权信息声明
 
1  | # Creative Commons 4.0 International License.  | 
- 展示侧边栏
 
侧边栏还受动画影响motion. enable为false时,侧边栏不显示,影响版本5.0.0及其以下
1  | sidebar:  | 
- 侧边栏头像
 
1  | avatar:  | 
- 侧边栏外链
 
1  | social:  | 
- 友情链接
 
1  | #links:  | 
- 打赏功能
 
1  | #reward_settings:  | 
- 返回顶部
 
1  | # Back to top in sidebar (only for Pisces | Gemini).  | 
- 关闭动画
 
1  | enable: true  | 
- 网站图标设置
 
1  | favicon:  | 
- 底部页脚
 
1  | footer:  | 
- 文章设置
 
1  | # Automatically excerpt description in homepage as preamble text.  | 
- 好看的画布
 
1  | canvas_nest: true  | 
- 标签
 
1  | tags:  | 
- 预览效果摘要
 
1  | <escape><!-- more --></escape>  | 
- 增加模块zh-Hans.yml
 
1  | menu:  | 
- 主站配置文件
 
1  | # 标签文件夹  | 
- 主题配置文件
 
1  | menu:  | 
- 增加文件夹
 
1  | hexo n page shuyu  | 
- 文章加密
 
1  | {# 文章加密 #}  | 
- markdown文件
 
1  | ---  | 
- 图片下面的日志链接bug,在
\themes\next\layout\_macro\sidebar.swig中 
1  | {# <a href="{{ url_for(theme.menu.archives).split('||')[0] | trim }}"> #}  | 
- 底部分页左右标签bug,在
\themes\next\layout\_partials\pagination.swig中 
1  | {% if page.prev or page.next %}  | 
- 点击目录不跳转bug,在next里的js文件post-details.js
 
1  | $('.post-toc a').on('click', function (e) {  | 
- 目录只显示一级和二级bug,文章目录样式文件custom.styl文件位于
themes/next/source/css/_custom 
1  | //文章目录默认展开  | 
- 主题配置文件位于
themes/next/_config.yml 
1  | toc:  | 
4. 小工具
- 本地搜索
 - 主题配置文件
 
1  | # Local search  | 
- 在根目录下使用以下命令安装
 
1  | $ npm install hexo-generator-searchdb --save  | 
- 站点配置文件
 
1  | # 本地搜索  | 
网站底部字数统计
安装插件
1  | npm install hexo-wordcount --save  | 
- 然后在 /themes/next/layout/_partials/footer.njk 的合适的地方写入
 
1  | <div class="theme-info">  | 
实现字数统计和阅读需要时长显示
安装插件
1  | npm install hexo-symbols-count-time --save  | 
- 在主配置文件的 _config.yml 下写入
 
1  | symbols_count_time:  | 
5. 增加复制功能
NexT版本为v5.1.4,NexT主题的v6.3已有此功能
5.1 添加copy-code.swig
在themes/next/layout/_third-party/此目录下创建copy-code.swig
- copy-code.swig
 
1  | {% if theme.codeblock.copy_button.enable %}  | 
5.2 编辑_layout.swig
在themes/next/layout/文件下编辑_layout.swig
1  | # 要加入的代码  | 
5.3 添加按钮上显示的语言
在themes/next/languages/目录下编辑zh-Hans.yml
1  | post:  | 
同理en.yml
1  | post:  | 
5.4 编辑主题配置
在themes/next/_config.yml下添加
1  | # Add copy button on codeblock  | 
5.5 生成测试
1  | hexo g  | 
6. 展开关闭代码
6.1 添加code-unfold.swig
在themes/next/layout/_third-party/此目录下创建copy-code.swig
- code-unfold.swig
 
1  | {% if theme.codeblock.js_retract_code_btn.enable %}  | 
6.2 添加jquery
- 方案一:在
themes/next/_config.yml下编辑,因为fancybox会依赖jquery,所以设置成true 
1  | fancybox: true  | 
- 方案二:在
next主题全局引用jquery 
6.3 编辑_layout.swig
在themes/next/layout/文件下编辑_layout.swig
1  | {% include '_third-party/code-unfold.swig' %}  | 
6.4 编辑主题配置
在themes/next/_config.yml下添加
1  | # Add copy button on codeblock  | 
6.4 调用js方法
在D:\blog\themes\next\source\js\src目录下的bootstrap.js文件添加代码
1  | $(document).ready(function () {  | 
6.5 生成测试
1  | hexo g  | 
7. 总结
在本次搭建博客中,对github pages能作为微服务器有了了解,也对自己的博客有了大致框架,遵循简洁实用的原则。