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
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
39
|
+
version: 0.3.7
|
|
83
40
|
- !ruby/object:Gem::Dependency
|
|
84
|
-
name:
|
|
41
|
+
name: nokogiri
|
|
85
42
|
requirement: !ruby/object:Gem::Requirement
|
|
86
43
|
requirements:
|
|
87
|
-
- - "
|
|
44
|
+
- - ">="
|
|
88
45
|
- !ruby/object:Gem::Version
|
|
89
|
-
version:
|
|
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:
|
|
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:
|
|
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:
|
|
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/
|
|
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/
|
|
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.
|
|
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:
|
|
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
|