2.35.0 (2026-04-16)
Features
- add info-level debugging logs for external formatters (
6228b55)
Bug Fixes
- switch back to
v* tagging for main program (9adc923)
- parser: handle utf-8 properly (
92da1cd), closes #164
- lsp: remove extra space in tasklist-bullet list action (
6cc80b3)
- lsp: convert to actual task list (
233f47c)
- parser: handle utf-8 properly (
92da1cd), closes #164
- switch back to
v* tagging for main program (9adc923)
- switch back to
v* tagging for main program (9adc923)
2.34.0 (2026-04-14)
Features
- allow auto-flavor for
.{R,r}markdown (27f3877)
- linter: add rule for unused labels (a9d88d1)
- linter: consider references across project (2b687dc)
- lsp: support go-to-references for footnote definition (3d6e9f8)
Dependencies
- The following workspace dependencies were updated
- dependencies
- panache-parser bumped from 0.2.1 to 0.3.0
2.33.1 (2026-04-14)
Bug Fixes
- formatter: avoid reflow-induced reparsing (388b288), closes #134
- formatter: prevent reinterpreting parse avoiding wrap (fbf7733)
- parser: handle deep indentation and roman nos in list (04b80f5), closes #143
- parser: handle deep roman list and quotation (b7aac81), closes #137
- scripts: correctly resolve tag in installation scripts (5b474fc)
Reverts
- “chore: don’t include component in tag for root release” (eb9e15f)
Dependencies
- The following workspace dependencies were updated
- dependencies
- panache-parser bumped from 0.2.0 to 0.2.1
2.33.0 (2026-04-13)
Features
- cli: add
--report argument for debug command (55f3489)
- formatter: normalize non-breaking spaces to
\ (8c1756b)
Bug Fixes
- cli: change
RUFF_CACHE_DIR to PANACHE_CACHE_DIR (644480b)
- formatter: don’t allow
([@sec](https://github.com/sec)) to wrap to new line (215a9c1), closes #138
- formatter: fix block quote marker leakage into emphasis (b5deeb3)
- formatter: improve citation and hashpipe handling (768c741)
- formatters: use proper extensions for external format (9fd9ab9)
- parser: fix continuation detection in indented context (4f1e51d), closes #139
- parser: fix losslessness bug in grid table parsing (28f47dd), closes #132
- parser: fix missing whitespace in nested fenced code (426aa87)
- parser: mitigate infinite recursion in line block (612dc80)
- parser: mitigate UTF-8 panic in hashpipe path (26c702d), closes #135
- parser: preserve nonbreaking spaces in parser (8c1756b)
- parser: properly handle blandlines inside display math (1e37724), closes #130
Reverts
- “chore(release): release 2.33.0 [skip ci]” (01ac037)
- “ci: update smoke test” (93c2ae9)
Dependencies
- The following workspace dependencies were updated
- dependencies
- panache-parser bumped from 0.1.0 to 0.2.0
2.32.0 (2026-04-09)
Features
- config: more presets and add metadata (8623393)
- editors: add Zed extension (c87e45d), closes #102
- formatter: contextual abbreviaton rules for wrapping (1cf1a57)
- formatter: indent tables by two spaces (864cc25), closes #89
- formatter: presets for sqlfmt, alejandra, etc (75f3df3)
- formatter: reinstate wrapping in footnotes (6bc8be1)
- formatter: wrap table captions (84a7fd1)
- implement caching for linting and formatting (db37713)
Bug Fixes
- cli: unify missing linters/formatters (20c06c7)
- formatter: fix idempotency issue with lists and images (9a4c5ae)
- formatter: handle idempotency issues in YAML, divs (100f94c)
- formatter: handle inline footnote newline wrapping (b65a1f2)
- formatter: setup proper rules for sentence wrapping (4227f3a), closes #113
- formatter: treat code as non-breakable in sentence wrap (482fe61)
- formatter: use pandoc blankline normalization in divs (8491e97)
- formatting: slacken non-breaking code logic (131bc56)
- linter: pass explicit shell dialect for shellsheck (2d8c065)
- parser: handle complex fenced div case (34e6e8c)
- workaround ambiguous fenced div idempotency (19409ce)
2.31.0 (2026-04-02)
Features
- linter: add ruff as external linter (a0506b6)
- linter: add support for eslint external linter (4d51e97)
- linter: attach notes to external lints (954dbd9)
- linter: restrict external linters by language (92a812c)
- linters: support shellsheck as external linter (6875102)
- linter: support clippy as external linter (db3340f)
- linter: support shellsheck as external linter (e84c323)
- linter: support staticcheck as external linter (d665b04)
- lsp: add source action for linting (01722b3)
- lsp: use exact mappings for code action on ext linter (5b905ef)
Bug Fixes
- formatter: honor wrapping mode in lists (7fbba26), closes #103
- linter: gate notes on linter path (external/internal) (498ec8a)
2.30.0 (2026-04-01)
Features
- lsp: add hover preview for equations (ea5f8b0)
- parser,lsp: support bookdown equation references (bb1946b)
Bug Fixes
- formatter: preserve non-breaking spaces (e0861db)
- linter: canonicalize absolute path to project root (8362c9e)
- parser,formatter: handle inline executable code (a2ba2f9)
- parser: catch headings after yaml with no blankline (ba61c32)
- unify cross-reference resolution (c324753)
2.29.0 (2026-03-28)
Features
- formatter: separate top-level lists with blankline (777e090)
- lsp,config: add suppor for
gfm-auto-identifiers (31736da)
- lsp: add file renaming for linked documents (8a7d08a)
- lsp: add hover support for for heading references (3ca2b24)
- lsp: add hover support for linked markdown files (4d88705)
- lsp: add hover support for reference definitions (16bdd6f)
- lsp: add rename handler for footnote ids (42be81d)
- lsp: code action for converting bullet/ordered lists (d620006)
- lsp: code action for converting list to task list (f04e91e)
- lsp: extend file rename to shortcodes and nav elements (492877f)
- lsp: support go-to-definition for example lists (b7fbc19)
- lsp: support renaming for example references (15f6267)
- parser: parse yaml comments (8b8e731)
- support
mmd-header-identifiers extension (ffe7834)
- support
mmd-link-attributes extension (5b44f9e)
- support
mmd-title-block extension (276e31c)
Bug Fixes
- formatter: handle idempotency failure with AUTO_LINK (94c6c95)
- formatter: mitigate idempotency growth in hashpipe yaml (82a3da1)
- lsp,linter: correctly resolve cross-reference to header (c3a42cd)
- parser: actually enable
hard-line-breaks extension (70c9201)
- parser: add missing code block extensions for gfm flavor (1058df6)
2.28.0 (2026-03-25)
Features
- config: gate executable code behind extension (27a7e7e)
- lsp: add code action for converting to explicit link (0b4a86c)
- parser: emit
CROSSREF_* markers for crossrefs (99d1174)
- parser: introduce bookdown-specific syntax tokens (8a63e79)
- wasm: update the WASM library (d004f73)
Bug Fixes
- formatter: wrap and space blockquote in deflist (22409e9)
- lsp: don’t allow slugs in implicit links (e7926fa)
- lsp: resolve go-to-headin for implicit links (13fb0c4)
- parser: emit list item buffer in nested def list (9342463)
- parser: handle nested lazy lists in definition lists (7b32604)
- wasm: clean up and fix some warnings (1261e92)
2.27.0 (2026-03-24)
Features
- cli: don’t error when running on glob or dir (99e0440)
- formatter: format definition lists like pandoc (8d96a40)
- formatter: format nested headings (75a74b3)
- formatter: normalize loose and compact definitions (21b3c87)
- lsp: filter headings in document symbols (c6af6bb)
- lsp: introduce incremental parsing as experimental opt (5be6df6)
Bug Fixes
- check LINK_REF first (91ee195)
- config: match includes/excludes relative to config root (db2f95d)
- parser: encapsulate multiple definition list items (e28fda6)
- parser: handle list as first lement in definition (5871252)
- parser: parse headings in definition list items (3aa9686)
- parser: parse headings in list items (55e5632)
- pre-commit: remove pandoc submodule (5baed02), closes #92
2.26.0 (2026-03-21)
Features
- formatter: escape
] (f846ffc)
- formatter: standardize checkboxes to
[x] (59312ba)
- introduce
pandoc-compat field (58d9e54)
- lsp: implement document links (eb590e0)
Bug Fixes
- parser: don’t accept
[] as tasklist check box (8700911)
- parser: emit LINK_REF nodes for reference images (127946d)
2.25.0 (2026-03-20)
Features
- cli: add
--dump-passes to panache debug format (f54549e)
- editors: provide qmd and rmd languages in vscode (da9bc5a)
- formatter: compress simple table columns to content (98c4e8a)
Bug Fixes
- formatter: don’t interpret ````markdown as fenced code (9e17ebc)
- formatter: preserve markers in headerless table (62ec59a)
- formatter: recover lost indentation in code block (2f94707)
- formatter: restrict yaml frontmatter replacement (7e9bf72)
- lsp: correctly handle renaiming (b5c0b5b)
- lsp: limit highlight of definition to actual label (e377024)
- parser,formatter: fix regression in definition list (10a2cd7)
- parser: don’t treat continuation as code block (927efeb)
- parser: fix losslessness bug in empty definition (4ede2f8)
- parser: match pandoc’s rules for list item identation (c15688d)
2.24.1 (2026-03-19)
Bug Fixes
- formatter: account for prefix when formatting hashpipe (b3471c2)
- formatters: don’t hide warnings behind log flag (59b5dc0)
- lsp: handle hyphenated references when renaming (2d507b8)
2.24.0 (2026-03-19)
Features
- formatter: report missing external formatters jointly (1e5cd25)
- lsp: add workspace heading symbols (ac6a8d9)
2.23.0 (2026-03-18)
Features
- config: exclude
LICENSE.md files by default (8cdad49), closes #80
- linter,lsp: unify bookdown chunk label resolution (a71301f)
- linter: warn on uncaptioned bookdown figure crossrefs (2de688a)
- lsp,linter: support bookdown-style divs (d6f08af)
- lsp: add support for Pandoc heading links (9690922)
Bug Fixes
- cli: fix exit code with
--force-exclude (f140a7b), closes #82
- formatter: enforce wrapping in list item (c9266cb), closes #81
- lsp: correctly report heading symbols (97d8bdb), closes #84
- lsp: handle bookdown crossrefs with dashes (101e546)
2.22.0 (2026-03-17)
Features
- add automatic installer scripts (1f20e76)
- add suppor for
tex_math_gfm extension (70e74cb)
- config: add
extensions.<flavor> (2accb02)
- config: add
flavor-overrides config option (6f54ff4)
- formatter: format horizontal rules to line-width (4910606)
Bug Fixes
- formatter: handle hashpipe YAML correct (27b3df6)
- formatter: mitigate indentation infinite growth (264e49c), closes #78
- parser,formatter: handle multiline exec options (e19c8ed)
- parser: don’t parse horizontal rules as metadata/table (b695b3d)
2.21.0 (2026-03-16)
Features
- build binaries for linux musl too (d6ada87)
- build binaries for windows arm too (05f8c46)
- cli: add
--message-format <fmt> for linter (2eafc8c)
- config: add
[format] as replacement for [style] (c86ef90)
- config: add include, exclude, extend-include/exclude (0d3a05e), closes #71
- config: expose
auto-identifiers extension (bdf0081)
- config: move rules to
[lint.rules] category (6fc9ade)
- formatter: drop blanklines at start of document (e784c3d)
- formatter: remove code block config options (3dd5846)
- linter: add contextual hint for heading hierarchy lint (1ce7a18)
- linter: improve lint display (bd74591)
- lsp: adapt project graphs to
project.render settings (be63ee9)
- parser,linter: add support for github emojis
:smile: (116fad2)
Bug Fixes
- config: correctly align GFM flavor with Pandoc (7f151f8)
- exclude release-assets from crate package to prevent crates.io 413 error (#77) (34d8196)
- fix problem with
--force-exclude (f77b670)
- fix relative path from root issue on macos (22470ab)
- parser: add multiple missing extensions guards (b8e2e37)
2.20.0 (2026-03-13)
Features
- linter: add linting rule for missing code chunk labels (a8f4709), closes #68
- linter: add rule for duplicate chunk labels (50806ba)
- lsp: add find-references support for crossrefs (475bd94)
- lsp: add go-to-def, rename for exec chunk labels (5f4367d)
- lsp: extend find-references to citations (ec2d328)
- parser: parse in-comment execution options (35c772d)
Bug Fixes
- parser: handle unicode properly (5886d05)
2.19.0 (2026-03-12)
Features
- add support for github alerts (31d8055)
- linter: add linting rule for spaces in labels (d8e522e)
- linter: add missing link references rule (2232449)
Bug Fixes
- formatter: handle labels with spaces in them (be100ae), closes #66
- lsp: handle umlauts properly (a8227fb), closes #65
- parser: handle
--- without blankline before (746d827)
2.18.0 (2026-03-12)
Features
- cli: add
--no-color and --isolated (f19b7f5)
- cli: add
--stdin-filename (a574782)
Bug Fixes
- formatter: maintain idempotency with
and \\n (b22e91e)
- formatter: remove space in code block fences (0a81b0f)
- parser: parse
\cmd{\n<content>\n} as TEX_BLOCK (8373ffb)
2.17.0 (2026-03-11)
Features
- editors: add VS code and Open VSX extensions (#57) (0570c84), closes #55
2.16.0 (2026-03-11)
Features
- cli: add
panache debug format for debugging (1319489)
- formatter: use first-fit word wrapping (66957be)
Bug Fixes
- build: gate warnings behind
debug_assertions (71c1b24)
- build: use
InitializeResult defaults, update lockfile (e1b045e), closes #53
- formatter: fix idempotency in emphasis formatting (5e492a5)
- formatter: fix idempotency issue in definition list (04b2b7f)
2.15.0 (2026-03-10)
Features
- formatter: normalize indented tables (c4b394f)
Bug Fixes
- formatter: fix idempotency around table caption (aad08f6)
- formatter: fix idempotency failure with display math (d7e2b47)
- formatter: fix idempotency issue in hard break in list (1b46852)
- formatter: fix idempotency issue with display math (f47edc9)
- formatter: handle footer and multirow grid tables (821e54f)
- formatter: handle idempotency in code span formatting (188d10f)
- formatter: handle idempotency with blockquote marker (854b5fe)
- formatter: handle tex blocks properly in formatter (04ad902)
- formatter: preserve malformed display math with dollars (78e2907)
- formatter: protect inline math spaces (d6470b6)
- parser,formatter: handle consecutive tables (f1a4c08)
- parser,formatter: harden grid table parsing (05bdab9)
- parser: don’t hardcode emphasis markers (ce7125e)
- parser: parse whitespace after code block starter (3d28e74)
2.14.1 (2026-03-10)
Bug Fixes
- formatter: correct list idempotency (3b0db0e)
- formatter: fix idempotency failure in atx headings (6a61caf)
- formatter: handle div in loose list (6514e58)
- formatter: handle escaped char inside table (130df6f)
- formatter: handle horizontal before setext heading (225d7b2)
- formatter: handle non-ASCI able content (4ea70f4)
- formatter: handle underscore emphasis with nested asterisks (71f41b0)
- formatter: subdue blockquote marker after hard break (e3b53c9)
- parser,formatter: tighten code fence logic (9c1ffcc)
- parser: allow fenced blocks to interrupt paragraphs (0e521b5)
- parser: allow references with leading spaces (9051331)
- parser: avoid stealing captions as definition items (22855d0)
- parser: cater to spanning-style rows (57e3ab3)
- parser: don’t interpret continuation line as list (af73bd4)
- parser: emit leading spaces before rule (8d58381)
- parser: emit original line block marker (0866449)
- parser: fix backtick-parsing in attributes (5f82e22)
- parser: handle table with complex layout (47fd1a3)
- parser: honor
blank-before-header extension (c1f3571)
- parser: preserve leading whitespace before fences (7f12c62)
- parser: relax fence block detection (6cc356d)
2.14.0 (2026-03-09)
Features
- cli: add
--quiet flag (47ee630)
- cli: add
--verify for format and parser (f8fd6e6)
- cli: make
--verify a pure smoke-test screen (3619207)
- formatter: don’t treat semicolons as sentence break (ade76a9), closes #48
Bug Fixes
- formatter: apply block code formatting inline (5d76bea)
- formatter: don’t line break after initials (3030451)
- formatter: fix idempotency in fancy list formatting (f5c6509)
- formatter: handle crossref in blockquote (2b4e729)
- formatter: handle empty cells in grid tables (ecc7515)
- formatter: harden external formatting (2946761)
- formatter: require blankline before line block (0589776)
- parser: correctly parse trailing
# (942c1fa)
- parser: don’t drop trailing whitespace in fenced div (7bd2d31)
- parser: don’t require blankline before fenced div (f17c3aa)
- parser: don’t trim trailing space in definition (edeae6f)
- parser: handle line block inside grid table (100ebed)
- parser: handle list inside blockquote (e20e756)
- parser: handle rows exceeding separator width (4a42c63)
- parser: handle shortcode in heading (200bfd8)
- parser: handle spaces in indented code block (cdbf952)
- parser: handle table after div close (a4c2940)
- parser: handle trailing whitespace in grid table (0677abb)
- parser: handle unicode in shortcode (7f603dc)
- parser: parse indented block in block quote losslessly (bbd2f86)
- paser: don’t trim trailing whitespace after marker (32e9734)
2.13.0 (2026-03-07)
Features
- formatter: add
tab-width setting (3e02336)
- formatter: normalize spacing inside fenced div (6aa73d0)
- formatter: wrap multiline footnote refs as Pandoc (722c76a)
- lsp: add
--debug flag (ad5d81a)
- parser: add support for raw tex blocks (841a663)
Bug Fixes
- formatter: fix wrapping for definition lists (4dd084b)
- formatter: omit quarto/knitr comments from formatting (36ceccb)
- formatter: use correct ruff args (408d330), closes #46
- linter: mitigate spurious warning for quarto crossrefs (a0e0769)
- lsp,linter: correct bib file found range, deduplicate (9d5dfbb)
- parser,formatter: align with pandoc’s fenced div parse (1982972)
- parser: fix infinite recursiong bug in tex cmd parse (1f71833)
- parser: handle tab stops gracefully (9f8aa96)
- parser: only accept four spaces-indented def lists (11fb109)
2.12.0 (2026-03-05)
Features
- add RIS bibliography support (128eaf0)
- formatter,linter: support ignore directives (17a3df2)
- formatter: add blanklines between definitions if loose (c6a3d14)
- improve hover preview for citations (45e0f11)
- support JSON bibliographies (3a9ee26)
Bug Fixes
- fix compilation error (194858a)
- formatter: handle indentation in indented code blocks (9112856)
- handle code block on first line of definition item (4bb42f5)
- lsp: expand selection for edit range to top-level block (0a39399)
- lsp: improve expansion handling for range formatting (11c4d51)
- lsp: replace correct segment when using range format (5968b6a)
- parser, formatter: correctly handle blocks in deflist (4ffc8bc)
- parser,formatter: handle loose/compact definitions (063f9f3), closes #45
- parser: don’t treat indented lists and code blocks (7b14077)
- parser: require blankline before list in definition (ac971c0)
- resolve bibliography paths relative to metadata files (3a878bc), closes #44
2.11.0 (2026-03-04)
Features
- add support for implicit header references (d9fe4a3)
- formatter: add preset for clang-format (d3f2a60)
- formatter: add preset for shfmt (83143a2)
- formatter: add preset for taplo TOML formatter (d5b83e5)
- lsp,linter: add support for inline YAML references (08c141d)
- lsp,linter: enable bookdown project integration (315bc50)
- lsp,linter: support diagnostics and more for includes (15b61fc)
- lsp,linter: use project and metadata files (3ed27fb)
- lsp: add go-to-def handler for crossrefs (35c2a06)
- lsp: add renaming support for bibliography entries (7bb30d0)
- lsp: handle quarto cross-references separately (086e6ed)
- lsp: maintain project-wide state (6ea5356)
- parser: support bookdown crossref syntax (45ef2eb)
Bug Fixes
- formatter: handle equation attributes with line after (eecf1a5)
- lsp,linter: deduplicate bibliography entries (6602569)
- lsp: fix duplicate bibliography issue (7f85ff7)
- lsp: show correct lines for bib diagnostics (30177ae)
- lsp: use platform-independent file Uris (658c3a4)
- lsp: use platform-independent URIs (2aecf8e)
- parser, formatter: don’t wrap latex commands (619dea5)
2.10.0 (2026-03-03)
Features
- formatter: add sentence-wrapping mode (4048f55)
- linter,lsp: add auto-fixing for external linters (f73e3be)
Bug Fixes
- lsp,linter: return correct range for bibliography lint (313ca32)
- lsp: add external lint fixing code action (1e5a847)
- lsp: fix go-to-definition and hover handlers for citations (ef7d5e7)
- lsp: handle go-to-definition for references (7a0bc17)
2.9.0 (2026-03-02)
Features
- formatter: normalize links to match pandoc (3b5fdce)
Bug Fixes
- handle list inside fenced div (6f1014c)
- lsp: correctly extract text in AST wrappers (9bacf4d)
- lsp: correctly map external lints to buffer (4bef1b3)
2.8.0 (2026-03-02)
Features
- cli: add
--json option to parse (c84ce49)
- config: consistently use kebab-case (b01b5b1)
- lsp: add support for external bibliographies (47d5177)
- parser: handle CLRF line endings in bibtex parser (0d8a2c8)
Bug Fixes
- correctly parse and format inline code spans with `s (7a6336b)
- parser: correctly parse CRLF newline at end (af31e51)
- parser: handle UTF-8 correctly in citation parsing (4678265)
- parser: handle whitespace after heading and before attr (ee230ef)
2.8.0 (2026-03-02)
Features
- cli: add
--json option to parse (c84ce49)
- config: consistently use kebab-case (b01b5b1)
- lsp: add support for external bibliographies (47d5177)
- parser: handle CLRF line endings in bibtex parser (0d8a2c8)
Bug Fixes
- correctly parse and format inline code spans with `s (7a6336b)
- parser: correctly parse CRLF newline at end (af31e51)
- parser: handle UTF-8 correctly in citation parsing (4678265)
- parser: handle whitespace after heading and before attr (ee230ef)
2.7.0 (2026-03-01)
Features
- add pre-commit hook configuration (b31ecdb), closes #37
Bug Fixes
- handle complex blocks in blockquotes (ec69e51)
- parser: fix bug in losing blockquote marker (403165b)
2.6.2 (2026-02-27)
Bug Fixes
- parser: handle multilines in blockquotes (02d7c20)
- reimplement support for setext headings (12c9182)
2.6.1 (2026-02-25)
Bug Fixes
- parser: handle complex emphasis cases (f7fe514)
2.6.0 (2026-02-20)
Features
- config: add
[style] section, deprecate old version (2b83231)
- config: add
append_args and prepend_args (56cb4c1)
- config: allow partial overrides (d53e1d0)
- config: flavor-independent code block styling (5c14f2f)
- config: remove pointless
min_fence_length (4204ed5)
- config: remove unused
normalize_indented (da087e4)
- config: use
[formatters.<formatter] style (7d91023)
- formatter: don’t assume
#| for unknown language (b50f3ab)
- formatter: format simple tables (5d048c6)
- formatter: support ojs, mermaid, dot in hashpipe conversion (8695ae2)
- formatter: trim trailing blanklines (6e7cd61)
- linter: add rule for duplicate references (97fbc8a)
- lsp: add convert to loose/compact list code action (a63c104)
- lsp: convert between footnote styles (2fe5030)
- lsp: enable footnote preview on hover (d25c74a)
- parser: drop
ROOT node from AST tree (6c9bd8f)
- parser: parse
]( in links and images (73a8da0)
- update wasm build (ff6acd9)
Bug Fixes
- config: override code block flavor defaults (4023e29)
- formatter: concatenate successive blanklines (5e1c06a)
- formatter: correct alignment in multline tables (04c9ad6)
- formatter: fix idempotency issue in table formatting (fe4af95)
- formatter: handle attributes correctly in code blocks (6228182)
- parser: avoid parsing expressions (69bea2b)
- parser: correctly parse multiline captions before table (c8389d4)
- parser: don’t parse links in
CODE_INFO (2f10b8b)
- wasm: guard yaml formatter behind wasm flag (063143c)
2.5.1 (2026-02-18)
Bug Fixes
- formatter: properly handle grid table alignments (56c5bba)
- parser: fix issues with CRLF parsing (6ec62f0)
2.5.0 (2026-02-17)
Features
- parser: parse compact and loose lists and use
Plain (3258724)
- parser: parse quarto equation references (0ce1f7d)
- parser: parse shortcodes (c6abc24)
- parser: rename BlockMathMarker to DisplayMathMarker (68c9c32)
- parser: standalone figures as
Figure node (59d74e7)
Bug Fixes
- config: override flavor defaults (8fe291b)
- formatter: strip newline for external yaml format (3d54b3e)
- parser: correctly parse lists with different markers (273ba39)
- parser: handle lazy lists with blanklines (9d82a92)
- parser: parse blanklines away from plain nodes (e7972ee)
- parser: parse display math if begin/ends on delim line (ef16594)
2.4.0 (2026-02-15)
Features
- formatter: format YAML metadata with ext formatters (eb89f06)
- lsp: emit warnings for missing bibliographies (14fa9c9)
Bug Fixes
- formatter: wrap first lines in definition lists (3ad7576)
2.3.0 (2026-02-14)
Features
- cli: add support for external linters (c1937de), closes #23
- formatter: add support for formatting grid tables (ef47bac)
- lsp: add go to definition for links, images, footnotes (d749424)
- lsp: add support for external linters (just jarl for r now) (5162096)
- lsp: implement
textDocment/foldingRange (7ce6ce2)
- parser: parse code block language as token (c29016e)
- parser: preseve LF and CRLF line endings (a470713)
Bug Fixes
- formatter: handle unicode in table formatting (44f4bcf)
- formatter: honor “line-ending” configuration option (248e2f2)
- lsp: correctly detect flavor in document symbols (60af5b4)
- parser: consistently handly CRLF line endings (6b43c9c)
- parser: correctly parse captions before tables (2cb9e2d)
- wasm: fix wasm build by fixing command invocation (a9a29a7)
2.2.0 (2026-02-13)
Features
- cli: format and lint multiple files, or by globbing (f53a8fd)
- formatter: initial formatting of execution options (879b291)
- formatter: normalize hard line breaks to escaped (ada9f0f)
Bug Fixes
- correctly parse and handle escaped line breaks (49154ff)
- formatter: handle content after opening math delim (ef8c220)
- lsp: auto-detect flavor from file extension (84dc96f)
- make parser lossless (4add809)
- parser: check for blank line in math after delim (f65858e)
2.1.0 (2026-02-12)
Features
- lsp: add initial support for document symbols (81a7ef9)
Bug Fixes
- don’t wrap quarto/rmd code chunk args in quotes (48ebd68), closes #22
2.0.0 (2026-02-12)
⚠ BREAKING CHANGES
- change external formatting to be opt-in
Features
- add presets for external formatters (70b297a)
- add range formatting (902cb95)
- change external formatting to be opt-in (8d91753)
- formatter: standardize unordered lists to
- marker (33ae608)
- implement a linter (4af0d5e)
- implement wrapping for links and images (929f993)
- lsp: integrate linter with LSP server (f0ae3e9)
Bug Fixes
- correctly deal with nested lists in definitions (5f00893)
- correctly delegate non-stdin formatters (869d473)
- correctly praser backslash-escaped math (c28cdc5)
- don’t use defunct
--write flag (bbe3291)
- fix bug in flavor deserialization (3e40177)
- fix clippy problems (5996d90)
- fix erroneous handling of blanklines in indented code (d058b61)
- fix some linting issues (11fc9a7)
- handle code blocks nested in lists (761737d)
- lsp: correctly compute range to replace (056f5cc)
- properly emit table blanklines into AST (c48fc9e)
- properly handle code blocks in lists (42930e0)
- refactor parser to capture lossless tree (9bbfd9f)
- use async formatter in LSP formatting (8efbb1a)