Bundle the project template into the binary; add outline-to-draft
links, a sprint timer, placeholder scanning, corkboard, and a quick-capture inbox - Compile templates/snowflake into the binary via include_dir, so New project… never depends on files installed beside the executable; Settings ▸ Template becomes an optional external override, and a broken saved override now falls back to the bundled template instead of failing project generation. - Outline beats now link to a matching chapter for a one-click jump. - Sprint window: a daily whole-manuscript word goal plus a Pomodoro-style writing sprint timer, with a compact countdown in the status bar while in Distraction-free mode. - Placeholders window: find [TODO]/[TK]/[FIXME]/[XXX]/[NOTE]/[???] markers left in the draft and jump straight to any of them. - Snowflake progress strip in the file panel: a nudge-only readout of which snowflake stage folders actually have content. - Corkboard window: drag-reorderable synopsis cards, one per chapter. - Quick-capture popup (Ctrl+Shift+N): jot a stray idea straight into the project's Scratch Pad without losing your place in the draft. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -43,16 +43,13 @@ sudo apt install libgl1 libxkbcommon0 libwayland-client0 libx11-6
|
||||
|
||||
```sh
|
||||
install -Dm755 target/release/md-manuscript ~/.local/bin/md-manuscript
|
||||
# The project templates are read from disk, so they travel with the binary:
|
||||
cp -r templates ~/.local/bin/templates
|
||||
```
|
||||
|
||||
The app looks for `templates/snowflake/cookiecutter.json` beside the executable
|
||||
and then up through its parent folders, so a release build run from the source
|
||||
tree finds it without installing anything. Without it the app still starts and
|
||||
everything else works — only **File ▸ New project…** has nothing to scaffold
|
||||
from, and says so. You can also point **Settings ▸ New project… ▸ Template** at
|
||||
a copy anywhere else.
|
||||
That's it — the **File ▸ New project…** template is compiled into the binary,
|
||||
so there's nothing else to install alongside it. If you want to use a
|
||||
customized copy of the template instead of the bundled one, point
|
||||
**Settings ▸ New project… ▸ Template** at a folder of your own containing a
|
||||
`cookiecutter.json`; leave it blank to keep using the bundled template.
|
||||
|
||||
Optionally add a desktop launcher at
|
||||
`~/.local/share/applications/md-manuscript.desktop`:
|
||||
@@ -660,10 +657,13 @@ single finished document, use **Export ODT**.
|
||||
template and then opens it as the workspace, so you go from nothing to editing
|
||||
chapters in one step.
|
||||
|
||||
The app now uses **built-in MiniJinja templating** (no external Python
|
||||
cookiecutter required) to render templates. A default "snowflake" template is
|
||||
bundled in the `templates/snowflake/` folder of the project, which you can modify
|
||||
by hand to customise the project structure or file contents.
|
||||
The app uses **built-in MiniJinja templating** (no external Python cookiecutter
|
||||
required) to render templates. A default "snowflake" template is compiled
|
||||
into the binary itself — nothing has to be installed alongside it. Its source
|
||||
lives in the `templates/snowflake/` folder of this repository, for anyone
|
||||
building from source who wants to customise it (a rebuild picks up the
|
||||
change); at runtime, point **Settings ▸ New project… ▸ Template** at a folder
|
||||
of your own to use a customised copy instead, without rebuilding.
|
||||
|
||||
The dialog asks for a **name**, **author**, **description** and the **folder to
|
||||
create it in** (prefilled with wherever you put the last one). Those are passed
|
||||
@@ -685,13 +685,15 @@ You can use your own templates by pointing the **Template** setting in
|
||||
**Settings ▸ New project…** at any folder containing a `cookiecutter.json` file.
|
||||
The template should contain a subdirectory named with a template expression
|
||||
(e.g., `{{ cookiecutter.project_name }}`) which becomes the project root after
|
||||
rendering.
|
||||
rendering. Leave the setting blank (the default) to use the bundled template;
|
||||
an override that stops resolving to a valid template (folder moved, deleted)
|
||||
silently falls back to the bundled one rather than failing project creation.
|
||||
|
||||
### Settings ▸ New project…
|
||||
|
||||
| Setting | Meaning |
|
||||
|---|---|
|
||||
| **Template** | the folder holding the template's `cookiecutter.json`. Defaults to the bundled `templates/snowflake`, found beside the executable or up through its parent folders |
|
||||
| **Template** | an external folder holding a `cookiecutter.json` to use instead of the bundled template. Blank (the default) uses the template compiled into the binary |
|
||||
| **Manuscript folder** | which folder of a project holds the book (default `05-First Draft`). Its files are ordered, numbered and exported; the rest of the project is reference. A leading number is optional, so `First Draft` also matches `05-First Draft`. A generated project always opens at its root — this does not change which folder the workspace is |
|
||||
| **Publish to Gitea after creation** | when enabled and Gitea credentials are configured below, a new repository will be created and the project pushed to it |
|
||||
| **Gitea** | server URL, user and token, used to create repositories when publishing is enabled |
|
||||
|
||||
Reference in New Issue
Block a user