给Hexo博客添加文章编辑链接
¶给Hexo博客添加文章编辑链接
¶一、起源
我最早接触的静态网站生成器Docusaurus,Facebook家的东西,用来搞课程笔记很方便,里面有个功能就是:每篇文章的末尾都有一个编辑的URL,可以点一下就跳转到对应的Github,非常方便。
这些年Github也在进步,微软把曾经本地的vscode变成了浏览器就可以用的github.dev,也是一个很好用的功能,在浏览器里面就可以编辑文本代码,尽管不能调试。但是看代码的时候就很方便了,特别是按下.即可打开编辑器!自从知道了这个小技巧,我每次都是果断使用这个快捷键了!
用了hexo这个博客之后,好用固然好用,问题就是有时候我在看我博客的时候突然发现有个问题,然后就想要修改,于是乎就要打开github然后一个目录一个目录的点进去,发现效率太低。
有没有可能把hexo的这个博客和快速编辑按钮同时结合起来呢?搜索了一下fluid
的主题里面的文档,发现没有这个需求,给Github的开发组提需求,开发组认为这个可以用注入的方法实现。
¶二、开始实践
¶1)开始前检查
为了方便的找到在github上面的对应博文的路径,我采用的方法是保证:Github中_post
文件目录的格式,和网站博客文章的URL的格式一样,否则就不可以。
举个例子,在_config.yml
文件里面,有这样一行:
1 |
|
因为我的_post
文件夹的组织就是按照年份+月份组织的,所以我没有必要在permalink
里面单独再加上年月日。我的文件结构如下:
1 |
|
举个例子:
permalink: :title/
,原文章的_post/2024/01/hello.md
最终的目录就会变成:blog.com/2024/01/hello
permalink: :year/:month/:day/:title/
,:title
部分还是会变成/2024/01/hello
,最终的结果就是:blog.com/2024/01/31/2024/01/hello
,这显然不对劲是吧
显然没有人按照第二种方法这样干,因为重复了。所以如果需要快速跳转URL,就需要使用permalink: :title/
,具体有关permalink的说明请查看Permalinks | Hexo
¶2)开始代码注入
首先在scripts
目录下,就是我们要注入的代码,可以随便新建一个my.js
的文件,添加下面的内容
1 |
|
然后为了把script引入,需要新建一个文件source/js/goEdit.js
,并加上下面的内容
1 |
|
此外我还加上了快捷键监听的,只要按句号.,就可以实现在新窗口中打开github的编辑了,感兴趣的小伙伴欢迎尝试。
¶3)补充
当然,你可能有自己的URL的处理逻辑,具体的话你可以修改上面的goEdit.js
的逻辑就好了。如果是一些其他方法生成的文章路径,只需要处理好window.location.pathname
与github对应的链接的关系就好了。但是如果博客文章的URL里面完全不包含任何的md路径文件信息,恐怕这个方法就没有任何作用了。