Repository navigation
mdrefine 0.1.0-beta.2
Pre-releasemdrefine 0.1.0-beta.2
Second public beta of Markdown Tools. npm package: mdrefine; executable:
mdtools. Requires Node.js 22.12 or newer. Upgrade with:
npm install --save-dev --save-exact mdrefine@0.1.0-beta.2Correctness fixes
- Measure protected Markdown markers together with their preceding word before
wrapping, avoiding preventable line-width overflow. - Prefer exact Obsidian workspace-root targets before suffix matches, respect
explicit relative paths, and verify target identity before rewriting links. - Preserve compliant literal destination spelling, including
?and%, and
escape literal percent/hash characters correctly when generating paths. - Recognize existing directory targets instead of reporting them as missing.
Obsidian receives a directory-specific diagnostic; CommonMark/GitHub links can
resolve to directories. Directories are not rewritten to README files. - Compare code-span line endings using their rendered space value while keeping
other code whitespace significant, allowing safe inline-code formatting. - Fix parsing of inline Obsidian comments spanning several physical lines.
New controls
- Opt-in
style/inline-codejoins multiline code spans without changing their
parsed content, including spans in lists and blockquotes. style/wrap.measure: "codepoints"counts Unicode scalar values instead of
display columns. Display columns remain the default.style/wrap.reportUnreflowedandreportUnbreakableoptionally explain
protected paragraphs and remaining unbreakable overflow without changing
formatting safety or check-mode semantics.resolve.gitIgnoredandresolve.nestedRepositoriesopt into additional link
targets independently of files selected for linting or writing.- Repeatable
--exclude <path>omits literal files or directory subtrees from
processing while preserving them in the link index. Filesystem aliases are
canonicalized consistently, including Windows short paths. - Opt-in
structure/initial-headingchecks for an initial level-1 heading after
optional YAML/TOML front matter. It never edits content.
See
configuration
and CLI workflows
for options, defaults, and examples.
Performance and library API
Workspace indexing is path-only until a target's headings or block IDs are
needed. Fragment parsing, suffix lookups, and built-in schema validation reuse
cached work within their documented lifetimes; custom schema IDs stay isolated
between calls. A synthetic benchmark is available in scripts/benchmark.mjs in
the source checkout. Validation on the original large workspace remains pending
in #23; no
persistent index cache or worker pool is included.
createWorkspace accepts lazy Markdown source loaders and explicit directory
entries. Exhaustive consumers of LinkResolution.status must handle the new
"directory" result. Consumers constructing ResolvedConfig directly must
provide resolve (use {} for the defaults); resolveConfig() provides it for
normal callers. See the
library API.
Compatibility and project scope
Beta.1 configurations remain supported. The CLI name and Node.js minimum are
unchanged; new formatting and structural controls are opt-in.
For users of intermediate source checkouts, these additions were removed before
this release: style/wrap.keepLabelWithAtom, --changed, --staged,
structure/title-matches-filename, structure/metadata-line, and
style/accidental-marker. Remove those settings and implement consumer-specific
policies in plugins or wrappers. Git callers can supply explicit paths while
retaining workspace resolution; skip the CLI invocation for an empty selection.
These removals do not remove any published beta.1 feature.
Modified-date mutation remains consumer-owned. Semantic guards, conservative
handling of unsupported constructs, and Obsidian's verified strict-line-break
requirement remain in force. The plugin API and configuration are provisional.
Repository maintenance now includes explicit issue-scope review and a documented
label taxonomy. Full CI runs on Linux/Node.js 24, with compatibility and
installed-package checks on Linux/Node.js 22 and Windows/Node.js 24.
🤖 Generated with GPT-6 via Codex