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,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: dafa3354f3a57677adacf16fe9372167ce2572b68e445fb0f95192142c116633
4
+ data.tar.gz: 83130270c6bcfbbb7c3fd46a3cc8825441999eae801dd1ba15368acffc315464
5
+ SHA512:
6
+ metadata.gz: 8a036a78dd8a1ef10f0776a7d014c4e953ababeb0ca154e0718499a8252b06b3b4a708fa9c4542803a986e70f0fdad4bef8e9997b541eabb9f01858f82118722
7
+ data.tar.gz: 819c5595a937ff67464e3829b0243d86a2cf3b429bcadf232dfc13eea7995d9c6fe583c48f39555479597a66ebc4cff2dc95eb199693ffd10dcb3d9850a281df
@@ -0,0 +1,5 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require_relative '../lib/muwu.rb'
4
+
5
+ Muwu::Cli.new(ARGV).evaluate_arguments
@@ -0,0 +1,38 @@
1
+ module Muwu
2
+
3
+
4
+ VERSION = '2.5.1'
5
+
6
+ GEM_HOME_LIB = File.absolute_path(File.join(File.dirname(__FILE__)))
7
+ GEM_HOME_LIB_MUWU = File.absolute_path(File.join(GEM_HOME_LIB, 'muwu'))
8
+
9
+
10
+ require 'commonmarker'
11
+ require 'fileutils'
12
+ require 'haml'
13
+ require 'iso-639'
14
+ require 'logger'
15
+ require 'motion-markdown-it'
16
+ require 'motion-markdown-it-plugins'
17
+ require 'sassc'
18
+ require 'yaml'
19
+
20
+
21
+ require_relative 'muwu_loader'
22
+
23
+
24
+
25
+ module_function
26
+
27
+
28
+ def debug(file, line, info)
29
+ logger.new(STDERR).debug("#{file} #{line} #{info}")
30
+ end
31
+
32
+
33
+ def read(path)
34
+ ProjectReader.build { |b| b.load_path(path) }
35
+ end
36
+
37
+
38
+ end
@@ -0,0 +1,143 @@
1
+ module Muwu
2
+ class Cli
3
+
4
+
5
+ include Muwu
6
+
7
+
8
+ def initialize(args)
9
+ @args = args.map do |a|
10
+ case a
11
+ when nil
12
+ nil
13
+ else
14
+ a.downcase.strip
15
+ end
16
+ end
17
+
18
+ @current_working_directory = Dir.pwd
19
+ end
20
+
21
+
22
+
23
+ public
24
+
25
+
26
+ def evaluate_arguments
27
+ if @args == []
28
+ puts CliHelp.new(:summary).message
29
+ elsif @args != []
30
+ case @args[0]
31
+ when 'compile'
32
+ evaluate_command_compile
33
+ when 'concat'
34
+ evaluate_command_concat
35
+ when 'help'
36
+ evaluate_command_help
37
+ when 'inspect'
38
+ evaluate_command_inspect
39
+ when 'new'
40
+ evaluate_command_new
41
+ when 'reset'
42
+ evaluate_command_reset
43
+ when '--version'
44
+ puts VERSION
45
+ else
46
+ puts CliHelp.new(:summary).message
47
+ end
48
+ end
49
+ end
50
+
51
+
52
+
53
+ private
54
+
55
+
56
+ def evaluate_command_compile
57
+ if @args[1] == nil
58
+ Controller.new(@current_working_directory).compile
59
+
60
+ elsif @args[1] == 'css'
61
+ Controller.new(@current_working_directory).compile_css
62
+
63
+ elsif @args[1] == 'html'
64
+ evaluate_command_compile_html
65
+
66
+ elsif @args[1] == 'js'
67
+ Controller.new(@current_working_directory).compile_js
68
+
69
+ else
70
+ puts CliHelp.new(:compile).message
71
+ end
72
+ end
73
+
74
+
75
+ def evaluate_command_compile_html
76
+ if @args[2] == nil
77
+ Controller.new(@current_working_directory).compile_html
78
+
79
+ elsif @args[2] =~ /\A[0-9]+\z/
80
+ Controller.new(@current_working_directory).compile_html_by_index(@args[2].to_i)
81
+
82
+ else
83
+ puts CliHelp.new(:compile).message
84
+ end
85
+ end
86
+
87
+
88
+ def evaluate_command_concat
89
+ Controller.new(@current_working_directory).concat
90
+ end
91
+
92
+
93
+
94
+ def evaluate_command_help
95
+ if @args[1] == nil
96
+ puts CliHelp.new(:summary).message
97
+
98
+ else
99
+ case @args[1]
100
+ when 'compile'
101
+ puts CliHelp.new(:compile).message
102
+ when 'concat'
103
+ puts CliHelp.new(:concat).message
104
+ when 'inspect'
105
+ puts CliHelp.new(:inspect).message
106
+ when 'new'
107
+ puts CliHelp.new(:new).message
108
+ when 'reset'
109
+ puts CliHelp.new(:reset).message
110
+ else
111
+ puts CliHelp.new(:summary).message
112
+ end
113
+ end
114
+ end
115
+
116
+
117
+ def evaluate_command_inspect
118
+ Controller.new(@current_working_directory).inspect
119
+ end
120
+
121
+
122
+ def evaluate_command_new
123
+ Controller.new(@current_working_directory).new_project
124
+ end
125
+
126
+
127
+ def evaluate_command_reset
128
+ if @args[1] == nil
129
+ puts CliHelp.new(:reset).message
130
+
131
+ else
132
+ case @args[1]
133
+ when 'css'
134
+ Controller.new(@current_working_directory).reset_css
135
+ else
136
+ puts CliHelp.new(:reset).message
137
+ end
138
+ end
139
+ end
140
+
141
+
142
+ end
143
+ end
@@ -0,0 +1,28 @@
1
+ module Muwu
2
+ class CliHelp
3
+
4
+
5
+ def initialize(message)
6
+ @heading = File.open(File.join(GEM_HOME_LIB_MUWU,'cli/help/heading')).read.strip
7
+ @version = "#{version_statement}\n"
8
+ @message = File.open(File.join(GEM_HOME_LIB_MUWU,'cli/help',message.to_s.downcase)).read.strip
9
+ end
10
+
11
+
12
+ def message
13
+ [@heading, @version, @message].join("\n")
14
+ end
15
+
16
+
17
+
18
+ private
19
+
20
+
21
+ def version_statement
22
+ "\# version #{VERSION}"
23
+ end
24
+
25
+
26
+ end
27
+ end
28
+
@@ -0,0 +1,22 @@
1
+ - muwu compile
2
+ - Compile all parts of the the project located in the current working
3
+ directory.
4
+
5
+ - muwu compile css
6
+ - Compile only the stylesheet for the project.
7
+
8
+ - muwu compile html
9
+ - Compile only the html file(s) for the project.
10
+
11
+ - muwu compile html [index]
12
+ - Compile only a single outlined content document, indicated by
13
+ [index]. Use the command `muwu inspect` to determine the index
14
+ number of a document.
15
+
16
+ - muwu compile js
17
+ - Compile only the javascript library (if applicable) for the project.
18
+
19
+ * Compiling a project will overwrite any previous output files without
20
+ any warning.
21
+
22
+ * You can specify output filenames in `options.yml`.
@@ -0,0 +1,8 @@
1
+ - muwu concat
2
+ - Combine all source files from the outline into a single markdown
3
+ document.
4
+
5
+ * Compiling a project will overwrite any previous output files without
6
+ any warning.
7
+
8
+ * This feature is still experimental.
@@ -0,0 +1,2 @@
1
+ # muwu - Markup Writeup
2
+ # Compiles markup files (Markdown and YAML) into an HTML document
@@ -0,0 +1,7 @@
1
+ - muwu inspect
2
+ - Inspect the project in the current working directory, and show details
3
+ about the project, the project outline, and the project manifest (the list
4
+ of documents that would be produced by the command `muwu compile`.)
5
+
6
+ * Inspecting a project does not create or overwrite any files.
7
+
@@ -0,0 +1,8 @@
1
+ - muwu new
2
+ - Create a new project as a subdirectory from the current working directory.
3
+ Muwu will ask for a directory name. If the directory does not exist, Muwu
4
+ will create it and fill it with a blank new project.
5
+
6
+ * Only alphanumeric (a-z, A-Z, 0-9) and underscore (_) characters are allowed
7
+ in the directory name.
8
+
@@ -0,0 +1,14 @@
1
+ - reset css
2
+ - Reset the `config/css` folder. The following files and folders will
3
+ revert to their original state:
4
+
5
+ - config/css/base/
6
+ - config/css/colors/dark.scss
7
+ - config/css/colors/index.scss
8
+ - config/css/colors/light.scss
9
+ - config/css/index.scss
10
+
11
+ * If `config/css/extensions` does exist, it and its contents will remain
12
+ unchanged.
13
+
14
+ * If `config/css/extensions` does not exist, Muwu will create it.
@@ -0,0 +1,14 @@
1
+ "muwu – Because sometimes WYSIWYG is not WYW."
2
+
3
+ Command line:
4
+ muwu compile compile a project into an HTML document suite
5
+ muwu concat combine all source text into a single .md file
6
+ muwu help show this message
7
+ muwu inspect inspect a project
8
+ muwu new create a new project directory
9
+ muwu reset css reset the default CSS files
10
+
11
+ All comands operate within the current working directory.
12
+
13
+ For more detailed instructions:
14
+ muwu help [command]
@@ -0,0 +1,120 @@
1
+ module Muwu
2
+ class Controller
3
+
4
+
5
+ include Muwu
6
+
7
+
8
+ def initialize(current_working_directory)
9
+ @current_working_directory = File.absolute_path(current_working_directory)
10
+ @project = nil
11
+ end
12
+
13
+
14
+
15
+ public
16
+
17
+
18
+ def compile
19
+ @project = read_project_from_current_working_directory
20
+ if @project.does_not_have_crucial_files
21
+ reply_folder_does_not_have_valid_project
22
+ else
23
+ RenderHtml.new(@project).render
24
+ end
25
+ end
26
+
27
+
28
+ def compile_css
29
+ @project = read_project_from_current_working_directory
30
+ if @project.does_not_have_crucial_files
31
+ reply_folder_does_not_have_valid_project
32
+ else
33
+ RenderHtml.new(@project).render_css_only
34
+ end
35
+ end
36
+
37
+
38
+ def compile_html_by_index(index)
39
+ @project = read_project_from_current_working_directory
40
+ if @project.does_not_have_crucial_files
41
+ reply_folder_does_not_have_valid_project
42
+ else
43
+ RenderHtml.new(@project).render_html_by_index(index)
44
+ end
45
+ end
46
+
47
+
48
+ def compile_html
49
+ @project = read_project_from_current_working_directory
50
+ if @project.does_not_have_crucial_files
51
+ reply_folder_does_not_have_valid_project
52
+ else
53
+ RenderHtml.new(@project).render_html_only
54
+ end
55
+ end
56
+
57
+
58
+ def compile_js
59
+ @project = read_project_from_current_working_directory
60
+ if @project.does_not_have_crucial_files
61
+ reply_folder_does_not_have_valid_project
62
+ else
63
+ RenderHtml.new(@project).render_js_only
64
+ end
65
+ end
66
+
67
+
68
+ def concat
69
+ @project = read_project_from_current_working_directory
70
+ if @project.does_not_have_crucial_files
71
+ reply_folder_does_not_have_valid_project
72
+ else
73
+ RenderConcat.new(@project).render
74
+ end
75
+ end
76
+
77
+
78
+ def inspect
79
+ @project = read_project_from_current_working_directory
80
+ if @project.does_not_have_crucial_files
81
+ reply_folder_does_not_have_valid_project
82
+ else
83
+ RenderInspector.new(@project).render_inspector
84
+ end
85
+ end
86
+
87
+
88
+ def new_project
89
+ metadata = ControllerInteraction.new.request_metadata
90
+ @project = ProjectStarter.new(@current_working_directory, metadata).new_project
91
+ ProjectWriter.new(@project).write
92
+ end
93
+
94
+
95
+ def reset_css
96
+ @project = read_project_from_current_working_directory
97
+ if @project.does_not_have_crucial_files
98
+ reply_folder_does_not_have_valid_project
99
+ elsif ControllerInteraction.new.confirm_reset_css(@project)
100
+ ProjectResetCss.new(@project).reset_css
101
+ end
102
+ end
103
+
104
+
105
+
106
+ private
107
+
108
+
109
+ def read_project_from_current_working_directory
110
+ ProjectReader.build { |b| b.load_path(@current_working_directory) }
111
+ end
112
+
113
+
114
+ def reply_folder_does_not_have_valid_project
115
+ puts @project.exceptions
116
+ puts "Is this a Muwu project folder?"
117
+ end
118
+
119
+ end
120
+ end
@@ -0,0 +1,146 @@
1
+ module Muwu
2
+ class ControllerInteraction
3
+
4
+
5
+ attr_accessor :slug
6
+
7
+
8
+ def initialize
9
+ @slug = ''
10
+ end
11
+
12
+
13
+
14
+ public
15
+
16
+
17
+ def confirm_reset_css(project)
18
+ render_reset_css_heading(project)
19
+ render_reset_css_prompt
20
+ @answer = $stdin.gets.chomp.strip.downcase
21
+ if @answer == 'y'
22
+ return true
23
+ else
24
+ return false
25
+ end
26
+ end
27
+
28
+
29
+ def request_metadata
30
+ request_metadata_phase_1_render_heading
31
+ request_metadata_phase_2_request_and_set_slug
32
+ { slug: @slug }
33
+ end
34
+
35
+
36
+ def request_metadata_phase_1_render_heading
37
+ render_new_project_heading
38
+ render_lf
39
+ end
40
+
41
+
42
+ def request_metadata_phase_2_request_and_set_slug
43
+ render_slug_heading
44
+ while @slug == ''
45
+ render_slug_can_not_be_blank
46
+ render_slug_prompt
47
+ @slug = $stdin.gets.chomp.strip
48
+ if @slug.match(/\W/)
49
+ @slug.gsub!(/\W/,'')
50
+ render_slug_was_sanitized(result: @slug)
51
+ end
52
+ end
53
+ render_lf
54
+ end
55
+
56
+
57
+
58
+ private
59
+
60
+
61
+
62
+ def determine_reset_css_files(project)
63
+ [
64
+ File.join(project.path_css_base),
65
+ File.join(project.path_css_colors, 'dark.scss'),
66
+ File.join(project.path_css_colors, 'index.scss'),
67
+ File.join(project.path_css_colors, 'light.scss'),
68
+ File.join(project.path_css, 'index.scss'),
69
+ ]
70
+ end
71
+
72
+
73
+ def render_lf
74
+ puts "\n"
75
+ end
76
+
77
+
78
+ def render_new_project_heading
79
+ puts '# Muwu'
80
+ puts '# New Project'
81
+ end
82
+
83
+
84
+ def render_reset_css_heading(project)
85
+ puts '# Muwu'
86
+ puts '# Reset CSS'
87
+ puts
88
+ puts '- This will reset the following files and folders to their original state:'
89
+ puts
90
+ determine_reset_css_files(project).each do |file|
91
+ puts " - #{file}"
92
+ end
93
+ puts
94
+ puts "* If #{project.path_css_extensions} does not exist, it will be created."
95
+ puts ' Otherwise, its existing contents will remain unchanged.'
96
+ puts
97
+ end
98
+
99
+
100
+ def render_reset_css_prompt
101
+ print '> Continue with CSS reset? (y/N) '
102
+ end
103
+
104
+
105
+ def render_slug_heading
106
+ puts '# Project Directory Name'
107
+ puts '- Word characters `[a-zA-Z0-9_]` only; non-word characters will be removed.'
108
+ end
109
+
110
+
111
+ def render_slug_prompt
112
+ print '> Directory Name for project: '
113
+ end
114
+
115
+
116
+ def render_slug_can_not_be_blank
117
+ puts '- Directory Name can not be blank.'
118
+ end
119
+
120
+
121
+ def render_slug_was_sanitized(result: nil)
122
+ puts '- Directory Name contained non-word characters that were removed.'
123
+ if result
124
+ puts " - Modified Directory Name: `#{result}`"
125
+ end
126
+ end
127
+
128
+
129
+ def render_title_heading
130
+ puts "\n"
131
+ puts '# Project Title'
132
+ end
133
+
134
+
135
+ def render_title_prompt
136
+ print '> Title of project: '
137
+ end
138
+
139
+
140
+ def render_title_can_not_be_blank
141
+ puts '- Title can not be blank.'
142
+ end
143
+
144
+
145
+ end
146
+ end