Tags: awizemann/Marker
Tags
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).
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).
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).
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).
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).
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).
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.