简介
这是一个基于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 | node –v |
Linux系统:
打开终端,切换到root用户
查看nodejs,npm的版本
1 | node –v |
Windows系统:
管理员身份使用cmd
查看nodejs,npm的版本
1 | node –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 | chdir |
第一次部署需要下载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 | # Deployment |
重点:重装系统之后部署到远端之前需要在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 | # Extensions |
这样就完成了更换主题,接下来重新生成并推送
1 | hexo clean |
在本地浏览没什么问题,就可以推送到远端
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 | fatal: unable to access 'https://github.com/AnZai1991/AnZai1991.github.io.git/': OpenSSL SSL_read: Connection was reset, errno 10054 |
解决方法:进入hexo目录,删除.deploy_git和public再执行hexo clean && hexo g && hexo d
1 | 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: |
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 | git config --global http.proxy 127.0.0.1:xxx(上面的端口号) |
查看本地git设置
1 | git config --global -l |
如果不是因为科学上网遇到了以上报错,把git代理去掉即可
1 | git config --global --unset http.proxy |
参考网站:https://blog.csdn.net/qq_40296909/article/details/134285451