前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >程序员不可错过的一款Hexo博客主题

程序员不可错过的一款Hexo博客主题

作者头像
oec2003
发布于 2022-03-29 12:13:16
发布于 2022-03-29 12:13:16
87900
代码可运行
举报
文章被收录于专栏:不止dotNET不止dotNET
运行总次数:0
代码可运行

自从 2018 年开始写公众号之后,我的个人站点(fwhyy.com)就停止更新了,直到最近查资料发现了hexo 博客的 stellar 主题,春节期间重新将博客维护起来,主要原因是因为该主题支持专栏的功能,点击「阅读原文」可以访问博客。

原来博客站点的部署情况如下:

  • 域名:在狗爹购买,DNSPod 进行 DNS 解析
  • 空间:Linode 东京机房,后来被迁移到东京机房 2 ,迁移后感觉速度变慢了;
  • 图床:没有使用图床,图片直接放在网站发布的目录中;
  • 写作工具:MWeb;
  • 发布方式:使用 hexo d 命令结合 Linode 服务器上安装的 Git Hook 。

因为访问速度的原因,便想换一种部署的方式,调整后的方案如下:

  • 空间:使用 GitHub Page ,然后进行域名的绑定;
  • 域名:需要修改 DNSPod 中的 DNS 解析;
  • 图床:选用 GitHub 图床,配合 jsdelivr 做 CDN 加速
  • 写作工具:Typora;
  • 发布方式:GitHub Action 。

GitHub Page 绑定域名

多年前我就用过 GitHub Page,所以这次只需要进行域名的绑定就可以:

1、在仓库的 Settings 的 Pages 项中进行域名的设置,如下图:

2、在仓库的根目录下创建 CNAME 文件,内容为域名,如下图:

修改 DNSPod

1、将原来的两条 A 记录禁用;

2、添加新的 CNAME 记录,记录值为 oec2003.github.io。

如下图:

图床

  • 图床使用的是 GitHub 图床;
  • 使用
  • 做 CDN 加速;
  • 使用 PicGo 来进行图片的上传;
  • 在写作工具 Typora 中可以使用 PicGo 作为图片的上传服务。

1、在 GitHub 上创建 hblog-images 的公有仓库来用存储图片;

2、下载 PicGo 并进行配置:

  • 仓库名:在 GitHub 中创建的公有仓库的名称 hblog-images
  • 分支名:通常为 master
  • 设定 Token:登录 GitHub ,在 Settings / Developer settings / Personal access tokens 中生成 Token,需要注意的是生成之后Token只会出现一次,及时保存
  • 指定存储路径:随便取个名字即可,比如上面配置的为 img/ ,表示图片会上传到仓库的 img 目录中
  • 自定义域名:这里就是设置 jsdelivr 的 CDN 地址,https://cdn.jsdelivr.net/gh/oec2003/hblog-images ,格式为:https://cdn.jsdelivr.net/gh/<GitHub账号>/<仓库名称>

3、在 Typora 的偏好设置中进行图片的上传服务的设置,如下图:

4、在 Typora 中选中一张图片点击右键,选中上传图片,成功后图片的地址会自动替换,如下图:

使用 GitHub Action

使用 GitHub Action 需要两个 GitHub 仓库:

  • GitHub Page 的仓库,https://github.com/oec2003/oec2003.github.com
  • 存放 Hexo 代码的仓库,https://github.com/oec2003/hblog-code

具体步骤如下:

1、生成 SSH Key

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 ssh-keygen -t rsa -C "oec2003@qq.com"

以 Mac 系统为例,生成的文件在 ~/.ssh 目录中,id_rsa 为私钥文件,id_rsa.pub 为公钥文件。

2、在 GitHub Page 的仓库的 Settings > Deploy keys 中添加公钥

3、在 Hexo 代码仓库中的 Settings > Secrets > Actions 中添加私钥

4、在 Hexo 代码仓库的 Actions 页签添加 workflow,如下图:

5、创建的 workflow 为一个 yml 文件,内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 name: hblog deploy
 on: [push]
 jobs:
   build:
     runs-on: ubuntu-latest
     name: A job to deploy blog.
     steps:
     - name: Checkout
       uses: actions/checkout@v1
       with:
         submodules: true 
     - name: Cache node modules
       uses: actions/cache@v1
       id: cache
       with:
         path: node_modules
         key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
         restore-keys: |
           ${{ runner.os }}-node-
     - name: Install Dependencies
       if: steps.cache.outputs.cache-hit != 'true'
       run: npm ci
     
     # Deploy hexo blog website.
     - name: Deploy
       id: deploy
       uses: sma11black/hexo-action@v1.0.4
       with:
         deploy_key: ${{ secrets.BLOG_DEPLOY_PRIVATE }}
         user_name: oec2003  
         user_email: oec2003@qq.com  
         commit_msg: ${{ github.event.head_commit.message }}  
     - name: Get the output
       run: |
         echo "${{ steps.deploy.outputs.notify }}"
  • 上面配置需要修改的部分是 steps 中的 Deploy 步骤;
  • uses:这里使用的是 sma11black/hexo-action@v1.0.4 ,这是一个现成的 hexo 发布 action;
  • deploy_key :上面第三步中在 Hexo 代码仓库的 Settings > Secrets > Actions 添加私钥的名称;
  • user_name:GitHub 登录名;
  • user_email:生成 ssh 密钥时使用的邮箱。

写作流程

1、使用 hexo n 命令创建博客文章的 md 文件 ,该文件的所在目录为 /source/_posts 目录中;

2、使用 Typora 打开 _posts 目录,选择创建的文件进行内容的编辑;

3、文章中如果有图片,直接粘贴到 Typora 中,并右键选择上传图片即可,上传成功后地址会自动替换为 jsdelivr 的地址;

4、文章内容编辑完成后,在 GitHub Desktop 中将修改内容进行提交和推送,GitHub Action 会自动进行网站的生成和部署。

常见问题

域名问题

每次 push 代码自动构建发布后,GitHub Page 的仓库中配置的域名会丢失。按照如下步骤可以解决:

1、在网站根目录的 _config.yml 文件中找到 skip_render 节点,配置 CNAME ,如下图:

2、在 /source 目录中创建一个文件,命名为 CNAME ,里边的内容为你的域名。例如我的域名为:http://fwhyy.com , 该文件的内容为:fwhyy.com 。

Deploy keys 和 SSH keys

每个仓库的 Settings 中有 Deploy keys 的设置,全局的 Settings 中有 SSH keys 的设置,全局的 SSH keys 设置后,其他的仓库就不用单独设置了。

而且这两个是冲突的,如果设置了全局的 SSH keys ,再在某个仓库中设置 Deploy keys 时,会提示 key 已经存在。

_config.yml 文件中的 deploy 设置

这里需要注意两点:

1、网站根目录中的 _config.yml 的 deploy 节点需要进行设置,否则 GitHub Action 运行后不能将文件发布到 GitHub Page 的仓库,deploy 配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 deploy:
   type: 'git'
   repo: 
     github: git@github.com:oec2003/oec2003.github.com.git
     
   branch: master
   message: "Build at {{ now('YYYY-MM-DD HH:mm:ss Z') }}"

2、上面配置中的 github 的地址配置的是 GitHub Page 仓库的地址,因为前面有设置过 Deploy keys 或 SSH keys ,所以这个地址使用 ssh 地址即可,如果要使用 https 地址,需要在地址中添加 GitHub 的账户和密码。

总结

1、重新更新博客主要是因为这款主题,能支持专栏,还有一个原因就是博客更随意,内容也能随时修改;

2、第一次使用了 GitHub Action ,发现功能非常强大,也能带来一些思考,比如说,在 steps 中的一个任务块可以使用 uses 来引用其他现成的 action 。在零代码平台中一个很重要的思路就是组件的组合,组件如果能形成一个生态,而且在组建功能时能方便地使用到公共组件,扩展能力将会大大增强。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-02-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 不止dotNET 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
个人博客搭建(3):Typora+PicGo+Github/Gitee搭建免费稳定的图床
注:在安装的时候安装目录千万不能选C:\Program Files\下的任何地方,因为PicGo无法解析这一路径,如果你不知道安装在哪里的话,选择仅为我安装,否则在设置Typora时会出现错误:
kif
2023/03/10
8300
利用GitHub+Actions自动部署Hexo博客
早就听闻GitHub+Actions真相,于是今天便试了下,作为小康博客的第二个平台。至于为什么要自动部署,我在另一篇文章介绍过了。
Dreamy.TZK
2020/04/09
2K2
推荐一款程序员神器!
不知道大家有没有用过latex和markdown,两个都是用来编辑文档的语言,不过LaTeX偏学术风格,用来写paper和写书是用的比较多。
谭庆波
2019/05/14
9700
推荐一款程序员神器!
我的博客换成了 NotionNext
在《程序员不可错过的一款Hexo博客主题》中介绍了我博客的主题 stellar ,还介绍了部署方式的调整:
oec2003
2023/02/28
1.6K0
我的博客换成了 NotionNext
搭建独立博客,这款评论插件不能错过
1、支持 Markdown 语法 2、采用 github issue 实现,比较清爽(无广告) 3、被墙的可能性较小
oec2003
2020/01/02
8530
搭建独立博客,这款评论插件不能错过
基于 Github Actions 自动部署 Hexo 博客
前不久使用了 Hexo 搭建独立博客,我是部署在我的腾讯云轻量应用服务器上的,每次都需要 hexo deploy 然后打包、上传、解压和刷新 CDN,非常麻烦。我的服务器配置也不高 2C2G 无法安装 Jenkins,所以采用了比较简单和免费的 Github Actions 来进行打包、上传。然后我自己写了一个 Agent 来做解压和刷新 CDN 的工作,整套流程完全自动化。
晓晨
2022/09/07
9990
基于 Github Actions 自动部署 Hexo 博客
利用github+jsDelivr搭建图床
图床是什么?图床就是图片存放的地址,用来节省服务器的资源,也可以变相的提升网站加载速度 你是否正在遭遇以下问题: 1.在用静态博客网站写文章,图片不知怎么保存,保存在哪里 2.网上复制的心仪图片链接,用着用着某一天就失效了 3.特意花钱租个云服务器托管图片,划不来,而且上传操作好繁琐 4.市面上形形色色的免费图床,但都有时间期限,要么就是速度慢,存储空间小,有的还限流量 现在可以利用jsdelivr加速github仓库来实现图床,无论是否使用jsdelivr你都可以利用github搭建一个图床,但缺点是国内加载速度非常慢,严重影响我们的需求,为此我们还需要利用jsdelivr的cdn加速,jsdelivr在国内的节点有上百个,这样我们就得到了一个访问速度贼快,且免费,空间无限的一个图床。 下面就是教程了,有疑问有错误请评论指出,谢谢,仅以此文章帮助烂记性的自己和正在观看此博客的你。
科技怪物君
2021/08/10
1.7K0
利用github+jsDelivr搭建图床
从零开始用Hexo-GithubPage搭建个人网站(保姆级)
根据系统类型选择,因此我选 64-bit Git for Windows Setup
用户10161394
2024/03/11
5610
从零开始用Hexo-GithubPage搭建个人网站(保姆级)
yuque-hexo:语雀写文,自动部署 Hexo 博客
熟悉我的小伙伴应该知道,我喜欢使用 Markdown 来工作、学习笔记,主要是简洁方便。
程序员小航
2022/04/18
2.2K0
yuque-hexo:语雀写文,自动部署 Hexo 博客
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
把复制的令牌填入Picgo的参数token,并且参数customPath选择年月,点击确定。
SarPro
2024/02/20
3900
【开源图床】使用Typora+PicGo+Github+CDN搭建个人博客图床
使用 rsync-deploy-action 同步 Hexo 博客到个人服务器
前几天写了个基于 rsync 进行文件同步的 Action -> rsync-deploy-action。目的有三个:
Cloud-Cloudys
2021/01/21
9940
卧槽,又一款 Markdown 组合神器!!!
Typora 是专注于编写 Markdown 格式的编辑软件,使用方便,支持多种格式导出。
民工哥
2020/09/15
3780
卧槽,又一款 Markdown 组合神器!!!
插件开发:实现 PicGo 图片转 webp 格式
我写一些文档或者公众号文章使用的是 Typora,如果涉及到文章中有图片时,直接复制图片粘贴到 Typora 中,然后使用 PicGo 上传到图床。
oec2003
2023/09/01
6110
插件开发:实现 PicGo 图片转 webp 格式
Hexo博客搭建
为什么网上这么多教程,我还要在这里写下一篇呢?主要是总结大家的经验和自己的操作过程,一来是方便自己看,二来是给大家提供一些参考。Google一下,你可以找到几乎所有你想看到的,但是能否为你带来实质性的解决方案,可能也是需要花时间的。而且,跟别人做一样的操作,可能就刚好是你出了问题。。。没错,说的就是我自己。写这篇文章,仅此以纪念从WordPress转到Hexo。
Bess Croft
2020/04/03
7630
使用github + hexo搭建个人博客
新建一个名为你的用户名.github.io的仓库,比如说,如果你的github用户名是test,那么你就新建test.github.io的仓库(必须是你的用户名,其它名称无效),将来你的网站访问地址就是 http://test.github.io 了,是不是很方便?
秃头哥编程
2019/07/12
1.1K0
使用github + hexo搭建个人博客
使用github-action推送博客部署仓库至NPM
自从2021年12月20日,jsdelivr因为“某些原因”,在大陆和台湾的ICP证书被吊销。可以说,这让国内的开发生态瞬间天塌一般。目前,虽然jsdelivr已经恢复了服务,但是这只是通过在“中国附件”的节点提供的CDN加速服务,速度上还不如放到本地。这种反向加速的CDN服务,我们已经可以认为jsdelivr已经挂了。
Akilar
2022/01/20
5910
使用github-action推送博客部署仓库至NPM
这可能是迄今为止最全的hexo博客搭建教程
这是阮一峰在博客中写到的关于 Blog 的想法,而这里的第三阶段的实现就是利用 GitHub Pages 搭建博客。
程序员小明
2019/10/14
7.5K0
这可能是迄今为止最全的hexo博客搭建教程
爱了!爱了!Markdown 必备组合神器!
程序员应该都了解 Typora 是专注于编写 Markdown 格式的编辑软件,使用方便,支持多种格式导出。
张晓衡
2021/02/23
4630
爱了!爱了!Markdown 必备组合神器!
Typora gitee图床迁移github图床教程(图文详细)
 因此为了保证之前typora文档中的图片正常显示,我产生了将gitee图床转换为GitHub图床的想法。
timerring
2022/07/20
8600
Typora gitee图床迁移github图床教程(图文详细)
hexo-CI自动部署
​ hexo博客项目已经构建有好一段时间了,一般都是直接通过指令进行发布,为了适配在不同地方编辑笔记快速直接发布可采用CI的方式进行自动部署,此处介绍的是通过GitHab Actions+Github Pages的方式进行发布(分仓库存储:用于区分版本源文件管理&网站发布版本管理),随后则可直接通过typora编辑md文件并上传到指定仓库路径,自动部署网站内容
hahah
2022/06/15
4160
相关推荐
个人博客搭建(3):Typora+PicGo+Github/Gitee搭建免费稳定的图床
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档