markdown-merge 1.0.1 → 1.0.2

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9f336dc051776f6ace22f40939b74b5e37fcee847553e92d84a7d3a8f0ff0368
4
- data.tar.gz: 5e96e4bfa2b80b89e763801c699ec0457e6e9a18b59da234487c8ecc3e90b744
3
+ metadata.gz: 313e6fe58655ab780b6d490e2ff6248021af42cc1ea3ec8c89bb5ac1744da0c5
4
+ data.tar.gz: 95468522f4d6b580d5e5a2dd437000e30b7467517601c3d746336cf8dac6feeb
5
5
  SHA512:
6
- metadata.gz: 8cfbd2dbf52a62c2827f7f1454488be66cc0dcff4049ce73b00cb8b3ea63f02e02fb9f4fc688382fe7667f7aea510416d17cdd31d55cd2e0d23ebc50c164b831
7
- data.tar.gz: d1b4bde0f1fd811e751b323095d896983b1bdf7314f88931b0afcfde3fbde7f9ea0623b6aca750ed7280978382998c5e2669567a852223a5431c857ec9cbdc57
6
+ metadata.gz: 96ce32dff8ad1dadf61153564d3888a6708c8d789cfcc47058a01e961ee710b77cf8e598b18952eee98af3ebb51c695c25ff8ae646a952de385a43a10eac4e3d
7
+ data.tar.gz: 351d5646354111b7ac0094ea5070f2515feaf5b9be7f0c429b00a963f42f6f68b3125c88615cfc5fd83f215a4106bb2f8fd85500a1c1577a378dbd3b895ed90d
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -30,6 +30,23 @@ Please file a bug if you notice a violation of semantic versioning.
30
30
 
31
31
  ### Security
32
32
 
33
+ ## [1.0.2] - 2026-02-01
34
+
35
+ - TAG: [v1.0.2][1.0.2t]
36
+ - COVERAGE: 93.12% -- 1611/1730 lines in 25 files
37
+ - BRANCH COVERAGE: 81.52% -- 525/644 branches in 25 files
38
+ - 96.92% documented
39
+
40
+ ### Added
41
+
42
+ - More tests
43
+
44
+ ### Changed
45
+
46
+ - Documentation cleanup
47
+ - Upgrade to [ast-merge v4.0.5](https://github.com/kettle-rb/ast-merge/releases/tag/v4.0.5)
48
+ - Upgrade to [tree_haver v5.0.3](https://github.com/kettle-rb/tree_haver/releases/tag/v5.0.3)
49
+
33
50
  ## [1.0.1] - 2026-01-20
34
51
 
35
52
  - TAG: [v1.0.1][1.0.1t]
@@ -257,7 +274,9 @@ Please file a bug if you notice a violation of semantic versioning.
257
274
  This fixes freeze block detection for Commonmarker where the TreeHaver wrapper's
258
275
  content methods return empty but the inner node has the actual content.
259
276
 
260
- [Unreleased]: https://github.com/kettle-rb/markdown-merge/compare/v1.0.1...HEAD
277
+ [Unreleased]: https://github.com/kettle-rb/markdown-merge/compare/v1.0.2...HEAD
278
+ [1.0.2]: https://github.com/kettle-rb/markdown-merge/compare/v1.0.1...v1.0.2
279
+ [1.0.2t]: https://github.com/kettle-rb/markdown-merge/releases/tag/v1.0.2
261
280
  [1.0.1]: https://github.com/kettle-rb/markdown-merge/compare/v1.0.0...v1.0.1
262
281
  [1.0.1t]: https://github.com/kettle-rb/markdown-merge/releases/tag/v1.0.1
263
282
  [1.0.0]: https://github.com/kettle-rb/markdown-merge/compare/76f2230840b236dd10fdd7baf322c082762dddb0...v1.0.0
data/README.md CHANGED
@@ -1,16 +1,16 @@
1
- | 📍 NOTE |
2
- | --- |
3
- | RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
4
- | Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
5
- | It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
1
+ | 📍 NOTE |
2
+ |---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
3
+ | RubyGems (the [GitHub org][rubygems-org], not the website) [suffered][draper-security] a [hostile takeover][ellen-takeover] in September 2025. |
4
+ | Ultimately [4 maintainers][simi-removed] were [hard removed][martin-removed] and a reason has been given for only 1 of those, while 2 others resigned in protest. |
5
+ | It is a [complicated story][draper-takeover] which is difficult to [parse quickly][draper-lies]. |
6
6
  | Simply put - there was active policy for adding or removing maintainers/owners of [rubygems][rubygems-maint-policy] and [bundler][bundler-maint-policy], and those [policies were not followed][policy-fail]. |
7
- | I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
8
- | If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
9
- | Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
10
- | Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
11
- | The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
12
- | See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
13
- | What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
7
+ | I'm adding notes like this to gems because I [don't condone theft][draper-theft] of repositories or gems from their rightful owners. |
8
+ | If a similar theft happened with my repos/gems, I'd hope some would stand up for me. |
9
+ | Disenfranchised former-maintainers have started [gem.coop][gem-coop]. |
10
+ | Once available I will publish there exclusively; unless RubyCentral makes amends with the community. |
11
+ | The ["Technology for Humans: Joel Draper"][reinteractive-podcast] podcast episode by [reinteractive][reinteractive] is the most cogent summary I'm aware of. |
12
+ | See [here][gem-naming], [here][gem-coop] and [here][martin-ann] for more info on what comes next. |
13
+ | What I'm doing: A (WIP) proposal for [bundler/gem scopes][gem-scopes], and a (WIP) proposal for a federated [gem server][gem-server]. |
14
14
 
15
15
  [rubygems-org]: https://github.com/rubygems/
16
16
  [draper-security]: https://joel.drapper.me/p/ruby-central-security-measures/
@@ -97,37 +97,37 @@ merger = Markdown::Merge::SmartMerger.new(template_content, dest_content, backen
97
97
 
98
98
  Signatures computed by default for common Markdown block elements:
99
99
 
100
- | Node Type | Signature Format | Matching Behavior |
101
- | --- | --- | --- |
102
- | Heading | `[:heading, level, text]` | Headings match by level and text content |
103
- | Paragraph | `[:paragraph, content_hash]` | Paragraphs match by content hash |
104
- | List | `[:list, type, item_count]` | Lists match by type (bullet/ordered) and item count |
105
- | Code Block | `[:code_block, language, content_hash]` | Code blocks match by language and content |
106
- | Block Quote | `[:blockquote, content_hash]` | Block quotes match by content hash |
107
- | Table | `[:table, row_count, header_hash]` | Tables match by structure and header content |
108
- | HTML Block | `[:html, content_hash]` | HTML blocks match by content hash |
109
- | Thematic Break | `[:hrule]` | Horizontal rules always match |
110
- | Footnote Definition | `[:footnote_definition, label]` | Footnotes match by label/name |
100
+ | Node Type | Signature Format | Matching Behavior |
101
+ |---------------------|-----------------------------------------|-----------------------------------------------------|
102
+ | Heading | `[:heading, level, text]` | Headings match by level and text content |
103
+ | Paragraph | `[:paragraph, content_hash]` | Paragraphs match by content hash |
104
+ | List | `[:list, type, item_count]` | Lists match by type (bullet/ordered) and item count |
105
+ | Code Block | `[:code_block, language, content_hash]` | Code blocks match by language and content |
106
+ | Block Quote | `[:blockquote, content_hash]` | Block quotes match by content hash |
107
+ | Table | `[:table, row_count, header_hash]` | Tables match by structure and header content |
108
+ | HTML Block | `[:html, content_hash]` | HTML blocks match by content hash |
109
+ | Thematic Break | `[:hrule]` | Horizontal rules always match |
110
+ | Footnote Definition | `[:footnote_definition, label]` | Footnotes match by label/name |
111
111
 
112
112
  ### The `*-merge` Gem Family
113
113
 
114
114
  The `*-merge` gem family provides intelligent, AST-based merging for various file formats. At the foundation is [tree_haver][tree_haver], which provides a unified cross-Ruby parsing API that works seamlessly across MRI, JRuby, and TruffleRuby.
115
115
 
116
- | Gem | Version | CI | | Language<br>/ Format | Parser Backend(s) | Description |
117
- |------------------------------------------|----------------------------------------------------------------|--------------------------------------------------------------|----------|-------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|-------------|
118
- | [tree_haver][tree_haver] | [![Version][tree_haver-gem-i]][tree_haver-gem] | [![Version][tree_haver-ci-i]][tree_haver-ci] | Multi | Supported Backends: MRI C, Rust, FFI, Java, Prism, Psych, Commonmarker, Markly, Citrus, Parslet | **Foundation**: Cross-Ruby adapter for parsing libraries (like Faraday for HTTP) |
119
- | [ast-merge][ast-merge] | [![Version][ast-merge-gem-i]][ast-merge-gem] | [![Version][ast-merge-ci-i]][ast-merge-ci] | Text | internal | **Infrastructure**: Shared base classes and merge logic for all `*-merge` gems |
120
- | [bash-merge][bash-merge] | [![Version][bash-merge-gem-i]][bash-merge-gem] | [![Version][bash-merge-ci-i]][bash-merge-ci] | Bash | [tree-sitter-bash][ts-bash] (via tree_haver) | Smart merge for Bash scripts |
121
- | [commonmarker-merge][commonmarker-merge] | [![Version][commonmarker-merge-gem-i]][commonmarker-merge-gem] | [![Version][commonmarker-merge-ci-i]][commonmarker-merge-ci] | Markdown | [Commonmarker][commonmarker] (via tree_haver) | Smart merge for Markdown (CommonMark via comrak Rust) |
122
- | [dotenv-merge][dotenv-merge] | [![Version][dotenv-merge-gem-i]][dotenv-merge-gem] | [![Version][dotenv-merge-ci-i]][dotenv-merge-ci] | Dotenv | internal | Smart merge for `.env` files |
123
- | [json-merge][json-merge] | [![Version][json-merge-gem-i]][json-merge-gem] | [![Version][json-merge-ci-i]][json-merge-ci] | JSON | [tree-sitter-json][ts-json] (via tree_haver) | Smart merge for JSON files |
124
- | [jsonc-merge][jsonc-merge] | [![Version][jsonc-merge-gem-i]][jsonc-merge-gem] | [![Version][jsonc-merge-ci-i]][jsonc-merge-ci] | JSONC | [tree-sitter-jsonc][ts-jsonc] (via tree_haver) | ⚠️ Proof of concept; Smart merge for JSON with Comments |
125
- | [markdown-merge][markdown-merge] | [![Version][markdown-merge-gem-i]][markdown-merge-gem] | [![Version][markdown-merge-ci-i]][markdown-merge-ci] | Markdown | [Commonmarker][commonmarker] / [Markly][markly] (via tree_haver) | **Foundation**: Shared base for Markdown mergers with inner code block merging |
126
- | [markly-merge][markly-merge] | [![Version][markly-merge-gem-i]][markly-merge-gem] | [![Version][markly-merge-ci-i]][markly-merge-ci] | Markdown | [Markly][markly] (via tree_haver) | Smart merge for Markdown (CommonMark via cmark-gfm C) |
127
- | [prism-merge][prism-merge] | [![Version][prism-merge-gem-i]][prism-merge-gem] | [![Version][prism-merge-ci-i]][prism-merge-ci] | Ruby | [Prism][prism] (`prism` std lib gem) | Smart merge for Ruby source files |
128
- | [psych-merge][psych-merge] | [![Version][psych-merge-gem-i]][psych-merge-gem] | [![Version][psych-merge-ci-i]][psych-merge-ci] | YAML | [Psych][psych] (`psych` std lib gem) | Smart merge for YAML files |
129
- | [rbs-merge][rbs-merge] | [![Version][rbs-merge-gem-i]][rbs-merge-gem] | [![Version][rbs-merge-ci-i]][rbs-merge-ci] | RBS | [tree-sitter-bash][ts-rbs] (via tree_haver), [RBS][rbs] (`rbs` std lib gem) | Smart merge for Ruby type signatures |
130
- | [toml-merge][toml-merge] | [![Version][toml-merge-gem-i]][toml-merge-gem] | [![Version][toml-merge-ci-i]][toml-merge-ci] | TOML | [Parslet + toml][toml], [Citrus + toml-rb][toml-rb], [tree-sitter-toml][ts-toml] (all via tree_haver) | Smart merge for TOML files |
116
+ | Gem | Version / CI | Language<br>/ Format | Parser Backend(s) | Description |
117
+ |------------------------------------------|:----------------------------------------------------------------------------------------------------------------------------:|----------------------|-------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------|
118
+ | [tree_haver][tree_haver] | [![Version][tree_haver-gem-i]][tree_haver-gem] <br/> [![CI][tree_haver-ci-i]][tree_haver-ci] | Multi | Supported Backends: MRI C, Rust, FFI, Java, Prism, Psych, Commonmarker, Markly, Citrus, Parslet | **Foundation**: Cross-Ruby adapter for parsing libraries (like Faraday for HTTP) |
119
+ | [ast-merge][ast-merge] | [![Version][ast-merge-gem-i]][ast-merge-gem] <br/> [![CI][ast-merge-ci-i]][ast-merge-ci] | Text | internal | **Infrastructure**: Shared base classes and merge logic for all `*-merge` gems |
120
+ | [bash-merge][bash-merge] | [![Version][bash-merge-gem-i]][bash-merge-gem] <br/> [![CI][bash-merge-ci-i]][bash-merge-ci] | Bash | [tree-sitter-bash][ts-bash] (via tree_haver) | Smart merge for Bash scripts |
121
+ | [commonmarker-merge][commonmarker-merge] | [![Version][commonmarker-merge-gem-i]][commonmarker-merge-gem] <br/> [![CI][commonmarker-merge-ci-i]][commonmarker-merge-ci] | Markdown | [Commonmarker][commonmarker] (via tree_haver) | Smart merge for Markdown (CommonMark via comrak Rust) |
122
+ | [dotenv-merge][dotenv-merge] | [![Version][dotenv-merge-gem-i]][dotenv-merge-gem] <br/> [![CI][dotenv-merge-ci-i]][dotenv-merge-ci] | Dotenv | internal | Smart merge for `.env` files |
123
+ | [json-merge][json-merge] | [![Version][json-merge-gem-i]][json-merge-gem] <br/> [![CI][json-merge-ci-i]][json-merge-ci] | JSON | [tree-sitter-json][ts-json] (via tree_haver) | Smart merge for JSON files |
124
+ | [jsonc-merge][jsonc-merge] | [![Version][jsonc-merge-gem-i]][jsonc-merge-gem] <br/> [![CI][jsonc-merge-ci-i]][jsonc-merge-ci] | JSONC | [tree-sitter-jsonc][ts-jsonc] (via tree_haver) | ⚠️ Proof of concept; Smart merge for JSON with Comments |
125
+ | [markdown-merge][markdown-merge] | [![Version][markdown-merge-gem-i]][markdown-merge-gem] <br/> [![CI][markdown-merge-ci-i]][markdown-merge-ci] | Markdown | [Commonmarker][commonmarker] / [Markly][markly] (via tree_haver), [Parslet][parslet] | **Foundation**: Shared base for Markdown mergers with inner code block merging |
126
+ | [markly-merge][markly-merge] | [![Version][markly-merge-gem-i]][markly-merge-gem] <br/> [![CI][markly-merge-ci-i]][markly-merge-ci] | Markdown | [Markly][markly] (via tree_haver) | Smart merge for Markdown (CommonMark via cmark-gfm C) |
127
+ | [prism-merge][prism-merge] | [![Version][prism-merge-gem-i]][prism-merge-gem] <br/> [![CI][prism-merge-ci-i]][prism-merge-ci] | Ruby | [Prism][prism] (`prism` std lib gem) | Smart merge for Ruby source files |
128
+ | [psych-merge][psych-merge] | [![Version][psych-merge-gem-i]][psych-merge-gem] <br/> [![CI][psych-merge-ci-i]][psych-merge-ci] | YAML | [Psych][psych] (`psych` std lib gem) | Smart merge for YAML files |
129
+ | [rbs-merge][rbs-merge] | [![Version][rbs-merge-gem-i]][rbs-merge-gem] <br/> [![CI][rbs-merge-ci-i]][rbs-merge-ci] | RBS | [tree-sitter-bash][ts-rbs] (via tree_haver), [RBS][rbs] (`rbs` std lib gem) | Smart merge for Ruby type signatures |
130
+ | [toml-merge][toml-merge] | [![Version][toml-merge-gem-i]][toml-merge-gem] <br/> [![CI][toml-merge-ci-i]][toml-merge-ci] | TOML | [Parslet + toml][toml], [Citrus + toml-rb][toml-rb], [tree-sitter-toml][ts-toml] (all via tree_haver) | Smart merge for TOML files |
131
131
 
132
132
  #### Backend Platform Compatibility
133
133
 
@@ -552,7 +552,7 @@ class MyClass
552
552
  def new_method
553
553
  puts "from template"
554
554
  end
555
- end)))))))))))
555
+ end
556
556
  ```
557
557
  ````
558
558
 
@@ -753,7 +753,7 @@ Support us with a monthly donation and help us continue our activities. \[[Becom
753
753
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
754
754
 
755
755
  <!-- OPENCOLLECTIVE-INDIVIDUALS:START -->
756
- No backers yet. Be the first\!
756
+ No backers yet. Be the first!
757
757
  <!-- OPENCOLLECTIVE-INDIVIDUALS:END -->
758
758
 
759
759
  ### Open Collective for Organizations
@@ -763,7 +763,7 @@ Become a sponsor and get your logo on our README on GitHub with a link to your s
763
763
  NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day, automatically.
764
764
 
765
765
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
766
- No sponsors yet. Be the first\!
766
+ No sponsors yet. Be the first!
767
767
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
768
768
 
769
769
  [kettle-readme-backers]: https://github.com/kettle-rb/markdown-merge/blob/main/exe/kettle-readme-backers
@@ -5,7 +5,7 @@ module Markdown
5
5
  # Version information for Markdown::Merge
6
6
  module Version
7
7
  # Current version of the markdown-merge gem
8
- VERSION = "1.0.1"
8
+ VERSION = "1.0.2"
9
9
  end
10
10
  VERSION = Version::VERSION # traditional location
11
11
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: markdown-merge
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter H. Boling
@@ -38,25 +38,19 @@ cert_chain:
38
38
  date: 1980-01-02 00:00:00.000000000 Z
39
39
  dependencies:
40
40
  - !ruby/object:Gem::Dependency
41
- name: ast-merge
41
+ name: parslet
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '4.0'
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: 4.0.2
46
+ version: '2.0'
50
47
  type: :runtime
51
48
  prerelease: false
52
49
  version_requirements: !ruby/object:Gem::Requirement
53
50
  requirements:
54
51
  - - "~>"
55
52
  - !ruby/object:Gem::Version
56
- version: '4.0'
57
- - - ">="
58
- - !ruby/object:Gem::Version
59
- version: 4.0.2
53
+ version: '2.0'
60
54
  - !ruby/object:Gem::Dependency
61
55
  name: tree_haver
62
56
  requirement: !ruby/object:Gem::Requirement
@@ -66,7 +60,7 @@ dependencies:
66
60
  version: '5.0'
67
61
  - - ">="
68
62
  - !ruby/object:Gem::Version
69
- version: 5.0.2
63
+ version: 5.0.3
70
64
  type: :runtime
71
65
  prerelease: false
72
66
  version_requirements: !ruby/object:Gem::Requirement
@@ -76,21 +70,27 @@ dependencies:
76
70
  version: '5.0'
77
71
  - - ">="
78
72
  - !ruby/object:Gem::Version
79
- version: 5.0.2
73
+ version: 5.0.3
80
74
  - !ruby/object:Gem::Dependency
81
- name: parslet
75
+ name: ast-merge
82
76
  requirement: !ruby/object:Gem::Requirement
83
77
  requirements:
84
78
  - - "~>"
85
79
  - !ruby/object:Gem::Version
86
- version: '2.0'
80
+ version: '4.0'
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ version: 4.0.5
87
84
  type: :runtime
88
85
  prerelease: false
89
86
  version_requirements: !ruby/object:Gem::Requirement
90
87
  requirements:
91
88
  - - "~>"
92
89
  - !ruby/object:Gem::Version
93
- version: '2.0'
90
+ version: '4.0'
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 4.0.5
94
94
  - !ruby/object:Gem::Dependency
95
95
  name: version_gem
96
96
  requirement: !ruby/object:Gem::Requirement
@@ -325,10 +325,10 @@ licenses:
325
325
  - MIT
326
326
  metadata:
327
327
  homepage_uri: https://markdown-merge.galtzo.com/
328
- source_code_uri: https://github.com/kettle-rb/markdown-merge/tree/v1.0.1
329
- changelog_uri: https://github.com/kettle-rb/markdown-merge/blob/v1.0.1/CHANGELOG.md
328
+ source_code_uri: https://github.com/kettle-rb/markdown-merge/tree/v1.0.2
329
+ changelog_uri: https://github.com/kettle-rb/markdown-merge/blob/v1.0.2/CHANGELOG.md
330
330
  bug_tracker_uri: https://github.com/kettle-rb/markdown-merge/issues
331
- documentation_uri: https://www.rubydoc.info/gems/markdown-merge/1.0.1
331
+ documentation_uri: https://www.rubydoc.info/gems/markdown-merge/1.0.2
332
332
  funding_uri: https://github.com/sponsors/pboling
333
333
  wiki_uri: https://github.com/kettle-rb/markdown-merge/wiki
334
334
  news_uri: https://www.railsbling.com/tags/markdown-merge
@@ -358,7 +358,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
358
358
  - !ruby/object:Gem::Version
359
359
  version: '0'
360
360
  requirements: []
361
- rubygems_version: 4.0.3
361
+ rubygems_version: 4.0.5
362
362
  specification_version: 4
363
363
  summary: "☯️ Ast::Merge-based structure for building Markdown merging tools like markly-merge
364
364
  and commonmarker-merge"
metadata.gz.sig CHANGED
Binary file