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,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module Inline
|
|
7
|
+
# Span inline element for applying styles to text in AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Spans allow applying roles and custom attributes to inline text.
|
|
10
|
+
#
|
|
11
|
+
# @!attribute [r] text
|
|
12
|
+
# @return [String] The text content
|
|
13
|
+
#
|
|
14
|
+
# @!attribute [r] role
|
|
15
|
+
# @return [String, nil] The CSS role to apply
|
|
16
|
+
#
|
|
17
|
+
# @!attribute [r] attributes
|
|
18
|
+
# @return [Coradoc::AsciiDoc::Model::AttributeList, nil] Additional attributes
|
|
19
|
+
#
|
|
20
|
+
# @!attribute [r] unconstrained
|
|
21
|
+
# @return [Boolean] Whether to use unconstrained formatting (default: false)
|
|
22
|
+
#
|
|
23
|
+
# @example Create a span with a role
|
|
24
|
+
# span = Coradoc::AsciiDoc::Model::Inline::Span.new
|
|
25
|
+
# span.text = "Important text"
|
|
26
|
+
# span.role = "red"
|
|
27
|
+
# span.to_adoc # => "[.red]#Important text#"
|
|
28
|
+
#
|
|
29
|
+
class Span < Base
|
|
30
|
+
attribute :text, :string
|
|
31
|
+
attribute :role, :string
|
|
32
|
+
attribute :attributes, Coradoc::AsciiDoc::Model::AttributeList
|
|
33
|
+
attribute :unconstrained, :boolean, default: -> { false }
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module Inline
|
|
7
|
+
# Stem inline element for AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# STEM macros are mathematical notation: stem:[formula] or latexmath:[formula]
|
|
10
|
+
#
|
|
11
|
+
# @!attribute [r] type
|
|
12
|
+
# @return [String] The stem type (stem, latexmath, asciimath)
|
|
13
|
+
#
|
|
14
|
+
# @!attribute [r] content
|
|
15
|
+
# @return [String] The mathematical content/formula
|
|
16
|
+
#
|
|
17
|
+
class Stem < Base
|
|
18
|
+
attribute :type, :string, default: 'stem'
|
|
19
|
+
attribute :content, :string
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module Inline
|
|
7
|
+
# Strikethrough inline text formatting for AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Strikethrough text is rendered with line-through role: [.line-through]#text#.
|
|
10
|
+
#
|
|
11
|
+
# @!attribute [r] content
|
|
12
|
+
# @return [String, Array<Lutaml::Model::Serializable>] The text content to format as strikethrough
|
|
13
|
+
#
|
|
14
|
+
# @!attribute [r] text
|
|
15
|
+
# @return [String] Alternative text attribute (aliased to content)
|
|
16
|
+
#
|
|
17
|
+
# @!attribute [r] unconstrained
|
|
18
|
+
# @return [Boolean] Whether to use unconstrained formatting (default: false)
|
|
19
|
+
#
|
|
20
|
+
# @example Create strikethrough text
|
|
21
|
+
# strikethrough = Coradoc::AsciiDoc::Model::Inline::Strikethrough.new
|
|
22
|
+
# strikethrough.content = "Deleted text"
|
|
23
|
+
# strikethrough.to_adoc # => "[.line-through]#Deleted text#"
|
|
24
|
+
#
|
|
25
|
+
class Strikethrough < Base
|
|
26
|
+
attribute :content,
|
|
27
|
+
Lutaml::Model::Serializable,
|
|
28
|
+
default: -> { nil },
|
|
29
|
+
polymorphic: [
|
|
30
|
+
Lutaml::Model::Type::String,
|
|
31
|
+
:array
|
|
32
|
+
]
|
|
33
|
+
attribute :text, :string, default: -> { nil }
|
|
34
|
+
attribute :unconstrained, :boolean, default: -> { false }
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module Inline
|
|
7
|
+
# Subscript inline text formatting for AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Subscript text is rendered with tildes: ~subscript~.
|
|
10
|
+
#
|
|
11
|
+
# @!attribute [r] content
|
|
12
|
+
# @return [String, Array<Lutaml::Model::Serializable>] The text content to format as subscript
|
|
13
|
+
#
|
|
14
|
+
# @example Create subscript text
|
|
15
|
+
# sub = Coradoc::AsciiDoc::Model::Inline::Subscript.new
|
|
16
|
+
# sub.content = "2"
|
|
17
|
+
# sub.to_adoc # => "~2~"
|
|
18
|
+
#
|
|
19
|
+
# @see Coradoc::AsciiDoc::Model::Inline::Superscript Superscript text
|
|
20
|
+
#
|
|
21
|
+
class Subscript < Base
|
|
22
|
+
attribute :content,
|
|
23
|
+
Lutaml::Model::Serializable,
|
|
24
|
+
default: -> { nil },
|
|
25
|
+
polymorphic: [
|
|
26
|
+
Lutaml::Model::Type::String,
|
|
27
|
+
:array
|
|
28
|
+
]
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module Inline
|
|
7
|
+
# Superscript inline text formatting for AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Superscript text is rendered with carets: ^superscript^.
|
|
10
|
+
#
|
|
11
|
+
# @!attribute [r] content
|
|
12
|
+
# @return [String, Array<Lutaml::Model::Serializable>] The text content to format as superscript
|
|
13
|
+
#
|
|
14
|
+
# @example Create superscript text
|
|
15
|
+
# sup = Coradoc::AsciiDoc::Model::Inline::Superscript.new
|
|
16
|
+
# sup.content = "TM"
|
|
17
|
+
# sup.to_adoc # => "^TM^"
|
|
18
|
+
#
|
|
19
|
+
# @see Coradoc::AsciiDoc::Model::Inline::Subscript Subscript text
|
|
20
|
+
#
|
|
21
|
+
class Superscript < Base
|
|
22
|
+
attribute :content,
|
|
23
|
+
Lutaml::Model::Serializable,
|
|
24
|
+
default: -> { nil },
|
|
25
|
+
polymorphic: [
|
|
26
|
+
Lutaml::Model::Type::String,
|
|
27
|
+
:array
|
|
28
|
+
]
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module Inline
|
|
7
|
+
# Underline inline text formatting for AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Underlined text is rendered with underscores: [u]#text#.
|
|
10
|
+
#
|
|
11
|
+
# @!attribute [r] text
|
|
12
|
+
# @return [String] The text content to underline
|
|
13
|
+
#
|
|
14
|
+
# @example Create underlined text
|
|
15
|
+
# underline = Coradoc::AsciiDoc::Model::Inline::Underline.new
|
|
16
|
+
# underline.text = "Underlined"
|
|
17
|
+
# underline.to_adoc # => "[u]#Underlined#"
|
|
18
|
+
#
|
|
19
|
+
class Underline < Base
|
|
20
|
+
attribute :text, :string
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module Inline
|
|
7
|
+
# Autoload inline elements lazily
|
|
8
|
+
autoload :Base, 'coradoc/asciidoc/model/inline/base'
|
|
9
|
+
autoload :Anchor, 'coradoc/asciidoc/model/inline/anchor'
|
|
10
|
+
autoload :AttributeReference, 'coradoc/asciidoc/model/inline/attribute_reference'
|
|
11
|
+
autoload :Bold, 'coradoc/asciidoc/model/inline/bold'
|
|
12
|
+
autoload :Italic, 'coradoc/asciidoc/model/inline/italic'
|
|
13
|
+
autoload :CrossReference, 'coradoc/asciidoc/model/inline/cross_reference'
|
|
14
|
+
autoload :CrossReferenceArg, 'coradoc/asciidoc/model/inline/cross_reference_arg'
|
|
15
|
+
autoload :Monospace, 'coradoc/asciidoc/model/inline/monospace'
|
|
16
|
+
autoload :Link, 'coradoc/asciidoc/model/inline/link'
|
|
17
|
+
autoload :Quotation, 'coradoc/asciidoc/model/inline/quotation'
|
|
18
|
+
autoload :Highlight, 'coradoc/asciidoc/model/inline/highlight'
|
|
19
|
+
autoload :Subscript, 'coradoc/asciidoc/model/inline/subscript'
|
|
20
|
+
autoload :Superscript, 'coradoc/asciidoc/model/inline/superscript'
|
|
21
|
+
autoload :HardLineBreak, 'coradoc/asciidoc/model/inline/hard_line_break'
|
|
22
|
+
autoload :Span, 'coradoc/asciidoc/model/inline/span'
|
|
23
|
+
autoload :Footnote, 'coradoc/asciidoc/model/inline/footnote'
|
|
24
|
+
autoload :Underline, 'coradoc/asciidoc/model/inline/underline'
|
|
25
|
+
autoload :Small, 'coradoc/asciidoc/model/inline/small'
|
|
26
|
+
autoload :Strikethrough, 'coradoc/asciidoc/model/inline/strikethrough'
|
|
27
|
+
autoload :Stem, 'coradoc/asciidoc/model/inline/stem'
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module List
|
|
7
|
+
# Base class for list elements in AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Lists are container elements that hold list items and provide
|
|
10
|
+
# functionality for different list types (ordered, unordered, definition).
|
|
11
|
+
#
|
|
12
|
+
# @!attribute [r] id
|
|
13
|
+
# @return [String, nil] Optional identifier for the list
|
|
14
|
+
# @!attribute [r] prefix
|
|
15
|
+
# @return [String, nil] List marker prefix (e.g., "*", "*", "**", etc.)
|
|
16
|
+
# @!attribute [r] items
|
|
17
|
+
# @return [Array<ListItem>] List items in this list
|
|
18
|
+
# @!attribute [r] ol_count
|
|
19
|
+
# @return [Integer] Ordered list nesting level
|
|
20
|
+
# @!attribute [r] attrs
|
|
21
|
+
# @return [AttributeList] Additional list attributes
|
|
22
|
+
# @!attribute [r] marker
|
|
23
|
+
# @return [String, nil] The marker character used for this list
|
|
24
|
+
#
|
|
25
|
+
# @example Create an unordered list
|
|
26
|
+
# list = Coradoc::AsciiDoc::Model::List::Unordered.new
|
|
27
|
+
# list.items << Coradoc::AsciiDoc::Model::List::Item.new("Item 1")
|
|
28
|
+
#
|
|
29
|
+
class Core < Nestable
|
|
30
|
+
include Coradoc::AsciiDoc::Model::Anchorable
|
|
31
|
+
|
|
32
|
+
def block_level?
|
|
33
|
+
true
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
attribute :id, :string
|
|
37
|
+
attribute :prefix, :string
|
|
38
|
+
# attribute :anchor, Inline::Anchor, default: -> {
|
|
39
|
+
# id.nil? ? nil : Inline::Anchor.new(id)
|
|
40
|
+
# }
|
|
41
|
+
attribute :items, Coradoc::AsciiDoc::Model::List::Item, collection: true, initialize_empty: true
|
|
42
|
+
attribute :ol_count, :integer, default: -> { 1 }
|
|
43
|
+
attribute :attrs, Coradoc::AsciiDoc::Model::AttributeList, default: lambda {
|
|
44
|
+
Coradoc::AsciiDoc::Model::AttributeList.new
|
|
45
|
+
}
|
|
46
|
+
attribute :marker, :string
|
|
47
|
+
|
|
48
|
+
asciidoc do
|
|
49
|
+
map_attribute 'id', to: :id
|
|
50
|
+
map_attribute 'anchor', to: :anchor
|
|
51
|
+
map_attribute 'prefix', to: :prefix
|
|
52
|
+
map_attribute 'items', to: :items
|
|
53
|
+
map_attribute 'ol_count', to: :ol_count
|
|
54
|
+
map_attribute 'attrs', to: :attrs
|
|
55
|
+
map_attribute 'marker', to: :marker
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module List
|
|
7
|
+
class Definition < Base
|
|
8
|
+
attribute :items,
|
|
9
|
+
Coradoc::AsciiDoc::Model::Base,
|
|
10
|
+
polymorphic: [Coradoc::AsciiDoc::Model::List::DefinitionItem],
|
|
11
|
+
collection: true,
|
|
12
|
+
initialize_empty: true
|
|
13
|
+
attribute :delimiter, :string, default: -> { '::' }
|
|
14
|
+
|
|
15
|
+
asciidoc do
|
|
16
|
+
map_attribute 'items', to: :items
|
|
17
|
+
map_attribute 'delimiter', to: :delimiter
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def prefix
|
|
21
|
+
delimiter
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module List
|
|
7
|
+
# Definition list item for AsciiDoc definition/labeled lists.
|
|
8
|
+
#
|
|
9
|
+
# A DefinitionItem contains one or more terms and their associated
|
|
10
|
+
# definitions. In AsciiDoc, this maps to the labeled list syntax:
|
|
11
|
+
#
|
|
12
|
+
# Term 1:: Definition 1
|
|
13
|
+
# Term 2::: Definition 2 (deeper level)
|
|
14
|
+
#
|
|
15
|
+
# @!attribute [r] id
|
|
16
|
+
# @return [String, nil] Optional identifier for the definition item
|
|
17
|
+
#
|
|
18
|
+
# @!attribute [r] terms
|
|
19
|
+
# @return [Array<Term>] The terms being defined (can have multiple)
|
|
20
|
+
#
|
|
21
|
+
# @!attribute [r] contents
|
|
22
|
+
# @return [Array<TextElement>] The definitions/contents for the terms
|
|
23
|
+
#
|
|
24
|
+
# @example Create a definition list item
|
|
25
|
+
# item = Coradoc::AsciiDoc::Model::List::DefinitionItem.new
|
|
26
|
+
# item.terms << Coradoc::AsciiDoc::Model::Term.new(term: "API")
|
|
27
|
+
# item.contents << Coradoc::AsciiDoc::Model::TextElement.new("Application Programming Interface")
|
|
28
|
+
#
|
|
29
|
+
class DefinitionItem < Base
|
|
30
|
+
include Coradoc::AsciiDoc::Model::Anchorable
|
|
31
|
+
|
|
32
|
+
attribute :id, :string
|
|
33
|
+
attribute :terms, Coradoc::AsciiDoc::Model::Term, collection: true
|
|
34
|
+
attribute :contents, Coradoc::AsciiDoc::Model::TextElement, collection: true
|
|
35
|
+
|
|
36
|
+
def to_adoc(delimiter: '')
|
|
37
|
+
Coradoc::AsciiDoc::Serializer.serialize(self, delimiter: delimiter)
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module List
|
|
7
|
+
# List item element for ordered and unordered AsciiDoc lists.
|
|
8
|
+
#
|
|
9
|
+
# Represents a single item in an ordered or unordered list, which can
|
|
10
|
+
# contain text content, attached blocks (paragraphs, admonitions),
|
|
11
|
+
# and nested lists.
|
|
12
|
+
#
|
|
13
|
+
# @!attribute [r] id
|
|
14
|
+
# @return [String, nil] Optional identifier for the list item
|
|
15
|
+
#
|
|
16
|
+
# @!attribute [r] content
|
|
17
|
+
# @return [Array<Coradoc::AsciiDoc::Model::Base>] Polymorphic content
|
|
18
|
+
#
|
|
19
|
+
# @!attribute [r] marker
|
|
20
|
+
# @return [String, nil] Custom list marker for this item
|
|
21
|
+
#
|
|
22
|
+
# @!attribute [r] subitem
|
|
23
|
+
# @return [String, nil] Sub-item text
|
|
24
|
+
#
|
|
25
|
+
# @!attribute [r] line_break
|
|
26
|
+
# @return [String] Line break character (default: "\n")
|
|
27
|
+
#
|
|
28
|
+
# @!attribute [r] attached
|
|
29
|
+
# @return [Array<Coradoc::AsciiDoc::Model::Attached>] Attached blocks
|
|
30
|
+
#
|
|
31
|
+
# @!attribute [r] nested
|
|
32
|
+
# @return [Coradoc::AsciiDoc::Model::List::Nestable, nil] Nested list
|
|
33
|
+
#
|
|
34
|
+
# @example Create a simple list item
|
|
35
|
+
# item = Coradoc::AsciiDoc::Model::List::Item.new
|
|
36
|
+
# item.content = [Coradoc::AsciiDoc::Model::TextElement.new("First item")]
|
|
37
|
+
#
|
|
38
|
+
# @example Create a list item with nested list
|
|
39
|
+
# item = Coradoc::AsciiDoc::Model::List::Item.new
|
|
40
|
+
# item.nested = Coradoc::AsciiDoc::Model::List::Unordered.new
|
|
41
|
+
# item.nested.items << Coradoc::AsciiDoc::Model::List::Item.new
|
|
42
|
+
#
|
|
43
|
+
class Item < Base
|
|
44
|
+
include Coradoc::AsciiDoc::Model::Anchorable
|
|
45
|
+
|
|
46
|
+
attribute :id, :string
|
|
47
|
+
attribute :content,
|
|
48
|
+
Coradoc::AsciiDoc::Model::Base,
|
|
49
|
+
polymorphic: [
|
|
50
|
+
Coradoc::AsciiDoc::Model::TextElement,
|
|
51
|
+
Coradoc::AsciiDoc::Model::Section
|
|
52
|
+
]
|
|
53
|
+
attribute :marker, :string
|
|
54
|
+
attribute :subitem, :string
|
|
55
|
+
attribute :line_break, :string, default: -> { "\n" }
|
|
56
|
+
|
|
57
|
+
attribute :attached,
|
|
58
|
+
Coradoc::AsciiDoc::Model::Attached,
|
|
59
|
+
polymorphic: [
|
|
60
|
+
Coradoc::AsciiDoc::Model::Admonition,
|
|
61
|
+
Coradoc::AsciiDoc::Model::Paragraph,
|
|
62
|
+
Coradoc::AsciiDoc::Model::Block::Core
|
|
63
|
+
],
|
|
64
|
+
collection: true,
|
|
65
|
+
initialize_empty: true
|
|
66
|
+
|
|
67
|
+
attribute :nested, Coradoc::AsciiDoc::Model::List::Nestable
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module List
|
|
7
|
+
# Mixin module for nestable list functionality.
|
|
8
|
+
# Provides common functionality for lists that can contain nested lists.
|
|
9
|
+
class Nestable < Coradoc::AsciiDoc::Model::Base
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module List
|
|
7
|
+
# Ordered (numbered) list for AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Ordered lists use numeric markers (1, 2, 3...) or custom markers
|
|
10
|
+
# and are typically used for sequential items.
|
|
11
|
+
#
|
|
12
|
+
# @example Create an ordered list
|
|
13
|
+
# list = Coradoc::AsciiDoc::Model::List::Ordered.new
|
|
14
|
+
# item = Coradoc::AsciiDoc::Model::ListItem.new
|
|
15
|
+
# item.content = [Coradoc::AsciiDoc::Model::TextElement.new("First item")]
|
|
16
|
+
# list.items << item
|
|
17
|
+
#
|
|
18
|
+
# @see Coradoc::AsciiDoc::Model::List::Core Base list class
|
|
19
|
+
# @see Coradoc::AsciiDoc::Model::List::Unordered Unordered (bulleted) lists
|
|
20
|
+
#
|
|
21
|
+
class Ordered < Core
|
|
22
|
+
# Generate the prefix marker for this list level
|
|
23
|
+
#
|
|
24
|
+
# @return [String] The prefix marker (e.g., ".", "..", "...")
|
|
25
|
+
def prefix
|
|
26
|
+
return marker if marker
|
|
27
|
+
|
|
28
|
+
'.' * [ol_count, 1].max
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
module List
|
|
7
|
+
# Unordered (bulleted) list for AsciiDoc documents.
|
|
8
|
+
#
|
|
9
|
+
# Unordered lists use asterisk markers (*, **, ***) and are
|
|
10
|
+
# typically used for non-sequential items where order doesn't matter.
|
|
11
|
+
#
|
|
12
|
+
# @example Create an unordered list
|
|
13
|
+
# list = Coradoc::AsciiDoc::Model::List::Unordered.new
|
|
14
|
+
# item = Coradoc::AsciiDoc::Model::ListItem.new
|
|
15
|
+
# item.content = [Coradoc::AsciiDoc::Model::TextElement.new("Bullet point")]
|
|
16
|
+
# list.items << item
|
|
17
|
+
#
|
|
18
|
+
# @see Coradoc::AsciiDoc::Model::List::Core Base list class
|
|
19
|
+
# @see Coradoc::AsciiDoc::Model::List::Ordered Ordered (numbered) lists
|
|
20
|
+
#
|
|
21
|
+
class Unordered < Core
|
|
22
|
+
# Generate the prefix marker for this list level
|
|
23
|
+
#
|
|
24
|
+
# @return [String] The prefix marker (e.g., "*", "**", "***")
|
|
25
|
+
def prefix
|
|
26
|
+
return marker if marker
|
|
27
|
+
|
|
28
|
+
'*' * [ol_count, 1].max
|
|
29
|
+
end
|
|
30
|
+
end
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
# Namespace for all AsciiDoc list types and their items.
|
|
7
|
+
#
|
|
8
|
+
# List Architecture:
|
|
9
|
+
# - List::Core - Common list functionality (base class)
|
|
10
|
+
# - List::Ordered - Numbered lists (1., 2., 3., etc.)
|
|
11
|
+
# - List::Unordered - Bulleted lists (*, **, etc.)
|
|
12
|
+
# - List::Definition - Labeled/definition lists (term:: definition)
|
|
13
|
+
# - List::Item - Item for ordered/unordered lists
|
|
14
|
+
# - List::DefinitionItem - Item for definition lists
|
|
15
|
+
# - List::Nestable - Mixin for nesting support
|
|
16
|
+
#
|
|
17
|
+
module List
|
|
18
|
+
# Autoload list types lazily
|
|
19
|
+
autoload :Core, 'coradoc/asciidoc/model/list/core'
|
|
20
|
+
autoload :Nestable, 'coradoc/asciidoc/model/list/nestable'
|
|
21
|
+
autoload :Ordered, 'coradoc/asciidoc/model/list/ordered'
|
|
22
|
+
autoload :Unordered, 'coradoc/asciidoc/model/list/unordered'
|
|
23
|
+
autoload :Definition, 'coradoc/asciidoc/model/list/definition'
|
|
24
|
+
autoload :Item, 'coradoc/asciidoc/model/list/item'
|
|
25
|
+
autoload :DefinitionItem, 'coradoc/asciidoc/model/list/definition_item'
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Coradoc
|
|
4
|
+
module AsciiDoc
|
|
5
|
+
module Model
|
|
6
|
+
# Paragraph block element.
|
|
7
|
+
#
|
|
8
|
+
# Represents a paragraph of text in an AsciiDoc document. Paragraphs can
|
|
9
|
+
# contain mixed content including text, inline formatting, and other elements.
|
|
10
|
+
#
|
|
11
|
+
# @!attribute [r] id
|
|
12
|
+
# @return [String, nil] Optional identifier for the paragraph
|
|
13
|
+
# @!attribute [r] content
|
|
14
|
+
# @return [Array<String, TextElement>] Paragraph content (can be text or TextElement objects)
|
|
15
|
+
# @!attribute [r] title
|
|
16
|
+
# @return [String, nil] Optional title for the paragraph
|
|
17
|
+
# @!attribute [r] attributes
|
|
18
|
+
# @return [AttributeList] Additional paragraph attributes (style, position, etc.)
|
|
19
|
+
# @!attribute [r] tdsinglepara
|
|
20
|
+
# @return [Boolean] Special table cell paragraph flag
|
|
21
|
+
#
|
|
22
|
+
# @example Create a simple paragraph
|
|
23
|
+
# para = Coradoc::AsciiDoc::Model::Paragraph.new("Hello World")
|
|
24
|
+
# para.to_adoc # => "Hello World"
|
|
25
|
+
#
|
|
26
|
+
# @example Create a paragraph with attributes
|
|
27
|
+
# para = Coradoc::AsciiDoc::Model::Paragraph.new(
|
|
28
|
+
# "Note: This is important",
|
|
29
|
+
# attributes: Coradoc::AsciiDoc::Model::Coradoc::AsciiDoc::Model::AttributeList.new(["NOTE"])
|
|
30
|
+
# )
|
|
31
|
+
#
|
|
32
|
+
class Paragraph < Attached
|
|
33
|
+
include Coradoc::AsciiDoc::Model::Anchorable
|
|
34
|
+
|
|
35
|
+
attribute :id, :string
|
|
36
|
+
# NOTE: Content uses polymorphic collection supporting both String and TextElement
|
|
37
|
+
# types via lutaml-model's polymorphic attribute feature.
|
|
38
|
+
attribute :content,
|
|
39
|
+
Lutaml::Model::Serializable,
|
|
40
|
+
collection: true,
|
|
41
|
+
initialize_empty: true,
|
|
42
|
+
polymorphic: [
|
|
43
|
+
# :string,
|
|
44
|
+
Lutaml::Model::Type::String,
|
|
45
|
+
Coradoc::AsciiDoc::Model::TextElement
|
|
46
|
+
]
|
|
47
|
+
attribute :title, :string
|
|
48
|
+
attribute :attributes, Coradoc::AsciiDoc::Model::AttributeList, default: lambda {
|
|
49
|
+
Coradoc::AsciiDoc::Model::AttributeList.new
|
|
50
|
+
}
|
|
51
|
+
attribute :tdsinglepara, :boolean, default: -> { false }
|
|
52
|
+
# Trailing newlines after paragraph for exact round-trip preservation
|
|
53
|
+
# nil = use default "\n\n" spacing (semantic mode)
|
|
54
|
+
# string = exact trailing newlines from original (exact mode)
|
|
55
|
+
attribute :trailing_newlines, :string, default: nil
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|