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.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/lib/coradoc/html/cleaner.rb +128 -0
  3. data/lib/coradoc/html/converters/a.rb +77 -0
  4. data/lib/coradoc/html/converters/aside.rb +20 -0
  5. data/lib/coradoc/html/converters/audio.rb +19 -0
  6. data/lib/coradoc/html/converters/base.rb +98 -0
  7. data/lib/coradoc/html/converters/blockquote.rb +25 -0
  8. data/lib/coradoc/html/converters/br.rb +17 -0
  9. data/lib/coradoc/html/converters/bypass.rb +82 -0
  10. data/lib/coradoc/html/converters/code.rb +25 -0
  11. data/lib/coradoc/html/converters/div.rb +23 -0
  12. data/lib/coradoc/html/converters/dl.rb +82 -0
  13. data/lib/coradoc/html/converters/drop.rb +26 -0
  14. data/lib/coradoc/html/converters/em.rb +23 -0
  15. data/lib/coradoc/html/converters/figure.rb +33 -0
  16. data/lib/coradoc/html/converters/h.rb +58 -0
  17. data/lib/coradoc/html/converters/head.rb +29 -0
  18. data/lib/coradoc/html/converters/hr.rb +17 -0
  19. data/lib/coradoc/html/converters/img.rb +103 -0
  20. data/lib/coradoc/html/converters/li.rb +35 -0
  21. data/lib/coradoc/html/converters/mark.rb +21 -0
  22. data/lib/coradoc/html/converters/markup.rb +93 -0
  23. data/lib/coradoc/html/converters/math.rb +37 -0
  24. data/lib/coradoc/html/converters/media_base.rb +48 -0
  25. data/lib/coradoc/html/converters/ol.rb +42 -0
  26. data/lib/coradoc/html/converters/p.rb +64 -0
  27. data/lib/coradoc/html/converters/pass_through.rb +15 -0
  28. data/lib/coradoc/html/converters/positional_formatting.rb +35 -0
  29. data/lib/coradoc/html/converters/pre.rb +57 -0
  30. data/lib/coradoc/html/converters/q.rb +25 -0
  31. data/lib/coradoc/html/converters/strong.rb +22 -0
  32. data/lib/coradoc/html/converters/sub.rb +20 -0
  33. data/lib/coradoc/html/converters/sup.rb +20 -0
  34. data/lib/coradoc/html/converters/table.rb +64 -0
  35. data/lib/coradoc/html/converters/td.rb +42 -0
  36. data/lib/coradoc/html/converters/text.rb +66 -0
  37. data/lib/coradoc/html/converters/tr.rb +27 -0
  38. data/lib/coradoc/html/converters/video.rb +27 -0
  39. data/lib/coradoc/html/converters.rb +104 -0
  40. data/lib/coradoc/html/drop/definition_item_drop.rb +17 -0
  41. data/lib/coradoc/html/drop/drop_factory.rb +14 -22
  42. data/lib/coradoc/html/drop/inline_element_drop.rb +3 -5
  43. data/lib/coradoc/html/drop/raw_inline_element_drop.rb +30 -0
  44. data/lib/coradoc/html/drop.rb +30 -8
  45. data/lib/coradoc/html/errors.rb +11 -0
  46. data/lib/coradoc/html/html_converter.rb +78 -0
  47. data/lib/coradoc/html/input_config.rb +66 -0
  48. data/lib/coradoc/html/plugin.rb +90 -0
  49. data/lib/coradoc/html/plugins/plateau.rb +212 -0
  50. data/lib/coradoc/html/postprocessor.rb +19 -0
  51. data/lib/coradoc/html/spa.rb +0 -2
  52. data/lib/coradoc/html/static.rb +0 -2
  53. data/lib/coradoc/html/tag_mapping.rb +3 -1
  54. data/lib/coradoc/html/transform/from_core_model.rb +2 -2
  55. data/lib/coradoc/html/transform/to_core_model.rb +3 -3
  56. data/lib/coradoc/html/version.rb +1 -1
  57. data/lib/coradoc/html.rb +30 -5
  58. metadata +46 -47
  59. data/lib/coradoc/html/input/cleaner.rb +0 -134
  60. data/lib/coradoc/html/input/config.rb +0 -80
  61. data/lib/coradoc/html/input/converters/a.rb +0 -79
  62. data/lib/coradoc/html/input/converters/aside.rb +0 -22
  63. data/lib/coradoc/html/input/converters/audio.rb +0 -21
  64. data/lib/coradoc/html/input/converters/base.rb +0 -118
  65. data/lib/coradoc/html/input/converters/blockquote.rb +0 -27
  66. data/lib/coradoc/html/input/converters/br.rb +0 -19
  67. data/lib/coradoc/html/input/converters/bypass.rb +0 -84
  68. data/lib/coradoc/html/input/converters/code.rb +0 -27
  69. data/lib/coradoc/html/input/converters/div.rb +0 -25
  70. data/lib/coradoc/html/input/converters/dl.rb +0 -84
  71. data/lib/coradoc/html/input/converters/drop.rb +0 -28
  72. data/lib/coradoc/html/input/converters/em.rb +0 -25
  73. data/lib/coradoc/html/input/converters/figure.rb +0 -35
  74. data/lib/coradoc/html/input/converters/h.rb +0 -74
  75. data/lib/coradoc/html/input/converters/head.rb +0 -31
  76. data/lib/coradoc/html/input/converters/hr.rb +0 -19
  77. data/lib/coradoc/html/input/converters/img.rb +0 -105
  78. data/lib/coradoc/html/input/converters/li.rb +0 -37
  79. data/lib/coradoc/html/input/converters/mark.rb +0 -23
  80. data/lib/coradoc/html/input/converters/markup.rb +0 -103
  81. data/lib/coradoc/html/input/converters/math.rb +0 -39
  82. data/lib/coradoc/html/input/converters/media_base.rb +0 -50
  83. data/lib/coradoc/html/input/converters/ol.rb +0 -44
  84. data/lib/coradoc/html/input/converters/p.rb +0 -90
  85. data/lib/coradoc/html/input/converters/pass_through.rb +0 -17
  86. data/lib/coradoc/html/input/converters/positional_formatting.rb +0 -37
  87. data/lib/coradoc/html/input/converters/pre.rb +0 -59
  88. data/lib/coradoc/html/input/converters/q.rb +0 -27
  89. data/lib/coradoc/html/input/converters/strong.rb +0 -24
  90. data/lib/coradoc/html/input/converters/sub.rb +0 -22
  91. data/lib/coradoc/html/input/converters/sup.rb +0 -22
  92. data/lib/coradoc/html/input/converters/table.rb +0 -66
  93. data/lib/coradoc/html/input/converters/td.rb +0 -44
  94. data/lib/coradoc/html/input/converters/text.rb +0 -68
  95. data/lib/coradoc/html/input/converters/tr.rb +0 -29
  96. data/lib/coradoc/html/input/converters/video.rb +0 -29
  97. data/lib/coradoc/html/input/converters.rb +0 -107
  98. data/lib/coradoc/html/input/errors.rb +0 -22
  99. data/lib/coradoc/html/input/html_converter.rb +0 -98
  100. data/lib/coradoc/html/input/plugin.rb +0 -120
  101. data/lib/coradoc/html/input/plugins/plateau.rb +0 -214
  102. data/lib/coradoc/html/input/postprocessor.rb +0 -25
  103. data/lib/coradoc/html/input.rb +0 -86
  104. 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
@@ -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
@@ -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)