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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/lib/muwu/cli/help/summary +1 -1
  3. data/lib/muwu/cli/help/view +2 -2
  4. data/lib/muwu/controller/controller_interaction.rb +10 -4
  5. data/lib/muwu/default/default.rb +2 -8
  6. data/lib/muwu/helper/html_href_helper.rb +77 -77
  7. data/lib/muwu/helper/outline_helper.rb +22 -24
  8. data/lib/muwu/helper/regexp_lib.rb +26 -51
  9. data/lib/muwu/helper/sanitizer_helper.rb +5 -5
  10. data/lib/muwu/manifest/manifest.rb +52 -70
  11. data/lib/muwu/manifest_task/document_html.rb +16 -22
  12. data/lib/muwu/manifest_task/text.rb +13 -13
  13. data/lib/muwu/manifest_task/{text_item.rb → topic.rb} +9 -9
  14. data/lib/muwu/manifest_task_builder/text_builder.rb +24 -24
  15. data/lib/muwu/manifest_task_builder/{text_item_builder.rb → topic_builder.rb} +48 -74
  16. data/lib/muwu/project/project.rb +0 -8
  17. data/lib/muwu/project_builder/assets/config/css/base/html_elements.scss +57 -62
  18. data/lib/muwu/project_builder/assets/config/css/base/index.scss +3 -2
  19. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_contents.scss +35 -57
  20. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_metadata.scss +2 -14
  21. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_navigator.scss +6 -11
  22. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_subcontents.scss +35 -57
  23. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_text.scss +2 -48
  24. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_title.scss +18 -23
  25. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_topic.scss +38 -0
  26. data/lib/muwu/project_builder/assets/config/css/colors/dark.scss +33 -31
  27. data/lib/muwu/project_builder/assets/config/css/colors/index.scss +2 -1
  28. data/lib/muwu/project_builder/assets/config/css/colors/light.scss +33 -33
  29. data/lib/muwu/project_builder/project_validator.rb +7 -7
  30. data/lib/muwu/project_exception/{lynx_not_available.rb → no_html_viewer_configured.rb} +2 -2
  31. data/lib/muwu/project_exception/{text_source_file_not_found.rb → topic_source_file_not_found.rb} +6 -7
  32. data/lib/muwu/project_options/project_options.rb +4 -1
  33. data/lib/muwu/project_options_builder/project_option_validator_key.rb +17 -19
  34. data/lib/muwu/project_options_builder/project_option_validator_value.rb +42 -59
  35. data/lib/muwu/render_concat/render_concat.rb +22 -22
  36. data/lib/muwu/render_html_partial/js_library/navigation.js +1 -1
  37. data/lib/muwu/render_html_partial/render_contents.rb +139 -139
  38. data/lib/muwu/render_html_partial/render_document_html.rb +2 -2
  39. data/lib/muwu/render_html_partial/render_metadata.rb +25 -37
  40. data/lib/muwu/render_html_partial/render_navigator.rb +39 -39
  41. data/lib/muwu/render_html_partial/render_subcontents.rb +142 -143
  42. data/lib/muwu/render_html_partial/render_text.rb +11 -11
  43. data/lib/muwu/render_html_partial/render_title.rb +21 -21
  44. data/lib/muwu/render_html_partial/{render_text_item.rb → render_topic.rb} +62 -35
  45. data/lib/muwu/render_html_partial_builder/render_contents_builder.rb +17 -23
  46. data/lib/muwu/render_html_partial_builder/render_subcontents_builder.rb +3 -9
  47. data/lib/muwu/render_html_partial_builder/render_text_builder.rb +11 -11
  48. data/lib/muwu/render_html_partial_builder/render_topic_builder.rb +281 -0
  49. data/lib/muwu/render_inspector/render_inspector.rb +58 -58
  50. data/lib/muwu/viewer/viewer.rb +2 -2
  51. data/lib/muwu.rb +2 -7
  52. metadata +30 -78
  53. data/lib/muwu/project_builder/assets/config/css/base/mixin_text_section_heading.scss +0 -24
  54. data/lib/muwu/render_html/render_markup_to_html.rb +0 -87
  55. data/lib/muwu/render_html_partial_builder/render_text_item_builder.rb +0 -274
  56. 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 validate_option_boolean
97
- case @value_provided
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 validate_option_generate_navigators_automatically
115
- return validate_option_boolean
98
+ def validate_option_generate_subcontents_automatically
99
+ return validation_for_boolean
116
100
  end
117
101
 
118
102
 
119
- def validate_option_generate_subcontents_automatically
120
- return validate_option_boolean
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 validate_option_boolean
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 validate_option_boolean
130
+ return validation_for_boolean
147
131
  end
148
132
 
149
133
 
150
134
  def validate_option_markdown_allows_raw_html
151
- return validate_option_boolean
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 validate_option_output_file_basename
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 validate_option_output_file_basename
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 validate_option_output_file_basename
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 validate_option_boolean
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 validate_option_boolean
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 validate_option_boolean
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 validate_option_boolean
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 |text_item|
22
- render_text_item(f, text_item)
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 render_text_item(f, text_item)
30
- render_text_item_head(f, text_item)
31
- render_text_item_source(f, text_item)
32
- render_text_item_sections(f, text_item)
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 render_text_item_head(f, text_item)
37
- f.puts '# ' + text_item.numbering.join('.')
38
- if heading_origin_is_basename_or_outline(text_item)
39
- f.puts '# ' + text_item.heading
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 render_text_item_sections(f, text_item)
46
- if text_item.does_have_child_sections
47
- text_item.sections.each do |ti|
48
- render_text_item(f, ti)
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
- render_text_item_spacer(f, text_item)
50
+ render_topic_spacer(f, topic)
51
51
  end
52
52
  end
53
53
 
54
54
 
55
- def render_text_item_source(f, text_item)
56
- if text_item.source_file_does_exist
57
- f.puts text_item.source.strip
55
+ def render_topic_source(f, topic)
56
+ if topic.source_file_does_exist
57
+ f.puts topic.source.strip
58
58
  end
59
- render_text_item_spacer(f, text_item)
59
+ render_topic_spacer(f, topic)
60
60
  end
61
61
 
62
62
 
63
- def render_text_item_spacer(f, text_item)
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(text_item)
73
- [:basename, :outline].include?(text_item.heading_origin)
72
+ def heading_origin_is_basename_or_outline(topic)
73
+ [:basename, :outline].include?(topic.heading_origin)
74
74
  end
75
75
 
76
76
 
@@ -72,7 +72,7 @@ Muwu.helper = {
72
72
  },
73
73
 
74
74
  parse_href: function(href) {
75
- var _re = /(\w+[.]html)?(#{1})?(\w*)?/;
75
+ var _re = /(.*\w+[.]html)?(#{1})?([\w\d-]*)?/;
76
76
  var _hrefSplit = href.split(_re);
77
77
  var filename = _hrefSplit[1];
78
78
  var id = _hrefSplit[3];