Release Notes 0.4.0
Breaking Changes
sourceNoteFolder and localSourceNoteFolder are deprecated
The fixed-folder settings sourceNoteFolder and localSourceNoteFolder have been replaced by configurable path templates:
| Deprecated Setting | Replacement |
|---|---|
sourceNoteFolder
| librarySourceNotePathTemplate
|
localSourceNoteFolder
| localSourceNotePathTemplate
|
Migration: Existing sourceNoteFolder / localSourceNoteFolder values in data.json are preserved but no longer used at runtime. To replicate your old folder layout, set the path template to include your folder. For example, if sourceNoteFolder was "MyNotes", set librarySourceNotePathTemplate to:
MyNotes/@{{citationKey | default: title | default: key}}
The old settings will be removed in a future release.
New Features
Configurable Note Path Templates
Source note file paths are now fully customizable using LiquidJS templates. Previously, note paths were hardcoded to a fixed <folder>/<libraryName>/@<citationKey>.md pattern. You can now define your own path structure using any metadata field from your Zotero items or local files.
New settings:
- Library Source Note Path Template — Controls where Zotero source notes are created.
Default:Source/{{libraryName}}/@{{citationKey | default: title | default: key}} - Local Source Note Path Template — Controls where local attachment source notes are created.
Default:Source/Local/@{{basename}}
Examples:
# Organize by year and author
{{year}}/{{creators[0].name}}/@{{citationKey}}
# Organize by item type
References/{{itemType}}/{{citationKey}}
# Use publication title
Journals/{{publicationTitle | default: "Uncategorized"}}/{{citationKey}}All template variables from the source note template (title, creators, date, DOI, tags, etc.) are available for path construction. Values are automatically sanitized for filesystem safety, with date fields (date, dateAdded, dateModified, accessDate) preserved as-is to keep ISO 8601 formatting intact.
Template Testing View
A new Template tab in the Activity Center lets you interactively develop and test templates without modifying any files.
Item Paths in Template Context
A new itemPaths variable is available in both source note and path templates, providing access to resolved attachment paths for the current item.
Embeddable Markdown Editor Improvements
The reusable markdown editor component gained several new options:
sourceMode— Render in plain source mode instead of live preview.readOnly— Make the editor non-editable.showLineNumbers— Display line numbers in the gutter.
Internal Improvements
- Unified naming: "NoteService" →
LibraryNoteService, "TemplateService" →LibraryTemplateService. API surfaces renamed accordingly (workerBridge.note→workerBridge.libraryNote). - Extracted
BaseItemSearchModalfromZoteroSearchModalfor reuse. NewItemPickerModalandFilePickerModalfor item/file selection. - Path sanitization preserves date fields to avoid mangling ISO 8601 strings.
- Updated AGENTS.md with
.zf.jsonsidecar documentation.