hexo+githubpage搭建并添加博客RSS

cvestone 发布于 2024-01-17 256 次阅读 2414 字 预计阅读时间: 11 分钟


非原创,由各个博客综合提取,主要为了查找方便,感谢这些bloggers提供的珍贵参考材料

安装必要环境

node

下载对应操作系统二进制文件并安装即可,不再赘述,最好下载长期支持版,安装好后输入命令检查一下版本

更换国内下载源

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

注意:之后再次使用命令则是以cnpm开头,而不是npm,如果是linux,先要定位到node安装目录下的bin目录中,然后为cnpm建立软链接:

2024-01-17-09-41-08

git

windows下载对应操作系统二进制文件并安装,linux利用自带包管理器install即可,不再赘述

准备github

创建仓库

注册账号后,开始创建一个仓库
注意选择public,初次使用githubpage,注意仓库取名格式必须是:
github用户名.github.io
(每个githubber只能有一个个人主页,但是可以有多个项目页)
由于我已经将这个仓库分配给其他服务了,这里的演示就选择自定义域名了,仓库名我也随便取了:
2024-01-17-08-03-44
其他可以保持默认,复制以下部分作为后面配置的备用:
2024-01-17-08-06-19
(推荐使用ssh,https容易后期出现bug)
然后先随便在这个仓库创建一个文件:
2024-01-17-08-20-35
创建完点右上角的commit或者直接ctrl+s

(可选)配置自定义域名

如果是选择用github.io格式的域名可以跳过这步

(可选)github添加自定义域名

在自己的头像上点Settings,然后选择左侧菜单中的Pages,添加域名:
2024-01-17-08-54-46
copy下来留着备用

(可选)dns记录配置

然后在自己购买的域名对应管理控制台中,根据gihub文档中的要求,配置好dns解析记录CNAMETXT,如下:
2024-01-17-08-49-15
这里填上自己的子域名,然后一定要指向github用户名.github.io!!!
2024-01-17-08-51-05
这里的主机记录和记录值就是来自之前备用的,copy过来即可,别忘了在刚才的Pages中点击Verify从而验证dns记录,最后提示成功即可

配置仓库分支(和自定义域名)

回到刚才创建的仓库,点击Settings,点击左侧菜单栏的Pages,如果你的和我的一样,唯一的个人githubpage主页已经用过了,这里显示的访问域名就不是github用户名.github.io,这里的是可以创建无数个的项目页,作为个人主页的子路径,如下:
2024-01-17-09-08-04
直接访问肯定是404,因为我们的仓库除了一个刚才创建的1.txt以外,没有其他可以解析的静态页面文件(如index.html),我们可以验证一下能否访问到这个1.txt
2024-01-17-09-09-57
很好,说明到目前为止配置都没有问题。
然后需要指定一下该网站的发布分支(也就是网站写好构建成静态网站后从哪个分支部署):
按照自己的需要进行选择,如下:
2024-01-17-09-17-13

我是分隔线—————— ฅ՞• •՞ฅ ———————

上面是必要的配置,下面是可选项--配置仓库的自定义域名:
还是在当前Pages界面,鼠标继续往下滚,
这里的自定义域名填刚才配置CNAME的主机记录,也就是你的子域名:
2024-01-17-09-21-58
这一步会自动添加一个CNAME文件到你的仓库中,然后查看是否提示dns记录检查成功(耐心些,dns记录生效前需要一段时间),并且等待github为你的域名自动配置好ssl证书,等待证书颁发完成后,才可以选择Enforce HTTPS,可以多次刷新页面后选择

本地安装hexo与连接仓库

在本地创建一个放置该项目的文件夹,也是作为和远程github仓库交互的本地仓库使用,
然后输入命令:

cnpm install -g hexo-cli
hexo init

初始化成功后该目录下会生成一个基本的hexo框架,包含基本文件:
2024-01-17-09-52-13

填坑:如果在安装过程中和我一样遇到了找不到module,可以像我这样处理,因为一开始时我的node不是安装在默认位置:

2024-01-17-09-51-54
输入hexo s可以在本地启动该网站,便于预览和测试,默认运行在本地4000端口:
2024-01-17-09-54-24
ctrl+c关闭

配置与远程仓库的连接

生成ssh密钥对

在本地输入:

ssh-keygen -t rsa -C "github绑定的邮箱"

然后全部回车Enter,默认密钥文件会生成到当前用户的~/.ssh目录下,
为了避免之后未知的连接错误,这里就不选择输入密码。切换到该目录,复制id_rsa.pub的内容,即ssh公钥,回到github个人头像的Settings,选择SSH and GPG keys,点击New SSH key,名字任意。粘贴刚才的公钥内容,这样做是为了相对的安全,后续使用ssh方式连接远程仓库

验证与绑定

验证:

┌──(root㉿hunter)-[/home/cvestone/hexo_life]
└─# ssh -T git@github.com                     
Hi cvestone/cvestone.github.io! You've successfully authenticated, but GitHub does not provide shell access.

绑定:

git config --global user.name "github用户名"
git config --global user.email "github绑定的邮箱"

本地hexo配置

编辑当前博客目录的_config.yml文件,来到末尾,如下面的例子填入你的远程仓库信息:

deploy:
  type: git
  repo: git@github.com:cvestone/lifeshow.git(也就是最开始复制作为备用的)
  branch: main  

保存文件,接着需要安装上传工具:

cnpm install hexo-deployer-git

后续新建博客文章与上传到远程仓库

1.新建文章

hexo new "文章名称"

执行后也会提示你文章保存的位置:
2024-01-17-10-23-50
然后就可以用markdown语法编辑这个.md文件的内容(推荐使用vscode或typora)
2.预览

hexo s

3.构建为静态网站文件

hexo g

2024-01-17-10-27-03
显然我们的文章已经不再是.md而是单独被生成为对应目录中的index.html
4.上传到远程仓库并部署github page

hexo d

之后每次更新博客文章并重新部署到远程仓库时,都是按照上面的1~4步骤,部署成功后,浏览器访问github用户名.github.io或自定义域名即可,注意需要等待一会才会更新页面,部署后需要一定时间加载

博客添加RSS

RSS可以理解为博客的一种标识,通过该标识可以订阅博客,博客添加RSS后有对应的链接地址进行访问,页面显示的是xml格式,可以显示博客中的所有文章的简要内容,便于快速浏览

hexo添加RSS

在本地博客根目录安装插件:

cnpm install hexo-generator-feed --save

然后配置_config.yml文件,在Extensions中添加:

feed:
  type: atom
  path: atom.xml
  limit: false

如果不是默认主题的话,在根目录的themes文件夹下也要配置对应的_config.yml文件,添加如下:

rss: /atom.xml

最后重新用命令:

hexo clean
hexo g

然后根目录的public文件夹下就会多出一个atom.xml文件,也就是RSS订阅后访问到的内容,最后再用hexo d重新部署到远程仓库即可,效果如下:
2024-01-17-15-25-24

wordpress添加RSS

wordpress自带,直接在自己主页url后面加上/feed即可:
2024-01-17-15-28-32

csdn添加RSS

csdn自带,直接在自己的网站用户名url后面加上/rss/list即可:
2024-01-17-11-23-28

博客园添加RSS

博客园自带,直接在自己的网站用户名url后面加上/rss即可:
2024-01-17-11-10-42

更多hexo的有趣操作

给文章加密

安装插件:

cnpm install --save hexo-blog-encrypt

详细看官方文档,下面仅介绍一些常用的:

全局加密配置

通过添加指定 tag 的方式,可以为所有需要加密的文章添加统一加密操作。只需要在需要加密的文章中,添加设置的 tag值 即可。
在根目录的_config.yml中添加如下配置:

# Security
encrypt: # hexo-blog-encrypt
  silent: true
  abstract: 这是一篇加密文章,需要密码才能继续阅读。
  message: 当前文章暂不对外可见,请输入密码后查看!
  tags:
  - {name: private, password: xxx}
  wrong_pass_message: 抱歉,您输入的密码错误,请检查后重新输入。
  wrong_hash_message: 抱歉, 当前文章不能被校验, 不过您还是可以看看解密后的内容。

之后,需要清除缓存后重新生成,即

hexo clean && hexo g

需要加密的文章头部就要添加tags标签的内容,如下:



---
title: hi
date: 2024-01-17 14:51:56
tags:
    - private
---

全局加密配置下禁用某些文章的加密

有时候又这样的情况,属于 private 标签下的某篇文章在一段时间内想要开放访问,可以在原tags标签下加上password: ""即可,表示密码设置为空

在全局加密配置下设置非全局密码

全局配置默认全部加密文章都使用同一个密码,同样也可以在某些文章中指定单独的密码,同上,可以在原tags标签下加上password: "新密码"即可

用这个给文章加密后,也不用担心提交给远程github的仓库中会显示我们原md加密前的内容,构建提交后显示的是加密后的提示用户该文章是加密文章的静态文件,并且密码只会显示在你的本地hexo路径中的_config.yml文件里。

  • alipay_img
  • wechat_img
此作者没有提供个人介绍
最后更新于 2024-01-17