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
metadata CHANGED
@@ -1,115 +1,71 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muwu
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.0
4
+ version: 4.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eli Harrison
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2023-12-12 00:00:00.000000000 Z
10
+ date: 2026-01-17 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: commonmarker
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
- - - "~>"
16
+ - - ">="
18
17
  - !ruby/object:Gem::Version
19
- version: '0.23'
18
+ version: 0.23.10
20
19
  type: :runtime
21
20
  prerelease: false
22
21
  version_requirements: !ruby/object:Gem::Requirement
23
22
  requirements:
24
- - - "~>"
23
+ - - ">="
25
24
  - !ruby/object:Gem::Version
26
- version: '0.23'
27
- - !ruby/object:Gem::Dependency
28
- name: haml
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '6.3'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '6.3'
25
+ version: 0.23.10
41
26
  - !ruby/object:Gem::Dependency
42
27
  name: iso-639
43
28
  requirement: !ruby/object:Gem::Requirement
44
29
  requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.3'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.3'
55
- - !ruby/object:Gem::Dependency
56
- name: kramdown
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '2.4'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '2.4'
69
- - !ruby/object:Gem::Dependency
70
- name: motion-markdown-it
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
30
+ - - ">="
74
31
  - !ruby/object:Gem::Version
75
- version: '13.0'
32
+ version: 0.3.7
76
33
  type: :runtime
77
34
  prerelease: false
78
35
  version_requirements: !ruby/object:Gem::Requirement
79
36
  requirements:
80
- - - "~>"
37
+ - - ">="
81
38
  - !ruby/object:Gem::Version
82
- version: '13.0'
39
+ version: 0.3.7
83
40
  - !ruby/object:Gem::Dependency
84
- name: motion-markdown-it-plugins
41
+ name: nokogiri
85
42
  requirement: !ruby/object:Gem::Requirement
86
43
  requirements:
87
- - - "~>"
44
+ - - ">="
88
45
  - !ruby/object:Gem::Version
89
- version: '8.4'
46
+ version: 1.16.0
90
47
  type: :runtime
91
48
  prerelease: false
92
49
  version_requirements: !ruby/object:Gem::Requirement
93
50
  requirements:
94
- - - "~>"
51
+ - - ">="
95
52
  - !ruby/object:Gem::Version
96
- version: '8.4'
53
+ version: 1.16.0
97
54
  - !ruby/object:Gem::Dependency
98
55
  name: sassc
99
56
  requirement: !ruby/object:Gem::Requirement
100
57
  requirements:
101
- - - "~>"
58
+ - - ">="
102
59
  - !ruby/object:Gem::Version
103
- version: '2.4'
60
+ version: 2.4.0
104
61
  type: :runtime
105
62
  prerelease: false
106
63
  version_requirements: !ruby/object:Gem::Requirement
107
64
  requirements:
108
- - - "~>"
65
+ - - ">="
109
66
  - !ruby/object:Gem::Version
110
- version: '2.4'
67
+ version: 2.4.0
111
68
  description: Compile markup files (Markdown and YAML) into HTML.
112
- email:
113
69
  executables:
114
70
  - muwu
115
71
  extensions: []
@@ -150,8 +106,8 @@ files:
150
106
  - lib/muwu/manifest_task/navigator.rb
151
107
  - lib/muwu/manifest_task/subcontents.rb
152
108
  - lib/muwu/manifest_task/text.rb
153
- - lib/muwu/manifest_task/text_item.rb
154
109
  - lib/muwu/manifest_task/title.rb
110
+ - lib/muwu/manifest_task/topic.rb
155
111
  - lib/muwu/manifest_task_builder/contents_builder.rb
156
112
  - lib/muwu/manifest_task_builder/document_css_builder.rb
157
113
  - lib/muwu/manifest_task_builder/document_html_builder.rb
@@ -160,18 +116,18 @@ files:
160
116
  - lib/muwu/manifest_task_builder/navigator_builder.rb
161
117
  - lib/muwu/manifest_task_builder/subcontents_builder.rb
162
118
  - lib/muwu/manifest_task_builder/text_builder.rb
163
- - lib/muwu/manifest_task_builder/text_item_builder.rb
164
119
  - lib/muwu/manifest_task_builder/title_builder.rb
120
+ - lib/muwu/manifest_task_builder/topic_builder.rb
165
121
  - lib/muwu/project/project.rb
166
122
  - lib/muwu/project_builder/assets/config/css/base/html_elements.scss
167
123
  - lib/muwu/project_builder/assets/config/css/base/index.scss
168
- - lib/muwu/project_builder/assets/config/css/base/mixin_text_section_heading.scss
169
124
  - lib/muwu/project_builder/assets/config/css/base/section_muwu_contents.scss
170
125
  - lib/muwu/project_builder/assets/config/css/base/section_muwu_metadata.scss
171
126
  - lib/muwu/project_builder/assets/config/css/base/section_muwu_navigator.scss
172
127
  - lib/muwu/project_builder/assets/config/css/base/section_muwu_subcontents.scss
173
128
  - lib/muwu/project_builder/assets/config/css/base/section_muwu_text.scss
174
129
  - lib/muwu/project_builder/assets/config/css/base/section_muwu_title.scss
130
+ - lib/muwu/project_builder/assets/config/css/base/section_muwu_topic.scss
175
131
  - lib/muwu/project_builder/assets/config/css/colors/dark.scss
176
132
  - lib/muwu/project_builder/assets/config/css/colors/index.scss
177
133
  - lib/muwu/project_builder/assets/config/css/colors/light.scss
@@ -187,13 +143,13 @@ files:
187
143
  - lib/muwu/project_exception/compiled_folder_not_found.rb
188
144
  - lib/muwu/project_exception/css_manifest_file_not_found.rb
189
145
  - lib/muwu/project_exception/dry_output_recommended_with_multiple_documents.rb
190
- - lib/muwu/project_exception/lynx_not_available.rb
191
146
  - lib/muwu/project_exception/metadata_file_not_found.rb
192
147
  - lib/muwu/project_exception/metadata_value_not_given.rb
193
148
  - lib/muwu/project_exception/multiple_documents_outlined_with_stdout.rb
194
149
  - lib/muwu/project_exception/multiple_formats_requested_with_stdout.rb
195
150
  - lib/muwu/project_exception/navigator_not_recommended_with_stdout.rb
196
151
  - lib/muwu/project_exception/navigators_will_be_generated_automatically.rb
152
+ - lib/muwu/project_exception/no_html_viewer_configured.rb
197
153
  - lib/muwu/project_exception/option_key_not_understood.rb
198
154
  - lib/muwu/project_exception/option_not_validatable.rb
199
155
  - lib/muwu/project_exception/option_remote_publish_value_nil.rb
@@ -208,7 +164,7 @@ files:
208
164
  - lib/muwu/project_exception/scp_not_available.rb
209
165
  - lib/muwu/project_exception/subcontents_will_be_generated_automatically copy.rb
210
166
  - lib/muwu/project_exception/target_project_folder_already_exists.rb
211
- - lib/muwu/project_exception/text_source_file_not_found.rb
167
+ - lib/muwu/project_exception/topic_source_file_not_found.rb
212
168
  - lib/muwu/project_exception/viewer_missing_home_document.rb
213
169
  - lib/muwu/project_exception_handler/fatal.rb
214
170
  - lib/muwu/project_options/project_options.rb
@@ -219,7 +175,6 @@ files:
219
175
  - lib/muwu/publish/publish.rb
220
176
  - lib/muwu/render_concat/render_concat.rb
221
177
  - lib/muwu/render_html/render_html.rb
222
- - lib/muwu/render_html/render_markup_to_html.rb
223
178
  - lib/muwu/render_html_builder/render_css_builder.rb
224
179
  - lib/muwu/render_html_builder/render_html_builder.rb
225
180
  - lib/muwu/render_html_builder/render_js_builder.rb
@@ -236,8 +191,8 @@ files:
236
191
  - lib/muwu/render_html_partial/render_navigator.rb
237
192
  - lib/muwu/render_html_partial/render_subcontents.rb
238
193
  - lib/muwu/render_html_partial/render_text.rb
239
- - lib/muwu/render_html_partial/render_text_item.rb
240
194
  - lib/muwu/render_html_partial/render_title.rb
195
+ - lib/muwu/render_html_partial/render_topic.rb
241
196
  - lib/muwu/render_html_partial_builder/render_contents_builder.rb
242
197
  - lib/muwu/render_html_partial_builder/render_document_css_builder.rb
243
198
  - lib/muwu/render_html_partial_builder/render_document_html_builder.rb
@@ -246,18 +201,16 @@ files:
246
201
  - lib/muwu/render_html_partial_builder/render_navigator_builder.rb
247
202
  - lib/muwu/render_html_partial_builder/render_subcontents_builder.rb
248
203
  - lib/muwu/render_html_partial_builder/render_text_builder.rb
249
- - lib/muwu/render_html_partial_builder/render_text_item_builder.rb
250
204
  - lib/muwu/render_html_partial_builder/render_title_builder.rb
205
+ - lib/muwu/render_html_partial_builder/render_topic_builder.rb
251
206
  - lib/muwu/render_inspector/render_inspector.rb
252
207
  - lib/muwu/sync/sync.rb
253
- - lib/muwu/var/deflistdiv.rb
254
208
  - lib/muwu/viewer/viewer.rb
255
209
  - test/what_no_tests.md
256
- homepage: https://github.com/ehdocumentdesign/muwu
210
+ homepage: https://github.com/emh789/muwu
257
211
  licenses:
258
- - GPL-3.0
212
+ - GPL-3.0-only
259
213
  metadata: {}
260
- post_install_message:
261
214
  rdoc_options: []
262
215
  require_paths:
263
216
  - lib
@@ -265,15 +218,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
265
218
  requirements:
266
219
  - - ">="
267
220
  - !ruby/object:Gem::Version
268
- version: '3.2'
221
+ version: '3.3'
269
222
  required_rubygems_version: !ruby/object:Gem::Requirement
270
223
  requirements:
271
224
  - - ">="
272
225
  - !ruby/object:Gem::Version
273
226
  version: '0'
274
227
  requirements: []
275
- rubygems_version: 3.4.22
276
- signing_key:
228
+ rubygems_version: 4.0.1
277
229
  specification_version: 4
278
230
  summary: Markup Writeup
279
231
  test_files: []
@@ -1,24 +0,0 @@
1
- @mixin text_section_heading($font-size, $margin-bottom) {
2
- >h1:first-child,
3
- >h2:first-child,
4
- >h3:first-child,
5
- >h4:first-child,
6
- >h5:first-child,
7
- >h6:first-child {
8
- font-size: $font-size;
9
- margin-bottom: $margin-bottom;
10
- }
11
- >h1.section_number {
12
- font-size: $font-size;
13
- margin-bottom: 0;
14
- & + h1:nth-of-type(2),
15
- & + h2:first-of-type,
16
- & + h3:first-of-type,
17
- & + h4:first-of-type,
18
- & + h5:first-of-type,
19
- & + h6:first-of-type {
20
- font-size: $font-size;
21
- margin-bottom: $margin-bottom;
22
- }
23
- }
24
- }
@@ -1,87 +0,0 @@
1
- module Muwu
2
- class RenderMarkupToHtml
3
-
4
-
5
- require 'cgi'
6
- require 'commonmarker'
7
- require 'haml'
8
- require 'motion-markdown-it'
9
- require 'motion-markdown-it-plugins'
10
-
11
-
12
-
13
- def initialize(project)
14
- @project = project
15
- end
16
-
17
-
18
-
19
- public
20
-
21
-
22
- def render(filename)
23
- case File.extname(filename).downcase
24
- when '.md'
25
- render_md(filename)
26
- when '.haml'
27
- render_haml(filename)
28
- end
29
- end
30
-
31
-
32
-
33
- private
34
-
35
-
36
- def read_haml_text(filename)
37
- File.read(filename)
38
- end
39
-
40
-
41
- def read_markdown_text(filename)
42
- if @project.options.markdown_allows_raw_html == true
43
- File.read(filename)
44
- else
45
- CGI.escapeHTML(File.read(filename))
46
- end
47
- end
48
-
49
-
50
- def render_haml(filename)
51
- text = read_haml_text(filename)
52
- Haml::Engine.new(text, {suppress_eval: true}).render
53
- end
54
-
55
-
56
- def render_md(filename)
57
- text = read_markdown_text(filename)
58
- case @project.options.markdown_renderer
59
- when 'commonmarker'
60
- render_md_commonmarker(text)
61
- when 'motion-markdown-it'
62
- render_md_motion_markdown_it(text)
63
- end
64
- end
65
-
66
-
67
- def render_md_commonmarker(text)
68
- if @project.options.render_punctuation_smart
69
- CommonMarker.render_doc(text, :SMART).to_html
70
- else
71
- CommonMarker.render_doc(text, :DEFAULT).to_html
72
- end
73
- end
74
-
75
-
76
- def render_md_motion_markdown_it(text)
77
- if @project.options.render_punctuation_smart
78
- MarkdownIt::Parser.new({html: true, typographer: true}).use(Muwu::Var::MotionMarkdownItPlugins::Deflistdiv).render(text)
79
- else
80
- MarkdownIt::Parser.new({html: true}).use(Muwu::Var::MotionMarkdownItPlugins::Deflistdiv).render(text)
81
- end
82
- end
83
-
84
-
85
-
86
- end
87
- end
@@ -1,274 +0,0 @@
1
- module Muwu
2
- module RenderHtmlPartialBuilder
3
- class TextItemBuilder
4
-
5
-
6
- include Muwu
7
-
8
-
9
- attr_accessor(
10
- :renderer
11
- )
12
-
13
-
14
- def self.build
15
- builder = new
16
- yield(builder)
17
- builder.renderer
18
- end
19
-
20
-
21
- def initialize
22
- @renderer = RenderHtmlPartial::TextItem.new
23
- end
24
-
25
-
26
- def build_from_manifest_text_item(manifest_text_item)
27
- @manifest_text_item = manifest_text_item
28
- @project = manifest_text_item.project
29
- @href_helper = Helper::HtmlHrefHelper.new(manifest_text_item)
30
- phase_1_set_destination
31
- phase_1_set_heading
32
- phase_1_set_heading_origin
33
- phase_1_set_numbering
34
- phase_1_set_section_depth
35
- phase_1_set_section_number_as_attr
36
- phase_1_set_section_number_as_text
37
- phase_1_set_does_have_source_text
38
- phase_1_set_is_parent_heading
39
- phase_1_set_text_root_name
40
- phase_1_set_markdown_renderer
41
- phase_2_set_source_filename_absolute
42
- phase_2_set_source_filename_relative
43
- phase_3_set_sections
44
- phase_4_set_end_links
45
- phase_4_set_html_attr_id
46
- phase_4_set_will_render_section_number
47
- phase_4_set_subsections_are_distinct
48
- end
49
-
50
-
51
-
52
- def phase_1_set_destination
53
- @renderer.destination = @manifest_text_item.destination
54
- end
55
-
56
-
57
- def phase_1_set_does_have_source_text
58
- if @manifest_text_item.source_file_does_exist
59
- @renderer.does_have_source_text = true
60
- elsif @manifest_text_item.source_file_does_not_exist
61
- @renderer.does_have_source_text = false
62
- end
63
- end
64
-
65
-
66
- def phase_1_set_heading
67
- @renderer.heading = @manifest_text_item.heading
68
- end
69
-
70
-
71
- def phase_1_set_heading_origin
72
- @renderer.heading_origin = @manifest_text_item.heading_origin
73
- end
74
-
75
-
76
- def phase_1_set_is_parent_heading
77
- @renderer.is_parent_heading = @manifest_text_item.is_parent_heading
78
- end
79
-
80
-
81
- def phase_1_set_markdown_renderer
82
- @renderer.markup_renderer = Muwu::RenderMarkupToHtml.new(@project)
83
- end
84
-
85
-
86
- def phase_1_set_numbering
87
- @renderer.numbering = @manifest_text_item.numbering
88
- end
89
-
90
-
91
- def phase_1_set_options_commonmarker
92
- @renderer.options_commonmarker = []
93
- if @project.options.render_punctuation_smart
94
- @renderer.options_commonmarker.append(:SMART)
95
- end
96
- end
97
-
98
-
99
- def phase_1_set_section_depth
100
- @renderer.section_depth = @manifest_text_item.section_depth
101
- end
102
-
103
-
104
- def phase_1_set_section_number_as_attr
105
- @renderer.section_number_as_attr = @manifest_text_item.numbering.join('_')
106
- end
107
-
108
-
109
- def phase_1_set_section_number_as_text
110
- @renderer.section_number_as_text = @manifest_text_item.numbering.join('.')
111
- end
112
-
113
-
114
- def phase_1_set_text_root_name
115
- @renderer.text_root_name = @manifest_text_item.text_root_name
116
- end
117
-
118
-
119
- def phase_2_set_source_filename_absolute
120
- if @manifest_text_item.source_file_does_exist
121
- @renderer.source_filename_absolute = @manifest_text_item.source_filename_absolute
122
- end
123
- end
124
-
125
-
126
- def phase_2_set_source_filename_relative
127
- if @manifest_text_item.source_file_does_exist
128
- @renderer.source_filename_relative = @manifest_text_item.source_filename_relative
129
- end
130
- end
131
-
132
-
133
- def phase_3_set_sections
134
- if @manifest_text_item.does_have_child_sections
135
- @renderer.sections = determine_sections
136
- end
137
- end
138
-
139
-
140
- def phase_4_set_end_links
141
- if text_item_should_have_end_links
142
- @renderer.end_links = determine_end_links
143
- end
144
- end
145
-
146
-
147
- def phase_4_set_html_attr_id
148
- @renderer.html_attr_id = ['text', @renderer.text_root_name, @renderer.section_number_as_attr].join('_')
149
- end
150
-
151
-
152
- def phase_4_set_will_render_section_number
153
- @renderer.will_render_section_number = determine_whether_text_item_will_render_section_number
154
- end
155
-
156
-
157
- def phase_4_set_subsections_are_distinct
158
- @renderer.subsections_are_distinct = determine_whether_subsections_are_distinct
159
- end
160
-
161
-
162
-
163
- private
164
-
165
-
166
- def build_renderer_text_item(text_item)
167
- RenderHtmlPartialBuilder::TextItemBuilder.build do |b|
168
- b.build_from_manifest_text_item(text_item)
169
- end
170
- end
171
-
172
-
173
- def determine_end_links
174
- end_links = {}
175
- if @project.options.render_section_end_links
176
- @project.options.render_section_end_links.each do |link|
177
- end_links[link] = determine_end_links_href(link)
178
- end
179
- end
180
- end_links
181
- end
182
-
183
-
184
- def determine_end_links_href(link)
185
- case link
186
- when 'contents'
187
- @href_helper.to_contents_heading(@manifest_text_item)
188
- when 'home'
189
- @href_helper.to_project_home
190
- when 'top'
191
- @href_helper.to_document_top
192
- end
193
- end
194
-
195
-
196
- def determine_sections
197
- sections = []
198
- @manifest_text_item.sections.each do |section|
199
- sections << build_renderer_text_item(section)
200
- end
201
- sections
202
- end
203
-
204
-
205
- def determine_whether_subsections_are_distinct
206
- if @manifest_text_item.does_have_child_sections
207
- if @project.options.render_sections_distinctly_depth_max == nil
208
- return true
209
- elsif @renderer.section_depth < @project.options.render_sections_distinctly_depth_max
210
- return true
211
- elsif @renderer.section_depth >= @project.options.render_sections_distinctly_depth_max
212
- return false
213
- end
214
- end
215
- end
216
-
217
-
218
- def determine_whether_text_item_will_render_section_number
219
- if @project.will_render_section_numbers && text_item_should_be_distinct
220
- true
221
- end
222
- end
223
-
224
-
225
- def text_item_should_be_distinct
226
- if @project.options.render_sections_distinctly_depth_max == nil
227
- return true
228
- elsif @renderer.section_depth <= @project.options.render_sections_distinctly_depth_max
229
- return true
230
- elsif @renderer.section_depth > @project.options.render_sections_distinctly_depth_max
231
- return false
232
- end
233
- end
234
-
235
-
236
- def text_item_should_have_end_links
237
- if text_item_should_be_distinct
238
- return text_item_distinct_should_have_end_links
239
- else
240
- return false
241
- end
242
- end
243
-
244
-
245
- def text_item_distinct_should_have_end_links
246
- if @renderer.is_parent_heading
247
- return text_item_distinct_parent_should_have_end_links
248
- elsif @renderer.does_have_source_text
249
- return true
250
- end
251
- end
252
-
253
-
254
- def text_item_distinct_parent_should_have_end_links
255
- if @renderer.does_have_source_text == true
256
- return true
257
- elsif @renderer.does_have_source_text == false
258
- return text_item_distinct_parent_without_source_should_have_end_links
259
- end
260
- end
261
-
262
-
263
- def text_item_distinct_parent_without_source_should_have_end_links
264
- if determine_whether_subsections_are_distinct == true
265
- return false
266
- elsif determine_whether_subsections_are_distinct == false
267
- return true
268
- end
269
- end
270
-
271
-
272
- end
273
- end
274
- end