panache-cli 3.0.2__tar.gz → 3.1.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (302) hide show
  1. {panache_cli-3.0.2 → panache_cli-3.1.0}/Cargo.lock +32 -32
  2. {panache_cli-3.0.2 → panache_cli-3.1.0}/Cargo.toml +4 -4
  3. {panache_cli-3.0.2 → panache_cli-3.1.0}/PKG-INFO +1 -1
  4. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/CHANGELOG.md +11 -0
  5. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/Cargo.toml +3 -3
  6. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/core.rs +58 -1
  7. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/inline.rs +47 -5
  8. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/CHANGELOG.md +18 -0
  9. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/Cargo.toml +1 -1
  10. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/pandoc_ast.rs +34 -0
  11. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/block_dispatcher.rs +82 -16
  12. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/definition_lists.rs +20 -2
  13. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/fenced_divs.rs +7 -0
  14. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/blockquotes.rs +14 -0
  15. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/definition_lists.rs +61 -0
  16. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/core.rs +201 -4
  17. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/citations.rs +169 -21
  18. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/core.rs +3 -4
  19. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/inline_ir.rs +163 -1
  20. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/container_stack.rs +5 -1
  21. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/continuation.rs +23 -1
  22. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/list_item_buffer.rs +70 -8
  23. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml/model.rs +1 -0
  24. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml/validator.rs +94 -0
  25. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser.rs +54 -50
  26. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/inlines.rs +1 -2
  27. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/references.rs +5 -8
  28. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/includes.rs +73 -0
  29. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lib.rs +1 -0
  30. panache_cli-3.1.0/src/linter/project_index.rs +334 -0
  31. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/citation_keys.rs +1 -3
  32. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/duplicate_references.rs +17 -17
  33. panache_cli-3.1.0/src/linter/rules/duplicate_yaml_anchor.rs +116 -0
  34. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/heading_hierarchy.rs +2 -12
  35. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/undefined_anchor.rs +21 -86
  36. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/undefined_references.rs +65 -112
  37. panache_cli-3.1.0/src/linter/rules/unspaced_citation.rs +219 -0
  38. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/unused_definitions.rs +22 -171
  39. panache_cli-3.1.0/src/linter/rules/unused_yaml_anchor.rs +103 -0
  40. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules.rs +70 -0
  41. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/runner.rs +18 -0
  42. panache_cli-3.1.0/src/linter/yaml_anchors.rs +72 -0
  43. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter.rs +22 -0
  44. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/context.rs +7 -1
  45. panache_cli-3.1.0/src/lsp/conversions.rs +283 -0
  46. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/dispatch.rs +18 -2
  47. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/documents.rs +25 -9
  48. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/global_state.rs +83 -8
  49. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/code_actions.rs +14 -11
  50. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/completion.rs +13 -5
  51. panache_cli-3.1.0/src/lsp/handlers/configuration.rs +69 -0
  52. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/diagnostics.rs +12 -7
  53. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/document_highlight.rs +4 -4
  54. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/document_links.rs +10 -9
  55. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/document_symbols.rs +37 -33
  56. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/file_rename.rs +4 -3
  57. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/file_watcher.rs +1 -1
  58. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/folding_ranges.rs +37 -35
  59. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/footnote_conversion.rs +11 -8
  60. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/formatting.rs +11 -8
  61. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/goto_definition.rs +4 -4
  62. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/heading_link_conversion.rs +3 -2
  63. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/hover.rs +1 -1
  64. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/link_conversion.rs +11 -8
  65. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/linked_editing_range.rs +3 -3
  66. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/list_conversion.rs +27 -18
  67. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/prepare_rename.rs +3 -3
  68. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/references.rs +4 -3
  69. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/rename.rs +10 -7
  70. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/semantic_tokens.rs +11 -9
  71. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/workspace_symbols.rs +8 -6
  72. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/helpers.rs +3 -2
  73. panache_cli-3.1.0/src/lsp/line_index.rs +341 -0
  74. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/navigation.rs +3 -2
  75. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/testing.rs +37 -0
  76. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp.rs +5 -3
  77. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/main.rs +358 -132
  78. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/metadata/project.rs +19 -9
  79. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/metadata.rs +22 -0
  80. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/salsa.rs +674 -127
  81. panache_cli-3.1.0/src/vfs.rs +242 -0
  82. panache_cli-3.0.2/src/lsp/conversions.rs +0 -667
  83. panache_cli-3.0.2/src/lsp/handlers/configuration.rs +0 -31
  84. {panache_cli-3.0.2 → panache_cli-3.1.0}/LICENSE +0 -0
  85. {panache_cli-3.0.2 → panache_cli-3.1.0}/README.md +0 -0
  86. {panache_cli-3.0.2 → panache_cli-3.1.0}/assets/quarto-schema/schema.json +0 -0
  87. {panache_cli-3.0.2 → panache_cli-3.1.0}/build.rs +0 -0
  88. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/README.md +0 -0
  89. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/config.rs +0 -0
  90. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/directives.rs +0 -0
  91. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/blockquotes.rs +0 -0
  92. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/code_blocks.rs +0 -0
  93. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/fenced_divs.rs +0 -0
  94. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/hashpipe.rs +0 -0
  95. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/headings.rs +0 -0
  96. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/indent_utils.rs +0 -0
  97. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/inline_layout.rs +0 -0
  98. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/lists.rs +0 -0
  99. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/math/STYLE.md +0 -0
  100. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/math/linebreak.rs +0 -0
  101. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/math/operators.rs +0 -0
  102. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/math/render.rs +0 -0
  103. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/math.rs +0 -0
  104. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/metadata.rs +0 -0
  105. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/paragraphs.rs +0 -0
  106. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/sentence_wrap.rs +0 -0
  107. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/shortcodes.rs +0 -0
  108. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/smart.rs +0 -0
  109. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/tables.rs +0 -0
  110. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/utils.rs +0 -0
  111. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml/STYLE.md +0 -0
  112. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml/block_map.rs +0 -0
  113. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml/block_sequence.rs +0 -0
  114. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml/document.rs +0 -0
  115. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml/flow.rs +0 -0
  116. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml/options.rs +0 -0
  117. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml/scalar.rs +0 -0
  118. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter/yaml.rs +0 -0
  119. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/formatter.rs +0 -0
  120. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/lib.rs +0 -0
  121. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/parser.rs +0 -0
  122. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/syntax.rs +0 -0
  123. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/utils.rs +0 -0
  124. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-formatter/src/yaml_engine.rs +0 -0
  125. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/README.md +0 -0
  126. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/build.rs +0 -0
  127. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/grid_layout.rs +0 -0
  128. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/lib.rs +0 -0
  129. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/options.rs +0 -0
  130. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/admonitions.rs +0 -0
  131. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/blockquotes.rs +0 -0
  132. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/code_blocks.rs +0 -0
  133. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/container_prefix.rs +0 -0
  134. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/figures.rs +0 -0
  135. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/headings.rs +0 -0
  136. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/horizontal_rules.rs +0 -0
  137. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/html_blocks.rs +0 -0
  138. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/indented_code.rs +0 -0
  139. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/latex_envs.rs +0 -0
  140. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/line_blocks.rs +0 -0
  141. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/lists.rs +0 -0
  142. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/metadata.rs +0 -0
  143. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/myst_directives.rs +0 -0
  144. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/myst_targets.rs +0 -0
  145. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/paragraphs.rs +0 -0
  146. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/raw_blocks.rs +0 -0
  147. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/reference_links.rs +0 -0
  148. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tables.rs +0 -0
  149. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/blanklines.rs +0 -0
  150. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/code_blocks.rs +0 -0
  151. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/headings.rs +0 -0
  152. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/helpers.rs +0 -0
  153. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/lists.rs +0 -0
  154. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/losslessness.rs +0 -0
  155. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks/tests/metadata_guards.rs +0 -0
  156. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/blocks.rs +0 -0
  157. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/diagnostics.rs +0 -0
  158. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/bookdown.rs +0 -0
  159. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/bracketed_spans.rs +0 -0
  160. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/code_spans.rs +0 -0
  161. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/emoji.rs +0 -0
  162. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/escapes.rs +0 -0
  163. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/inline_executable.rs +0 -0
  164. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/inline_footnotes.rs +0 -0
  165. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/inline_html.rs +0 -0
  166. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/latex.rs +0 -0
  167. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/links.rs +0 -0
  168. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/mark.rs +0 -0
  169. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/math.rs +0 -0
  170. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/myst_roles.rs +0 -0
  171. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/myst_substitutions.rs +0 -0
  172. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/native_spans.rs +0 -0
  173. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/raw_inline.rs +0 -0
  174. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/refdef_map.rs +0 -0
  175. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/shortcodes.rs +0 -0
  176. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/sink.rs +0 -0
  177. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/strikeout.rs +0 -0
  178. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/subscript.rs +0 -0
  179. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/superscript.rs +0 -0
  180. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/svelte.rs +0 -0
  181. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/tests.rs +0 -0
  182. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/uri-schemes.csv +0 -0
  183. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines/wikilinks.rs +0 -0
  184. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/inlines.rs +0 -0
  185. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/math.rs +0 -0
  186. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/attributes.rs +0 -0
  187. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/chunk_options.rs +0 -0
  188. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/helpers.rs +0 -0
  189. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/inline_emission.rs +0 -0
  190. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/marker_utils.rs +0 -0
  191. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/text_buffer.rs +0 -0
  192. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/tree_copy.rs +0 -0
  193. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils/yaml_regions.rs +0 -0
  194. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/utils.rs +0 -0
  195. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml/cooking.rs +0 -0
  196. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml/events.rs +0 -0
  197. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml/parser.rs +0 -0
  198. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml/profile.rs +0 -0
  199. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml/scanner.rs +0 -0
  200. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/parser/yaml.rs +0 -0
  201. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/range_utils.rs +0 -0
  202. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/alerts.rs +0 -0
  203. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/ast.rs +0 -0
  204. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/attributes.rs +0 -0
  205. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/block_quotes.rs +0 -0
  206. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/blocks.rs +0 -0
  207. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/chunk_options.rs +0 -0
  208. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/citations.rs +0 -0
  209. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/code_blocks.rs +0 -0
  210. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/crossrefs.rs +0 -0
  211. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/definitions.rs +0 -0
  212. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/fenced_divs.rs +0 -0
  213. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/headings.rs +0 -0
  214. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/kind.rs +0 -0
  215. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/links.rs +0 -0
  216. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/lists.rs +0 -0
  217. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/math.rs +0 -0
  218. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/myst.rs +0 -0
  219. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/raw_tex.rs +0 -0
  220. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/shortcodes.rs +0 -0
  221. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/tables.rs +0 -0
  222. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/yaml.rs +0 -0
  223. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax/yaml_ast.rs +0 -0
  224. {panache_cli-3.0.2 → panache_cli-3.1.0}/crates/panache-parser/src/syntax.rs +0 -0
  225. {panache_cli-3.0.2 → panache_cli-3.1.0}/pyproject.toml +0 -0
  226. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bib/bibtex.rs +0 -0
  227. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bib/csl_json.rs +0 -0
  228. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bib/csl_yaml.rs +0 -0
  229. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bib/index.rs +0 -0
  230. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bib/preview.rs +0 -0
  231. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bib/ris.rs +0 -0
  232. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bib.rs +0 -0
  233. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/bin/distill_quarto_schema.rs +0 -0
  234. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/cache.rs +0 -0
  235. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/cli.rs +0 -0
  236. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/config/formatter_presets.rs +0 -0
  237. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/config/types/schema_helpers.rs +0 -0
  238. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/config/types.rs +0 -0
  239. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/config.rs +0 -0
  240. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/diagnostic_renderer.rs +0 -0
  241. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/directives.rs +0 -0
  242. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/external_formatters_common.rs +0 -0
  243. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/external_formatters_sync.rs +0 -0
  244. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/external_tools_common.rs +0 -0
  245. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/formatter.rs +0 -0
  246. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/code_block_collector.rs +0 -0
  247. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/diagnostics.rs +0 -0
  248. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters/clippy.rs +0 -0
  249. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters/eslint.rs +0 -0
  250. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters/jarl.rs +0 -0
  251. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters/ruff.rs +0 -0
  252. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters/shellcheck.rs +0 -0
  253. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters/staticcheck.rs +0 -0
  254. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters.rs +0 -0
  255. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/external_linters_sync.rs +0 -0
  256. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/fuzzy.rs +0 -0
  257. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/index.rs +0 -0
  258. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/metadata_diagnostics.rs +0 -0
  259. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/offsets.rs +0 -0
  260. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/quarto_schema/distill.rs +0 -0
  261. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/quarto_schema/interp.rs +0 -0
  262. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/quarto_schema/model.rs +0 -0
  263. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/quarto_schema/report.rs +0 -0
  264. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/quarto_schema/value.rs +0 -0
  265. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/quarto_schema.rs +0 -0
  266. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/adjacent_footnote_refs.rs +0 -0
  267. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/chunk_label_spaces.rs +0 -0
  268. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/citation_nonbreaking_space.rs +0 -0
  269. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/consumer_divergence.rs +0 -0
  270. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/crossref_as_link_target.rs +0 -0
  271. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/emoji_aliases.rs +0 -0
  272. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/empty_list_item.rs +0 -0
  273. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/empty_values.rs +0 -0
  274. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/figure_crossref_captions.rs +0 -0
  275. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/footnote_ref_in_footnote_def.rs +0 -0
  276. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/heading_eaten_attrs.rs +0 -0
  277. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/heading_strip_comments_residue.rs +0 -0
  278. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/html_entities.rs +0 -0
  279. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/link_text_is_url.rs +0 -0
  280. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/math_content.rs +0 -0
  281. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/missing_chunk_labels.rs +0 -0
  282. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/quarto_schema.rs +0 -0
  283. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/rules/stray_fenced_div_markers.rs +0 -0
  284. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/linter/yaml_resolve.rs +0 -0
  285. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/config.rs +0 -0
  286. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/file_operations.rs +0 -0
  287. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/shortcode_args.rs +0 -0
  288. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers/workspace_folders.rs +0 -0
  289. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/handlers.rs +0 -0
  290. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/symbols.rs +0 -0
  291. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/task_pool.rs +0 -0
  292. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/lsp/uri_ext.rs +0 -0
  293. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/metadata/bibliography.rs +0 -0
  294. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/metadata/citations.rs +0 -0
  295. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/metadata/references.rs +0 -0
  296. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/metadata/yaml.rs +0 -0
  297. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/parser.rs +0 -0
  298. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/range_utils.rs +0 -0
  299. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/syntax.rs +0 -0
  300. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/utils.rs +0 -0
  301. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/yaml_engine.rs +0 -0
  302. {panache_cli-3.0.2 → panache_cli-3.1.0}/src/yaml_regions.rs +0 -0
@@ -24,9 +24,9 @@ dependencies = [
24
24
 
25
25
  [[package]]
26
26
  name = "aho-corasick"
27
- version = "1.1.4"
27
+ version = "1.1.5"
28
28
  source = "registry+https://github.com/rust-lang/crates.io-index"
29
- checksum = "ddd31a130427c27518df266943a5308ed92d4b226cc639f5a8f1002816174301"
29
+ checksum = "c982642fa9e8606056828ee9a8505737230110bb1099153c79efe865c59d12ba"
30
30
  dependencies = [
31
31
  "memchr",
32
32
  ]
@@ -189,9 +189,9 @@ checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801"
189
189
 
190
190
  [[package]]
191
191
  name = "clap"
192
- version = "4.6.4"
192
+ version = "4.6.5"
193
193
  source = "registry+https://github.com/rust-lang/crates.io-index"
194
- checksum = "d91e0c145792ef73a6ad36d27c75ac09f1832222a3c209689d90f534685ee5b7"
194
+ checksum = "301b56658598e48f3648647ac6fc887be7e7108eddfa4e9b63fcf3ec58c0cadf"
195
195
  dependencies = [
196
196
  "clap_builder",
197
197
  "clap_derive",
@@ -208,9 +208,9 @@ dependencies = [
208
208
 
209
209
  [[package]]
210
210
  name = "clap_builder"
211
- version = "4.6.2"
211
+ version = "4.6.5"
212
212
  source = "registry+https://github.com/rust-lang/crates.io-index"
213
- checksum = "f09628afdcc538b57f3c6341e9c8e9970f18e4a481690a64974d7023bd33548b"
213
+ checksum = "94a65403d1a1bd28f7dc68eb8506e8874808ee5eecb59298de588e2e1407a078"
214
214
  dependencies = [
215
215
  "anstream",
216
216
  "anstyle",
@@ -366,9 +366,9 @@ dependencies = [
366
366
 
367
367
  [[package]]
368
368
  name = "data-encoding"
369
- version = "2.11.0"
369
+ version = "2.11.1"
370
370
  source = "registry+https://github.com/rust-lang/crates.io-index"
371
- checksum = "a4ae5f15dda3c708c0ade84bfee31ccab44a3da4f88015ed22f63732abe300c8"
371
+ checksum = "4583a4551df46e2792f82ceeac45e850d2e2d5debba0b91f102385cda5b11f06"
372
372
 
373
373
  [[package]]
374
374
  name = "defmt"
@@ -814,9 +814,9 @@ dependencies = [
814
814
 
815
815
  [[package]]
816
816
  name = "ignore"
817
- version = "0.4.31"
817
+ version = "0.4.32"
818
818
  source = "registry+https://github.com/rust-lang/crates.io-index"
819
- checksum = "7f8a7b8211e695a1d0cd91cace480d4d0bd57667ab10277cc412c5f7f4884f83"
819
+ checksum = "0b17771570a2b94107741a7b033f19132c2eee21d59d21b24d2ced26500bd66e"
820
820
  dependencies = [
821
821
  "crossbeam-deque",
822
822
  "globset",
@@ -930,9 +930,9 @@ dependencies = [
930
930
 
931
931
  [[package]]
932
932
  name = "jsonschema"
933
- version = "0.48.5"
933
+ version = "0.49.3"
934
934
  source = "registry+https://github.com/rust-lang/crates.io-index"
935
- checksum = "f05a6cff806294a7699d48761d4ae2bdebab7fa2eef05e4a0b83320f0ff46901"
935
+ checksum = "508004a5500f2e1f68af048f70feea2de86d35ab115d85716530860822aef397"
936
936
  dependencies = [
937
937
  "ahash",
938
938
  "bytecount",
@@ -959,18 +959,18 @@ dependencies = [
959
959
 
960
960
  [[package]]
961
961
  name = "jsonschema-regex"
962
- version = "0.48.5"
962
+ version = "0.49.3"
963
963
  source = "registry+https://github.com/rust-lang/crates.io-index"
964
- checksum = "84708dd3f6c5327478a96f37378adb27deed6a626cf84d19de780d9e8ae84b17"
964
+ checksum = "5a8b30cafa78358ae6cd1494a7d6410b89530e28bf567f862c869c667e900d9f"
965
965
  dependencies = [
966
966
  "regex-syntax",
967
967
  ]
968
968
 
969
969
  [[package]]
970
970
  name = "jsonschema-value"
971
- version = "0.48.5"
971
+ version = "0.49.3"
972
972
  source = "registry+https://github.com/rust-lang/crates.io-index"
973
- checksum = "fd8c04ab4ce60e42c4e302d3bd9d184652bb56f212495d2eea23573bcbf72556"
973
+ checksum = "5526bd381d230af94908d07e6835a33fd82a465e12f5f1e9c81f5c2aa23b3c21"
974
974
  dependencies = [
975
975
  "ahash",
976
976
  "bytecount",
@@ -994,9 +994,9 @@ checksum = "3eaf3ede3fee6db1a4c2ee091bf8a8b4dccdc6d17f656fb07896ee72867612f2"
994
994
 
995
995
  [[package]]
996
996
  name = "libredox"
997
- version = "0.1.18"
997
+ version = "0.1.19"
998
998
  source = "registry+https://github.com/rust-lang/crates.io-index"
999
- checksum = "c943259e342f1e06ff2da7a83eabdfe7f92ce10262688dbf1895ff0b3e6e4652"
999
+ checksum = "2026a5056764a10b2bf5d56488cba40da507f5493a6a429340e2004d9ed085fa"
1000
1000
  dependencies = [
1001
1001
  "libc",
1002
1002
  ]
@@ -1205,7 +1205,7 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
1205
1205
 
1206
1206
  [[package]]
1207
1207
  name = "panache"
1208
- version = "3.0.2"
1208
+ version = "3.1.0"
1209
1209
  dependencies = [
1210
1210
  "annotate-snippets",
1211
1211
  "assert_cmd",
@@ -1249,7 +1249,7 @@ dependencies = [
1249
1249
 
1250
1250
  [[package]]
1251
1251
  name = "panache-formatter"
1252
- version = "0.20.2"
1252
+ version = "0.20.3"
1253
1253
  dependencies = [
1254
1254
  "insta",
1255
1255
  "log",
@@ -1267,7 +1267,7 @@ dependencies = [
1267
1267
 
1268
1268
  [[package]]
1269
1269
  name = "panache-parser"
1270
- version = "0.22.2"
1270
+ version = "0.23.0"
1271
1271
  dependencies = [
1272
1272
  "entities",
1273
1273
  "insta",
@@ -1426,9 +1426,9 @@ dependencies = [
1426
1426
 
1427
1427
  [[package]]
1428
1428
  name = "pulldown-latex"
1429
- version = "0.7.1"
1429
+ version = "0.8.0"
1430
1430
  source = "registry+https://github.com/rust-lang/crates.io-index"
1431
- checksum = "3b8bc0583825170e3f560701d966dc2f0e3a16946da371e37d30d3ad7207fb7e"
1431
+ checksum = "1cf850381ae0dbb131f36e31d6090f55363d079ab3e518ad0323b9cb6a96d115"
1432
1432
  dependencies = [
1433
1433
  "bumpalo",
1434
1434
  ]
@@ -1516,9 +1516,9 @@ dependencies = [
1516
1516
 
1517
1517
  [[package]]
1518
1518
  name = "referencing"
1519
- version = "0.48.5"
1519
+ version = "0.49.3"
1520
1520
  source = "registry+https://github.com/rust-lang/crates.io-index"
1521
- checksum = "980e77f5cfffc592c0e7dfb6d20770a0b96a6ab94d403de7454ed9799505e4ba"
1521
+ checksum = "7af3eb523cce0df0af3c30d624b829b2dabd233172b5bc2615fcd03ceae8f746"
1522
1522
  dependencies = [
1523
1523
  "ahash",
1524
1524
  "fluent-uri 0.4.1",
@@ -1611,9 +1611,9 @@ checksum = "cf54715a573b99ac80df0bc206da022bcd442c974952c7b9720069370852e21f"
1611
1611
 
1612
1612
  [[package]]
1613
1613
  name = "salsa"
1614
- version = "0.28.1"
1614
+ version = "0.28.2"
1615
1615
  source = "registry+https://github.com/rust-lang/crates.io-index"
1616
- checksum = "a14fdadbf856222e731756d7fdbdf193a7abf8fdab009bb45f48671a42719a84"
1616
+ checksum = "cf0e374215cd2db2b5c75d7b3a99cb0cc052c0595335dfdefc03d4eb08f4aa81"
1617
1617
  dependencies = [
1618
1618
  "boxcar",
1619
1619
  "crossbeam-queue",
@@ -1637,19 +1637,19 @@ dependencies = [
1637
1637
 
1638
1638
  [[package]]
1639
1639
  name = "salsa-macro-rules"
1640
- version = "0.28.1"
1640
+ version = "0.28.2"
1641
1641
  source = "registry+https://github.com/rust-lang/crates.io-index"
1642
- checksum = "50d7dc08ba69b9aedfa61dfc4d65548ae42c0d8b90bbd62cd121776920841bcf"
1642
+ checksum = "85f4b7d4405540bbd6d4ffa52d4322d983f3781954d3073067ac1bdb028459b3"
1643
1643
 
1644
1644
  [[package]]
1645
1645
  name = "salsa-macros"
1646
- version = "0.28.1"
1646
+ version = "0.28.2"
1647
1647
  source = "registry+https://github.com/rust-lang/crates.io-index"
1648
- checksum = "ec5c48c5a4a53a6e2be9762f56566f1325d4394c011c00b3ea86ba2d13411e71"
1648
+ checksum = "445be2bfbb2f67cb663225ecd7bc5a25370c0250fca30f9d8cbad9a913650370"
1649
1649
  dependencies = [
1650
1650
  "proc-macro2",
1651
1651
  "quote",
1652
- "syn 2.0.119",
1652
+ "syn 3.0.3",
1653
1653
  ]
1654
1654
 
1655
1655
  [[package]]
@@ -7,7 +7,7 @@ authors = ["Johan Larsson <johan@jolars.co>"]
7
7
 
8
8
  [package]
9
9
  name = "panache"
10
- version = "3.0.2"
10
+ version = "3.1.0"
11
11
  edition.workspace = true
12
12
  # `distill_quarto_schema` is a dev-only vendoring bin (src/bin/); keep bare
13
13
  # `cargo run` resolving to the CLI for tooling like the pre-commit format hook.
@@ -48,8 +48,8 @@ path = "src/main.rs"
48
48
  required-features = ["cli"]
49
49
 
50
50
  [dependencies]
51
- panache-formatter = { path = "crates/panache-formatter", version = "0.20.2" }
52
- panache-parser = { path = "crates/panache-parser", version = "0.22.2", features = [
51
+ panache-formatter = { path = "crates/panache-formatter", version = "0.20.3" }
52
+ panache-parser = { path = "crates/panache-parser", version = "0.23.0", features = [
53
53
  "serde",
54
54
  "schema",
55
55
  ] }
@@ -84,7 +84,7 @@ similar-asserts = "2.0.0"
84
84
  insta = { version = "1.47.2", features = ["json"] }
85
85
  assert_cmd = "2.2.2"
86
86
  predicates = "3.1.4"
87
- jsonschema = { version = "0.48.5", default-features = false }
87
+ jsonschema = { version = "0.49.2", default-features = false }
88
88
 
89
89
  [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
90
90
  rayon = "1.10.0"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: panache-cli
3
- Version: 3.0.2
3
+ Version: 3.1.0
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.20.3](https://github.com/jolars/panache/compare/panache-formatter-v0.20.2...panache-formatter-v0.20.3) (2026-08-03)
4
+
5
+ ### Bug Fixes
6
+ - **formatter:** preserve inline code-span whitespace ([`eea7b2e`](https://github.com/jolars/panache/commit/eea7b2ecfdff0fe0c178a757ff0cf0dab2819495))
7
+ - **formatter:** keep blockquote definitions prefixed ([`1110029`](https://github.com/jolars/panache/commit/1110029153ecb21f90bc14a51350e9b9809948cf))
8
+ - **formatter:** tidy bare-marker definition body ([`0ca8a0c`](https://github.com/jolars/panache/commit/0ca8a0ca12c0b17a38a05704a64e6e85eb5dcf9f))
9
+ - **formatter:** keep display math inline in table cells ([`32f45b3`](https://github.com/jolars/panache/commit/32f45b34e4c9ff28d313a8b359b8805e65559713)), closes [#449](https://github.com/jolars/panache/issues/449)
10
+
11
+ ### Dependencies
12
+ - updated crates/panache-parser to v0.23.0
13
+
3
14
  ## [0.20.2](https://github.com/jolars/panache/compare/panache-formatter-v0.20.1...panache-formatter-v0.20.2) (2026-07-28)
4
15
 
5
16
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "panache-formatter"
3
- version = "0.20.2"
3
+ version = "0.20.3"
4
4
  edition.workspace = true
5
5
  include = [
6
6
  "/src/**/*",
@@ -18,7 +18,7 @@ keywords = ["quarto", "pandoc", "markdown", "formatter"]
18
18
  categories = ["text-processing"]
19
19
 
20
20
  [dependencies]
21
- panache-parser = { path = "../panache-parser", version = "0.22.2" }
21
+ panache-parser = { path = "../panache-parser", version = "0.23.0" }
22
22
  log = { version = "0.4.31", features = ["release_max_level_debug"] }
23
23
  rowan = "0.16.1"
24
24
  serde = { version = "1.0.228", features = ["derive"], optional = true }
@@ -44,6 +44,6 @@ pretty_yaml = "0.6.0"
44
44
  # the source of truth; this is a correctness signal, never a runtime dependency.
45
45
  # Revisit alongside the YAML oracle once the math formatter has been stable in
46
46
  # releases for a few months.
47
- pulldown-latex = "0.7.1"
47
+ pulldown-latex = "0.8.0"
48
48
  similar-asserts = "2.0.0"
49
49
  toml = "1.1.2"
@@ -1567,6 +1567,29 @@ impl Formatter {
1567
1567
  ctx.in_list_continuation = false;
1568
1568
  }
1569
1569
  }
1570
+ SyntaxKind::DEFINITION_LIST => {
1571
+ // Format the definition list to a temp buffer, then
1572
+ // re-emit each line behind the blockquote prefix so
1573
+ // the list stays inside the quote. Without this the
1574
+ // definition escapes the blockquote (dropping the
1575
+ // `>` prefix), which reparses as a top-level
1576
+ // paragraph -- a lossless/idempotency break.
1577
+ let saved_output = self.output.clone();
1578
+ self.output.clear();
1579
+ self.format_node_sync(child, indent);
1580
+ let def_output = self.output.clone();
1581
+ self.output = saved_output;
1582
+
1583
+ self.append_blockquote_prefixed_block(
1584
+ &def_output,
1585
+ &content_prefix,
1586
+ &blank_prefix,
1587
+ None,
1588
+ );
1589
+ if let Some(ctx) = self.blockquote_context.as_mut() {
1590
+ ctx.in_list_continuation = false;
1591
+ }
1592
+ }
1570
1593
  _ => {
1571
1594
  // Handle other content within block quotes
1572
1595
  self.format_node_sync(child, indent);
@@ -2119,10 +2142,44 @@ impl Formatter {
2119
2142
  self.output.push_str(tok.text());
2120
2143
  }
2121
2144
  NodeOrToken::Token(tok) if tok.kind() == SyntaxKind::NEWLINE => {
2145
+ // Bare marker (`:` alone on its line, body on the next
2146
+ // line): drop this newline so the first block pulls up
2147
+ // onto the `: ` line, matching pandoc and the
2148
+ // same-line-marker style used elsewhere. Detected by an
2149
+ // empty marker line (output still ends with `: `) with
2150
+ // a block element immediately after.
2151
+ let bare_marker_pull_up = self.output.ends_with(": ")
2152
+ && children.get(i + 1).is_some_and(|next| match next {
2153
+ NodeOrToken::Node(n) if n.kind() == SyntaxKind::PLAIN => {
2154
+ // A heading-shaped PLAIN (`# ...`) is literal
2155
+ // inline text in a compact definition; pulling
2156
+ // it onto the `: ` line would reparse as a
2157
+ // real ATX heading — a meaning change. Keep it
2158
+ // on its own line.
2159
+ let first_line = n
2160
+ .text()
2161
+ .to_string()
2162
+ .lines()
2163
+ .next()
2164
+ .unwrap_or_default()
2165
+ .trim_start_matches([' ', '\t'])
2166
+ .to_string();
2167
+ try_parse_atx_heading(&first_line).is_none()
2168
+ }
2169
+ NodeOrToken::Node(n) => is_block_element(n.kind()),
2170
+ _ => false,
2171
+ });
2122
2172
  // If next child is the first lazy paragraph, add space instead
2123
2173
  if first_para_idx.is_some_and(|idx| i + 1 == idx) {
2124
2174
  self.output.push(' ');
2125
- } else {
2175
+ } else if !bare_marker_pull_up {
2176
+ // A bare marker whose body stays on its own line (e.g.
2177
+ // a heading-shaped PLAIN that must not pull up) would
2178
+ // otherwise leave the `: ` padding as trailing
2179
+ // whitespace. Drop it back to a lone `:`.
2180
+ if self.output.ends_with(": ") {
2181
+ self.output.truncate(self.output.len() - 3);
2182
+ }
2126
2183
  self.output.push('\n');
2127
2184
  }
2128
2185
  }
@@ -30,7 +30,7 @@ fn expand_tabs_code_span(text: &str, tab_width: usize) -> String {
30
30
  }
31
31
  }
32
32
  }
33
- out.trim().to_string()
33
+ out
34
34
  }
35
35
 
36
36
  /// Render a `CITATION` or `CROSSREF` node by concatenating its child tokens.
@@ -112,6 +112,23 @@ fn collapse_internal_newlines(text: &str) -> std::borrow::Cow<'_, str> {
112
112
  std::borrow::Cow::Owned(out)
113
113
  }
114
114
 
115
+ /// Whether `node` lives inside a table cell whose row must stay on a single
116
+ /// line. Pipe and simple tables encode one row per source line, so any newline
117
+ /// emitted inside a cell breaks the table; grid and multiline tables can hold
118
+ /// multi-line block content and are excluded.
119
+ fn in_single_line_table_cell(node: &SyntaxNode) -> bool {
120
+ let mut in_cell = false;
121
+ for ancestor in node.ancestors() {
122
+ match ancestor.kind() {
123
+ SyntaxKind::TABLE_CELL => in_cell = true,
124
+ SyntaxKind::PIPE_TABLE | SyntaxKind::SIMPLE_TABLE => return in_cell,
125
+ SyntaxKind::GRID_TABLE | SyntaxKind::MULTILINE_TABLE => return false,
126
+ _ => {}
127
+ }
128
+ }
129
+ false
130
+ }
131
+
115
132
  /// Format an inline node to normalized string (e.g., emphasis with asterisks)
116
133
  pub(super) fn format_inline_node(node: &SyntaxNode, config: &Config) -> String {
117
134
  match node.kind() {
@@ -175,6 +192,12 @@ pub(super) fn format_inline_node(node: &SyntaxNode, config: &Config) -> String {
175
192
 
176
193
  // Preserve malformed multi-line triple-backtick code spans as-is so they
177
194
  // don't collapse into one line and then reparse differently on pass 2.
195
+ //
196
+ // A single-line Quarto executable chunk (```` ```{r}\n...\n``` ````) is
197
+ // instead collapsed to inline `{r} ...` form. Its surrounding newlines
198
+ // are block-structure boundaries, not code content, so they must be
199
+ // trimmed after the newline->space normalization below.
200
+ let mut collapse_block_chunk = false;
178
201
  if marker_len >= 3 && content.contains('\n') {
179
202
  let trimmed_start = content.trim_start();
180
203
  let first_line = trimmed_start.lines().next().unwrap_or_default();
@@ -183,16 +206,24 @@ pub(super) fn format_inline_node(node: &SyntaxNode, config: &Config) -> String {
183
206
  if !looks_quarto_chunk_header {
184
207
  return node.text().to_string();
185
208
  }
209
+ collapse_block_chunk = true;
186
210
  }
187
211
 
188
- // Normalize content: replace newlines with spaces and trim
189
- // Pandoc strips leading/trailing spaces from code spans
190
- let normalized_content =
212
+ // Preserve code-span content verbatim: surrounding spaces are
213
+ // meaningful and kept as-is (unlike pandoc's markdown reader, which
214
+ // strips them). Only apply spec-mandated normalizations: internal
215
+ // line endings become spaces, and tabs expand unless preserved. The
216
+ // exception is a collapsed block chunk (above), whose structural
217
+ // boundary whitespace is trimmed.
218
+ let mut normalized_content =
191
219
  if matches!(config.tab_stops, crate::config::TabStopMode::Preserve) {
192
- content.replace('\n', " ").trim().to_string()
220
+ content.replace('\n', " ")
193
221
  } else {
194
222
  expand_tabs_code_span(&content, config.tab_width)
195
223
  };
224
+ if collapse_block_chunk {
225
+ normalized_content = normalized_content.trim().to_string();
226
+ }
196
227
 
197
228
  let mut backtick_runs = std::collections::HashSet::new();
198
229
  let mut current_run = 0;
@@ -577,6 +608,17 @@ pub(super) fn format_inline_node(node: &SyntaxNode, config: &Config) -> String {
577
608
  let closing = closing_value.as_str();
578
609
  let is_environment = display_math.is_environment_form();
579
610
 
611
+ // Display math inside a single-line table cell (pipe/simple table)
612
+ // must stay on one line: those cell formats terminate a row at the
613
+ // newline, so expanding `$$…$$` into a `$$\n…\n$$` block would split
614
+ // the cell across rows and corrupt the table (pandoc keeps the math
615
+ // inline in the cell). Collapse interior whitespace and emit a
616
+ // single-line `$$content$$`, which is idempotent across passes.
617
+ if in_single_line_table_cell(node) {
618
+ let inline_content = content.split_whitespace().collect::<Vec<_>>().join(" ");
619
+ return format!("{opening}{inline_content}{closing}");
620
+ }
621
+
580
622
  // Apply delimiter style preference
581
623
  let (open, close) = if is_environment {
582
624
  (opening, closing)
@@ -1,5 +1,23 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.23.0](https://github.com/jolars/panache/compare/panache-parser-v0.22.2...panache-parser-v0.23.0) (2026-08-03)
4
+
5
+ ### Features
6
+ - **parser:** recognize bare `:` definition marker ([`cfa9eec`](https://github.com/jolars/panache/commit/cfa9eec19c010a810e906424040736067d036192))
7
+ - **linter:** add `unspaced-citation` rule ([`b36baed`](https://github.com/jolars/panache/commit/b36baedc4902c55f7bbfce151a3e0dcfde422c0e)), closes [#448](https://github.com/jolars/panache/issues/448)
8
+ - **parser:** reject undeclared YAML alias ([`4dbdfe6`](https://github.com/jolars/panache/commit/4dbdfe6e6aa2f3f298221c2f4e3f19772608cf33))
9
+ - **parser:** lift unclosed `<div>` as list-item body ([`4801192`](https://github.com/jolars/panache/commit/48011921ad9ec24041a9f647f7ecfaa086e4b8d4))
10
+ - **parser:** lift unclosed `<div>` on later content-body line ([`151515d`](https://github.com/jolars/panache/commit/151515da464940007eb32a66055b3340ad9319a4))
11
+
12
+ ### Bug Fixes
13
+ - **parser:** require a term before a definition marker ([`cc8a4fc`](https://github.com/jolars/panache/commit/cc8a4fc4b71eab6cd11a5760d66102ef6a6579cf))
14
+ - **parser:** keep def-list para open across `>` line ([`cbb55c4`](https://github.com/jolars/panache/commit/cbb55c41021e289438e475b47751740c79d05a6c))
15
+ - **parser:** suppress bare `@key` after emphasis closer ([`d6a3f87`](https://github.com/jolars/panache/commit/d6a3f8702e926769452bdd340616b3ed7f78bd15))
16
+ - **parser:** don't cite bare `@key` after a word char ([`291efec`](https://github.com/jolars/panache/commit/291efec5d4d3a6f571e7e69f36181dd9ba3319aa))
17
+ - **parser:** lift bq-nested def later-line HTML block ([`d4549fd`](https://github.com/jolars/panache/commit/d4549fd3ae66f52723df30e3a5772b97fd2f6cbb))
18
+ - **parser:** don't retag `HTML_BLOCK_DIV` in bq content body ([`34d9a4a`](https://github.com/jolars/panache/commit/34d9a4aa75ccfdcc2a31328c6e28f69b7fe2a344))
19
+ - **parser:** don't close top-level div on indented fence ([`3a603e1`](https://github.com/jolars/panache/commit/3a603e1870c48d7305cf279faaaa49e7edc27bb3))
20
+
3
21
  ## [0.22.2](https://github.com/jolars/panache/compare/panache-parser-v0.22.1...panache-parser-v0.22.2) (2026-07-28)
4
22
 
5
23
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "panache-parser"
3
- version = "0.22.2"
3
+ version = "0.23.0"
4
4
  edition.workspace = true
5
5
  readme = "README.md"
6
6
  include = [
@@ -5925,6 +5925,40 @@ mod tests {
5925
5925
  serde_json::from_str(&s).expect("to_pandoc_json must emit valid JSON")
5926
5926
  }
5927
5927
 
5928
+ fn pandoc_options() -> crate::options::ParserOptions {
5929
+ crate::options::ParserOptions {
5930
+ flavor: crate::options::Flavor::Pandoc,
5931
+ dialect: crate::options::Dialect::for_flavor(crate::options::Flavor::Pandoc),
5932
+ extensions: crate::options::Extensions::for_flavor(crate::options::Flavor::Pandoc),
5933
+ ..crate::options::ParserOptions::default()
5934
+ }
5935
+ }
5936
+
5937
+ #[test]
5938
+ fn bq_def_later_line_div_lifts_structurally() {
5939
+ // A `<div>` opening on a later line of a definition body *inside* a
5940
+ // blockquote now lifts structurally: the dispatcher pre-strips the
5941
+ // `> ` markers + content indent from the body, reparses it, and
5942
+ // re-injects the prefix bytes during graft (byte-lossless). The
5943
+ // projector consumes the lifted `HTML_BLOCK_DIV` and emits a
5944
+ // structural `Div` matching pandoc's block shape. (The surrounding
5945
+ // `Para [Term]` / `Plain [text]` divergence is a pre-existing
5946
+ // definition-list-in-blockquote gap, unrelated to the HTML lift.)
5947
+ // Also a regression guard for the former `HTML_BLOCK_DIV without
5948
+ // structural inner shape` debug-assert panic.
5949
+ let input = "> Term\n>\n> : text\n>\n> <div id=\"d\">\n> x\n> </div>\n";
5950
+ let tree = parse(input, Some(pandoc_options()));
5951
+ let native = to_pandoc_ast(&tree);
5952
+ assert!(
5953
+ native.contains("Div ( \"d\" , [] , [] ) [ Para [ Str \"x\" ] ]"),
5954
+ "expected a structural `Div (\"d\") [Para [Str \"x\"]]`, got: {native}"
5955
+ );
5956
+ assert!(
5957
+ !native.contains("RawBlock"),
5958
+ "the lifted bq-def div must not leave any opaque RawBlock, got: {native}"
5959
+ );
5960
+ }
5961
+
5928
5962
  #[test]
5929
5963
  fn empty_doc_emits_envelope_with_no_blocks() {
5930
5964
  let v = parse_to_json("");