-
思源笔记
23126 引用 • 93126 回帖 • 1 关注
思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。
融合块、大纲和双向链接,重构你的思维。
-
Q&A
8508 引用 • 38773 回帖 • 153 关注
提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。
相关帖子
-
wilsons • • 2付费者 捐赠者
补充说明:
该贴不再维护,有需要的用户请移步至 批量导入文档到数据库 0.0.6 版全新发布
关于一键将所有子文档都添加到数据库中,今天我试着实现了这个功能。
代码如下
使用方法:
把上述代码粘贴到嵌入 SQL 代码块中即可(任意文件都可),即输入{{}}后在弹出的输入框中填入即可。
然后修改变量
docBlockId
为你要导入的父文档块 id,变量dbBlockId
为你要导入的数据库的块 id。变量docsSql
为你要查询的 SQL 语句逻辑,请根据实际情况修改,详情请看代码注释。然后,执行结果如下,然后重新打开或按 F5 刷新数据库所在页面即可查看到导入结果。
注意事项:
- 数据导入有风险,请做好备份工作再进行尝试。
- 数据量巨大时可能存在性能问题。
再次提醒!!!请在新空间测试无误后使用,使用前请做好备份!!!
-
- 其他回帖
-
- 光标问题,先确定是否脚本引起的问题,新空间测试排除干扰项。如果确定有问题,请给出问题的详细描述和重现步骤。另外,脚本已更新到 version 0.0.5,试试是否有问题。
- 关于排除后代文档问题,首先,这个脚本并没有限制导入的内容,导入的内容由你的 SQL 查询决定的,即可以是文档内容,也可以是其他等。这里,你要想实现只导入直接子文档,而不导入后代子文档的话,可以在 SQL 中添加查询条件
and (LENGTH(path) - LENGTH(REPLACE(path, '/', ''))) / LENGTH('/') <= 2
来实现,不过我在 0.0.5 版本中默认加了这个功能,所以,你只需要把变量 const maxLevel 设置为 2,即 const maxLevel = 2 即可。注意,这个层级是从父文档开始算 1 级,然后往后嵌套最大层级数。
再次重申,这个脚本具体导入数据库的内容,脚本并没限制,由你的 SQL 查询决定的,你可以导入任何你查询到的结果。
另外, @ONIONLYONE @chenhao5418 ,0.0.5 使用官方 api 插入文档到数据库,彻底解决了 0.0.2 中,文档名修改后数据库无法更新名称的问题,并且插入文档后能自动刷新数据库,不再需要手动刷新页面。
0.0.5 注意事项:
- 打开文档或刷新页面时默认不执行脚本,如果想要执行,把
runOnLoad
改为 true 即可 - 执行前弹出确认对话框,关闭的话,把
showConfirm
设为 false 即可 - 新增导入文档的排序方式,默认按照文档树里的顺序导入,如果想按 SQL 查询结果导入,把
sortByTreeOrder
设为 false 即可,该参数仅对导入文档有效,导入普通块无效。 - 新增导入文档的层级,默认 7 级,即从父文档 1 级,开始往下算,默认最大 7 级,如果想修改限制,修改
maxLevel
参数即可。 - 新增自定义备注,即当页面加载后,脚本上显示的提示文字,修改
memo
参数可自定义。 - 由于 0.0.5 抛弃了修改 json 的方式,使用官方 api 导入数据库,因此没有未知风险。但由于官方 api 没有统计成功和失败的文档数,因此结果只显示导入的文档数,不过一般不会失败,已导入的会忽略。
后续可能新增功能:
- 可以把修改过的代码保存为模板,下次直接通过斜杠命令 =》模板 =》你保存的模板名直接打开,不用再复制粘贴。
- 执行前的预览和确认
- 从模板加载时,可根据需要弹出输入文档块 id 和数据库 id 的输入框,然后执行完后删除嵌入块即可,适合临时使用。
1 回复 -
一键添加到数据库的话,可以考虑:
1: quicker 动作;
插入子文档到数据库 - by 浅沧 - 动作信息 - Quicker (getquicker.net)
2: listChildDocs 挂件;
1 回复 -
哈哈,感谢建议!先用着,做插件和解决问题复杂度完全不一样。
就像产品和 demo 的区别,要做成产品就要通用,完善,兼容好,体验好,持续维护等。
而,demo 或临时解决方案是针对某一问题的。
可能你花 10% 的时间就能解决问题,但如果要把解决方案做成产品要花 80% 以上甚至更多的时间才行。
而且,业余做插件不易,我之前曾在空闲和有兴趣的时候做过不少插件(非思源的),后来发现维护和精力是个难题。如果不维护感觉不负责,维护的话有时实在精力有限。
所以,我觉得如果业余做插件,精心维护好一两个就足矣,多了真应付不来,毕竟现在各类软件都升级很快,不维护,很快就各种问题了。
借着这个问题,突然想到了这些,说一下自己的浅见,不一定正确哈 😄 。
- 查看全部回帖