严重!“从文件夹新建笔记本”功能会丢失附件索引
版本
- 电脑: Windows 10 专业版 21H2
- vnote: 3.12.888
目的
想将现有笔记本中的一个文件夹下的所有知识无损分享给别人(对方也使用vnote)。
描述
从已有笔记本中复制一个文件夹出来后,无论是
- 通过“从文件夹新建笔记本”创建了一个新笔记本
- 通过“导入文件夹”到现有的笔记本中
- 直接通过windows资源管理器复制到目标位置,然后通过vnote识别到后“加入索引”
均会丢失附件文件夹的索引。所有的 vx.json 均被重写了,并且attachment_folder的值全变成了空
唯一能成功的方法
只能是将文件夹复制到预定位置,然后修改该位置下的“vx.json”,在“folders”节点中加入刚复制进来的文件夹
预期
要么在用户使用“导入文件夹”、“从文件夹创建笔记本”、“导入到索引”等功能的时候提示用户“将会丢失目录中可能已有的索引”,并指引用户使用手动修改预期目录索引的方式手动引入该文件夹。防止用户在不知情的情况下导入了新的文件夹,但是附件全部脱离了vnote的管理,从而会造成如果文档移动、删除,但该文档引用的附件不会随之移动和删除的情况,最后结构混乱,多了一堆没有任何引用的僵尸附件。
要么完善以上三种引入外部文件的逻辑,如果已有索引,则尝试解析已有的索引,最好还能够让用户确认或修改附件文件夹名称,因为3.0以前的附件叫_v_attachments,3.0以后的叫vx_attachments,并将附件文件夹名称统一更名为vx_attachments(否则不知道会不会造成管理混乱)。文档中引用的位置同样也需要修改了。。。
从文件夹创建笔记本 的时候,选好文件夹后,在 选择文件 那部分你勾选上了 选择全部 吗?
从文件夹创建笔记本的时候,选好文件夹后,在选择文件那部分你勾选上了选择全部吗?
勾选了
稍后我上传附件,并详细描述下如何复现吧
奇怪了,github一直提示图片和附件上传失败了(Something went really wrong. and we can't process that file. Try again)
要不您能否麻烦加下我微信(fx_309),我在微信上发送说明和测试文件给你?或者留个邮箱,我通过邮件发送过去
可以先把 复现步骤 详细说一下。
环境
vnote 3.13.0
复现步骤
创建测试文件夹
- 在vnote中创建一个文件夹“测试”
- 在文件夹中创建一篇笔记(“临时.md”),并引入图片和附件,用于测试
- 在资源管理器中将刚才的“测试”文件夹整个复制出来,作为测试素材
测试“从文件夹新建笔记本”
- 点击“笔记本”-->“从文件夹新建笔记本”,选择刚才创建的测试素材。
- 参数“选择全部”勾选与否无所谓
- 创建好的笔记本中可以看到刚才那篇笔记,虽然它的附件可以被点开,但是笔记进入编辑模式后, vnote的附件管理按钮点击后的弹窗那里是空的。说明附件并没有被vnote管理到。
- 检查该笔记同位置的
vx.json文件,可以看到,文档描述的”attachment_folder“属性的值为空。 - 此时如果从vnote中删除该篇笔记,然后从windows资源管理器打开该位置,就会发现附件依然还在原位置,并没有被vnote随着笔记的删除(移入回收站)而同步删除(移入回收站)
测试“导入文件夹”
- 点击“导入”-->“导入文件夹”按钮,选择最初创建的测试素材。
- 导入成功后,检查验证的时候,可以看到跟测试“从文件夹新建笔记本”一样的效果。
测试直接通过windows资源管理器复制到目标位置,然后通过vnote识别到后“加入索引”
- 将测试素材文件夹通过windows资源管理器复制粘贴,放置到vnote笔记中的某一位置
- 在vnote中选择”识别并添加到索引中“
- 检查验证的时候,可以看到跟测试“从文件夹新建笔记本”一样的效果。
好的,可以复现了。这是个bug后续我们修复下。