Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.
Hexo
Hexo 是一个基于 Node.js 的静态博客框架,提供简单的方式来创建和部署静态博客,使作者专注于写作而不必担心后端服务器的维护。
Hexo 使用 Markdown 作为主要的文章撰写语言,这是一种轻量级的标记语言,使得写作变得简单且易于阅读。
Hexo 生成的是静态页面,因此页面加载速度非常快。这对于提供更好的用户体验和搜索引擎优化(SEO)非常有利。
Hexo 使用版本控制系统(通常是 Git)来管理博客内容,因此用户可以轻松地追踪和管理博客文章的历史。
Hexo 可以将博客部署到各种平台,包括 GitHub Pages、Netlify、Vercel 等。这使得博客的部署变得非常简单。
配置 hexo
见 https://www.bilibili.com/video/BV1Eg41157tL
1 | $ git config --global user.name "leo710aka" |
_cnfig.yml不能直接复制粘贴过去。。
Create a new post
在C:\Users\cf\Documents\Visual Studio Code\blog下右键Git Bash Here
1 | $ hexo new "文件名" |
或者直接在..\source\posts下编写md文件. More info: Writing
Run server
1 | $ hexo s |
在本地服务器看看效果. http://localhost:4000/
Clean、 Generate static files 、Deploy to remote sites
1 | $ hexo clean # 清理缓存、清理之前生成的静态文件 |
没办法同步的话,直接把新构建的 E:\Code\Blog\blog\.deploy_git
中的文件手动上传github仓库;
成功后若博客内容未更新,ctrl+f5清下缓存。
其他配置
在 _config.yml
或 _config.landscape
中设置,修改配置后先 hexo clean 一下,再发布。
hexo d 报错 Error: Spawn failed ?
- 寻找github.com的最新ip,加了host解析后,能够ping通,但hexo d仍失败
- 优先解决 SSL/TLS 连接超时问题:修改 Hexo 配置文件 _config.yml,将仓库地址从 HTTPS 改为 SSH 协议,根治 HTTPS 不稳定
- 将 C:\Users\caife.ssh\id_rsa.pub(公钥)文件内容加到 GitHub → Settings → SSH and GPG Keys → New SSH Key,再次执行hexo d成功了。
- 为何旧密钥直接生效?
你已有的 id_rsa 密钥对是之前通过合法流程生成的(可能曾用于其他服务),只是未添加到 GitHub。上传公钥后,GitHub 即可识别该密钥的签名,因此无需重新生成。生成命令示例:1
ssh-keygen -t ed25519 -C "your_email@example.com" # 推荐更安全的 Ed25519 算法
- GitHub 身份验证流程
当你执行 hexo d 时:
客户端发起连接:Hexo 通过 Git 向 GitHub 发起 SSH 连接请求。
服务器生成挑战:GitHub 生成一个随机字符串(Challenge),用你账户中存储的公钥加密后发送给客户端。
客户端响应签名:本地 Git 使用私钥解密该字符串,生成签名并返回给 GitHub。
服务器验证签名:GitHub 用公钥验证签名有效性,若匹配则认证通过,允许推送文件