Skip to content

Tags: awizemann/Marker

Tags

0.8.1

Toggle 0.8.1's commit message
0.8.1 — contentText projection on MarkdownBlock; nonisolated fix for …

…pure static namespaces

0.8.0

Toggle 0.8.0's commit message
Marker 0.8.0 — platform floor lowered to macOS 14 (glassEffect availa…

…bility-gated, isolated deinit refactored); EditorModel.isFocused first-responder seam for focus-gated shortcuts; README + docs/Integration.md consumer guide. 188 tests green.

0.7.1

Toggle 0.7.1's commit message
Marker 0.7.1 — CommandPaletteModel accepts custom cursor/selection to…

…olsets (defaults unchanged), so drivers without side-effect hooks can omit tools they cannot service.

0.7.0

Toggle 0.7.0's commit message
Marker 0.7.0

FormatBar: a compact themed formatting bar sharing the command palette's
EditorTool catalog (one source of truth) — inline/heading/list clusters +
overflow menu, tooltips from tool metadata, read-only aware, undo-registered
execution. Opt-in by placing the view; existing integrations unchanged.

187 tests green. Consumed by TrapperKeeper (path) and ShabuBox (URL pin).

0.6.0

Toggle 0.6.0's commit message
Marker 0.6.0

Command palette: themed, reusable formatting palette (CommandPaletteView in
MarkerEditor over a UI-free CommandPaletteDriving state machine in the core;
turnkey CommandPaletteModel included). Type-to-filter over the EditorTool
catalog, caret-anchored, keyboard-complete, undo-registered execution via
EditorModel.runCommand — which also serves menu items directly. Trigger and
key binding are the consumer's choice.

178 tests green. Consumed by TrapperKeeper (path) and ShabuBox (URL pin).

0.5.0

Toggle 0.5.0's commit message
Marker 0.5.0

- Plain-text drop seam: EditorView.onDropText transforms dropped strings
  into markdown at the drop caret (undo-registered); nil-return keeps the
  default insertion. Image/file-URL drop paths unchanged.
- EditorModel.insertImageReference(url:alt:) — alt text for inserted image
  references (default preserves the old form).

166 tests green. Consumed by TrapperKeeper (path) and ShabuBox (URL pin).

0.4.0

Toggle 0.4.0's commit message
Marker 0.4.0

File-drop seam: EditorView.onDropFiles receives non-image file URLs at drop
time and inserts the consumer's returned markdown at the drop caret, undo-
registered. Image drops are untouched (CapturedImageDrop path first); mixed
drops split between the two. New pure helper
EditorCommands.droppedMarkdownInsertion. Feature off unless a handler is
passed — existing integrations unchanged.

162 tests green. Consumed by TrapperKeeper (path) and ShabuBox (URL pin).

0.3.0

Toggle 0.3.0's commit message
Marker 0.3.0

Wiki-link autocomplete: EditorView.wikiCompletions supplies candidates for
the partial query as you type inside [[ … ]]; caret-anchored keyboard-
navigable suggestions (Down/Up/Return/Tab/Esc, click, live refinement),
undo-registered insertion, code contexts excluded. Feature is off unless
the consumer passes a provider — existing integrations unchanged.

158 tests green. Consumed by TrapperKeeper (path) and ShabuBox (URL pin).

0.2.0

Toggle 0.2.0's commit message
Marker 0.2.0

- MarkerTheme: proseDesign/uiDesign (system font designs — serif/rounded/mono)
  alongside font families; fully source-compatible init.
- [[Wiki links]]: new inline span kind, styled like links with collapsed
  markers; markdown links now expose destinationRange.
- Link activation seam: EditorView.onLinkActivate receives
  MarkerLinkTarget (.url / .wiki) on Cmd+click.
- Clickable task checkboxes: plain click toggles [ ]↔[x], undo-registered,
  byte-exact (EditorCommands.taskCheckboxToggle).

139 tests green. Consumed by TrapperKeeper (path) and ShabuBox (URL pin).

0.1.0

Toggle 0.1.0's commit message
Marker 0.1.0 — first tagged release

A reusable Markdown engine for native Swift apps, extracted from TrapperKeeper's
editor. Swift 6.2 (strict concurrency, MainActor default isolation), macOS 26+.

Products
- Marker — the pure engine: block parser, inline scanner, GFM pipe tables,
  code-block model + conservative language detection, incremental block
  diffing, image path/remote resolution, and the editor state/command engine
  (EditorModel, EditorCommands, DocumentOutline). Foundation-level frameworks
  only. 127 tests.
- MarkerEditor — the TextKit 2 gentle-syntax WYSIWYG editor: EditorView host,
  attributes-only styling over raw-string storage, code wells with hover copy,
  grid-table and inline-image display substitution, list/quote continuation,
  undo-registered command seam. Themed entirely through MarkerTheme (palette,
  font families, accents); depends on the Marker core only.
- MarkerHighlighting — tree-sitter code-fence highlighting (json/js/ts/bash/
  go/rust/html + vendored swift/python grammars), feeding the editor through
  the CodeTokenProviding seam. Optional: skip it and the editor renders code
  fences plain.

Design principle: RAW-STRING STORAGE. The document text is the file's exact
bytes; everything renders as attributes or display-time substitution over it,
so markdown round-trips byte-exact by construction — there is no serializer.

Known limits (deliberate, documented in-source): the parser is lenient rather
than CommonMark-complete (no nested-emphasis edge cases, no setext headings);
images render block-level only; task checkboxes toggle via command/text, not
click. 133 tests green at tag time; consumed in production by TrapperKeeper.