Roamedit-DIY功能-自动引用2.0-增加标题菜单快捷添加标题名

sheen 2021-8-9 1950

/**
 * @title 自动引用
 * @author 邦邦 && sheen
 * @note 可以在RE任意主题内自动引用内容到指定的主题下
 */
//支持块引用
pluginManager.register("autorefer", {
    settingsFieldset: ()=>({
        label: "自动引用",
        type: "fieldset",
        labelWidth: 100,
        fieldset: {
            autotoPic01: {
                type: "textarea",
                defaultValue: "填写创建好的主题,多个主题时请用;分隔",
                width: "420px",
                height: 200,
            },
        },
    }),
    after_docmenu_run()
    {
       plugin.menu.addItems("doc",{
           addAutoLink: {
               label:"启停自动链接",
               icon:"link",
               action(){
                    if(!this.nv.data.isTopic)return jWarn("自动链接仅对主题生效!");
                    const topic=this.nv.data.topic;
                    if(!plugin.config.autotoPic01){
                        plugin.config.autotoPic01="";
                        plugin.config.autotoPic01+=`${topic};`;
                    } else {
                        if(plugin.config.autotoPic01.includes(`;${topic};`)||plugin.config.autotoPic01.startsWith(`${topic};`)){
                            plugin.config.autotoPic0=plugin.config.autotoPic01.replace(`${topic};`,"");
                            jWarn("关闭完成");
                            return;
                        } else plugin.config.autotoPic01+=`${topic};`;
                    }
                    jWarn("开启完成");
               }
            }
        });
    },
    run(){
        EVT(".node-text",{
            blur_check(){
                let tt  = plugin.config.autotoPic01
                if(typeof tt === 'string'){
                    let ts = tt.split(';')
                    for(let i = 0;i < ts.length;i++){
                        ts1 = "#" + ts[i];
                        let node=this.nv;
                        if(node.data.ori.includes(ts1)){
                            if(node.data.refered)
                            {
                                if(node.data.refered.includes(ts1))return;
                                else node.data.refered.push(ts1);
                            } else node.data.refered=[ts1];
                            let topic=plugin.memory.getTopic(ts[i]);
                        plugin.inodeModel.save({ky:NNodeView.mkid(),pky:topic.ky,ori:`((${node.data.ky}))`});
                        }
                    }
                }
            }
        })
    }
})

安装方法:【不能复制到自定义JS,需要使用js代码块】

视频演示:Roamedit-DIY功能-自动引用02_哔哩哔哩_bilibili

 

上面的代码是支持块引用的

下面的代码是支持块嵌入的

//支持块嵌入
pluginManager.register("autorefer", {
    settingsFieldset: ()=>({
        label: "自动引用",
        type: "fieldset",
        labelWidth: 100,
        fieldset: {
            autotoPic01: {
                type: "textarea",
                defaultValue: "填写创建好的主题,多个主题时请用;分隔",
                width: "420px",
                height: 200,
            },
        },
    }),
    after_docmenu_run()
    {
       plugin.menu.addItems("doc",{
           addAutoLink: {
               label:"启停自动链接",
               icon:"link",
               action(){
                    if(!this.nv.data.isTopic)
                        return jWarn("自动链接仅对主题生效!");
                    const topic=this.nv.data.topic;
                    if(!plugin.config.autotoPic01){
                        plugin.config.autotoPic01="";
                        plugin.config.autotoPic01+=`${topic};`;
                    } else {
                        if(plugin.config.autotoPic01.includes(`;${topic};`)||plugin.config.autotoPic01.startsWith(`${topic};`)){
                            plugin.config.autotoPic0=plugin.config.autotoPic01.replace(`${topic};`,"");
                            jWarn("关闭完成");
                            return;
                        } else plugin.config.autotoPic01+=`${topic};`;
                    }
                    jWarn("开启完成");
               }
            }
        });
    },
    run(){
        EVT(".node-text",{
            blur_check(){
                let tt  = plugin.config.autotoPic01
                if(typeof tt === 'string'){
                    let ts = tt.split(';')
                    for(let i = 0;i < ts.length;i++){
                        ts1 = "#" + ts[i];
                        let node=this.nv;
                        if(node.data.ori.includes(ts1)){
                            if(node.data.refered)
                            {
                                if(node.data.refered.includes(ts1))return;
                                else node.data.refered.push(ts1);
                            } else node.data.refered=[ts1];
                            let topic=plugin.memory.getTopic(ts[i]);
                        plugin.inodeModel.save({ky:NNodeView.mkid(),pky:topic.ky,ori:`{{Embed src="${node.data.ky}"}}`});
                        }
                    }
                }
            }
        })
    }
})
快速回复
最新回复 (15)
  • Innis 2021-8-9
    0 2
    这个要怎么用呀? 有教程吗 😄
  • sheen 2021-8-9
    1 3
    Innis[社区志愿者] 这个要怎么用呀? 有教程吗 😄
    B站上传慢,已补上了
  • Innis 2021-8-9
    0 4
    sheen B站上传慢,已补上了
    感谢~  d=====( ̄▽ ̄*)b
  • yashino 2021-8-10
    0 5
    按照教程弄好了,但是不行呢,是否我对插件理解不对?我是这样理解的:
    1. 有一个大主题 《每日阅读》;
    2. 在每日主题下开始记笔记,并 #每日阅读;
    3. 在《每日阅读》主题里会自动引用 笔记?
  • sheen 2021-8-10
    0 6
    yashino 按照教程弄好了,但是不行呢,是否我对插件理解不对?我是这样理解的: 1. 有一个大主题 《每日阅读》; 2. 在每日主题下开始记笔记,并 #每日阅读; 3. 在《每日阅读》主题里会自动引用 笔记 ...
    你理解没有错,可以把在偏好设置里的设置截图发下吗
  • yashino 2021-8-10
    0 7

    你看看对不对

  • sheen 2021-8-10
    0 8
    yashino 你看看对不对
    你再次,写一个新的内容试下。123 #每日主题
  • yashino 2021-8-10
    0 9

    也不可以

  • sheen 2021-8-10
    0 10
    yashino 也不可以
    试下偏好设置改成  123;每日主题;   
  • yashino 2021-8-10
    0 11
    sheen 试下偏好设置改成  123;每日主题;   
    也还是不行,不知道其它人是否有遇到同样问题
  • sheen 2021-8-10
    0 12
    yashino 也还是不行,不知道其它人是否有遇到同样问题
    私聊QQ
  • sheen 2021-8-10
    1 13
    楼上的问题是因为安装到了自定义JS,要安装到JS代码块才行,怎么安装到JS代码块,可以看我B站以往的视频
  • fengzi 2021-8-10
    0 14
    666,顶
  • fengzi 2021-8-10
    0 15

    麻烦问下那个出来两个自动引用

  • sheen 2021-8-10
    0 16
    fengzi 麻烦问下那个出来两个自动引用
    第二个先不用理,等后面解决。点第一个就可以
返回