Checklist
Description
This issue aims to coordinate efforts to introduce a new TagStudio data folder structure in addition to the current .TagStudio data folder method with the following additional benefits:
- Independent data location from library contents
- Multi-root folder support (technically can be brought to existing libraries, but it would be weird)
- Custom library name (likely brought to existing library type as well)
Solution
When creating a new TagStudio library, the user could be presented with two options:
Current/Simple/"Vault-Style"/Embedded
"Your TagStudio library data lives inside an existing folder with your content. Only content in this folder is included in your TagStudio library, and moving the content folder keeps your TagStudio data with it.
You can choose to convert to an "Independent" library style at any time."
- The
.TagStudio folder is treated as the library folder.
- Library contents are read from the outer folder.
- A folder and its contents are effectively "opened" as a complete TagStudio Library, similar to an Obsidian vault.
Content Folder/
├─ .TagStudio/
│ ├─ ts_library.sqlite (references outer folder only)
│ ├─ .ts_ignore
│ ├─ backups/
│ ├─ macros/
│ ├─ thumbs/
New/Advanced/Independent
"Your TagStudio library data is stored independently from your content folder(s). This option lets you specify multiple content folders as sources for your library, but moving or renaming these content folders will require you to re-link them inside the app. Moving the data folder itself will not require a re-link."
- A custom location is specified for the library folder.
- Folders for library contents need to be manually specified.
- An independent save folder is used to store all TagStudio save data that references a particular set of content folder(s). Can be thought as similar to a Minecraft save folder, if you want.
Content Folder 1/
Content Folder 2/
TagStudio Data Folder/
├─ ts_library.sqlite (references specified content folders)
├─ .ts_ignore
├─ backups/
├─ macros/
├─ thumbs/
As you can see, a lot of the terminology I have in mind is up in the air. There should be a clear distinction between a "TagStudio library data" folder and "library contents" folders going forward, while also not stirring up confusion for the existing structure. Specific terms can be decided upon in time.
Alternatives
-
If the .TagStudio folder was retained for root libraries outside of the immediate outer folder, it would lose portability with the illusion of keeping it and only raise confusion as to what content is explicitly added and what is implicitly added.
-
If all libraries are forced to use the independent folder system, then the benefits of keeping a .TagStudio folder inside the contents folder is universally lost for nothing but the sake of consistency.
Checklist
Description
This issue aims to coordinate efforts to introduce a new TagStudio data folder structure in addition to the current
.TagStudiodata folder method with the following additional benefits:Solution
When creating a new TagStudio library, the user could be presented with two options:
Current/Simple/"Vault-Style"/Embedded
"Your TagStudio library data lives inside an existing folder with your content. Only content in this folder is included in your TagStudio library, and moving the content folder keeps your TagStudio data with it.
You can choose to convert to an "Independent" library style at any time."
.TagStudiofolder is treated as the library folder.New/Advanced/Independent
"Your TagStudio library data is stored independently from your content folder(s). This option lets you specify multiple content folders as sources for your library, but moving or renaming these content folders will require you to re-link them inside the app. Moving the data folder itself will not require a re-link."
As you can see, a lot of the terminology I have in mind is up in the air. There should be a clear distinction between a "TagStudio library data" folder and "library contents" folders going forward, while also not stirring up confusion for the existing structure. Specific terms can be decided upon in time.
Alternatives
If the
.TagStudiofolder was retained for root libraries outside of the immediate outer folder, it would lose portability with the illusion of keeping it and only raise confusion as to what content is explicitly added and what is implicitly added.If all libraries are forced to use the independent folder system, then the benefits of keeping a
.TagStudiofolder inside the contents folder is universally lost for nothing but the sake of consistency.