1. 前因后果

最近在写博客文章ChatGPT 广泛应用带来的风险和危机的时候, 需要较多的引用参考文献. 于是我想着找找, 看看hexo有没有插件用于作为参考文献的. 一番机缘之下, 我找到了hexo-reference-new, 遗憾的是, 这个插件只能支持引文的”硬编码”( 即[^1.]这样的格式), 不支持[^someReference.], 自然也无法支持文献的自动编号(auto numbering). 引文无法自动编号简直是反人类好吧~ 😞

巧合的是, 瞌睡来了送枕头. 我在这个repo中看到了这样一个PR: modified render logics to support non-number footnote marks. 这个PR实现功能正是[^someReference.]编制引文, 并对引文自动编号.

遗憾的是, hexo-reference-new的管理员对这个2019年并没有兴趣合并. 更遗憾的是, modified render logics to support non-number footnote marks作者的repo也有部分代码是落后于hexo-reference-new的, 难道鱼与熊掌就不可兼得了嘛? 我擦~ 不认命的我显然不会认怂啊.

2. 解决方案

仔细看了看modified render logics to support non-number footnote marks的补丁, 还好代码量不大. 于是我就准备自己从hexo-reference-newfork一份代码, 然后把modified render logics to support non-number footnote marks中的补丁用在我fork的库上, 接着在PR — 至于原作者merge与否, 我也管不了, 至少我得给自己将来的使用做个备份.

3. 工作流程

以前对开源社区的支持, 我都是花钱赞助. 本以为自己要做一辈子的人民币玩家, 没想到我也有做开源贡献者的一天, 而且更莫名其妙的是, 我基本对JavaScript没什么概念, 读别人的js代码都是连猜带蒙的. 🤣

3.1. GitHub操作基本流程

回到正题, 我主要参考的是GitHub的官方教程: Get started with GitHub documentation. 在远程操作前, 可以先从Follow this Hello World exercise to get started with GitHub熟悉一下GitHub中repository branch, commit, pull request, merge等的概念:

3.2. 远程代码操作

这一部分主要参考Set up Git. 这一部分其实和GitHub操作基本流程雷同. 但是由于是远程操作, 这里主要涉及到远程登录, 主要参考资料是Cloning with HTTPS URLs. 这里我使用了最新潮的方式:Git Credential Manager.

根据上一段的操作, 大部分人在执行git命令需要验证身份时, 会自动弹出浏览器窗口进行身份验证, 非常方便.

只有一小部分倒霉蛋儿, 不知道上辈子做了什么孽, 需要额外的设置. 其中一部分人是因为在windows下使用wsl.ubuntu终端系统, 无法自动弹出身份验证窗口. 我就是这些倒霉蛋儿中的一部分, 此时需要额外的操作, 具体方法参见Git Credential Manager setup