【已解决】编译obsidian-auto-note-mover插件的PR代码

https://github.com/farux/obsidian-auto-note-mover/pulls

该插件主用于移动文档,用户可根据标签或文件名,自动将文档移动至指定文件夹内。

该插件开发者自2年前就不再更新,但是一直有其他开发者提交PR,为该插件添加新功能,想请求懂代码的大佬,帮忙合并以下两个功能

  1. 可以移动所有文件,而不仅仅是当前文件
  2. 可以根据frontmatter的属性值移动文件

合并要权限的,楼主应该是想帮忙编译吧

是的,因为我看不懂代码,不知道怎么编译

我有时会干这事, 我们先讨论 “渔” 即: 看见一个 Ob 插件有缺陷, 且有别人给提了 PR, 想赶紧用上, 咋办?

当你既不是 git repo 原作者, 也不是 Pull Request 作者, 也不想用 PR 作者的分叉出来的仓库时, 怎么在本地合并 “第三人给原仓库的 PR” ?

我自己的笨方法: 把 PR 当 patch 存到本地, git am 进去

步骤

1

把原始项目 clone 回来

2

把你关心的 PR 做成 patch

方法是在具体 PR url 上, 加尾缀 .patch 例如

https://github.com/farux/obsidian-auto-note-mover/pull/62
改成
https://github.com/farux/obsidian-auto-note-mover/pull/62.patch

把后者作为文本下载回来, 假设本地文件叫 62.patch.txt

3

在本地, 命令行 cd 到插件的根目录, git am 62.patch.txt

这意思是 “在项目当前的代码状态上, 应用这个邮件补丁 (patch)”

4

不出意外, 补丁就被合入了, 然后走 Ob 插件开发三板斧:

插件根目录依次输入 npm installnpm run buildnpm run dev

5

然后会在项目根目录, 生成 Ob 插件三件套: main.js manifest.json styles.css

后面流程不说了
过程中出意外了, 就随机应变


注意:

  1. 整个流程可以看不懂代码, 但是 git 和 npm 的命令还是得基本了解, 完全不会用命令行是不行的
  2. 你打算合入的 PR, 最好是 “显示绿色对勾” 的 This branch has no conflicts with the base branch 这个表示提交者的修改, 跟原项目的当前代码不冲突
  3. 有时原项目好久没维护, 且你只关心一个 PR, 那一般 PR 作者的分叉就是该项目的最好状态了, 直接去找他代码就完事了

这位朋友可以自己试试, 能自己做成功就好, 做成能写个心得就更好了


实在不行的话, 我给你合入一个

1 个赞

很感谢您这么详细的教程,不过我查询了一下,完成您这些操作是不是需要先下载Git,安装步骤看起来蛮复杂的,我得先研究一下。

完成这些操作是不是需要先下载Git

是, 需要对这几个东西有基本了解: 命令行, git, nodejs, npm, 等等, 好在网上资源多


这里是合入了 62 号 PR Add move all notes command 的 main.js
进插件目录, 备份后覆盖进去就行了, 其余文件 (manifest.json) 应该不用变

这位朋友可以试试

注意: 尽量还是不用莫名来源的 js, 或者至少自己检查下代码, 心里有个数

谢谢,根据您和其他用户的main.js文件,我通过最简单的TXT文档对比,把#62和#53的代码合并在一起了,现在这个插件已经符合我的需求了

如果有其他用户想要我合并的main.js,可以通过以下链接下载

提前声明,由于本人不懂代码,测试了一下能用,但不保证不出BUG

1 个赞

不好意思没看清, 你还需要 53 号 PR…
解决了就好~

感谢感谢,学习到了