本文主要记录 hexo 更改主题以及上线到云服务器的过程,还原操作流程以便后续查阅。
开始之前请确认已部署 Nginx 服务。

# 本地软件安装

# 安装 nodejs 和 git

本地安装 node.jsgit
检查 node.js 版本

windows 命令行
node -v
npm -v

# 安装 hexo

由于使用 npm 直接下载会有很多人遇到卡顿的问题 (国外服务器),所以我们要做的第一步工作是将 npm 换成淘宝的服务器。
cmd 输入以下命令

windows 命令行
npm config set registry https://registry.npm.taobao.org

然后下载 hexo

windows 命令行
npm install -g hexo-cli

# 初始化

将 nodejs 文件夹和 blog 文件夹目录设置为用户完全控制~~忘记设置哪一个了,直接两个都改掉~~

选一个目录用来初始化博客程序:(以 d 盘为例)

windows 命令行
D:
cd blog
hexo init

执行成功后安装两个插件

windows 命令行
npm install hexo-deployer-git --save
npm install hexo-server

# 运行调试

# 写入公钥

本机与云服务器之间通过 ssh 连接
使用以下命令在 windows 用户下 /.ssh 文件夹中生成密钥

windows 命令行
ssh-keygen -t rsa

将生成的公钥 id_rsa.pub 拷贝到 ubuntu 服务器的 /home/git/.ssh/authorized_keys 上
你可以直接用 vim 将 id_rsa.pub 粘贴到 authorized_keys 中
也可以使用 scp 将文件传至服务器上再进行重定向

scp 上传至服务器
scp C:\ 用户 \ 你的用户名 \.ssh\id_rsa.pub git@hostip:/home/git/.ssh
服务器端将 id_rsa.pub 定向到 authorized_keys 末尾
cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys

# 本地调试

本地开启 hexo 预览

windows 命令行
hexo new "Hello My First Blog" // 生成一篇文章名为 “My First Blog”
hexo cl // 清楚缓存文件 db.json 和已经生成的静态文件 public
hexo g  // 生成网站的静态文件到默认的设置文件 public 中
hexo s  // 启动服务器,用于预览主题

本地访问 127.0.0.1:4000 预览 hexo

# 主题安装

# 降低 hexo 版本

将 hexo 版本改为 5.0.0

windows 命令行
npm i hexo@5.0.0
# 查看当前 hexo 版本
hexo version

# 安装主题

在 D:\blog 下打开 cmd

windows 命令行
git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka

# 安装插件

安装前,需要卸载掉默认的 hexo-renderer-marked,以及别的 markdown 文件渲染器。

windows 命令行
npm un hexo-renderer-marked --save
npm uninstall hexo-prism-plugin --save

安装主题所需插件

windows 命令行
npm i hexo-renderer-multi-markdown-it --save
npm i hexo-autoprefixer --save
npm i hexo-algoliasearch --save
npm i hexo-symbols-count-time --save
npm i hexo-feed --save

# 查看和更新插件

首先查看项目目录下的 npm 已安装的包信息,进入到项目目录下后:

windows 命令行
npm ls

如需要更新包并将更新保存到配置文件,即项目根目录下的 package.json 中,例如更新 hexo-renderer-multi-markdown-it 到最新版本:

windows 命令行
npm install  --save hexo-renderer-multi-markdown-it@latest

# 配置文件

参考主题提供的 \blog\themes\shoka\example 目录内容,将后面的配置复制上去
将原本配置文件的 syntax_highlighter: highlight.js 删除停用代码高亮功能

highlight:
  enable: false # edit for Theme.shoka
  line_number: true
  auto_detect: true
  tab_replace: ''
prismjs:
  enable: false # edit for Theme.shoka

# 部署到服务器

# 配置_config.yml

在_config.yml 的 deploy 做如下配置

# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
  type: git
  repo: git@hostip:/home/git/blog.git       
  branch: master

首次部署需要设置 git 邮箱以及账号

# 发布到服务器

windows 命令行
hexo generate --deploy

发布后需要重启服务器的 nginx 服务

$ systemctl restart nginx

# hexo 基础命令

在 blog 目录下打开 cmd 以执行 hexo 相关命令

新建文章
该命令会在 Hexo 博客的 source/_posts 目录下创建一个名为 title.md 的 Markdown 文件。

windows 命令行
hexo new "title"

生成静态文件
简写为 hexo g ,该命令会根据配置和文章的 Markdown 源文件,生成相应的 HTML 页面。所有渲染好的 HTML 页面和静态资源(如 CSS、JavaScript 文件等)j 将被打包成一个静态文件夹用于上线。

windows 命令行
hexo generate
hexo g

启用本地服务器
该命令将启用本地服务器供调试,默认为 127.0.0.1:4000
命令部分参数
-p 指定服务器端口,默认为 4000
-i 指定服务器 IP 地址,默认为 0.0.0.0
-s 静态模式 ,仅提供 public 文件夹中的文件并禁用文件监视

windows 命令行
hexo server
hexo s

部署网站
该命令用于将静态网页部署到服务器, hexo generate --deploy 为生成静态页面同时直接部署到服务器,在使用此命令前需要确保在 _config.yml 中完成相关配置

windows 命令行
hexo deploy
hexo d
hexo generate --deploy

清理缓存文件

windows 命令行
hexo clean
hexo cl

初始化
初始化一个本地文件夹作为网站的根目录,初始化之前文件夹需为空,cd 到该目录后执行

windows 命令行
hexo init my_blog

安全模式
该命令启用安全模式,用于禁用加载插件和脚本

windows 命令行
hexo --safe

调试模式
启用调试模式,将消息详细记录到终端和 debug.log 文件

windows 命令行
hexo --debug

静默模式
静默输出到终端

windows 命令行
hexo --silent

# 常见问题

# 无法找到某个包

查看是否安装主题所需插件

# 文章代码块显示不完整

版本问题,降低 hexo 版本

# 一些报错

windows 命令行
ERROR {
  err: [Error: EISDIR: illegal operation on a directory, read] {
    errno: -4068,
    code: 'EISDIR',
    syscall: 'read'
  }
} Plugin load failed: % s hexo-theme-landscape

删除 node_modules 下的 hexo-theme-landscape 包

windows 命令行
npm uninstall  --save hexo-theme-landscape