使用github+hexo搭建静态博客

1 、摘要

目的是要在github.io部署自己的静态博客,通过username.github.io就可以访问自己的网站,有条件可以将自己的域名指向username.github.io,实现自定义域名访问。

路线总览:在本地安装npm和hexo,hexo会将我们的markdown的文件(即博客文章)生成为网页样式,再将网页样式文件推送到github.io,实现博客显示。所以每次新增博客(新增md文件)后,都需要hexo g生成网页,然后hexo d部署推送到github,然后就算是更新博客了。(非前后端方向,描述可能不专业)

所以我们需要:

  • 注册配置github项目(算是博客部署服务器吧)

  • 本地配置npm和hexo(本地博客生成)

  • 安装使用Typora(一款写markdown的软件)

2、环境搭建

2.1 配置本地开发环境

我们在本地需要安装Git - DownloadsNode.js,安装方式一路默认即可。安装完成后,打开命令行通过node -vgit --versionnpm -v命令查询版本,如果都能正常显示,说明安装成功。

2.1.1 配置github本地账户

现在为了方面后续和github账户的交互,我们需要在本地配置账户以及添加密匙。

首先在空白处右键选择Git Bash Here,通过git config --global user.name "GitHub 用户名"git config --global user.email "GitHub 邮箱"设置你的github用户名和邮箱。

然后执行命令ssh-keygen -t rsa -C "GitHub 邮箱"一路回车创建密匙,然后复制C:\Users\用户名\.ssh\id_rsa.pub(创建密匙成功才会有这个pub文件)里面的全部内容。

然后登陆 GitHub ,进入 Settings 页面,选择左边栏的 SSH and GPG keys,点击 New SSH key。Title 随便取个名字,粘贴复制的 id_rsa.pub 内容到 Key 中,点击 Add SSH key 完成添加。

现在用ssh -T git@github.com测试是否正确:

2.1.2 通过npm安装hexo

现在打开Git Bash Here,通过npm install -g hexo-cli安装hexo,等待安装完成。

hexo初始化并安装相关组件:

hexo init
npm install

生成页面并在本地启动:

hexo g   //hexo generate
hexo s   //hexo server

现在我们可以访问本地的4000端口看到hexo的hello world页面

2.2 创建github项目

这一部分首先需要一个github账号,然后新建一个项目,项目的名字为username.github.io,比如我的用户名为thgpddl,则我新建的项目名为thgpddl.github.io。同时勾选Add a README file

3、hexo生成发布博客

3.1 设置hexo配置文件

首先通过npm install hexo-deployer-git --save安装hexo-deployer-git,然后修改_config.yml

deploy:
  type: git
  repo: https://github.com/thgpddl/thgpddl.github.io.git  # 修改为自己的项目,即git clone显示的链接
  branch: main
  message: update

现在通过hexo new page生成一个名为page的md文件,就是新的博客。然后随便在md中写点什么。

通过hexo g生成hexo页面,通过hexo d部署到github上。至此,可以通过you_user_name.github.io访问有新文章的页面了(当然可能有缓存影响,页面没有同步更新,可以尝试清楚浏览器缓存)。

后续,每当我们写了一篇新的博客后,都需要依次执行下面的代码更新github网站:

hexo clean  # 清楚上次生成的页面文件
hexo g  # 生成新的页面
#hexo s
hexo d  # 部署到github

4、创建gitee项目同步源码

在上面的hexo d后,在github项目中可以看到源文件,但是这只是hexo生产的页面文件,真正的markdown等源码是没有的。

所以为了同步我们的博客源码,可以在gitee新建项目同步代码(通过git add,git commit,git push的方式同步源码,和hexo无关了),这部分就是常规的git使用,不做详细介绍。(gitee可以创建免费的private项目,而github似乎不行)

注意,其中themes/3-hexo本身也是一个git项目,为了防止潜在的冲突,需要把themes/3-hexo中下面的文件以及.git删除

5、使用Typora写markdown

Typora是一款在本地写markdown的软件,我们便携markdown博客,再通过hexo生成网页推送到github。

5.1 安装最后的免费版本Typore 0.11.18

Typora自v1.0版本后就收费了,0.11.18是最后一个免费版本,其他版本也无所谓,反正都能写md。

安装后启动会提示过期要求必须下载最新版(收费版),解决办法:【工具分享】typora-beta-0.11.18版本又提示过期的【神级】解决方案_typora 0.11.18-CSDN博客

5.2 设置便捷的图片插入

我经常通过截图,然后在md中ctrl+v插入图片,所以便捷的图片插入是必须的。

首先安装npm插件:

npm install hexo-asset-img --save

安装这个插件后,我们通过hexo new page创建新的md博客,会在md同级目录生成同名的文件夹,在typora中我们设置将插入的图片保存到这个同名文件夹中,在hexo g生成页面时hexo-asset-img会自动处理这些asset文件,实现图片显示。

typora中的设置(设置插图保存):位置在格式-图像-全局图像偏好(如果图像是灰色可能你处于源代码模式,需要改变模式),设置如下:1)选择复制到指定路径;2)修改路径为./${filename},意思为插入的图片复制到md同名文件夹下;3)设置使用相对路径

后续可以通过hexo s或者hexo d在本地或github部署后,就可以正常看到图片了。

6、总结

简单总结写一篇新文章的流程:

  • 进入博客项目文件夹,右键打开Git Bash here,执行命令hexo new page创建名为page的md文件,会自动生成名为page的文件夹。(你也可以手动在source/_posts/下创建page.md和page/)

  • 在typore中编辑md文件

  • 在博客项目文件夹中,右键打开Git Bash here,依次执行:

    hexo clean  # 清除
    hexo g		# 生成
    hexo d		# 部署
    

7、注意

  • md文件名不能带有汉字,最好英文+数字+下划线,避免未知bug

8、TODO:高级功能

3-hexo使用说明 | 叶落阁 (yelog.org)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 ishyj@qq.com