Skip to content

Releases: CocaPls/obsidian-trellis

Trellis 0.1.4

Choose a tag to compare

@CocaPls CocaPls released this 03 Jul 06:29

Frontmatter tag dedupe hotfix.\n\n- Deduplicates exact repeated frontmatter tags while preserving order.\n- Lets bootstrap normalize existing duplicate tag arrays when the target location tag is already present.\n- Records bootstrap undo entries only for tags actually added by that bootstrap run.\n\nVerification: npm test; npm run build; git diff --check.

0.1.3

Choose a tag to compare

@CocaPls CocaPls released this 03 Jul 05:37

Separator migration hotfix.\n\n- Repairs mixed separator boundaries such as S88_-Title, S88-_Title, repeated variants, and suffix equivalents when moving between separators.\n- Suppresses normal tag-to-filename sync during separator migration so follow-up events cannot re-process files with the wrong live separator.\n- Records only successfully renamed files in separator undo data.\n- Allows separator setting changes even when no files need renaming.\n\nValidation: npm test (39/39), npm run build, git diff --check.

0.1.2

Choose a tag to compare

@CocaPls CocaPls released this 02 Jul 10:31

Marketplace review cleanup.\n\n- Replaced workspace.revealLeaf() with setActiveLeaf(..., { focus: true }) so minAppVersion can stay at 1.4.10 while clearing the unsupported-API review error.\n- Tightened saved-settings and frontmatter handling types around loadData() and processFrontMatter().\n- Removed the builtin-modules dev dependency in favor of Node's built-in node:module builtinModules list.\n\nDeferred warnings intentionally: getLanguage() requires Obsidian 1.8.7, and replacing display()/setWarning() would require 1.13.0 APIs.

0.1.1 — Marketplace review fixes

Choose a tag to compare

@CocaPls CocaPls released this 02 Jul 09:33

Automated-review fixes for the community submission.

  • minAppVersion → 1.4.10 to match the APIs used (processFrontMatter, AbstractInputSuggest).
  • Use activeDocument instead of document (pop-out window compatibility).

See CHANGELOG.md.

0.1.0 — First public release

Choose a tag to compare

@CocaPls CocaPls released this 01 Jul 10:37

First public release.

  • Tag → filename sync (link-safe): a hierarchical location tag drives the filename prefix (tagkey). Edit the tag; the filename follows.
  • Cascade rename, sidebar tree view, scoped bootstrap, duplicate location-tag cleanup, separator batch-change.
  • Customizable sidebar view name + per-button header visibility.
  • Korean / English UI (auto-detected).

See CHANGELOG.md for the full list.

0.0.8 — Scoped bootstrap, duplicate-tag cleanup, robustness

Choose a tag to compare

@CocaPls CocaPls released this 30 Jun 08:04
  • Scoped bootstrap target picker — onboard a folder/module subtree instead
    of only the whole vault. Checkbox tree with drag-to-select, filename search, a
    "notes without a tag only" toggle, a selection count, and already-tagged
    badges. Sidebar header buttons (bootstrap / rename tag / undo) and a "new
    note" command round out the entry points.
  • Duplicate location-tag cleanup — one note = one location per namespace.
    Sync warns when a note carries duplicate location tags, and a new "check
    duplicate location tags" command opens a modal to pick which tag to keep per
    note; the rest are removed from frontmatter (undoable, with an "undo last
    duplicate-tag cleanup" command). The modal shows the total count, scrolls
    within the viewport, and batches at 50 notes for large runs.
  • Location tags belong in frontmatter — settings and README now state that
    cascade and bootstrap read and rewrite frontmatter tags, one per note.
  • Robustness / cleanup — every assembled vault path goes through
    normalizePath(); cascade rename now isolates per-file frontmatter errors
    (try/catch + skipped-files modal), matching bootstrap and separator change.

0.0.7

Choose a tag to compare

@CocaPls CocaPls released this 29 Jun 05:24

0.0.7 — Separator batch-change + bulk-op robustness

  • Change the filename separator across the whole vault. Editing the
    separator in settings now opens a confirm dialog and rewrites only the
    trekey-boundary separator
    on every location-tagged file — symbols inside the
    title are preserved — via the link-safe rename API. One-directional, like the
    tag engine. Includes a dry-run count + collapsible file list and a one-step
    undo command.
  • Separator validation relaxed — any non-empty value with no letters,
    digits, or / (was "exactly one character"); multi-character separators are
    allowed.
  • Bulk operations are now robust and observable:
    • Per-file error isolation — one broken file (e.g. duplicate YAML keys)
      no longer aborts a bootstrap or separator pass; failures are collected and
      listed in a "skipped files" modal.
    • Live progress — a progress notice (N/total) during bootstrap and
      separator change.
    • Undo preserved on interruption — the undo record is saved even if the
      pass is cut short.
  • Internal: shared assembleBasename helper (slot order + separator) and
    separatorMigratedName (decompose with the old separator, re-emit with the
    new one).

0.0.6

Choose a tag to compare

@CocaPls CocaPls released this 29 Jun 05:24

0.0.6 — Multi-key data model (schema-based)

  • The filename key config is now a positional slot arrayTrellisSchema { slots: KeySlot[]; separators: string[] } — instead of three scalar fields.
    The single-key default is a 2-slot [tag, name] schema; runtime behaviour is
    unchanged.
  • keyPosition (prefix/suffix) is absorbed into slot order — prefix =
    [tag, name], suffix = [name, tag]. No separate field.
  • Existing settings migrate automatically (schemaFromLegacy): saved
    namespace / separator / keyPosition data is converted to a schema on
    load, losslessly.
  • Lays the general-form foundation for multi-key (multiple tag slots, multiple
    separators). The multi-key UI and multi-separator parsing are deferred to an
    advanced mode, so the core never needs rewriting again.
  • Fix: settings no longer share the module-level default-schema object (an edit
    to the namespace/position could previously mutate the shared default).

0.0.5

Choose a tag to compare

@CocaPls CocaPls released this 29 Jun 05:24

0.0.5 — Internationalization (i18n)

  • Korean / English UI via a small i18n layer (i18n.ts). Auto-detects
    Obsidian's UI language; a language setting can force ko/en.
  • All commands, notices, modals, settings, and tree-view labels are translated.

0.0.4

Choose a tag to compare

@CocaPls CocaPls released this 29 Jun 05:24

0.0.4 — Bootstrap onboarding

  • Bootstrap an existing vault (filename trekey prefixes, no tags yet):
    decompose a filename trekey into a hierarchical location tag
    (S88B07#trel/S88/B/07). Placeholder slots (0/00) are kept as tag
    segments so the tag ↔ trekey round-trip stays exact.
  • Dry-run preview command — lists every file's proposed tag (and files
    skipped because they're already tagged or have no recognizable trekey).
    Writes nothing.
  • Apply writes the tag into each file's frontmatter (existing content
    preserved) and records what it wrote.
  • Undo last bootstrap command reverts exactly those writes.