简介

这是一个基于Hexo框架的静态博客。此博客用来更新我的日常技术总结文档,用来记录以便后续查找。博客内容使用Markdown编辑器,我的第一篇博客就来尝试使用Markdown来学习一下。
操作系统:Windows10
软件版本:node.js 12.13.1,npm 6.12.1,hexo 3.9.0

环境搭建

1、首先下载Node.js
下载地址:https://nodejs.org(根据系统环境选择版本,下载LTS长期支持版本)。
2、安装下载的安装包,我使用的Windows10系统,选择安装到D盘,其他默认下一步。
3、安装完成后,有两个组件,一个是nodejs,一个是npm。

Mac系统:
打开终端,切换到root用户
查看nodejs,npm的版本

1
2
node –v
npm –v

Linux系统:
打开终端,切换到root用户
查看nodejs,npm的版本

1
2
node –v
npm –v

Windows系统:
管理员身份使用cmd
查看nodejs,npm的版本

1
2
node –v
npm –v

安装Hexo博客框架

首先需要使用npm来下载安装,由于国内的镜像源下载比较慢,所以建议先下载一个cnpm的淘宝镜像源。若有科学上网,应该可以直接使用npm安装。

使用npm安装

hexo的全局安装命令:

1
npm install –g hexo-cli

hexo的卸载命令:

1
npm uninstall hexo-cli -g

使用cnpm安装

Mac系统:
下载安装cnpm

1
npm install –g cnpm –-registry=https://registry.npm.taobao.org

等待安装完成后,使用查看cnpm的版本验证安装

1
cnpm –v

使用cnpm安装hexo框架

1
cnpm install –g hexo-cli

等待安装完成后,查看hexo的版本验证安装

1
hexo –v

Linux系统:
下载安装cnpm

1
npm install –g cnpm –-registry=https://registry.npm.taobao.org

等待安装完成后,查看cnpm的版本验证安装

1
cnpm –v

使用cnpm安装hexo框架

1
cnpm install –g hexo-cli

等待安装完成后,查看hexo的版本验证安装

1
hexo –v

Windows系统:
下载安装cnpm

1
npm install –g cnpm –-registry=https://registry.npm.taobao.org

等待安装完成后,查看cnpm的版本验证安装

1
cnpm -v

使用cnpm安装hexo框架

1
cnpm install –g hexo-cli

等待安装完成后,查看hexo的版本验证安装

1
hexo -v

初始化Hexo

在适当的目录下(我选择F盘)建立空文件夹Blog(或者Hexo,名字随意),进入目录并初始化hexo(特别提醒初始化hexo经常会用到git,可以先下载git,既可以在管理员权限的命令行操作,也可在Git Bash下进行下面的操作,关于git工具的使用将在另一篇文章做说明)
Mac系统:
查看当前目录

1
pwd

在适当路径下创建Blog文件夹

1
mkdir Blog

进入Blog目录

1
cd Blog

初始化hexo

1
sudo hexo init

看到下面提示就表示成功了

1
start blogging with Hexo!

查看Blog目录下生成的内容

1
ls –l

启动hexo博客进程

1
hexo s

Linux系统:
查看当前目录

1
pwd

在适当路径下创建Blog文件夹

1
mkdir Blog

进入Blog目录

1
cd Blog

初始化hexo

1
sudo hexo init

等待提示安装成功
查看Blog目录下生成的内容

1
ls –l

启动hexo博客进程

1
hexo s

Windows系统:
查看当前目录,在适当路径下创建Blog文件夹,进入Blog文件夹

1
2
3
chdir
mkdir Blog
cd Blog

第一次部署需要下载git,git可以去官网下载,也可在百度上找靠谱的国内下载方式,因为官网下载很慢甚至下载不下来。下载并安装Git,我选择安装在D盘,其他的默认下一步(其中有一步可以不下载使用git默认的命令窗口,选择使用Windows自带的)。
打开Git Bash,切换到Blog目录下,然后使用初始化命令(过程会比较长,可能是网络原因不清楚)。

1
hexo init

启动Hexo

此时Blog目录下会生成有文件,据网上的资料可知node_modules等文件夹在迁移博客的时候是需要重新下载的,而我遇到的报错也跟这个文件夹有关。遇到报错请自行百度查询解决。
查看Blog目录下生成的内容

1
dir

hexo s(hexo server也可以,Windows10亲测)启动hexo博客进程
最后,可以在本地浏览器中打开http://localhost:4000的地址就可访问了!lol
使用 Ctrl+C 退出


Hexo博客的常用操作

hexo new “文章标题” 创建一篇新的博客(会有一个.md的文件在source/_posts下生成,md文件是markdown标记语言的文件格式)
hexo g生成博客静态文件
hexo s启动浏览一下


部署到GitHub

首先登陆上自己的github账号,选择New repository
Repository name写入个人github名字.github.io(必须按照github的命名要求)
Description写上描述
点击Create repository

下载安装git远端部署插件
在Blog目录下cnpm install –-save hexo-deployer-git
也可使用npm install hexo-deployer-git –save
等待安装完成

修改配置文件_config.yml:

1
2
3
4
5
6
7
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: https://github.com/XXXX/XXXX.github.io.git(仓库地址)
branch: master
(特别提醒:注意冒号后面的空格)

重点:重装系统之后部署到远端之前需要在github上创建ssh key具体参考《Git分布式版本控制系统以及Git-Bash的使用》


PUSH到GitHub

1
hexo d

提示输入账号密码,最后完成。


主题更改

我使用的是鹅厂一位大佬的主题,主题的地址:<github.com/litten/hexo-theme-yilia>
更改其他主题的方式也一样,一般在GitHub上能找到很多各种各样的博客主题。在Hexo博客目录下直接克隆

1
git clone https://github.com/litten/hexo-theme-yilia.git themes/yilia

进入博客目录下配置_config.yml,更改theme的landscape为yilia

1
2
3
4
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: yilia

这样就完成了更换主题,接下来重新生成并推送

1
2
3
hexo clean
hexo g
hexo s

在本地浏览没什么问题,就可以推送到远端

1
hexo d

具体的配置都是通过修改_config.yml文件来实现,在themes/yilia文件夹内也有一个。


参考文献

感谢程序羊大佬的教程,这是大佬个人网站链接CodeSheep


常见问题

文章中的头像不显示

因为头像路径没有设置绝对路径,在路径前要加上/

新文章发布后,本地浏览没问题,推送GitHub后打不开,404错误

添加新文章要用”hexo new “新文章””操作。删除本地文章,推送后,再通过new添加新文章,再推送就正常了

关于git提示“warning: LF will be replaced by CRLF”终极解答

参考网站:https://www.jianshu.com/p/450cd21b36a4

hexo博客新建“相册”页面时,出现“Cannot GET/xxxx”的错误

需要使用

1
hexo new page "photos"

进行初始化操作。参考网站:https://www.cnblogs.com/Sroot/p/6305938.html

hexo d时候出现报错TypeError [ERR_INVALID_ARG_TYPE]: The “mode” argument must be integer. Received an instance of Object

1、由于电脑硬盘换了,之前部署在C盘的ssh key应该无效了,所以参考自己的第一篇文章,重新在github上创建新的ssh key。
2、上面报错的问题是由于自己更新了nodejs的版本到了14,因为版本太高,hexo没更新,所以导致报错。网上的建议是退回原来的nodejs版本,更新hexo版本似乎不起作用。我查了一下自己使用hexo的时间,去官网下载了node-v12.11.1-x64.msi。降了版本之后,hexo成功推送成功。

在阿里云服务器上部署hexo的时候,直接拷贝了GitHub上的配置文件config.yml到云服务器上,遇到报错WARN Deprecated config detected: “external_link” with a Boolean value is deprecated.

这是因为hexo版本更新后(5.4.0之后),配置文件发生了变化。需要将
external_link: true
更改为
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
exclude: ‘’

hexo d时候出现报错Error: Spawn failed

1
2
3
4
5
6
7
fatal: unable to access 'https://github.com/AnZai1991/AnZai1991.github.io.git/': OpenSSL SSL_read: Connection was reset, errno 10054
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html
Error: Spawn failed
at ChildProcess.<anonymous> (E:\Hexo\AnZai1991.github.io\node_modules\hexo-deployer-git\node_modules\hexo-util\lib\spawn.js:51:21)
at ChildProcess.emit (events.js:210:5)
at ChildProcess.cp.emit (E:\Hexo\AnZai1991.github.io\node_modules\hexo-deployer-git\node_modules\cross-spawn\lib\enoent.js:34:29)
at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12)

解决方法:进入hexo目录,删除.deploy_git和public再执行hexo clean && hexo g && hexo d

1
2
3
4
5
6
7
remote: GitHub found 44 vulnerabilities on AnZai1991/AnZai1991.github.io's default branch (4 critical, 24 high, 14 moderate, 2 low). To find out more, visit:
remote: https://github.com/AnZai1991/AnZai1991.github.io/security/dependabot
remote:
To https://github.com/AnZai1991/AnZai1991.github.io.git
+ f4c12fa...53d3d31 HEAD -> master (forced update)
Branch 'master' set up to track remote branch 'master' from 'https://github.com/AnZai1991/AnZai1991.github.io.git'.
INFO  Deploy done: git

hexo提交报错fatal: unable to access ‘https://github.com/xxxxxx.github.io.git/‘: Failed to connect to github.com port 443 after 21065 ms: Could not connect to server

一般都是因为科学上网导致本机系统端口号与git端口号不一致导致
查看本机端口,设置-网络和Internet-代理,查看本机代理端口

1
2
git config --global http.proxy 127.0.0.1:xxx(上面的端口号)
git config --global https.proxy 127.0.0.1:xxx(上面的端口号)

查看本地git设置

1
git config --global -l

如果不是因为科学上网遇到了以上报错,把git代理去掉即可

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

参考网站:https://blog.csdn.net/qq_40296909/article/details/134285451

站内搜索

没有找到内容!