Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add menu Match Attanger Attachment #206

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

Fmajor
Copy link

@Fmajor Fmajor commented Nov 28, 2024

在Item的右键菜单上增加了一个新的选项Match Attanger Attachment, 它与原来的Match Attachment的区别为

  • Match Attachment: 在Source Path目录下(不包括子目录)搜索所有的.pdf.caj文件,然后对于所有选中的Item, 使用匹配文件名和标题(计算字符距离)的方法,匹配并添加某个文件作为附件。这种方法适合添加其他来源的文件。
  • Match Attanger Attachment: 对于所选的条目,计算attanger进行rename之后的文件名,然后到SourcePath/subfolderPath/AttangerRename.ext, 其中ext为配置项Types of Attachments for Renaming/Moving中的所有。如果存在这个文件,且这个文件还没有作为Item的Attachment, 则进行添加。

什么场景需要这个选项

为了解释这个需求,我们首先来分析以下我们日常使用zotero-attanger的场景

  • 同步My Library中的文件: 我们设置 Destination Path是为了更加方便的管理zotero附件。我们可以把附件文件夹通过nextcloud等私有或者其他商业云盘进行同步,仅使用zotero的账户来同步Item元数据。这样在另外一台机器上,我们在登录zotero同步元数据之后,只需要设置zotero的Linked Attachment Base Directory 即可直接使用同步过来的附件了。
  • 但是对于Group Library, 这样做就不行了,因为Group Library不支持Linked File, 于是我们使用以下方法来实现等效的附件同步
    • 在zotero设置中,取消所有文件同步选项(Sync->File Syncing), 我们使用额外的云盘直接同步zotero-attanger的Destination Path
    • 设置zotero-attanger的Source PathDestination Path,还有zotero的Linked Attachment Base Directory为同一目录,并在云盘服务中共享这个文件夹
    • My Library中创建与Group Library同名的collection(和subcollection结构)
    • 日常直接添加item到My Library中的这个collection中,zotero-attanger会自动管理附件信息,并写入Destination Path
    • My Library中的这个collection中的Item,复制到对应的Group Library中, 我们使用group来同步Item的元数据
    • 在另外一台电脑上
      • 配置共享云同步文件夹,设置zotero-attanger的Source PathDestination Path,还有zotero的Linked Attachment Base Directory都为此文件夹。
      • 使用其他组成员的zotero帐号同步Group Library, 他需要在他的My Library中手动建立与Group Library同名的collection和subcollections结构。并从Group Library中手动复制条目,这时复制过来的条目是不包含附件信息的
      • 选中所有缺少附件的Item, 右键,使用我们这个补丁实现的Match Attanger Attachment,更新附件信息
      • 至此,我们实现了等效的Group Library的附件同步

总结

Match Attanger Attachment是为了直接添加由zotero-attanger自己生成的附件,可以用来辅助实现等效的Group Library的附件文件同步

@Fmajor
Copy link
Author

Fmajor commented Nov 28, 2024

另外建议在主README.md中添加以下两个使用场景的相应配置方法

  1. 使用zotero帐号同步My library文章条目+使用云盘工具同步pdf存储文件夹
  • 在本地创建存放所有zotero pdf的文件夹,我们计为$ZoteroAttangerRootFolder
  • 配置zotero
    • Sync:
      • Data Syncing: 填写帐号信息进行登录
      • File Syncing: 我们通过第三方云盘进行附件文件同步,所以以下两项都不需要
        • Sync attachment files in My Library using: 取消选择(disable)
        • Sync attachment files in group libraries using Zotero storage: 取消选择(disable)
    • Advanced:
      • Data Directory Location: 设置为$ZoteroAttangerRootFolder
    • Attanger:
      • Source Path
        • Root Directory: 设置为$ZoteroAttangerRootFolder
      • Destination Path:
        • Root Directory: 设置为$ZoteroAttangerRootFolder
        • Subfolder: {{collection}} (默认就是这个,在所有的客户端上都需要保持一致)
        • Filename: Customize Filename Format: (在所有的客户端上都需要保持一致)
  • 配置你的云盘,同步$ZoteroAttangerRootFolder文件夹
  • 登录zotero帐号,同步文章信息

然后在其他的机器上,在你进行相同的配置之后,完成了zotero文章条目的同步和网盘$ZoteroAttangerRootFolder的同步之后,就可以直接双击条目打开pdf了。

  1. 使用zotero帐号同步Group Libraries文章条目+使用云盘工具同步pdf存储文件夹
  • 我们仅使用Group Libraries来同步文章条目信息,然后手动在My Library创建与Group Libraries中的Group Name相同名称的文件夹,并保持所有子文件夹结构。每次Group Libraries或者My Library中对应条目更新后,手动更新这两个目录(在本地添加新的条目就手动复制到Group Libraries中去。而如果Group Libraries被其他人更新之后就手动复制他更新的条目到My Library中的对应项中)。然后可以把你的$ZoteroAttangerRootFolder文件夹进行网盘共享,或者仅共享$ZoteroAttangerRootFolder/$GroupName这个单独的群文件夹。
  • 本质上和情形1是相同的,我们使用My Library作为中转,等效同步了Group Libraries中的附件

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant