vnote icon indicating copy to clipboard operation
vnote copied to clipboard

严重!“从文件夹新建笔记本”功能会丢失附件索引

Open Fxiao1 opened this issue 3 years ago • 6 comments

版本

  • 电脑: 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(否则不知道会不会造成管理混乱)。文档中引用的位置同样也需要修改了。。。

Fxiao1 avatar May 31 '22 09:05 Fxiao1

从文件夹创建笔记本 的时候,选好文件夹后,在 选择文件 那部分你勾选上了 选择全部 吗?

feloxx avatar Jun 01 '22 15:06 feloxx

从文件夹创建笔记本 的时候,选好文件夹后,在 选择文件 那部分你勾选上了 选择全部 吗?

勾选了

稍后我上传附件,并详细描述下如何复现吧

Fxiao1 avatar Jun 02 '22 02:06 Fxiao1

奇怪了,github一直提示图片和附件上传失败了(Something went really wrong. and we can't process that file. Try again)

要不您能否麻烦加下我微信(fx_309),我在微信上发送说明和测试文件给你?或者留个邮箱,我通过邮件发送过去

Fxiao1 avatar Jun 02 '22 03:06 Fxiao1

可以先把 复现步骤 详细说一下。

feloxx avatar Jun 03 '22 15:06 feloxx

环境

vnote 3.13.0

复现步骤

创建测试文件夹

  1. 在vnote中创建一个文件夹“测试”
  2. 在文件夹中创建一篇笔记(“临时.md”),并引入图片和附件,用于测试
  3. 在资源管理器中将刚才的“测试”文件夹整个复制出来,作为测试素材

测试“从文件夹新建笔记本”

  1. 点击“笔记本”-->“从文件夹新建笔记本”,选择刚才创建的测试素材。
  2. 参数“选择全部”勾选与否无所谓
  3. 创建好的笔记本中可以看到刚才那篇笔记,虽然它的附件可以被点开,但是笔记进入编辑模式后, vnote的附件管理按钮点击后的弹窗那里是空的。说明附件并没有被vnote管理到。
  4. 检查该笔记同位置的vx.json文件,可以看到,文档描述的”attachment_folder“属性的值为空。
  5. 此时如果从vnote中删除该篇笔记,然后从windows资源管理器打开该位置,就会发现附件依然还在原位置,并没有被vnote随着笔记的删除(移入回收站)而同步删除(移入回收站)

测试“导入文件夹”

  1. 点击“导入”-->“导入文件夹”按钮,选择最初创建的测试素材。
  2. 导入成功后,检查验证的时候,可以看到跟测试“从文件夹新建笔记本”一样的效果。

测试直接通过windows资源管理器复制到目标位置,然后通过vnote识别到后“加入索引”

  1. 将测试素材文件夹通过windows资源管理器复制粘贴,放置到vnote笔记中的某一位置
  2. 在vnote中选择”识别并添加到索引中“
  3. 检查验证的时候,可以看到跟测试“从文件夹新建笔记本”一样的效果。

Fxiao1 avatar Jun 03 '22 17:06 Fxiao1

好的,可以复现了。这是个bug后续我们修复下。

feloxx avatar Jun 04 '22 03:06 feloxx