Skip to content

Skrive v0.1.1

Choose a tag to compare

@github-actions github-actions released this 30 Apr 02:27

The first post-alpha release. Four dogfood-driven additions to make daily writing flow smoother, plus the supporting plumbing each one needed.

Drag-and-drop image import

Drop an image onto the editor and Skrive copies it into a project-relative attachments/ folder, inserts a Markdown image at your cursor, and renders it inline. Filenames are preserved; collisions get a -1 / -2 suffix.

  • A subtle dashed outline appears on drag-enter so the drop target is unambiguous.
  • Source paths are written source-file-relative (e.g. ../attachments/foo.png from a file in chapters/), so the markdown renders correctly in Skrive, GitHub, and any other reader.
  • Filenames with spaces (screenshot defaults like Screenshot 2026-04-29 at 6.25.48 PM.png) are URL-encoded automatically.
  • When a drag source doesn't include a real file path — common for browser, Slack, and Photos.app drags that carry URLs instead — Skrive surfaces a quiet notice instead of failing silently.

Tab indents and outdents list items

Tab and Shift-Tab inside a -, *, +, 1., or 1) list now nest and unnest the item — what writers expect from Word, Notion, Bear. The gesture is gated on list context so Tab on a prose line falls through to default (which matters: a 4-space prose indent silently becomes a CommonMark code block).

Multi-line selections nest as a group when every line is a list line.

Rename-as-path

In the rename modal (F2 on a tab or Rename… in the sidebar), typing a path with / separators now moves the file into that subdirectory. Intermediate folders are created if missing.

  • docs/foo.md → moves the file into a docs/ subfolder of its current location.
  • A "Moves to: …" hint appears under the input so typos surface before commit.
  • Inbound link rewriting reuses the same machinery as in-place renames; references update across the project automatically.

Inline image preview

![alt](path) now renders as the actual image both in the editor (inline thumbnail) and in the preview pane (full size). Image URLs are resolved against the source file's directory, normalized for . and .., URL-decoded, and converted into asset-protocol URLs the webview can fetch.

A console warning surfaces the resolved URL on load failure, so when an image doesn't render the path it tried is one click away.


Upgrade notes: existing image markdown that you typed by hand with literal spaces in URLs won't render until the spaces are encoded as %20. Re-dropping the image is the fastest fix.