panache-cli 3.17.0__tar.gz → 3.17.2__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.
- {panache_cli-3.17.0 → panache_cli-3.17.2}/Cargo.lock +36 -35
- {panache_cli-3.17.0 → panache_cli-3.17.2}/Cargo.toml +5 -5
- {panache_cli-3.17.0 → panache_cli-3.17.2}/PKG-INFO +11 -1
- {panache_cli-3.17.0 → panache_cli-3.17.2}/README.md +10 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/CHANGELOG.md +16 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/Cargo.toml +3 -3
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/raw.rs +9 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/CHANGELOG.md +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/Cargo.toml +2 -2
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/pandoc_ast.rs +38 -85
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/block_dispatcher.rs +1 -9
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/fenced_divs.rs +39 -3
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/html_blocks.rs +100 -11
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/citations.rs +73 -4
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/core.rs +104 -7
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/inline_html.rs +25 -3
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/inline_ir.rs +65 -6
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/sink.rs +6 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/attributes.rs +43 -13
- panache_cli-3.17.2/crates/panache-parser/src/parser/utils/raw_html.rs +150 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils.rs +2 -0
- panache_cli-3.17.2/crates/panache-parser/src/syntax/ast.rs +44 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/attributes.rs +4 -5
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/fenced_divs.rs +55 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/headings.rs +9 -3
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/html.rs +169 -3
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/inlines.rs +18 -2
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/kind.rs +2 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/links.rs +80 -17
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/references.rs +1 -1
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/tables.rs +1 -3
- panache_cli-3.17.2/src/diagnostic_renderer.rs +57 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/code_block_collector.rs +82 -0
- panache_cli-3.17.2/src/linter/docs.rs +336 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/execution_context.rs +45 -0
- panache_cli-3.17.2/src/linter/external_linters/jarl.rs +703 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters.rs +48 -6
- panache_cli-3.17.2/src/linter/fix.rs +84 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/project_index.rs +2 -2
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/quarto_schema/interp.rs +5 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/quarto_schema/report.rs +2 -2
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/quarto_schema/value.rs +101 -18
- panache_cli-3.17.0/src/diagnostic_renderer.rs → panache_cli-3.17.2/src/linter/render.rs +65 -87
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/adjacent_footnote_refs.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/blank_line_in_display_math.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/blank_line_in_inline_footnote.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/chunk_label_spaces.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/citation_keys.rs +47 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/citation_nonbreaking_space.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/consumer_divergence.rs +10 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/crossref_as_link_target.rs +15 -0
- panache_cli-3.17.2/src/linter/rules/docs/adjacent-footnote-refs.md +4 -0
- panache_cli-3.17.2/src/linter/rules/docs/blank-line-in-display-math.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/blank-line-in-inline-footnote.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/chunk-label-spaces.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/citation-keys.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/citation-nonbreaking-space.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/consumer-divergence.md +10 -0
- panache_cli-3.17.2/src/linter/rules/docs/crossref-as-link-target.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/duplicate-reference-labels.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/duplicate-yaml-anchor.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/empty-list-item.md +4 -0
- panache_cli-3.17.2/src/linter/rules/docs/empty-values.md +9 -0
- panache_cli-3.17.2/src/linter/rules/docs/figure-crossref-captions.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/footnote-after-image.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/footnote-ref-in-footnote-def.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/footnote-swallowed-by-bracket.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/heading-eaten-attrs.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/heading-hierarchy.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/heading-strip-comments-residue.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/html-entities.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/html-unclosed-attribute.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/inline-math-line-break.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/link-text-is-url.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/malformed-citation.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/math-syntax.md +8 -0
- panache_cli-3.17.2/src/linter/rules/docs/missing-chunk-labels.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/quarto-schema-unknown-key.md +9 -0
- panache_cli-3.17.2/src/linter/rules/docs/quarto-schema.md +11 -0
- panache_cli-3.17.2/src/linter/rules/docs/reversed-footnote-marker.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/space-before-punctuation.md +9 -0
- panache_cli-3.17.2/src/linter/rules/docs/stray-fenced-div-markers.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/swallowed-list-marker.md +15 -0
- panache_cli-3.17.2/src/linter/rules/docs/table-column-count.md +6 -0
- panache_cli-3.17.2/src/linter/rules/docs/undefined-anchor.md +11 -0
- panache_cli-3.17.2/src/linter/rules/docs/undefined-references.md +15 -0
- panache_cli-3.17.2/src/linter/rules/docs/unknown-emoji-alias.md +3 -0
- panache_cli-3.17.2/src/linter/rules/docs/unspaced-citation.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/unspaced-list-marker.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/unsupported-metadata-key.md +7 -0
- panache_cli-3.17.2/src/linter/rules/docs/unused-definitions.md +5 -0
- panache_cli-3.17.2/src/linter/rules/docs/unused-yaml-anchor.md +6 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/duplicate_references.rs +53 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/duplicate_yaml_anchor.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/emoji_aliases.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/empty_list_item.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/empty_values.rs +10 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/figure_crossref_captions.rs +16 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/footnote_after_image.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/footnote_ref_in_footnote_def.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/footnote_swallowed_by_bracket.rs +24 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/heading_eaten_attrs.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/heading_hierarchy.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/heading_strip_comments_residue.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/html_entities.rs +10 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/html_unclosed_attribute.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/inline_math_line_break.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/link_text_is_url.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/malformed_citation.rs +10 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/math_content.rs +53 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/missing_chunk_labels.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/quarto_schema.rs +117 -9
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/reversed_footnote_marker.rs +16 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/space_before_punctuation.rs +16 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/stray_fenced_div_markers.rs +107 -30
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/swallowed_list_marker.rs +154 -1
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/table_column_count.rs +15 -0
- panache_cli-3.17.2/src/linter/rules/undefined_anchor.rs +812 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/undefined_references.rs +131 -27
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/unspaced_citation.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/unspaced_list_marker.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/unsupported_metadata_key.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/unused_definitions.rs +60 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules/unused_yaml_anchor.rs +15 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/rules.rs +20 -6
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter.rs +7 -4
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/document_links.rs +2 -2
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/goto_definition.rs +4 -1
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/heading_link_conversion.rs +36 -3
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/hover.rs +3 -3
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/helpers.rs +16 -2
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/main.rs +1 -83
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/metadata/bibliography.rs +20 -1
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/salsa.rs +435 -23
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/utils.rs +13 -8
- panache_cli-3.17.0/crates/panache-parser/src/syntax/ast.rs +0 -4
- panache_cli-3.17.0/src/linter/external_linters/jarl.rs +0 -139
- panache_cli-3.17.0/src/linter/rules/undefined_anchor.rs +0 -423
- {panache_cli-3.17.0 → panache_cli-3.17.2}/LICENSE +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/assets/quarto-schema/schema.json +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/build.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/README.md +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/config.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/directives.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/blockquotes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/code_blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/containers.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/core.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/document.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/fenced_divs.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/hashpipe.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/headings.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/indent_utils.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/inline.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/inline_layout.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/lists.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/math/STYLE.md +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/math/ir.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/math/lower.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/math/printer.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/math/render.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/math.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/metadata.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/paragraphs.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/preserve.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/sentence_wrap.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/shortcodes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/smart.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/table_conversion.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/tables.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/utils.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml/STYLE.md +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml/block_map.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml/block_sequence.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml/document.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml/flow.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml/options.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml/scalar.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter/yaml.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/formatter.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/lib.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/parser.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/syntax.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/utils.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-formatter/src/yaml_engine.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/README.md +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/build.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/data/math_symbols.json +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/data/unicode-math.LICENSE +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/data/unicode-math.NOTICE +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/grid_layout.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/lib.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/options.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/admonitions.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/blockquotes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/code_blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/container_prefix.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/definition_lists.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/figures.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/headings.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/horizontal_rules.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/hugo.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/indented_code.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/latex_envs.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/line_blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/lists.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/metadata.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/myst_directives.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/myst_targets.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/paragraphs.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/raw_blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/reference_links.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tables.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/blanklines.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/blockquotes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/code_blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/content_containers.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/definition_lists.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/figures.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/footnote_marker_line.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/fragment_context.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/frame_pinning.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/headings.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/helpers.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/lists.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/losslessness.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/metadata_guards.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks/tests/tables.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/core/blockquotes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/core/definition_lists.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/core/html_interruptions.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/core/list_items.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/core.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/diagnostics.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/bookdown.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/bracketed_spans.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/code_spans.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/emoji.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/escapes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/hard_breaks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/hugo.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/inline_executable.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/inline_footnotes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/latex.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/links.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/mark.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/math.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/myst_roles.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/myst_substitutions.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/native_spans.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/raw_inline.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/refdef_map.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/shortcodes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/strikeout.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/subscript.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/superscript.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/svelte.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/tests.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/uri-schemes.csv +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines/wikilinks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/inlines.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/math.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/reparse.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/chunk_options.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/container_stack.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/continuation.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/helpers.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/inline_emission.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/list_item_buffer.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/marker_utils.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/text_buffer.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/tree_copy.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/utils/yaml_regions.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/verify.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml/cooking.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml/events.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml/model.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml/parser.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml/profile.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml/scanner.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml/validator.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/yaml.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/range_utils.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/semantic/math.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/semantic.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/alerts.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/block_quotes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/chunk_options.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/citations.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/code_blocks.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/code_span.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/consumer.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/crossrefs.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/definitions.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/hugo.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/lists.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/math.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/myst.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/raw_tex.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/shortcodes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/yaml.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax/yaml_ast.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/syntax.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/pyproject.toml +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bib/bibtex.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bib/csl_json.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bib/csl_yaml.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bib/index.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bib/preview.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bib/ris.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bib.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/bin/distill_quarto_schema.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/cache.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/cli.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/config/formatter_presets.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/config/types/schema_helpers.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/config/types.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/config.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/directives.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/external_formatters_common.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/external_formatters_sync.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/external_tools_common.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/formatter.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/includes.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/incremental.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/io_context.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lib.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/diagnostics.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters/clippy.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters/eslint.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters/jolars.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters/ruff.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters/shellcheck.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters/staticcheck.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/external_linters_sync.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/fuzzy.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/index.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/metadata_diagnostics.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/offsets.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/quarto_schema/distill.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/quarto_schema/model.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/quarto_schema.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/runner.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/yaml_anchors.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/linter/yaml_resolve.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/config.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/context.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/conversions.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/dispatch.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/documents.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/global_state.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/code_actions.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/completion.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/configuration.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/diagnostics.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/document_highlight.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/document_symbols.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/file_operations.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/file_rename.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/file_watcher.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/folding_ranges.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/footnote_conversion.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/formatting.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/link_conversion.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/linked_editing_range.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/list_conversion.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/prepare_rename.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/references.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/rename.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/semantic_tokens.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/shortcode_args.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/table_conversion.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/workspace_folders.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers/workspace_symbols.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/handlers.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/line_index.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/navigation.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/symbols.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/task_pool.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/testing.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp/uri_ext.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/lsp.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/metadata/citations.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/metadata/project.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/metadata/references.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/metadata/yaml.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/metadata.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/parser.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/range_utils.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/syntax.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/vfs.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/yaml_engine.rs +0 -0
- {panache_cli-3.17.0 → panache_cli-3.17.2}/src/yaml_regions.rs +0 -0
|
@@ -39,9 +39,9 @@ checksum = "683d7910e743518b0e34f1186f92494becacb047c7b6bf616c96772180fef923"
|
|
|
39
39
|
|
|
40
40
|
[[package]]
|
|
41
41
|
name = "annotate-snippets"
|
|
42
|
-
version = "0.12.
|
|
42
|
+
version = "0.12.17"
|
|
43
43
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
44
|
-
checksum = "
|
|
44
|
+
checksum = "b2a5b0a5ab8561c603f16c3b78c24a386b1f70e7fc1b1b1e8c15738828e4a176"
|
|
45
45
|
dependencies = [
|
|
46
46
|
"anstyle",
|
|
47
47
|
"memchr",
|
|
@@ -121,9 +121,9 @@ checksum = "f2032f911046de80f0a198e0901378627c33f59ea0ac00e363d481118bd70a53"
|
|
|
121
121
|
|
|
122
122
|
[[package]]
|
|
123
123
|
name = "badness-formatter"
|
|
124
|
-
version = "0.
|
|
124
|
+
version = "0.11.0"
|
|
125
125
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
126
|
-
checksum = "
|
|
126
|
+
checksum = "0165f729bcb3de3e5b19936829abb6e32204d5762ed93a2c131e65c3c9495810"
|
|
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.
|
|
134
|
+
version = "0.11.2"
|
|
135
135
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
136
|
-
checksum = "
|
|
136
|
+
checksum = "75b997df78399ddfa09f747bbe52f8e1c8afc374e3fc95540cd312632b939744"
|
|
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.
|
|
297
|
+
version = "0.3.0"
|
|
298
298
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
299
|
-
checksum = "
|
|
299
|
+
checksum = "d8f2a42d22b905f09c7e696e2f46a17e4aa956c8d8b8cd09806137fd99c8544c"
|
|
300
300
|
dependencies = [
|
|
301
301
|
"clap",
|
|
302
302
|
]
|
|
@@ -326,9 +326,9 @@ checksum = "7704b5fdd17b18ae31c4c1da5a2e0305a2bf17b5249300a9ee9ed7b72114c636"
|
|
|
326
326
|
|
|
327
327
|
[[package]]
|
|
328
328
|
name = "crc32fast"
|
|
329
|
-
version = "1.5.
|
|
329
|
+
version = "1.5.3"
|
|
330
330
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
331
|
-
checksum = "
|
|
331
|
+
checksum = "0ba106e844045ddc02c20768ac4b0b7cb45f2cc2ecbd833ac9f5dacb183c2055"
|
|
332
332
|
dependencies = [
|
|
333
333
|
"cfg-if",
|
|
334
334
|
]
|
|
@@ -497,9 +497,9 @@ dependencies = [
|
|
|
497
497
|
|
|
498
498
|
[[package]]
|
|
499
499
|
name = "emojis"
|
|
500
|
-
version = "0.9.
|
|
500
|
+
version = "0.9.1"
|
|
501
501
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
502
|
-
checksum = "
|
|
502
|
+
checksum = "589871e639330783bc20ad89d32ac1b049e02c273d96c907ca27478c8bc674a2"
|
|
503
503
|
dependencies = [
|
|
504
504
|
"phf 0.13.1",
|
|
505
505
|
]
|
|
@@ -850,9 +850,9 @@ dependencies = [
|
|
|
850
850
|
|
|
851
851
|
[[package]]
|
|
852
852
|
name = "jsonschema"
|
|
853
|
-
version = "0.
|
|
853
|
+
version = "0.60.1"
|
|
854
854
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
855
|
-
checksum = "
|
|
855
|
+
checksum = "65de752665c4a06528af6759955eecf60ba73ae7442d35349963a09c8031cd71"
|
|
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.
|
|
881
|
+
version = "0.60.2"
|
|
882
882
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
883
|
-
checksum = "
|
|
883
|
+
checksum = "107aeb6ff14b8deb5610096a8ce5c554ec89806b521147eaeb3cae05b07edb7a"
|
|
884
884
|
dependencies = [
|
|
885
885
|
"regex-syntax",
|
|
886
886
|
]
|
|
887
887
|
|
|
888
888
|
[[package]]
|
|
889
889
|
name = "jsonschema-value"
|
|
890
|
-
version = "0.
|
|
890
|
+
version = "0.60.2"
|
|
891
891
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
892
|
-
checksum = "
|
|
892
|
+
checksum = "e281d6b177bb4834f2ffd6f92aa0443cffe29c996b251c8d94eb6f456186feba"
|
|
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",
|
|
@@ -903,9 +904,9 @@ dependencies = [
|
|
|
903
904
|
|
|
904
905
|
[[package]]
|
|
905
906
|
name = "libc"
|
|
906
|
-
version = "0.2.
|
|
907
|
+
version = "0.2.191"
|
|
907
908
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
908
|
-
checksum = "
|
|
909
|
+
checksum = "65cd87c9a6d60536580b316ad985726104730a5151c99845f2490428ef91240a"
|
|
909
910
|
|
|
910
911
|
[[package]]
|
|
911
912
|
name = "libredox"
|
|
@@ -1114,7 +1115,7 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
|
|
|
1114
1115
|
|
|
1115
1116
|
[[package]]
|
|
1116
1117
|
name = "panache"
|
|
1117
|
-
version = "3.17.
|
|
1118
|
+
version = "3.17.2"
|
|
1118
1119
|
dependencies = [
|
|
1119
1120
|
"annotate-snippets",
|
|
1120
1121
|
"assert_cmd",
|
|
@@ -1147,7 +1148,7 @@ dependencies = [
|
|
|
1147
1148
|
"schemars",
|
|
1148
1149
|
"serde",
|
|
1149
1150
|
"serde_json",
|
|
1150
|
-
"similar 3.2.
|
|
1151
|
+
"similar 3.2.1",
|
|
1151
1152
|
"similar-asserts",
|
|
1152
1153
|
"tempfile",
|
|
1153
1154
|
"toml",
|
|
@@ -1159,7 +1160,7 @@ dependencies = [
|
|
|
1159
1160
|
|
|
1160
1161
|
[[package]]
|
|
1161
1162
|
name = "panache-formatter"
|
|
1162
|
-
version = "0.28.
|
|
1163
|
+
version = "0.28.2"
|
|
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.
|
|
1183
|
+
version = "0.34.2"
|
|
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.
|
|
1465
|
+
version = "0.60.2"
|
|
1465
1466
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1466
|
-
checksum = "
|
|
1467
|
+
checksum = "f42818036d3b37cda6bd4c494543158a36e431cb717015ef7c93acc6ba214d3b"
|
|
1467
1468
|
dependencies = [
|
|
1468
1469
|
"ahash",
|
|
1469
1470
|
"fluent-uri 0.4.1",
|
|
@@ -1738,9 +1739,9 @@ checksum = "bbbb5d9659141646ae647b42fe094daf6c6192d1620870b449d9557f748b2daa"
|
|
|
1738
1739
|
|
|
1739
1740
|
[[package]]
|
|
1740
1741
|
name = "similar"
|
|
1741
|
-
version = "3.2.
|
|
1742
|
+
version = "3.2.1"
|
|
1742
1743
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1743
|
-
checksum = "
|
|
1744
|
+
checksum = "d2f8bec09ae8fae0f4f265a4559a9334be3929d8504e9b536df0a41302bd1733"
|
|
1744
1745
|
dependencies = [
|
|
1745
1746
|
"bstr",
|
|
1746
1747
|
"unicode-segmentation",
|
|
@@ -1753,7 +1754,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
|
1753
1754
|
checksum = "997e6ca38e97437973fc9f7f50a50d1274cacd874341a4960fea90067291038c"
|
|
1754
1755
|
dependencies = [
|
|
1755
1756
|
"console",
|
|
1756
|
-
"similar 3.2.
|
|
1757
|
+
"similar 3.2.1",
|
|
1757
1758
|
]
|
|
1758
1759
|
|
|
1759
1760
|
[[package]]
|
|
@@ -1770,15 +1771,15 @@ checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5"
|
|
|
1770
1771
|
|
|
1771
1772
|
[[package]]
|
|
1772
1773
|
name = "smallvec"
|
|
1773
|
-
version = "1.16.
|
|
1774
|
+
version = "1.16.4"
|
|
1774
1775
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1775
|
-
checksum = "
|
|
1776
|
+
checksum = "d0d5d4b1981b8bbbb7aed204cae5726d683d5d6ac7e74ec54122ea28f315e7c8"
|
|
1776
1777
|
|
|
1777
1778
|
[[package]]
|
|
1778
1779
|
name = "smol_str"
|
|
1779
|
-
version = "0.3.
|
|
1780
|
+
version = "0.3.7"
|
|
1780
1781
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1781
|
-
checksum = "
|
|
1782
|
+
checksum = "eeb7109d23f319619d4cc0de5464613c8b7b1a09db2774a58101459cf6be2f10"
|
|
1782
1783
|
dependencies = [
|
|
1783
1784
|
"borsh",
|
|
1784
1785
|
"serde_core",
|
|
@@ -1986,9 +1987,9 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821"
|
|
|
1986
1987
|
|
|
1987
1988
|
[[package]]
|
|
1988
1989
|
name = "uuid"
|
|
1989
|
-
version = "1.
|
|
1990
|
+
version = "1.29.0"
|
|
1990
1991
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
1991
|
-
checksum = "
|
|
1992
|
+
checksum = "4a0e2d11620c50695fe12bbbfde96b3477fe606e7284c22d505c12ce51214514"
|
|
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.
|
|
12
|
+
version = "3.17.2"
|
|
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.
|
|
58
|
+
panache-formatter = { path = "crates/panache-formatter", version = "0.28.2", features = [
|
|
59
59
|
"serde",
|
|
60
60
|
"schema",
|
|
61
61
|
] }
|
|
62
|
-
panache-parser = { path = "crates/panache-parser", version = "0.34.
|
|
62
|
+
panache-parser = { path = "crates/panache-parser", version = "0.34.2", 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.
|
|
98
|
+
jsonschema = { version = "0.60.1", 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.
|
|
120
|
+
clapdown = "0.3.0"
|
|
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.
|
|
3
|
+
Version: 3.17.2
|
|
4
4
|
Classifier: Development Status :: 5 - Production/Stable
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -37,6 +37,7 @@ Code](https://vsmarketplacebadges.dev/version-short/jolars.panache.svg?logo=vsix
|
|
|
37
37
|
version](https://badge.fury.io/py/panache-cli.svg?icon=si%3Apython)](https://badge.fury.io/py/panache-cli)
|
|
38
38
|
[](https://badge.fury.io/js/@panache-cli%2Fpanache)
|
|
40
|
+
[](https://doi.org/10.5281/zenodo.18608442)
|
|
40
41
|
|
|
41
42
|
Panache is a language server, formatter, and linter for Quarto and other
|
|
42
43
|
Markdown flavors, built in Rust with a lossless CST parser and support for
|
|
@@ -337,3 +338,12 @@ documentation, well-structured code, and testing infrastructure provided by
|
|
|
337
338
|
Pandoc. We also owe significant debt to the rust-analyzer project, on which
|
|
338
339
|
Panache is heavily inspired.
|
|
339
340
|
|
|
341
|
+
## Citation
|
|
342
|
+
|
|
343
|
+
If you use Panache in your research, please cite the release you used. Select
|
|
344
|
+
that release in the [Zenodo archive](https://doi.org/10.5281/zenodo.18608442)
|
|
345
|
+
and export its citation. To cite Panache generally, use the concept DOI
|
|
346
|
+
`10.5281/zenodo.18608442`.
|
|
347
|
+
|
|
348
|
+
Machine-readable metadata is available in [CITATION.cff](CITATION.cff).
|
|
349
|
+
|
|
@@ -11,6 +11,7 @@ Code](https://vsmarketplacebadges.dev/version-short/jolars.panache.svg?logo=vsix
|
|
|
11
11
|
version](https://badge.fury.io/py/panache-cli.svg?icon=si%3Apython)](https://badge.fury.io/py/panache-cli)
|
|
12
12
|
[](https://badge.fury.io/js/@panache-cli%2Fpanache)
|
|
14
|
+
[](https://doi.org/10.5281/zenodo.18608442)
|
|
14
15
|
|
|
15
16
|
Panache is a language server, formatter, and linter for Quarto and other
|
|
16
17
|
Markdown flavors, built in Rust with a lossless CST parser and support for
|
|
@@ -310,3 +311,12 @@ The development of Panache has simplified considerably thanks to the extensive
|
|
|
310
311
|
documentation, well-structured code, and testing infrastructure provided by
|
|
311
312
|
Pandoc. We also owe significant debt to the rust-analyzer project, on which
|
|
312
313
|
Panache is heavily inspired.
|
|
314
|
+
|
|
315
|
+
## Citation
|
|
316
|
+
|
|
317
|
+
If you use Panache in your research, please cite the release you used. Select
|
|
318
|
+
that release in the [Zenodo archive](https://doi.org/10.5281/zenodo.18608442)
|
|
319
|
+
and export its citation. To cite Panache generally, use the concept DOI
|
|
320
|
+
`10.5281/zenodo.18608442`.
|
|
321
|
+
|
|
322
|
+
Machine-readable metadata is available in [CITATION.cff](CITATION.cff).
|
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.28.2](https://github.com/jolars/panache/compare/panache-formatter-v0.28.1...panache-formatter-v0.28.2) (2026-10-30)
|
|
4
|
+
|
|
5
|
+
### Dependencies
|
|
6
|
+
|
|
7
|
+
- updated crates/panache-parser to v0.34.2
|
|
8
|
+
|
|
9
|
+
## [0.28.1](https://github.com/jolars/panache/compare/panache-formatter-v0.28.0...panache-formatter-v0.28.1) (2026-10-26)
|
|
10
|
+
|
|
11
|
+
### Bug Fixes
|
|
12
|
+
|
|
13
|
+
- **parser:** expose IDs in raw CommonMark HTML ([`b076c95`](https://github.com/jolars/panache/commit/b076c955aa49d1a4ff9bb32cbc132e83d57b9a04))
|
|
14
|
+
|
|
15
|
+
### Dependencies
|
|
16
|
+
|
|
17
|
+
- updated crates/panache-parser to v0.34.1
|
|
18
|
+
|
|
3
19
|
## [0.28.0](https://github.com/jolars/panache/compare/panache-formatter-v0.27.1...panache-formatter-v0.28.0) (2026-10-16)
|
|
4
20
|
|
|
5
21
|
### Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "panache-formatter"
|
|
3
|
-
version = "0.28.
|
|
3
|
+
version = "0.28.2"
|
|
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.
|
|
22
|
+
panache-parser = { path = "../panache-parser", version = "0.34.2" }
|
|
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.
|
|
35
|
+
badness-formatter = "=0.11.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).
|
|
@@ -48,6 +48,15 @@ impl Formatter {
|
|
|
48
48
|
after_marker = false;
|
|
49
49
|
text.push_str(token.text());
|
|
50
50
|
}
|
|
51
|
+
// A prefix-only final line still belongs to the raw block without a
|
|
52
|
+
// source newline; the enclosing container must emit that blank line.
|
|
53
|
+
if text.ends_with('\n')
|
|
54
|
+
&& node
|
|
55
|
+
.last_token()
|
|
56
|
+
.is_some_and(|token| token.kind() == SyntaxKind::LINE_PREFIX)
|
|
57
|
+
{
|
|
58
|
+
text.push('\n');
|
|
59
|
+
}
|
|
51
60
|
let starts_on_marker_line = node
|
|
52
61
|
.first_token()
|
|
53
62
|
.and_then(|token| token.prev_token())
|
|
@@ -1,5 +1,20 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.34.2](https://github.com/jolars/panache/compare/panache-parser-v0.34.1...panache-parser-v0.34.2) (2026-10-30)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
|
|
7
|
+
- **lint:** validate custom cross-reference targets ([`f4f3a1d`](https://github.com/jolars/panache/commit/f4f3a1db60ec5ee2d537c72c60668426d696ecd9)), closes [#591](https://github.com/jolars/panache/issues/591)
|
|
8
|
+
- **parser:** capture narrative citation suffixes ([`3b50e47`](https://github.com/jolars/panache/commit/3b50e47a2ccbae75974ab1926a24825b4c4f1c18)), fixes [#590](https://github.com/jolars/panache/issues/590)
|
|
9
|
+
|
|
10
|
+
## [0.34.1](https://github.com/jolars/panache/compare/panache-parser-v0.34.0...panache-parser-v0.34.1) (2026-10-26)
|
|
11
|
+
|
|
12
|
+
### Bug Fixes
|
|
13
|
+
|
|
14
|
+
- **parser:** reject trailing div attribute blocks ([`8f88555`](https://github.com/jolars/panache/commit/8f88555b61cc4edaaf2e2a8a74a6267953f47600)), refs [#584](https://github.com/jolars/panache/issues/584)
|
|
15
|
+
- **linter:** preserve html context and raw labels ([`1655cf0`](https://github.com/jolars/panache/commit/1655cf067c19b7dd4f8e6f8dde080e3e03275a63))
|
|
16
|
+
- **parser:** expose IDs in raw CommonMark HTML ([`b076c95`](https://github.com/jolars/panache/commit/b076c955aa49d1a4ff9bb32cbc132e83d57b9a04))
|
|
17
|
+
|
|
3
18
|
## [0.34.0](https://github.com/jolars/panache/compare/panache-parser-v0.33.0...panache-parser-v0.34.0) (2026-10-16)
|
|
4
19
|
|
|
5
20
|
### Features
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "panache-parser"
|
|
3
|
-
version = "0.34.
|
|
3
|
+
version = "0.34.2"
|
|
4
4
|
edition.workspace = true
|
|
5
5
|
rust-version.workspace = true
|
|
6
6
|
readme = "README.md"
|
|
@@ -44,6 +44,6 @@ serde = { version = "1.0.228", features = ["derive"] }
|
|
|
44
44
|
serde_json = "1.0.150"
|
|
45
45
|
|
|
46
46
|
[dev-dependencies]
|
|
47
|
-
badness-parser = "=0.11.
|
|
47
|
+
badness-parser = "=0.11.2"
|
|
48
48
|
insta = "1.47.2"
|
|
49
49
|
toml = "1.1.2"
|
|
@@ -3542,9 +3542,6 @@ fn inlines_from(parent: &SyntaxNode) -> Vec<Inline> {
|
|
|
3542
3542
|
NodeOrToken::Node(n) if n.kind() == SyntaxKind::LATEX_COMMAND => {
|
|
3543
3543
|
emit_latex_command_with_absorb(&n, &mut iter, &mut out);
|
|
3544
3544
|
}
|
|
3545
|
-
NodeOrToken::Node(n) if n.kind() == SyntaxKind::CITATION => {
|
|
3546
|
-
emit_citation_with_absorb(&n, &mut iter, &mut out);
|
|
3547
|
-
}
|
|
3548
3545
|
NodeOrToken::Node(n) => push_inline_node(&n, &mut out),
|
|
3549
3546
|
}
|
|
3550
3547
|
}
|
|
@@ -3554,62 +3551,6 @@ fn inlines_from(parent: &SyntaxNode) -> Vec<Inline> {
|
|
|
3554
3551
|
out
|
|
3555
3552
|
}
|
|
3556
3553
|
|
|
3557
|
-
/// Pandoc absorbs `@key [locator]` into a single AuthorInText `Cite` with
|
|
3558
|
-
/// the bracketed text becoming the citation's suffix. The parser emits two
|
|
3559
|
-
/// separate nodes: `CITATION` (bare `@key`, no surrounding brackets) and an
|
|
3560
|
-
/// adjacent `LINK` whose bracketed text has no destination. When the
|
|
3561
|
-
/// CITATION is bare and we can verify both the next siblings (a single
|
|
3562
|
-
/// `TEXT` whitespace token followed by a `LINK` node lacking
|
|
3563
|
-
/// `LINK_DEST_START`), consume both and absorb the link's text as suffix.
|
|
3564
|
-
fn emit_citation_with_absorb<I>(
|
|
3565
|
-
node: &SyntaxNode,
|
|
3566
|
-
iter: &mut std::iter::Peekable<I>,
|
|
3567
|
-
out: &mut Vec<Inline>,
|
|
3568
|
-
) where
|
|
3569
|
-
I: Iterator<Item = rowan::SyntaxElement<crate::syntax::PanacheLanguage>>,
|
|
3570
|
-
{
|
|
3571
|
-
let bracketed = node
|
|
3572
|
-
.children_with_tokens()
|
|
3573
|
-
.filter_map(|el| el.into_token())
|
|
3574
|
-
.any(|t| t.kind() == SyntaxKind::LINK_START);
|
|
3575
|
-
if bracketed {
|
|
3576
|
-
render_citation_inline(node, out, None);
|
|
3577
|
-
return;
|
|
3578
|
-
}
|
|
3579
|
-
let next_sibling_pair = node.next_sibling_or_token().and_then(|el1| {
|
|
3580
|
-
let t = el1.as_token().cloned()?;
|
|
3581
|
-
if t.kind() != SyntaxKind::TEXT || !t.text().starts_with(' ') {
|
|
3582
|
-
return None;
|
|
3583
|
-
}
|
|
3584
|
-
let space_text = t.text().to_string();
|
|
3585
|
-
let link_el = t.next_sibling_or_token()?;
|
|
3586
|
-
let link = link_el.as_node().cloned()?;
|
|
3587
|
-
if link.kind() != SyntaxKind::LINK && link.kind() != SyntaxKind::UNRESOLVED_REFERENCE {
|
|
3588
|
-
return None;
|
|
3589
|
-
}
|
|
3590
|
-
let has_dest = link
|
|
3591
|
-
.children_with_tokens()
|
|
3592
|
-
.filter_map(|el| el.into_token())
|
|
3593
|
-
.any(|tok| tok.kind() == SyntaxKind::LINK_DEST_START);
|
|
3594
|
-
if has_dest {
|
|
3595
|
-
return None;
|
|
3596
|
-
}
|
|
3597
|
-
let link_text = link
|
|
3598
|
-
.children()
|
|
3599
|
-
.find(|c| c.kind() == SyntaxKind::LINK_TEXT)
|
|
3600
|
-
.map(|tt| tt.text().to_string())
|
|
3601
|
-
.unwrap_or_default();
|
|
3602
|
-
Some((space_text, link_text))
|
|
3603
|
-
});
|
|
3604
|
-
if let Some((_space_text, locator_text)) = next_sibling_pair {
|
|
3605
|
-
iter.next();
|
|
3606
|
-
iter.next();
|
|
3607
|
-
render_citation_inline(node, out, Some(&locator_text));
|
|
3608
|
-
} else {
|
|
3609
|
-
render_citation_inline(node, out, None);
|
|
3610
|
-
}
|
|
3611
|
-
}
|
|
3612
|
-
|
|
3613
3554
|
/// Pandoc's tex inline reader absorbs trailing horizontal whitespace into the
|
|
3614
3555
|
/// raw command when (and only when) the command is `\letters` with no brace
|
|
3615
3556
|
/// arguments — `\foo bar` becomes `RawInline tex "\\foo "` + `Str "bar"`,
|
|
@@ -3656,7 +3597,7 @@ fn push_inline_node(node: &SyntaxNode, out: &mut Vec<Inline>) {
|
|
|
3656
3597
|
match node.kind() {
|
|
3657
3598
|
SyntaxKind::LINK => render_link_inline(node, out),
|
|
3658
3599
|
SyntaxKind::IMAGE_LINK => render_image_inline(node, out),
|
|
3659
|
-
SyntaxKind::CITATION => render_citation_inline(node, out
|
|
3600
|
+
SyntaxKind::CITATION => render_citation_inline(node, out),
|
|
3660
3601
|
SyntaxKind::UNRESOLVED_REFERENCE => render_unresolved_reference_inline(node, out),
|
|
3661
3602
|
_ => out.push(inline_from_node(node)),
|
|
3662
3603
|
}
|
|
@@ -3755,14 +3696,9 @@ fn render_unresolved_reference_inline(node: &SyntaxNode, out: &mut Vec<Inline>)
|
|
|
3755
3696
|
/// `Str "N"` (just the digits — surrounding parens come from adjacent
|
|
3756
3697
|
/// source bytes which our coalesce pass merges back in). Otherwise we
|
|
3757
3698
|
/// project the CITATION node as a proper `Cite [Citation, ...] [Inline,
|
|
3758
|
-
/// ...]` per pandoc's citation reader
|
|
3759
|
-
///
|
|
3760
|
-
|
|
3761
|
-
fn render_citation_inline(
|
|
3762
|
-
node: &SyntaxNode,
|
|
3763
|
-
out: &mut Vec<Inline>,
|
|
3764
|
-
extra_suffix_text: Option<&str>,
|
|
3765
|
-
) {
|
|
3699
|
+
/// ...]` per pandoc's citation reader, including any narrative suffix
|
|
3700
|
+
/// captured in the citation node.
|
|
3701
|
+
fn render_citation_inline(node: &SyntaxNode, out: &mut Vec<Inline>) {
|
|
3766
3702
|
let first_key = node
|
|
3767
3703
|
.children_with_tokens()
|
|
3768
3704
|
.filter_map(|el| el.into_token())
|
|
@@ -3784,13 +3720,15 @@ fn render_citation_inline(
|
|
|
3784
3720
|
let mut builders: Vec<CitationBuilder> = Vec::new();
|
|
3785
3721
|
let mut current: Option<CitationBuilder> = None;
|
|
3786
3722
|
let mut pending_prefix = String::new();
|
|
3723
|
+
let mut in_brackets = bracketed;
|
|
3787
3724
|
for el in node.children_with_tokens() {
|
|
3788
3725
|
let token = match el {
|
|
3789
3726
|
NodeOrToken::Token(t) => t,
|
|
3790
3727
|
_ => continue,
|
|
3791
3728
|
};
|
|
3792
3729
|
match token.kind() {
|
|
3793
|
-
SyntaxKind::LINK_START | SyntaxKind::LINK_DEST => {}
|
|
3730
|
+
SyntaxKind::LINK_START | SyntaxKind::LINK_DEST | SyntaxKind::CITATION_SUFFIX_END => {}
|
|
3731
|
+
SyntaxKind::CITATION_SUFFIX_START => in_brackets = true,
|
|
3794
3732
|
SyntaxKind::CITATION_BRACE_OPEN | SyntaxKind::CITATION_BRACE_CLOSE => {}
|
|
3795
3733
|
SyntaxKind::CITATION_MARKER => {
|
|
3796
3734
|
if let Some(c) = current.take() {
|
|
@@ -3798,7 +3736,7 @@ fn render_citation_inline(
|
|
|
3798
3736
|
}
|
|
3799
3737
|
let mode = if token.text() == "-@" {
|
|
3800
3738
|
CitationMode::SuppressAuthor
|
|
3801
|
-
} else if
|
|
3739
|
+
} else if in_brackets {
|
|
3802
3740
|
CitationMode::NormalCitation
|
|
3803
3741
|
} else {
|
|
3804
3742
|
CitationMode::AuthorInText
|
|
@@ -3832,15 +3770,6 @@ fn render_citation_inline(
|
|
|
3832
3770
|
builders.push(c);
|
|
3833
3771
|
}
|
|
3834
3772
|
|
|
3835
|
-
if let Some(extra) = extra_suffix_text
|
|
3836
|
-
&& let Some(last) = builders.last_mut()
|
|
3837
|
-
{
|
|
3838
|
-
if !last.suffix_raw.is_empty() && !extra.starts_with(' ') {
|
|
3839
|
-
last.suffix_raw.push(' ');
|
|
3840
|
-
}
|
|
3841
|
-
last.suffix_raw.push_str(extra);
|
|
3842
|
-
}
|
|
3843
|
-
|
|
3844
3773
|
let note_offset: u32 = node.text_range().start().into();
|
|
3845
3774
|
let note_num = REFS_CTX
|
|
3846
3775
|
.with(|c| {
|
|
@@ -3856,12 +3785,19 @@ fn render_citation_inline(
|
|
|
3856
3785
|
.map(|b| b.into_citation(note_num))
|
|
3857
3786
|
.collect();
|
|
3858
3787
|
|
|
3859
|
-
let mut literal =
|
|
3860
|
-
|
|
3861
|
-
|
|
3862
|
-
|
|
3863
|
-
|
|
3864
|
-
|
|
3788
|
+
let mut literal = String::new();
|
|
3789
|
+
for token in node.children_with_tokens().filter_map(|el| el.into_token()) {
|
|
3790
|
+
match token.kind() {
|
|
3791
|
+
SyntaxKind::LINE_PREFIX => {}
|
|
3792
|
+
SyntaxKind::CITATION_SUFFIX_START => {
|
|
3793
|
+
if !literal.ends_with(char::is_whitespace) {
|
|
3794
|
+
literal.push(' ');
|
|
3795
|
+
}
|
|
3796
|
+
literal.push('[');
|
|
3797
|
+
}
|
|
3798
|
+
SyntaxKind::CITATION_MARKER if !bracketed && literal.is_empty() => literal.push('@'),
|
|
3799
|
+
_ => literal.push_str(token.text()),
|
|
3800
|
+
}
|
|
3865
3801
|
}
|
|
3866
3802
|
let text_inlines = literal_inlines(&literal);
|
|
3867
3803
|
|
|
@@ -5492,6 +5428,23 @@ mod tests {
|
|
|
5492
5428
|
serde_json::from_str(&s).expect("to_pandoc_json must emit valid JSON")
|
|
5493
5429
|
}
|
|
5494
5430
|
|
|
5431
|
+
#[test]
|
|
5432
|
+
fn narrative_citation_projects_suffix_and_preserves_the_following_reference() {
|
|
5433
|
+
let output = parse_to_json("@a\n[p. 4; @b] and [missing]");
|
|
5434
|
+
let inlines = &output["blocks"][0]["c"];
|
|
5435
|
+
let citations = &inlines[0]["c"][0];
|
|
5436
|
+
assert_eq!(citations[0]["citationId"], "a");
|
|
5437
|
+
assert_eq!(citations[0]["citationMode"]["t"], "AuthorInText");
|
|
5438
|
+
assert_eq!(
|
|
5439
|
+
citations[0]["citationSuffix"],
|
|
5440
|
+
json!([{"t": "Str", "c": "p.\u{a0}4"}])
|
|
5441
|
+
);
|
|
5442
|
+
assert_eq!(citations[1]["citationId"], "b");
|
|
5443
|
+
assert_eq!(citations[1]["citationMode"]["t"], "NormalCitation");
|
|
5444
|
+
assert_eq!(inlines[0]["c"][1][1]["t"], "SoftBreak");
|
|
5445
|
+
assert_eq!(inlines[4], json!({"t": "Str", "c": "[missing]"}));
|
|
5446
|
+
}
|
|
5447
|
+
|
|
5495
5448
|
fn pandoc_options() -> crate::options::ParserOptions {
|
|
5496
5449
|
flavor_options(crate::options::Flavor::Pandoc)
|
|
5497
5450
|
}
|
{panache_cli-3.17.0 → panache_cli-3.17.2}/crates/panache-parser/src/parser/block_dispatcher.rs
RENAMED
|
@@ -2208,15 +2208,7 @@ impl BlockParser for FencedDivOpenParser {
|
|
|
2208
2208
|
|
|
2209
2209
|
emit_div_info_node(builder, &div_fence.attributes);
|
|
2210
2210
|
|
|
2211
|
-
let after_attrs =
|
|
2212
|
-
if let Some(close_idx) = content_after_space.find('}') {
|
|
2213
|
-
&content_after_space[close_idx + 1..]
|
|
2214
|
-
} else {
|
|
2215
|
-
""
|
|
2216
|
-
}
|
|
2217
|
-
} else {
|
|
2218
|
-
&content_after_space[div_fence.attributes.len()..]
|
|
2219
|
-
};
|
|
2211
|
+
let after_attrs = &content_after_space[div_fence.attributes.len()..];
|
|
2220
2212
|
|
|
2221
2213
|
if !after_attrs.is_empty() {
|
|
2222
2214
|
let suffix_trimmed = after_attrs.trim_start();
|