coradoc 2.0.2 → 2.0.3

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +48 -5
  3. data/coradoc-docx/lib/coradoc/docx/transform/context.rb +1 -1
  4. data/coradoc-docx/lib/coradoc/docx/transform/from_core_model.rb +13 -6
  5. data/coradoc-docx/lib/coradoc/docx/transform/numbering_resolver.rb +9 -7
  6. data/coradoc-docx/lib/coradoc/docx/transform/ordered_content.rb +2 -2
  7. data/coradoc-docx/lib/coradoc/docx/transform/rules/image_rule.rb +4 -1
  8. data/coradoc-docx/lib/coradoc/docx/transform/rules/math_rule.rb +2 -1
  9. data/coradoc-docx/lib/coradoc/docx/transform/rules/run_rule.rb +17 -30
  10. data/coradoc-docx/lib/coradoc/docx/transform/rules/simple_field_rule.rb +3 -5
  11. data/coradoc-docx/lib/coradoc/docx/transform/rules/table_rule.rb +3 -4
  12. data/coradoc-docx/lib/coradoc/docx/transform/style_resolver.rb +19 -24
  13. data/coradoc-docx/lib/coradoc/docx/transform/to_core_model.rb +18 -11
  14. data/coradoc-html/lib/coradoc/html/base.rb +3 -7
  15. data/coradoc-html/lib/coradoc/html/converter_base.rb +5 -15
  16. data/coradoc-html/lib/coradoc/html/converters/base.rb +18 -27
  17. data/coradoc-html/lib/coradoc/html/converters/comment_line.rb +2 -2
  18. data/coradoc-html/lib/coradoc/html/converters/link.rb +1 -1
  19. data/coradoc-html/lib/coradoc/html/converters/list_item.rb +3 -3
  20. data/coradoc-html/lib/coradoc/html/converters/ordered.rb +1 -1
  21. data/coradoc-html/lib/coradoc/html/converters/span.rb +2 -2
  22. data/coradoc-html/lib/coradoc/html/converters/table.rb +3 -3
  23. data/coradoc-html/lib/coradoc/html/converters/table_cell.rb +14 -28
  24. data/coradoc-html/lib/coradoc/html/converters/table_row.rb +2 -2
  25. data/coradoc-html/lib/coradoc/html/converters/text_element.rb +1 -5
  26. data/coradoc-html/lib/coradoc/html/input/converters/a.rb +2 -2
  27. data/coradoc-html/lib/coradoc/html/input/converters/dl.rb +1 -1
  28. data/coradoc-html/lib/coradoc/html/input/converters/figure.rb +2 -2
  29. data/coradoc-html/lib/coradoc/html/input/converters/markup.rb +3 -3
  30. data/coradoc-html/lib/coradoc/html/input/converters/p.rb +1 -1
  31. data/coradoc-html/lib/coradoc/html/input/converters/td.rb +1 -1
  32. data/coradoc-html/lib/coradoc/html/input/converters.rb +1 -2
  33. data/coradoc-html/lib/coradoc/html/input/html_converter.rb +3 -3
  34. data/coradoc-html/lib/coradoc/html/input/plugin.rb +2 -2
  35. data/coradoc-html/lib/coradoc/html/renderer.rb +4 -6
  36. data/coradoc-html/lib/coradoc/html/theme/base.rb +2 -3
  37. data/coradoc-html/lib/coradoc/html/theme/classic_renderer.rb +9 -12
  38. data/coradoc-html/lib/coradoc/html/theme/modern/serializers/document_serializer.rb +3 -3
  39. data/coradoc-markdown/lib/coradoc/markdown/model/base.rb +6 -5
  40. data/coradoc-markdown/lib/coradoc/markdown/serializer.rb +2 -2
  41. data/coradoc-markdown/lib/coradoc/markdown/toc_generator.rb +4 -5
  42. data/coradoc-markdown/lib/coradoc/markdown/transformer.rb +5 -3
  43. data/lib/coradoc/version.rb +1 -1
  44. metadata +1 -1
@@ -128,13 +128,12 @@ module Coradoc
128
128
  # Extract headings from document blocks
129
129
  def extract_headings(document)
130
130
  headings = []
131
- return headings unless document.respond_to?(:blocks)
131
+ return headings unless document.is_a?(Coradoc::Markdown::Document)
132
132
 
133
133
  Array(document.blocks).each do |block|
134
134
  if block.is_a?(Coradoc::Markdown::Heading)
135
135
  headings << block if within_level_range?(block.level)
136
- elsif block.respond_to?(:blocks)
137
- # Recursively search nested blocks
136
+ elsif block.is_a?(Coradoc::Markdown::Base) && block.class.attributes.key?(:blocks)
138
137
  headings.concat(extract_headings_from_nested(block))
139
138
  end
140
139
  end
@@ -144,12 +143,12 @@ module Coradoc
144
143
 
145
144
  def extract_headings_from_nested(block)
146
145
  headings = []
147
- return headings unless block.respond_to?(:blocks)
146
+ return headings unless block.is_a?(Coradoc::Markdown::Base) && block.class.attributes.key?(:blocks)
148
147
 
149
148
  Array(block.blocks).each do |nested|
150
149
  if nested.is_a?(Coradoc::Markdown::Heading)
151
150
  headings << nested if within_level_range?(nested.level)
152
- elsif nested.respond_to?(:blocks)
151
+ elsif nested.is_a?(Coradoc::Markdown::Base) && nested.class.attributes.key?(:blocks)
153
152
  headings.concat(extract_headings_from_nested(nested))
154
153
  end
155
154
  end
@@ -41,7 +41,7 @@ module Coradoc
41
41
  rule(block_quote: subtree(:content)) do
42
42
  # Recursively transform block quote content
43
43
  transformed = content.is_a?(Array) ? content.map { |c| transform_element(c) } : [transform_element(content)]
44
- text = transformed.map { |c| c.respond_to?(:text) ? c.text : c.to_s }.join("\n")
44
+ text = transformed.map { |c| c.is_a?(Base) && c.class.attributes.key?(:text) ? c.text : c.to_s }.join("\n")
45
45
  Blockquote.new(content: text)
46
46
  end
47
47
 
@@ -134,7 +134,7 @@ module Coradoc
134
134
 
135
135
  # Fallback for unmatched elements
136
136
  rule(simple(:value)) do
137
- Text.new(content: value.to_s) if value.respond_to?(:to_s)
137
+ Text.new(content: value.to_s)
138
138
  end
139
139
 
140
140
  class << self
@@ -268,7 +268,9 @@ module Coradoc
268
268
  if element.key?(:block_quote)
269
269
  content = element[:block_quote]
270
270
  transformed = content.is_a?(Array) ? content.map { |c| transform_element(c) } : [transform_element(content)]
271
- text = transformed.compact.map { |c| c.respond_to?(:text) ? c.text : c.to_s }.join("\n")
271
+ text = transformed.compact.map do |c|
272
+ c.is_a?(Base) && c.class.attributes.key?(:text) ? c.text : c.to_s
273
+ end.join("\n")
272
274
  blockquote = Blockquote.new(content: text)
273
275
  apply_ial_to_element(blockquote, element[:ial]) if element.key?(:ial)
274
276
  return blockquote
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Coradoc
4
- VERSION = '2.0.2'
4
+ VERSION = '2.0.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coradoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.2
4
+ version: 2.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.