coradoc-adoc 2.0.23 → 2.0.25
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 +4 -4
- data/lib/coradoc/asciidoc/builder/detection.rb +4 -4
- data/lib/coradoc/asciidoc/model/attribute_list/matchers.rb +4 -4
- data/lib/coradoc/asciidoc/model/base.rb +7 -0
- data/lib/coradoc/asciidoc/model/block/core.rb +1 -1
- data/lib/coradoc/asciidoc/model/content_list.rb +8 -8
- data/lib/coradoc/asciidoc/model/inline/bold.rb +1 -1
- data/lib/coradoc/asciidoc/model/inline/highlight.rb +1 -1
- data/lib/coradoc/asciidoc/model/inline/italic.rb +1 -1
- data/lib/coradoc/asciidoc/model/inline/monospace.rb +1 -1
- data/lib/coradoc/asciidoc/model/inline/strikethrough.rb +2 -2
- data/lib/coradoc/asciidoc/model/inline/subscript.rb +1 -1
- data/lib/coradoc/asciidoc/model/inline/superscript.rb +1 -1
- data/lib/coradoc/asciidoc/model/serialization/asciidoc_mapping.rb +3 -4
- data/lib/coradoc/asciidoc/model/text_element.rb +22 -0
- data/lib/coradoc/asciidoc/parser/block.rb +3 -3
- data/lib/coradoc/asciidoc/transform/element_transformers/admonition_styles.rb +6 -1
- data/lib/coradoc/asciidoc/transform/element_transformers/block_transformer.rb +39 -16
- data/lib/coradoc/asciidoc/transform/element_transformers/document_transformer.rb +2 -27
- data/lib/coradoc/asciidoc/transform/element_transformers/include_transformer.rb +2 -1
- data/lib/coradoc/asciidoc/transform/element_transformers/inline_transformer.rb +12 -6
- data/lib/coradoc/asciidoc/transform/element_transformers/list_transformer.rb +10 -4
- data/lib/coradoc/asciidoc/transform/element_transformers/other_transformer.rb +10 -5
- data/lib/coradoc/asciidoc/transform/element_transformers/table_transformer.rb +6 -3
- data/lib/coradoc/asciidoc/transform/from_core_model.rb +6 -30
- data/lib/coradoc/asciidoc/transform/inline_transform_visitor.rb +28 -5
- data/lib/coradoc/asciidoc/transform/to_core_model.rb +30 -6
- data/lib/coradoc/asciidoc/transformer/block_rules.rb +8 -2
- data/lib/coradoc/asciidoc/transformer/block_type_classifier.rb +10 -10
- data/lib/coradoc/asciidoc/transformer/header_rules.rb +9 -3
- data/lib/coradoc/asciidoc/transformer/inline_rules.rb +39 -15
- data/lib/coradoc/asciidoc/transformer/list_rules.rb +14 -4
- data/lib/coradoc/asciidoc/transformer/misc_rules.rb +14 -5
- data/lib/coradoc/asciidoc/transformer/source_line_extractor.rb +66 -0
- data/lib/coradoc/asciidoc/transformer/table_layout.rb +1 -3
- data/lib/coradoc/asciidoc/transformer/text_rules.rb +21 -6
- data/lib/coradoc/asciidoc/transformer.rb +30 -1
- data/lib/coradoc/asciidoc/version.rb +1 -1
- metadata +2 -1
|
@@ -33,6 +33,7 @@ module Coradoc
|
|
|
33
33
|
autoload :BlockTypeClassifier, "#{__dir__}/transformer/block_type_classifier"
|
|
34
34
|
autoload :TableLayout, "#{__dir__}/transformer/table_layout"
|
|
35
35
|
autoload :TableCellBuilder, "#{__dir__}/transformer/table_cell_builder"
|
|
36
|
+
autoload :SourceLineExtractor, "#{__dir__}/transformer/source_line_extractor"
|
|
36
37
|
|
|
37
38
|
# Apply all rule modules (triggers autoload)
|
|
38
39
|
HeaderRules.apply(self)
|
|
@@ -139,7 +140,10 @@ module Coradoc
|
|
|
139
140
|
text_content
|
|
140
141
|
end
|
|
141
142
|
|
|
142
|
-
Model::TextElement.new(
|
|
143
|
+
Model::TextElement.new(
|
|
144
|
+
content: transformed,
|
|
145
|
+
line_break: line[:line_break]
|
|
146
|
+
)
|
|
143
147
|
end
|
|
144
148
|
end
|
|
145
149
|
|
|
@@ -148,6 +152,31 @@ module Coradoc
|
|
|
148
152
|
def self.legacy_transform(syntax_tree)
|
|
149
153
|
new.apply(syntax_tree)
|
|
150
154
|
end
|
|
155
|
+
|
|
156
|
+
# Single deepening seam for source_line propagation. Parslet's
|
|
157
|
+
# transform pipeline funnels every rule block through
|
|
158
|
+
# +call_on_match(bindings, block)+; overriding it lets us post-
|
|
159
|
+
# process the block's result and inject +source_line+ from the
|
|
160
|
+
# matched bindings, so individual rules no longer need to call
|
|
161
|
+
# SourceLineExtractor.extract themselves (DRY — was 47 call
|
|
162
|
+
# sites across 7 rule files).
|
|
163
|
+
#
|
|
164
|
+
# Safety:
|
|
165
|
+
# * Only Model::Base results get an injection — Strings, Arrays,
|
|
166
|
+
# and intermediate hashes pass through unchanged.
|
|
167
|
+
# * Existing explicit source_line values are preserved — the
|
|
168
|
+
# injection is fill-in-the-blank, never overwrite.
|
|
169
|
+
# * No Slice in the bindings → SourceLineExtractor returns nil,
|
|
170
|
+
# no injection (synthetic transformations stay clean).
|
|
171
|
+
def call_on_match(bindings, block)
|
|
172
|
+
result = super
|
|
173
|
+
return result unless result.is_a?(Model::Base)
|
|
174
|
+
return result if result.source_line
|
|
175
|
+
|
|
176
|
+
line = self.class::SourceLineExtractor.extract(bindings)
|
|
177
|
+
result.source_line = line if line
|
|
178
|
+
result
|
|
179
|
+
end
|
|
151
180
|
end
|
|
152
181
|
end
|
|
153
182
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: coradoc-adoc
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.0.
|
|
4
|
+
version: 2.0.25
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
@@ -343,6 +343,7 @@ files:
|
|
|
343
343
|
- lib/coradoc/asciidoc/transformer/inline_rules.rb
|
|
344
344
|
- lib/coradoc/asciidoc/transformer/list_rules.rb
|
|
345
345
|
- lib/coradoc/asciidoc/transformer/misc_rules.rb
|
|
346
|
+
- lib/coradoc/asciidoc/transformer/source_line_extractor.rb
|
|
346
347
|
- lib/coradoc/asciidoc/transformer/structural_rules.rb
|
|
347
348
|
- lib/coradoc/asciidoc/transformer/table_cell_builder.rb
|
|
348
349
|
- lib/coradoc/asciidoc/transformer/table_layout.rb
|