Document local drafts, editable SVG files, starting from the launcher, and the updated working-versus-saved state model across the editor and documentation site.
- commit
- 8d5a76c8b8848bbf4ff0e0be6f29beb893c719b9
- parent
- c06b214f68855b15ae24235264f2a5a624b4967f
- author
- Dami <dami.etoile@gmail.com>
| M | apps/ | 9 | +++++++-- |
| M | apps/ | 23 | +++++++++++++++-------- |
| M | apps/ | 2 | +- |
| M | apps/ | 17 | ++++++++++++----- |
@@ -29,6 +29,11 @@ For an open diagram, diagram.zip stores the working state as a local browser
2929 draft. This draft supports recovery on the same browser. It is not a published3030 diagram and other people cannot read it.3131 32+The launcher stores a small metadata-only recent index. Local document source,33+Details text, file-save state, and parked per-format drafts live in separate34+device-only bodies. Published aliases have no body in the recent index and are35+refetched when opened.36+3237 Anonymous drafts default to local work. **Save as File** exports the working3338 state as an editable enriched SVG. The file remains useful as a visible SVG3439 image and contains a versioned Diagram.zip document for later import.@@ -38,8 +43,8 @@ file, drag and drop, pasted SVG text, or an HTTP(S) or data URL. The importer
3843 rejects ordinary, ambiguous, unsupported, or lossy SVG instead of guessing.3944 Imported input has a 5 MiB limit.4045 41-An edited anonymous example shows a reset icon. Reset removes its local draft42-and restores the bundled example after confirmation.46+The launcher can reopen and duplicate local documents. Removing a local-only47+document requires confirmation because it cannot be recovered from a server.4348 4449 When a published link opens with a different local draft, the editor marks4550 that draft as a device-only overlay. Choose **Restore published** to discard@@ -35,11 +35,15 @@ being guessed or silently converted. Imported input is limited to 5 MiB.
3535 3636 ## Choose a type3737 38-Use the filter on the [diagram type list](/) to search by name, format, or purpose. The list has one syntax page and one style page for every supported type.38+Use the launcher at [diagram.zip](https://diagram.zip/) to filter by name,39+extension, or purpose. Choose **Create** to start a new document from that40+format's worked example.3941 40-When you choose a type in the editor, diagram.zip records it in the page URL as41-`?type={type}`. Reloading or copying that working URL keeps the same active type.42-Saved read and edit links remain alias-based and do not depend on this query.42+When you change format in the editor, diagram.zip preserves the current source,43+title, description, and presentation while choosing a different renderer.44+Renderer-specific options reset because they may not apply to the new format.45+The active type is recorded in the page URL as `?type={type}`. Saved read and46+edit links remain alias-based and do not depend on this query.4347 4448 ## Source, Details, and preview4549 @@ -61,7 +65,9 @@ Read [General presentation settings](/style/presentation/) for the Details docum
6165 6266 ## Local drafts6367 64-Open diagrams keep unsaved changes in local browser storage. An edited example shows a reset icon that restores its bundled source and details.68+Open diagrams keep unsaved changes in local browser storage. The launcher lists69+recent local documents and published links on this device. Local documents can70+be reopened, duplicated, or explicitly removed.6571 6672 Anonymous drafts default to local work. **Save as File** downloads an editable6773 SVG without creating a server alias. The downloaded file can be reopened on@@ -83,6 +89,7 @@ a self-contained packed SVG URL; published diagrams use their stable alias
8389 render. Read [Share a diagram](/collaboration/sharing/) before you send an edit8490 link.8591 86-The save dropdown selects **Publish**, **Encrypt & Publish**, or **Save as File**87-as the main button action. Selecting an action does not run it. Copy actions in88-the dropdown run immediately.92+Open the command palette with **Command-K** on macOS or **Control-K** elsewhere.93+It includes file export, publishing, copy/share actions, format changes, preview94+commands, opening an editable SVG, and documentation. **Command-S / Control-S**95+saves an editable SVG file.@@ -216,6 +216,12 @@ They do not write to D1 or R2. Locked drafts are deliberately not written to
216216 local storage as plaintext; they persist only when the user explicitly217217 publishes.218218 219+The root route is a local-first launcher. Its recent index stores metadata only;220+local document bodies use separate keys and published aliases are refetched.221+Changing format preserves the parked per-format drafts inside the local document222+body. The legacy single anonymous draft is migrated into this model on first223+boot.224+219225 The left pane separates diagram Source from schema-validated Details JSON.220226 Details owns title, description, and presentation values. Invalid Details text221227 remains recoverable while file export, publishing, sharing, privacy, and type@@ -226,7 +232,7 @@ changes stay blocked.
226232 URL and create no alias.227233 - New draft: **Publish** creates an alias and changes the browser to its read URL.228234 - Writable alias: **Publish** updates with the last revision.229-- Anonymous example: the reset icon discards its local draft after confirmation.235+- Local document: the launcher can reopen, duplicate, or explicitly delete it.230236 - Read-only alias: edits form a local fork; **Publish a Copy** creates a new alias.231237 - Conflict: offer **Reload published** or **Publish as new**. Never overwrite silently.232238 - Share, open: copy read link, copy edit link, SVG link, or Markdown.@@ -234,10 +240,11 @@ changes stay blocked.
234240 link. SVG and Markdown embeds are visibly disabled with the explanation that235241 encrypted diagrams cannot be embedded.236242 237-The header dropdown selects Publish, Encrypt & Publish, or Save as File as the238-main button action without executing it. Encrypt & Publish opens the password239-dialog only when the user clicks the selected main action. Copy actions remain240-immediate commands.243+The compact header keeps title, local-change state, render status, and a format244+button. The format button or **Command-K / Control-K** opens the command palette.245+The palette owns format changes, file export, publishing, copy/share actions,246+view commands, open, new, and documentation. **Command-S / Control-S** always247+means Save as File; publishing remains an explicit command.241248 242249 The password and edit capability should be sent through separate channels when243250 practical. The edit link itself is a bearer credential and the UI must label it