【DIY功能08】把$替换成$$

sheen 2021-6-10 972

选择一个节点下所有子节点,遍历每个节点的内容,替换$为$$。【不能复制到自定义JS,需要使用js代码块】

//4.0 升级为如果原先节点内有$$则跳过替换,不受影响 
 NHook.add({
	after_nodemenu_run() {
        plugin.menu.addItems("node",{
            meijin: {
                 label: "$变成$$",
                 icon: "home",
                 action() {
                   let tt = this.nv.dom.querySelectorAll(".node-text");
                    for(let i = 0;i < tt.length;i++){
                        var cc =  tt[i].nv.oriText; 
                        if(/\$/.test(stripTags(cc))){
                            if(!/\$\$/.test(stripTags(cc))){
                                let vns = cc.replace(/\$/g,"$$$$");
                                tt[i].nv.setOriText(vns);
                         
                            }else{
                                continue;
                            }
                        
                        }else{
                            continue;
                        }              
                    }
                      
                 }
             }
         });
	}
});

应付下

使用方法请看下面的视频

插件使用方式:https://www.bilibili.com/video/BV1oq4y157qs?p=2

roamedit使用代码块:https://www.bilibili.com/video/BV1i64y127bR?p=2

更新了下,现在使用后不用刷新就可以立即替换成功。

快速回复
最新回复 (8)
  • 猫老大 2021-7-8
    0 2
    现在好像替换不了了
  • sheen 2021-7-8
    0 3
    猫老大 现在好像替换不了了
    针对公式,需要成双的$
  • 猫老大 2021-7-8
    0 4
    sheen 针对公式,需要成双的$
    好嘞,已经解决了,感谢!
  • Biomaker 2021-7-9
    0 5
    厉害
  • zhangy 2021-8-4
    2 6

    有一个小bug,在一个bullet中同时有$与$$标记时替换就会失效了,更坑的是hardy的提醒在这时也失效了,看来都忽略了这种情况,不知道是不是我的用法太奇葩了。总之简单修改了一下代码,可以考虑更新一下。

     NHook.add({
        after_nodemenu_run() {
            plugin.menu.addItems("node",{
                meijin: {
                     label: "$变成$$",
                     icon: "home",
                     action() {
                       let tt = this.nv.dom.querySelectorAll(".node-text");
                        for(let i = 0;i < tt.length;i++){
                            var cc =  tt[i].nv.oriText; 
                            if(/\$/.test(stripTags(cc))){
                                    let vns = cc.replace(/\$/g,"$$$$");
                                    tt[i].nv.setOriText(vns);                                   
                            }else{
                                continue;
                            }              
                        }
                      let tt2 = this.nv.dom.querySelectorAll(".node-text");
                        for(let i = 0;i < tt2.length;i++){
                            var cc =  tt2[i].nv.oriText; 
                            if(/\$\$\$\$/.test(stripTags(cc))){
                                    let vns = cc.replace(/\$\$\$\$/g,"$$$$");
                                    tt2[i].nv.setOriText(vns);                                   
                            }else{
                                continue;
                            }              
                        }
                           
                     }
                 }
             });
        }
    });
  • sheen 2021-8-4
    0 7
    zhangy 有一个小bug,在一个bullet中同时有$与$$标记时替换就会失效了,更坑的是hardy的提醒在这时也失效了,看来都忽略了这种情况,不知道是不是我的用法太奇葩了。总之简单修改了一下代码,可以考虑更新 ...
    公式里不会有单个$吧
  • zhangy 2021-8-5
    0 8
    sheen 公式里不会有单个$吧
    意思是同时用单个$和两个$$标记公式的情况,原版的两个$$也是标记公式的。主要是用公式识别时经常会有这种情况。原版如果用行内公式和行间公式也会有这种情况出现
  • sheen 2021-8-6
    0 9
    zhangy 意思是同时用单个$和两个$$标记公式的情况,原版的两个$$也是标记公式的。主要是用公式识别时经常会有这种情况。原版如果用行内公式和行间公式也会有这种情况出现
    昨天试了很赞,主要我没用公式,所以想得不会很周全
返回