在GitHub上搭建Hexo

GitHub Pages 是什么?

GitHub Pages 是由 GitHub 官方提供的一种免费的静态站点托管服务,让我们可以在 GitHub 仓库里托管和发布自己的静态网站页面。

Hexo 是什么?

Hexo 是一个快速、简洁且高效的静态博客框架,它基于 Node.js 运行,可以将我们撰写的 Markdown 文档解析渲染成静态的 HTML 网页。

Hexo + GitHub 文章发布原理

在本地撰写 Markdown 格式文章后,通过 Hexo 解析文档,渲染生成具有主题样式的 HTML 静态网页,再推送到 GitHub 上完成博文的发布。

Hexo部署到Ghthub
  1. 安装git
    官网地址:https://git-scm.com
  1. 访问官方网站,下载对应的安装包,进行安装

  2. 安装完成后,鼠标右键可以看到:Git Bash Here,点击后打开

    git --version
    

  1. 安装nodejs
    官网地址:https://nodejs.org
  1. 访问nodejs官方网站,下载对应的安装包,进行安装
  2. 安装完成后,配置环境变量,并在终端里面输入:
node -v

安装Hexo

npm install hexo -g 

测试是否安装成功

hexo -v

初始化Hexo
新建一个blog文件夹

hexo init

可以看到博客存放目录里出现了相关文件

hexo项目目录内容如下:

.

├── _config.yml :站点的配置文件,需要备份。
├── themes :主题文件夹,需要备份。
├── source :资源文件夹。用来存放图片、Markdown 文档(文章、草稿)、各种页面(分类、关于页面等),需要备份。
├── scaffolds :文章的模板,需要备份。
├── package.json :安装包的名称,需要备份。
├── .gitignore :限定在 push 时哪些文件可以忽略,需要备份 .git :主题和站点都有,标志这是一个 git 项目,不需要备份。
├── node_modules :是安装包的目录,在执行 npm install 的时候会重新生成,不需要备份。
├── public :hexo g 生成的静态网页,将 source 文件夹里的 MarkDown 文档,转换成 index.html,不需要备份。
├── deploy_git :将 public 文件夹的内容提交到 GitHub 后生成,内容与 public 文件夹基本一致,不需要备份。
├── db.json :文件,不需要备份。
生成静态网页
hexo g         # 生成静态网页
hexo s         # 本地预览  

在本地浏览器访问:http://localhost:4000/

文章编写
hexo new <title>

在soruce/

├── source         //文章源码目录,该目录下的markdown和html文件均会被hexo处理。  
    |   ├── _drafts    //草稿文章
    |   └── _posts     //发布文章

该页面对应repo的根目录,404文件、favicon.ico文件,CNAME文件等都应该放这里,该目录下可新建页面目录。

安装hexo依赖
npm install hexo-deployer-git --save

Git配置

在blog文件夹下打开git输入

git config --global user.email "注册github时使用的邮箱"
git config --global user.name "github的用户名"

生成git公钥

ssh-keygen -t rsa -C "you email@126.com"

提示输入passphrase时可直接回车

使用记事本打开id_rsa.pub复制内容文件在C:\Users\你的用户名\.ssh目录下

进入github登录点击头像→Settings→SSH and GPG keys→New SSH key→在Title中输入hexo博客在key的文本框中输入复制的内容→Add SSH key

在Git Bash中输入

   ssh -T git@github.com 

出现Hi 用户名! You’ve successfully authenticated, but GitHub does not provide shell access.则证明成功!

打开_config.yml进行修改
补全如下代码 repo即你的仓库https地址

 deploy:
   type: git
   repo: git@github.com:your_name/your_name.github.io.git
   branch: main

其中your_name需要替换为你的github的账号

现在需要执行以下命令 就可以发布自己的博客了。每次新建完文章之后部署,也是相同命令

hexo clean         # 清除本地缓存
hexo g             # 重新生成静态页面
hexo d             # 部署到git

正在加载今日诗词....