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.
- checksums.yaml +7 -0
- data/bin/muwu +5 -0
- data/lib/muwu.rb +38 -0
- data/lib/muwu/cli/cli.rb +143 -0
- data/lib/muwu/cli/cli_help.rb +28 -0
- data/lib/muwu/cli/help/compile +22 -0
- data/lib/muwu/cli/help/concat +8 -0
- data/lib/muwu/cli/help/heading +2 -0
- data/lib/muwu/cli/help/inspect +7 -0
- data/lib/muwu/cli/help/new +8 -0
- data/lib/muwu/cli/help/reset +14 -0
- data/lib/muwu/cli/help/summary +14 -0
- data/lib/muwu/controller/controller.rb +120 -0
- data/lib/muwu/controller/controller_interaction.rb +146 -0
- data/lib/muwu/default/default.rb +51 -0
- data/lib/muwu/destination/destination.rb +212 -0
- data/lib/muwu/destination_builder/destination_builder.rb +127 -0
- data/lib/muwu/helper/hash_helper.rb +37 -0
- data/lib/muwu/helper/html_href_helper.rb +101 -0
- data/lib/muwu/helper/outline_helper.rb +160 -0
- data/lib/muwu/helper/regexp_lib.rb +101 -0
- data/lib/muwu/helper/sanitizer_helper.rb +50 -0
- data/lib/muwu/manifest/manifest.rb +158 -0
- data/lib/muwu/manifest_builder/manifest_builder.rb +102 -0
- data/lib/muwu/manifest_task/contents.rb +42 -0
- data/lib/muwu/manifest_task/document_css.rb +25 -0
- data/lib/muwu/manifest_task/document_html.rb +69 -0
- data/lib/muwu/manifest_task/document_js.rb +25 -0
- data/lib/muwu/manifest_task/metadata.rb +35 -0
- data/lib/muwu/manifest_task/navigator.rb +29 -0
- data/lib/muwu/manifest_task/subcontents.rb +48 -0
- data/lib/muwu/manifest_task/text.rb +51 -0
- data/lib/muwu/manifest_task/text_item.rb +124 -0
- data/lib/muwu/manifest_task/title.rb +34 -0
- data/lib/muwu/manifest_task_builder/contents_builder.rb +88 -0
- data/lib/muwu/manifest_task_builder/document_css_builder.rb +63 -0
- data/lib/muwu/manifest_task_builder/document_html_builder.rb +210 -0
- data/lib/muwu/manifest_task_builder/document_js_builder.rb +69 -0
- data/lib/muwu/manifest_task_builder/metadata_builder.rb +118 -0
- data/lib/muwu/manifest_task_builder/navigator_builder.rb +78 -0
- data/lib/muwu/manifest_task_builder/subcontents_builder.rb +90 -0
- data/lib/muwu/manifest_task_builder/text_builder.rb +125 -0
- data/lib/muwu/manifest_task_builder/text_item_builder.rb +314 -0
- data/lib/muwu/manifest_task_builder/title_builder.rb +122 -0
- data/lib/muwu/project/project.rb +430 -0
- data/lib/muwu/project_builder/assets/config/css/base/html_elements.scss +138 -0
- data/lib/muwu/project_builder/assets/config/css/base/index.scss +11 -0
- data/lib/muwu/project_builder/assets/config/css/base/mixin_text_section_heading.scss +23 -0
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_contents.scss +58 -0
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_metadata.scss +17 -0
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_navigator.scss +13 -0
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_subcontents.scss +58 -0
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_text.scss +48 -0
- data/lib/muwu/project_builder/assets/config/css/base/section_muwu_title.scss +22 -0
- data/lib/muwu/project_builder/assets/config/css/colors/dark.scss +32 -0
- data/lib/muwu/project_builder/assets/config/css/colors/index.scss +1 -0
- data/lib/muwu/project_builder/assets/config/css/colors/light.scss +34 -0
- data/lib/muwu/project_builder/assets/config/css/extensions/index.scss +1 -0
- data/lib/muwu/project_builder/assets/config/css/index.scss +19 -0
- data/lib/muwu/project_builder/assets/config/css_debugger/debug_section_text.scss +27 -0
- data/lib/muwu/project_builder/project_reader.rb +144 -0
- data/lib/muwu/project_builder/project_reset_css.rb +95 -0
- data/lib/muwu/project_builder/project_starter.rb +27 -0
- data/lib/muwu/project_builder/project_validator.rb +157 -0
- data/lib/muwu/project_builder/project_writer.rb +127 -0
- data/lib/muwu/project_exception/css_manifest_file_not_found.rb +23 -0
- data/lib/muwu/project_exception/dry_output_recommended_with_multiple_documents.rb +19 -0
- data/lib/muwu/project_exception/metadata_file_not_found.rb +24 -0
- data/lib/muwu/project_exception/metadata_value_not_given.rb +42 -0
- data/lib/muwu/project_exception/multiple_documents_outlined_with_stdout.rb +18 -0
- data/lib/muwu/project_exception/multiple_formats_requested_with_stdout.rb +18 -0
- data/lib/muwu/project_exception/navigator_not_recommended_with_stdout.rb +23 -0
- data/lib/muwu/project_exception/navigators_will_be_generated_automatically.rb +23 -0
- data/lib/muwu/project_exception/option_key_not_understood.rb +23 -0
- data/lib/muwu/project_exception/option_not_validatable.rb +23 -0
- data/lib/muwu/project_exception/option_value_not_understood.rb +24 -0
- data/lib/muwu/project_exception/options_file_not_found.rb +24 -0
- data/lib/muwu/project_exception/outline_file_not_found.rb +24 -0
- data/lib/muwu/project_exception/outline_step_not_understood.rb +23 -0
- data/lib/muwu/project_exception/output_already_open.rb +18 -0
- data/lib/muwu/project_exception/output_not_open.rb +18 -0
- data/lib/muwu/project_exception/subcontents_will_be_generated_automatically copy.rb +23 -0
- data/lib/muwu/project_exception/target_project_folder_already_exists.rb +24 -0
- data/lib/muwu/project_exception/text_source_file_not_found.rb +26 -0
- data/lib/muwu/project_exception_handler/fatal.rb +39 -0
- data/lib/muwu/project_options/project_options.rb +54 -0
- data/lib/muwu/project_options_builder/project_option_validator.rb +37 -0
- data/lib/muwu/project_options_builder/project_option_validator_key.rb +56 -0
- data/lib/muwu/project_options_builder/project_option_validator_value.rb +300 -0
- data/lib/muwu/project_options_builder/project_options_reader.rb +80 -0
- data/lib/muwu/render_concat/render_concat.rb +80 -0
- data/lib/muwu/render_html/render_html.rb +101 -0
- data/lib/muwu/render_html/render_markup_to_html.rb +87 -0
- data/lib/muwu/render_html_builder/render_css_builder.rb +34 -0
- data/lib/muwu/render_html_builder/render_html_builder.rb +34 -0
- data/lib/muwu/render_html_builder/render_js_builder.rb +34 -0
- data/lib/muwu/render_html_partial/js_library/_init_bare.js +7 -0
- data/lib/muwu/render_html_partial/js_library/_zepto.min.js +2 -0
- data/lib/muwu/render_html_partial/js_library/init.js +10 -0
- data/lib/muwu/render_html_partial/js_library/navigation.js +140 -0
- data/lib/muwu/render_html_partial/render_contents.rb +369 -0
- data/lib/muwu/render_html_partial/render_document_css.rb +45 -0
- data/lib/muwu/render_html_partial/render_document_html.rb +397 -0
- data/lib/muwu/render_html_partial/render_document_js.rb +37 -0
- data/lib/muwu/render_html_partial/render_js_library.rb +54 -0
- data/lib/muwu/render_html_partial/render_metadata.rb +120 -0
- data/lib/muwu/render_html_partial/render_navigator.rb +136 -0
- data/lib/muwu/render_html_partial/render_subcontents.rb +374 -0
- data/lib/muwu/render_html_partial/render_text.rb +74 -0
- data/lib/muwu/render_html_partial/render_text_item.rb +230 -0
- data/lib/muwu/render_html_partial/render_title.rb +71 -0
- data/lib/muwu/render_html_partial_builder/render_contents_builder.rb +100 -0
- data/lib/muwu/render_html_partial_builder/render_document_css_builder.rb +46 -0
- data/lib/muwu/render_html_partial_builder/render_document_html_builder.rb +211 -0
- data/lib/muwu/render_html_partial_builder/render_document_js_builder.rb +52 -0
- data/lib/muwu/render_html_partial_builder/render_metadata_builder.rb +47 -0
- data/lib/muwu/render_html_partial_builder/render_navigator_builder.rb +74 -0
- data/lib/muwu/render_html_partial_builder/render_subcontents_builder.rb +85 -0
- data/lib/muwu/render_html_partial_builder/render_text_builder.rb +86 -0
- data/lib/muwu/render_html_partial_builder/render_text_item_builder.rb +274 -0
- data/lib/muwu/render_html_partial_builder/render_title_builder.rb +47 -0
- data/lib/muwu/render_inspector/render_inspector.rb +224 -0
- data/lib/muwu/var/deflistdiv.rb +239 -0
- data/lib/muwu_loader.rb +35 -0
- data/test/what_no_tests.md +5 -0
- metadata +251 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
module Muwu
|
|
2
|
+
module RenderHtmlPartialBuilder
|
|
3
|
+
class DocumentCssBuilder
|
|
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::DocumentCss.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def build_from_manifest_document(document)
|
|
27
|
+
@document = document
|
|
28
|
+
@project = document.project
|
|
29
|
+
set_destination
|
|
30
|
+
set_project
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
def set_destination
|
|
35
|
+
@renderer.destination = @document.destination
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
def set_project
|
|
40
|
+
@renderer.project = @project
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
end
|
|
45
|
+
end
|
|
46
|
+
end
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
module Muwu
|
|
2
|
+
module RenderHtmlPartialBuilder
|
|
3
|
+
class DocumentHtmlBuilder
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
include Muwu
|
|
7
|
+
include Helper
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
attr_accessor(
|
|
11
|
+
:renderer
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def self.build
|
|
16
|
+
builder = new
|
|
17
|
+
yield(builder)
|
|
18
|
+
builder.renderer
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def initialize
|
|
23
|
+
@renderer = RenderHtmlPartial::DocumentHtml.new
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def build_from_manifest_document(document)
|
|
28
|
+
@document = document
|
|
29
|
+
@project = document.project
|
|
30
|
+
set_destination
|
|
31
|
+
set_html_lang
|
|
32
|
+
set_html_title
|
|
33
|
+
set_head_css_method
|
|
34
|
+
set_head_js_libraries
|
|
35
|
+
set_head_js_method
|
|
36
|
+
set_head_includes_metadata_tags
|
|
37
|
+
set_head_metadata
|
|
38
|
+
set_project
|
|
39
|
+
set_tasks
|
|
40
|
+
finally_set_css_filename
|
|
41
|
+
finally_set_js_filename
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def finally_set_css_filename
|
|
46
|
+
if @renderer.head_css_method == :link
|
|
47
|
+
@renderer.head_css_filename = @document.css_filename
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
def finally_set_js_filename
|
|
53
|
+
if @renderer.head_js_method == :link
|
|
54
|
+
@renderer.head_js_filename = @document.js_filename
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
def set_destination
|
|
60
|
+
@renderer.destination = @document.destination
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
def set_html_lang
|
|
65
|
+
@renderer.html_lang = @project.options.html_lang
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
def set_html_title
|
|
70
|
+
@renderer.html_title = determine_html_title
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
def set_head_includes_metadata_tags
|
|
75
|
+
@renderer.head_includes_metadata_tags = @project.options.html_head_includes_metadata_tags
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
def set_head_metadata
|
|
80
|
+
if @project.options.html_head_includes_metadata_tags
|
|
81
|
+
@renderer.head_metadata = SanitizerHelper::sanitize_metadata(@project.metadata)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
def set_head_css_method
|
|
87
|
+
@renderer.head_css_method = @document.css_include_method
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
|
|
91
|
+
def set_head_js_libraries
|
|
92
|
+
@renderer.head_js_libraries = @document.js_head_libraries
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
def set_head_js_method
|
|
97
|
+
@renderer.head_js_method = @document.js_include_method
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def set_project
|
|
102
|
+
@renderer.project = @project
|
|
103
|
+
end
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
def set_tasks
|
|
107
|
+
@renderer.tasks = determine_document_tasks
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
private
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
def build_contents(task)
|
|
116
|
+
RenderHtmlPartialBuilder::ContentsBuilder.build do |b|
|
|
117
|
+
b.build_from_manifest_task_contents(task)
|
|
118
|
+
end
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
def build_metadata(task)
|
|
123
|
+
RenderHtmlPartialBuilder::MetadataBuilder.build do |b|
|
|
124
|
+
b.build_from_manifest_metadata(task)
|
|
125
|
+
end
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
def build_navigator(task)
|
|
130
|
+
RenderHtmlPartialBuilder::NavigatorBuilder.build do |b|
|
|
131
|
+
b.build_from_manifest_task_navigator(task)
|
|
132
|
+
end
|
|
133
|
+
end
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
def build_subcontents(task)
|
|
137
|
+
RenderHtmlPartialBuilder::SubcontentsBuilder.build do |b|
|
|
138
|
+
b.build_from_manifest_task_subcontents(task)
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
def build_text(task)
|
|
144
|
+
RenderHtmlPartialBuilder::TextBuilder.build do |b|
|
|
145
|
+
b.build_from_manifest_text(task)
|
|
146
|
+
end
|
|
147
|
+
end
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
def build_title(task)
|
|
151
|
+
RenderHtmlPartialBuilder::TitleBuilder.build do |b|
|
|
152
|
+
b.build_from_manifest_title(task)
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
|
|
157
|
+
def determine_document_tasks
|
|
158
|
+
tasks = []
|
|
159
|
+
@document.tasks.each do |task|
|
|
160
|
+
case task
|
|
161
|
+
when ManifestTask::Contents
|
|
162
|
+
tasks << build_contents(task)
|
|
163
|
+
|
|
164
|
+
when ManifestTask::Metadata
|
|
165
|
+
tasks << build_metadata(task)
|
|
166
|
+
|
|
167
|
+
when ManifestTask::Navigator
|
|
168
|
+
tasks << build_navigator(task)
|
|
169
|
+
|
|
170
|
+
when ManifestTask::Subcontents
|
|
171
|
+
tasks << build_subcontents(task)
|
|
172
|
+
|
|
173
|
+
when ManifestTask::Text
|
|
174
|
+
tasks << build_text(task)
|
|
175
|
+
|
|
176
|
+
when ManifestTask::Title
|
|
177
|
+
tasks << build_title(task)
|
|
178
|
+
end
|
|
179
|
+
end
|
|
180
|
+
tasks
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
def determine_html_title
|
|
185
|
+
if @project.manifest.documents_html_count == 1
|
|
186
|
+
determine_html_title_single_document
|
|
187
|
+
elsif @project.manifest.documents_html_count > 1
|
|
188
|
+
determine_html_title_multiple_documents
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
|
|
193
|
+
def determine_html_title_multiple_documents
|
|
194
|
+
if @document.index == 0
|
|
195
|
+
return @project.title
|
|
196
|
+
elsif @document.index > 0
|
|
197
|
+
project_title = @project.title
|
|
198
|
+
page_current = @document.index + 1
|
|
199
|
+
page_last = @project.manifest.documents_html_count
|
|
200
|
+
return "#{project_title} - page #{page_current} of #{page_last}"
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
def determine_html_title_single_document
|
|
205
|
+
@project.title
|
|
206
|
+
end
|
|
207
|
+
|
|
208
|
+
|
|
209
|
+
end
|
|
210
|
+
end
|
|
211
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
module Muwu
|
|
2
|
+
module RenderHtmlPartialBuilder
|
|
3
|
+
class DocumentJsBuilder
|
|
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::DocumentJs.new
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def build_from_manifest_document(document)
|
|
27
|
+
@document = document
|
|
28
|
+
@project = document.project
|
|
29
|
+
set_destination
|
|
30
|
+
set_libraries
|
|
31
|
+
set_project
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def set_destination
|
|
36
|
+
@renderer.destination = @document.destination
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def set_libraries
|
|
41
|
+
@renderer.libraries = @project.javascript_libraries_requested
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
def set_project
|
|
46
|
+
@renderer.project = @project
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
module Muwu
|
|
2
|
+
module RenderHtmlPartialBuilder
|
|
3
|
+
class MetadataBuilder
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
include Muwu
|
|
7
|
+
include Helper
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
attr_accessor(
|
|
11
|
+
:manifest_metadata,
|
|
12
|
+
:renderer
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def self.build
|
|
17
|
+
builder = new
|
|
18
|
+
yield(builder)
|
|
19
|
+
builder.renderer
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def initialize
|
|
24
|
+
@renderer = RenderHtmlPartial::Metadata.new
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
def build_from_manifest_metadata(metadata)
|
|
29
|
+
@metadata = metadata
|
|
30
|
+
set_destination
|
|
31
|
+
set_metadata
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def set_destination
|
|
36
|
+
@renderer.destination = @metadata.destination
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def set_metadata
|
|
41
|
+
@renderer.metadata = SanitizerHelper.sanitize_metadata(@metadata.metadata)
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
end
|
|
46
|
+
end
|
|
47
|
+
end
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
module Muwu
|
|
2
|
+
module RenderHtmlPartialBuilder
|
|
3
|
+
class NavigatorBuilder
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
include Muwu
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
attr_accessor(
|
|
10
|
+
:project,
|
|
11
|
+
:renderer
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def self.build
|
|
16
|
+
builder = new
|
|
17
|
+
yield(builder)
|
|
18
|
+
builder.renderer
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
def initialize
|
|
23
|
+
@renderer = RenderHtmlPartial::Navigator.new
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def build_from_manifest_task_navigator(navigator)
|
|
28
|
+
@navigator = navigator
|
|
29
|
+
@project = navigator.project
|
|
30
|
+
set_destination
|
|
31
|
+
set_heading
|
|
32
|
+
set_href_document_home
|
|
33
|
+
set_href_document_next
|
|
34
|
+
set_href_document_prev
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def set_destination
|
|
39
|
+
@renderer.destination = @navigator.destination
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def set_heading
|
|
44
|
+
@renderer.heading = @navigator.heading
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def set_href_document_home
|
|
49
|
+
@renderer.href_document_home = determine_href_by_index(@navigator.document_home_index)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def set_href_document_next
|
|
54
|
+
@renderer.href_document_next = determine_href_by_index(@navigator.document_next_index)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def set_href_document_prev
|
|
59
|
+
@renderer.href_document_prev = determine_href_by_index(@navigator.document_prev_index)
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
private
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def determine_href_by_index(index)
|
|
68
|
+
@project.manifest.find_document_html_by_index(index).destination.output_filename
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
module Muwu
|
|
2
|
+
module RenderHtmlPartialBuilder
|
|
3
|
+
class SubcontentsBuilder
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
include Muwu
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
attr_accessor(
|
|
10
|
+
:project,
|
|
11
|
+
:renderer,
|
|
12
|
+
:task_subcontents,
|
|
13
|
+
:text_root_name
|
|
14
|
+
)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def self.build
|
|
18
|
+
builder = new
|
|
19
|
+
yield(builder)
|
|
20
|
+
builder.renderer
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def initialize
|
|
25
|
+
@renderer = RenderHtmlPartial::Subcontents.new
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def build_from_manifest_task_subcontents(task_subcontents)
|
|
30
|
+
@project = task_subcontents.project
|
|
31
|
+
@task_subcontents = task_subcontents
|
|
32
|
+
@text_root_name = task_subcontents.text_root_name
|
|
33
|
+
set_destination
|
|
34
|
+
set_href_helper
|
|
35
|
+
set_html_attr_id
|
|
36
|
+
set_item_depth_max
|
|
37
|
+
set_project
|
|
38
|
+
set_text_root_blocks
|
|
39
|
+
set_will_render_section_numbers
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
def set_destination
|
|
44
|
+
@renderer.destination = @task_subcontents.destination
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
def set_href_helper
|
|
49
|
+
@renderer.href_helper = Helper::HtmlHrefHelper.new(@task_subcontents)
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def set_html_attr_id
|
|
54
|
+
@renderer.html_attr_id = ['subcontents'].join('_')
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
def set_item_depth_max
|
|
59
|
+
@renderer.item_depth_max = @project.options.render_sections_distinctly_depth_max
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
def set_project
|
|
64
|
+
@renderer.project = @project
|
|
65
|
+
end
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
def set_text_root_blocks
|
|
69
|
+
@renderer.text_root_blocks = @task_subcontents.text_root_blocks
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
def set_text_root_name
|
|
74
|
+
@renderer.text_root_name = @text_root_name
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def set_will_render_section_numbers
|
|
79
|
+
@renderer.will_render_section_numbers = @project.options.render_section_numbers
|
|
80
|
+
end
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
end
|