Hexo Volantis 到 Butterfly 主题迁移指南
前言Hexo 作为一款优秀的静态博客框架,拥有丰富的社区主题。我曾长期使用 Volantis 主题,其强大的自定义能力和精美的设计给我留下了深刻印象。然而,随着博客的不断发展,为了寻求更简洁、高效且同样美观的体验,我决定将博客主题从 Volantis 迁移到 Butterfly。 迁移计划回顾与差异分析在开始迁移之前,我制定了一份详细的迁移计划。这份计划帮助我系统地对比了两个主题在导航栏、封面、文章布局、评论系统和个性化元素等方面的配置差异。 1. 导航栏 (Navbar) 配置 差异分析:Volantis 和 Butterfly 在导航栏菜单项的配置方式上有所不同。Volantis 提供了非常灵活的自定义选项,包括图标和链接的直接配置。Butterfly 同样支持自定义菜单,但其图标通常通过 Font Awesome 类名来指定,且配置结构更加扁平化。 解决方案:在 Butterfly 的 themes/butterfly/_config.yml 中,找到 menu 部分,按照其格式添加或修改菜单项。对于图标,需要查阅 Font Awesome 图标库,找到对应的类名并添加到...
Git 技巧:如何将 Pull Request 的提交内容同步到开发分支 (使用 cherry-pick)
引言在参与开源项目或团队协作时,我们通常会从一个开发分支(如 dev 或 develop)拉取一个特性分支进行开发,完成功能或 Bug 修复后,向主分支(如 main 或 master)提交 Pull Request (PR)。一旦 PR 被合并,我们的修改就进入了主分支。 然而,有时我们希望将 PR 的内容也同步回我们的开发分支(例如 dev 分支),以便本地开发环境保持最新,或者将该修改作为后续开发的基础。本文将详细介绍如何使用 Git 的 cherry-pick 命令来实现这一目标,并分享我在实际操作中遇到的问题及解决方案。 什么是 git cherry-pick?git cherry-pick 命令的作用是将一个或多个现有提交应用到当前分支。它会复制指定提交的更改,并在当前分支上创建一个新的提交。这与 git merge 或 git rebase 不同,cherry-pick 只挑选特定的提交,而不是合并整个分支的历史。 适用场景: 将其他分支的单个或少量提交合并到当前分支。 将已合并到主分支的 PR 提交,同步回开发分支。 从一个特性分支中挑选出部分提交,应用到另一个...
Hexo Butterfly 主题 Pull Request 过程中的 Git 实践与常见问题排查
本文是关于向 Hexo Butterfly 主题提交 Pull Request 过程中,我所经历的 Git 实践流程,以及期间遇到的典型问题和解决方案的总结。 📌 重要注意事项本次 Pull Request 的出发点是解决一个关于 Hexo Butterfly 主题分类页和标签页封面图不显示的问题。在 PR 过程中,我得到了主题作者的反馈,这修正了我对 themes/butterfly/_config.yml 中 category_img 和 tag_img 配置项的理解。 核心 Bug 根源的修正理解: 最初的误解:我曾认为 category_img 和 tag_img 是用于设置分类页 /categories/ 和标签页 /tags/ 主页的封面图。 正确的理解:category_img 和 tag_img 实际上是为文章(posts)在分类/标签归档页面中提供一个备用的封面图。而分类页 /categories/ 和标签页 /tags/ 的主封面图,应该在它们各自的 Markdown 文件(例如 source/categories/index.md 和 s...
一次因缓存引发的“灵异事件”:Hexo Butterfly 主题封面图调试全记录
在搭建和美化 Hexo 博客的过程中,我们时常会遇到一些看似简单,却足以让人抓狂的“灵异事件”。最近,我就和我的 AI 助手 Roo 经历了一次这样的封面图调试之旅。一个简单的图片不显示问题,我们排查了代码、配置、路径,甚至怀疑人生,最终却发现“真凶”隐藏在一个意想不到的地方。 这篇文章记录了我们完整的调试过程,希望能为同样在 Hexo 世界中探索的你提供一些有价值的参考和避坑指南。 📌 重要更新与注意事项(2025-07-11)在 Pull Request 中,我得到了主题作者的反馈,这修正了我对 themes/butterfly/_config.yml 中 category_img 和 tag_img 配置项的理解。 最初的误解: 本文最初的问题提出(“不听话的 category_img 和 tag_img”)是基于一个误解,认为 category_img 和 tag_img 是用于设置分类页 /categories/ 和标签页 /tags/ 主页的封面图。 正确的理解: category_img 和 tag_img 配置项,实际上是用于设置当文章没有指定 cove...
Hexo Butterfly 主题副标题不显示问题排查与解决
引言在使用 Hexo 搭建博客并采用 Butterfly 主题时,您可能会遇到一个令人困惑的问题:网站的 <title> 标签中正确显示了站点标题和副标题(例如 “AI whale - Exploring the World of AI”),但在实际的页面内容(尤其是首页的头部区域)中,却只显示了站点标题,而副标题神秘“失踪”了。本文将详细记录这一问题的排查过程,并提供最终的解决方案。 问题现象在浏览器中检查网站首页的 HTML 元素,可以发现 <head> 标签内的 <title> 元素内容是完整的: 1<title>AI whale - Exploring the World of AI</title> 然而,在 <body> 内部的可见区域,例如 <header> 部分,却只有主标题“AI whale”显示,副标题“Exploring the World of AI”不见踪影。 排查过程 检查全局配置 (_config.yml)首先,我们检查了 Hexo 的全局配置文件 _config.y...
Hexo多语言博客导航问题排查全记录
本文详细记录了在 Hexo 博客中使用 hexo-multiple-language-generate 插件对 Volantis 主题进行多语言国际化时遇到的各种问题,包括目录结构调整、配置文件适配、导航链接错误、样式冲突等,以及从初步尝试到最终放弃该方案的全过程。 国际化需求与初步方案我希望对现有 Hexo 博客进行国际化,支持中文(zh-CN)和英文(en)两种语言。初步方案是利用 hexo-multiple-language-generate 插件,并调整项目结构和配置文件。 核心变动点: 安装插件: hexo-multiple-language-generate。 调整项目结构: 为每种语言创建独立的 source 目录(source-zh/、source-en/)。 Hexo 配置文件: 为每种语言创建独立的 Hexo 配置文件(config.zh.yml、config.en.yml)。 插件配置文件: 在项目根目录创建 hexo-multiple-language.yml。 主题配置文件: 为每种语言创建独立的主题配置文件(config.volantis.zh....
从 Hexo 国际化配置还原为默认状态(Volantis 主题完整修复指南)
在尝试为 Hexo 博客启用多语言功能,搭配 Volantis 主题与 hexo-generator-index-i18n 插件实现 / 显示 zh-CN,/en/ 显示英文分页的过程中,出现了大量错误 首页 Cannot GET / /zh-CN/zh-CN/index.html 等路径嵌套 所有文章混杂分页、不正确语言过滤 页码仍基于总文章数分页(比如 1/4) 最终我决定完全撤销国际化支持,恢复 Hexo + Volantis 默认行为,并记录完整还原过程,方便自己或他人参考。 💡 尝试 Hexo 多语言支持过程(失败记录)1. 使用 hexo-generator-index-i18n在根目录 _config.yml 添加配置: 123456index_generator_i18n: per_page: 10 order_by: -date languages: zh-CN: index # 期望生成 /index.html en: en # 生成 /en/index.html 文章结构使用 sourc...
一次离奇的VS Code调试经历:当眼见不再为实
我在开发一个 VS Code 插件时,遇到了一个堪称我职业生涯中最离奇的调试问题。它耗费了我数小时的时间,并最终让我深刻理解了“眼见不一定为实”。 问题的开端一切都始于一个简单的函数。在我的 TypeScript 代码中,有这样一段逻辑: 123456789101112131415// src/commands/removeTargetCommand.tspublic async execute(targetPath?: string): Promise<void> { Logger.log( `RemoveTargetCommand: execute started with targetPath: ${targetPath}` ); // 如果未提供目标路径,则退出 if (!targetPath) { Logger.error("RemoveTargetCommand: No target path provided"); // ... return; }...
解决 Gemini CLI 认证超时及日常使用问题
你是否曾被命令行工具的认证超时问题困扰?当 Google Gemini CLI 尝试通过浏览器进行身份验证时,一个看似简单的步骤却可能隐藏着复杂的网络和配置挑战。本文将深入剖析我如何从一个棘手的认证超时问题入手,通过系统化的排查与调试,最终实现 Gemini CLI 的顺畅使用。这个过程不仅恢复了我的正常工作流程,更让我对现代命令行工具的认证机制、网络代理原理及问题诊断方法有了前所未有的深入理解。 问题初现: 浏览器回调请求挂起最初,当我依照 Gemini CLI 提供的指示,点击浏览器中的 “Sign in” 按钮后,浏览器会尝试重定向到一个本地的回调 URL,通常是 http://localhost:<某个端口>/oauth2callback?...。在我遇到的具体情况中,端口号最初显示为 33805,后来在 Wireshark 中捕获到的是 39065。然而,无论端口如何,这个关键的重定向请求在 Chrome 浏览器的 Network 标签页中一直显示为 pending 状态,而在 Firefox 中甚至没有任何网络活动记录(显示为空),这无疑是一个不祥之兆...
Hexo 博客中 URL 路径出现重复日期的解决方案
在使用 Hexo 搭建博客时,你可能会遇到如下问题: 文章的 URL 路径中出现了重复的日期字段,比如: 1http://localhost:4000/2025/06/24/2025/06/24/volantis_cyberpunk_style_avatar_bug/ 这通常是由于文章的物理路径与 Hexo 的默认 permalink 规则叠加造成的,本文将介绍如何避免 URL 中重复的日期路径。 🚩 问题复现示例假设文章的物理路径是: 1source/_posts/2025/06/24/volantis_cyberpunk_style_avatar_bug.md 同时 Front Matter 中包含: 1date: 2025-06-24 10:00:00 而 Hexo 默认的 permalink 配置是: 1permalink: :year/:month/:day/:title/ 此时构建出来的 URL 就会变成: 1/2025/06/24/2025/06/24/volantis_cyberpunk_style_avatar_bug/ ✅ 解决方案一:修改全局 p...










