muwu 3.2.0 → 4.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 +4 -4
- data/lib/muwu/cli/help/summary +1 -1
- data/lib/muwu/cli/help/view +2 -2
- data/lib/muwu/controller/controller_interaction.rb +10 -4
- data/lib/muwu/default/default.rb +2 -8
- data/lib/muwu/helper/html_href_helper.rb +77 -77
- data/lib/muwu/helper/outline_helper.rb +22 -24
- data/lib/muwu/helper/regexp_lib.rb +26 -51
- data/lib/muwu/helper/sanitizer_helper.rb +5 -5
- data/lib/muwu/manifest/manifest.rb +52 -70
- data/lib/muwu/manifest_task/document_html.rb +16 -22
- data/lib/muwu/manifest_task/text.rb +13 -13
- data/lib/muwu/manifest_task/{text_item.rb → topic.rb} +9 -9
- data/lib/muwu/manifest_task_builder/text_builder.rb +24 -24
- data/lib/muwu/manifest_task_builder/{text_item_builder.rb → topic_builder.rb} +48 -74
- data/lib/muwu/project/project.rb +0 -8
- data/lib/muwu/project_builder/assets/config/css/base/html_elements.scss +57 -62
- data/lib/muwu/project_builder/assets/config/css/base/index.scss +3 -2
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_contents.scss +35 -57
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_metadata.scss +2 -14
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_navigator.scss +6 -11
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_subcontents.scss +35 -57
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_text.scss +2 -48
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_title.scss +18 -23
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_topic.scss +38 -0
- data/lib/muwu/project_builder/assets/config/css/colors/dark.scss +33 -31
- data/lib/muwu/project_builder/assets/config/css/colors/index.scss +2 -1
- data/lib/muwu/project_builder/assets/config/css/colors/light.scss +33 -33
- data/lib/muwu/project_builder/project_validator.rb +7 -7
- data/lib/muwu/project_exception/{lynx_not_available.rb → no_html_viewer_configured.rb} +2 -2
- data/lib/muwu/project_exception/{text_source_file_not_found.rb → topic_source_file_not_found.rb} +6 -7
- data/lib/muwu/project_options/project_options.rb +4 -1
- data/lib/muwu/project_options_builder/project_option_validator_key.rb +17 -19
- data/lib/muwu/project_options_builder/project_option_validator_value.rb +42 -59
- data/lib/muwu/render_concat/render_concat.rb +22 -22
- data/lib/muwu/render_html_partial/js_library/navigation.js +1 -1
- data/lib/muwu/render_html_partial/render_contents.rb +139 -139
- data/lib/muwu/render_html_partial/render_document_html.rb +2 -2
- data/lib/muwu/render_html_partial/render_metadata.rb +25 -37
- data/lib/muwu/render_html_partial/render_navigator.rb +39 -39
- data/lib/muwu/render_html_partial/render_subcontents.rb +142 -143
- data/lib/muwu/render_html_partial/render_text.rb +11 -11
- data/lib/muwu/render_html_partial/render_title.rb +21 -21
- data/lib/muwu/render_html_partial/{render_text_item.rb → render_topic.rb} +62 -35
- data/lib/muwu/render_html_partial_builder/render_contents_builder.rb +17 -23
- data/lib/muwu/render_html_partial_builder/render_subcontents_builder.rb +3 -9
- data/lib/muwu/render_html_partial_builder/render_text_builder.rb +11 -11
- data/lib/muwu/render_html_partial_builder/render_topic_builder.rb +281 -0
- data/lib/muwu/render_inspector/render_inspector.rb +58 -58
- data/lib/muwu/viewer/viewer.rb +2 -2
- data/lib/muwu.rb +2 -7
- metadata +30 -78
- data/lib/muwu/project_builder/assets/config/css/base/mixin_text_section_heading.scss +0 -24
- data/lib/muwu/render_html/render_markup_to_html.rb +0 -87
- data/lib/muwu/render_html_partial_builder/render_text_item_builder.rb +0 -274
- data/lib/muwu/var/deflistdiv.rb +0 -239
|
@@ -4,7 +4,6 @@ module Muwu
|
|
|
4
4
|
|
|
5
5
|
require 'iso-639'
|
|
6
6
|
|
|
7
|
-
|
|
8
7
|
include Muwu
|
|
9
8
|
include Helper
|
|
10
9
|
|
|
@@ -25,7 +24,6 @@ module Muwu
|
|
|
25
24
|
end
|
|
26
25
|
|
|
27
26
|
|
|
28
|
-
|
|
29
27
|
public
|
|
30
28
|
|
|
31
29
|
|
|
@@ -89,40 +87,26 @@ module Muwu
|
|
|
89
87
|
end
|
|
90
88
|
|
|
91
89
|
|
|
92
|
-
|
|
93
90
|
private
|
|
94
91
|
|
|
95
92
|
|
|
96
|
-
def
|
|
97
|
-
|
|
98
|
-
when false, true
|
|
99
|
-
return @value_provided
|
|
100
|
-
when nil, '', 'nil'
|
|
101
|
-
return nil
|
|
102
|
-
else
|
|
103
|
-
@project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided)
|
|
104
|
-
return nil
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
def validate_option_contents_section_numbers_receive_link
|
|
110
|
-
return validate_option_boolean
|
|
93
|
+
def validate_option_generate_navigators_automatically
|
|
94
|
+
return validation_for_boolean
|
|
111
95
|
end
|
|
112
96
|
|
|
113
97
|
|
|
114
|
-
def
|
|
115
|
-
return
|
|
98
|
+
def validate_option_generate_subcontents_automatically
|
|
99
|
+
return validation_for_boolean
|
|
116
100
|
end
|
|
117
101
|
|
|
118
102
|
|
|
119
|
-
def
|
|
120
|
-
return
|
|
103
|
+
def validate_option_generate_topic_inner_identifiers
|
|
104
|
+
return validation_for_boolean
|
|
121
105
|
end
|
|
122
106
|
|
|
123
107
|
|
|
124
108
|
def validate_option_html_head_includes_metadata_tags
|
|
125
|
-
return
|
|
109
|
+
return validation_for_boolean
|
|
126
110
|
end
|
|
127
111
|
|
|
128
112
|
|
|
@@ -143,26 +127,12 @@ module Muwu
|
|
|
143
127
|
|
|
144
128
|
|
|
145
129
|
def validate_option_html_uses_javascript_navigation
|
|
146
|
-
return
|
|
130
|
+
return validation_for_boolean
|
|
147
131
|
end
|
|
148
132
|
|
|
149
133
|
|
|
150
134
|
def validate_option_markdown_allows_raw_html
|
|
151
|
-
return
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
def validate_option_markdown_renderer
|
|
156
|
-
value = value_provided_as_string
|
|
157
|
-
case value
|
|
158
|
-
when 'commonmarker'
|
|
159
|
-
return value
|
|
160
|
-
when 'motion-markdown-it', 'motion_markdown_it'
|
|
161
|
-
return 'motion-markdown-it'
|
|
162
|
-
else
|
|
163
|
-
@project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided)
|
|
164
|
-
return nil
|
|
165
|
-
end
|
|
135
|
+
return validation_for_boolean
|
|
166
136
|
end
|
|
167
137
|
|
|
168
138
|
|
|
@@ -190,31 +160,18 @@ module Muwu
|
|
|
190
160
|
end
|
|
191
161
|
|
|
192
162
|
|
|
193
|
-
def validate_option_output_file_basename
|
|
194
|
-
case @value_provided
|
|
195
|
-
when String
|
|
196
|
-
return SanitizerHelper.sanitize_destination_file_basename(File.basename(@value_provided))
|
|
197
|
-
when nil
|
|
198
|
-
return nil
|
|
199
|
-
else
|
|
200
|
-
@project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided)
|
|
201
|
-
return nil
|
|
202
|
-
end
|
|
203
|
-
end
|
|
204
|
-
|
|
205
|
-
|
|
206
163
|
def validate_option_output_file_css_basename
|
|
207
|
-
return
|
|
164
|
+
return validation_for_output_file_basename
|
|
208
165
|
end
|
|
209
166
|
|
|
210
167
|
|
|
211
168
|
def validate_option_output_file_html_basename
|
|
212
|
-
return
|
|
169
|
+
return validation_for_output_file_basename
|
|
213
170
|
end
|
|
214
171
|
|
|
215
172
|
|
|
216
173
|
def validate_option_output_file_js_basename
|
|
217
|
-
return
|
|
174
|
+
return validation_for_output_file_basename
|
|
218
175
|
end
|
|
219
176
|
|
|
220
177
|
|
|
@@ -243,7 +200,7 @@ module Muwu
|
|
|
243
200
|
|
|
244
201
|
|
|
245
202
|
def validate_option_render_punctuation_smart
|
|
246
|
-
return
|
|
203
|
+
return validation_for_boolean
|
|
247
204
|
end
|
|
248
205
|
|
|
249
206
|
|
|
@@ -266,7 +223,7 @@ module Muwu
|
|
|
266
223
|
|
|
267
224
|
|
|
268
225
|
def validate_option_render_section_numbers
|
|
269
|
-
return
|
|
226
|
+
return validation_for_boolean
|
|
270
227
|
end
|
|
271
228
|
|
|
272
229
|
|
|
@@ -298,7 +255,7 @@ module Muwu
|
|
|
298
255
|
|
|
299
256
|
|
|
300
257
|
def validate_option_render_punctuation_smart
|
|
301
|
-
return
|
|
258
|
+
return validation_for_boolean
|
|
302
259
|
end
|
|
303
260
|
|
|
304
261
|
|
|
@@ -308,7 +265,33 @@ module Muwu
|
|
|
308
265
|
|
|
309
266
|
|
|
310
267
|
def validate_option_warning_if_parent_heading_lacks_source
|
|
311
|
-
return
|
|
268
|
+
return validation_for_boolean
|
|
269
|
+
end
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
def validation_for_boolean
|
|
273
|
+
case @value_provided
|
|
274
|
+
when false, true
|
|
275
|
+
return @value_provided
|
|
276
|
+
when nil, '', 'nil'
|
|
277
|
+
return nil
|
|
278
|
+
else
|
|
279
|
+
@project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided)
|
|
280
|
+
return nil
|
|
281
|
+
end
|
|
282
|
+
end
|
|
283
|
+
|
|
284
|
+
|
|
285
|
+
def validation_for_output_file_basename
|
|
286
|
+
case @value_provided
|
|
287
|
+
when String
|
|
288
|
+
return SanitizerHelper.sanitize_destination_file_basename(File.basename(@value_provided))
|
|
289
|
+
when nil
|
|
290
|
+
return nil
|
|
291
|
+
else
|
|
292
|
+
@project.exceptions_add ProjectException::OptionValueNotUnderstood.new(@key_validated, @value_provided)
|
|
293
|
+
return nil
|
|
294
|
+
end
|
|
312
295
|
end
|
|
313
296
|
|
|
314
297
|
|
|
@@ -18,49 +18,49 @@ module Muwu
|
|
|
18
18
|
puts "- Writing `#{@output_filename}`"
|
|
19
19
|
File.open(destination, 'w') do |f|
|
|
20
20
|
@manifest.text_blocks.each do |text|
|
|
21
|
-
text.sections.each do |
|
|
22
|
-
|
|
21
|
+
text.sections.each do |topic|
|
|
22
|
+
render_topic(f, topic)
|
|
23
23
|
end
|
|
24
24
|
end
|
|
25
25
|
end
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
|
|
29
|
-
def
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
29
|
+
def render_topic(f, topic)
|
|
30
|
+
render_topic_head(f, topic)
|
|
31
|
+
render_topic_source(f, topic)
|
|
32
|
+
render_topic_sections(f, topic)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
|
|
36
|
-
def
|
|
37
|
-
f.puts '# ' +
|
|
38
|
-
if heading_origin_is_basename_or_outline(
|
|
39
|
-
f.puts '# ' +
|
|
36
|
+
def render_topic_head(f, topic)
|
|
37
|
+
f.puts '# ' + topic.numbering.join('.')
|
|
38
|
+
if heading_origin_is_basename_or_outline(topic)
|
|
39
|
+
f.puts '# ' + topic.heading
|
|
40
40
|
f.puts "\n"
|
|
41
41
|
end
|
|
42
42
|
end
|
|
43
43
|
|
|
44
44
|
|
|
45
|
-
def
|
|
46
|
-
if
|
|
47
|
-
|
|
48
|
-
|
|
45
|
+
def render_topic_sections(f, topic)
|
|
46
|
+
if topic.does_have_child_sections
|
|
47
|
+
topic.sections.each do |ti|
|
|
48
|
+
render_topic(f, ti)
|
|
49
49
|
end
|
|
50
|
-
|
|
50
|
+
render_topic_spacer(f, topic)
|
|
51
51
|
end
|
|
52
52
|
end
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
def
|
|
56
|
-
if
|
|
57
|
-
f.puts
|
|
55
|
+
def render_topic_source(f, topic)
|
|
56
|
+
if topic.source_file_does_exist
|
|
57
|
+
f.puts topic.source.strip
|
|
58
58
|
end
|
|
59
|
-
|
|
59
|
+
render_topic_spacer(f, topic)
|
|
60
60
|
end
|
|
61
61
|
|
|
62
62
|
|
|
63
|
-
def
|
|
63
|
+
def render_topic_spacer(f, topic)
|
|
64
64
|
f.puts "\n\n\n\n"
|
|
65
65
|
end
|
|
66
66
|
|
|
@@ -69,8 +69,8 @@ module Muwu
|
|
|
69
69
|
private
|
|
70
70
|
|
|
71
71
|
|
|
72
|
-
def heading_origin_is_basename_or_outline(
|
|
73
|
-
[:basename, :outline].include?(
|
|
72
|
+
def heading_origin_is_basename_or_outline(topic)
|
|
73
|
+
[:basename, :outline].include?(topic.heading_origin)
|
|
74
74
|
end
|
|
75
75
|
|
|
76
76
|
|