博客搭建

一、参考

搭建博客

  1. 使用 Github 空间搭建 Hexo 技术博客–安装篇(基于 IntelliJ IDEA)
  2. GitHub Pages

hexo 使用

  1. hexo-指令
  2. NexT 常见问题
  3. hexo 搭建个人博客–基础篇
  4. hexo 搭建个人博客–NexT 主题优化
  5. hexo 搭建个人博客–SEO 和站点加速

在 GitHub 上写博客

  1. Writing on GitHub
  2. hexo 摸爬滚打之进阶教程
  3. hexo 分类与 tags 配置
  4. Emoji 表情
  5. 使用七牛云作为图床获取外链方式总结

添加持久链接功能

  1. hexo 链接持久化终极解决之道

添加评论功能

  1. Hexo NexT 主题中集成 gitalk 评论系统

添加网站统计功能

  1. 不蒜子
  2. Hexo+Next 主题 文章添加阅读次数,访问量等(需要额外添加不蒜子脚本
  3. Hexo 添加字数统计、阅读时长、友情链接

添加看板动画

  1. hexo 添加 live2d 看板动画

添加复选框样式

  1. 用 VPS+hexo 搭了个博客,如何让 hexo 支持复选框
  2. hexojs/hexo-renderer-marked

数学公式

  1. 在 Hexo 中渲染 MathJax 数学公式
  2. MathJax
  3. LaTEX:在线数学公式编辑器
  4. TEX Commands available in MathJax

markdown 格式化

  1. hustcc/lint-md

二、博客搭建

流程

  1. 创建 GitHub Pages 仓库
  2. 安装 hexo 博客框架
  3. 初始化 hexo 项目
  4. 提交 hexo
  5. 配置 hexo

创建 GitHub Pages 仓库

在 GitHub 上创建username.github.io 的一个项目,username 为 github 上的用户名,该仓库将成为 hexo 打包后的发布地址。

安装 hexo

1
2
3
4
5
6
7
8
9
10
11
12
# 更新node版本,需要在root下运行
npm install -g n
n stable
# 使用cnpm安装hexo
alias cnpm="npm --registry=https://registry.npm.taobao.org \
--cache=$HOME/.npm/.cache/cnpm \
--disturl=https://npm.taobao.org/dist \
--userconfig=$HOME/.cnpmrc"
cnpm install -g hexo-cli
# 遇到“Node Sass does not yet support your current environment:”的问题,需要重装node-sass模块
npm uninstall --save node-sass
npm install --save node-sass

初始化 hexo 项目

1
hexo init

创建测试页面。

1
hexo new test

本地测试。

1
2
3
hexo clean
hexo generate
hexo server

打包提交

1
2
3
hexo clean
hexo generate
hexo deploy

hexo升级

https://theme-next.js.org/docs/getting-started/upgrade.html

配置 hexo

主要是对项目下名为_config.yml的配置文件的修改。

博客中的图片显示

刚开始希望把图片直接放到 hexo 项目里,但hexo g时总是出现莫名其妙的错误,图片也没有被拷贝到 public 目录下面,部署后当然看不到。
后来希望使用图床来解决问题,需要有一个图床的客户端,比如极简图床,还需要一个存储后端,常用的如微博图床或七牛,申请七牛还需要验证身份这个过程有些麻烦,微博图床据说也不稳定,有一种图床是专业的图床既提供了前端又自带了后台存储,如sm.ms,但是怎么可能永远免费,想来想去还不如自己搭建一个简单的图片服务器。

  1. 先租一台服务器
  2. 将图片拷贝到服务器上
    1
    scp -r local_path user@address:/server_path
  3. 部署 web 服务器
    如果像我一样懒,可以直接跑一个容器当 web 服务器,nginx 作为静态 web 服务器有很高的性能,以后也可以根据需要做一些其他配置,在服务器上执行下面命令运行一个 nginx 服务器:
    1
    docker run -p 80:80 -v /path/to/resources:/usr/share/nginx/html -v /path/to/logs:/var/log/nginx nginx
  4. 备份
    以防万一,最后在 github 留了一份备份,这样一份图片就有三份备份了。
  5. 注意
    如果图片访问403了,很有可能是权限不够,因为默认ng配置里是通过nginx用户来读取本地路径下的图片的,

    默认ng配置可以通过docker exec <container ID> -it /bin/sh连到容器里查看/etc/nginx/nginx.conf,第一行可以看到配置user nginx;

上边的工作不需要太多时间,以后需要同步的话也比较方便。

HTTPS

https://tallate.github.io/73d751b6.html

三、博客内容构建

  1. categories 和 tags
    hexo 里一篇博客有 categories 和 tags 这两个属性用于对博客进行归档,有时候这两个东西的作用容易搞混,按我的理解, categories 更像是书前面目录的章节, tags 像是书后面对关键词的索引,比如目录中有一章专门讲 Java 技术栈的内容, category 就是 《 Java 》,同理可能还有《 Linux 》,这两章都讲了叫作 Semphore 的东西,所以他们都包含一个叫 Semphore 的 tag ,当然如何划分总归还是要靠个人意愿。
  2. 文章频率
    博客并不是新闻那样的实时内容平台,而是重在积累,两篇相邻的文章之间横跨好几个星期甚至几个月也很正常,如果非常频繁的发博客反而应该怀疑内容的可靠性。