panache-cli 3.6.0__tar.gz → 3.6.1__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.6.0 → panache_cli-3.6.1}/Cargo.lock +5 -5
- {panache_cli-3.6.0 → panache_cli-3.6.1}/Cargo.toml +3 -3
- {panache_cli-3.6.0 → panache_cli-3.6.1}/PKG-INFO +16 -12
- {panache_cli-3.6.0 → panache_cli-3.6.1}/README.md +15 -11
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/CHANGELOG.md +11 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/Cargo.toml +2 -2
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/blockquotes.rs +306 -0
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/blocks.rs +391 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/code_blocks.rs +15 -0
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/containers.rs +306 -0
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/core.rs +931 -0
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/document.rs +107 -0
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/fenced_divs.rs +164 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/inline.rs +23 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/inline_layout.rs +148 -8
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/lists.rs +336 -2
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/math/STYLE.md +27 -5
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/math/layout.rs +277 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/math/linebreak.rs +27 -2
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/math/operators.rs +6 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/math/render.rs +247 -2
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/math.rs +270 -1
- panache_cli-3.6.1/crates/panache-formatter/src/formatter/raw.rs +191 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/sentence_wrap.rs +5 -1
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/tables.rs +42 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter.rs +4 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/CHANGELOG.md +5 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/Cargo.toml +1 -1
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/citations.rs +29 -1
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/cli.rs +3 -2
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/config.rs +69 -18
- panache_cli-3.6.0/crates/panache-formatter/src/formatter/blockquotes.rs +0 -1
- panache_cli-3.6.0/crates/panache-formatter/src/formatter/core.rs +0 -3019
- panache_cli-3.6.0/crates/panache-formatter/src/formatter/fenced_divs.rs +0 -1
- {panache_cli-3.6.0 → panache_cli-3.6.1}/LICENSE +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/assets/quarto-schema/schema.json +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/build.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/README.md +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/config.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/directives.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/hashpipe.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/headings.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/indent_utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/metadata.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/paragraphs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/preserve.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/shortcodes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/smart.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml/STYLE.md +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml/block_map.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml/block_sequence.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml/document.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml/flow.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml/options.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml/scalar.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/formatter/yaml.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/lib.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/parser.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/syntax.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-formatter/src/yaml_engine.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/README.md +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/build.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/grid_layout.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/lib.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/options.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/pandoc_ast.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/block_dispatcher.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/admonitions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/blockquotes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/code_blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/container_prefix.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/definition_lists.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/fenced_divs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/figures.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/headings.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/horizontal_rules.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/html_blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/indented_code.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/latex_envs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/line_blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/lists.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/metadata.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/myst_directives.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/myst_targets.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/paragraphs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/raw_blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/reference_links.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tables.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/blanklines.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/blockquotes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/code_blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/content_containers.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/definition_lists.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/figures.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/footnote_marker_line.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/fragment_context.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/frame_pinning.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/headings.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/helpers.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/lists.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/losslessness.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/metadata_guards.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks/tests/tables.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/core.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/diagnostics.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/bookdown.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/bracketed_spans.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/code_spans.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/core.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/emoji.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/escapes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/hard_breaks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/inline_executable.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/inline_footnotes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/inline_html.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/inline_ir.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/latex.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/links.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/mark.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/math.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/myst_roles.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/myst_substitutions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/native_spans.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/raw_inline.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/refdef_map.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/shortcodes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/sink.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/strikeout.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/subscript.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/superscript.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/svelte.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/tests.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/uri-schemes.csv +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines/wikilinks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/inlines.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/math.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/reparse.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/attributes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/chunk_options.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/container_stack.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/continuation.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/helpers.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/inline_emission.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/list_item_buffer.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/marker_utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/text_buffer.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/tree_copy.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils/yaml_regions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/verify.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml/cooking.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml/events.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml/model.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml/parser.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml/profile.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml/scanner.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml/validator.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser/yaml.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/parser.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/range_utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/alerts.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/ast.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/attributes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/block_quotes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/chunk_options.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/citations.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/code_blocks.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/code_span.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/crossrefs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/definitions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/fenced_divs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/headings.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/inlines.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/kind.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/links.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/lists.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/math.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/myst.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/raw_tex.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/references.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/shortcodes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/tables.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/yaml.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax/yaml_ast.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/crates/panache-parser/src/syntax.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/pyproject.toml +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bib/bibtex.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bib/csl_json.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bib/csl_yaml.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bib/index.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bib/preview.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bib/ris.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bib.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/bin/distill_quarto_schema.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/cache.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/config/formatter_presets.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/config/types/schema_helpers.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/config/types.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/diagnostic_renderer.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/directives.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/external_formatters_common.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/external_formatters_sync.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/external_tools_common.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/formatter.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/includes.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/incremental.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/io_context.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lib.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/code_block_collector.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/diagnostics.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters/clippy.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters/eslint.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters/jarl.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters/jolars.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters/ruff.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters/shellcheck.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters/staticcheck.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/external_linters_sync.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/fuzzy.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/index.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/metadata_diagnostics.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/offsets.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/project_index.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/quarto_schema/distill.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/quarto_schema/interp.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/quarto_schema/model.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/quarto_schema/report.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/quarto_schema/value.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/quarto_schema.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/adjacent_footnote_refs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/blank_line_in_inline_footnote.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/chunk_label_spaces.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/citation_keys.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/citation_nonbreaking_space.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/consumer_divergence.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/crossref_as_link_target.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/duplicate_references.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/duplicate_yaml_anchor.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/emoji_aliases.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/empty_list_item.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/empty_values.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/figure_crossref_captions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/footnote_after_image.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/footnote_ref_in_footnote_def.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/footnote_swallowed_by_bracket.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/heading_eaten_attrs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/heading_hierarchy.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/heading_strip_comments_residue.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/html_entities.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/link_text_is_url.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/math_content.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/missing_chunk_labels.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/quarto_schema.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/reversed_footnote_marker.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/stray_fenced_div_markers.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/swallowed_list_marker.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/table_column_count.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/undefined_anchor.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/undefined_references.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/unspaced_citation.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/unsupported_metadata_key.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/unused_definitions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules/unused_yaml_anchor.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/rules.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/runner.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/yaml_anchors.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter/yaml_resolve.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/linter.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/config.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/context.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/conversions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/dispatch.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/documents.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/global_state.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/code_actions.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/completion.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/configuration.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/diagnostics.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/document_highlight.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/document_links.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/document_symbols.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/file_operations.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/file_rename.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/file_watcher.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/folding_ranges.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/footnote_conversion.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/formatting.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/goto_definition.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/heading_link_conversion.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/hover.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/link_conversion.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/linked_editing_range.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/list_conversion.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/prepare_rename.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/references.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/rename.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/semantic_tokens.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/shortcode_args.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/workspace_folders.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers/workspace_symbols.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/handlers.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/helpers.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/line_index.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/navigation.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/symbols.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/task_pool.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/testing.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp/uri_ext.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/lsp.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/main.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/metadata/bibliography.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/metadata/citations.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/metadata/project.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/metadata/references.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/metadata/yaml.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/metadata.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/parser.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/range_utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/salsa.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/syntax.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/utils.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/vfs.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/yaml_engine.rs +0 -0
- {panache_cli-3.6.0 → panache_cli-3.6.1}/src/yaml_regions.rs +0 -0
|
@@ -447,9 +447,9 @@ checksum = "d0881ea181b1df73ff77ffaaf9c7544ecc11e82fba9b5f27b262a3c73a332555"
|
|
|
447
447
|
|
|
448
448
|
[[package]]
|
|
449
449
|
name = "either"
|
|
450
|
-
version = "1.
|
|
450
|
+
version = "1.18.0"
|
|
451
451
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
452
|
-
checksum = "
|
|
452
|
+
checksum = "252afb9ae5eaa683babdc6a068b3f5726eb19e05070c731f9b2a23a7c3e8ed34"
|
|
453
453
|
|
|
454
454
|
[[package]]
|
|
455
455
|
name = "email_address"
|
|
@@ -1203,7 +1203,7 @@ checksum = "1a80800c0488c3a21695ea981a54918fbb37abf04f4d0720c453632255e2ff0e"
|
|
|
1203
1203
|
|
|
1204
1204
|
[[package]]
|
|
1205
1205
|
name = "panache"
|
|
1206
|
-
version = "3.6.
|
|
1206
|
+
version = "3.6.1"
|
|
1207
1207
|
dependencies = [
|
|
1208
1208
|
"annotate-snippets",
|
|
1209
1209
|
"assert_cmd",
|
|
@@ -1248,7 +1248,7 @@ dependencies = [
|
|
|
1248
1248
|
|
|
1249
1249
|
[[package]]
|
|
1250
1250
|
name = "panache-formatter"
|
|
1251
|
-
version = "0.21.
|
|
1251
|
+
version = "0.21.3"
|
|
1252
1252
|
dependencies = [
|
|
1253
1253
|
"insta",
|
|
1254
1254
|
"log",
|
|
@@ -1266,7 +1266,7 @@ dependencies = [
|
|
|
1266
1266
|
|
|
1267
1267
|
[[package]]
|
|
1268
1268
|
name = "panache-parser"
|
|
1269
|
-
version = "0.27.
|
|
1269
|
+
version = "0.27.2"
|
|
1270
1270
|
dependencies = [
|
|
1271
1271
|
"entities",
|
|
1272
1272
|
"insta",
|
|
@@ -10,7 +10,7 @@ authors = ["Johan Larsson <johan@jolars.co>"]
|
|
|
10
10
|
|
|
11
11
|
[package]
|
|
12
12
|
name = "panache"
|
|
13
|
-
version = "3.6.
|
|
13
|
+
version = "3.6.1"
|
|
14
14
|
edition.workspace = true
|
|
15
15
|
rust-version.workspace = true
|
|
16
16
|
# `distill_quarto_schema` is a dev-only vendoring bin (src/bin/); keep bare
|
|
@@ -52,8 +52,8 @@ path = "src/main.rs"
|
|
|
52
52
|
required-features = ["cli"]
|
|
53
53
|
|
|
54
54
|
[dependencies]
|
|
55
|
-
panache-formatter = { path = "crates/panache-formatter", version = "0.21.
|
|
56
|
-
panache-parser = { path = "crates/panache-parser", version = "0.27.
|
|
55
|
+
panache-formatter = { path = "crates/panache-formatter", version = "0.21.3" }
|
|
56
|
+
panache-parser = { path = "crates/panache-parser", version = "0.27.2", features = [
|
|
57
57
|
"serde",
|
|
58
58
|
"schema",
|
|
59
59
|
] }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: panache-cli
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.1
|
|
4
4
|
Classifier: Development Status :: 5 - Production/Stable
|
|
5
5
|
Classifier: Environment :: Console
|
|
6
6
|
Classifier: Intended Audience :: Developers
|
|
@@ -67,21 +67,20 @@ Panache is available from several sources:
|
|
|
67
67
|
### Install Script
|
|
68
68
|
|
|
69
69
|
The installer scripts pick the right release artifact for your platform and
|
|
70
|
-
install to a user-local directory by default. They
|
|
71
|
-
|
|
72
|
-
|
|
70
|
+
install to a user-local directory by default. They download the matching Panache
|
|
71
|
+
CLI release asset. If you prefer, download and inspect the script before running
|
|
72
|
+
it.
|
|
73
73
|
|
|
74
74
|
For macOS and Linux:
|
|
75
75
|
|
|
76
76
|
```sh
|
|
77
|
-
curl --proto '=https' --tlsv1.2 -
|
|
78
|
-
https://github.com/jolars/panache/releases/latest/download/panache-installer.sh | sh
|
|
77
|
+
curl --proto '=https' --tlsv1.2 -sSf https://panache.bz/install | sh
|
|
79
78
|
```
|
|
80
79
|
|
|
81
80
|
For Windows PowerShell:
|
|
82
81
|
|
|
83
82
|
```powershell
|
|
84
|
-
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://
|
|
83
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://panache.bz/install.ps1 | iex"
|
|
85
84
|
```
|
|
86
85
|
|
|
87
86
|
Set `PANACHE_INSTALL_DIR` to change the destination and `PANACHE_TAG` to pin a
|
|
@@ -203,9 +202,14 @@ The list of LSP features supported by Panache includes, among others:
|
|
|
203
202
|
|
|
204
203
|
Panache looks for a configuration in:
|
|
205
204
|
|
|
206
|
-
1.
|
|
207
|
-
2.
|
|
208
|
-
|
|
205
|
+
1. An explicit `--config <path>`
|
|
206
|
+
2. `.panache.toml`, `panache.toml`, or `.config/panache.toml` in the current
|
|
207
|
+
directory or a parent directory
|
|
208
|
+
3. The user configuration directory:
|
|
209
|
+
- Linux: `$XDG_CONFIG_HOME/panache/config.toml` or
|
|
210
|
+
`~/.config/panache/config.toml`
|
|
211
|
+
- macOS: `~/Library/Application Support/panache/config.toml`
|
|
212
|
+
- Windows: `%APPDATA%\panache\config.toml`
|
|
209
213
|
|
|
210
214
|
### Example
|
|
211
215
|
|
|
@@ -236,8 +240,8 @@ julia = "fatou" # Enable Julia linting
|
|
|
236
240
|
python = "ruff"
|
|
237
241
|
```
|
|
238
242
|
|
|
239
|
-
See [
|
|
240
|
-
configuration
|
|
243
|
+
See [the configuration reference](https://panache.bz/guide/configuration) for a
|
|
244
|
+
complete list of configuration options and their defaults.
|
|
241
245
|
|
|
242
246
|
## Integrations
|
|
243
247
|
|
|
@@ -41,21 +41,20 @@ Panache is available from several sources:
|
|
|
41
41
|
### Install Script
|
|
42
42
|
|
|
43
43
|
The installer scripts pick the right release artifact for your platform and
|
|
44
|
-
install to a user-local directory by default. They
|
|
45
|
-
|
|
46
|
-
|
|
44
|
+
install to a user-local directory by default. They download the matching Panache
|
|
45
|
+
CLI release asset. If you prefer, download and inspect the script before running
|
|
46
|
+
it.
|
|
47
47
|
|
|
48
48
|
For macOS and Linux:
|
|
49
49
|
|
|
50
50
|
```sh
|
|
51
|
-
curl --proto '=https' --tlsv1.2 -
|
|
52
|
-
https://github.com/jolars/panache/releases/latest/download/panache-installer.sh | sh
|
|
51
|
+
curl --proto '=https' --tlsv1.2 -sSf https://panache.bz/install | sh
|
|
53
52
|
```
|
|
54
53
|
|
|
55
54
|
For Windows PowerShell:
|
|
56
55
|
|
|
57
56
|
```powershell
|
|
58
|
-
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://
|
|
57
|
+
powershell -NoProfile -ExecutionPolicy Bypass -Command "irm https://panache.bz/install.ps1 | iex"
|
|
59
58
|
```
|
|
60
59
|
|
|
61
60
|
Set `PANACHE_INSTALL_DIR` to change the destination and `PANACHE_TAG` to pin a
|
|
@@ -177,9 +176,14 @@ The list of LSP features supported by Panache includes, among others:
|
|
|
177
176
|
|
|
178
177
|
Panache looks for a configuration in:
|
|
179
178
|
|
|
180
|
-
1.
|
|
181
|
-
2.
|
|
182
|
-
|
|
179
|
+
1. An explicit `--config <path>`
|
|
180
|
+
2. `.panache.toml`, `panache.toml`, or `.config/panache.toml` in the current
|
|
181
|
+
directory or a parent directory
|
|
182
|
+
3. The user configuration directory:
|
|
183
|
+
- Linux: `$XDG_CONFIG_HOME/panache/config.toml` or
|
|
184
|
+
`~/.config/panache/config.toml`
|
|
185
|
+
- macOS: `~/Library/Application Support/panache/config.toml`
|
|
186
|
+
- Windows: `%APPDATA%\panache\config.toml`
|
|
183
187
|
|
|
184
188
|
### Example
|
|
185
189
|
|
|
@@ -210,8 +214,8 @@ julia = "fatou" # Enable Julia linting
|
|
|
210
214
|
python = "ruff"
|
|
211
215
|
```
|
|
212
216
|
|
|
213
|
-
See [
|
|
214
|
-
configuration
|
|
217
|
+
See [the configuration reference](https://panache.bz/guide/configuration) for a
|
|
218
|
+
complete list of configuration options and their defaults.
|
|
215
219
|
|
|
216
220
|
## Integrations
|
|
217
221
|
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.21.3](https://github.com/jolars/panache/compare/panache-formatter-v0.21.2...panache-formatter-v0.21.3) (2026-08-20)
|
|
4
|
+
|
|
5
|
+
### Bug Fixes
|
|
6
|
+
- **formatter:** keep trailing citations with sentences ([`9accb4f`](https://github.com/jolars/panache/commit/9accb4f5e7a7db2960ab5787d4be536a5e4b54fc)), fixes [#505](https://github.com/jolars/panache/issues/505)
|
|
7
|
+
- **formatter:** compose embedded math environments ([`43a3b80`](https://github.com/jolars/panache/commit/43a3b801dd463d9f76f7bf759315d2f54f0b2061))
|
|
8
|
+
- **formatter:** preserve starred math commands ([`8e73a5c`](https://github.com/jolars/panache/commit/8e73a5c2ab642d5268825f1c456b3ddd3b491f9c))
|
|
9
|
+
- **formatter:** escape tildes contextually ([`74d82ad`](https://github.com/jolars/panache/commit/74d82ad309869a79d7b0ce96aed0ad0948ccac10)), fixes [#501](https://github.com/jolars/panache/issues/501)
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
- updated crates/panache-parser to v0.27.2
|
|
13
|
+
|
|
3
14
|
## [0.21.2](https://github.com/jolars/panache/compare/panache-formatter-v0.21.1...panache-formatter-v0.21.2) (2026-08-20)
|
|
4
15
|
|
|
5
16
|
### Bug Fixes
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[package]
|
|
2
2
|
name = "panache-formatter"
|
|
3
|
-
version = "0.21.
|
|
3
|
+
version = "0.21.3"
|
|
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.27.
|
|
22
|
+
panache-parser = { path = "../panache-parser", version = "0.27.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 }
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
use crate::config::WrapMode;
|
|
2
|
+
use crate::formatter::Formatter;
|
|
3
|
+
use crate::formatter::core::BlockquoteContext;
|
|
4
|
+
use crate::formatter::preserve::{preserve_lines, preserve_lines_unprefixed};
|
|
5
|
+
use crate::formatter::utils::is_block_element;
|
|
6
|
+
use crate::syntax::{SyntaxKind, SyntaxNode};
|
|
7
|
+
|
|
8
|
+
impl Formatter {
|
|
9
|
+
pub(super) fn format_block_quote(&mut self, node: &SyntaxNode, indent: usize) {
|
|
10
|
+
log::trace!("Formatting blockquote");
|
|
11
|
+
let depth = node
|
|
12
|
+
.ancestors()
|
|
13
|
+
.take_while(|ancestor| ancestor.kind() != SyntaxKind::LIST_ITEM)
|
|
14
|
+
.filter(|ancestor| ancestor.kind() == SyntaxKind::BLOCK_QUOTE)
|
|
15
|
+
.count()
|
|
16
|
+
.max(1);
|
|
17
|
+
|
|
18
|
+
let base_indent = " ".repeat(indent);
|
|
19
|
+
let content_prefix = format!("{}{}", base_indent, "> ".repeat(depth)); // includes trailing space
|
|
20
|
+
let blank_prefix = content_prefix.trim_end().to_string(); // no trailing space
|
|
21
|
+
|
|
22
|
+
let wrap_mode = self.config.wrap.clone().unwrap_or(WrapMode::Reflow);
|
|
23
|
+
let blockquote_children: Vec<_> = node.children().collect();
|
|
24
|
+
let saved_blockquote_context = self.blockquote_context.clone();
|
|
25
|
+
self.blockquote_context = Some(BlockquoteContext {
|
|
26
|
+
in_list_continuation: false,
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
for child in &blockquote_children {
|
|
30
|
+
match child.kind() {
|
|
31
|
+
SyntaxKind::BLOCK_QUOTE_MARKER => continue,
|
|
32
|
+
|
|
33
|
+
SyntaxKind::PARAGRAPH | SyntaxKind::PLAIN => {
|
|
34
|
+
let para_start = self.output.len();
|
|
35
|
+
match wrap_mode {
|
|
36
|
+
WrapMode::Preserve => {
|
|
37
|
+
let escaped = self.config.formatter_extensions.escaped_line_breaks;
|
|
38
|
+
for line in preserve_lines_unprefixed(child, escaped) {
|
|
39
|
+
if line.is_empty() {
|
|
40
|
+
self.output.push_str(content_prefix.trim_end());
|
|
41
|
+
} else {
|
|
42
|
+
self.output.push_str(&content_prefix);
|
|
43
|
+
self.output.push_str(&line);
|
|
44
|
+
}
|
|
45
|
+
self.output.push('\n');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
WrapMode::Reflow => {
|
|
49
|
+
let width = self.config.line_width.saturating_sub(content_prefix.len());
|
|
50
|
+
let lines = self.wrapped_lines_for_paragraph(child, width);
|
|
51
|
+
for line in lines {
|
|
52
|
+
self.output.push_str(&content_prefix);
|
|
53
|
+
self.output.push_str(&line);
|
|
54
|
+
self.output.push('\n');
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
WrapMode::Sentence | WrapMode::Semantic => {
|
|
58
|
+
let lines = if matches!(wrap_mode, WrapMode::Semantic) {
|
|
59
|
+
self.semantic_lines_for_paragraph(child)
|
|
60
|
+
} else {
|
|
61
|
+
self.sentence_lines_for_paragraph(child)
|
|
62
|
+
};
|
|
63
|
+
for line in lines {
|
|
64
|
+
self.output.push_str(&content_prefix);
|
|
65
|
+
self.output.push_str(&line);
|
|
66
|
+
self.output.push('\n');
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
self.guard_definition_marker_start(para_start, 0);
|
|
71
|
+
}
|
|
72
|
+
SyntaxKind::ALERT => {
|
|
73
|
+
let marker = child
|
|
74
|
+
.children_with_tokens()
|
|
75
|
+
.filter_map(|item| item.into_token())
|
|
76
|
+
.find(|tok| tok.kind() == SyntaxKind::ALERT_MARKER)
|
|
77
|
+
.map(|tok| tok.text().to_string())
|
|
78
|
+
.unwrap_or_else(|| "[!NOTE]".to_string());
|
|
79
|
+
|
|
80
|
+
self.output.push_str(&content_prefix);
|
|
81
|
+
self.output.push_str(&marker);
|
|
82
|
+
self.output.push('\n');
|
|
83
|
+
|
|
84
|
+
for alert_child in child.children() {
|
|
85
|
+
match alert_child.kind() {
|
|
86
|
+
SyntaxKind::PARAGRAPH => match wrap_mode {
|
|
87
|
+
WrapMode::Preserve => {
|
|
88
|
+
let escaped =
|
|
89
|
+
self.config.formatter_extensions.escaped_line_breaks;
|
|
90
|
+
for line in preserve_lines(&alert_child, escaped) {
|
|
91
|
+
if line.is_empty() {
|
|
92
|
+
self.output.push_str(content_prefix.trim_end());
|
|
93
|
+
} else {
|
|
94
|
+
self.output.push_str(&content_prefix);
|
|
95
|
+
self.output.push_str(&line);
|
|
96
|
+
}
|
|
97
|
+
self.output.push('\n');
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
WrapMode::Reflow => {
|
|
101
|
+
let width =
|
|
102
|
+
self.config.line_width.saturating_sub(content_prefix.len());
|
|
103
|
+
for line in
|
|
104
|
+
self.wrapped_lines_for_paragraph(&alert_child, width)
|
|
105
|
+
{
|
|
106
|
+
self.output.push_str(&content_prefix);
|
|
107
|
+
self.output.push_str(&line);
|
|
108
|
+
self.output.push('\n');
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
WrapMode::Sentence | WrapMode::Semantic => {
|
|
112
|
+
let lines = if matches!(wrap_mode, WrapMode::Semantic) {
|
|
113
|
+
self.semantic_lines_for_paragraph(&alert_child)
|
|
114
|
+
} else {
|
|
115
|
+
self.sentence_lines_for_paragraph(&alert_child)
|
|
116
|
+
};
|
|
117
|
+
for line in lines {
|
|
118
|
+
self.output.push_str(&content_prefix);
|
|
119
|
+
self.output.push_str(&line);
|
|
120
|
+
self.output.push('\n');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
SyntaxKind::BLANK_LINE => {
|
|
125
|
+
self.output.push_str(&blank_prefix);
|
|
126
|
+
self.output.push('\n');
|
|
127
|
+
}
|
|
128
|
+
_ => {
|
|
129
|
+
let rendered = self.render_to_buffer(
|
|
130
|
+
&alert_child,
|
|
131
|
+
indent,
|
|
132
|
+
content_prefix.len(),
|
|
133
|
+
);
|
|
134
|
+
self.append_blockquote_prefixed_nested_block(
|
|
135
|
+
&rendered,
|
|
136
|
+
&base_indent,
|
|
137
|
+
&content_prefix,
|
|
138
|
+
&blank_prefix,
|
|
139
|
+
);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
SyntaxKind::BLANK_LINE => {
|
|
145
|
+
self.output.push_str(&blank_prefix);
|
|
146
|
+
self.output.push('\n');
|
|
147
|
+
}
|
|
148
|
+
SyntaxKind::HORIZONTAL_RULE => {
|
|
149
|
+
self.output.push_str(&content_prefix);
|
|
150
|
+
let available_width =
|
|
151
|
+
self.config.line_width.saturating_sub(content_prefix.len());
|
|
152
|
+
self.output
|
|
153
|
+
.push_str(&self.horizontal_rule_text(available_width));
|
|
154
|
+
self.output.push('\n');
|
|
155
|
+
}
|
|
156
|
+
SyntaxKind::HEADING => {
|
|
157
|
+
let heading_text = self.format_heading(child);
|
|
158
|
+
for line in heading_text.lines() {
|
|
159
|
+
self.output.push_str(&content_prefix);
|
|
160
|
+
self.output.push_str(line);
|
|
161
|
+
self.output.push('\n');
|
|
162
|
+
}
|
|
163
|
+
if let Some(next) = child.next_sibling()
|
|
164
|
+
&& next.kind() != SyntaxKind::BLANK_LINE
|
|
165
|
+
&& is_block_element(next.kind())
|
|
166
|
+
{
|
|
167
|
+
self.output.push_str(&blank_prefix);
|
|
168
|
+
self.output.push('\n');
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
SyntaxKind::LIST => {
|
|
172
|
+
let list_output = self.render_to_buffer(child, 0, content_prefix.len());
|
|
173
|
+
|
|
174
|
+
let ends_in_list_continuation = self.append_blockquote_prefixed_list_output(
|
|
175
|
+
&list_output,
|
|
176
|
+
&base_indent,
|
|
177
|
+
&content_prefix,
|
|
178
|
+
&blank_prefix,
|
|
179
|
+
);
|
|
180
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
181
|
+
ctx.in_list_continuation = ends_in_list_continuation;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
SyntaxKind::CODE_BLOCK => {
|
|
185
|
+
let code_block_leading_indent = Self::code_block_leading_indent(child);
|
|
186
|
+
let code_output = self.render_to_buffer(child, indent, 0);
|
|
187
|
+
|
|
188
|
+
self.append_blockquote_prefixed_block(
|
|
189
|
+
&code_output,
|
|
190
|
+
&content_prefix,
|
|
191
|
+
&blank_prefix,
|
|
192
|
+
Some(&code_block_leading_indent),
|
|
193
|
+
);
|
|
194
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
195
|
+
ctx.in_list_continuation = false;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
SyntaxKind::HTML_BLOCK
|
|
199
|
+
| SyntaxKind::HTML_BLOCK_RAW
|
|
200
|
+
| SyntaxKind::HTML_BLOCK_DIV => {
|
|
201
|
+
let html_output = self.render_to_buffer(child, indent, 0);
|
|
202
|
+
|
|
203
|
+
self.append_blockquote_prefixed_block(
|
|
204
|
+
&html_output,
|
|
205
|
+
&content_prefix,
|
|
206
|
+
&blank_prefix,
|
|
207
|
+
None,
|
|
208
|
+
);
|
|
209
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
210
|
+
ctx.in_list_continuation = false;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
SyntaxKind::TEX_BLOCK => {
|
|
214
|
+
let tex_output = self.render_to_buffer(child, indent, 0);
|
|
215
|
+
|
|
216
|
+
self.append_blockquote_prefixed_block(
|
|
217
|
+
&tex_output,
|
|
218
|
+
&content_prefix,
|
|
219
|
+
&blank_prefix,
|
|
220
|
+
None,
|
|
221
|
+
);
|
|
222
|
+
}
|
|
223
|
+
SyntaxKind::PIPE_TABLE
|
|
224
|
+
| SyntaxKind::GRID_TABLE
|
|
225
|
+
| SyntaxKind::SIMPLE_TABLE
|
|
226
|
+
| SyntaxKind::MULTILINE_TABLE => {
|
|
227
|
+
let table_output = self.render_to_buffer(child, 0, 0);
|
|
228
|
+
|
|
229
|
+
let min_indent = table_output
|
|
230
|
+
.lines()
|
|
231
|
+
.filter(|line| !line.trim().is_empty())
|
|
232
|
+
.map(|line| line.len() - line.trim_start().len())
|
|
233
|
+
.min()
|
|
234
|
+
.unwrap_or(0);
|
|
235
|
+
let dedented: String = table_output
|
|
236
|
+
.lines()
|
|
237
|
+
.map(|line| {
|
|
238
|
+
if line.trim().is_empty() {
|
|
239
|
+
String::new()
|
|
240
|
+
} else {
|
|
241
|
+
line[min_indent..].to_string()
|
|
242
|
+
}
|
|
243
|
+
})
|
|
244
|
+
.collect::<Vec<_>>()
|
|
245
|
+
.join("\n");
|
|
246
|
+
|
|
247
|
+
self.append_blockquote_prefixed_block(
|
|
248
|
+
&dedented,
|
|
249
|
+
&content_prefix,
|
|
250
|
+
&blank_prefix,
|
|
251
|
+
None,
|
|
252
|
+
);
|
|
253
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
254
|
+
ctx.in_list_continuation = false;
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
SyntaxKind::LINE_BLOCK => {
|
|
258
|
+
let line_block_output = self.render_to_buffer(child, 0, 0);
|
|
259
|
+
|
|
260
|
+
self.append_blockquote_prefixed_block(
|
|
261
|
+
&line_block_output,
|
|
262
|
+
&content_prefix,
|
|
263
|
+
&blank_prefix,
|
|
264
|
+
None,
|
|
265
|
+
);
|
|
266
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
267
|
+
ctx.in_list_continuation = false;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
SyntaxKind::DEFINITION_LIST => {
|
|
271
|
+
let def_output = self.render_to_buffer(child, indent, 0);
|
|
272
|
+
|
|
273
|
+
self.append_blockquote_prefixed_block(
|
|
274
|
+
&def_output,
|
|
275
|
+
&content_prefix,
|
|
276
|
+
&blank_prefix,
|
|
277
|
+
None,
|
|
278
|
+
);
|
|
279
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
280
|
+
ctx.in_list_continuation = false;
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
SyntaxKind::BLOCK_QUOTE => {
|
|
284
|
+
self.format_node_sync(child, indent);
|
|
285
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
286
|
+
ctx.in_list_continuation = false;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
_ => {
|
|
290
|
+
let rendered = self.render_to_buffer(child, 0, content_prefix.len());
|
|
291
|
+
|
|
292
|
+
self.append_blockquote_prefixed_nested_block(
|
|
293
|
+
&rendered,
|
|
294
|
+
&base_indent,
|
|
295
|
+
&content_prefix,
|
|
296
|
+
&blank_prefix,
|
|
297
|
+
);
|
|
298
|
+
if let Some(ctx) = self.blockquote_context.as_mut() {
|
|
299
|
+
ctx.in_list_continuation = false;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
self.blockquote_context = saved_blockquote_context;
|
|
305
|
+
}
|
|
306
|
+
}
|