_P._("autorefer",{after_cmd_run(){P.cmd.command.autorefer={label:"自动引用",action({nv:e,args:n}){if(n.includes("match=")){const t=P.cmd.toJson(n);e.data.autorefer=t.match}else e.data.autorefer=n;return e.forceSave(),""}}},before_memory_run(){P.memory.indexes.autorefer={unique:!1}},run(){EVT(".node-text",{async blur_send2autorefer(){if(!isEmpty(P.memory.indexed.autorefer)&&!1===/\{\{(\[\[)?autorefer/i.test(this.innerText))for(const e in P.memory.indexed.autorefer)for(const n in P.memory.indexed.autorefer[e]){const e=$KY(n);if(P.filters.parse(this.nv.data,"under:ky:"+n))continue;const t={ky:this.nv.ky+"-"+e.ky.replace(/u.+?-/,""),ori:`((${this.nv.ky}))`,pky:e.ky,weight:(new Date).time()+autoID(),created:(new Date).time(),updated:(new Date).time(),saved:(new Date).time()};if(console.log(t),t.ky in P.memory.nodes==!1&&e.ori.includes("{{autorefer")){await P.inodeModel.save(t),JPubSub.emit("nodeDataChanged",t);break}}}})}});
{{autorefer}}命令
可以使用 search 语法来设定一个匹配规则,符合这个规则的 bullet 会被自动转移到应用了{{autorefer}}命令的 bullet 之下
例如,使用 {{autorefer is:task}} 将会自动引用所有待办事项