Releases: PixeroJan/obsidian-storyline
Release list
1.10.62
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.62
Improvements
- Automatic quotation marks — Added an option to automatically replace typed double quotes with the selected quote style.
- Reorganized settings — Related settings are now grouped and ordered to make them easier to find.
Bug Fixes
- Empty book folders are removed after creating a series — The original book folder is now checked and removed after its contents have been moved into the new series folder, while non-empty folders are preserved.
1.10.61
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.61
Bug Fixes
- Dialogue counting no longer treats apostrophes as quotation marks — Apostrophes inside words, such as
don't,James's, and their curly equivalent, are ignored when counting dialogue. Genuine single-quote dialogue remains supported.
1.10.60
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.60
New Features
- Custom Character Roles — The Character Role field now provides a built-in role dropdown with a final Custom role... option for entering one or more custom roles.
- Directional relationships — Character relation rows now include a checked-by-default Two-way relationship checkbox. One-way relations do not create reciprocal entries and are shown with arrows in the Relationship Map and Story Graph.
- Relationship history — Character profiles can record repeated relationship periods in a separate history section. Each period supports a role, target, two-way setting, scene range, or date/time range. Scene endpoints use ordered scene dropdowns with a Custom scene... fallback.
Documentation
- Character relationships and history — Help now documents two-way and one-way relations, directional graph arrows, repeated relationship periods, scene/date anchors, custom scenes, and custom Character Roles.
- Help PDF export — The Help view now has a
PDFbutton that creates an A4-formatted PDF in the vault root. The PDF includes the current StoryLine version and generation date so users can identify outdated copies.
1.10.59
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.59
Bug Fixes
- Dialogue statistics support all configured quotation styles (#254) — Made dialogue counting use only the selected quotation pair, preventing narration from being counted as dialogue when multiple quote conventions appear in a manuscript.
- Custom Codex categories persist across books in a series (#253) — Series books now share their custom category definitions and enabled category list, while unrelated projects retain separate settings.
1.10.58
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.58
New Features
- Scene and chapter range exports (#251) — The Export dialog can now export selected scene sequence numbers or chapter numbers using comma-separated single values and inclusive ranges, such as
1-5, 8, 9, 11, 13-18or1-4, 6, 8. The selection applies across Markdown, Word, PDF, HTML, CSV, and JSON exports, with invalid input rejected before export. - Default status order in Kanban (#252) — Kanban columns grouped by Status now follow StoryLine's built-in progression (
Idea,Outlined,Draft,Written,Revised,Final) followed by custom statuses, instead of alphabetical order.
1.10.57
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.57
Bug Fixes
- Release builds and LocationView lint cleanups — Fixed the manual release workflow's BOM-sensitive
versions.jsonparsing and removed an accidental location render call that caused unsafe-value warnings during linting.
Version 1.10.56
New Features
- Stable book and series identities — New projects receive UUID-based book identities, while series metadata now supports stable UUIDs and ordered book IDs alongside the existing folder-name fields. Existing projects and series are upgraded automatically without breaking legacy metadata or links.
- Quotation mark styles — Added configurable quotation mark styles for dialogue input and dialogue statistics, including straight quotes, curly quotes, guillemets, and corner brackets.
- Manual Codex sorting — Characters and locations can be manually ordered with persistent drag-and-drop sorting. Location hierarchy and reparenting remain supported.
Bug Fixes
- Legacy series membership recovery — Older books nested inside a series folder are recovered from a validated
series.jsonbookOrderentry even when their frontmatter lacks a series identifier. - Book renames no longer move files — Renaming a book changes its display title only; its folder, filename, and existing links remain unchanged.
- Series display-name renames are non-destructive — Renaming a series updates its metadata name without renaming the folder or cascading changes through its books.
- Location hierarchy duplicates — Locations with unresolved or legacy parent references no longer render as duplicate roots or orphan entries.
- Scene notes refresh correctly — Scene note folders are created when needed, and open StoryLine views refresh after notes are written.
1.10.56
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.56
New Features
- Stable book and series identities — New projects receive UUID-based book identities, while series metadata now supports stable UUIDs and ordered book IDs alongside the existing folder-name fields. Existing projects and series are upgraded automatically without breaking legacy metadata or links.
- Quotation mark styles — Added configurable quotation mark styles for dialogue input and dialogue statistics, including straight quotes, curly quotes, guillemets, and corner brackets.
- Manual Codex sorting — Characters and locations can be manually ordered with persistent drag-and-drop sorting. Location hierarchy and reparenting remain supported.
Bug Fixes
- Legacy series membership recovery — Older books nested inside a series folder are recovered from a validated
series.jsonbookOrderentry even when their frontmatter lacks a series identifier. - Book renames no longer move files — Renaming a book changes its display title only; its folder, filename, and existing links remain unchanged.
- Series display-name renames are non-destructive — Renaming a series updates its metadata name without renaming the folder or cascading changes through its books.
- Location hierarchy duplicates — Locations with unresolved or legacy parent references no longer render as duplicate roots or orphan entries.
- Scene notes refresh correctly — Scene note folders are created when needed, and open StoryLine views refresh after notes are written.
1.10.55
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.55
Bug Fixes
- Build output now matches the released main.js artifact — The committed
package-lock.jsonwas pinned to1.10.42whilepackage.jsonhad advanced to1.10.54, so the Obsidian community scanner's clean-room rebuild (vianpm ci) resolved a different dependency tree than the one used to build the uploadedmain.js, producing a byte-different artifact and triggering the "Build output does not match" warning. The lockfile is now regenerated from the currentpackage.jsonsonpm cireproduces the exact release build. Affectspackage-lock.json.
Version 1.10.54
Bug Fixes
-
System JSON writes no longer trigger a recurring autosave loop (#242) — After StoryLine wrote its project
System/*.jsonfiles, those writes emitted new vaultmodifyevents that re-armedscheduleWritingStatsSave(), rewriting the four System JSON files roughly every 60 seconds while Obsidian sat idle. The vaultmodifyhandler now skips files under the active project'sSystem/folder before scheduling a writing-stats save, so the plugin's own writes can't feed back into the timer.writeSystemJson()additionally compares the serialized JSON with the existing file contents and skips the write when they're identical, so the 5-minute safety-net interval (from #238) no longer rewrites unchanged files. Affectsmain.ts. -
Character count setting now applies to the Manuscript view (#240) — With the "Default project language" set to a CJK locale and "Count unit for scene lengths" set to Characters, the Manuscript view footer still calculated and displayed words. The footer (both the initial render and the live
updateFooterrefresh) now honourssettings.countUnit, summingcharcountand labelling the resultcharswhen the unit ischars— consistent with the Board, Timeline, and Stats views. Affectsviews/ManuscriptView.ts. -
Em dash (
—) no longer counted as a word (#243) —tokenizeWordssplit on whitespace and kept every non-empty token, so a standalone em dash (commonly used to mark dialogue) was counted as a word, inflating scene word counts relative to Obsidian's native counter. Tokens now must contain at least one letter or digit (/\p{L}|\p{N}/u), matching Obsidian's behaviour. This affected every view and the persisted frontmatter word count, not just the Manuscript view. Affectsutils/locale.ts.
1.10.54
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.54
Bug Fixes
-
System JSON writes no longer trigger a recurring autosave loop (#242) — After StoryLine wrote its project
System/*.jsonfiles, those writes emitted new vaultmodifyevents that re-armedscheduleWritingStatsSave(), rewriting the four System JSON files roughly every 60 seconds while Obsidian sat idle. The vaultmodifyhandler now skips files under the active project'sSystem/folder before scheduling a writing-stats save, so the plugin's own writes can't feed back into the timer.writeSystemJson()additionally compares the serialized JSON with the existing file contents and skips the write when they're identical, so the 5-minute safety-net interval (from #238) no longer rewrites unchanged files. Affectsmain.ts. -
Character count setting now applies to the Manuscript view (#240) — With the "Default project language" set to a CJK locale and "Count unit for scene lengths" set to Characters, the Manuscript view footer still calculated and displayed words. The footer (both the initial render and the live
updateFooterrefresh) now honourssettings.countUnit, summingcharcountand labelling the resultcharswhen the unit ischars— consistent with the Board, Timeline, and Stats views. Affectsviews/ManuscriptView.ts. -
Em dash (
—) no longer counted as a word (#243) —tokenizeWordssplit on whitespace and kept every non-empty token, so a standalone em dash (commonly used to mark dialogue) was counted as a word, inflating scene word counts relative to Obsidian's native counter. Tokens now must contain at least one letter or digit (/\p{L}|\p{N}/u), matching Obsidian's behaviour. This affected every view and the persisted frontmatter word count, not just the Manuscript view. Affectsutils/locale.ts.
1.10.53
StoryLine — Changelog
Support StoryLine
If StoryLine helps your writing, please consider buying me a coffee. Donations keep the plugin actively maintained.
Version 1.10.53
Bug Fixes
- Duplicate Prologue / Epilogue columns in Kanban (#239) — When a project had act
0(Prologue) or act99(Epilogue) in its defined acts — which happens as soon as any scene stores its act as the number0or99, or the project'sdefinedActsarray contains them — the Kanban board rendered two separate columns for each: an emptyAct 0/Act 99column (created fromdefinedActs) and the realPrologue/Epiloguecolumn holding the scenes (created fromgetActDisplayLabel). Numbered acts (1–98) were unaffected because both code paths produced the sameAct Nkey. The empty-column key is now built withgetActDisplayLabelso Prologue/Epilogue merge with their scene column instead of spawning a parallelAct 0/Act 99column. Affectsservices/SceneQueryService.ts.
