coradoc-adoc 2.0.0
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 +7 -0
- data/.rspec +3 -0
- data/lib/coradoc/asciidoc/model/admonition.rb +37 -0
- data/lib/coradoc/asciidoc/model/anchorable.rb +64 -0
- data/lib/coradoc/asciidoc/model/attached.rb +26 -0
- data/lib/coradoc/asciidoc/model/attribute.rb +22 -0
- data/lib/coradoc/asciidoc/model/attribute_list/matchers.rb +45 -0
- data/lib/coradoc/asciidoc/model/attribute_list.rb +230 -0
- data/lib/coradoc/asciidoc/model/attribute_list_attribute.rb +11 -0
- data/lib/coradoc/asciidoc/model/audio.rb +44 -0
- data/lib/coradoc/asciidoc/model/author.rb +36 -0
- data/lib/coradoc/asciidoc/model/base.rb +141 -0
- data/lib/coradoc/asciidoc/model/bibliography.rb +37 -0
- data/lib/coradoc/asciidoc/model/bibliography_entry.rb +38 -0
- data/lib/coradoc/asciidoc/model/block/core.rb +139 -0
- data/lib/coradoc/asciidoc/model/block/example.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/listing.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/literal.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/open.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/pass.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/quote.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/reviewer_comment.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/side.rb +14 -0
- data/lib/coradoc/asciidoc/model/block/source_code.rb +14 -0
- data/lib/coradoc/asciidoc/model/block.rb +21 -0
- data/lib/coradoc/asciidoc/model/break.rb +33 -0
- data/lib/coradoc/asciidoc/model/comment_block.rb +33 -0
- data/lib/coradoc/asciidoc/model/comment_line.rb +30 -0
- data/lib/coradoc/asciidoc/model/content_list.rb +334 -0
- data/lib/coradoc/asciidoc/model/document.rb +197 -0
- data/lib/coradoc/asciidoc/model/document_attributes.rb +43 -0
- data/lib/coradoc/asciidoc/model/glossaries.rb +11 -0
- data/lib/coradoc/asciidoc/model/header.rb +57 -0
- data/lib/coradoc/asciidoc/model/highlight.rb +11 -0
- data/lib/coradoc/asciidoc/model/image/block_image/attribute_list.rb +23 -0
- data/lib/coradoc/asciidoc/model/image/block_image.rb +25 -0
- data/lib/coradoc/asciidoc/model/image/core/attribute_list.rb +43 -0
- data/lib/coradoc/asciidoc/model/image/core.rb +72 -0
- data/lib/coradoc/asciidoc/model/image/inline_image.rb +17 -0
- data/lib/coradoc/asciidoc/model/image.rb +14 -0
- data/lib/coradoc/asciidoc/model/include.rb +66 -0
- data/lib/coradoc/asciidoc/model/inline/anchor.rb +41 -0
- data/lib/coradoc/asciidoc/model/inline/attribute_reference.rb +25 -0
- data/lib/coradoc/asciidoc/model/inline/base.rb +15 -0
- data/lib/coradoc/asciidoc/model/inline/bold.rb +38 -0
- data/lib/coradoc/asciidoc/model/inline/cross_reference.rb +29 -0
- data/lib/coradoc/asciidoc/model/inline/cross_reference_arg.rb +15 -0
- data/lib/coradoc/asciidoc/model/inline/footnote.rb +34 -0
- data/lib/coradoc/asciidoc/model/inline/hard_line_break.rb +24 -0
- data/lib/coradoc/asciidoc/model/inline/highlight.rb +36 -0
- data/lib/coradoc/asciidoc/model/inline/italic.rb +38 -0
- data/lib/coradoc/asciidoc/model/inline/link.rb +46 -0
- data/lib/coradoc/asciidoc/model/inline/monospace.rb +39 -0
- data/lib/coradoc/asciidoc/model/inline/quotation.rb +25 -0
- data/lib/coradoc/asciidoc/model/inline/small.rb +25 -0
- data/lib/coradoc/asciidoc/model/inline/span.rb +38 -0
- data/lib/coradoc/asciidoc/model/inline/stem.rb +24 -0
- data/lib/coradoc/asciidoc/model/inline/strikethrough.rb +39 -0
- data/lib/coradoc/asciidoc/model/inline/subscript.rb +33 -0
- data/lib/coradoc/asciidoc/model/inline/superscript.rb +33 -0
- data/lib/coradoc/asciidoc/model/inline/underline.rb +25 -0
- data/lib/coradoc/asciidoc/model/inline.rb +31 -0
- data/lib/coradoc/asciidoc/model/line_break.rb +11 -0
- data/lib/coradoc/asciidoc/model/list/core.rb +61 -0
- data/lib/coradoc/asciidoc/model/list/definition.rb +27 -0
- data/lib/coradoc/asciidoc/model/list/definition_item.rb +43 -0
- data/lib/coradoc/asciidoc/model/list/item.rb +72 -0
- data/lib/coradoc/asciidoc/model/list/nestable.rb +14 -0
- data/lib/coradoc/asciidoc/model/list/ordered.rb +34 -0
- data/lib/coradoc/asciidoc/model/list/unordered.rb +34 -0
- data/lib/coradoc/asciidoc/model/list.rb +29 -0
- data/lib/coradoc/asciidoc/model/named_attribute.rb +12 -0
- data/lib/coradoc/asciidoc/model/paragraph.rb +59 -0
- data/lib/coradoc/asciidoc/model/rejected_positional_attribute.rb +12 -0
- data/lib/coradoc/asciidoc/model/resolvable.rb +71 -0
- data/lib/coradoc/asciidoc/model/resolver.rb +430 -0
- data/lib/coradoc/asciidoc/model/reviewer_note.rb +54 -0
- data/lib/coradoc/asciidoc/model/revision.rb +47 -0
- data/lib/coradoc/asciidoc/model/section.rb +109 -0
- data/lib/coradoc/asciidoc/model/serialization/asciidoc_adapter.rb +28 -0
- data/lib/coradoc/asciidoc/model/serialization/asciidoc_mapping.rb +42 -0
- data/lib/coradoc/asciidoc/model/serialization/asciidoc_mapping_rule.rb +41 -0
- data/lib/coradoc/asciidoc/model/serialization/asciidoc_transform.rb +211 -0
- data/lib/coradoc/asciidoc/model/serialization/errors.rb +57 -0
- data/lib/coradoc/asciidoc/model/serialization.rb +39 -0
- data/lib/coradoc/asciidoc/model/spacing.rb +282 -0
- data/lib/coradoc/asciidoc/model/table.rb +44 -0
- data/lib/coradoc/asciidoc/model/table_cell.rb +122 -0
- data/lib/coradoc/asciidoc/model/table_row.rb +26 -0
- data/lib/coradoc/asciidoc/model/tag.rb +36 -0
- data/lib/coradoc/asciidoc/model/term.rb +48 -0
- data/lib/coradoc/asciidoc/model/text_element.rb +66 -0
- data/lib/coradoc/asciidoc/model/title.rb +85 -0
- data/lib/coradoc/asciidoc/model/video/attribute_list.rb +43 -0
- data/lib/coradoc/asciidoc/model/video.rb +49 -0
- data/lib/coradoc/asciidoc/model.rb +75 -0
- data/lib/coradoc/asciidoc/parse_error.rb +161 -0
- data/lib/coradoc/asciidoc/parser/admonition.rb +26 -0
- data/lib/coradoc/asciidoc/parser/attribute_list.rb +110 -0
- data/lib/coradoc/asciidoc/parser/base.rb +159 -0
- data/lib/coradoc/asciidoc/parser/bibliography.rb +31 -0
- data/lib/coradoc/asciidoc/parser/block.rb +186 -0
- data/lib/coradoc/asciidoc/parser/block_assembler.rb +183 -0
- data/lib/coradoc/asciidoc/parser/cache.rb +155 -0
- data/lib/coradoc/asciidoc/parser/citation.rb +32 -0
- data/lib/coradoc/asciidoc/parser/content.rb +76 -0
- data/lib/coradoc/asciidoc/parser/document_attributes.rb +27 -0
- data/lib/coradoc/asciidoc/parser/fix_files.rb +76 -0
- data/lib/coradoc/asciidoc/parser/header.rb +31 -0
- data/lib/coradoc/asciidoc/parser/inline.rb +199 -0
- data/lib/coradoc/asciidoc/parser/list.rb +130 -0
- data/lib/coradoc/asciidoc/parser/metadata_detector.rb +164 -0
- data/lib/coradoc/asciidoc/parser/paragraph.rb +64 -0
- data/lib/coradoc/asciidoc/parser/section.rb +62 -0
- data/lib/coradoc/asciidoc/parser/stem.rb +19 -0
- data/lib/coradoc/asciidoc/parser/table.rb +166 -0
- data/lib/coradoc/asciidoc/parser/term.rb +70 -0
- data/lib/coradoc/asciidoc/parser/text.rb +156 -0
- data/lib/coradoc/asciidoc/parser.rb +10 -0
- data/lib/coradoc/asciidoc/serializer/adoc_serializer.rb +86 -0
- data/lib/coradoc/asciidoc/serializer/element_registry.rb +95 -0
- data/lib/coradoc/asciidoc/serializer/fallback_serializer.rb +21 -0
- data/lib/coradoc/asciidoc/serializer/formatter.rb +144 -0
- data/lib/coradoc/asciidoc/serializer/registrations.rb +108 -0
- data/lib/coradoc/asciidoc/serializer/serialization_context.rb +238 -0
- data/lib/coradoc/asciidoc/serializer/serializers/admonition.rb +19 -0
- data/lib/coradoc/asciidoc/serializer/serializers/attribute.rb +23 -0
- data/lib/coradoc/asciidoc/serializer/serializers/attribute_list.rb +40 -0
- data/lib/coradoc/asciidoc/serializer/serializers/attribute_list_attribute.rb +18 -0
- data/lib/coradoc/asciidoc/serializer/serializers/audio.rb +33 -0
- data/lib/coradoc/asciidoc/serializer/serializers/author.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/base.rb +152 -0
- data/lib/coradoc/asciidoc/serializer/serializers/bibliography.rb +35 -0
- data/lib/coradoc/asciidoc/serializer/serializers/bibliography_entry.rb +24 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/core.rb +70 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/example.rb +17 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/listing.rb +22 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/literal.rb +17 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/open.rb +22 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/pass.rb +17 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/quote.rb +17 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/reviewer_comment.rb +17 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/side.rb +22 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block/source_code.rb +22 -0
- data/lib/coradoc/asciidoc/serializer/serializers/block.rb +23 -0
- data/lib/coradoc/asciidoc/serializer/serializers/break.rb +18 -0
- data/lib/coradoc/asciidoc/serializer/serializers/comment_block.rb +22 -0
- data/lib/coradoc/asciidoc/serializer/serializers/comment_line.rb +22 -0
- data/lib/coradoc/asciidoc/serializer/serializers/document.rb +65 -0
- data/lib/coradoc/asciidoc/serializer/serializers/document_attributes.rb +21 -0
- data/lib/coradoc/asciidoc/serializer/serializers/header.rb +24 -0
- data/lib/coradoc/asciidoc/serializer/serializers/highlight.rb +23 -0
- data/lib/coradoc/asciidoc/serializer/serializers/image/core.rb +30 -0
- data/lib/coradoc/asciidoc/serializer/serializers/image.rb +14 -0
- data/lib/coradoc/asciidoc/serializer/serializers/include.rb +19 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/anchor.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/attribute_reference.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/bold.rb +26 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/cross_reference.rb +30 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/cross_reference_arg.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/footnote.rb +24 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/hard_line_break.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/highlight.rb +26 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/italic.rb +26 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/link.rb +38 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/monospace.rb +26 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/quotation.rb +21 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/small.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/span.rb +35 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/stem.rb +23 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/strikethrough.rb +29 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/subscript.rb +29 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/superscript.rb +26 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline/underline.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/inline.rb +32 -0
- data/lib/coradoc/asciidoc/serializer/serializers/line_break.rb +18 -0
- data/lib/coradoc/asciidoc/serializer/serializers/list/core.rb +47 -0
- data/lib/coradoc/asciidoc/serializer/serializers/list/definition.rb +35 -0
- data/lib/coradoc/asciidoc/serializer/serializers/list/definition_item.rb +38 -0
- data/lib/coradoc/asciidoc/serializer/serializers/list/item.rb +120 -0
- data/lib/coradoc/asciidoc/serializer/serializers/list/ordered.rb +24 -0
- data/lib/coradoc/asciidoc/serializer/serializers/list/unordered.rb +29 -0
- data/lib/coradoc/asciidoc/serializer/serializers/list.rb +19 -0
- data/lib/coradoc/asciidoc/serializer/serializers/named_attribute.rb +22 -0
- data/lib/coradoc/asciidoc/serializer/serializers/paragraph.rb +65 -0
- data/lib/coradoc/asciidoc/serializer/serializers/reviewer_note.rb +28 -0
- data/lib/coradoc/asciidoc/serializer/serializers/revision.rb +26 -0
- data/lib/coradoc/asciidoc/serializer/serializers/section.rb +37 -0
- data/lib/coradoc/asciidoc/serializer/serializers/table.rb +24 -0
- data/lib/coradoc/asciidoc/serializer/serializers/table_cell.rb +75 -0
- data/lib/coradoc/asciidoc/serializer/serializers/table_row.rb +24 -0
- data/lib/coradoc/asciidoc/serializer/serializers/tag.rb +19 -0
- data/lib/coradoc/asciidoc/serializer/serializers/term.rb +20 -0
- data/lib/coradoc/asciidoc/serializer/serializers/text_element.rb +23 -0
- data/lib/coradoc/asciidoc/serializer/serializers/title.rb +55 -0
- data/lib/coradoc/asciidoc/serializer/serializers/video.rb +33 -0
- data/lib/coradoc/asciidoc/serializer/spacing_strategy.rb +70 -0
- data/lib/coradoc/asciidoc/serializer.rb +75 -0
- data/lib/coradoc/asciidoc/transform/from_core_model.rb +502 -0
- data/lib/coradoc/asciidoc/transform/from_core_model_registrations.rb +126 -0
- data/lib/coradoc/asciidoc/transform/registry.rb +146 -0
- data/lib/coradoc/asciidoc/transform/to_core_model.rb +564 -0
- data/lib/coradoc/asciidoc/transform/to_core_model_registrations.rb +257 -0
- data/lib/coradoc/asciidoc/transform.rb +13 -0
- data/lib/coradoc/asciidoc/transformer/block_rules.rb +101 -0
- data/lib/coradoc/asciidoc/transformer/header_rules.rb +91 -0
- data/lib/coradoc/asciidoc/transformer/inline_rules.rb +179 -0
- data/lib/coradoc/asciidoc/transformer/list_rules.rb +131 -0
- data/lib/coradoc/asciidoc/transformer/misc_rules.rb +196 -0
- data/lib/coradoc/asciidoc/transformer/structural_rules.rb +216 -0
- data/lib/coradoc/asciidoc/transformer/text_rules.rb +107 -0
- data/lib/coradoc/asciidoc/transformer.rb +406 -0
- data/lib/coradoc/asciidoc/version.rb +7 -0
- data/lib/coradoc/asciidoc.rb +148 -0
- data/lib/coradoc/util/asciidoc.rb +71 -0
- data/lib/coradoc/util.rb +8 -0
- metadata +343 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class NamedAttribute < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
if model.value.length == 1
|
|
10
|
+
"#{model.name}=#{model.value.first}"
|
|
11
|
+
else
|
|
12
|
+
"#{model.name}=\"#{model.value.join(' ')}\""
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Self-register this serializer
|
|
19
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::NamedAttribute, Serializers::NamedAttribute)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
# Serializer for Paragraph models
|
|
8
|
+
class Paragraph < Base
|
|
9
|
+
def to_adoc(model, options_or_context = {})
|
|
10
|
+
context = normalize_context(options_or_context)
|
|
11
|
+
|
|
12
|
+
_title = model.title.nil? ? '' : ".#{serialize_child(model.title, context)}\n"
|
|
13
|
+
_anchor = gen_anchor(model, context)
|
|
14
|
+
attrs = if model.attributes.nil? || model.attributes.empty?
|
|
15
|
+
''
|
|
16
|
+
else
|
|
17
|
+
"#{AdocSerializer.serialize(
|
|
18
|
+
model.attributes, context
|
|
19
|
+
)}\n"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
result = if model.tdsinglepara
|
|
23
|
+
"#{_title}#{_anchor}" <<
|
|
24
|
+
serialize_content(model.content)
|
|
25
|
+
else
|
|
26
|
+
"#{_title}#{_anchor}#{attrs}" <<
|
|
27
|
+
serialize_content(model.content)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# Ensure paragraph ends with blank line for proper separation
|
|
31
|
+
# unless this is the last element in a document (determined by context)
|
|
32
|
+
# But not for tdsinglepara (table cell single paragraph)
|
|
33
|
+
unless model.tdsinglepara || context.last_element
|
|
34
|
+
if model.trailing_newlines.nil?
|
|
35
|
+
# Semantic mode: Use default "\n\n" ending
|
|
36
|
+
result = "#{result.chomp}\n\n" unless result.end_with?("\n\n")
|
|
37
|
+
else
|
|
38
|
+
# Exact mode: Use captured trailing newlines from original
|
|
39
|
+
result += model.trailing_newlines
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
result
|
|
44
|
+
end
|
|
45
|
+
|
|
46
|
+
private
|
|
47
|
+
|
|
48
|
+
def gen_anchor(model, context)
|
|
49
|
+
return '' if model.anchor.nil? || model.id.nil? || model.id.empty?
|
|
50
|
+
|
|
51
|
+
anchor_str = AdocSerializer.serialize(model.anchor, context)
|
|
52
|
+
if anchor_str.empty?
|
|
53
|
+
''
|
|
54
|
+
else
|
|
55
|
+
"#{anchor_str}\n"
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Self-register this serializer
|
|
62
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Paragraph, Serializers::Paragraph)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class ReviewerNote < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
attrs = []
|
|
10
|
+
attrs << "reviewer=#{model.reviewer}" if model.reviewer
|
|
11
|
+
attrs << "date=#{model.date}" if model.date
|
|
12
|
+
attrs << "from=#{model.from}" if model.from
|
|
13
|
+
attrs << "to=#{model.to}" if model.to
|
|
14
|
+
|
|
15
|
+
result = "[#{attrs.join(',')}]\n"
|
|
16
|
+
result += "****\n"
|
|
17
|
+
result += serialize_children(model.content) if model.content
|
|
18
|
+
result += "****\n"
|
|
19
|
+
result
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Self-register this serializer
|
|
25
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::ReviewerNote, Serializers::ReviewerNote)
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Revision < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
if model.date.nil? && model.remark.nil?
|
|
10
|
+
"v#{model.number}\n"
|
|
11
|
+
elsif model.remark.nil?
|
|
12
|
+
"#{model.number}, #{model.date}\n"
|
|
13
|
+
elsif model.date.nil?
|
|
14
|
+
"#{model.number}: #{model.remark}\n"
|
|
15
|
+
else
|
|
16
|
+
"#{model.number}, #{model.date}: #{model.remark}\n"
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
# Self-register this serializer
|
|
23
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Revision, Serializers::Revision)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Section < Base
|
|
8
|
+
def to_adoc(model, options_or_context = {})
|
|
9
|
+
context = normalize_context(options_or_context)
|
|
10
|
+
parts = []
|
|
11
|
+
|
|
12
|
+
parts << "\n"
|
|
13
|
+
parts << "#{serialize_child(model.anchor, context)}\n" if model.anchor
|
|
14
|
+
parts << "#{model.attrs.map { |a| serialize_child(a, context) }.join(',')}\n" unless model.attrs.empty?
|
|
15
|
+
parts << serialize_child(model.title, context) if model.title
|
|
16
|
+
|
|
17
|
+
# Process contents
|
|
18
|
+
content_str = serialize_children(model.contents, context)
|
|
19
|
+
|
|
20
|
+
# A block of " +\n"s isn't parsed correctly. It needs to start
|
|
21
|
+
# with something.
|
|
22
|
+
content_str = " #{content_str}" if content_str.start_with?(" +\n")
|
|
23
|
+
|
|
24
|
+
parts << content_str
|
|
25
|
+
parts << serialize_children(model.sections, context)
|
|
26
|
+
parts << "\n"
|
|
27
|
+
|
|
28
|
+
parts.join
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Self-register this serializer
|
|
34
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Section, Serializers::Section)
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Table < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
@model = model
|
|
10
|
+
_anchor = @model.anchor.nil? ? '' : "#{serialize_child(@model.anchor)}\n"
|
|
11
|
+
_attrs = @model.attrs.to_s.empty? ? '' : "#{serialize_child(@model.attrs)}\n"
|
|
12
|
+
_title = @model.title.nil? || @model.title.empty? ? '' : ".#{serialize_child(@model.title)}\n"
|
|
13
|
+
_content = @model.rows.map { |row| serialize_child(row) }.join
|
|
14
|
+
|
|
15
|
+
"\n\n#{_anchor}#{_attrs}#{_title}|===\n#{_content}|===\n"
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Self-register this serializer
|
|
21
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Table, Serializers::Table)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class TableCell < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
@model = model
|
|
10
|
+
_anchor = @model.gen_anchor(inline: true)
|
|
11
|
+
|
|
12
|
+
# Handle content - if it's a single string, strip unicode; otherwise serialize children
|
|
13
|
+
if @model.content.is_a?(String)
|
|
14
|
+
_content = Coradoc.strip_unicode(@model.content) if defined?(Coradoc.strip_unicode)
|
|
15
|
+
_content ||= @model.content
|
|
16
|
+
elsif @model.content.is_a?(Array) && @model.content.size == 1 && @model.content.first.is_a?(String)
|
|
17
|
+
_content = Coradoc.strip_unicode(@model.content.first) if defined?(Coradoc.strip_unicode)
|
|
18
|
+
_content ||= @model.content.first.to_s
|
|
19
|
+
else
|
|
20
|
+
_content = serialize_children(@model.content)
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
# Build format specification: [colspan][.rowspan][halign][valign][style][*]
|
|
24
|
+
format_spec = build_format_specification
|
|
25
|
+
|
|
26
|
+
"#{format_spec}| #{_anchor}#{_content}"
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
private
|
|
30
|
+
|
|
31
|
+
# Build AsciiDoc cell format specification
|
|
32
|
+
# Format: [colspan][.rowspan][halign][valign][style][*]
|
|
33
|
+
def build_format_specification
|
|
34
|
+
spec = ''
|
|
35
|
+
|
|
36
|
+
# Colspan (digits)
|
|
37
|
+
spec += @model.colspan.to_s if @model.colspan && @model.colspan > 1
|
|
38
|
+
|
|
39
|
+
# Rowspan (.digits)
|
|
40
|
+
spec += ".#{@model.rowspan}" if @model.rowspan && @model.rowspan > 1
|
|
41
|
+
|
|
42
|
+
# Horizontal alignment (< ^ >)
|
|
43
|
+
spec += @model.halign if @model.halign && %w[< ^ >].include?(@model.halign)
|
|
44
|
+
|
|
45
|
+
# Vertical alignment (.< .^ .>)
|
|
46
|
+
spec += ".#{@model.valign}" if @model.valign && %w[< ^ >].include?(@model.valign)
|
|
47
|
+
|
|
48
|
+
# Style (d s e m a l v)
|
|
49
|
+
spec += @model.style if @model.style && %w[d s e m a l v].include?(@model.style)
|
|
50
|
+
|
|
51
|
+
# Repeat marker
|
|
52
|
+
spec += '*' if @model.repeat
|
|
53
|
+
|
|
54
|
+
# Fall back to legacy attributes if new attributes are empty
|
|
55
|
+
spec = build_legacy_format_spec if spec.empty? && (@model.colrowattr || @model.alignattr || @model.style)
|
|
56
|
+
|
|
57
|
+
spec
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# Build format spec from legacy attributes (backward compatibility)
|
|
61
|
+
def build_legacy_format_spec
|
|
62
|
+
spec = ''
|
|
63
|
+
spec += @model.colrowattr.to_s
|
|
64
|
+
spec += @model.alignattr.to_s
|
|
65
|
+
# NOTE: style was included in colrowattr in old format
|
|
66
|
+
spec
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
# Self-register this serializer
|
|
72
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::TableCell, Serializers::TableCell)
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class TableRow < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
@model = model
|
|
10
|
+
delim = @model.asciidoc? ? "\n" : ' '
|
|
11
|
+
result = "#{@model.columns.map(&:to_adoc).join(delim)}\n"
|
|
12
|
+
|
|
13
|
+
# Add extra newline for header or asciidoc rows
|
|
14
|
+
result += "\n" if @model.header || @model.asciidoc?
|
|
15
|
+
result
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Self-register this serializer
|
|
21
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::TableRow, Serializers::TableRow)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Tag < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
attrs_str = model.attrs.to_adoc unless model.attrs.nil?
|
|
10
|
+
"// #{model.prefix}::#{model.name}#{attrs_str}#{model.line_break}"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Self-register this serializer
|
|
16
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Tag, Serializers::Tag)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Term < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
return "#{model.type}:[#{model.term}]#{model.line_break}" if model.lang.to_s == 'en'
|
|
10
|
+
|
|
11
|
+
"[#{model.type}]##{model.term}##{model.line_break}"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
# Self-register this serializer
|
|
17
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Term, Serializers::Term)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
# Serializer for TextElement models
|
|
8
|
+
class TextElement < Base
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
result = ''
|
|
11
|
+
result += "[[#{model.id}]] " if model.id
|
|
12
|
+
result += serialize_content(model.content)
|
|
13
|
+
result += model.line_break.to_s
|
|
14
|
+
result
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Self-register this serializer
|
|
20
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::TextElement, Serializers::TextElement)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Title < Base
|
|
8
|
+
def to_adoc(model, options_or_context = {})
|
|
9
|
+
context = normalize_context(options_or_context)
|
|
10
|
+
@model = model
|
|
11
|
+
_anchor = model.anchor.nil? ? '' : "#{serialize_child(model.anchor, context)}\n"
|
|
12
|
+
_content = serialize_children(model.content, context)
|
|
13
|
+
|
|
14
|
+
# For ATX style headings, use # markers
|
|
15
|
+
if model.style == 'atx'
|
|
16
|
+
atx_markers = '#' * (model.level_int + 1)
|
|
17
|
+
"#{_anchor}#{atx_markers} #{_content}#{model.line_break}"
|
|
18
|
+
else
|
|
19
|
+
# Default setext style
|
|
20
|
+
"#{_anchor}#{style_str}#{level_str} #{_content}#{model.line_break}"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
private
|
|
25
|
+
|
|
26
|
+
def level_str
|
|
27
|
+
return '' if @model.level_int.nil?
|
|
28
|
+
|
|
29
|
+
if @model.level_int <= 5
|
|
30
|
+
'=' * (@model.level_int + 1)
|
|
31
|
+
else
|
|
32
|
+
'======'
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def style_str
|
|
37
|
+
return '' if @model.level_int.nil?
|
|
38
|
+
|
|
39
|
+
# Don't include style in output for atx since it's implicit
|
|
40
|
+
return '' if @model.style == 'atx'
|
|
41
|
+
|
|
42
|
+
_style = [@model.style].compact.reject { |s| s == 'atx' }
|
|
43
|
+
_style << "level=#{@model.level_int}" if @model.level_int > 5
|
|
44
|
+
_style = _style.join(',')
|
|
45
|
+
|
|
46
|
+
_style.empty? ? '' : "[#{_style}]\n"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
# Self-register this serializer
|
|
52
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Title, Serializers::Title)
|
|
53
|
+
end
|
|
54
|
+
end
|
|
55
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Video < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
@model = model
|
|
10
|
+
_anchor = gen_anchor
|
|
11
|
+
_title = model.title.nil? || model.title.empty? ? '' : ".#{model.title}\n"
|
|
12
|
+
_attrs = model.attributes.to_adoc
|
|
13
|
+
[_anchor, _title, 'video::', model.src, _attrs].join + model.line_break
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
private
|
|
17
|
+
|
|
18
|
+
attr_reader :model
|
|
19
|
+
|
|
20
|
+
def gen_anchor
|
|
21
|
+
return '' unless @model.anchor
|
|
22
|
+
|
|
23
|
+
anchor_str = @model.anchor.to_adoc
|
|
24
|
+
anchor_str.empty? ? '' : "#{anchor_str}\n"
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# Self-register this serializer
|
|
30
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Video, Serializers::Video)
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
# Handles spacing logic for AsciiDoc serialization.
|
|
7
|
+
# Determines appropriate spacing between different element types.
|
|
8
|
+
class SpacingStrategy
|
|
9
|
+
class << self
|
|
10
|
+
# Apply spacing to elements based on their types
|
|
11
|
+
# @param elements [Array] Elements to add spacing between
|
|
12
|
+
# @param options [Hash] Spacing options
|
|
13
|
+
# @return [String] Elements with appropriate spacing
|
|
14
|
+
def apply(elements, _options = {})
|
|
15
|
+
return '' if elements.nil? || elements.empty?
|
|
16
|
+
return elements.first.to_s if elements.size == 1
|
|
17
|
+
|
|
18
|
+
result = []
|
|
19
|
+
elements.each_with_index do |element, index|
|
|
20
|
+
result << element.to_s
|
|
21
|
+
|
|
22
|
+
# Add spacing between current and next element
|
|
23
|
+
next unless index < elements.size - 1
|
|
24
|
+
|
|
25
|
+
next_element = elements[index + 1]
|
|
26
|
+
spacing = spacing_between(element, next_element)
|
|
27
|
+
result << spacing if spacing
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
result.join
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Determine spacing between two elements
|
|
34
|
+
# @param current [Object] Current element
|
|
35
|
+
# @param next_elem [Object] Next element
|
|
36
|
+
# @return [String, nil] Spacing string or nil
|
|
37
|
+
def spacing_between(current, next_elem)
|
|
38
|
+
# Block-level elements typically need double newline spacing
|
|
39
|
+
if block_level?(current) && block_level?(next_elem)
|
|
40
|
+
"\n\n"
|
|
41
|
+
# Inline elements don't need extra spacing
|
|
42
|
+
elsif inline_level?(current) && inline_level?(next_elem)
|
|
43
|
+
nil
|
|
44
|
+
# Mixed block/inline needs single newline
|
|
45
|
+
elsif block_level?(current) || block_level?(next_elem)
|
|
46
|
+
"\n"
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
def block_level?(element)
|
|
51
|
+
return false if element.nil?
|
|
52
|
+
return true if element.is_a?(String)
|
|
53
|
+
|
|
54
|
+
element.block_level?
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
# Check if element is inline-level
|
|
58
|
+
# @param element [Object] Element to check
|
|
59
|
+
# @return [Boolean] True if inline-level
|
|
60
|
+
def inline_level?(element)
|
|
61
|
+
return false if element.nil?
|
|
62
|
+
return true if element.is_a?(String)
|
|
63
|
+
|
|
64
|
+
element.inline?
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
# Serializer module for converting AsciiDoc models to AsciiDoc text
|
|
6
|
+
module Serializer
|
|
7
|
+
autoload :AdocSerializer, "#{__dir__}/serializer/adoc_serializer"
|
|
8
|
+
autoload :ElementRegistry, "#{__dir__}/serializer/element_registry"
|
|
9
|
+
autoload :FallbackSerializer, "#{__dir__}/serializer/fallback_serializer"
|
|
10
|
+
autoload :Formatter, "#{__dir__}/serializer/formatter"
|
|
11
|
+
autoload :SpacingStrategy, "#{__dir__}/serializer/spacing_strategy"
|
|
12
|
+
|
|
13
|
+
class << self
|
|
14
|
+
# Serialize a model to AsciiDoc format
|
|
15
|
+
# @param model [Coradoc::AsciiDoc::Model::Base, Array, String] Model to serialize
|
|
16
|
+
# @param options [Hash] Serialization options
|
|
17
|
+
# @return [String] AsciiDoc representation
|
|
18
|
+
def serialize(model, options = {})
|
|
19
|
+
AdocSerializer.serialize(model, options)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# Set up Serializers module with autoloads
|
|
27
|
+
module Coradoc
|
|
28
|
+
module AsciiDoc
|
|
29
|
+
module Serializer
|
|
30
|
+
module Serializers
|
|
31
|
+
# Autoload core serializers (flat structure)
|
|
32
|
+
autoload :Base, 'coradoc/asciidoc/serializer/serializers/base'
|
|
33
|
+
autoload :Admonition, 'coradoc/asciidoc/serializer/serializers/admonition'
|
|
34
|
+
autoload :Attribute, 'coradoc/asciidoc/serializer/serializers/attribute'
|
|
35
|
+
autoload :AttributeList, 'coradoc/asciidoc/serializer/serializers/attribute_list'
|
|
36
|
+
autoload :AttributeListAttribute, 'coradoc/asciidoc/serializer/serializers/attribute_list_attribute'
|
|
37
|
+
autoload :Audio, 'coradoc/asciidoc/serializer/serializers/audio'
|
|
38
|
+
autoload :Author, 'coradoc/asciidoc/serializer/serializers/author'
|
|
39
|
+
autoload :Bibliography, 'coradoc/asciidoc/serializer/serializers/bibliography'
|
|
40
|
+
autoload :BibliographyEntry, 'coradoc/asciidoc/serializer/serializers/bibliography_entry'
|
|
41
|
+
autoload :Break, 'coradoc/asciidoc/serializer/serializers/break'
|
|
42
|
+
autoload :CommentBlock, 'coradoc/asciidoc/serializer/serializers/comment_block'
|
|
43
|
+
autoload :CommentLine, 'coradoc/asciidoc/serializer/serializers/comment_line'
|
|
44
|
+
autoload :Document, 'coradoc/asciidoc/serializer/serializers/document'
|
|
45
|
+
autoload :DocumentAttributes, 'coradoc/asciidoc/serializer/serializers/document_attributes'
|
|
46
|
+
autoload :Header, 'coradoc/asciidoc/serializer/serializers/header'
|
|
47
|
+
autoload :Highlight, 'coradoc/asciidoc/serializer/serializers/highlight'
|
|
48
|
+
autoload :Include, 'coradoc/asciidoc/serializer/serializers/include'
|
|
49
|
+
autoload :LineBreak, 'coradoc/asciidoc/serializer/serializers/line_break'
|
|
50
|
+
autoload :NamedAttribute, 'coradoc/asciidoc/serializer/serializers/named_attribute'
|
|
51
|
+
autoload :Paragraph, 'coradoc/asciidoc/serializer/serializers/paragraph'
|
|
52
|
+
autoload :ReviewerNote, 'coradoc/asciidoc/serializer/serializers/reviewer_note'
|
|
53
|
+
autoload :Revision, 'coradoc/asciidoc/serializer/serializers/revision'
|
|
54
|
+
autoload :Section, 'coradoc/asciidoc/serializer/serializers/section'
|
|
55
|
+
autoload :Tag, 'coradoc/asciidoc/serializer/serializers/tag'
|
|
56
|
+
autoload :TableCell, 'coradoc/asciidoc/serializer/serializers/table_cell'
|
|
57
|
+
autoload :TableRow, 'coradoc/asciidoc/serializer/serializers/table_row'
|
|
58
|
+
autoload :Table, 'coradoc/asciidoc/serializer/serializers/table'
|
|
59
|
+
autoload :Term, 'coradoc/asciidoc/serializer/serializers/term'
|
|
60
|
+
autoload :TextElement, 'coradoc/asciidoc/serializer/serializers/text_element'
|
|
61
|
+
autoload :Title, 'coradoc/asciidoc/serializer/serializers/title'
|
|
62
|
+
autoload :Video, 'coradoc/asciidoc/serializer/serializers/video'
|
|
63
|
+
|
|
64
|
+
# Autoload submodules (each manages its own autoloads)
|
|
65
|
+
autoload :Block, 'coradoc/asciidoc/serializer/serializers/block'
|
|
66
|
+
autoload :Image, 'coradoc/asciidoc/serializer/serializers/image'
|
|
67
|
+
autoload :Inline, 'coradoc/asciidoc/serializer/serializers/inline'
|
|
68
|
+
autoload :List, 'coradoc/asciidoc/serializer/serializers/list'
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
# Load registrations last (triggers autoload of all serializers)
|
|
75
|
+
require_relative 'serializer/registrations'
|