coradoc-html 1.1.7 → 1.1.14
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 +4 -4
- data/lib/coradoc/html/config.rb +36 -12
- data/lib/coradoc/html/converter_base.rb +26 -68
- data/lib/coradoc/html/drop/annotation_drop.rb +31 -0
- data/lib/coradoc/html/drop/base.rb +72 -0
- data/lib/coradoc/html/drop/bibliography_drop.rb +15 -0
- data/lib/coradoc/html/drop/bibliography_entry_drop.rb +24 -0
- data/lib/coradoc/html/drop/block_drop.rb +69 -0
- data/lib/coradoc/html/drop/definition_item_drop.rb +36 -0
- data/lib/coradoc/html/drop/definition_list_drop.rb +15 -0
- data/lib/coradoc/html/drop/document_drop.rb +52 -0
- data/lib/coradoc/html/drop/drop_factory.rb +72 -0
- data/lib/coradoc/html/drop/footnote_drop.rb +24 -0
- data/lib/coradoc/html/drop/image_drop.rb +35 -0
- data/lib/coradoc/html/drop/inline_element_drop.rb +64 -0
- data/lib/coradoc/html/drop/list_block_drop.rb +23 -0
- data/lib/coradoc/html/drop/list_item_drop.rb +20 -0
- data/lib/coradoc/html/drop/table_cell_drop.rb +35 -0
- data/lib/coradoc/html/drop/table_drop.rb +15 -0
- data/lib/coradoc/html/drop/table_row_drop.rb +23 -0
- data/lib/coradoc/html/drop/term_drop.rb +24 -0
- data/lib/coradoc/html/drop/text_content_drop.rb +15 -0
- data/lib/coradoc/html/drop/toc_drop.rb +15 -0
- data/lib/coradoc/html/drop/toc_entry_drop.rb +32 -0
- data/lib/coradoc/html/drop.rb +18 -0
- data/lib/coradoc/html/escape.rb +29 -0
- data/lib/coradoc/html/input/cleaner.rb +4 -33
- data/lib/coradoc/html/input/config.rb +4 -3
- data/lib/coradoc/html/input/converters/a.rb +8 -19
- data/lib/coradoc/html/input/converters/aside.rb +4 -5
- data/lib/coradoc/html/input/converters/audio.rb +6 -35
- data/lib/coradoc/html/input/converters/base.rb +29 -27
- data/lib/coradoc/html/input/converters/blockquote.rb +4 -2
- data/lib/coradoc/html/input/converters/br.rb +4 -4
- data/lib/coradoc/html/input/converters/bypass.rb +68 -67
- data/lib/coradoc/html/input/converters/code.rb +7 -5
- data/lib/coradoc/html/input/converters/div.rb +4 -4
- data/lib/coradoc/html/input/converters/dl.rb +3 -25
- data/lib/coradoc/html/input/converters/drop.rb +13 -13
- data/lib/coradoc/html/input/converters/em.rb +5 -3
- data/lib/coradoc/html/input/converters/figure.rb +3 -26
- data/lib/coradoc/html/input/converters/h.rb +9 -11
- data/lib/coradoc/html/input/converters/head.rb +5 -4
- data/lib/coradoc/html/input/converters/hr.rb +4 -5
- data/lib/coradoc/html/input/converters/img.rb +4 -9
- data/lib/coradoc/html/input/converters/li.rb +3 -1
- data/lib/coradoc/html/input/converters/mark.rb +3 -1
- data/lib/coradoc/html/input/converters/markup.rb +4 -8
- data/lib/coradoc/html/input/converters/math.rb +7 -14
- data/lib/coradoc/html/input/converters/media_base.rb +50 -0
- data/lib/coradoc/html/input/converters/ol.rb +6 -8
- data/lib/coradoc/html/input/converters/p.rb +43 -34
- data/lib/coradoc/html/input/converters/pass_through.rb +2 -4
- data/lib/coradoc/html/input/converters/positional_formatting.rb +37 -0
- data/lib/coradoc/html/input/converters/pre.rb +3 -3
- data/lib/coradoc/html/input/converters/q.rb +6 -3
- data/lib/coradoc/html/input/converters/strong.rb +4 -2
- data/lib/coradoc/html/input/converters/sub.rb +5 -23
- data/lib/coradoc/html/input/converters/sup.rb +5 -23
- data/lib/coradoc/html/input/converters/table.rb +3 -1
- data/lib/coradoc/html/input/converters/td.rb +4 -30
- data/lib/coradoc/html/input/converters/text.rb +4 -3
- data/lib/coradoc/html/input/converters/tr.rb +3 -2
- data/lib/coradoc/html/input/converters/video.rb +12 -36
- data/lib/coradoc/html/input/converters.rb +55 -70
- data/lib/coradoc/html/input/html_converter.rb +2 -74
- data/lib/coradoc/html/input/plugin.rb +8 -57
- data/lib/coradoc/html/input/plugins/plateau.rb +4 -19
- data/lib/coradoc/html/input/postprocessor.rb +3 -9
- data/lib/coradoc/html/input.rb +26 -8
- data/lib/coradoc/html/layout_renderer.rb +163 -0
- data/lib/coradoc/html/output.rb +6 -12
- data/lib/coradoc/html/renderer.rb +86 -357
- data/lib/coradoc/html/section_numberable.rb +9 -0
- data/lib/coradoc/html/spa.rb +29 -270
- data/lib/coradoc/html/static.rb +29 -238
- data/lib/coradoc/html/template_caching.rb +31 -0
- data/lib/coradoc/html/template_config.rb +11 -70
- data/lib/coradoc/html/template_helpers.rb +39 -31
- data/lib/coradoc/html/template_locator.rb +17 -11
- data/lib/coradoc/html/theme.rb +1 -7
- data/lib/coradoc/html/title_text.rb +57 -0
- data/lib/coradoc/html/toc_builder.rb +112 -0
- data/lib/coradoc/html/toc_serializer.rb +31 -0
- data/lib/coradoc/html/transform/from_core_model.rb +13 -12
- data/lib/coradoc/html/transform/to_core_model.rb +10 -12
- data/lib/coradoc/html/version.rb +1 -1
- data/lib/coradoc/html.rb +41 -88
- metadata +38 -70
- data/lib/coradoc/html/base.rb +0 -157
- data/lib/coradoc/html/converters/admonition.rb +0 -180
- data/lib/coradoc/html/converters/attribute.rb +0 -68
- data/lib/coradoc/html/converters/attribute_reference.rb +0 -60
- data/lib/coradoc/html/converters/audio.rb +0 -165
- data/lib/coradoc/html/converters/base.rb +0 -615
- data/lib/coradoc/html/converters/bibliography.rb +0 -82
- data/lib/coradoc/html/converters/bibliography_entry.rb +0 -108
- data/lib/coradoc/html/converters/block_image.rb +0 -72
- data/lib/coradoc/html/converters/bold.rb +0 -34
- data/lib/coradoc/html/converters/break.rb +0 -32
- data/lib/coradoc/html/converters/comment_block.rb +0 -42
- data/lib/coradoc/html/converters/comment_line.rb +0 -54
- data/lib/coradoc/html/converters/cross_reference.rb +0 -59
- data/lib/coradoc/html/converters/document.rb +0 -108
- data/lib/coradoc/html/converters/example.rb +0 -114
- data/lib/coradoc/html/converters/highlight.rb +0 -34
- data/lib/coradoc/html/converters/include.rb +0 -68
- data/lib/coradoc/html/converters/inline_image.rb +0 -41
- data/lib/coradoc/html/converters/italic.rb +0 -34
- data/lib/coradoc/html/converters/line_break.rb +0 -31
- data/lib/coradoc/html/converters/link.rb +0 -46
- data/lib/coradoc/html/converters/list_item.rb +0 -75
- data/lib/coradoc/html/converters/listing.rb +0 -99
- data/lib/coradoc/html/converters/literal.rb +0 -102
- data/lib/coradoc/html/converters/monospace.rb +0 -34
- data/lib/coradoc/html/converters/open.rb +0 -78
- data/lib/coradoc/html/converters/ordered.rb +0 -53
- data/lib/coradoc/html/converters/paragraph.rb +0 -46
- data/lib/coradoc/html/converters/quote.rb +0 -113
- data/lib/coradoc/html/converters/reviewer_comment.rb +0 -74
- data/lib/coradoc/html/converters/reviewer_note.rb +0 -134
- data/lib/coradoc/html/converters/section.rb +0 -90
- data/lib/coradoc/html/converters/sidebar.rb +0 -113
- data/lib/coradoc/html/converters/source.rb +0 -137
- data/lib/coradoc/html/converters/source_code.rb +0 -16
- data/lib/coradoc/html/converters/span.rb +0 -61
- data/lib/coradoc/html/converters/strikethrough.rb +0 -34
- data/lib/coradoc/html/converters/subscript.rb +0 -34
- data/lib/coradoc/html/converters/superscript.rb +0 -34
- data/lib/coradoc/html/converters/table.rb +0 -85
- data/lib/coradoc/html/converters/table_cell.rb +0 -203
- data/lib/coradoc/html/converters/table_row.rb +0 -45
- data/lib/coradoc/html/converters/template_html_converter.rb +0 -105
- data/lib/coradoc/html/converters/term.rb +0 -58
- data/lib/coradoc/html/converters/text_element.rb +0 -44
- data/lib/coradoc/html/converters/underline.rb +0 -34
- data/lib/coradoc/html/converters/unordered.rb +0 -47
- data/lib/coradoc/html/converters/verse.rb +0 -105
- data/lib/coradoc/html/converters/video.rb +0 -179
- data/lib/coradoc/html/element_mapping.rb +0 -210
- data/lib/coradoc/html/entity.rb +0 -137
- data/lib/coradoc/html/input/converters/ignore.rb +0 -22
- data/lib/coradoc/html/input/converters/th.rb +0 -20
- data/lib/coradoc/html/theme/base.rb +0 -231
- data/lib/coradoc/html/theme/classic_renderer.rb +0 -390
- data/lib/coradoc/html/theme/modern/components/ui_components.rb +0 -344
- data/lib/coradoc/html/theme/modern/css_generator.rb +0 -311
- data/lib/coradoc/html/theme/modern/javascript_generator.rb +0 -314
- data/lib/coradoc/html/theme/modern/serializers/document_serializer.rb +0 -382
- data/lib/coradoc/html/theme/modern/tailwind_config_builder.rb +0 -164
- data/lib/coradoc/html/theme/modern/vue_template_generator.rb +0 -374
- data/lib/coradoc/html/theme/modern_renderer.rb +0 -250
- data/lib/coradoc/html/theme/registry.rb +0 -153
data/lib/coradoc/html.rb
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
module Coradoc
|
|
4
|
+
module Html
|
|
5
|
+
HTML_EXTENSIONS = %w[.html .htm].freeze
|
|
6
|
+
|
|
7
|
+
module FormatDetection
|
|
8
|
+
def html_extension?(filename)
|
|
9
|
+
HTML_EXTENSIONS.any? { |ext| filename.downcase.end_with?(ext) }
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
3
15
|
# Load HTML input module to register with Coradoc::Input
|
|
4
16
|
require 'coradoc/html/input'
|
|
5
17
|
# Load HTML output module to register with Coradoc::Output
|
|
@@ -7,75 +19,31 @@ require 'coradoc/html/output'
|
|
|
7
19
|
|
|
8
20
|
module Coradoc
|
|
9
21
|
module Html
|
|
10
|
-
module Converters
|
|
11
|
-
# Autoload HTML converters - they will be loaded when accessed
|
|
12
|
-
autoload :Base, 'coradoc/html/converters/base'
|
|
13
|
-
autoload :Admonition, 'coradoc/html/converters/admonition'
|
|
14
|
-
autoload :AttributeReference, 'coradoc/html/converters/attribute_reference'
|
|
15
|
-
autoload :Attribute, 'coradoc/html/converters/attribute'
|
|
16
|
-
autoload :Audio, 'coradoc/html/converters/audio'
|
|
17
|
-
autoload :BibliographyEntry, 'coradoc/html/converters/bibliography_entry'
|
|
18
|
-
autoload :Bibliography, 'coradoc/html/converters/bibliography'
|
|
19
|
-
autoload :BlockImage, 'coradoc/html/converters/block_image'
|
|
20
|
-
autoload :Bold, 'coradoc/html/converters/bold'
|
|
21
|
-
autoload :Break, 'coradoc/html/converters/break'
|
|
22
|
-
autoload :CommentBlock, 'coradoc/html/converters/comment_block'
|
|
23
|
-
autoload :CommentLine, 'coradoc/html/converters/comment_line'
|
|
24
|
-
autoload :CrossReference, 'coradoc/html/converters/cross_reference'
|
|
25
|
-
autoload :Document, 'coradoc/html/converters/document'
|
|
26
|
-
autoload :Example, 'coradoc/html/converters/example'
|
|
27
|
-
autoload :Highlight, 'coradoc/html/converters/highlight'
|
|
28
|
-
autoload :Include, 'coradoc/html/converters/include'
|
|
29
|
-
autoload :InlineImage, 'coradoc/html/converters/inline_image'
|
|
30
|
-
autoload :Italic, 'coradoc/html/converters/italic'
|
|
31
|
-
autoload :LineBreak, 'coradoc/html/converters/line_break'
|
|
32
|
-
autoload :Link, 'coradoc/html/converters/link'
|
|
33
|
-
autoload :ListItem, 'coradoc/html/converters/list_item'
|
|
34
|
-
autoload :Listing, 'coradoc/html/converters/listing'
|
|
35
|
-
autoload :Literal, 'coradoc/html/converters/literal'
|
|
36
|
-
autoload :Monospace, 'coradoc/html/converters/monospace'
|
|
37
|
-
autoload :Ordered, 'coradoc/html/converters/ordered'
|
|
38
|
-
autoload :Open, 'coradoc/html/converters/open'
|
|
39
|
-
autoload :Paragraph, 'coradoc/html/converters/paragraph'
|
|
40
|
-
autoload :Quote, 'coradoc/html/converters/quote'
|
|
41
|
-
autoload :ReviewerComment, 'coradoc/html/converters/reviewer_comment'
|
|
42
|
-
autoload :ReviewerNote, 'coradoc/html/converters/reviewer_note'
|
|
43
|
-
autoload :Section, 'coradoc/html/converters/section'
|
|
44
|
-
autoload :Sidebar, 'coradoc/html/converters/sidebar'
|
|
45
|
-
autoload :Source, 'coradoc/html/converters/source'
|
|
46
|
-
autoload :SourceCode, 'coradoc/html/converters/source_code'
|
|
47
|
-
autoload :Span, 'coradoc/html/converters/span'
|
|
48
|
-
autoload :Strikethrough, 'coradoc/html/converters/strikethrough'
|
|
49
|
-
autoload :Subscript, 'coradoc/html/converters/subscript'
|
|
50
|
-
autoload :Superscript, 'coradoc/html/converters/superscript'
|
|
51
|
-
autoload :TableCell, 'coradoc/html/converters/table_cell'
|
|
52
|
-
autoload :TableRow, 'coradoc/html/converters/table_row'
|
|
53
|
-
autoload :Table, 'coradoc/html/converters/table'
|
|
54
|
-
autoload :Term, 'coradoc/html/converters/term'
|
|
55
|
-
autoload :TextElement, 'coradoc/html/converters/text_element'
|
|
56
|
-
autoload :Underline, 'coradoc/html/converters/underline'
|
|
57
|
-
autoload :Unordered, 'coradoc/html/converters/unordered'
|
|
58
|
-
autoload :Verse, 'coradoc/html/converters/verse'
|
|
59
|
-
autoload :Video, 'coradoc/html/converters/video'
|
|
60
|
-
end
|
|
61
|
-
|
|
62
22
|
# Autoload HTML components
|
|
63
23
|
autoload :Config, 'coradoc/html/config'
|
|
64
|
-
autoload :
|
|
65
|
-
autoload :
|
|
66
|
-
autoload :
|
|
24
|
+
autoload :Escape, 'coradoc/html/escape'
|
|
25
|
+
autoload :SectionNumberable, 'coradoc/html/section_numberable'
|
|
26
|
+
autoload :TemplateCaching, 'coradoc/html/template_caching'
|
|
27
|
+
autoload :TitleText, 'coradoc/html/title_text'
|
|
28
|
+
|
|
29
|
+
# Drop layer — self-registering drops loaded via parent namespace file
|
|
30
|
+
require 'coradoc/html/drop'
|
|
67
31
|
|
|
68
32
|
# Autoload HTML output converters
|
|
69
33
|
autoload :ConverterBase, 'coradoc/html/converter_base'
|
|
70
34
|
autoload :Static, 'coradoc/html/static'
|
|
71
35
|
autoload :Spa, 'coradoc/html/spa'
|
|
36
|
+
autoload :TocBuilder, 'coradoc/html/toc_builder'
|
|
72
37
|
|
|
73
38
|
# Theme system
|
|
74
39
|
autoload :Theme, 'coradoc/html/theme'
|
|
75
40
|
autoload :TemplateLocator, 'coradoc/html/template_locator'
|
|
76
41
|
autoload :TemplateConfig, 'coradoc/html/template_config'
|
|
77
|
-
|
|
42
|
+
# Side-effect: registers Liquid filters on load
|
|
43
|
+
require 'coradoc/html/template_helpers'
|
|
78
44
|
autoload :Renderer, 'coradoc/html/renderer'
|
|
45
|
+
autoload :LayoutRenderer, 'coradoc/html/layout_renderer'
|
|
46
|
+
autoload :TocSerializer, 'coradoc/html/toc_serializer'
|
|
79
47
|
|
|
80
48
|
# CoreModel transformers
|
|
81
49
|
module Transform
|
|
@@ -103,19 +71,18 @@ module Coradoc
|
|
|
103
71
|
|
|
104
72
|
# Parse HTML content and return CoreModel elements (may be an Array)
|
|
105
73
|
def self.parse(html, options = {})
|
|
106
|
-
|
|
107
|
-
::Coradoc::Html::Input.to_coradoc(html, options)
|
|
74
|
+
::Coradoc::Input::Html.to_coradoc(html, options)
|
|
108
75
|
end
|
|
109
76
|
|
|
110
77
|
# Parse HTML content directly into a CoreModel document
|
|
111
78
|
#
|
|
112
79
|
# Unlike #parse which returns an Array of CoreModel elements,
|
|
113
|
-
# this wraps the result into a top-level
|
|
80
|
+
# this wraps the result into a top-level DocumentElement document
|
|
114
81
|
# suitable for use with Coradoc.serialize and other CoreModel pipelines.
|
|
115
82
|
#
|
|
116
83
|
# @param html [String] HTML content
|
|
117
84
|
# @param options [Hash] Parse options
|
|
118
|
-
# @return [Coradoc::CoreModel::
|
|
85
|
+
# @return [Coradoc::CoreModel::DocumentElement] CoreModel document
|
|
119
86
|
def self.parse_to_core(html, options = {})
|
|
120
87
|
elements = parse(html, options)
|
|
121
88
|
|
|
@@ -133,39 +100,31 @@ module Coradoc
|
|
|
133
100
|
end
|
|
134
101
|
end
|
|
135
102
|
|
|
136
|
-
Coradoc::CoreModel::
|
|
137
|
-
element_type: 'document',
|
|
103
|
+
Coradoc::CoreModel::DocumentElement.new(
|
|
138
104
|
title: title,
|
|
139
105
|
children: Array(children)
|
|
140
106
|
)
|
|
141
107
|
end
|
|
142
108
|
|
|
143
109
|
# Parse HTML file
|
|
144
|
-
def self.from_file(filename, **
|
|
110
|
+
def self.from_file(filename, **)
|
|
145
111
|
content = File.read(filename)
|
|
146
|
-
parse(content, **
|
|
112
|
+
parse(content, **)
|
|
147
113
|
end
|
|
148
114
|
|
|
149
115
|
# Serialize CoreModel document to HTML
|
|
150
116
|
#
|
|
151
|
-
# Uses the
|
|
117
|
+
# Uses the unified Liquid template renderer.
|
|
152
118
|
#
|
|
153
119
|
# @param document [Coradoc::CoreModel::Base] CoreModel document to serialize
|
|
154
120
|
# @param options [Hash] Output options
|
|
155
121
|
# @return [String] HTML output
|
|
156
122
|
def self.serialize(document, options = {})
|
|
157
|
-
# Validate input is CoreModel
|
|
158
123
|
validate_core_model!(document)
|
|
159
124
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
# Use theme registry to find and use the appropriate renderer
|
|
165
|
-
theme = options[:theme] || :classic
|
|
166
|
-
renderer_class = Theme::Registry.find(theme)
|
|
167
|
-
renderer = renderer_class.new(document, options)
|
|
168
|
-
renderer.render_html5
|
|
125
|
+
layout = options.delete(:layout) || :static
|
|
126
|
+
renderer = Renderer.new(template_dirs: options.delete(:template_dirs))
|
|
127
|
+
renderer.render_html5(document, layout: layout, **options)
|
|
169
128
|
end
|
|
170
129
|
|
|
171
130
|
# Serialize CoreModel document to static HTML
|
|
@@ -176,9 +135,6 @@ module Coradoc
|
|
|
176
135
|
# @param config [Hash, Static::Configuration] Static converter configuration
|
|
177
136
|
# @return [String] HTML output
|
|
178
137
|
def self.serialize_static(document, config = {})
|
|
179
|
-
# Validate input is CoreModel
|
|
180
|
-
validate_core_model!(document)
|
|
181
|
-
|
|
182
138
|
Static.convert(document, config)
|
|
183
139
|
end
|
|
184
140
|
|
|
@@ -190,9 +146,6 @@ module Coradoc
|
|
|
190
146
|
# @param config [Hash, Spa::Configuration] SPA converter configuration
|
|
191
147
|
# @return [String] HTML output
|
|
192
148
|
def self.serialize_spa(document, config = {})
|
|
193
|
-
# Validate input is CoreModel
|
|
194
|
-
validate_core_model!(document)
|
|
195
|
-
|
|
196
149
|
Spa.convert(document, config)
|
|
197
150
|
end
|
|
198
151
|
|
|
@@ -203,9 +156,6 @@ module Coradoc
|
|
|
203
156
|
# @param options [Hash] Converter options
|
|
204
157
|
# @return [String] HTML output
|
|
205
158
|
def self.serialize_as(document, format, options = {})
|
|
206
|
-
# Validate input is CoreModel
|
|
207
|
-
validate_core_model!(document)
|
|
208
|
-
|
|
209
159
|
case format.to_sym
|
|
210
160
|
when :static, :html_static, :classic
|
|
211
161
|
serialize_static(document, options)
|
|
@@ -213,7 +163,7 @@ module Coradoc
|
|
|
213
163
|
serialize_spa(document, options)
|
|
214
164
|
else
|
|
215
165
|
raise ArgumentError, "Unknown output format: #{format}. " \
|
|
216
|
-
|
|
166
|
+
'Valid formats: :static, :spa'
|
|
217
167
|
end
|
|
218
168
|
end
|
|
219
169
|
|
|
@@ -227,12 +177,15 @@ module Coradoc
|
|
|
227
177
|
|
|
228
178
|
# Check if this format can transform the given model to CoreModel
|
|
229
179
|
#
|
|
230
|
-
# HTML
|
|
180
|
+
# HTML uses Nokogiri as its model layer. Accepts Nokogiri nodes
|
|
181
|
+
# and CoreModel objects (pass-through).
|
|
231
182
|
#
|
|
232
183
|
# @param model [Object] The model to check
|
|
233
|
-
# @return [Boolean] true if the model is
|
|
184
|
+
# @return [Boolean] true if the model is a Nokogiri node or CoreModel
|
|
234
185
|
def self.handles_model?(model)
|
|
235
|
-
model.is_a?(
|
|
186
|
+
model.is_a?(Nokogiri::XML::Node) ||
|
|
187
|
+
model.is_a?(Nokogiri::XML::Document) ||
|
|
188
|
+
model.is_a?(Coradoc::CoreModel::Base)
|
|
236
189
|
end
|
|
237
190
|
|
|
238
191
|
def self.to_core(document)
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: coradoc-html
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.1.
|
|
4
|
+
version: 1.1.14
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
@@ -13,16 +13,16 @@ dependencies:
|
|
|
13
13
|
name: coradoc
|
|
14
14
|
requirement: !ruby/object:Gem::Requirement
|
|
15
15
|
requirements:
|
|
16
|
-
- - "
|
|
16
|
+
- - "~>"
|
|
17
17
|
- !ruby/object:Gem::Version
|
|
18
|
-
version: '0'
|
|
18
|
+
version: '2.0'
|
|
19
19
|
type: :runtime
|
|
20
20
|
prerelease: false
|
|
21
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
22
22
|
requirements:
|
|
23
|
-
- - "
|
|
23
|
+
- - "~>"
|
|
24
24
|
- !ruby/object:Gem::Version
|
|
25
|
-
version: '0'
|
|
25
|
+
version: '2.0'
|
|
26
26
|
- !ruby/object:Gem::Dependency
|
|
27
27
|
name: coradoc-adoc
|
|
28
28
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -117,60 +117,31 @@ extra_rdoc_files: []
|
|
|
117
117
|
files:
|
|
118
118
|
- LICENSE.txt
|
|
119
119
|
- lib/coradoc/html.rb
|
|
120
|
-
- lib/coradoc/html/base.rb
|
|
121
120
|
- lib/coradoc/html/config.rb
|
|
122
121
|
- lib/coradoc/html/converter_base.rb
|
|
123
|
-
- lib/coradoc/html/
|
|
124
|
-
- lib/coradoc/html/
|
|
125
|
-
- lib/coradoc/html/
|
|
126
|
-
- lib/coradoc/html/
|
|
127
|
-
- lib/coradoc/html/
|
|
128
|
-
- lib/coradoc/html/
|
|
129
|
-
- lib/coradoc/html/
|
|
130
|
-
- lib/coradoc/html/
|
|
131
|
-
- lib/coradoc/html/
|
|
132
|
-
- lib/coradoc/html/
|
|
133
|
-
- lib/coradoc/html/
|
|
134
|
-
- lib/coradoc/html/
|
|
135
|
-
- lib/coradoc/html/
|
|
136
|
-
- lib/coradoc/html/
|
|
137
|
-
- lib/coradoc/html/
|
|
138
|
-
- lib/coradoc/html/
|
|
139
|
-
- lib/coradoc/html/
|
|
140
|
-
- lib/coradoc/html/
|
|
141
|
-
- lib/coradoc/html/
|
|
142
|
-
- lib/coradoc/html/
|
|
143
|
-
- lib/coradoc/html/
|
|
144
|
-
- lib/coradoc/html/
|
|
145
|
-
- lib/coradoc/html/
|
|
146
|
-
- lib/coradoc/html/converters/literal.rb
|
|
147
|
-
- lib/coradoc/html/converters/monospace.rb
|
|
148
|
-
- lib/coradoc/html/converters/open.rb
|
|
149
|
-
- lib/coradoc/html/converters/ordered.rb
|
|
150
|
-
- lib/coradoc/html/converters/paragraph.rb
|
|
151
|
-
- lib/coradoc/html/converters/quote.rb
|
|
152
|
-
- lib/coradoc/html/converters/reviewer_comment.rb
|
|
153
|
-
- lib/coradoc/html/converters/reviewer_note.rb
|
|
154
|
-
- lib/coradoc/html/converters/section.rb
|
|
155
|
-
- lib/coradoc/html/converters/sidebar.rb
|
|
156
|
-
- lib/coradoc/html/converters/source.rb
|
|
157
|
-
- lib/coradoc/html/converters/source_code.rb
|
|
158
|
-
- lib/coradoc/html/converters/span.rb
|
|
159
|
-
- lib/coradoc/html/converters/strikethrough.rb
|
|
160
|
-
- lib/coradoc/html/converters/subscript.rb
|
|
161
|
-
- lib/coradoc/html/converters/superscript.rb
|
|
162
|
-
- lib/coradoc/html/converters/table.rb
|
|
163
|
-
- lib/coradoc/html/converters/table_cell.rb
|
|
164
|
-
- lib/coradoc/html/converters/table_row.rb
|
|
165
|
-
- lib/coradoc/html/converters/template_html_converter.rb
|
|
166
|
-
- lib/coradoc/html/converters/term.rb
|
|
167
|
-
- lib/coradoc/html/converters/text_element.rb
|
|
168
|
-
- lib/coradoc/html/converters/underline.rb
|
|
169
|
-
- lib/coradoc/html/converters/unordered.rb
|
|
170
|
-
- lib/coradoc/html/converters/verse.rb
|
|
171
|
-
- lib/coradoc/html/converters/video.rb
|
|
172
|
-
- lib/coradoc/html/element_mapping.rb
|
|
173
|
-
- lib/coradoc/html/entity.rb
|
|
122
|
+
- lib/coradoc/html/drop.rb
|
|
123
|
+
- lib/coradoc/html/drop/annotation_drop.rb
|
|
124
|
+
- lib/coradoc/html/drop/base.rb
|
|
125
|
+
- lib/coradoc/html/drop/bibliography_drop.rb
|
|
126
|
+
- lib/coradoc/html/drop/bibliography_entry_drop.rb
|
|
127
|
+
- lib/coradoc/html/drop/block_drop.rb
|
|
128
|
+
- lib/coradoc/html/drop/definition_item_drop.rb
|
|
129
|
+
- lib/coradoc/html/drop/definition_list_drop.rb
|
|
130
|
+
- lib/coradoc/html/drop/document_drop.rb
|
|
131
|
+
- lib/coradoc/html/drop/drop_factory.rb
|
|
132
|
+
- lib/coradoc/html/drop/footnote_drop.rb
|
|
133
|
+
- lib/coradoc/html/drop/image_drop.rb
|
|
134
|
+
- lib/coradoc/html/drop/inline_element_drop.rb
|
|
135
|
+
- lib/coradoc/html/drop/list_block_drop.rb
|
|
136
|
+
- lib/coradoc/html/drop/list_item_drop.rb
|
|
137
|
+
- lib/coradoc/html/drop/table_cell_drop.rb
|
|
138
|
+
- lib/coradoc/html/drop/table_drop.rb
|
|
139
|
+
- lib/coradoc/html/drop/table_row_drop.rb
|
|
140
|
+
- lib/coradoc/html/drop/term_drop.rb
|
|
141
|
+
- lib/coradoc/html/drop/text_content_drop.rb
|
|
142
|
+
- lib/coradoc/html/drop/toc_drop.rb
|
|
143
|
+
- lib/coradoc/html/drop/toc_entry_drop.rb
|
|
144
|
+
- lib/coradoc/html/escape.rb
|
|
174
145
|
- lib/coradoc/html/input.rb
|
|
175
146
|
- lib/coradoc/html/input/cleaner.rb
|
|
176
147
|
- lib/coradoc/html/input/config.rb
|
|
@@ -191,15 +162,16 @@ files:
|
|
|
191
162
|
- lib/coradoc/html/input/converters/h.rb
|
|
192
163
|
- lib/coradoc/html/input/converters/head.rb
|
|
193
164
|
- lib/coradoc/html/input/converters/hr.rb
|
|
194
|
-
- lib/coradoc/html/input/converters/ignore.rb
|
|
195
165
|
- lib/coradoc/html/input/converters/img.rb
|
|
196
166
|
- lib/coradoc/html/input/converters/li.rb
|
|
197
167
|
- lib/coradoc/html/input/converters/mark.rb
|
|
198
168
|
- lib/coradoc/html/input/converters/markup.rb
|
|
199
169
|
- lib/coradoc/html/input/converters/math.rb
|
|
170
|
+
- lib/coradoc/html/input/converters/media_base.rb
|
|
200
171
|
- lib/coradoc/html/input/converters/ol.rb
|
|
201
172
|
- lib/coradoc/html/input/converters/p.rb
|
|
202
173
|
- lib/coradoc/html/input/converters/pass_through.rb
|
|
174
|
+
- lib/coradoc/html/input/converters/positional_formatting.rb
|
|
203
175
|
- lib/coradoc/html/input/converters/pre.rb
|
|
204
176
|
- lib/coradoc/html/input/converters/q.rb
|
|
205
177
|
- lib/coradoc/html/input/converters/strong.rb
|
|
@@ -208,7 +180,6 @@ files:
|
|
|
208
180
|
- lib/coradoc/html/input/converters/table.rb
|
|
209
181
|
- lib/coradoc/html/input/converters/td.rb
|
|
210
182
|
- lib/coradoc/html/input/converters/text.rb
|
|
211
|
-
- lib/coradoc/html/input/converters/th.rb
|
|
212
183
|
- lib/coradoc/html/input/converters/tr.rb
|
|
213
184
|
- lib/coradoc/html/input/converters/video.rb
|
|
214
185
|
- lib/coradoc/html/input/errors.rb
|
|
@@ -216,24 +187,20 @@ files:
|
|
|
216
187
|
- lib/coradoc/html/input/plugin.rb
|
|
217
188
|
- lib/coradoc/html/input/plugins/plateau.rb
|
|
218
189
|
- lib/coradoc/html/input/postprocessor.rb
|
|
190
|
+
- lib/coradoc/html/layout_renderer.rb
|
|
219
191
|
- lib/coradoc/html/output.rb
|
|
220
192
|
- lib/coradoc/html/renderer.rb
|
|
193
|
+
- lib/coradoc/html/section_numberable.rb
|
|
221
194
|
- lib/coradoc/html/spa.rb
|
|
222
195
|
- lib/coradoc/html/static.rb
|
|
196
|
+
- lib/coradoc/html/template_caching.rb
|
|
223
197
|
- lib/coradoc/html/template_config.rb
|
|
224
198
|
- lib/coradoc/html/template_helpers.rb
|
|
225
199
|
- lib/coradoc/html/template_locator.rb
|
|
226
200
|
- lib/coradoc/html/theme.rb
|
|
227
|
-
- lib/coradoc/html/
|
|
228
|
-
- lib/coradoc/html/
|
|
229
|
-
- lib/coradoc/html/
|
|
230
|
-
- lib/coradoc/html/theme/modern/css_generator.rb
|
|
231
|
-
- lib/coradoc/html/theme/modern/javascript_generator.rb
|
|
232
|
-
- lib/coradoc/html/theme/modern/serializers/document_serializer.rb
|
|
233
|
-
- lib/coradoc/html/theme/modern/tailwind_config_builder.rb
|
|
234
|
-
- lib/coradoc/html/theme/modern/vue_template_generator.rb
|
|
235
|
-
- lib/coradoc/html/theme/modern_renderer.rb
|
|
236
|
-
- lib/coradoc/html/theme/registry.rb
|
|
201
|
+
- lib/coradoc/html/title_text.rb
|
|
202
|
+
- lib/coradoc/html/toc_builder.rb
|
|
203
|
+
- lib/coradoc/html/toc_serializer.rb
|
|
237
204
|
- lib/coradoc/html/transform/from_core_model.rb
|
|
238
205
|
- lib/coradoc/html/transform/to_core_model.rb
|
|
239
206
|
- lib/coradoc/html/version.rb
|
|
@@ -244,6 +211,7 @@ metadata:
|
|
|
244
211
|
homepage_uri: https://github.com/metanorma/coradoc
|
|
245
212
|
source_code_uri: https://github.com/metanorma/coradoc
|
|
246
213
|
changelog_uri: https://github.com/metanorma/coradoc/releases
|
|
214
|
+
rubygems_mfa_required: 'true'
|
|
247
215
|
rdoc_options: []
|
|
248
216
|
require_paths:
|
|
249
217
|
- lib
|
|
@@ -251,7 +219,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
251
219
|
requirements:
|
|
252
220
|
- - ">="
|
|
253
221
|
- !ruby/object:Gem::Version
|
|
254
|
-
version: 3.
|
|
222
|
+
version: 3.3.0
|
|
255
223
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
256
224
|
requirements:
|
|
257
225
|
- - ">="
|
data/lib/coradoc/html/base.rb
DELETED
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Coradoc
|
|
4
|
-
module Html
|
|
5
|
-
# Base module for HTML processing utilities
|
|
6
|
-
module Base
|
|
7
|
-
class << self
|
|
8
|
-
# Convert content to HTML, handling various input types
|
|
9
|
-
def convert_content(content, state = {})
|
|
10
|
-
return '' if content.nil?
|
|
11
|
-
|
|
12
|
-
case content
|
|
13
|
-
when String
|
|
14
|
-
return '' if content.empty?
|
|
15
|
-
|
|
16
|
-
escape_html(content)
|
|
17
|
-
when Array
|
|
18
|
-
return '' if content.empty?
|
|
19
|
-
|
|
20
|
-
content.map { |item| convert_content(item, state) }.join
|
|
21
|
-
else
|
|
22
|
-
# If content responds to a converter, use it
|
|
23
|
-
converter = find_converter(content.class)
|
|
24
|
-
if converter
|
|
25
|
-
converter.to_html(content, state)
|
|
26
|
-
else
|
|
27
|
-
content.to_s
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
# Find the appropriate converter for a model class
|
|
33
|
-
def find_converter(model_class)
|
|
34
|
-
return nil unless defined?(Coradoc::Html::Converters)
|
|
35
|
-
|
|
36
|
-
converter_name = model_class.name.split('::').last
|
|
37
|
-
|
|
38
|
-
# Use const_get on the Converters module to trigger autoload
|
|
39
|
-
begin
|
|
40
|
-
klass = Coradoc::Html::Converters.const_get(converter_name, false)
|
|
41
|
-
# Return nil if this is the Base class itself (not a real converter)
|
|
42
|
-
# or if it doesn't inherit from Converters::Base
|
|
43
|
-
return nil if klass == Coradoc::Html::Converters::Base
|
|
44
|
-
return nil unless klass <= Coradoc::Html::Converters::Base
|
|
45
|
-
|
|
46
|
-
klass
|
|
47
|
-
rescue NameError
|
|
48
|
-
nil
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# Escape HTML special characters
|
|
53
|
-
def escape_html(text)
|
|
54
|
-
return '' if text.nil?
|
|
55
|
-
return text unless text.is_a?(String)
|
|
56
|
-
|
|
57
|
-
text
|
|
58
|
-
.gsub('&', '&')
|
|
59
|
-
.gsub('<', '<')
|
|
60
|
-
.gsub('>', '>')
|
|
61
|
-
.gsub('"', '"')
|
|
62
|
-
.gsub("'", ''')
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
# Unescape HTML entities
|
|
66
|
-
def unescape_html(text)
|
|
67
|
-
return '' if text.nil?
|
|
68
|
-
return text unless text.is_a?(String)
|
|
69
|
-
|
|
70
|
-
text
|
|
71
|
-
.gsub('&', '&')
|
|
72
|
-
.gsub('<', '<')
|
|
73
|
-
.gsub('>', '>')
|
|
74
|
-
.gsub('"', '"')
|
|
75
|
-
.gsub(''', "'")
|
|
76
|
-
.gsub(''', "'")
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
# Build HTML element with attributes
|
|
80
|
-
def build_element(tag, content = nil, attributes = {})
|
|
81
|
-
attrs = build_attributes(attributes)
|
|
82
|
-
attr_string = attrs.empty? ? '' : " #{attrs}"
|
|
83
|
-
|
|
84
|
-
# Handle empty content (String, Array, or nil)
|
|
85
|
-
content_empty = case content
|
|
86
|
-
when nil, String, Array
|
|
87
|
-
content.nil? || content.empty?
|
|
88
|
-
else
|
|
89
|
-
false
|
|
90
|
-
end
|
|
91
|
-
|
|
92
|
-
if content_empty
|
|
93
|
-
# Self-closing for void elements
|
|
94
|
-
if void_element?(tag)
|
|
95
|
-
"<#{tag}#{attr_string}>"
|
|
96
|
-
else
|
|
97
|
-
"<#{tag}#{attr_string}></#{tag}>"
|
|
98
|
-
end
|
|
99
|
-
else
|
|
100
|
-
"<#{tag}#{attr_string}>#{content}</#{tag}>"
|
|
101
|
-
end
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
# Build HTML attributes string
|
|
105
|
-
def build_attributes(attributes)
|
|
106
|
-
return '' if attributes.nil? || attributes.empty?
|
|
107
|
-
|
|
108
|
-
attributes.map do |key, value|
|
|
109
|
-
next if value.nil?
|
|
110
|
-
|
|
111
|
-
escaped_value = escape_html(value.to_s)
|
|
112
|
-
%(#{key}="#{escaped_value}")
|
|
113
|
-
end.compact.join(' ')
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
# Check if element is a void element (self-closing)
|
|
117
|
-
def void_element?(tag)
|
|
118
|
-
%w[area base br col embed hr img input link meta param source track wbr].include?(tag.to_s)
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
# Extract attributes from a CoreModel
|
|
122
|
-
#
|
|
123
|
-
# @param model [Coradoc::CoreModel::Base] Model to extract attributes from
|
|
124
|
-
# @return [Hash] Attributes hash
|
|
125
|
-
def extract_attributes(model)
|
|
126
|
-
attrs = {}
|
|
127
|
-
|
|
128
|
-
attrs[:id] = model.id if model.id
|
|
129
|
-
attrs[:title] = model.title if model.title
|
|
130
|
-
|
|
131
|
-
if model.is_a?(Coradoc::CoreModel::StructuralElement) && model.metadata
|
|
132
|
-
attrs[:class] = model.metadata[:class] || model.metadata[:role]
|
|
133
|
-
attrs.merge!(model.metadata.except(:class, :role))
|
|
134
|
-
end
|
|
135
|
-
|
|
136
|
-
attrs
|
|
137
|
-
end
|
|
138
|
-
|
|
139
|
-
# Wrap content with line breaks if needed
|
|
140
|
-
def wrap_lines(content)
|
|
141
|
-
return content unless content.is_a?(String)
|
|
142
|
-
|
|
143
|
-
content.split("\n").join("<br>\n")
|
|
144
|
-
end
|
|
145
|
-
|
|
146
|
-
# Process children of a node (common operation)
|
|
147
|
-
def treat_children(children, state = {})
|
|
148
|
-
return [] if children.nil? || children.empty?
|
|
149
|
-
|
|
150
|
-
Array(children).map do |child|
|
|
151
|
-
convert_content(child, state)
|
|
152
|
-
end
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
end
|
|
157
|
-
end
|