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,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class Example < Core
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Self-register this serializer
|
|
13
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::Example, Block::Example)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class Listing < Core
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
@model = model
|
|
11
|
+
"\n\n#{gen_anchor}#{gen_attributes}\n#{gen_delimiter}\n" <<
|
|
12
|
+
gen_lines << "\n#{gen_delimiter}\n\n"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Self-register this serializer
|
|
18
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::Listing, Block::Listing)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class Literal < Core
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Self-register this serializer
|
|
13
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::Literal, Block::Literal)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class Open < Core
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
@model = model
|
|
11
|
+
"\n\n#{gen_anchor}#{gen_attributes}#{gen_delimiter}\n" <<
|
|
12
|
+
gen_lines << "\n#{gen_delimiter}\n\n"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Self-register this serializer
|
|
18
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::Open, Block::Open)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class Pass < Core
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Self-register this serializer
|
|
13
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::Pass, Block::Pass)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class Quote < Core
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Self-register this serializer
|
|
13
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::Quote, Block::Quote)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class ReviewerComment < Core
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
# Self-register this serializer
|
|
13
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::ReviewerComment, Block::ReviewerComment)
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class Side < Core
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
@model = model
|
|
11
|
+
"\n\n#{gen_anchor}#{gen_title}#{gen_attributes}#{gen_delimiter}\n\n\n" <<
|
|
12
|
+
gen_lines << "\n\n#{gen_delimiter}\n\n"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Self-register this serializer
|
|
18
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::Side, Block::Side)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Block
|
|
8
|
+
class SourceCode < Core
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
@model = model
|
|
11
|
+
"\n\n#{gen_anchor}[source,#{model.lang}]\n#{gen_delimiter}\n" <<
|
|
12
|
+
gen_lines << "\n#{gen_delimiter}\n\n"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Self-register this serializer
|
|
18
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Block::SourceCode, Block::SourceCode)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
# Autoload block serializers
|
|
8
|
+
module Block
|
|
9
|
+
autoload :Core, 'coradoc/asciidoc/serializer/serializers/block/core'
|
|
10
|
+
autoload :Example, 'coradoc/asciidoc/serializer/serializers/block/example'
|
|
11
|
+
autoload :Listing, 'coradoc/asciidoc/serializer/serializers/block/listing'
|
|
12
|
+
autoload :Literal, 'coradoc/asciidoc/serializer/serializers/block/literal'
|
|
13
|
+
autoload :Open, 'coradoc/asciidoc/serializer/serializers/block/open'
|
|
14
|
+
autoload :Pass, 'coradoc/asciidoc/serializer/serializers/block/pass'
|
|
15
|
+
autoload :Quote, 'coradoc/asciidoc/serializer/serializers/block/quote'
|
|
16
|
+
autoload :ReviewerComment, 'coradoc/asciidoc/serializer/serializers/block/reviewer_comment'
|
|
17
|
+
autoload :Side, 'coradoc/asciidoc/serializer/serializers/block/side'
|
|
18
|
+
autoload :SourceCode, 'coradoc/asciidoc/serializer/serializers/block/source_code'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class Break < Base
|
|
8
|
+
def to_adoc(_model, _options = {})
|
|
9
|
+
"\n* * *\n"
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
# Self-register this serializer
|
|
15
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Break::ThematicBreak, Serializers::Break)
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class CommentBlock < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
<<~ADOC.chomp
|
|
10
|
+
////
|
|
11
|
+
#{model.text}
|
|
12
|
+
////#{model.line_break}
|
|
13
|
+
ADOC
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Self-register this serializer
|
|
19
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::CommentBlock, Serializers::CommentBlock)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class CommentLine < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
if model.text.nil? || model.text.strip.empty?
|
|
10
|
+
"//#{model.line_break}"
|
|
11
|
+
else
|
|
12
|
+
"// #{model.text}#{model.line_break}"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# Self-register this serializer
|
|
19
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::CommentLine, Serializers::CommentLine)
|
|
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
|
+
class Document < Base
|
|
8
|
+
# Pre-compiled regex for performance
|
|
9
|
+
LEADING_NEWLINES_REGEX = /\A\n+/
|
|
10
|
+
|
|
11
|
+
def to_adoc(model, options_or_context = {})
|
|
12
|
+
context = normalize_context(options_or_context)
|
|
13
|
+
@model = model
|
|
14
|
+
@context = context
|
|
15
|
+
serialize_to_adoc
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
private
|
|
19
|
+
|
|
20
|
+
attr_reader :context
|
|
21
|
+
|
|
22
|
+
def serialize_to_adoc
|
|
23
|
+
parts = []
|
|
24
|
+
# Only add leading newline if we have sections but no header
|
|
25
|
+
parts << "\n" if @model.sections && !@model.sections.empty? && !@model.header
|
|
26
|
+
|
|
27
|
+
# Only serialize header if it has a non-empty title
|
|
28
|
+
if @model.header&.title && !@model.header.title.to_s.empty?
|
|
29
|
+
parts << serialize_child(@model.header,
|
|
30
|
+
@context)
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Only serialize document_attributes if it has data
|
|
34
|
+
if @model.document_attributes&.data && !@model.document_attributes.data.empty?
|
|
35
|
+
parts << serialize_child(@model.document_attributes,
|
|
36
|
+
@context)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# Serialize sections with last_element tracking
|
|
40
|
+
parts << serialize_sections_with_last_element if @model.sections && !@model.sections.empty?
|
|
41
|
+
result = parts.join
|
|
42
|
+
|
|
43
|
+
# Clean up leading newlines when we have header
|
|
44
|
+
if @model.header&.title && !@model.header.title.to_s.empty?
|
|
45
|
+
result = result.sub(LEADING_NEWLINES_REGEX,
|
|
46
|
+
'')
|
|
47
|
+
end
|
|
48
|
+
result
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
def serialize_sections_with_last_element
|
|
52
|
+
# Serialize all sections, marking the last one as the last element
|
|
53
|
+
@model.sections.each_with_index.map do |section, index|
|
|
54
|
+
child_context = context.for_child(index, @model.sections.length)
|
|
55
|
+
serialize_child(section, child_context)
|
|
56
|
+
end.join
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
# Self-register this serializer
|
|
62
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Document, Serializers::Document)
|
|
63
|
+
end
|
|
64
|
+
end
|
|
65
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
class DocumentAttributes < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
return '' if model.data.nil?
|
|
10
|
+
return "\n" if model.data.empty?
|
|
11
|
+
|
|
12
|
+
model.data.map { |attr| serialize_child(attr) }.join + "\n"
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# Self-register this serializer (in Adoc module scope)
|
|
18
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::DocumentAttributes, Serializers::DocumentAttributes)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
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 Header < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
# Output anchor if ID is present
|
|
10
|
+
adoc = +''
|
|
11
|
+
adoc << "[[#{model.id}]]\n" if model.id && !model.id.empty?
|
|
12
|
+
adoc << "= #{model.title}\n"
|
|
13
|
+
adoc << model.author.to_adoc if model.author
|
|
14
|
+
adoc << model.revision.to_adoc if model.revision
|
|
15
|
+
adoc
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Self-register this serializer
|
|
21
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Header, Serializers::Header)
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
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 Highlight models
|
|
8
|
+
class Highlight < 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::Highlight, Serializers::Highlight)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Image
|
|
8
|
+
class Core < Base
|
|
9
|
+
def to_adoc(model, options = {})
|
|
10
|
+
missing = if model.annotate_missing
|
|
11
|
+
"// Missing image: #{model.annotate_missing}\n"
|
|
12
|
+
else
|
|
13
|
+
''
|
|
14
|
+
end
|
|
15
|
+
_anchor = model.anchor.nil? ? '' : "#{serialize_child(model.anchor)}\n"
|
|
16
|
+
_title = model.title.to_s.empty? ? '' : ".#{model.title}\n"
|
|
17
|
+
attrs = serialize_child(model.attributes, options)
|
|
18
|
+
[missing, _anchor, _title, 'image', model.colons, model.src, attrs,
|
|
19
|
+
model.line_break].join
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
# Self-register this serializer
|
|
25
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Image::Core, Image::Core)
|
|
26
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Image::BlockImage, Image::Core)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
# Autoload image serializers
|
|
8
|
+
module Image
|
|
9
|
+
autoload :Core, 'coradoc/asciidoc/serializer/serializers/image/core'
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
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 Include < Base
|
|
8
|
+
def to_adoc(model, _options = {})
|
|
9
|
+
attrs = model.attributes.to_adoc(show_empty: true)
|
|
10
|
+
"include::#{model.path}#{attrs}#{model.line_break}"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Self-register this serializer
|
|
16
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Include, Serializers::Include)
|
|
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
|
+
module Inline
|
|
8
|
+
class Anchor < Base
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
"[[#{model.id}]]"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Self-register this serializer
|
|
16
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::Anchor, Inline::Anchor)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Inline
|
|
8
|
+
class AttributeReference < Base
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
"{#{model.name}}"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Self-register this serializer
|
|
16
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::AttributeReference, Inline::AttributeReference)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Inline
|
|
8
|
+
# Serializer for Bold inline formatting
|
|
9
|
+
class Bold < Base
|
|
10
|
+
def to_adoc(model, _options = {})
|
|
11
|
+
content = serialize_content(model.content)
|
|
12
|
+
content = Coradoc::Util::AsciiDoc.escape_characters(content, escape_chars: %w[*])
|
|
13
|
+
|
|
14
|
+
return '' if content.empty?
|
|
15
|
+
|
|
16
|
+
model.unconstrained ? "**#{content}**" : "*#{content}*"
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Self-register this serializer
|
|
22
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::Bold, Inline::Bold)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Inline
|
|
8
|
+
class CrossReference < Base
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
if model.args&.length&.> 0
|
|
11
|
+
_args = model.args.reject(&:empty?).map do |a|
|
|
12
|
+
serialize_child(a)
|
|
13
|
+
end.join(',')
|
|
14
|
+
|
|
15
|
+
return "<<#{model.href}>>" if _args.empty?
|
|
16
|
+
|
|
17
|
+
return "<<#{model.href},#{_args}>>"
|
|
18
|
+
|
|
19
|
+
end
|
|
20
|
+
"<<#{model.href}>>"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Self-register this serializer
|
|
26
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::CrossReference, Inline::CrossReference)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Inline
|
|
8
|
+
class CrossReferenceArg < Base
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
[model.key, model.delimiter, model.value].join
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Self-register this serializer
|
|
16
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::CrossReferenceArg, Inline::CrossReferenceArg)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Inline
|
|
8
|
+
class Footnote < Base
|
|
9
|
+
def to_adoc(model, _options = {})
|
|
10
|
+
if model.id
|
|
11
|
+
"footnote:#{model.id}[#{model.text}]"
|
|
12
|
+
else
|
|
13
|
+
"footnote:[#{model.text}]"
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# Self-register this serializer
|
|
20
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::Footnote, Inline::Footnote)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Inline
|
|
8
|
+
class HardLineBreak < Base
|
|
9
|
+
def to_adoc(_model, _options = {})
|
|
10
|
+
" +\n"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Self-register this serializer
|
|
16
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::HardLineBreak, Inline::HardLineBreak)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Serializer
|
|
6
|
+
module Serializers
|
|
7
|
+
module Inline
|
|
8
|
+
# Serializer for Highlight inline formatting
|
|
9
|
+
class Highlight < Base
|
|
10
|
+
def to_adoc(model, _options = {})
|
|
11
|
+
content = serialize_content(model.content)
|
|
12
|
+
content = Coradoc::Util::AsciiDoc.escape_characters(content, escape_chars: ['#'])
|
|
13
|
+
|
|
14
|
+
return '' if content.empty?
|
|
15
|
+
|
|
16
|
+
model.unconstrained ? "###{content}##" : "##{content}#"
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Self-register this serializer
|
|
22
|
+
ElementRegistry.register(Coradoc::AsciiDoc::Model::Inline::Highlight, Inline::Highlight)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|