Skip to content

Releases: nuc/MarkEdit-wikilinks

v0.1.3 — generalised vault-root detection

26 May 08:45
@nuc nuc

Choose a tag to compare

What changed

findVaultRoot() previously hard-required a .obsidian/ directory walking up from the current file. That locked out git-tracked LLM wikis and any vault that doesn't ship the Obsidian sentinel — a bare [[slug]] from a sibling subfolder would never resolve, even though the recursive search itself was already layout-agnostic (matches by basename, no hardcoded directory names).

This release broadens the gate without touching the search:

  • VAULT_MARKERS is now ['.obsidian', '.git', '.markedit-vault']. Walk-up returns the first ancestor containing any of them.
  • Order is for diagnostics only; resolution uses any-match.
  • The miss dialog now lists exactly which markers were searched for, so failures are self-explanatory.

Behaviour notes

  • Closest marker wins. If you have .obsidian/ higher up and .git/ lower down, the git root becomes the vault. Almost always what you want; worth knowing for nested-repo edge cases.
  • No false positives in searchVault. Matching is by exact basename — vaults with unique slug names (e.g. those enforcing a single-namespace lint like LLM-wiki) keep deterministic resolution.
  • Opt-in marker. .markedit-vault is plugin-owned for vaults that want explicit declaration without committing to Obsidian or git.

Install

Copy dist/markedit-wikilinks.js to ~/Library/Containers/app.cyan.markedit/Data/Documents/scripts/ and restart MarkEdit. If you previously created an empty .obsidian/ as a workaround, you can delete it.

v0.1.2 — End-user install (no toolchain needed)

24 May 11:20
@nuc nuc

Choose a tag to compare

What's new

Install no longer requires Node/yarn. The prebuilt bundle now ships with the repo.

Install

Copy `dist/markedit-wikilinks.js` to:

```
~/Library/Containers/app.cyan.markedit/Data/Documents/scripts/
```

Restart MarkEdit. Done.

Docs

The README now follows the MarkEdit-preview convention:

  • Installation for end users — drop in the prebuilt JS.
  • How to Use — syntax table, click behavior (⌘-click in editor, plain click in preview), Obsidian-style resolution order, and the create-on-miss fallback.
  • Building — for contributors hacking on the source.
  • Architecture — file map plus the why-Lezer-not-regex and why-MutationObserver-not-markdown-it rationale.

No functional changes to the plugin itself — bundle is byte-identical to v0.1.1.

v0.1.1 — Preview pane integration

24 May 10:50
@nuc nuc

Choose a tag to compare

What's new

Wikilinks now render and follow in the MarkEdit-preview pane (preview mode and side-by-side mode).

Previously the preview showed `[[foo]]` as literal text because MarkEdit-preview's `markdown-it` pipeline has no wikilink awareness. v0.1.1 post-processes the rendered HTML inside `.markdown-body`, replacing matching text nodes with anchors that route plain clicks through the same resolver the editor's Cm-click handler uses.

  • Same resolution ladder as the editor: same-folder → vault-relative path → recursive DFS from `.obsidian/` root.
  • Same create-on-miss diagnostic dialog.
  • Skips text inside ``, `
    `, `<script>`, `<style>`, and existing `` elements.
  • No-op when MarkEdit-preview isn't installed.

Also

  • Build-status note for v0.1.0: that tag's CI run shows red because `markedit-vite`'s default config tries to copy the bundle into MarkEdit's macOS sandbox dir on Linux runners. Fixed in `365589f` (the next commit on main) by passing `copyDistFile: !process.env.CI` to `defaultViteConfig`. v0.1.1's CI is green.

v0.1.0 — Initial release

24 May 10:43
@nuc nuc

Choose a tag to compare

First public release of MarkEdit-wikilinks.

Features

  • Lezer-based inline parser for [[Note]], [[Note|Alias]], and ![[Embed]] syntax — composes correctly with MarkEdit's Markdown grammar, stays inert in code blocks.
  • CodeMirror ViewPlugin styling, theme-friendly.
  • Cmd-click to follow with Obsidian-style resolution:
    1. same folder,
    2. vault-relative path (e.g. [[docs/foo]]),
    3. recursive search from the .obsidian/ root, dot-dir / node_modules / dist / build / target skipped, budget-capped at 5,000 entries per click.
  • Create-on-miss prompt with a diagnostic showing what was tried and whether folder access is granted.

Install

```sh
yarn install
yarn build # also deploys to MarkEdit's scripts/ folder
yarn reload
```

See the README for sandbox / folder-access notes.

Known gaps

  • `#header` and `^block-id` fragments are stripped, not navigated.
  • `![[image.png]]` is highlighted but not rendered as an image.
  • No autocomplete for link targets.
  • Vault index is rebuilt per click (fine for hundreds of files; large vaults may want session-scoped caching).