Skip to content

v3.1.9

@cyanheads cyanheads tagged this 11 May 16:16
The heading/block scanner and outgoing-link regex walked through fenced
code blocks and inline `code` spans as if they were prose. Notes
documenting `# heading` or `paragraph ^abc` inside a ```markdown fence
false-matched as real sections, and `obsidian_get_note` with
`includeLinks: true` returned wikilinks/markdown links pulled from
fenced syntax samples.

- Added computeFenceMask(lines, from?) in section-extractor.ts —
  CommonMark fenced-block detector (matching opener char + length, no
  info string on close; unclosed fence extends to EOF). Shared by
  extractHeading, extractBlock, and the link parser.
- obsidian_get_note: parseOutgoingLinks blanks fenced blocks and
  inline code spans via stripMarkdownCode before regex extraction.
- ambiguous_path joins the errors[] contract on obsidian_get_note
  and obsidian_open_in_ui (JsonRpcErrorCode.Conflict). withCaseFallback
  spreads ctx.recoveryFor('ambiguous_path') so the recovery hint
  mirrors onto the wire.
- Tests: code-fence coverage for heading/block extraction (backtick +
  tilde, unclosed-to-EOF), inline-code stripping in parseOutgoingLinks,
  plus regression cases for setext headings, duplicate headings,
  parent/child mismatch, frontmatter array/object/boolean/null, and
  regex-special-char block IDs.

See changelog/3.1.x/3.1.9.md for the full release notes.
Assets 2
Loading