coradoc-html 1.1.18 → 1.1.20
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/cleaner.rb +128 -0
- data/lib/coradoc/html/converters/a.rb +77 -0
- data/lib/coradoc/html/converters/aside.rb +20 -0
- data/lib/coradoc/html/converters/audio.rb +19 -0
- data/lib/coradoc/html/converters/base.rb +98 -0
- data/lib/coradoc/html/converters/blockquote.rb +25 -0
- data/lib/coradoc/html/converters/br.rb +17 -0
- data/lib/coradoc/html/converters/bypass.rb +82 -0
- data/lib/coradoc/html/converters/code.rb +25 -0
- data/lib/coradoc/html/converters/div.rb +23 -0
- data/lib/coradoc/html/converters/dl.rb +82 -0
- data/lib/coradoc/html/converters/drop.rb +26 -0
- data/lib/coradoc/html/converters/em.rb +23 -0
- data/lib/coradoc/html/converters/figure.rb +33 -0
- data/lib/coradoc/html/converters/h.rb +58 -0
- data/lib/coradoc/html/converters/head.rb +29 -0
- data/lib/coradoc/html/converters/hr.rb +17 -0
- data/lib/coradoc/html/converters/img.rb +103 -0
- data/lib/coradoc/html/converters/li.rb +35 -0
- data/lib/coradoc/html/converters/mark.rb +21 -0
- data/lib/coradoc/html/converters/markup.rb +93 -0
- data/lib/coradoc/html/converters/math.rb +37 -0
- data/lib/coradoc/html/converters/media_base.rb +48 -0
- data/lib/coradoc/html/converters/ol.rb +42 -0
- data/lib/coradoc/html/converters/p.rb +64 -0
- data/lib/coradoc/html/converters/pass_through.rb +15 -0
- data/lib/coradoc/html/converters/positional_formatting.rb +35 -0
- data/lib/coradoc/html/converters/pre.rb +57 -0
- data/lib/coradoc/html/converters/q.rb +25 -0
- data/lib/coradoc/html/converters/strong.rb +22 -0
- data/lib/coradoc/html/converters/sub.rb +20 -0
- data/lib/coradoc/html/converters/sup.rb +20 -0
- data/lib/coradoc/html/converters/table.rb +64 -0
- data/lib/coradoc/html/converters/td.rb +42 -0
- data/lib/coradoc/html/converters/text.rb +66 -0
- data/lib/coradoc/html/converters/tr.rb +27 -0
- data/lib/coradoc/html/converters/video.rb +27 -0
- data/lib/coradoc/html/converters.rb +104 -0
- data/lib/coradoc/html/drop/definition_item_drop.rb +17 -0
- data/lib/coradoc/html/drop/drop_factory.rb +14 -22
- data/lib/coradoc/html/drop/inline_element_drop.rb +3 -5
- data/lib/coradoc/html/drop/raw_inline_element_drop.rb +30 -0
- data/lib/coradoc/html/drop.rb +30 -8
- data/lib/coradoc/html/errors.rb +11 -0
- data/lib/coradoc/html/html_converter.rb +78 -0
- data/lib/coradoc/html/input_config.rb +66 -0
- data/lib/coradoc/html/plugin.rb +90 -0
- data/lib/coradoc/html/plugins/plateau.rb +212 -0
- data/lib/coradoc/html/postprocessor.rb +19 -0
- data/lib/coradoc/html/spa.rb +0 -2
- data/lib/coradoc/html/static.rb +0 -2
- data/lib/coradoc/html/tag_mapping.rb +3 -1
- data/lib/coradoc/html/transform/from_core_model.rb +2 -2
- data/lib/coradoc/html/transform/to_core_model.rb +3 -3
- data/lib/coradoc/html/version.rb +1 -1
- data/lib/coradoc/html.rb +30 -5
- metadata +46 -47
- data/lib/coradoc/html/input/cleaner.rb +0 -134
- data/lib/coradoc/html/input/config.rb +0 -80
- data/lib/coradoc/html/input/converters/a.rb +0 -79
- data/lib/coradoc/html/input/converters/aside.rb +0 -22
- data/lib/coradoc/html/input/converters/audio.rb +0 -21
- data/lib/coradoc/html/input/converters/base.rb +0 -118
- data/lib/coradoc/html/input/converters/blockquote.rb +0 -27
- data/lib/coradoc/html/input/converters/br.rb +0 -19
- data/lib/coradoc/html/input/converters/bypass.rb +0 -84
- data/lib/coradoc/html/input/converters/code.rb +0 -27
- data/lib/coradoc/html/input/converters/div.rb +0 -25
- data/lib/coradoc/html/input/converters/dl.rb +0 -84
- data/lib/coradoc/html/input/converters/drop.rb +0 -28
- data/lib/coradoc/html/input/converters/em.rb +0 -25
- data/lib/coradoc/html/input/converters/figure.rb +0 -35
- data/lib/coradoc/html/input/converters/h.rb +0 -74
- data/lib/coradoc/html/input/converters/head.rb +0 -31
- data/lib/coradoc/html/input/converters/hr.rb +0 -19
- data/lib/coradoc/html/input/converters/img.rb +0 -105
- data/lib/coradoc/html/input/converters/li.rb +0 -37
- data/lib/coradoc/html/input/converters/mark.rb +0 -23
- data/lib/coradoc/html/input/converters/markup.rb +0 -103
- data/lib/coradoc/html/input/converters/math.rb +0 -39
- data/lib/coradoc/html/input/converters/media_base.rb +0 -50
- data/lib/coradoc/html/input/converters/ol.rb +0 -44
- data/lib/coradoc/html/input/converters/p.rb +0 -90
- data/lib/coradoc/html/input/converters/pass_through.rb +0 -17
- data/lib/coradoc/html/input/converters/positional_formatting.rb +0 -37
- data/lib/coradoc/html/input/converters/pre.rb +0 -59
- data/lib/coradoc/html/input/converters/q.rb +0 -27
- data/lib/coradoc/html/input/converters/strong.rb +0 -24
- data/lib/coradoc/html/input/converters/sub.rb +0 -22
- data/lib/coradoc/html/input/converters/sup.rb +0 -22
- data/lib/coradoc/html/input/converters/table.rb +0 -66
- data/lib/coradoc/html/input/converters/td.rb +0 -44
- data/lib/coradoc/html/input/converters/text.rb +0 -68
- data/lib/coradoc/html/input/converters/tr.rb +0 -29
- data/lib/coradoc/html/input/converters/video.rb +0 -29
- data/lib/coradoc/html/input/converters.rb +0 -107
- data/lib/coradoc/html/input/errors.rb +0 -22
- data/lib/coradoc/html/input/html_converter.rb +0 -98
- data/lib/coradoc/html/input/plugin.rb +0 -120
- data/lib/coradoc/html/input/plugins/plateau.rb +0 -214
- data/lib/coradoc/html/input/postprocessor.rb +0 -25
- data/lib/coradoc/html/input.rb +0 -86
- data/lib/coradoc/html/output.rb +0 -89
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Coradoc
|
|
4
|
-
module Input
|
|
5
|
-
module Html
|
|
6
|
-
# Postprocessor hook for CoreModel tree transformations after HTML parsing.
|
|
7
|
-
#
|
|
8
|
-
# Override or extend to apply post-parse cleanup. The default
|
|
9
|
-
# implementation returns the tree unchanged.
|
|
10
|
-
class Postprocessor
|
|
11
|
-
def self.process(coradoc)
|
|
12
|
-
new(coradoc).process
|
|
13
|
-
end
|
|
14
|
-
|
|
15
|
-
def initialize(coradoc)
|
|
16
|
-
@tree = coradoc
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def process
|
|
20
|
-
@tree
|
|
21
|
-
end
|
|
22
|
-
end
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
data/lib/coradoc/html/input.rb
DELETED
|
@@ -1,86 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'digest'
|
|
4
|
-
require 'nokogiri'
|
|
5
|
-
require 'coradoc'
|
|
6
|
-
|
|
7
|
-
module Coradoc
|
|
8
|
-
module Input
|
|
9
|
-
module Html
|
|
10
|
-
# Autoload all components
|
|
11
|
-
autoload :Errors, 'coradoc/html/input/errors'
|
|
12
|
-
autoload :Cleaner, 'coradoc/html/input/cleaner'
|
|
13
|
-
autoload :Config, 'coradoc/html/input/config'
|
|
14
|
-
autoload :Plugin, 'coradoc/html/input/plugin'
|
|
15
|
-
autoload :Postprocessor, 'coradoc/html/input/postprocessor'
|
|
16
|
-
autoload :Converters, 'coradoc/html/input/converters'
|
|
17
|
-
autoload :HtmlConverter, 'coradoc/html/input/html_converter'
|
|
18
|
-
|
|
19
|
-
def self.convert(input, options = {})
|
|
20
|
-
HtmlConverter.to_core_model(input, options)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def self.to_coradoc(input, options = {})
|
|
24
|
-
HtmlConverter.to_core_model(input, options)
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
def self.config
|
|
28
|
-
@config ||= Config.new
|
|
29
|
-
yield @config if block_given?
|
|
30
|
-
@config
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def self.cleaner
|
|
34
|
-
@cleaner ||= Cleaner.new
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def self.processor_id
|
|
38
|
-
:html
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
extend Coradoc::Html::FormatDetection
|
|
42
|
-
|
|
43
|
-
def self.processor_match?(filename)
|
|
44
|
-
html_extension?(filename)
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
def self.processor_execute(input, options = {})
|
|
48
|
-
to_coradoc(input, options)
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
def self.processor_postprocess(data, options)
|
|
52
|
-
if options[:output_processor] == :adoc
|
|
53
|
-
data.transform_values { |v| clean_output(v, options) }
|
|
54
|
-
else
|
|
55
|
-
data
|
|
56
|
-
end
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def self.clean_output(result, options = {})
|
|
60
|
-
config.with(options) do
|
|
61
|
-
plugin_instances = HtmlConverter.prepare_plugin_instances(options)
|
|
62
|
-
|
|
63
|
-
result = HtmlConverter.track_time('Cleaning up the result') do
|
|
64
|
-
cleaner.tidy(result)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
plugin_instances.each do |plugin|
|
|
68
|
-
plugin.output_string = result
|
|
69
|
-
HtmlConverter.track_time("Postprocessing output string with #{plugin.name} plugin") do
|
|
70
|
-
plugin.postprocess_output_string
|
|
71
|
-
end
|
|
72
|
-
result = plugin.output_string
|
|
73
|
-
end
|
|
74
|
-
|
|
75
|
-
result
|
|
76
|
-
end
|
|
77
|
-
end
|
|
78
|
-
|
|
79
|
-
Coradoc::Input.define(self)
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
module Html
|
|
84
|
-
Input = Coradoc::Input::Html
|
|
85
|
-
end
|
|
86
|
-
end
|
data/lib/coradoc/html/output.rb
DELETED
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'coradoc'
|
|
4
|
-
|
|
5
|
-
module Coradoc
|
|
6
|
-
module Output
|
|
7
|
-
# Static HTML output processor
|
|
8
|
-
#
|
|
9
|
-
# Generates static HTML documents from CoreModel using the classic
|
|
10
|
-
# rendering approach without JavaScript frameworks.
|
|
11
|
-
#
|
|
12
|
-
# @example Using the processor directly
|
|
13
|
-
# html = Coradoc::Output::HtmlStatic.processor_execute({ "doc.html" => document }, {})
|
|
14
|
-
#
|
|
15
|
-
# @example Using through Output module
|
|
16
|
-
# result = Coradoc::Output.process(document, format: :html_static)
|
|
17
|
-
#
|
|
18
|
-
class HtmlStatic
|
|
19
|
-
extend Coradoc::Html::FormatDetection
|
|
20
|
-
|
|
21
|
-
class << self
|
|
22
|
-
def processor_id
|
|
23
|
-
:html_static
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def processor_match?(filename)
|
|
27
|
-
html_extension?(filename)
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
# Process documents to static HTML
|
|
31
|
-
# @param input [Hash<String, Object>] mapping of filenames to documents
|
|
32
|
-
# @param options [Hash] processing options
|
|
33
|
-
# @return [Hash<String, String>] mapping of filenames to HTML output
|
|
34
|
-
def processor_execute(input, options = {})
|
|
35
|
-
result = {}
|
|
36
|
-
input.each do |filename, document|
|
|
37
|
-
html = Coradoc::Html::Static.convert(document, options)
|
|
38
|
-
result[filename] = html
|
|
39
|
-
end
|
|
40
|
-
result
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
# SPA (Single Page Application) HTML output processor
|
|
46
|
-
#
|
|
47
|
-
# Generates modern Vue.js + Tailwind CSS HTML documents from CoreModel.
|
|
48
|
-
#
|
|
49
|
-
# @example Using the processor directly
|
|
50
|
-
# html = Coradoc::Output::HtmlSpa.processor_execute({ "doc.html" => document }, {})
|
|
51
|
-
#
|
|
52
|
-
# @example Using through Output module
|
|
53
|
-
# result = Coradoc::Output.process(document, format: :html_spa)
|
|
54
|
-
#
|
|
55
|
-
class HtmlSpa
|
|
56
|
-
extend Coradoc::Html::FormatDetection
|
|
57
|
-
|
|
58
|
-
class << self
|
|
59
|
-
def processor_id
|
|
60
|
-
:html_spa
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def processor_match?(filename)
|
|
64
|
-
html_extension?(filename)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
|
-
# Process documents to SPA HTML
|
|
68
|
-
# @param input [Hash<String, Object>] mapping of filenames to documents
|
|
69
|
-
# @param options [Hash] processing options
|
|
70
|
-
# @return [Hash<String, String>] mapping of filenames to SPA HTML output
|
|
71
|
-
def processor_execute(input, options = {})
|
|
72
|
-
result = {}
|
|
73
|
-
input.each do |filename, document|
|
|
74
|
-
html = Coradoc::Html::Spa.convert(document, options)
|
|
75
|
-
result[filename] = html
|
|
76
|
-
end
|
|
77
|
-
result
|
|
78
|
-
end
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# Alias for HtmlSpa
|
|
83
|
-
Spa = HtmlSpa
|
|
84
|
-
end
|
|
85
|
-
end
|
|
86
|
-
|
|
87
|
-
# Register processors with the Output module
|
|
88
|
-
Coradoc::Output.define(Coradoc::Output::HtmlStatic)
|
|
89
|
-
Coradoc::Output.define(Coradoc::Output::HtmlSpa)
|