coradoc-markdown 1.0.0 → 1.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 (102) hide show
  1. checksums.yaml +4 -4
  2. data/lib/coradoc/markdown/model/admonition.rb +35 -0
  3. data/lib/coradoc/markdown/model/attribute_list.rb +5 -16
  4. data/lib/coradoc/markdown/model/base.rb +2 -34
  5. data/lib/coradoc/markdown/model/comment.rb +14 -0
  6. data/lib/coradoc/markdown/model/cross_reference.rb +10 -0
  7. data/lib/coradoc/markdown/model/definition_list.rb +0 -12
  8. data/lib/coradoc/markdown/model/definition_term.rb +16 -6
  9. data/lib/coradoc/markdown/model/document.rb +9 -0
  10. data/lib/coradoc/markdown/model/example_block.rb +26 -0
  11. data/lib/coradoc/markdown/model/extension.rb +9 -18
  12. data/lib/coradoc/markdown/model/footnote_reference.rb +0 -5
  13. data/lib/coradoc/markdown/model/hard_line_break.rb +21 -0
  14. data/lib/coradoc/markdown/model/highlight.rb +0 -5
  15. data/lib/coradoc/markdown/model/horizontal_rule.rb +1 -6
  16. data/lib/coradoc/markdown/model/list_item.rb +1 -1
  17. data/lib/coradoc/markdown/model/literal.rb +21 -0
  18. data/lib/coradoc/markdown/model/math.rb +0 -14
  19. data/lib/coradoc/markdown/model/named_value.rb +18 -0
  20. data/lib/coradoc/markdown/model/open_block.rb +22 -0
  21. data/lib/coradoc/markdown/model/paragraph.rb +2 -2
  22. data/lib/coradoc/markdown/model/pass.rb +21 -0
  23. data/lib/coradoc/markdown/model/sidebar.rb +22 -0
  24. data/lib/coradoc/markdown/model/strikethrough.rb +0 -5
  25. data/lib/coradoc/markdown/model/subscript.rb +9 -0
  26. data/lib/coradoc/markdown/model/superscript.rb +9 -0
  27. data/lib/coradoc/markdown/model/underline.rb +9 -0
  28. data/lib/coradoc/markdown/model/verse.rb +27 -0
  29. data/lib/coradoc/markdown/parser/block_parser.rb +1 -1
  30. data/lib/coradoc/markdown/parser/frontmatter_parser.rb +23 -0
  31. data/lib/coradoc/markdown/serializer/builder.rb +57 -0
  32. data/lib/coradoc/markdown/serializer/config.rb +77 -0
  33. data/lib/coradoc/markdown/serializer/context.rb +66 -0
  34. data/lib/coradoc/markdown/serializer/element_serializer.rb +46 -0
  35. data/lib/coradoc/markdown/serializer/flavor.rb +82 -0
  36. data/lib/coradoc/markdown/serializer/registrations.rb +111 -0
  37. data/lib/coradoc/markdown/serializer/registry.rb +62 -0
  38. data/lib/coradoc/markdown/serializer/runner.rb +84 -0
  39. data/lib/coradoc/markdown/serializer/serializers/abbreviation.rb +19 -0
  40. data/lib/coradoc/markdown/serializer/serializers/admonition.rb +20 -0
  41. data/lib/coradoc/markdown/serializer/serializers/attribute_list.rb +25 -0
  42. data/lib/coradoc/markdown/serializer/serializers/blockquote.rb +19 -0
  43. data/lib/coradoc/markdown/serializer/serializers/code.rb +19 -0
  44. data/lib/coradoc/markdown/serializer/serializers/code_block.rb +19 -0
  45. data/lib/coradoc/markdown/serializer/serializers/comment.rb +31 -0
  46. data/lib/coradoc/markdown/serializer/serializers/cross_reference.rb +19 -0
  47. data/lib/coradoc/markdown/serializer/serializers/definition_list.rb +20 -0
  48. data/lib/coradoc/markdown/serializer/serializers/document.rb +22 -0
  49. data/lib/coradoc/markdown/serializer/serializers/emphasis.rb +19 -0
  50. data/lib/coradoc/markdown/serializer/serializers/example_block.rb +40 -0
  51. data/lib/coradoc/markdown/serializer/serializers/extension.rb +30 -0
  52. data/lib/coradoc/markdown/serializer/serializers/footnote.rb +20 -0
  53. data/lib/coradoc/markdown/serializer/serializers/footnote_reference.rb +19 -0
  54. data/lib/coradoc/markdown/serializer/serializers/hard_line_break.rb +22 -0
  55. data/lib/coradoc/markdown/serializer/serializers/heading.rb +19 -0
  56. data/lib/coradoc/markdown/serializer/serializers/highlight.rb +19 -0
  57. data/lib/coradoc/markdown/serializer/serializers/horizontal_rule.rb +19 -0
  58. data/lib/coradoc/markdown/serializer/serializers/image.rb +19 -0
  59. data/lib/coradoc/markdown/serializer/serializers/link.rb +29 -0
  60. data/lib/coradoc/markdown/serializer/serializers/list.rb +45 -0
  61. data/lib/coradoc/markdown/serializer/serializers/literal.rb +21 -0
  62. data/lib/coradoc/markdown/serializer/serializers/math.rb +23 -0
  63. data/lib/coradoc/markdown/serializer/serializers/open_block.rb +38 -0
  64. data/lib/coradoc/markdown/serializer/serializers/paragraph.rb +23 -0
  65. data/lib/coradoc/markdown/serializer/serializers/pass.rb +21 -0
  66. data/lib/coradoc/markdown/serializer/serializers/sidebar.rb +20 -0
  67. data/lib/coradoc/markdown/serializer/serializers/strikethrough.rb +19 -0
  68. data/lib/coradoc/markdown/serializer/serializers/strong.rb +19 -0
  69. data/lib/coradoc/markdown/serializer/serializers/subscript.rb +19 -0
  70. data/lib/coradoc/markdown/serializer/serializers/superscript.rb +19 -0
  71. data/lib/coradoc/markdown/serializer/serializers/table.rb +37 -0
  72. data/lib/coradoc/markdown/serializer/serializers/underline.rb +19 -0
  73. data/lib/coradoc/markdown/serializer/serializers/verse.rb +31 -0
  74. data/lib/coradoc/markdown/serializer/strategies/admonition/base.rb +30 -0
  75. data/lib/coradoc/markdown/serializer/strategies/admonition/container.rb +34 -0
  76. data/lib/coradoc/markdown/serializer/strategies/admonition/gfm_alert.rb +28 -0
  77. data/lib/coradoc/markdown/serializer/strategies/admonition/github.rb +29 -0
  78. data/lib/coradoc/markdown/serializer/strategies/admonition/html.rb +25 -0
  79. data/lib/coradoc/markdown/serializer/strategies/admonition/registry.rb +50 -0
  80. data/lib/coradoc/markdown/serializer/strategies/autolink/angle.rb +35 -0
  81. data/lib/coradoc/markdown/serializer/strategies/autolink/bare.rb +23 -0
  82. data/lib/coradoc/markdown/serializer/strategies/autolink/base.rb +33 -0
  83. data/lib/coradoc/markdown/serializer/strategies/autolink/none.rb +27 -0
  84. data/lib/coradoc/markdown/serializer/strategies/autolink/registry.rb +58 -0
  85. data/lib/coradoc/markdown/serializer/strategies/definition_list/base.rb +37 -0
  86. data/lib/coradoc/markdown/serializer/strategies/definition_list/flat.rb +48 -0
  87. data/lib/coradoc/markdown/serializer/strategies/definition_list/nested_html.rb +54 -0
  88. data/lib/coradoc/markdown/serializer/strategies/definition_list/registry.rb +37 -0
  89. data/lib/coradoc/markdown/serializer.rb +30 -181
  90. data/lib/coradoc/markdown/toc_generator.rb +2 -8
  91. data/lib/coradoc/markdown/transform/block_transformer.rb +163 -0
  92. data/lib/coradoc/markdown/transform/from_core_model.rb +205 -40
  93. data/lib/coradoc/markdown/transform/image_transformer.rb +20 -0
  94. data/lib/coradoc/markdown/transform/inline_transformer.rb +74 -0
  95. data/lib/coradoc/markdown/transform/list_transformer.rb +52 -0
  96. data/lib/coradoc/markdown/transform/structural_transformer.rb +94 -0
  97. data/lib/coradoc/markdown/transform/table_transformer.rb +40 -0
  98. data/lib/coradoc/markdown/transform/to_core_model.rb +36 -30
  99. data/lib/coradoc/markdown/transformer.rb +87 -2
  100. data/lib/coradoc/markdown/version.rb +1 -1
  101. data/lib/coradoc/markdown.rb +23 -20
  102. metadata +89 -10
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require 'coradoc/core_model'
3
+ require 'coradoc'
4
4
 
5
5
  module Coradoc
6
6
  module Markdown
@@ -62,6 +62,8 @@ module Coradoc
62
62
  transform_extension(model)
63
63
  when Coradoc::Markdown::AttributeList
64
64
  transform_attribute_list(model)
65
+ when Coradoc::Markdown::Comment
66
+ Coradoc::CoreModel::CommentBlock.new(content: model.text.to_s)
65
67
  when Coradoc::Markdown::Text
66
68
  model.content.to_s
67
69
  when Array
@@ -75,18 +77,33 @@ module Coradoc
75
77
 
76
78
  def transform_document(doc)
77
79
  children = Array(doc.blocks).map { |block| transform(block) }
80
+ children = prepend_frontmatter(children, doc.frontmatter)
78
81
 
79
- Coradoc::CoreModel::StructuralElement.new(
80
- element_type: 'document',
82
+ Coradoc::CoreModel::DocumentElement.new(
81
83
  id: doc.id,
82
84
  title: extract_title(doc),
83
85
  children: children
84
86
  )
85
87
  end
86
88
 
89
+ # If the Markdown document had raw frontmatter text, parse it
90
+ # via Codec into a typed FrontmatterBlock and prepend it so
91
+ # it participates in the standard block pipeline. Codec is
92
+ # the single source of truth for YAML parsing (DRY/MECE).
93
+ #
94
+ # The block is prepended even when the YAML is malformed —
95
+ # Codec returns an empty FrontmatterBlock in that case, which
96
+ # preserves the signal "frontmatter was present but invalid"
97
+ # for downstream consumers.
98
+ def prepend_frontmatter(children, frontmatter_text)
99
+ return children if frontmatter_text.nil? || frontmatter_text.strip.empty?
100
+
101
+ block = Coradoc::CoreModel::FrontmatterBlock::Codec.from_yaml(frontmatter_text)
102
+ [block, *children]
103
+ end
104
+
87
105
  def transform_heading(heading)
88
- Coradoc::CoreModel::StructuralElement.new(
89
- element_type: 'section',
106
+ Coradoc::CoreModel::SectionElement.new(
90
107
  level: heading.level,
91
108
  title: extract_text(heading.text),
92
109
  children: []
@@ -96,15 +113,13 @@ module Coradoc
96
113
  def transform_paragraph(para)
97
114
  content = extract_text(para.text)
98
115
 
99
- Coradoc::CoreModel::Block.new(
100
- element_type: 'paragraph',
116
+ Coradoc::CoreModel::ParagraphBlock.new(
101
117
  content: content
102
118
  )
103
119
  end
104
120
 
105
121
  def transform_code_block(block)
106
122
  Coradoc::CoreModel::SourceBlock.new(
107
- element_type: 'block',
108
123
  content: block.code.to_s,
109
124
  language: block.language
110
125
  )
@@ -112,16 +127,17 @@ module Coradoc
112
127
 
113
128
  def transform_blockquote(blockquote)
114
129
  Coradoc::CoreModel::QuoteBlock.new(
115
- element_type: 'block',
116
130
  content: blockquote.content.to_s
117
131
  )
118
132
  end
119
133
 
120
134
  def transform_list(list)
121
135
  items = Array(list.items).map do |item|
136
+ nested = item.sublist ? transform_list(item.sublist) : nil
122
137
  Coradoc::CoreModel::ListItem.new(
123
138
  content: extract_text(item.text),
124
- marker: list.ordered ? '1.' : '*'
139
+ marker: list.ordered ? '1.' : '*',
140
+ nested_list: nested
125
141
  )
126
142
  end
127
143
 
@@ -149,7 +165,7 @@ module Coradoc
149
165
  cells = if row.is_a?(Array)
150
166
  row.map { |c| Coradoc::CoreModel::TableCell.new(content: c.to_s, header: false) }
151
167
  else
152
- [Coradoc::CoreModel::TableCell.new(content: row.to_s, header: false)]
168
+ row.to_s.split(' | ').map { |c| Coradoc::CoreModel::TableCell.new(content: c.to_s, header: false) }
153
169
  end
154
170
  rows << Coradoc::CoreModel::TableRow.new(cells: cells)
155
171
  end
@@ -165,25 +181,21 @@ module Coradoc
165
181
  end
166
182
 
167
183
  def transform_link(link)
168
- Coradoc::CoreModel::InlineElement.new(
169
- format_type: 'link',
184
+ Coradoc::CoreModel::LinkElement.new(
170
185
  target: link.url,
171
186
  content: extract_text(link.text)
172
187
  )
173
188
  end
174
189
 
175
190
  def transform_inline(inline, format_type)
176
- Coradoc::CoreModel::InlineElement.new(
177
- format_type: format_type,
191
+ klass = Coradoc::CoreModel::InlineElement.format_type_class(format_type)
192
+ klass.new(
178
193
  content: extract_text(inline.text)
179
194
  )
180
195
  end
181
196
 
182
197
  def transform_horizontal_rule(_rule)
183
- Coradoc::CoreModel::Block.new(
184
- element_type: 'block',
185
- block_semantic_type: :horizontal_rule
186
- )
198
+ Coradoc::CoreModel::HorizontalRuleBlock.new
187
199
  end
188
200
 
189
201
  def transform_definition_list(dl)
@@ -221,13 +233,11 @@ module Coradoc
221
233
 
222
234
  def transform_math(math)
223
235
  if math.inline?
224
- Coradoc::CoreModel::InlineElement.new(
225
- format_type: 'stem',
236
+ Coradoc::CoreModel::StemElement.new(
226
237
  content: math.content.to_s
227
238
  )
228
239
  else
229
240
  Coradoc::CoreModel::PassBlock.new(
230
- element_type: 'block',
231
241
  content: math.content.to_s,
232
242
  language: 'latexmath'
233
243
  )
@@ -239,19 +249,16 @@ module Coradoc
239
249
  when :toc
240
250
  Coradoc::CoreModel::Toc.new
241
251
  when :comment
242
- Coradoc::CoreModel::Block.new(
243
- element_type: 'comment',
252
+ Coradoc::CoreModel::CommentBlock.new(
244
253
  content: ext.content.to_s
245
254
  )
246
255
  when :nomarkdown
247
256
  Coradoc::CoreModel::PassBlock.new(
248
- element_type: 'block',
249
257
  content: ext.content.to_s
250
258
  )
251
259
  else
252
260
  # Unknown extensions: preserve content as a generic block
253
- Coradoc::CoreModel::Block.new(
254
- element_type: 'paragraph',
261
+ Coradoc::CoreModel::ParagraphBlock.new(
255
262
  content: ext.content.to_s
256
263
  )
257
264
  end
@@ -263,12 +270,11 @@ module Coradoc
263
270
  attr_list.classes.each do |cls|
264
271
  attrs << Coradoc::CoreModel::ElementAttribute.new(name: 'class', value: cls.to_s)
265
272
  end
266
- attr_list.attributes.each do |k, v|
267
- attrs << Coradoc::CoreModel::ElementAttribute.new(name: k.to_s, value: v.to_s)
273
+ attr_list.attributes.each do |nv|
274
+ attrs << Coradoc::CoreModel::ElementAttribute.new(name: nv.name, value: nv.value)
268
275
  end
269
276
 
270
277
  Coradoc::CoreModel::StructuralElement.new(
271
- element_type: 'attribute_list',
272
278
  children: attrs
273
279
  )
274
280
  end
@@ -240,8 +240,8 @@ module Coradoc
240
240
 
241
241
  # Check for known patterns and transform them
242
242
  if element.key?(:heading)
243
- level = element[:heading].to_s.length
244
- text = element[:text] ? element[:text].to_s.strip : ''
243
+ level = heading_level(element[:heading])
244
+ text = extract_text(element[:text]).strip
245
245
  heading = Heading.new(level: level, text: text)
246
246
  # Apply IAL if present
247
247
  apply_ial_to_element(heading, element[:ial]) if element.key?(:ial)
@@ -287,6 +287,15 @@ module Coradoc
287
287
  # Definition list
288
288
  return transform_definition_list(element[:dl]) if element.key?(:dl)
289
289
 
290
+ # Unordered list
291
+ return transform_list(element[:ul], ordered: false) if element.key?(:ul)
292
+
293
+ # Ordered list
294
+ return transform_list(element[:ol], ordered: true) if element.key?(:ol)
295
+
296
+ # Table
297
+ return transform_table(element) if element.key?(:table_header)
298
+
290
299
  # Footnote definition
291
300
  if element.key?(:fn_id)
292
301
  content = if element[:fn_content_continued]
@@ -310,6 +319,82 @@ module Coradoc
310
319
  nil
311
320
  end
312
321
 
322
+ # ATX heading: level is the count of leading '#' chars.
323
+ # Setext heading: level is 1 for '=' underline, 2 for '-' underline.
324
+ def heading_level(heading)
325
+ s = heading.to_s
326
+ return s.length if s.start_with?('#')
327
+ return 1 if s.start_with?('=')
328
+ return 2 if s.start_with?('-')
329
+
330
+ s.length
331
+ end
332
+
333
+ # Transform a list (ul/ol). Items arrive as `[{li: {p: {ln: "x"}}}, ...]`,
334
+ # as bare `{li: ...}` subtrees, or as an Array of mixed paragraph +
335
+ # nested-list nodes when the item has a sublist.
336
+ def transform_list(items, ordered:)
337
+ items = [items] unless items.is_a?(Array)
338
+ list_items = items.map do |node|
339
+ li = node.is_a?(Hash) ? node[:li] : node
340
+ transform_list_item(li)
341
+ end
342
+ List.new(ordered: ordered, items: list_items)
343
+ end
344
+
345
+ def transform_list_item(li)
346
+ nodes = normalize_list_item_nodes(li)
347
+ text_parts = []
348
+ sublist = nil
349
+ nodes.each do |n|
350
+ case n
351
+ when Hash
352
+ if n.key?(:p)
353
+ text_parts << extract_text_from_p(n[:p])
354
+ elsif n.key?(:ul)
355
+ sublist = transform_list(n[:ul], ordered: false)
356
+ elsif n.key?(:ol)
357
+ sublist = transform_list(n[:ol], ordered: true)
358
+ end
359
+ else
360
+ text_parts << n.to_s
361
+ end
362
+ end
363
+ item = ListItem.new(text: text_parts.join(' ').strip)
364
+ item.sublist = sublist if sublist
365
+ item
366
+ end
367
+
368
+ # Normalize the various shapes a list-item node can take:
369
+ # Hash {p: ...} -> [{p: ...}]
370
+ # Hash {ul: ...} -> [{ul: ...}] (nested list, no text)
371
+ # Array [...] -> [...] (mixed paragraph + nested list nodes)
372
+ # String / Slice -> [s]
373
+ def normalize_list_item_nodes(li)
374
+ return li if li.is_a?(Array)
375
+ return [li] unless li.is_a?(Hash)
376
+ return [li] if li.key?(:p) || li.key?(:ul) || li.key?(:ol) || li.key?(:li)
377
+
378
+ [li]
379
+ end
380
+
381
+ # Transform a table. Header row, separator row, and body rows.
382
+ def transform_table(element)
383
+ headers = extract_row_cells(element.dig(:table_header, :row))
384
+ body_rows = Array(element[:table_body]).map do |body_node|
385
+ extract_row_cells(body_node[:table_body_row][:row]).join(' | ')
386
+ end
387
+ Table.new(headers: headers, rows: body_rows)
388
+ end
389
+
390
+ def extract_row_cells(row)
391
+ Array(row).map do |cell|
392
+ next cell.to_s.strip unless cell.is_a?(Hash)
393
+
394
+ cell[:cell].to_s.strip
395
+ end
396
+ end
397
+
313
398
  # Transform definition list
314
399
  def transform_definition_list(dl_content)
315
400
  # The parser outputs term and definition as separate items
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Coradoc
4
4
  module Markdown
5
- VERSION = '1.0.0'
5
+ VERSION = '1.0.3'
6
6
  end
7
7
  end
@@ -21,7 +21,9 @@
21
21
  require 'parslet'
22
22
  require 'lutaml/model'
23
23
 
24
+ # Coradoc document transformation library.
24
25
  module Coradoc
26
+ # Markdown document model, parser, and serializer.
25
27
  module Markdown
26
28
  # Error classes
27
29
  autoload :Errors, 'coradoc/markdown/errors'
@@ -54,6 +56,20 @@ module Coradoc
54
56
  autoload :Extension, 'coradoc/markdown/model/extension'
55
57
  autoload :Strikethrough, 'coradoc/markdown/model/strikethrough'
56
58
  autoload :Highlight, 'coradoc/markdown/model/highlight'
59
+ autoload :Subscript, 'coradoc/markdown/model/subscript'
60
+ autoload :Superscript, 'coradoc/markdown/model/superscript'
61
+ autoload :Underline, 'coradoc/markdown/model/underline'
62
+ autoload :CrossReference, 'coradoc/markdown/model/cross_reference'
63
+ autoload :NamedValue, 'coradoc/markdown/model/named_value'
64
+ autoload :Comment, 'coradoc/markdown/model/comment'
65
+ autoload :Admonition, 'coradoc/markdown/model/admonition'
66
+ autoload :ExampleBlock, 'coradoc/markdown/model/example_block'
67
+ autoload :OpenBlock, 'coradoc/markdown/model/open_block'
68
+ autoload :Sidebar, 'coradoc/markdown/model/sidebar'
69
+ autoload :Verse, 'coradoc/markdown/model/verse'
70
+ autoload :Pass, 'coradoc/markdown/model/pass'
71
+ autoload :Literal, 'coradoc/markdown/model/literal'
72
+ autoload :HardLineBreak, 'coradoc/markdown/model/hard_line_break'
57
73
 
58
74
  # Serializer
59
75
  autoload :Serializer, 'coradoc/markdown/serializer'
@@ -78,29 +94,12 @@ module Coradoc
78
94
  autoload :ParsletExtras, 'coradoc/markdown/parser/parslet_extras'
79
95
  autoload :HTML_ENTITIES, 'coradoc/markdown/parser/html_entities'
80
96
  autoload :AstProcessor, 'coradoc/markdown/parser/ast_processor'
97
+ autoload :FrontmatterParser, 'coradoc/markdown/parser/frontmatter_parser'
81
98
  end
82
99
 
83
100
  # Shared parser utilities
84
101
  autoload :ParserUtil, 'coradoc/markdown/parser_util'
85
102
 
86
- # Convenience accessors for kramdown extension models
87
- class << self
88
- # Access AttributeList class
89
- def AttributeList
90
- @AttributeList ||= const_get(:AttributeList)
91
- end
92
-
93
- # Access Math class
94
- def Math
95
- @Math ||= const_get(:Math)
96
- end
97
-
98
- # Access Extension class
99
- def Extension
100
- @Extension ||= const_get(:Extension)
101
- end
102
- end
103
-
104
103
  class << self
105
104
  # Parse Markdown content into a Document model
106
105
  #
@@ -108,8 +107,11 @@ module Coradoc
108
107
  # @param options [Hash] Parsing options
109
108
  # @return [Coradoc::Markdown::Document] The parsed document model
110
109
  def parse(content, _options = {})
111
- ast = Parser::BlockParser.new.parse(content)
112
- Transformer.transform_document(ast)
110
+ split = Parser::FrontmatterParser.call(content)
111
+ ast = Parser::BlockParser.new.parse(split.body)
112
+ doc = Transformer.transform_document(ast)
113
+ doc.frontmatter = split.frontmatter if split.frontmatter?
114
+ doc
113
115
  end
114
116
 
115
117
  # Parse raw AST (for debugging)
@@ -144,6 +146,7 @@ module Coradoc
144
146
  # @param options [Hash] Serialization options
145
147
  # @return [String] The Markdown output
146
148
  def serialize(document, options = {})
149
+ document = Transform::FromCoreModel.transform(document) if document.is_a?(Coradoc::CoreModel::Base)
147
150
  Serializer.serialize(document, options)
148
151
  end
149
152
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coradoc-markdown
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
@@ -13,30 +13,30 @@ dependencies:
13
13
  name: coradoc
14
14
  requirement: !ruby/object:Gem::Requirement
15
15
  requirements:
16
- - - ">="
16
+ - - "~>"
17
17
  - !ruby/object:Gem::Version
18
- version: '0'
18
+ version: '2.0'
19
19
  type: :runtime
20
20
  prerelease: false
21
21
  version_requirements: !ruby/object:Gem::Requirement
22
22
  requirements:
23
- - - ">="
23
+ - - "~>"
24
24
  - !ruby/object:Gem::Version
25
- version: '0'
25
+ version: '2.0'
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: lutaml-model
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '0'
32
+ version: 0.8.0
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - ">="
37
+ - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '0'
39
+ version: 0.8.0
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: parslet
42
42
  requirement: !ruby/object:Gem::Requirement
@@ -106,19 +106,24 @@ files:
106
106
  - lib/coradoc/markdown.rb
107
107
  - lib/coradoc/markdown/errors.rb
108
108
  - lib/coradoc/markdown/model/abbreviation.rb
109
+ - lib/coradoc/markdown/model/admonition.rb
109
110
  - lib/coradoc/markdown/model/attribute_list.rb
110
111
  - lib/coradoc/markdown/model/base.rb
111
112
  - lib/coradoc/markdown/model/blockquote.rb
112
113
  - lib/coradoc/markdown/model/code.rb
113
114
  - lib/coradoc/markdown/model/code_block.rb
115
+ - lib/coradoc/markdown/model/comment.rb
116
+ - lib/coradoc/markdown/model/cross_reference.rb
114
117
  - lib/coradoc/markdown/model/definition_item.rb
115
118
  - lib/coradoc/markdown/model/definition_list.rb
116
119
  - lib/coradoc/markdown/model/definition_term.rb
117
120
  - lib/coradoc/markdown/model/document.rb
118
121
  - lib/coradoc/markdown/model/emphasis.rb
122
+ - lib/coradoc/markdown/model/example_block.rb
119
123
  - lib/coradoc/markdown/model/extension.rb
120
124
  - lib/coradoc/markdown/model/footnote.rb
121
125
  - lib/coradoc/markdown/model/footnote_reference.rb
126
+ - lib/coradoc/markdown/model/hard_line_break.rb
122
127
  - lib/coradoc/markdown/model/heading.rb
123
128
  - lib/coradoc/markdown/model/highlight.rb
124
129
  - lib/coradoc/markdown/model/horizontal_rule.rb
@@ -126,22 +131,96 @@ files:
126
131
  - lib/coradoc/markdown/model/link.rb
127
132
  - lib/coradoc/markdown/model/list.rb
128
133
  - lib/coradoc/markdown/model/list_item.rb
134
+ - lib/coradoc/markdown/model/literal.rb
129
135
  - lib/coradoc/markdown/model/math.rb
136
+ - lib/coradoc/markdown/model/named_value.rb
137
+ - lib/coradoc/markdown/model/open_block.rb
130
138
  - lib/coradoc/markdown/model/paragraph.rb
139
+ - lib/coradoc/markdown/model/pass.rb
140
+ - lib/coradoc/markdown/model/sidebar.rb
131
141
  - lib/coradoc/markdown/model/strikethrough.rb
132
142
  - lib/coradoc/markdown/model/strong.rb
143
+ - lib/coradoc/markdown/model/subscript.rb
144
+ - lib/coradoc/markdown/model/superscript.rb
133
145
  - lib/coradoc/markdown/model/table.rb
134
146
  - lib/coradoc/markdown/model/text.rb
147
+ - lib/coradoc/markdown/model/underline.rb
148
+ - lib/coradoc/markdown/model/verse.rb
135
149
  - lib/coradoc/markdown/parser.rb
136
150
  - lib/coradoc/markdown/parser/ast_processor.rb
137
151
  - lib/coradoc/markdown/parser/block_parser.rb
152
+ - lib/coradoc/markdown/parser/frontmatter_parser.rb
138
153
  - lib/coradoc/markdown/parser/html_entities.rb
139
154
  - lib/coradoc/markdown/parser/inline_parser.rb
140
155
  - lib/coradoc/markdown/parser/parslet_extras.rb
141
156
  - lib/coradoc/markdown/parser_util.rb
142
157
  - lib/coradoc/markdown/serializer.rb
158
+ - lib/coradoc/markdown/serializer/builder.rb
159
+ - lib/coradoc/markdown/serializer/config.rb
160
+ - lib/coradoc/markdown/serializer/context.rb
161
+ - lib/coradoc/markdown/serializer/element_serializer.rb
162
+ - lib/coradoc/markdown/serializer/flavor.rb
163
+ - lib/coradoc/markdown/serializer/registrations.rb
164
+ - lib/coradoc/markdown/serializer/registry.rb
165
+ - lib/coradoc/markdown/serializer/runner.rb
166
+ - lib/coradoc/markdown/serializer/serializers/abbreviation.rb
167
+ - lib/coradoc/markdown/serializer/serializers/admonition.rb
168
+ - lib/coradoc/markdown/serializer/serializers/attribute_list.rb
169
+ - lib/coradoc/markdown/serializer/serializers/blockquote.rb
170
+ - lib/coradoc/markdown/serializer/serializers/code.rb
171
+ - lib/coradoc/markdown/serializer/serializers/code_block.rb
172
+ - lib/coradoc/markdown/serializer/serializers/comment.rb
173
+ - lib/coradoc/markdown/serializer/serializers/cross_reference.rb
174
+ - lib/coradoc/markdown/serializer/serializers/definition_list.rb
175
+ - lib/coradoc/markdown/serializer/serializers/document.rb
176
+ - lib/coradoc/markdown/serializer/serializers/emphasis.rb
177
+ - lib/coradoc/markdown/serializer/serializers/example_block.rb
178
+ - lib/coradoc/markdown/serializer/serializers/extension.rb
179
+ - lib/coradoc/markdown/serializer/serializers/footnote.rb
180
+ - lib/coradoc/markdown/serializer/serializers/footnote_reference.rb
181
+ - lib/coradoc/markdown/serializer/serializers/hard_line_break.rb
182
+ - lib/coradoc/markdown/serializer/serializers/heading.rb
183
+ - lib/coradoc/markdown/serializer/serializers/highlight.rb
184
+ - lib/coradoc/markdown/serializer/serializers/horizontal_rule.rb
185
+ - lib/coradoc/markdown/serializer/serializers/image.rb
186
+ - lib/coradoc/markdown/serializer/serializers/link.rb
187
+ - lib/coradoc/markdown/serializer/serializers/list.rb
188
+ - lib/coradoc/markdown/serializer/serializers/literal.rb
189
+ - lib/coradoc/markdown/serializer/serializers/math.rb
190
+ - lib/coradoc/markdown/serializer/serializers/open_block.rb
191
+ - lib/coradoc/markdown/serializer/serializers/paragraph.rb
192
+ - lib/coradoc/markdown/serializer/serializers/pass.rb
193
+ - lib/coradoc/markdown/serializer/serializers/sidebar.rb
194
+ - lib/coradoc/markdown/serializer/serializers/strikethrough.rb
195
+ - lib/coradoc/markdown/serializer/serializers/strong.rb
196
+ - lib/coradoc/markdown/serializer/serializers/subscript.rb
197
+ - lib/coradoc/markdown/serializer/serializers/superscript.rb
198
+ - lib/coradoc/markdown/serializer/serializers/table.rb
199
+ - lib/coradoc/markdown/serializer/serializers/underline.rb
200
+ - lib/coradoc/markdown/serializer/serializers/verse.rb
201
+ - lib/coradoc/markdown/serializer/strategies/admonition/base.rb
202
+ - lib/coradoc/markdown/serializer/strategies/admonition/container.rb
203
+ - lib/coradoc/markdown/serializer/strategies/admonition/gfm_alert.rb
204
+ - lib/coradoc/markdown/serializer/strategies/admonition/github.rb
205
+ - lib/coradoc/markdown/serializer/strategies/admonition/html.rb
206
+ - lib/coradoc/markdown/serializer/strategies/admonition/registry.rb
207
+ - lib/coradoc/markdown/serializer/strategies/autolink/angle.rb
208
+ - lib/coradoc/markdown/serializer/strategies/autolink/bare.rb
209
+ - lib/coradoc/markdown/serializer/strategies/autolink/base.rb
210
+ - lib/coradoc/markdown/serializer/strategies/autolink/none.rb
211
+ - lib/coradoc/markdown/serializer/strategies/autolink/registry.rb
212
+ - lib/coradoc/markdown/serializer/strategies/definition_list/base.rb
213
+ - lib/coradoc/markdown/serializer/strategies/definition_list/flat.rb
214
+ - lib/coradoc/markdown/serializer/strategies/definition_list/nested_html.rb
215
+ - lib/coradoc/markdown/serializer/strategies/definition_list/registry.rb
143
216
  - lib/coradoc/markdown/toc_generator.rb
217
+ - lib/coradoc/markdown/transform/block_transformer.rb
144
218
  - lib/coradoc/markdown/transform/from_core_model.rb
219
+ - lib/coradoc/markdown/transform/image_transformer.rb
220
+ - lib/coradoc/markdown/transform/inline_transformer.rb
221
+ - lib/coradoc/markdown/transform/list_transformer.rb
222
+ - lib/coradoc/markdown/transform/structural_transformer.rb
223
+ - lib/coradoc/markdown/transform/table_transformer.rb
145
224
  - lib/coradoc/markdown/transform/text_extraction.rb
146
225
  - lib/coradoc/markdown/transform/to_core_model.rb
147
226
  - lib/coradoc/markdown/transformer.rb
@@ -160,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
160
239
  requirements:
161
240
  - - ">="
162
241
  - !ruby/object:Gem::Version
163
- version: 3.1.0
242
+ version: 3.3.0
164
243
  required_rubygems_version: !ruby/object:Gem::Requirement
165
244
  requirements:
166
245
  - - ">="