panache-cli 3.17.1__tar.gz → 3.18.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 (398) hide show
  1. {panache_cli-3.17.1 → panache_cli-3.18.0}/Cargo.lock +42 -41
  2. {panache_cli-3.17.1 → panache_cli-3.18.0}/Cargo.toml +5 -5
  3. {panache_cli-3.17.1 → panache_cli-3.18.0}/PKG-INFO +14 -7
  4. {panache_cli-3.17.1 → panache_cli-3.18.0}/README.md +13 -6
  5. {panache_cli-3.17.1 → panache_cli-3.18.0}/build.rs +50 -3
  6. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/CHANGELOG.md +25 -0
  7. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/Cargo.toml +3 -3
  8. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/config.rs +44 -2
  9. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/blocks.rs +95 -134
  10. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/core.rs +22 -11
  11. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/headings.rs +8 -13
  12. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/inline.rs +43 -69
  13. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/inline_layout.rs +40 -36
  14. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/lists.rs +13 -3
  15. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/preserve.rs +15 -29
  16. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/sentence_wrap.rs +1 -1
  17. panache_cli-3.18.0/crates/panache-formatter/src/formatter/smart.rs +597 -0
  18. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/tables.rs +195 -86
  19. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter.rs +49 -0
  20. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/lib.rs +1 -0
  21. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/CHANGELOG.md +21 -0
  22. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/Cargo.toml +2 -2
  23. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/options.rs +6 -1
  24. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/pandoc_ast.rs +38 -85
  25. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/code_blocks.rs +91 -22
  26. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tables.rs +1 -1
  27. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/lists.rs +101 -0
  28. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/blockquotes.rs +9 -0
  29. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/list_items.rs +10 -0
  30. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core.rs +9 -5
  31. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/citations.rs +73 -4
  32. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/core.rs +103 -6
  33. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_ir.rs +65 -6
  34. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/kind.rs +2 -0
  35. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/cli.rs +74 -2
  36. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/config/types.rs +21 -0
  37. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/config.rs +98 -15
  38. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/formatter.rs +3 -0
  39. panache_cli-3.18.0/src/inspect.rs +116 -0
  40. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/code_block_collector.rs +82 -0
  41. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/execution_context.rs +45 -0
  42. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters/jarl.rs +24 -17
  43. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters.rs +48 -6
  44. panache_cli-3.18.0/src/linter/rules/docs/swallowed-list-marker.md +15 -0
  45. panache_cli-3.18.0/src/linter/rules/docs/undefined-references.md +15 -0
  46. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/swallowed_list_marker.rs +143 -5
  47. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/undefined_references.rs +125 -27
  48. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/main.rs +99 -23
  49. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/utils.rs +13 -8
  50. panache_cli-3.17.1/crates/panache-formatter/src/formatter/smart.rs +0 -30
  51. panache_cli-3.17.1/src/linter/rules/docs/swallowed-list-marker.md +0 -8
  52. panache_cli-3.17.1/src/linter/rules/docs/undefined-references.md +0 -6
  53. {panache_cli-3.17.1 → panache_cli-3.18.0}/LICENSE +0 -0
  54. {panache_cli-3.17.1 → panache_cli-3.18.0}/assets/quarto-schema/schema.json +0 -0
  55. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/README.md +0 -0
  56. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/directives.rs +0 -0
  57. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/blockquotes.rs +0 -0
  58. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/code_blocks.rs +0 -0
  59. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/containers.rs +0 -0
  60. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/document.rs +0 -0
  61. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/fenced_divs.rs +0 -0
  62. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/hashpipe.rs +0 -0
  63. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/indent_utils.rs +0 -0
  64. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/STYLE.md +0 -0
  65. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/ir.rs +0 -0
  66. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/lower.rs +0 -0
  67. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/printer.rs +0 -0
  68. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math/render.rs +0 -0
  69. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/math.rs +0 -0
  70. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/metadata.rs +0 -0
  71. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/paragraphs.rs +0 -0
  72. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/raw.rs +0 -0
  73. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/shortcodes.rs +0 -0
  74. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/table_conversion.rs +0 -0
  75. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/utils.rs +0 -0
  76. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/STYLE.md +0 -0
  77. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/block_map.rs +0 -0
  78. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/block_sequence.rs +0 -0
  79. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/document.rs +0 -0
  80. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/flow.rs +0 -0
  81. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/options.rs +0 -0
  82. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml/scalar.rs +0 -0
  83. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/formatter/yaml.rs +0 -0
  84. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/parser.rs +0 -0
  85. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/syntax.rs +0 -0
  86. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/utils.rs +0 -0
  87. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-formatter/src/yaml_engine.rs +0 -0
  88. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/README.md +0 -0
  89. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/build.rs +0 -0
  90. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/data/math_symbols.json +0 -0
  91. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/data/unicode-math.LICENSE +0 -0
  92. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/data/unicode-math.NOTICE +0 -0
  93. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/grid_layout.rs +0 -0
  94. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/lib.rs +0 -0
  95. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/block_dispatcher.rs +0 -0
  96. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/admonitions.rs +0 -0
  97. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/blockquotes.rs +0 -0
  98. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/container_prefix.rs +0 -0
  99. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/definition_lists.rs +0 -0
  100. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/fenced_divs.rs +0 -0
  101. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/figures.rs +0 -0
  102. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/headings.rs +0 -0
  103. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/horizontal_rules.rs +0 -0
  104. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/html_blocks.rs +0 -0
  105. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/hugo.rs +0 -0
  106. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/indented_code.rs +0 -0
  107. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/latex_envs.rs +0 -0
  108. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/line_blocks.rs +0 -0
  109. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/lists.rs +0 -0
  110. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/metadata.rs +0 -0
  111. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/myst_directives.rs +0 -0
  112. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/myst_targets.rs +0 -0
  113. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/paragraphs.rs +0 -0
  114. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/raw_blocks.rs +0 -0
  115. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/reference_links.rs +0 -0
  116. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/blanklines.rs +0 -0
  117. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/blockquotes.rs +0 -0
  118. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/code_blocks.rs +0 -0
  119. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/content_containers.rs +0 -0
  120. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/definition_lists.rs +0 -0
  121. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/figures.rs +0 -0
  122. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/footnote_marker_line.rs +0 -0
  123. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/fragment_context.rs +0 -0
  124. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/frame_pinning.rs +0 -0
  125. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/headings.rs +0 -0
  126. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/helpers.rs +0 -0
  127. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/losslessness.rs +0 -0
  128. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/metadata_guards.rs +0 -0
  129. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks/tests/tables.rs +0 -0
  130. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/blocks.rs +0 -0
  131. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/definition_lists.rs +0 -0
  132. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/core/html_interruptions.rs +0 -0
  133. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/diagnostics.rs +0 -0
  134. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/bookdown.rs +0 -0
  135. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/bracketed_spans.rs +0 -0
  136. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/code_spans.rs +0 -0
  137. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/emoji.rs +0 -0
  138. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/escapes.rs +0 -0
  139. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/hard_breaks.rs +0 -0
  140. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/hugo.rs +0 -0
  141. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_executable.rs +0 -0
  142. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_footnotes.rs +0 -0
  143. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/inline_html.rs +0 -0
  144. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/latex.rs +0 -0
  145. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/links.rs +0 -0
  146. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/mark.rs +0 -0
  147. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/math.rs +0 -0
  148. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/myst_roles.rs +0 -0
  149. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/myst_substitutions.rs +0 -0
  150. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/native_spans.rs +0 -0
  151. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/raw_inline.rs +0 -0
  152. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/refdef_map.rs +0 -0
  153. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/shortcodes.rs +0 -0
  154. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/sink.rs +0 -0
  155. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/strikeout.rs +0 -0
  156. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/subscript.rs +0 -0
  157. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/superscript.rs +0 -0
  158. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/svelte.rs +0 -0
  159. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/tests.rs +0 -0
  160. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/uri-schemes.csv +0 -0
  161. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines/wikilinks.rs +0 -0
  162. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/inlines.rs +0 -0
  163. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/math.rs +0 -0
  164. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/reparse.rs +0 -0
  165. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/attributes.rs +0 -0
  166. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/chunk_options.rs +0 -0
  167. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/container_stack.rs +0 -0
  168. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/continuation.rs +0 -0
  169. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/helpers.rs +0 -0
  170. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/inline_emission.rs +0 -0
  171. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/list_item_buffer.rs +0 -0
  172. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/marker_utils.rs +0 -0
  173. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/raw_html.rs +0 -0
  174. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/text_buffer.rs +0 -0
  175. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/tree_copy.rs +0 -0
  176. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils/yaml_regions.rs +0 -0
  177. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/utils.rs +0 -0
  178. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/verify.rs +0 -0
  179. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/cooking.rs +0 -0
  180. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/events.rs +0 -0
  181. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/model.rs +0 -0
  182. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/parser.rs +0 -0
  183. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/profile.rs +0 -0
  184. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/scanner.rs +0 -0
  185. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml/validator.rs +0 -0
  186. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser/yaml.rs +0 -0
  187. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/parser.rs +0 -0
  188. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/range_utils.rs +0 -0
  189. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/semantic/math.rs +0 -0
  190. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/semantic.rs +0 -0
  191. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/alerts.rs +0 -0
  192. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/ast.rs +0 -0
  193. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/attributes.rs +0 -0
  194. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/block_quotes.rs +0 -0
  195. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/blocks.rs +0 -0
  196. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/chunk_options.rs +0 -0
  197. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/citations.rs +0 -0
  198. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/code_blocks.rs +0 -0
  199. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/code_span.rs +0 -0
  200. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/consumer.rs +0 -0
  201. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/crossrefs.rs +0 -0
  202. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/definitions.rs +0 -0
  203. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/fenced_divs.rs +0 -0
  204. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/headings.rs +0 -0
  205. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/html.rs +0 -0
  206. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/hugo.rs +0 -0
  207. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/inlines.rs +0 -0
  208. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/links.rs +0 -0
  209. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/lists.rs +0 -0
  210. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/math.rs +0 -0
  211. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/myst.rs +0 -0
  212. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/raw_tex.rs +0 -0
  213. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/references.rs +0 -0
  214. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/shortcodes.rs +0 -0
  215. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/tables.rs +0 -0
  216. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/yaml.rs +0 -0
  217. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax/yaml_ast.rs +0 -0
  218. {panache_cli-3.17.1 → panache_cli-3.18.0}/crates/panache-parser/src/syntax.rs +0 -0
  219. {panache_cli-3.17.1 → panache_cli-3.18.0}/pyproject.toml +0 -0
  220. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bib/bibtex.rs +0 -0
  221. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bib/csl_json.rs +0 -0
  222. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bib/csl_yaml.rs +0 -0
  223. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bib/index.rs +0 -0
  224. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bib/preview.rs +0 -0
  225. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bib/ris.rs +0 -0
  226. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bib.rs +0 -0
  227. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/bin/distill_quarto_schema.rs +0 -0
  228. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/cache.rs +0 -0
  229. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/config/formatter_presets.rs +0 -0
  230. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/config/types/schema_helpers.rs +0 -0
  231. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/diagnostic_renderer.rs +0 -0
  232. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/directives.rs +0 -0
  233. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/external_formatters_common.rs +0 -0
  234. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/external_formatters_sync.rs +0 -0
  235. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/external_tools_common.rs +0 -0
  236. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/includes.rs +0 -0
  237. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/incremental.rs +0 -0
  238. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/io_context.rs +0 -0
  239. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lib.rs +0 -0
  240. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/diagnostics.rs +0 -0
  241. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/docs.rs +0 -0
  242. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters/clippy.rs +0 -0
  243. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters/eslint.rs +0 -0
  244. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters/jolars.rs +0 -0
  245. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters/ruff.rs +0 -0
  246. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters/shellcheck.rs +0 -0
  247. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters/staticcheck.rs +0 -0
  248. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/external_linters_sync.rs +0 -0
  249. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/fix.rs +0 -0
  250. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/fuzzy.rs +0 -0
  251. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/index.rs +0 -0
  252. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/metadata_diagnostics.rs +0 -0
  253. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/offsets.rs +0 -0
  254. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/project_index.rs +0 -0
  255. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/quarto_schema/distill.rs +0 -0
  256. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/quarto_schema/interp.rs +0 -0
  257. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/quarto_schema/model.rs +0 -0
  258. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/quarto_schema/report.rs +0 -0
  259. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/quarto_schema/value.rs +0 -0
  260. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/quarto_schema.rs +0 -0
  261. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/render.rs +0 -0
  262. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/adjacent_footnote_refs.rs +0 -0
  263. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/blank_line_in_display_math.rs +0 -0
  264. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/blank_line_in_inline_footnote.rs +0 -0
  265. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/chunk_label_spaces.rs +0 -0
  266. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/citation_keys.rs +0 -0
  267. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/citation_nonbreaking_space.rs +0 -0
  268. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/consumer_divergence.rs +0 -0
  269. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/crossref_as_link_target.rs +0 -0
  270. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/adjacent-footnote-refs.md +0 -0
  271. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/blank-line-in-display-math.md +0 -0
  272. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/blank-line-in-inline-footnote.md +0 -0
  273. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/chunk-label-spaces.md +0 -0
  274. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/citation-keys.md +0 -0
  275. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/citation-nonbreaking-space.md +0 -0
  276. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/consumer-divergence.md +0 -0
  277. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/crossref-as-link-target.md +0 -0
  278. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/duplicate-reference-labels.md +0 -0
  279. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/duplicate-yaml-anchor.md +0 -0
  280. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/empty-list-item.md +0 -0
  281. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/empty-values.md +0 -0
  282. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/figure-crossref-captions.md +0 -0
  283. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/footnote-after-image.md +0 -0
  284. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/footnote-ref-in-footnote-def.md +0 -0
  285. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/footnote-swallowed-by-bracket.md +0 -0
  286. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/heading-eaten-attrs.md +0 -0
  287. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/heading-hierarchy.md +0 -0
  288. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/heading-strip-comments-residue.md +0 -0
  289. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/html-entities.md +0 -0
  290. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/html-unclosed-attribute.md +0 -0
  291. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/inline-math-line-break.md +0 -0
  292. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/link-text-is-url.md +0 -0
  293. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/malformed-citation.md +0 -0
  294. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/math-syntax.md +0 -0
  295. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/missing-chunk-labels.md +0 -0
  296. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/quarto-schema-unknown-key.md +0 -0
  297. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/quarto-schema.md +0 -0
  298. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/reversed-footnote-marker.md +0 -0
  299. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/space-before-punctuation.md +0 -0
  300. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/stray-fenced-div-markers.md +0 -0
  301. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/table-column-count.md +0 -0
  302. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/undefined-anchor.md +0 -0
  303. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/unknown-emoji-alias.md +0 -0
  304. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/unspaced-citation.md +0 -0
  305. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/unspaced-list-marker.md +0 -0
  306. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/unsupported-metadata-key.md +0 -0
  307. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/unused-definitions.md +0 -0
  308. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/docs/unused-yaml-anchor.md +0 -0
  309. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/duplicate_references.rs +0 -0
  310. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/duplicate_yaml_anchor.rs +0 -0
  311. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/emoji_aliases.rs +0 -0
  312. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/empty_list_item.rs +0 -0
  313. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/empty_values.rs +0 -0
  314. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/figure_crossref_captions.rs +0 -0
  315. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/footnote_after_image.rs +0 -0
  316. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/footnote_ref_in_footnote_def.rs +0 -0
  317. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/footnote_swallowed_by_bracket.rs +0 -0
  318. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/heading_eaten_attrs.rs +0 -0
  319. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/heading_hierarchy.rs +0 -0
  320. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/heading_strip_comments_residue.rs +0 -0
  321. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/html_entities.rs +0 -0
  322. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/html_unclosed_attribute.rs +0 -0
  323. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/inline_math_line_break.rs +0 -0
  324. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/link_text_is_url.rs +0 -0
  325. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/malformed_citation.rs +0 -0
  326. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/math_content.rs +0 -0
  327. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/missing_chunk_labels.rs +0 -0
  328. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/quarto_schema.rs +0 -0
  329. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/reversed_footnote_marker.rs +0 -0
  330. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/space_before_punctuation.rs +0 -0
  331. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/stray_fenced_div_markers.rs +0 -0
  332. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/table_column_count.rs +0 -0
  333. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/undefined_anchor.rs +0 -0
  334. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/unspaced_citation.rs +0 -0
  335. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/unspaced_list_marker.rs +0 -0
  336. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/unsupported_metadata_key.rs +0 -0
  337. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/unused_definitions.rs +0 -0
  338. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules/unused_yaml_anchor.rs +0 -0
  339. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/rules.rs +0 -0
  340. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/runner.rs +0 -0
  341. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/yaml_anchors.rs +0 -0
  342. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter/yaml_resolve.rs +0 -0
  343. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/linter.rs +0 -0
  344. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/config.rs +0 -0
  345. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/context.rs +0 -0
  346. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/conversions.rs +0 -0
  347. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/dispatch.rs +0 -0
  348. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/documents.rs +0 -0
  349. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/global_state.rs +0 -0
  350. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/code_actions.rs +0 -0
  351. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/completion.rs +0 -0
  352. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/configuration.rs +0 -0
  353. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/diagnostics.rs +0 -0
  354. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/document_highlight.rs +0 -0
  355. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/document_links.rs +0 -0
  356. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/document_symbols.rs +0 -0
  357. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/file_operations.rs +0 -0
  358. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/file_rename.rs +0 -0
  359. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/file_watcher.rs +0 -0
  360. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/folding_ranges.rs +0 -0
  361. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/footnote_conversion.rs +0 -0
  362. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/formatting.rs +0 -0
  363. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/goto_definition.rs +0 -0
  364. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/heading_link_conversion.rs +0 -0
  365. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/hover.rs +0 -0
  366. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/link_conversion.rs +0 -0
  367. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/linked_editing_range.rs +0 -0
  368. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/list_conversion.rs +0 -0
  369. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/prepare_rename.rs +0 -0
  370. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/references.rs +0 -0
  371. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/rename.rs +0 -0
  372. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/semantic_tokens.rs +0 -0
  373. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/shortcode_args.rs +0 -0
  374. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/table_conversion.rs +0 -0
  375. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/workspace_folders.rs +0 -0
  376. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers/workspace_symbols.rs +0 -0
  377. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/handlers.rs +0 -0
  378. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/helpers.rs +0 -0
  379. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/line_index.rs +0 -0
  380. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/navigation.rs +0 -0
  381. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/symbols.rs +0 -0
  382. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/task_pool.rs +0 -0
  383. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/testing.rs +0 -0
  384. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp/uri_ext.rs +0 -0
  385. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/lsp.rs +0 -0
  386. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/metadata/bibliography.rs +0 -0
  387. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/metadata/citations.rs +0 -0
  388. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/metadata/project.rs +0 -0
  389. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/metadata/references.rs +0 -0
  390. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/metadata/yaml.rs +0 -0
  391. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/metadata.rs +0 -0
  392. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/parser.rs +0 -0
  393. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/range_utils.rs +0 -0
  394. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/salsa.rs +0 -0
  395. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/syntax.rs +0 -0
  396. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/vfs.rs +0 -0
  397. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/yaml_engine.rs +0 -0
  398. {panache_cli-3.17.1 → panache_cli-3.18.0}/src/yaml_regions.rs +0 -0
@@ -121,9 +121,9 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
121
121
 
122
122
  [[package]]
123
123
  name = "badness-formatter"
124
- version = "0.10.2"
124
+ version = "0.12.0"
125
125
  source = "registry+https://github.com/rust-lang/crates.io-index"
126
- checksum = "b174164ae9bb3abaa0115a64ecb11a54cdee5c93c9104c1cdf2c5da282039d76"
126
+ checksum = "bc7954f6b8f0fb0571f4a7a933288e2c92a80309298d6b0686b68e3102c3a2dc"
127
127
  dependencies = [
128
128
  "badness-parser",
129
129
  "rowan 0.17.0",
@@ -131,9 +131,9 @@ dependencies = [
131
131
 
132
132
  [[package]]
133
133
  name = "badness-parser"
134
- version = "0.11.1"
134
+ version = "0.12.0"
135
135
  source = "registry+https://github.com/rust-lang/crates.io-index"
136
- checksum = "32b45795e07c88249e867c1f2dd84ca0d5d78062753fb5fa75c8eb1ece8e202b"
136
+ checksum = "59890aa9f05b632ce68b2cf5d1efaba0726a9e3afc76ea2df8a7c1aab5fec8b1"
137
137
  dependencies = [
138
138
  "phf 0.14.0",
139
139
  "phf_codegen",
@@ -294,9 +294,9 @@ dependencies = [
294
294
 
295
295
  [[package]]
296
296
  name = "clapdown"
297
- version = "0.2.0"
297
+ version = "0.3.1"
298
298
  source = "registry+https://github.com/rust-lang/crates.io-index"
299
- checksum = "68bcefa13c36a119d957224c65214f792139033a34f8157297ac2a7fff5a343a"
299
+ checksum = "b247c825c52bf1a125ed92810ee82340e304938d4162683c4c4af2fe5e205748"
300
300
  dependencies = [
301
301
  "clap",
302
302
  ]
@@ -557,9 +557,9 @@ dependencies = [
557
557
 
558
558
  [[package]]
559
559
  name = "fancy-regex"
560
- version = "0.19.2"
560
+ version = "0.20.1"
561
561
  source = "registry+https://github.com/rust-lang/crates.io-index"
562
- checksum = "d301f5bf187b3c295fce6468d3875037a0bccc5f6b151c63cac2f85babf21912"
562
+ checksum = "7b32c6266c2b14b0db7aa3409d3ee3f0ddda3b1d0279c4ba24fbec18af81d90e"
563
563
  dependencies = [
564
564
  "bit-set",
565
565
  "regex-automata",
@@ -574,9 +574,9 @@ checksum = "da7c62ceae207dd37ea5b845da6a0696c799f85e97da1ab5b7910be3c1c80223"
574
574
 
575
575
  [[package]]
576
576
  name = "flate2"
577
- version = "1.1.10"
577
+ version = "1.1.11"
578
578
  source = "registry+https://github.com/rust-lang/crates.io-index"
579
- checksum = "6e634e2e0ebac1ee034020da1ca582e17ffe4e0f5e985823721e168928136dcb"
579
+ checksum = "626d4928326b646e70f65ed36fc7cf9f206bdb68a0019ee7c6b4709da4e084c4"
580
580
  dependencies = [
581
581
  "crc32fast",
582
582
  "miniz_oxide",
@@ -679,9 +679,9 @@ dependencies = [
679
679
 
680
680
  [[package]]
681
681
  name = "globset"
682
- version = "0.4.20"
682
+ version = "0.4.21"
683
683
  source = "registry+https://github.com/rust-lang/crates.io-index"
684
- checksum = "07c34a9410465b45bd9787443bc7370f37735bad04b0f0cd57ff1a3186c98988"
684
+ checksum = "f98b0d85522dc0a824cfebbc9594ff4a9b289c568bea0370319dfbdf20ccdd2d"
685
685
  dependencies = [
686
686
  "aho-corasick",
687
687
  "bstr",
@@ -736,9 +736,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
736
736
 
737
737
  [[package]]
738
738
  name = "ignore"
739
- version = "0.4.33"
739
+ version = "0.4.34"
740
740
  source = "registry+https://github.com/rust-lang/crates.io-index"
741
- checksum = "00b69833ed729dc5aa7d19541d96d6cf8e9137194207a04916d658e43168402f"
741
+ checksum = "484be5657551d7868d67587df967fb4fcbe9d266a761cc855aaa148fda0b3cc7"
742
742
  dependencies = [
743
743
  "crossbeam-deque",
744
744
  "globset",
@@ -850,9 +850,9 @@ dependencies = [
850
850
 
851
851
  [[package]]
852
852
  name = "jsonschema"
853
- version = "0.59.0"
853
+ version = "0.61.0"
854
854
  source = "registry+https://github.com/rust-lang/crates.io-index"
855
- checksum = "1b320ad34c177093d21622edc9215bb608294c2333ff296672c0c8265a5ee60c"
855
+ checksum = "e1324c9bebe052584e96e7c80d2f9cf2d86e1a6d83d621a46932c5636996be18"
856
856
  dependencies = [
857
857
  "ahash",
858
858
  "bytecount",
@@ -878,23 +878,24 @@ dependencies = [
878
878
 
879
879
  [[package]]
880
880
  name = "jsonschema-regex"
881
- version = "0.59.0"
881
+ version = "0.61.1"
882
882
  source = "registry+https://github.com/rust-lang/crates.io-index"
883
- checksum = "1472f7be79026f79e01a9b172263311e829d7c210d57b39cb57037abc0ce0500"
883
+ checksum = "84cdf272371326ec8db8ce2608a52635d8edeeaf0189604e2ad627327b79e6db"
884
884
  dependencies = [
885
885
  "regex-syntax",
886
886
  ]
887
887
 
888
888
  [[package]]
889
889
  name = "jsonschema-value"
890
- version = "0.59.0"
890
+ version = "0.61.1"
891
891
  source = "registry+https://github.com/rust-lang/crates.io-index"
892
- checksum = "e5a7550a7a84787e715ead0b47e01fa8c6bb7c3413630f91a8f2094c06c2078a"
892
+ checksum = "e5e4a7f3b3c19c9cd2aa37937e1704229a0bcb1b446308a148574d56ace0c6ba"
893
893
  dependencies = [
894
894
  "ahash",
895
895
  "bytecount",
896
896
  "fraction",
897
897
  "getrandom 0.3.4",
898
+ "memchr",
898
899
  "num-cmp",
899
900
  "num-traits",
900
901
  "serde_json",
@@ -933,9 +934,9 @@ dependencies = [
933
934
 
934
935
  [[package]]
935
936
  name = "log"
936
- version = "0.4.34"
937
+ version = "0.4.35"
937
938
  source = "registry+https://github.com/rust-lang/crates.io-index"
938
- checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6"
939
+ checksum = "5d15f86d12da44cd8d4ec3c73984537eb7f4cadcb9776a575a0a8a05ca11005c"
939
940
 
940
941
  [[package]]
941
942
  name = "lsp-server"
@@ -1114,7 +1115,7 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
1114
1115
 
1115
1116
  [[package]]
1116
1117
  name = "panache"
1117
- version = "3.17.1"
1118
+ version = "3.18.0"
1118
1119
  dependencies = [
1119
1120
  "annotate-snippets",
1120
1121
  "assert_cmd",
@@ -1159,7 +1160,7 @@ dependencies = [
1159
1160
 
1160
1161
  [[package]]
1161
1162
  name = "panache-formatter"
1162
- version = "0.28.1"
1163
+ version = "0.29.0"
1163
1164
  dependencies = [
1164
1165
  "badness-formatter",
1165
1166
  "insta",
@@ -1179,7 +1180,7 @@ dependencies = [
1179
1180
 
1180
1181
  [[package]]
1181
1182
  name = "panache-parser"
1182
- version = "0.34.1"
1183
+ version = "0.35.0"
1183
1184
  dependencies = [
1184
1185
  "badness-parser",
1185
1186
  "entities",
@@ -1461,9 +1462,9 @@ dependencies = [
1461
1462
 
1462
1463
  [[package]]
1463
1464
  name = "referencing"
1464
- version = "0.59.0"
1465
+ version = "0.61.1"
1465
1466
  source = "registry+https://github.com/rust-lang/crates.io-index"
1466
- checksum = "473f4dcca28ead7ee0f8e5b5d0bbae2549f4fc4c958fb20af328961b6c174be3"
1467
+ checksum = "eba9bfd41f0d7d8fbf9c7ed23b788a3f97e9f5d9419be812ff7e08b8dc6b14ec"
1467
1468
  dependencies = [
1468
1469
  "ahash",
1469
1470
  "fluent-uri 0.4.1",
@@ -1717,9 +1718,9 @@ dependencies = [
1717
1718
 
1718
1719
  [[package]]
1719
1720
  name = "serde_spanned"
1720
- version = "1.1.2"
1721
+ version = "1.1.3"
1721
1722
  source = "registry+https://github.com/rust-lang/crates.io-index"
1722
- checksum = "4e7523beb55eece201a2356bee0bbca0d1ab466c14c07703b2e0ee6d42cb0c2c"
1723
+ checksum = "9c187e0a369471c550af028cba56d4f4fa2a489ad28151ae95a4d340a2a8b782"
1723
1724
  dependencies = [
1724
1725
  "serde_core",
1725
1726
  ]
@@ -1770,9 +1771,9 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
1770
1771
 
1771
1772
  [[package]]
1772
1773
  name = "smallvec"
1773
- version = "1.16.4"
1774
+ version = "1.16.5"
1774
1775
  source = "registry+https://github.com/rust-lang/crates.io-index"
1775
- checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8"
1776
+ checksum = "149309498a5f7334b12ddae0cad8aba81ce785fe91755068867e017cf98fee46"
1776
1777
 
1777
1778
  [[package]]
1778
1779
  name = "smol_str"
@@ -1892,9 +1893,9 @@ checksum = "650d82e943da333637be9f1567d33d605e76810a26464edfd7ae74f7ef181e95"
1892
1893
 
1893
1894
  [[package]]
1894
1895
  name = "toml"
1895
- version = "1.1.8+spec-1.1.0"
1896
+ version = "1.2.1+spec-1.1.0"
1896
1897
  source = "registry+https://github.com/rust-lang/crates.io-index"
1897
- checksum = "20489e00e4d8741d6be680764cc12e270655e375a20d1011e844a9c3379e678d"
1898
+ checksum = "d5755c51863cdac711f1956baf8eb9588e060755f7d3c4c979e70ea1e1f32cd7"
1898
1899
  dependencies = [
1899
1900
  "indexmap",
1900
1901
  "serde_core",
@@ -1907,9 +1908,9 @@ dependencies = [
1907
1908
 
1908
1909
  [[package]]
1909
1910
  name = "toml_datetime"
1910
- version = "1.1.2+spec-1.1.0"
1911
+ version = "1.1.3+spec-1.1.0"
1911
1912
  source = "registry+https://github.com/rust-lang/crates.io-index"
1912
- checksum = "2b86d767906c6c42421dcba507eb9d203e779497710a47782a224bb871653053"
1913
+ checksum = "173f25c883cd2176a2d8212155638c0a60d484a9d84546d270866f40f56b6e49"
1913
1914
  dependencies = [
1914
1915
  "serde_core",
1915
1916
  ]
@@ -1925,9 +1926,9 @@ dependencies = [
1925
1926
 
1926
1927
  [[package]]
1927
1928
  name = "toml_writer"
1928
- version = "1.1.3+spec-1.1.0"
1929
+ version = "1.2.0+spec-1.1.0"
1929
1930
  source = "registry+https://github.com/rust-lang/crates.io-index"
1930
- checksum = "06bdbd8cfc056b8d2e2e85f29b56a3bdbecb527cef81eb39e3e7b98af4652770"
1931
+ checksum = "009dbb7700f11c55ef83aebbe4c0e9cf1f1ac0844bd8d6f00dc38f302026e13a"
1931
1932
 
1932
1933
  [[package]]
1933
1934
  name = "tracing"
@@ -1974,9 +1975,9 @@ checksum = "c6f5d3c3b1bf09027a88a6bc961fc00497d651009560b5463668dc81b0fa87a8"
1974
1975
 
1975
1976
  [[package]]
1976
1977
  name = "unicode-width"
1977
- version = "0.2.2"
1978
+ version = "0.2.3"
1978
1979
  source = "registry+https://github.com/rust-lang/crates.io-index"
1979
- checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254"
1980
+ checksum = "ca718471876992059f251e33aafc334346ada08042b7661dd1fe313a9bced557"
1980
1981
 
1981
1982
  [[package]]
1982
1983
  name = "utf8parse"
@@ -1986,9 +1987,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
1986
1987
 
1987
1988
  [[package]]
1988
1989
  name = "uuid"
1989
- version = "1.29.0"
1990
+ version = "1.29.1"
1990
1991
  source = "registry+https://github.com/rust-lang/crates.io-index"
1991
- checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514"
1992
+ checksum = "4a06f08a856b009bc7bbaf7d3e79808595d032dd19074c0c2ef26e49e03e6bdc"
1992
1993
  dependencies = [
1993
1994
  "getrandom 0.4.3",
1994
1995
  "js-sys",
@@ -9,7 +9,7 @@ authors = ["Johan Larsson <johan@jolars.co>"]
9
9
 
10
10
  [package]
11
11
  name = "panache"
12
- version = "3.17.1"
12
+ version = "3.18.0"
13
13
  edition.workspace = true
14
14
  rust-version.workspace = true
15
15
  # `distill_quarto_schema` is a dev-only vendoring bin (src/bin/); keep bare
@@ -55,11 +55,11 @@ path = "src/main.rs"
55
55
  required-features = ["cli"]
56
56
 
57
57
  [dependencies]
58
- panache-formatter = { path = "crates/panache-formatter", version = "0.28.1", features = [
58
+ panache-formatter = { path = "crates/panache-formatter", version = "0.29.0", features = [
59
59
  "serde",
60
60
  "schema",
61
61
  ] }
62
- panache-parser = { path = "crates/panache-parser", version = "0.34.1", features = [
62
+ panache-parser = { path = "crates/panache-parser", version = "0.35.0", features = [
63
63
  "serde",
64
64
  "schema",
65
65
  ] }
@@ -95,7 +95,7 @@ similar-asserts = "2.0.0"
95
95
  insta = { version = "1.47.2", features = ["json"] }
96
96
  assert_cmd = "2.2.2"
97
97
  predicates = "3.1.4"
98
- jsonschema = { version = "0.59.0", default-features = false }
98
+ jsonschema = { version = "0.61.0", default-features = false }
99
99
 
100
100
  [target.'cfg(not(target_arch = "wasm32"))'.dependencies]
101
101
  rayon = "1.10.0"
@@ -117,7 +117,7 @@ lsp = [
117
117
  clap = { version = "4.6.1", features = ["derive", "env"] }
118
118
  clap_complete = "4.6.0"
119
119
  clap_mangen = "0.3.0"
120
- clapdown = "0.2.0"
120
+ clapdown = "0.3.1"
121
121
  flate2 = "1.1.9"
122
122
 
123
123
  [package.metadata.deb]
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: panache-cli
3
- Version: 3.17.1
3
+ Version: 3.18.0
4
4
  Classifier: Development Status :: 5 - Production/Stable
5
5
  Classifier: Environment :: Console
6
6
  Classifier: Intended Audience :: Developers
@@ -26,17 +26,15 @@ Project-URL: Repository, https://github.com/jolars/panache
26
26
 
27
27
  # Panache <img src='https://raw.githubusercontent.com/jolars/panache/refs/heads/main/images/logo.png' align="right" width="139" />
28
28
 
29
- [![Build and
30
- Test](https://github.com/jolars/panache/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
29
+ [![CI](https://img.shields.io/github/actions/workflow/status/jolars/panache/build-and-test.yml?branch=main&label=CI)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
31
30
  [![Crates.io](https://img.shields.io/crates/v/panache.svg?logo=rust)](https://crates.io/crates/panache)
32
31
  [![Open
33
32
  VSX](https://img.shields.io/open-vsx/v/jolars/panache?logo=vsix)](https://open-vsx.org/extension/jolars/panache)
34
33
  [![VS
35
34
  Code](https://vsmarketplacebadges.dev/version-short/jolars.panache.svg?logo=vsix)](https://marketplace.visualstudio.com/items?itemName=jolars.panache)
36
- [![PyPI
37
- version](https://badge.fury.io/py/panache-cli.svg?icon=si%3Apython)](https://badge.fury.io/py/panache-cli)
38
- [![npm
39
- version](https://badge.fury.io/js/@panache-cli%2Fpanache.svg?icon=si%3Anpm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
35
+ [![PyPi](https://img.shields.io/pypi/v/panache-cli?logo=python&label=PyPi)](https://badge.fury.io/py/panache-cli)
36
+ [![npm](https://img.shields.io/npm/v/@panache-cli/panache?logo=npm&label=npm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
37
+ [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.18608442-blue)](https://doi.org/10.5281/zenodo.18608442)
40
38
 
41
39
  Panache is a language server, formatter, and linter for Quarto and other
42
40
  Markdown flavors, built in Rust with a lossless CST parser and support for
@@ -337,3 +335,12 @@ documentation, well-structured code, and testing infrastructure provided by
337
335
  Pandoc. We also owe significant debt to the rust-analyzer project, on which
338
336
  Panache is heavily inspired.
339
337
 
338
+ ## Citation
339
+
340
+ If you use Panache in your research, please cite the release you used. Select
341
+ that release in the [Zenodo archive](https://doi.org/10.5281/zenodo.18608442)
342
+ and export its citation. To cite Panache generally, use the concept DOI
343
+ `10.5281/zenodo.18608442`.
344
+
345
+ Machine-readable metadata is available in [CITATION.cff](CITATION.cff).
346
+
@@ -1,16 +1,14 @@
1
1
  # Panache <img src='https://raw.githubusercontent.com/jolars/panache/refs/heads/main/images/logo.png' align="right" width="139" />
2
2
 
3
- [![Build and
4
- Test](https://github.com/jolars/panache/actions/workflows/build-and-test.yml/badge.svg)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
3
+ [![CI](https://img.shields.io/github/actions/workflow/status/jolars/panache/build-and-test.yml?branch=main&label=CI)](https://github.com/jolars/panache/actions/workflows/build-and-test.yml)
5
4
  [![Crates.io](https://img.shields.io/crates/v/panache.svg?logo=rust)](https://crates.io/crates/panache)
6
5
  [![Open
7
6
  VSX](https://img.shields.io/open-vsx/v/jolars/panache?logo=vsix)](https://open-vsx.org/extension/jolars/panache)
8
7
  [![VS
9
8
  Code](https://vsmarketplacebadges.dev/version-short/jolars.panache.svg?logo=vsix)](https://marketplace.visualstudio.com/items?itemName=jolars.panache)
10
- [![PyPI
11
- version](https://badge.fury.io/py/panache-cli.svg?icon=si%3Apython)](https://badge.fury.io/py/panache-cli)
12
- [![npm
13
- version](https://badge.fury.io/js/@panache-cli%2Fpanache.svg?icon=si%3Anpm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
9
+ [![PyPi](https://img.shields.io/pypi/v/panache-cli?logo=python&label=PyPi)](https://badge.fury.io/py/panache-cli)
10
+ [![npm](https://img.shields.io/npm/v/@panache-cli/panache?logo=npm&label=npm)](https://badge.fury.io/js/@panache-cli%2Fpanache)
11
+ [![DOI](https://img.shields.io/badge/DOI-10.5281%2Fzenodo.18608442-blue)](https://doi.org/10.5281/zenodo.18608442)
14
12
 
15
13
  Panache is a language server, formatter, and linter for Quarto and other
16
14
  Markdown flavors, built in Rust with a lossless CST parser and support for
@@ -310,3 +308,12 @@ The development of Panache has simplified considerably thanks to the extensive
310
308
  documentation, well-structured code, and testing infrastructure provided by
311
309
  Pandoc. We also owe significant debt to the rust-analyzer project, on which
312
310
  Panache is heavily inspired.
311
+
312
+ ## Citation
313
+
314
+ If you use Panache in your research, please cite the release you used. Select
315
+ that release in the [Zenodo archive](https://doi.org/10.5281/zenodo.18608442)
316
+ and export its citation. To cite Panache generally, use the concept DOI
317
+ `10.5281/zenodo.18608442`.
318
+
319
+ Machine-readable metadata is available in [CITATION.cff](CITATION.cff).
@@ -1,6 +1,7 @@
1
1
  use clap::CommandFactory;
2
2
  use clap_complete::{Shell, generate_to};
3
3
  use clap_mangen::Man;
4
+ use clap_mangen::roff::{Roff, roman};
4
5
  use std::env;
5
6
  use std::fs;
6
7
  use std::io::Result;
@@ -352,6 +353,38 @@ fn format_see_also(refs: &[String]) -> String {
352
353
  format!(".SH \"SEE ALSO\"\n{}\n", formatted.join(", "))
353
354
  }
354
355
 
356
+ fn render_man_directives(help: &str) -> Result<String> {
357
+ let (title, body) = help.split_once("\n\n").unwrap_or((help, ""));
358
+ let mut roff = Roff::default();
359
+ let title = title.trim_end_matches(':').to_ascii_uppercase();
360
+ roff.control("SH", [title.as_str()]);
361
+
362
+ // The shared help uses indented Markdown examples, which need no-fill mode
363
+ // in man pages to preserve the spacing the directives are meant to protect.
364
+ for paragraph in body.split("\n\n") {
365
+ roff.control("PP", []);
366
+ let is_example = paragraph.lines().all(|line| line.starts_with(" "));
367
+ if is_example {
368
+ roff.control("RS", ["4"]);
369
+ roff.control("nf", []);
370
+ }
371
+ for line in paragraph.lines() {
372
+ let line = if is_example { &line[4..] } else { line };
373
+ roff.text([roman(line)]);
374
+ }
375
+ if is_example {
376
+ roff.control("fi", []);
377
+ roff.control("RE", []);
378
+ }
379
+ }
380
+
381
+ let mut buffer = Vec::new();
382
+ roff.to_writer(&mut buffer)?;
383
+ Ok(String::from_utf8_lossy(&buffer)
384
+ .trim_start_matches(Roff::default().render().as_str())
385
+ .to_owned())
386
+ }
387
+
355
388
  fn generate_man_pages() -> Result<()> {
356
389
  // Create man directory if it doesn't exist
357
390
  let out_dir = PathBuf::from("target/man");
@@ -387,8 +420,22 @@ fn generate_man_pages() -> Result<()> {
387
420
  let mut buffer = Vec::new();
388
421
  man.render(&mut buffer)?;
389
422
 
423
+ let mut content = String::from_utf8_lossy(&buffer).into_owned();
424
+ if matches!(subcommand_name, "format" | "lint")
425
+ && let Some(help) = subcommand.get_after_long_help()
426
+ {
427
+ let mut extra = Vec::new();
428
+ man.render_extra_section(&mut extra)?;
429
+ // Standalone section renders include the preamble from the full page.
430
+ content = content.replacen(
431
+ String::from_utf8_lossy(&extra)
432
+ .trim_start_matches(Roff::default().render().as_str()),
433
+ &render_man_directives(&help.to_string())?,
434
+ 1,
435
+ );
436
+ }
437
+
390
438
  // Post-process: fix NAME, SYNOPSIS, and nested subcommand references
391
- let content = String::from_utf8_lossy(&buffer);
392
439
  let fixed_content = content
393
440
  .replace(
394
441
  &format!("{} \\-", subcommand_name),
@@ -399,8 +446,8 @@ fn generate_man_pages() -> Result<()> {
399
446
  &format!("\\fBpanache {}\\fR", subcommand_name),
400
447
  )
401
448
  .replace(
402
- &format!("{}\\-", subcommand_name),
403
- &format!("panache\\-{}\\-", subcommand_name),
449
+ &format!("\n{}\\-", subcommand_name),
450
+ &format!("\npanache\\-{}\\-", subcommand_name),
404
451
  );
405
452
 
406
453
  // SEE ALSO: panache(1) plus sibling subcommand pages
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.29.0](https://github.com/jolars/panache/compare/panache-formatter-v0.28.2...panache-formatter-v0.29.0) (2026-11-11)
4
+
5
+ ### Features
6
+
7
+ - **cli:** add inspect command ([`1545ef4`](https://github.com/jolars/panache/commit/1545ef4f77e299104c504434170a3fa556579e4d)), closes [#601](https://github.com/jolars/panache/issues/601)
8
+ - **formatter:** preserve punctuation by default ([`ca09ecc`](https://github.com/jolars/panache/commit/ca09ecc46f86a56554d345b3abe3a61b75fe28dd)), ref [#605](https://github.com/jolars/panache/issues/605) and [#607](https://github.com/jolars/panache/issues/607)
9
+ - **formatter:** add smart punctuation modes ([`38c161e`](https://github.com/jolars/panache/commit/38c161ee428a27813bfcd7bc7c8530f49c3540df)), closes [#605](https://github.com/jolars/panache/issues/605), ref [#607](https://github.com/jolars/panache/issues/607)
10
+
11
+ ### Bug Fixes
12
+
13
+ - don’t apply `smart` transform to raw/code inline (#610) ([`15502cc`](https://github.com/jolars/panache/commit/15502ccd2f3339c7de218de8875016d2fd75429a))
14
+ - **formatter:** preserve list block separators ([`fd9dbf4`](https://github.com/jolars/panache/commit/fd9dbf4c945296f4e38af94ae0e0d301d679092b)), fixes [#602](https://github.com/jolars/panache/issues/602)
15
+ - **formatter:** trim excess pipe table padding ([`d77e076`](https://github.com/jolars/panache/commit/d77e076b58f5a90e574e82366ebede92b137e4f3)), fixes [#599](https://github.com/jolars/panache/issues/599)
16
+ - **formatter:** keep `et al.` together ([`a5bb5e1`](https://github.com/jolars/panache/commit/a5bb5e11301bb373a2034f3ec3362dd258e50b42)), closes [#593](https://github.com/jolars/panache/issues/593)
17
+
18
+ ### Dependencies
19
+
20
+ - updated crates/panache-parser to v0.35.0
21
+
22
+ ## [0.28.2](https://github.com/jolars/panache/compare/panache-formatter-v0.28.1...panache-formatter-v0.28.2) (2026-10-30)
23
+
24
+ ### Dependencies
25
+
26
+ - updated crates/panache-parser to v0.34.2
27
+
3
28
  ## [0.28.1](https://github.com/jolars/panache/compare/panache-formatter-v0.28.0...panache-formatter-v0.28.1) (2026-10-26)
4
29
 
5
30
  ### Bug Fixes
@@ -1,6 +1,6 @@
1
1
  [package]
2
2
  name = "panache-formatter"
3
- version = "0.28.1"
3
+ version = "0.29.0"
4
4
  edition.workspace = true
5
5
  rust-version.workspace = true
6
6
  include = [
@@ -19,7 +19,7 @@ keywords = ["quarto", "pandoc", "markdown", "formatter"]
19
19
  categories = ["text-processing"]
20
20
 
21
21
  [dependencies]
22
- panache-parser = { path = "../panache-parser", version = "0.34.1" }
22
+ panache-parser = { path = "../panache-parser", version = "0.35.0" }
23
23
  log = { version = "0.4.31", features = ["release_max_level_debug"] }
24
24
  rowan = "0.17.0"
25
25
  serde = { version = "1.0.228", features = ["derive"], optional = true }
@@ -32,7 +32,7 @@ serde = ["dep:serde", "panache-parser/serde"]
32
32
  schema = ["serde", "dep:schemars", "panache-parser/schema"]
33
33
 
34
34
  [dev-dependencies]
35
- badness-formatter = "=0.10.2"
35
+ badness-formatter = "=0.12.0"
36
36
  serde_json = "1.0.150"
37
37
  insta = { version = "1.47.2", features = ["json"] }
38
38
  # TEMPORARY: cross-validation oracle only (tests/yaml_cross_validation.rs).
@@ -110,6 +110,28 @@ pub enum HorizontalRuleStyle {
110
110
  Compact,
111
111
  }
112
112
 
113
+ /// Source spelling of punctuation in prose.
114
+ #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
115
+ #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
116
+ #[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))]
117
+ #[cfg_attr(feature = "schema", derive(schemars::JsonSchema))]
118
+ pub enum SmartPunctuation {
119
+ /// Leave punctuation as written.
120
+ #[default]
121
+ Preserve,
122
+ /// Write straight quotes with `smart` or `smart-quotes`, and `--`, `---`,
123
+ /// and `...` with `smart`. Preserve punctuation otherwise.
124
+ Ascii,
125
+ /// Write English curly quotes, en/em dashes, and `…`.
126
+ Unicode,
127
+ }
128
+
129
+ impl SmartPunctuation {
130
+ pub fn for_flavor(_flavor: Flavor) -> Self {
131
+ Self::default()
132
+ }
133
+ }
134
+
113
135
  #[derive(Debug, Clone, PartialEq)]
114
136
  #[cfg_attr(feature = "serde", derive(serde::Serialize, serde::Deserialize))]
115
137
  #[cfg_attr(feature = "serde", serde(rename_all = "lowercase"))]
@@ -187,8 +209,8 @@ impl FormatterExtensions {
187
209
 
188
210
  /// See [`known_extensions!`](panache_parser::Extensions) for the parser-side
189
211
  /// twin. The formatter extension surface is a small subset; the macro keeps
190
- /// the runtime setter, the public name list, and the JSON Schema generator in
191
- /// lockstep.
212
+ /// the runtime setter, public name list, state iterator, and JSON Schema
213
+ /// generator in lockstep.
192
214
  macro_rules! known_formatter_extensions {
193
215
  ( $( $kebab:literal => $field:ident ),* $(,)? ) => {
194
216
  impl FormatterExtensions {
@@ -196,6 +218,11 @@ macro_rules! known_formatter_extensions {
196
218
  /// affect formatter behavior (a subset of the parser names).
197
219
  pub const KNOWN_NAMES: &'static [&'static str] = &[ $($kebab),* ];
198
220
 
221
+ /// Canonical names and current states of all formatter extensions.
222
+ pub fn states(&self) -> impl Iterator<Item = (&'static str, bool)> {
223
+ [$(($kebab, self.$field)),*].into_iter()
224
+ }
225
+
199
226
  /// True if `name` matches a known formatter extension. Only
200
227
  /// kebab-case is accepted; snake_case aliases were removed in 3.0.
201
228
  pub fn is_known_name(name: &str) -> bool {
@@ -251,6 +278,10 @@ pub struct Config {
251
278
  /// How horizontal rules are rendered: expanded to the line width
252
279
  /// (default) or as a compact `---`.
253
280
  pub horizontal_rule_style: HorizontalRuleStyle,
281
+ /// Source spelling of punctuation. Defaults to preservation. ASCII
282
+ /// normalization requires the corresponding `smart` or `smart-quotes`
283
+ /// renderer extension.
284
+ pub smart_punctuation: SmartPunctuation,
254
285
  /// Document-language fallback used by sentence wrapping when the document
255
286
  /// has no YAML `lang:`. Normalized lowercase code (e.g. `de`, `pt-br`).
256
287
  pub lang: Option<String>,
@@ -288,6 +319,7 @@ impl Default for Config {
288
319
  wrap: Some(WrapMode::Reflow),
289
320
  blank_lines: BlankLines::Collapse,
290
321
  horizontal_rule_style: HorizontalRuleStyle::default(),
322
+ smart_punctuation: SmartPunctuation::for_flavor(flavor),
291
323
  lang: None,
292
324
  no_break_abbreviations: std::collections::BTreeMap::new(),
293
325
  formatters: HashMap::new(), // Opt-in: empty by default
@@ -323,6 +355,11 @@ pub struct ConfigBuilder {
323
355
  }
324
356
 
325
357
  impl ConfigBuilder {
358
+ pub fn smart_punctuation(mut self, mode: SmartPunctuation) -> Self {
359
+ self.config.smart_punctuation = mode;
360
+ self
361
+ }
362
+
326
363
  pub fn math(mut self, mode: MathMode) -> Self {
327
364
  self.config.math = mode;
328
365
  self
@@ -419,6 +456,11 @@ mod schema_tests {
419
456
  assert_wire_values::<BlankLines>(&["preserve", "collapse"]);
420
457
  }
421
458
 
459
+ #[test]
460
+ fn smart_punctuation_values_are_lowercase() {
461
+ assert_wire_values::<SmartPunctuation>(&["preserve", "ascii", "unicode"]);
462
+ }
463
+
422
464
  #[test]
423
465
  fn horizontal_rule_style_values_are_kebab_case() {
424
466
  assert_wire_values::<HorizontalRuleStyle>(&["line-width", "compact"]);