本文主要记录 hexo 更改主题以及上线到云服务器的过程,还原操作流程以便后续查阅。
开始之前请确认已部署 Nginx 服务。
# 本地软件安装
# 安装 nodejs 和 git
本地安装 node.js 和 git
检查 node.js 版本
node -v | |
npm -v |
# 安装 hexo
由于使用 npm 直接下载会有很多人遇到卡顿的问题 (国外服务器),所以我们要做的第一步工作是将 npm 换成淘宝的服务器。
cmd 输入以下命令
npm config set registry https://registry.npm.taobao.org |
然后下载 hexo
npm install -g hexo-cli |
# 初始化
将 nodejs 文件夹和 blog 文件夹目录设置为用户完全控制~~忘记设置哪一个了,直接两个都改掉~~
选一个目录用来初始化博客程序:(以 d 盘为例)
D: | |
cd blog | |
hexo init |
执行成功后安装两个插件
npm install hexo-deployer-git --save | |
npm install hexo-server |
# 运行调试
# 写入公钥
本机与云服务器之间通过 ssh 连接
使用以下命令在 windows 用户下 /.ssh 文件夹中生成密钥
ssh-keygen -t rsa |
将生成的公钥 id_rsa.pub 拷贝到 ubuntu 服务器的 /home/git/.ssh/authorized_keys 上
你可以直接用 vim 将 id_rsa.pub 粘贴到 authorized_keys 中
也可以使用 scp 将文件传至服务器上再进行重定向
scp C:\ 用户 \ 你的用户名 \.ssh\id_rsa.pub git@hostip:/home/git/.ssh |
cat /home/git/.ssh/id_rsa.pub >> /home/git/.ssh/authorized_keys |
# 本地调试
本地开启 hexo 预览
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
npm i hexo@5.0.0 | |
# 查看当前 hexo 版本 | |
hexo version |
# 安装主题
在 D:\blog 下打开 cmd
git clone https://github.com/amehime/hexo-theme-shoka.git ./themes/shoka |
# 安装插件
安装前,需要卸载掉默认的 hexo-renderer-marked,以及别的 markdown 文件渲染器。
npm un hexo-renderer-marked --save | |
npm uninstall hexo-prism-plugin --save |
安装主题所需插件
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 已安装的包信息,进入到项目目录下后:
npm ls |
如需要更新包并将更新保存到配置文件,即项目根目录下的 package.json 中,例如更新 hexo-renderer-multi-markdown-it 到最新版本:
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 邮箱以及账号
# 发布到服务器
hexo generate --deploy |
发布后需要重启服务器的 nginx 服务
$ systemctl restart nginx |
# hexo 基础命令
在 blog 目录下打开 cmd 以执行 hexo 相关命令
新建文章
该命令会在 Hexo 博客的 source/_posts
目录下创建一个名为 title.md
的 Markdown 文件。
hexo new "title" |
生成静态文件
简写为 hexo g
,该命令会根据配置和文章的 Markdown 源文件,生成相应的 HTML 页面。所有渲染好的 HTML 页面和静态资源(如 CSS、JavaScript 文件等)j 将被打包成一个静态文件夹用于上线。
hexo generate | |
hexo g |
启用本地服务器
该命令将启用本地服务器供调试,默认为 127.0.0.1:4000
命令部分参数-p
指定服务器端口,默认为 4000-i
指定服务器 IP 地址,默认为 0.0.0.0-s
静态模式 ,仅提供 public 文件夹中的文件并禁用文件监视
hexo server | |
hexo s |
部署网站
该命令用于将静态网页部署到服务器, hexo generate --deploy
为生成静态页面同时直接部署到服务器,在使用此命令前需要确保在 _config.yml
中完成相关配置
hexo deploy | |
hexo d | |
hexo generate --deploy |
清理缓存文件
hexo clean | |
hexo cl |
初始化
初始化一个本地文件夹作为网站的根目录,初始化之前文件夹需为空,cd 到该目录后执行
hexo init my_blog |
安全模式
该命令启用安全模式,用于禁用加载插件和脚本
hexo --safe |
调试模式
启用调试模式,将消息详细记录到终端和 debug.log
文件
hexo --debug |
静默模式
静默输出到终端
hexo --silent |
# 常见问题
# 无法找到某个包
查看是否安装主题所需插件
# 文章代码块显示不完整
版本问题,降低 hexo 版本
# 一些报错
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 包
npm uninstall --save hexo-theme-landscape |