为知笔记吧 关注:9,442贴子:71,718
  • 19回复贴,共1

有没有批量的笔记内容替换功能?

只看楼主收藏回复

有没有批量的笔记内容替换功能?或者有没有大佬开发个插件啊


IP属地:重庆1楼2019-10-21 13:51回复
    你什么客户端?Windows


    IP属地:四川来自Android客户端5楼2019-10-21 21:03
    收起回复
      广告
      立即查看
      使用方法参考我前面提到的帖子:
      // 批量修改选中文件夹中所有文档
      var documents = objApp.Window.CategoryCtrl.SelectedFolder.Documents
      var docsNo = documents.Count
      for (var i = 0; i < docsNo; i++) {
      var doc = documents.Item(i);
      // 获取原有文本
      htmlContent = doc.GetHtml()
      // 利用正则表达式批量替换文本
      // 把/api/g中的api更改成你想要修改的文字,api!!!!替换成修改后的文字
      htmlContent = htmlContent.replace(/api/g, "api~~~~~~")
      // 保存修改后的内容
      doc.UpdateDocument3(htmlContent, 0)
      }


      IP属地:四川7楼2019-10-26 09:18
      收起回复
        使用GetHtml()获取到html内容,替换文本后,再使用SetHtml(htmlContent),这样只保存html文件,不涉及到图片的再保存就可以。UpdateDocument3方法即保存html,也对图片进行保存,但Html中<img> src是个相对路径,而UpdateDocument3方法没有将图片的绝对路径传过去,所以会造成保存图片失败,如果您有修改图片方法的需求,可以再讨论这部分实现。目前将保存笔记的方法修改成SetHtml(htmlContent)就可以了


        IP属地:重庆8楼2019-11-07 19:05
        回复
          如果想实现多篇笔记同时进行文本替换,参考@萨拉查·帕利略和为知客服的方法,总结如下:
          1. 开启 Debug 模式,参考文档:
          http://www.wiz.cn/manual/plugin/course/webkit-notice.html
          增加命令行参数:Wiz.exe /Debug=1 (注意.exe和/Debug中间有一个空格)。可以直接给快捷方式增加参数:

          2. 在文档列表按 Ctrl 同时选中你想替换内容的文档。
          3. 菜单 > 工具 > 全局插件开发工具 > Console 栏
          4. 将下面代码中的相应的部分改成你自己想要替换和被替换的文本。
          ```
          var documents =objWindow.DocumentsCtrl.SelectedDocuments
          var docsNo = documents.Count
          for (var i = 0; i < docsNo; i++) {
          var doc = documents.Item(i);
          // 获取原有文本
          htmlContent = doc.GetHtml()
          // 利用正则表达式批量替换文本
          // 把/api/g中的api更改成你想要修改的文字,api!!!!替换成修改后的文字
          htmlContent = htmlContent.replace(/被替换的文本/g, "要替换的文本")
          // 保存修改后的内容
          doc.SetHtml(htmlContent)
          }
          ```
          5. 将修改好的代码输入控制台,回车执行。


          IP属地:重庆10楼2019-11-07 19:17
          回复