hkohlhoff56 downloadsTurn StoryLine writing projects into connected Canvas books and export-ready master notes.
Canvas for StoryLine turns a StoryLine writing project into connected Obsidian Canvas files and an export-ready Markdown master file. It is designed for authors who organize manuscript structure, scenes, notes, characters, and locations in StoryLine and want to explore that structure visually in Obsidian.
The generated Master.md is also intended as a stable source for a later
TeX/LaTeX export workflow.
Canvas for StoryLine is designed to work especially well with two companion plugins:
Master.md.The generated chapter Canvases do not contain only titles or summaries. Their file cards provide the complete contents of the referenced Markdown files for scenes, scene notes, characters, and locations. Canvas HTML Exporter carries those complete Markdown contents into the corresponding HTML pages, where they can be read in a browser as part of the connected Canvas structure.
Each plugin remains useful and installable on its own; there is no hard runtime dependency between them. Together they cover the complete path from a structured StoryLine manuscript through visual work in Obsidian to a navigable HTML representation. The exporter is the final step when the Canvas book should be viewed in a browser outside Obsidian.
If Canvas for StoryLine is useful to you, you can support its continued development by buying me a coffee.
Master.md with either ordinary [[...]] links or embedded
![[...]] scene notes, ordered by act, chapter, and scene sequence.Install Canvas for StoryLine from Settings → Community plugins → Browse in Obsidian when it is available there.
For a manual installation:
main.js, manifest.json, and styles.css from the release.<vault>/.obsidian/plugins/canvas-for-storyline/.Canvas Folding and Canvas HTML Exporter are optional companion plugins. Install them from Community Plugins or from their respective GitHub releases to use the complete workflow described above.
The repository contains a ready-to-use demonstration in
examples/demo-vault. It includes a complete
Little Red Riding Hood StoryLine project with three acts, six chapters, all
six scene statuses, scene notes, characters, locations, and a shared series
Codex. All sample content, folder names, generated headings, and metadata are
in English.
See examples/How to Use the Demo-Vault.md
for the standalone walkthrough, matching the layout used by Canvas HTML Exporter.
To try it:
examples/demo-vault as a Vault in Obsidian.Master.md
under StoryLine/Enchanted Forest/Little Red Riding Hood/Canvas.StoryLine/Enchanted Forest/Little Red Riding Hood as the project folder and
keep all four element types enabled.The sample uses StoryLine's native Scenes, SceneNotes, shared
Codex/Characters and Codex/Locations, Research, Archive, and System
layout. Its scenes contain StoryLine-native POV, character, location,
setup/payoff, plotline, chronology, conflict, emotion, and notes references;
Codex entries contain book, relationship, inhabitant, and connected-location
references.
The companion plugins are not bundled. Their source code and current releases are available from the linked repositories above.
Open Settings → Canvas for StoryLine and configure:
| Setting | Purpose |
|---|---|
| StoryLine project folder | Vault-relative source folder. Generated Canvas files are written to its direct Canvas subfolder. |
| Included StoryLine elements | Select scenes, scene notes, characters, and locations for chapter canvases. |
| Master output folder | Optional independent Vault folder for Master.md. When empty, the project's Canvas folder is used. |
| Scene inclusion | Choose ordinary Wikilinks or embedded scene notes in Master.md. |
| Create master file with Canvas files | Controls whether the Canvas command also recreates Master.md. |
The project and Master folders can both be selected with a Vault folder chooser.
Master.md when enabled in
the settings.Master.md, regardless of the combined-generation setting.There is deliberately no live synchronization in version 0.8.0. Run the appropriate command again after changing StoryLine sources or plugin settings.
Canvas files are written directly to:
<StoryLine project>/Canvas/
The overview contains act columns and linked chapter cards. Each chapter Canvas contains equally high category columns based on its longest populated column, a link back to the overview, and the complete StoryLine status legend.
Actual Canvas filenames retain the project prefix and .canvas extension for
unambiguous Vault links. Visible headings omit both. Labels follow the
StoryLine project's language metadata: English projects use Overview,
Chapter, Act, and Book; other projects use the corresponding German
labels Übersicht, Kapitel, Akt, and Buch. When the parent-series
metadata identifies the book number unambiguously, the overview heading also
includes it. Generated Canvas metadata provides localized short names such as
Overview and Chapter N - Title, so HTML exports use those names for page
and hover titles instead of exposing project-prefixed filenames.
Master.md contains only manuscript scenes in StoryLine order:
An information block records the Vault, StoryLine project folder, and creation date. This deliberately small structure is intended as the input boundary for the planned TeX/LaTeX exporter.
Every user-started generation moves existing same-named target files to
Obsidian's configured trash and recreates them from the current StoryLine data.
This applies to Canvas files in the project's direct Canvas folder and to
Master.md in its configured output folder. Manual changes made only in these
generated targets are therefore not preserved.
When generated Canvas names change, obsolete plugin-owned Canvas files in the
project's direct Canvas folder are also moved to trash. Other files and
subfolders such as Canvas/Vorgaben/ are left untouched. StoryLine source
files are never modified, and generated Canvas/** files are never read back
as StoryLine source material.
After a version change, the plugin shows the current update note once. It is marked as read only after the window is closed and does not create a file in the Vault. The About section at the bottom of the plugin settings provides Show last update to reopen that note and Show readme to open this complete documentation without leaving Obsidian.
Canvas for StoryLine works locally through Obsidian's Vault API. It has no
network functionality and sends no data anywhere. Settings, generated-file
ownership hashes, and the update-note marker are stored in the plugin's local
data.json.
Content reads are limited to the configured StoryLine project folder, its
parent-series Codex, and the corresponding series.json. Folder selection uses
a folder-only traversal without reading unrelated file contents.
The installed plugin does not contact the Ko-fi image or any other remote README content. Canvas HTML Exporter is a separate desktop-only plugin; its own privacy documentation applies when it is installed.
npm install
npm test
npm run build:prod
For local deployment with hot reload:
OBSIDIAN_PLUGINS_DIR="/path/to/vault/.obsidian/plugins" npm run build:prod:deploy
For development only, the build can be watched and deployed into this repository's Demo Vault with:
npm run dev:demo
The released Demo Vault intentionally contains no installed Community plugins.
After using dev:demo, remove the deployed plugin again before preparing a
Demo Vault release. Reload Obsidian manually unless Hot Reload has been
installed locally for development.
The deployment target is always canvas-for-storyline. Production release
artifacts are written to release/.
Canvas for StoryLine is licensed under the
GNU General Public License v3.0 or later. Generated Canvas and
Markdown output may be used, published, distributed, and licensed independently
from the plugin under the output exception in
COPYING_EXCEPTION.
Please report reproducible problems and feature requests through the GitHub issue tracker.