一种新的以用户为中心的文档管理系统
源代码:
http://www.gitpp.com/robotos/tagstudio

目标
实现一个可移植、注重隐私、开放、可扩展且功能丰富的文件组织和重新发现系统。
提供强大的组织方法,特别是标签组合或“可标记标签”的概念。
创建这样一个系统的实现,该系统能够抵御用户在程序之外的操作(修改、移动或重命名文件),同时不会给用户带来强制附加文件的负担,也不会要求他们更改现有的文件结构和工作流程。
支持跨不同平台、多用户设置以及拥有大型(数 TB)库的广泛用户。
让这该死的东西看起来也不错。现在是 2024 年,而不是 1994 年。
优先事项
这个概念。即使 TagStudio 作为一个项目或应用程序失败了,我也希望这个想法能够在一个优秀的项目中继续存在。上面概述的目标不会引用 TagStudio 一次 - TagStudio才是引用目标的对象。
系统。前端和实现可以有所不同,正如它们应该的那样。元数据管理系统的核心底层应该是不同前端、程序和操作系统之间的互操作性。随着开发的继续,这个标准的实现应该得到解决。这为改进和多样化的客户端、与第三方应用程序的集成等打开了大门。
应用程序。如果不出意外的话,TagStudio 应用程序将成为该元数据管理系统的第一个(也是迄今为止唯一一个)实现。这有责任公正地表达这个想法,并展示用户文件管理方面的可能性。
(名称。)我认为这对于应用程序或客户端来说很好,但对于系统或标准来说并没有真正意义。我想这会随着时间的推移而发展。
目前的特点
创建以系统目录为中心的库/保管库。库包含一系列条目:文件的表示形式与元数据字段相结合。每个条目代表图书馆目录中的一个文件,并链接到其位置。
将元数据添加到您的库条目,包括:
姓名、作者、艺术家(单行文本字段)
描述、注释(多行文本字段)
标签、元标签、内容标签(标签框)
创建由名称、别名列表和“子标签”列表组成的丰富标签 - 这些标签从中继承值。
根据标签、元数据或文件名搜索条目(使用
filename: <query>)条目的特殊搜索条件是:
untagged/no tags和empty/no fields。
笔记
有关项目本身的更多信息,请参阅常见问题解答部分和其他文档。
安装
警告
TagStudio 目前仅经过验证可在 Windows 上运行。我在 Linux 上运行 Qt 代码时遇到了问题,但我不知道这些问题有多严重。不同操作系统之间的文件名和数据库的可移植性也可能存在错误。
先决条件
Python 3.12
创建虚拟环境
如果在 Linux 上从 .sh 脚本启动,请跳过此步骤。
在根存储库目录中,创建python虚拟环境:
python3 -m venv .venv激活您的环境:
带 Powershell 的 Windows:
.venv\Scripts\Activate.ps1带命令提示符的 Windows:
.venv\Scripts\activate.batLinux/macOS:
source .venv/bin/activate
安装所需的软件包:
pip install -r requirements.txt
在此处了解有关设置虚拟环境的更多信息。
发射
笔记
根据您的系统,Python 可能被称为python、py、python3或py3。这些指令使用别名python3。
可选参数
--open <path>/-o <path>启动时打开的 TagStudio 库文件夹的路径。
视窗
要启动 TagStudio,请启动该start_win.bat文件。您可以修改此 .bat 文件或创建快捷方式并根据需要添加一个或多个其他参数。
tagstudio\tag_studio.py或者,加载虚拟环境后,从终端运行 python 文件。如果您位于项目的根目录中,只需运行python3 tagstudio/tag_studio.py.
警告
Linux 和 macOS 上的 TagStudio 目前可能无法正常运行。如果您尝试运行它来帮助测试、调试和提高兼容性,那么请继续前进!
苹果系统
加载虚拟环境后,从终端运行“tagstudio/tag_studio.py”中的 python 文件。如果您位于项目的根目录中,只需运行python3 tagstudio/tag_studio.py.以后启动程序时,记得每次启动前都激活虚拟环境(目前正在研究更简单的方法)。
Linux
运行“TagStudio.sh”脚本,程序应该启动!(确保脚本被标记为可执行)。请注意,从终端外部启动脚本不会启动包含任何调试或崩溃信息的终端窗口。如果您希望查看此信息,只需从终端直接使用 启动 shell 脚本即可sh TagStudio.sh。
尼克斯操作系统
使用提供的flake.nix文件通过运行创建并进入工作环境nix develop。然后,运行上面的TagStudio.sh脚本。
用法
创建/打开库
打开 TagStudio 后,首先创建一个新库或使用菜单栏中的“文件”->“打开/创建库”打开现有库。如果所选目录尚不存在,TagStudio 将自动从所选目录创建一个新库。创建新库后,TagStudio 将自动扫描您的文件夹中的文件并将其添加到您的库中(在此过程中不会移动任何文件!)。
刷新图书馆
为了扫描新文件或文件更改,您需要手动转到“文件”->“刷新目录”。
笔记
将来,库刷新也将在后台自动完成,或者在应用程序启动时另外完成。
向条目添加元数据
要将元数据字段添加到文件条目,请首先单击右侧预览面板中文件预览下方的“添加字段”按钮。从下拉菜单中,选择您要添加到条目的元数据字段的类型。
编辑元数据字段
文本行/文本框
将鼠标悬停在该字段上并单击铅笔图标。从那里,在弹出的对话框中添加或编辑文本。
标签盒
单击标签列表末尾的“+”按钮,然后搜索要添加到新弹出对话框中的标签。单击要添加的标签旁边的“+”按钮。或者,搜索标签后,按 Enter/Return 键添加列表中的第一项。再次按 Enter/Return 键关闭对话框
警告
键盘控制和导航目前存在很多问题,但将在未来版本中得到改进。
创建标签
要创建新标签,请从菜单栏中单击“编辑”->“新标签”。从那里,输入标签名称、简写名称、由换行符分隔的任何标签别名、任何子标签和可选颜色。
标签简写是一种别名,在屏幕空间更有价值的情况下显示(例如作为其他标签的子标签)。
别名是标签的备用名称。这些使您可以搜索除确切标签名称之外的术语,以便再次找到该标签。
子标签是指该标签是其子标签的标签。换句话说,此部分下的标签是该标签的父标签。例如,如果您有一个节目中某个角色的标签,您可以将该节目设为该角色的子标签。这将在应用程序的大多数区域中显示为“角色(显示)”。该列表中的第一个标签用作括号中显示的标签以进行规范。
颜色下拉列表允许您选择该标签显示的可选颜色。
编辑标签
要编辑标签,请右键单击预览窗格标签字段中的标签,然后选择“编辑标签”
警告
目前无法查看您在库中创建的所有标签。这是未来版本的首要任务。
重新链接重命名/移动的文件
不可避免地,库中的某些文件将被重命名、移动或删除。如果文件已被重命名或移动,TagStudio 会将缩略图显示为带有十字的红色标签(此图标也用于缩略图损坏的项目)。要重新链接移动的文件或删除这些条目,请转至工具 -> 管理未链接的条目。单击“刷新”按钮扫描您的库中是否有未链接的条目。完成后,您可以尝试“搜索并重新链接”任何未链接的条目到其各自的文件,或者如果原始文件已被删除并且您不再希望将其元数据条目保留在库中,则可以“删除未链接的条目”。
警告
目前没有方法可以将条目重新链接到已重命名的文件 - 只能移动或删除。这是未来版本的首要任务。
警告
如果找到移动文件的多个匹配项(匹配项当前定义为文件名与原始文件名匹配的文件),TagStudio 当前将忽略匹配组。添加用于手动选择的 GUI 以及更智能的自动重新链接是未来版本的首要任务。
保存图书馆
退出程序时将保存库。要手动保存,请从菜单栏中选择“文件”->“保存库”。要保存库的备份,请从菜单栏中选择“文件”->“保存库备份”。
半实现的功能
修复重复文件
加载由dupeGuru生成的 .dupeguru 文件,并跨标记为重复的条目镜像元数据。镜像完成后,返回 dupeGuru 管理重复文件的删除。删除后,使用 TagStudio 中的“修复未链接的条目”功能删除现已删除的文件的重复条目集
警告
虽然此功能很实用,但这是一个相当迂回的过程,并且可以在将来进行简化。
图像拼贴
创建照片和视频的图像拼贴画。
警告
拼贴画尺寸和选项是硬编码的。
宏
根据特定条件自动应用标签和其他元数据。设置将文件添加到库时要运行的特定宏。其中一部分包括根据父文件夹自动应用标签。
警告
宏选项是硬编码的,目前用户根本没有办法与这个(仍然不完整的)系统进行交互。
Gallery-dl Sidecar 导入
导入由gallery-dl生成的 JSON sidecar 数据。
警告
此功能不受任何官方支持或记录。未来它可能会被纳入更大、更通用的 sidecar 导入功能中。

