suka233 / siyuan-kmind-plugin

思源kmind思维导图插件
https://afdian.com/a/suka233
MIT License
53 stars 0 forks source link

插件和挂件能否联动 #2

Closed yarzzc closed 1 year ago

yarzzc commented 1 year ago

插件和挂件联动:

  1. 挂件生成的文件可以被挂件管理
  2. 挂件产出的文件可以被挂件用于在文章中进行展示
  3. 一处修改联动变更?
suka233 commented 1 year ago

很好的想法,技术上实现比较麻烦,但是应该能实现,但是有些缺陷目前可能无法避免:因为挂件的文件数据是交由思源管理的,默认存储于/data/assets文件夹下,由于是思源管理,所以挂件的文件名是随机的id,并且不能随意更改,不然就会进入思源的未引用资源列表。 所以如果想让插件管理挂件的文件内容,那么由于挂件的导图文件名称是随机id,所以看起来不会太直观

解决方案我想到了两个: 一是利用插件,做一个挂件kmind文件对应挂件所在文档的标题的映射,缺点是,映射并非实时的,并且量大后,可能会影响程序运行效率 二是重构挂件kmind的存储位置至插件kmind目录下,缺点是,用户删除kmind挂件的时候,该挂件对应的文件资源不会进入思源的未引用资源列表,长期增删kmind挂件的话,可能会有大量数据冗余

yarzzc commented 1 year ago

感觉第二个好接受一些,但是可能不是所有人都能接受,那么能不能先来个低配版。插件和挂件各自的大功能都不动。给挂件一个选择插件中生成的文件的机会,挂件还是按照原有挂件的形式,但是我可以在新建一个挂件后,通过导入插件中做好的导图,作为副本插入到文档中。这样就可以产生一些联动了,同时不会出现太多不可预知的问题,因为没有强行关联,唯独舍弃的功能点是一处修改到处变更。我觉得在没有更好的方案时,是不是这样就已经有了很大的提升?

suka233 commented 1 year ago

我已经更新了一个kmind挂件版本,该版本的挂件已经支持导入功能,所以当然也能导入插件生成的导图文件,插件生成的导图文件具体路径在: 你的思源工作目录的\data\storage\petal\kmind 目录下,你可以试试呢

yarzzc commented 1 year ago

感谢大佬!