Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,8 @@ Please file a bug if you notice a violation of semantic versioning.

- Extend the opt-in Rust Bash provider to preserve literal-title test_expect_success calls.

- markdown-merge: an unspecified (`:auto`) Markdown backend now prefers markly, then commonmarker, then kramdown, and uses kreuzberg-language-pack only as the last resort; optional backend gems are loaded markly first. The reported `available_markdown_backends` order is unchanged.

### Deprecated

### Removed
Expand Down
7 changes: 7 additions & 0 deletions gems/kettle-jem/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,13 @@ Please file a bug if you notice a violation of semantic versioning.

### Removed

- The `commonmarker-merge` and `kramdown-merge` runtime dependencies, and their
entries in the local sibling and `templating_local.gemfile` path lists.
kettle-jem merges Markdown with markly (via `ast-crispr-markdown-markly` and
`markly-merge`); other Markdown backends are still used when a project installs
them, but are no longer forced on every bundle. This also stops `commonmarker`'s
native extension from being compiled, which fails on ruby-head.

### Fixed

- The packaged `Gemfile` no longer overrides `git_source(:github)` with an SSH
Expand Down
2 changes: 0 additions & 2 deletions gems/kettle-jem/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,8 @@ direct_sibling_gems = %w[
ast-merge
bash-merge
citrus-toml-merge
commonmarker-merge
dotenv-merge
json-merge
kramdown-merge
markdown-merge
markly-merge
prism-merge
Expand Down
36 changes: 1 addition & 35 deletions gems/kettle-jem/Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,13 @@ PATH
ast-merge (~> 7.1, >= 7.1.8)
bash-merge (~> 7.1, >= 7.1.8)
citrus-toml-merge (~> 7.1, >= 7.1.8)
commonmarker-merge (~> 7.1, >= 7.1.8)
dotenv-merge (~> 7.1, >= 7.1.8)
json-merge (~> 7.1, >= 7.1.8)
kettle-changelog (~> 1.0, >= 1.0.7)
kettle-dev (~> 3.0, >= 3.0.34)
kettle-gha-pins (~> 0.3, >= 0.3.14)
kettle-ndjson (~> 0.1, >= 0.1.13)
kettle-rb (~> 0.1, >= 0.1.14)
kramdown-merge (~> 7.1, >= 7.1.8)
kettle-rb (~> 0.1, >= 0.1.11)
markdown-merge (~> 7.1, >= 7.1.8)
markly-merge (~> 7.1, >= 7.1.8)
parslet (~> 2.0)
Expand Down Expand Up @@ -116,14 +114,6 @@ PATH
toml-rb (~> 4.1)
version_gem (~> 1.1, >= 1.1.15)

PATH
remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/commonmarker-merge
specs:
commonmarker-merge (7.1.9)
commonmarker (~> 2.2)
markdown-merge (= 7.1.9)
version_gem (~> 1.1, >= 1.1.15)

PATH
remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/dotenv-merge
specs:
Expand Down Expand Up @@ -158,14 +148,6 @@ PATH
tree_haver (= 7.1.9)
version_gem (~> 1.1, >= 1.1.15)

PATH
remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/kramdown-merge
specs:
kramdown-merge (7.1.9)
kramdown (~> 2.5)
markdown-merge (= 7.1.9)
version_gem (~> 1.1, >= 1.1.15)

PATH
remote: /var/home/pboling/src/my/structuredmerge/ruby/gems/markdown-merge
specs:
Expand Down Expand Up @@ -337,12 +319,6 @@ GEM
command_kit-completion (0.3.0)
command_kit (~> 0.1)
completely (~> 0.6)
commonmarker (2.10.0-aarch64-linux)
commonmarker (2.10.0-aarch64-linux-musl)
commonmarker (2.10.0-arm64-darwin)
commonmarker (2.10.0-x86_64-darwin)
commonmarker (2.10.0-x86_64-linux)
commonmarker (2.10.0-x86_64-linux-musl)
completely (0.8.0)
colsole (~> 1.0.0)
erb
Expand Down Expand Up @@ -779,7 +755,6 @@ DEPENDENCIES
bundler-audit (~> 0.9.3)
cgi (~> 0.5)
citrus-toml-merge!
commonmarker-merge!
debug (>= 1.1)
dotenv-merge!
erb (~> 6.0, >= 6.0.7)
Expand All @@ -796,7 +771,6 @@ DEPENDENCIES
kettle-soup-cover (~> 3.0, >= 3.0.10)
kettle-test (~> 2.0, >= 2.0.21)
kramdown (~> 2.5, >= 2.5.2)
kramdown-merge!
kramdown-parser-gfm (~> 1.1)
markdown-merge!
markly-merge!
Expand Down Expand Up @@ -867,13 +841,6 @@ CHECKSUMS
colsole (1.0.1) sha256=7632a300ace2db877c024ffe413c684954cf37e41264b75ace9f456c9d657b02
command_kit (0.6.0) sha256=e57f29cf5aee4f571c210041d910ff87f85749e42dfe75139c57cc93d84afa90
command_kit-completion (0.3.0) sha256=d9c498555125bcdd0c9d869f2a64a25a2f0205102a7f28c81c7937ae633ea737
commonmarker (2.10.0-aarch64-linux) sha256=eeb167dea203dee066eb0dd99b3fd2deb526c8b5e7297ad385f7a5d60f869478
commonmarker (2.10.0-aarch64-linux-musl) sha256=e95d9e87ea6306e21ffa11855a7bb55518538143b23a227fe3bb00b41873ce25
commonmarker (2.10.0-arm64-darwin) sha256=39ecc891d1e4308b5233cc28b40383de854a2bfbefe17d68e49174347a8aa79e
commonmarker (2.10.0-x86_64-darwin) sha256=01e0830ed0319825ecdc16411c90acd3f661d1568dfc178731b3f64d0ce2363d
commonmarker (2.10.0-x86_64-linux) sha256=945c510c0bfca9022245928e2248468fe3ddad58c939be0c37b20082cc392880
commonmarker (2.10.0-x86_64-linux-musl) sha256=288cd4fb9f17eed2ffa73551ef241dcf594e0f484b2aee2a0999540333c0618e
commonmarker-merge (7.1.9)
completely (0.8.0) sha256=e493cd5d84805f47917a41f277ecbfe5f35363bed670be5a957d3acaed8c6c5e
concurrent-ruby (1.3.8) sha256=b2f1be836e968ccc78ccfce277ea79c72a88633f22306782c16ff23fb415d1e1
date (3.5.1) sha256=750d06384d7b9c15d562c76291407d89e368dda4d4fff957eb94962d325a0dc0
Expand Down Expand Up @@ -914,7 +881,6 @@ CHECKSUMS
kettle-test (2.0.21) sha256=2ab0dd1a1d11568f8fba61084ebef84717cd4dff028a527777c92d4e77f0e9c5
kettle-wash (0.1.6) sha256=934dfb955f41b89540fe5df87614cf718a73ebc1696de7c50e7940a4695753ed
kramdown (2.5.2) sha256=1ba542204c66b6f9111ff00dcc26075b95b220b07f2905d8261740c82f7f02fa
kramdown-merge (7.1.9)
kramdown-parser-gfm (1.1.0) sha256=fb39745516427d2988543bf01fc4cf0ab1149476382393e0e9c48592f6581729
language_server-protocol (3.17.0.6) sha256=5ef2c0c138f8267e1bc631d3328347d354f96724b0af22f2c79516120443b7f0
lint_roller (1.1.0) sha256=2c0c845b632a7d172cb849cc90c1bce937a28c5c8ccccb50dfd46a485003cc87
Expand Down
2 changes: 0 additions & 2 deletions gems/kettle-jem/gemfiles/modular/templating_local.gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,11 @@ structuredmerge_local_gems = %w[
ast-template
bash-merge
binary-merge
commonmarker-merge
citrus-toml-merge
dotenv-merge
go-merge
html-merge
json-merge
kramdown-merge
markdown-merge
markly-merge
parslet-toml-merge
Expand Down
4 changes: 1 addition & 3 deletions gems/kettle-jem/kettle-jem.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -101,15 +101,13 @@ Gem::Specification.new do |spec|
spec.add_dependency("ast-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("bash-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("citrus-toml-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("commonmarker-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("dotenv-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("json-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("kettle-changelog", "~> 1.0", ">= 1.0.7") # ruby >= 4.0.0
spec.add_dependency("kettle-dev", "~> 3.0", ">= 3.0.34") # ruby >= 2.3.0
spec.add_dependency("kettle-gha-pins", "~> 0.3", ">= 0.3.14") # ruby >= 2.4.0
spec.add_dependency("kettle-ndjson", "~> 0.1", ">= 0.1.13") # ruby >= 2.4.0
spec.add_dependency("kettle-rb", "~> 0.1", ">= 0.1.14") # ruby >= 1.8.7
spec.add_dependency("kramdown-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("kettle-rb", "~> 0.1", ">= 0.1.11") # ruby >= 1.8.7
spec.add_dependency("markdown-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("markly-merge", "~> 7.1", ">= 7.1.8") # ruby >= 4.0.0
spec.add_dependency("parslet", "~> 2.0") # ruby >= 2.6.0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,12 @@ structuredmerge_local_gems = %w[
ast-template
bash-merge
binary-merge
commonmarker-merge
citrus-toml-merge
dotenv-merge
go-merge
html-merge
json-merge
kettle-jem
kramdown-merge
markdown-merge
markly-merge
parslet-toml-merge
Expand Down
91 changes: 45 additions & 46 deletions gems/markdown-merge/.rubocop_gradual.lock
Original file line number Diff line number Diff line change
Expand Up @@ -93,53 +93,52 @@
"lib/markdown-merge.rb:2827716783": [
[1, 1, 0, "Naming/FileName: The name of this source file (`markdown-merge.rb`) should use snake_case.", 5381]
],
"lib/markdown/merge.rb:2631994489": [
"lib/markdown/merge.rb:1534005504": [
[8, 3, 12, "Style/Documentation: Missing top-level documentation comment for `module Markdown::Merge`.", 2866359175],
[8, 3, 25562, "Metrics/ModuleLength: Module has too many lines. [591/100]", 2772054550],
[20, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Markdown::Merge::ParseError`.", 362242086],
[153, 5, 1014, "Metrics/MethodLength: Method has too many lines. [24/10]", 650805533],
[179, 5, 73, "Lint/ShadowedException: Do not shadow rescued Exceptions.", 2046499071],
[183, 5, 678, "Metrics/AbcSize: Assignment Branch Condition size for `match_markdown_owners` is too high. [<10, 23, 8> 26.32/17]", 2124140148],
[183, 5, 678, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_markdown_owners` is too high. [9/7]", 2124140148],
[183, 5, 678, "Metrics/PerceivedComplexity: Perceived complexity for `match_markdown_owners` is too high. [9/8]", 2124140148],
[196, 5, 1188, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<10, 25, 8> 28.09/17]", 3592129796],
[196, 5, 1188, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [9/7]", 3592129796],
[196, 5, 1188, "Metrics/MethodLength: Method has too many lines. [23/10]", 3592129796],
[196, 5, 1188, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [9/8]", 3592129796],
[225, 5, 513, "Metrics/MethodLength: Method has too many lines. [13/10]", 912081106],
[243, 5, 747, "Metrics/MethodLength: Method has too many lines. [16/10]", 3172863125],
[274, 5, 1513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_markdown_delegated_child_outputs` is too high. [<16, 37, 9> 41.3/17]", 3320736661],
[274, 5, 1513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_markdown_delegated_child_outputs` is too high. [10/7]", 3320736661],
[274, 5, 1513, "Metrics/MethodLength: Method has too many lines. [30/10]", 3320736661],
[274, 5, 1513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_markdown_delegated_child_outputs` is too high. [10/8]", 3320736661],
[312, 5, 1058, "Metrics/MethodLength: Method has too many lines. [23/10]", 2000305522],
[339, 5, 1103, "Metrics/MethodLength: Method has too many lines. [23/10]", 2615729942],
[339, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682],
[367, 5, 817, "Metrics/MethodLength: Method has too many lines. [13/10]", 322304706],
[372, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2378183959],
[385, 5, 805, "Metrics/MethodLength: Method has too many lines. [13/10]", 935244360],
[390, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2974266470],
[403, 5, 722, "Metrics/MethodLength: Method has too many lines. [12/10]", 1758487766],
[408, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499],
[420, 5, 730, "Metrics/MethodLength: Method has too many lines. [12/10]", 3297037131],
[425, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499],
[451, 5, 1584, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_owners` is too high. [<21, 32, 13> 40.42/17]", 572024212],
[451, 5, 1584, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_markdown_owners` is too high. [11/7]", 572024212],
[451, 5, 1584, "Metrics/MethodLength: Method has too many lines. [45/10]", 572024212],
[451, 5, 1584, "Metrics/PerceivedComplexity: Perceived complexity for `collect_markdown_owners` is too high. [11/8]", 572024212],
[505, 5, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_owner_start_indices` is too high. [<21, 22, 11> 32.34/17]", 12516264],
[505, 5, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_owner_start_indices` is too high. [9/7]", 12516264],
[505, 5, 1147, "Metrics/MethodLength: Method has too many lines. [33/10]", 12516264],
[505, 5, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_owner_start_indices` is too high. [9/8]", 12516264],
[546, 5, 602, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_sections` is too high. [<9, 20, 6> 22.74/17]", 1946206422],
[546, 5, 602, "Metrics/MethodLength: Method has too many lines. [14/10]", 1946206422],
[554, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986],
[565, 5, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_fence_ranges` is too high. [<19, 21, 11> 30.38/17]", 2035260313],
[565, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_fence_ranges` is too high. [8/7]", 2035260313],
[565, 5, 1097, "Metrics/MethodLength: Method has too many lines. [31/10]", 2035260313],
[581, 13, 227, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1054958538],
[603, 5, 332, "Metrics/MethodLength: Method has too many lines. [14/10]", 2041170985],
[639, 5, 549, "Metrics/MethodLength: Method has too many lines. [12/10]", 2513777426]
[8, 3, 25887, "Metrics/ModuleLength: Module has too many lines. [592/100]", 1841984214],
[24, 5, 16, "Style/Documentation: Missing top-level documentation comment for `class Markdown::Merge::ParseError`.", 362242086],
[157, 5, 1014, "Metrics/MethodLength: Method has too many lines. [24/10]", 650805533],
[187, 5, 678, "Metrics/AbcSize: Assignment Branch Condition size for `match_markdown_owners` is too high. [<10, 23, 8> 26.32/17]", 2124140148],
[187, 5, 678, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `match_markdown_owners` is too high. [9/7]", 2124140148],
[187, 5, 678, "Metrics/PerceivedComplexity: Perceived complexity for `match_markdown_owners` is too high. [9/8]", 2124140148],
[200, 5, 1188, "Metrics/AbcSize: Assignment Branch Condition size for `merge_markdown` is too high. [<10, 25, 8> 28.09/17]", 3592129796],
[200, 5, 1188, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `merge_markdown` is too high. [9/7]", 3592129796],
[200, 5, 1188, "Metrics/MethodLength: Method has too many lines. [23/10]", 3592129796],
[200, 5, 1188, "Metrics/PerceivedComplexity: Perceived complexity for `merge_markdown` is too high. [9/8]", 3592129796],
[229, 5, 513, "Metrics/MethodLength: Method has too many lines. [13/10]", 912081106],
[247, 5, 747, "Metrics/MethodLength: Method has too many lines. [16/10]", 3172863125],
[278, 5, 1513, "Metrics/AbcSize: Assignment Branch Condition size for `apply_markdown_delegated_child_outputs` is too high. [<16, 37, 9> 41.3/17]", 3320736661],
[278, 5, 1513, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `apply_markdown_delegated_child_outputs` is too high. [10/7]", 3320736661],
[278, 5, 1513, "Metrics/MethodLength: Method has too many lines. [30/10]", 3320736661],
[278, 5, 1513, "Metrics/PerceivedComplexity: Perceived complexity for `apply_markdown_delegated_child_outputs` is too high. [10/8]", 3320736661],
[316, 5, 1058, "Metrics/MethodLength: Method has too many lines. [23/10]", 2000305522],
[343, 5, 1103, "Metrics/MethodLength: Method has too many lines. [23/10]", 2615729942],
[343, 52, 144, "Metrics/ParameterLists: Avoid parameter lists longer than 5 parameters. [6/5]", 3050457682],
[371, 5, 817, "Metrics/MethodLength: Method has too many lines. [13/10]", 322304706],
[376, 121, 74, "Layout/LineLength: Line is too long. [194/120]", 2378183959],
[389, 5, 805, "Metrics/MethodLength: Method has too many lines. [13/10]", 935244360],
[394, 121, 66, "Layout/LineLength: Line is too long. [186/120]", 2974266470],
[407, 5, 722, "Metrics/MethodLength: Method has too many lines. [12/10]", 1758487766],
[412, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499],
[424, 5, 730, "Metrics/MethodLength: Method has too many lines. [12/10]", 3297037131],
[429, 121, 17, "Layout/LineLength: Line is too long. [137/120]", 3013228499],
[455, 5, 1584, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_owners` is too high. [<21, 32, 13> 40.42/17]", 572024212],
[455, 5, 1584, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `collect_markdown_owners` is too high. [11/7]", 572024212],
[455, 5, 1584, "Metrics/MethodLength: Method has too many lines. [45/10]", 572024212],
[455, 5, 1584, "Metrics/PerceivedComplexity: Perceived complexity for `collect_markdown_owners` is too high. [11/8]", 572024212],
[509, 5, 1147, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_owner_start_indices` is too high. [<21, 22, 11> 32.34/17]", 12516264],
[509, 5, 1147, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_owner_start_indices` is too high. [9/7]", 12516264],
[509, 5, 1147, "Metrics/MethodLength: Method has too many lines. [33/10]", 12516264],
[509, 5, 1147, "Metrics/PerceivedComplexity: Perceived complexity for `markdown_owner_start_indices` is too high. [9/8]", 12516264],
[550, 5, 602, "Metrics/AbcSize: Assignment Branch Condition size for `collect_markdown_sections` is too high. [<9, 20, 6> 22.74/17]", 1946206422],
[550, 5, 602, "Metrics/MethodLength: Method has too many lines. [14/10]", 1946206422],
[558, 7, 11, "Style/MultilineBlockChain: Avoid multi-line chains of blocks.", 848344986],
[569, 5, 1097, "Metrics/AbcSize: Assignment Branch Condition size for `markdown_fence_ranges` is too high. [<19, 21, 11> 30.38/17]", 2035260313],
[569, 5, 1097, "Metrics/CyclomaticComplexity: Cyclomatic complexity for `markdown_fence_ranges` is too high. [8/7]", 2035260313],
[569, 5, 1097, "Metrics/MethodLength: Method has too many lines. [31/10]", 2035260313],
[585, 13, 227, "Metrics/BlockNesting: Avoid more than 3 levels of block nesting.", 1054958538],
[607, 5, 332, "Metrics/MethodLength: Method has too many lines. [14/10]", 2041170985],
[643, 5, 549, "Metrics/MethodLength: Method has too many lines. [12/10]", 2513777426]
],
"lib/markdown/merge/backend_support.rb:1910609966": [
[6, 5, 7153, "Metrics/ModuleLength: Module has too many lines. [161/100]", 606467501],
Expand Down
9 changes: 7 additions & 2 deletions gems/markdown-merge/lib/markdown/merge.rb
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ module Merge
'markly' => TreeHaver::BackendReference.new(id: 'markly', family: 'native').freeze,
'kramdown' => TreeHaver::BackendReference.new(id: 'kramdown', family: 'native').freeze
}.freeze
# Order in which an unspecified (:auto) backend is chosen from those available.
# Markly is the most capable Markdown parser; the language pack is the last
# resort. BACKEND_REFERENCES keeps the shared fixtures' reporting order.
BACKEND_PREFERENCE = %w[markly commonmarker kramdown kreuzberg-language-pack].freeze
BACKEND_REGISTRY = Struct.new(:registered, :mutex).new(false, Mutex.new)

class Error < Ast::Merge::Error; end
Expand Down Expand Up @@ -632,7 +636,7 @@ def resolve_backend(backend)
current = TreeHaver.current_backend_id
return current if BACKEND_REFERENCES.key?(current.to_s) && markdown_backend_available_for_analysis?(current)

BACKEND_REFERENCES.keys.find { |backend_id| markdown_backend_available_for_analysis?(backend_id) } ||
BACKEND_PREFERENCE.find { |backend_id| markdown_backend_available_for_analysis?(backend_id) } ||
'kreuzberg-language-pack'
end

Expand Down Expand Up @@ -713,9 +717,10 @@ def unsupported_feature_result(message)

Markdown::Merge.register_provider!

# Optional backends: loaded when their gems are installed, never required.
%w[
commonmarker/merge/backend
markly/merge/backend
commonmarker/merge/backend
].each do |feature|
require feature
rescue LoadError
Expand Down
Loading