muwu 2.5.1

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 (126) hide show
  1. checksums.yaml +7 -0
  2. data/bin/muwu +5 -0
  3. data/lib/muwu.rb +38 -0
  4. data/lib/muwu/cli/cli.rb +143 -0
  5. data/lib/muwu/cli/cli_help.rb +28 -0
  6. data/lib/muwu/cli/help/compile +22 -0
  7. data/lib/muwu/cli/help/concat +8 -0
  8. data/lib/muwu/cli/help/heading +2 -0
  9. data/lib/muwu/cli/help/inspect +7 -0
  10. data/lib/muwu/cli/help/new +8 -0
  11. data/lib/muwu/cli/help/reset +14 -0
  12. data/lib/muwu/cli/help/summary +14 -0
  13. data/lib/muwu/controller/controller.rb +120 -0
  14. data/lib/muwu/controller/controller_interaction.rb +146 -0
  15. data/lib/muwu/default/default.rb +51 -0
  16. data/lib/muwu/destination/destination.rb +212 -0
  17. data/lib/muwu/destination_builder/destination_builder.rb +127 -0
  18. data/lib/muwu/helper/hash_helper.rb +37 -0
  19. data/lib/muwu/helper/html_href_helper.rb +101 -0
  20. data/lib/muwu/helper/outline_helper.rb +160 -0
  21. data/lib/muwu/helper/regexp_lib.rb +101 -0
  22. data/lib/muwu/helper/sanitizer_helper.rb +50 -0
  23. data/lib/muwu/manifest/manifest.rb +158 -0
  24. data/lib/muwu/manifest_builder/manifest_builder.rb +102 -0
  25. data/lib/muwu/manifest_task/contents.rb +42 -0
  26. data/lib/muwu/manifest_task/document_css.rb +25 -0
  27. data/lib/muwu/manifest_task/document_html.rb +69 -0
  28. data/lib/muwu/manifest_task/document_js.rb +25 -0
  29. data/lib/muwu/manifest_task/metadata.rb +35 -0
  30. data/lib/muwu/manifest_task/navigator.rb +29 -0
  31. data/lib/muwu/manifest_task/subcontents.rb +48 -0
  32. data/lib/muwu/manifest_task/text.rb +51 -0
  33. data/lib/muwu/manifest_task/text_item.rb +124 -0
  34. data/lib/muwu/manifest_task/title.rb +34 -0
  35. data/lib/muwu/manifest_task_builder/contents_builder.rb +88 -0
  36. data/lib/muwu/manifest_task_builder/document_css_builder.rb +63 -0
  37. data/lib/muwu/manifest_task_builder/document_html_builder.rb +210 -0
  38. data/lib/muwu/manifest_task_builder/document_js_builder.rb +69 -0
  39. data/lib/muwu/manifest_task_builder/metadata_builder.rb +118 -0
  40. data/lib/muwu/manifest_task_builder/navigator_builder.rb +78 -0
  41. data/lib/muwu/manifest_task_builder/subcontents_builder.rb +90 -0
  42. data/lib/muwu/manifest_task_builder/text_builder.rb +125 -0
  43. data/lib/muwu/manifest_task_builder/text_item_builder.rb +314 -0
  44. data/lib/muwu/manifest_task_builder/title_builder.rb +122 -0
  45. data/lib/muwu/project/project.rb +430 -0
  46. data/lib/muwu/project_builder/assets/config/css/base/html_elements.scss +138 -0
  47. data/lib/muwu/project_builder/assets/config/css/base/index.scss +11 -0
  48. data/lib/muwu/project_builder/assets/config/css/base/mixin_text_section_heading.scss +23 -0
  49. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_contents.scss +58 -0
  50. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_metadata.scss +17 -0
  51. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_navigator.scss +13 -0
  52. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_subcontents.scss +58 -0
  53. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_text.scss +48 -0
  54. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_title.scss +22 -0
  55. data/lib/muwu/project_builder/assets/config/css/colors/dark.scss +32 -0
  56. data/lib/muwu/project_builder/assets/config/css/colors/index.scss +1 -0
  57. data/lib/muwu/project_builder/assets/config/css/colors/light.scss +34 -0
  58. data/lib/muwu/project_builder/assets/config/css/extensions/index.scss +1 -0
  59. data/lib/muwu/project_builder/assets/config/css/index.scss +19 -0
  60. data/lib/muwu/project_builder/assets/config/css_debugger/debug_section_text.scss +27 -0
  61. data/lib/muwu/project_builder/project_reader.rb +144 -0
  62. data/lib/muwu/project_builder/project_reset_css.rb +95 -0
  63. data/lib/muwu/project_builder/project_starter.rb +27 -0
  64. data/lib/muwu/project_builder/project_validator.rb +157 -0
  65. data/lib/muwu/project_builder/project_writer.rb +127 -0
  66. data/lib/muwu/project_exception/css_manifest_file_not_found.rb +23 -0
  67. data/lib/muwu/project_exception/dry_output_recommended_with_multiple_documents.rb +19 -0
  68. data/lib/muwu/project_exception/metadata_file_not_found.rb +24 -0
  69. data/lib/muwu/project_exception/metadata_value_not_given.rb +42 -0
  70. data/lib/muwu/project_exception/multiple_documents_outlined_with_stdout.rb +18 -0
  71. data/lib/muwu/project_exception/multiple_formats_requested_with_stdout.rb +18 -0
  72. data/lib/muwu/project_exception/navigator_not_recommended_with_stdout.rb +23 -0
  73. data/lib/muwu/project_exception/navigators_will_be_generated_automatically.rb +23 -0
  74. data/lib/muwu/project_exception/option_key_not_understood.rb +23 -0
  75. data/lib/muwu/project_exception/option_not_validatable.rb +23 -0
  76. data/lib/muwu/project_exception/option_value_not_understood.rb +24 -0
  77. data/lib/muwu/project_exception/options_file_not_found.rb +24 -0
  78. data/lib/muwu/project_exception/outline_file_not_found.rb +24 -0
  79. data/lib/muwu/project_exception/outline_step_not_understood.rb +23 -0
  80. data/lib/muwu/project_exception/output_already_open.rb +18 -0
  81. data/lib/muwu/project_exception/output_not_open.rb +18 -0
  82. data/lib/muwu/project_exception/subcontents_will_be_generated_automatically copy.rb +23 -0
  83. data/lib/muwu/project_exception/target_project_folder_already_exists.rb +24 -0
  84. data/lib/muwu/project_exception/text_source_file_not_found.rb +26 -0
  85. data/lib/muwu/project_exception_handler/fatal.rb +39 -0
  86. data/lib/muwu/project_options/project_options.rb +54 -0
  87. data/lib/muwu/project_options_builder/project_option_validator.rb +37 -0
  88. data/lib/muwu/project_options_builder/project_option_validator_key.rb +56 -0
  89. data/lib/muwu/project_options_builder/project_option_validator_value.rb +300 -0
  90. data/lib/muwu/project_options_builder/project_options_reader.rb +80 -0
  91. data/lib/muwu/render_concat/render_concat.rb +80 -0
  92. data/lib/muwu/render_html/render_html.rb +101 -0
  93. data/lib/muwu/render_html/render_markup_to_html.rb +87 -0
  94. data/lib/muwu/render_html_builder/render_css_builder.rb +34 -0
  95. data/lib/muwu/render_html_builder/render_html_builder.rb +34 -0
  96. data/lib/muwu/render_html_builder/render_js_builder.rb +34 -0
  97. data/lib/muwu/render_html_partial/js_library/_init_bare.js +7 -0
  98. data/lib/muwu/render_html_partial/js_library/_zepto.min.js +2 -0
  99. data/lib/muwu/render_html_partial/js_library/init.js +10 -0
  100. data/lib/muwu/render_html_partial/js_library/navigation.js +140 -0
  101. data/lib/muwu/render_html_partial/render_contents.rb +369 -0
  102. data/lib/muwu/render_html_partial/render_document_css.rb +45 -0
  103. data/lib/muwu/render_html_partial/render_document_html.rb +397 -0
  104. data/lib/muwu/render_html_partial/render_document_js.rb +37 -0
  105. data/lib/muwu/render_html_partial/render_js_library.rb +54 -0
  106. data/lib/muwu/render_html_partial/render_metadata.rb +120 -0
  107. data/lib/muwu/render_html_partial/render_navigator.rb +136 -0
  108. data/lib/muwu/render_html_partial/render_subcontents.rb +374 -0
  109. data/lib/muwu/render_html_partial/render_text.rb +74 -0
  110. data/lib/muwu/render_html_partial/render_text_item.rb +230 -0
  111. data/lib/muwu/render_html_partial/render_title.rb +71 -0
  112. data/lib/muwu/render_html_partial_builder/render_contents_builder.rb +100 -0
  113. data/lib/muwu/render_html_partial_builder/render_document_css_builder.rb +46 -0
  114. data/lib/muwu/render_html_partial_builder/render_document_html_builder.rb +211 -0
  115. data/lib/muwu/render_html_partial_builder/render_document_js_builder.rb +52 -0
  116. data/lib/muwu/render_html_partial_builder/render_metadata_builder.rb +47 -0
  117. data/lib/muwu/render_html_partial_builder/render_navigator_builder.rb +74 -0
  118. data/lib/muwu/render_html_partial_builder/render_subcontents_builder.rb +85 -0
  119. data/lib/muwu/render_html_partial_builder/render_text_builder.rb +86 -0
  120. data/lib/muwu/render_html_partial_builder/render_text_item_builder.rb +274 -0
  121. data/lib/muwu/render_html_partial_builder/render_title_builder.rb +47 -0
  122. data/lib/muwu/render_inspector/render_inspector.rb +224 -0
  123. data/lib/muwu/var/deflistdiv.rb +239 -0
  124. data/lib/muwu_loader.rb +35 -0
  125. data/test/what_no_tests.md +5 -0
  126. metadata +251 -0
@@ -0,0 +1,54 @@
1
+ module Muwu
2
+ module RenderHtmlPartial
3
+ class JsLibrary
4
+
5
+
6
+ include Muwu
7
+
8
+
9
+ def initialize
10
+ js_lib_folder = File.join(File.dirname(__FILE__), 'js_library')
11
+ @js_lib_path = File.absolute_path(js_lib_folder)
12
+ end
13
+
14
+
15
+ public
16
+
17
+
18
+ def file_init
19
+ read_js_lib_file('init.js')
20
+ end
21
+
22
+
23
+ def file_navigation
24
+ read_js_lib_file('navigation.js')
25
+ end
26
+
27
+
28
+ def find(symbol)
29
+ case symbol
30
+ when :init
31
+ file_init
32
+ when :navigation
33
+ file_navigation
34
+ end
35
+ end
36
+
37
+
38
+
39
+ private
40
+
41
+
42
+ def js_lib_filepath_to(filename)
43
+ File.absolute_path(File.join(@js_lib_path, filename))
44
+ end
45
+
46
+
47
+ def read_js_lib_file(filename)
48
+ File.read(js_lib_filepath_to(filename))
49
+ end
50
+
51
+
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,120 @@
1
+ module Muwu
2
+ module RenderHtmlPartial
3
+ class Metadata
4
+
5
+
6
+ include Muwu
7
+
8
+
9
+ attr_accessor(
10
+ :destination,
11
+ :metadata
12
+ )
13
+
14
+
15
+ def render
16
+ @destination.margin_to_zero
17
+ @destination.padding_vertical(1) do
18
+ write_tag_div_open
19
+ render_dl
20
+ write_tag_div_close
21
+ end
22
+ @destination.margin_to_zero
23
+ end
24
+
25
+
26
+ def render_dl
27
+ @destination.margin_indent do
28
+ write_tag_dl_open
29
+ render_dl_metadata_div
30
+ write_tag_dl_close
31
+ end
32
+ end
33
+
34
+
35
+ def render_dl_metadata_div
36
+ @destination.margin_indent do
37
+ @metadata.each_pair do |key, value|
38
+ write_tag_div_metadata(key, value)
39
+ end
40
+ end
41
+ end
42
+
43
+
44
+ def write_tag_div_close
45
+ @destination.write_line tag_div_close
46
+ end
47
+
48
+
49
+ def write_tag_div_open
50
+ @destination.write_line tag_div_open
51
+ end
52
+
53
+
54
+ def write_tag_dl_close
55
+ @destination.write_line tag_dl_close
56
+ end
57
+
58
+
59
+ def write_tag_dl_open
60
+ @destination.write_line tag_dl_open
61
+ end
62
+
63
+
64
+ def write_tag_div_metadata(key, value)
65
+ @destination.write_line tag_dl_div_open
66
+ @destination.margin_indent do
67
+ @destination.write_line tag_dt_key(key)
68
+ @destination.write_line tag_dd_value(value)
69
+ end
70
+ @destination.write_line tag_dl_div_close
71
+ end
72
+
73
+
74
+
75
+ private
76
+
77
+
78
+ def tag_dd_value(value)
79
+ "<dd>#{value}</dd>"
80
+ end
81
+
82
+
83
+ def tag_div_close
84
+ "</div>"
85
+ end
86
+
87
+
88
+ def tag_div_open
89
+ "<div class='metadata'>"
90
+ end
91
+
92
+
93
+ def tag_dl_close
94
+ "</dl>"
95
+ end
96
+
97
+
98
+ def tag_dl_div_close
99
+ tag_div_close
100
+ end
101
+
102
+
103
+ def tag_dl_div_open
104
+ "<div>"
105
+ end
106
+
107
+
108
+ def tag_dl_open
109
+ "<dl>"
110
+ end
111
+
112
+
113
+ def tag_dt_key(key)
114
+ "<dt>#{key}</dt>"
115
+ end
116
+
117
+
118
+ end
119
+ end
120
+ end
@@ -0,0 +1,136 @@
1
+ module Muwu
2
+ module RenderHtmlPartial
3
+ class Navigator
4
+
5
+
6
+ attr_accessor(
7
+ :destination,
8
+ :heading,
9
+ :href_document_home,
10
+ :href_document_next,
11
+ :href_document_prev
12
+ )
13
+
14
+
15
+ def render
16
+ @destination.margin_to_zero
17
+ @destination.padding_vertical(1) do
18
+ write_tag_div_open
19
+ # render_heading
20
+ write_tag_nav_open
21
+ render_prev
22
+ render_home
23
+ render_next
24
+ write_tag_nav_close
25
+ write_tag_div_close
26
+ end
27
+ end
28
+
29
+
30
+ def render_heading
31
+ write_tag_heading
32
+ end
33
+
34
+
35
+ def render_prev
36
+ write_tag_a_prev
37
+ end
38
+
39
+
40
+ def render_home
41
+ write_tag_a_home
42
+ end
43
+
44
+
45
+ def render_next
46
+ write_tag_a_next
47
+ end
48
+
49
+
50
+ def write_tag_a_home
51
+ @destination.write_line tag_a_home
52
+ end
53
+
54
+
55
+ def write_tag_a_next
56
+ @destination.write_line tag_a_next
57
+ end
58
+
59
+
60
+ def write_tag_a_prev
61
+ @destination.write_line tag_a_prev
62
+ end
63
+
64
+
65
+ def write_tag_div_close
66
+ @destination.write_line tag_div_close
67
+ end
68
+
69
+
70
+ def write_tag_div_open
71
+ @destination.write_line tag_div_open
72
+ end
73
+
74
+
75
+ def write_tag_heading
76
+ @destination.write_line tag_heading
77
+ end
78
+
79
+
80
+ def write_tag_nav_open
81
+ @destination.write_line tag_nav_open
82
+ end
83
+
84
+
85
+ def write_tag_nav_close
86
+ @destination.write_line tag_nav_close
87
+ end
88
+
89
+
90
+
91
+ private
92
+
93
+
94
+ def tag_a_home
95
+ "<a class='document_link' href='#{@href_document_home}'>[home]</a>"
96
+ end
97
+
98
+
99
+ def tag_a_next
100
+ "<a class='document_link' href='#{@href_document_next}'>[next]</a>"
101
+ end
102
+
103
+
104
+ def tag_a_prev
105
+ "<a class='document_link' href='#{@href_document_prev}'>[prev]</a>"
106
+ end
107
+
108
+
109
+ def tag_div_close
110
+ "</div>"
111
+ end
112
+
113
+
114
+ def tag_div_open
115
+ "<div class='navigator'>"
116
+ end
117
+
118
+
119
+ def tag_heading
120
+ "<h1>#{@heading}</h1>"
121
+ end
122
+
123
+
124
+ def tag_nav_close
125
+ "</nav>"
126
+ end
127
+
128
+
129
+ def tag_nav_open
130
+ "<nav class='document_links'>"
131
+ end
132
+
133
+
134
+ end
135
+ end
136
+ end
@@ -0,0 +1,374 @@
1
+ module Muwu
2
+ module RenderHtmlPartial
3
+ class Subcontents
4
+
5
+
6
+ include Muwu
7
+
8
+
9
+ attr_accessor(
10
+ :destination,
11
+ :href_helper,
12
+ :html_attr_id,
13
+ :item_depth_max,
14
+ :project,
15
+ :sections,
16
+ :text_root_block,
17
+ :text_root_blocks,
18
+ :text_root_name,
19
+ :will_render_section_numbers
20
+ )
21
+
22
+
23
+
24
+ public
25
+
26
+
27
+ def render
28
+ @destination.margin_to_zero
29
+ @destination.padding_vertical(1) do
30
+ write_tag_div_open
31
+ render_project_title
32
+ @text_root_blocks.each do |text_root_block|
33
+ render_contents_element(text_root_block.sections)
34
+ end
35
+ write_tag_div_close
36
+ end
37
+ @destination.margin_to_zero
38
+ end
39
+
40
+
41
+ def render_contents_element(sections)
42
+ @destination.margin_indent do
43
+ case @will_render_section_numbers
44
+ when false
45
+ render_ol(sections)
46
+ when true
47
+ render_table(sections)
48
+ end
49
+ end
50
+ end
51
+
52
+
53
+ def render_ol(sections)
54
+ write_tag_ol_open
55
+ @destination.margin_indent do
56
+ sections.each do |section|
57
+ render_ol_li(section)
58
+ end
59
+ end
60
+ write_tag_ol_close
61
+ end
62
+
63
+
64
+ def render_ol_li(section)
65
+ if task_depth_is_within_range(section)
66
+ case section
67
+ when ManifestTask::TextReadfile
68
+ write_tag_li_open
69
+ render_ol_li_heading(section)
70
+ write_tag_li_close_inline
71
+ when ManifestTask::TextGroup
72
+ write_tag_li_open
73
+ @destination.margin_indent do
74
+ render_ol_li_heading_and_text_item(section)
75
+ end
76
+ write_tag_li_close_outline
77
+ end
78
+ end
79
+ end
80
+
81
+
82
+ def render_ol_li_heading(text_item)
83
+ render_tag_a_section_heading(text_item)
84
+ end
85
+
86
+
87
+ def render_ol_li_heading_and_text_item(text_item)
88
+ render_tag_a_section_heading(text_item, trailing_line_feed: true)
89
+ render_ol(text_item.sections)
90
+ end
91
+
92
+
93
+ def render_project_title
94
+ write_tag_h1_title
95
+ end
96
+
97
+
98
+ def render_table(sections)
99
+ write_tag_table_open
100
+ @destination.margin_indent do
101
+ sections.each do |section|
102
+ render_table_tr(section)
103
+ end
104
+ end
105
+ write_tag_table_close
106
+ end
107
+
108
+
109
+ def render_table_tr(section)
110
+ if task_depth_is_within_range(section)
111
+ html_id = ['subcontents', @text_root_name, section.numbering.join('_')].join('_')
112
+ write_tag_tr_open(html_id)
113
+ @destination.margin_indent do
114
+ if section.is_parent_heading
115
+ render_table_tr_td_number(section)
116
+ render_table_tr_td_heading_and_text_item(section)
117
+ elsif section.is_not_parent_heading
118
+ render_table_tr_td_number(section)
119
+ render_table_tr_td_heading(section)
120
+ end
121
+ end
122
+ write_tag_tr_close
123
+ end
124
+ end
125
+
126
+
127
+ def render_table_tr_td_heading(text_item)
128
+ write_tag_td_open(attr_list: "class='heading'")
129
+ render_tag_a_section_heading(text_item)
130
+ write_tag_td_close_inline
131
+ end
132
+
133
+
134
+ def render_table_tr_td_heading_and_text_item(text_item)
135
+ write_tag_td_open(attr_list: "class='heading'")
136
+ render_tag_a_section_heading(text_item, trailing_line_feed: true)
137
+ @destination.margin_indent do
138
+ render_table(text_item.sections)
139
+ end
140
+ write_tag_td_close_outline
141
+ end
142
+
143
+
144
+ def render_table_tr_td_number(text_item)
145
+ write_tag_td_open(attr_list: "class='number'")
146
+ render_tag_a_section_number(text_item, attr_list: "tabindex='-1'")
147
+ write_tag_td_close_inline
148
+ end
149
+
150
+
151
+ def render_tag_a_section_heading(text_item, trailing_line_feed: false)
152
+ href = @href_helper.to_text_item(text_item)
153
+ write_tag_a_open(href)
154
+ write_text_section_heading(text_item)
155
+ write_tag_a_close
156
+ if trailing_line_feed
157
+ write_lf
158
+ end
159
+ end
160
+
161
+
162
+ def render_tag_a_section_number(text_object, attr_list: nil)
163
+ href = @href_helper.to_text_item(text_object)
164
+ write_tag_a_open(href, attr_list: attr_list)
165
+ write_text_section_number(text_object)
166
+ write_tag_a_close
167
+ end
168
+
169
+
170
+ def write_lf
171
+ @destination.write_lf
172
+ end
173
+
174
+
175
+ def write_tag_a_close
176
+ @destination.write_inline tag_a_close
177
+ end
178
+
179
+
180
+ def write_tag_a_open(href_id, attr_list: nil)
181
+ @destination.write_inline tag_a_open(href_id, attr_list: attr_list)
182
+ end
183
+
184
+
185
+ def write_tag_div_close
186
+ @destination.write_line tag_div_close
187
+ end
188
+
189
+
190
+ def write_tag_div_open
191
+ @destination.write_line tag_div_open
192
+ end
193
+
194
+
195
+ def write_tag_h1_title
196
+ @destination.write_line tag_h1_title
197
+ end
198
+
199
+
200
+ def write_tag_li_close
201
+ write_tag_li_close_outline
202
+ end
203
+
204
+
205
+ def write_tag_li_close_inline
206
+ @destination.write_inline_end tag_li_close
207
+ end
208
+
209
+
210
+ def write_tag_li_close_outline
211
+ @destination.write_line tag_li_close
212
+ end
213
+
214
+
215
+ def write_tag_li_open
216
+ @destination.write_inline_indented tag_li_open
217
+ end
218
+
219
+
220
+ def write_tag_ol_close
221
+ @destination.write_line tag_ol_close
222
+ end
223
+
224
+
225
+ def write_tag_ol_open
226
+ @destination.write_line tag_ol_open
227
+ end
228
+
229
+
230
+ def write_tag_table_close
231
+ @destination.write_line tag_table_close
232
+ end
233
+
234
+
235
+ def write_tag_table_open
236
+ @destination.write_line tag_table_open
237
+ end
238
+
239
+
240
+ def write_tag_td_close
241
+ write_tag_td_close_outline
242
+ end
243
+
244
+
245
+ def write_tag_td_close_inline
246
+ @destination.write_inline_end tag_td_close
247
+ end
248
+
249
+
250
+ def write_tag_td_close_outline
251
+ @destination.write_line tag_td_close
252
+ end
253
+
254
+
255
+ def write_tag_td_open(attr_list: nil)
256
+ @destination.write_inline_indented tag_td_open(attr_list: attr_list)
257
+ end
258
+
259
+
260
+ def write_tag_tr_close
261
+ @destination.write_line tag_tr_close
262
+ end
263
+
264
+
265
+ def write_tag_tr_open(html_id)
266
+ @destination.write_line tag_tr_open(html_id)
267
+ end
268
+
269
+
270
+ def write_text_section_heading(text_item)
271
+ @destination.write_inline text_item.heading
272
+ end
273
+
274
+
275
+ def write_text_section_number(text_item)
276
+ @destination.write_inline text_item.numbering.join('.')
277
+ end
278
+
279
+
280
+
281
+ private
282
+
283
+
284
+ def tag_a_close
285
+ "</a>"
286
+ end
287
+
288
+
289
+ def tag_a_open(href_id, attr_list: nil)
290
+ ["<a", "class='document_link'", "href='#{href_id}'", attr_list].compact.join(' ').concat('>')
291
+ end
292
+
293
+
294
+ def tag_div_close
295
+ "</div>"
296
+ end
297
+
298
+
299
+ def tag_div_open
300
+ "<div class='subcontents' data-text_root_name='#{@text_root_name}' id='#{@html_attr_id}'>"
301
+ end
302
+
303
+
304
+ def tag_h1_title
305
+ "<h1>#{@project.title}</h1>"
306
+ end
307
+
308
+
309
+ def tag_li_close
310
+ "</li>"
311
+ end
312
+
313
+
314
+ def tag_li_open
315
+ "<li>"
316
+ end
317
+
318
+
319
+ def tag_ol_close
320
+ "</ol>"
321
+ end
322
+
323
+
324
+ def tag_ol_open
325
+ "<ol>"
326
+ end
327
+
328
+
329
+ def tag_table_close
330
+ "</table>"
331
+ end
332
+
333
+
334
+ def tag_table_open
335
+ "<table class='document_links'>"
336
+ end
337
+
338
+
339
+ def tag_td_close
340
+ "</td>"
341
+ end
342
+
343
+
344
+ def tag_td_open(attr_list: nil)
345
+ ["<td", attr_list].compact.join(' ').concat('>')
346
+ end
347
+
348
+
349
+ def tag_tr_close
350
+ "</tr>"
351
+ end
352
+
353
+
354
+ def tag_tr_open(html_id)
355
+ "<tr id='#{html_id}'>"
356
+ end
357
+
358
+
359
+ def task_depth_is_within_range(text_item)
360
+ result = nil
361
+ if @item_depth_max == nil
362
+ result = true
363
+ elsif text_item.section_depth <= @item_depth_max
364
+ result = true
365
+ elsif text_item.section_depth > @item_depth_max
366
+ result = false
367
+ end
368
+ result
369
+ end
370
+
371
+
372
+ end
373
+ end
374
+ end