muwu 2.5.1 → 3.0.0.rc1

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 (55) hide show
  1. checksums.yaml +4 -4
  2. data/lib/{muwu_loader.rb → loader.rb} +4 -2
  3. data/lib/muwu.rb +3 -3
  4. data/lib/muwu/cli/cli.rb +52 -11
  5. data/lib/muwu/cli/help/compile +4 -4
  6. data/lib/muwu/cli/help/publish +20 -0
  7. data/lib/muwu/cli/help/reset +6 -3
  8. data/lib/muwu/cli/help/summary +4 -2
  9. data/lib/muwu/cli/help/sync +26 -0
  10. data/lib/muwu/cli/help/view +3 -0
  11. data/lib/muwu/controller/controller.rb +71 -18
  12. data/lib/muwu/controller/controller_interaction.rb +66 -44
  13. data/lib/muwu/default/default.rb +14 -9
  14. data/lib/muwu/destination/destination.rb +61 -57
  15. data/lib/muwu/destination_builder/destination_builder.rb +31 -33
  16. data/lib/muwu/manifest_task/document_css.rb +5 -0
  17. data/lib/muwu/manifest_task/document_html.rb +6 -1
  18. data/lib/muwu/manifest_task/document_js.rb +6 -1
  19. data/lib/muwu/manifest_task_builder/text_item_builder.rb +1 -8
  20. data/lib/muwu/project/project.rb +146 -127
  21. data/lib/muwu/project_builder/assets/config/css/base/html_elements.scss +19 -15
  22. data/lib/muwu/project_builder/assets/config/css/base/mixin_text_section_heading.scss +12 -11
  23. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_contents.scss +5 -5
  24. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_metadata.scss +2 -4
  25. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_navigator.scss +3 -4
  26. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_subcontents.scss +5 -5
  27. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_text.scss +16 -15
  28. data/lib/muwu/project_builder/assets/config/css/base/section_muwu_title.scss +9 -6
  29. data/lib/muwu/project_builder/project_reader.rb +3 -0
  30. data/lib/muwu/project_builder/project_reset_compiled.rb +31 -0
  31. data/lib/muwu/project_builder/project_reset_css.rb +30 -30
  32. data/lib/muwu/project_builder/project_starter.rb +7 -7
  33. data/lib/muwu/project_builder/project_validator.rb +24 -0
  34. data/lib/muwu/project_builder/project_writer.rb +12 -11
  35. data/lib/muwu/project_exception/compiled_folder_not_found.rb +23 -0
  36. data/lib/muwu/project_exception/lynx_not_available.rb +23 -0
  37. data/lib/muwu/project_exception/option_remote_publish_value_nil.rb +18 -0
  38. data/lib/muwu/project_exception/option_remote_sync_value_nil.rb +18 -0
  39. data/lib/muwu/project_exception/rsync_not_available.rb +23 -0
  40. data/lib/muwu/project_exception/scp_not_available.rb +23 -0
  41. data/lib/muwu/project_exception_handler/fatal.rb +10 -9
  42. data/lib/muwu/project_options/project_options.rb +11 -8
  43. data/lib/muwu/project_options_builder/project_option_validator.rb +12 -12
  44. data/lib/muwu/project_options_builder/project_option_validator_value.rb +92 -76
  45. data/lib/muwu/publish/publish.rb +56 -0
  46. data/lib/muwu/render_concat/render_concat.rb +26 -27
  47. data/lib/muwu/render_html/render_html.rb +27 -24
  48. data/lib/muwu/render_html_partial/render_contents.rb +4 -1
  49. data/lib/muwu/render_html_partial/render_document_html.rb +64 -64
  50. data/lib/muwu/render_html_partial/render_text_item.rb +16 -16
  51. data/lib/muwu/sync/sync.rb +73 -0
  52. data/lib/muwu/var/deflistdiv.rb +0 -0
  53. data/lib/muwu/viewer/viewer.rb +25 -0
  54. data/test/what_no_tests.md +1 -3
  55. metadata +18 -5
@@ -17,16 +17,19 @@
17
17
  // proportional, while the content box could shrink). An HTML document with
18
18
  // adequately-defined heirarchial organization has no need for `padding-box`
19
19
  // sizing, and a layout editor working with a mindset of variable-size media
20
- // can successfully rely on `content-box` sizing.
20
+ // can successfully rely on `content-box` sizing.
21
21
  //
22
22
 
23
+ $muwu-root-font-size: 1rem;
24
+ $muwu-root-line-height: ($muwu-root-font-size * 1.16667);
25
+
23
26
  * {
24
27
  box-sizing: content-box;
25
- line-height: 1.16667;
28
+ font-size: $muwu-root-font-size;
29
+ line-height: $muwu-root-line-height;
26
30
  margin: 0;
27
31
  padding: 0;
28
32
  text-indent: 0;
29
- font-size: 1rem;
30
33
  }
31
34
 
32
35
 
@@ -41,16 +44,16 @@ body {
41
44
  }
42
45
 
43
46
  blockquote {
44
- margin: 1rem 2rem;
47
+ margin: $muwu-root-line-height 2rem;
45
48
  }
46
49
 
47
50
  code {
48
- font-size: 1rem;
51
+ font-size: $muwu-root-font-size;
49
52
  padding: 0rem 0.15rem;
50
53
  }
51
54
 
52
55
  dl {
53
- margin: 1rem 0;
56
+ margin: $muwu-root-line-height 0;
54
57
  div {
55
58
  dt {
56
59
  display: list-item;
@@ -63,7 +66,7 @@ dl {
63
66
  dd {
64
67
  display: list-item;
65
68
  list-style-type: none;
66
- p {
69
+ p {
67
70
  display: inline;
68
71
  }
69
72
  }
@@ -77,30 +80,31 @@ img {
77
80
  }
78
81
 
79
82
  h1, h2, h3, h4, h5, h6 {
80
- font-size: 1.125rem;
83
+ font-size: ($muwu-root-font-size * 1.125);
84
+ margin: $muwu-root-line-height 0rem;
81
85
  }
82
86
 
83
87
  hr {
84
- margin: 1rem 0;
88
+ margin: $muwu-root-line-height 0;
85
89
  border-width: 0;
86
90
  }
87
91
 
88
92
  ol {
89
- margin: 1rem;
93
+ margin: $muwu-root-line-height;
90
94
  ol, ul {
91
95
  margin: 0rem 1rem;
92
96
  }
93
97
  }
94
98
 
95
99
  p {
96
- margin: 1rem 0rem;
100
+ margin: $muwu-root-line-height 0rem;
97
101
  }
98
102
 
99
103
  pre {
100
- font-size: 0.9rem;
101
- margin: 1rem 0;
104
+ font-size: ($muwu-root-font-size * 0.9);
105
+ margin: $muwu-root-line-height 0;
102
106
  >code {
103
- font-size: 0.8rem;
107
+ font-size: ($muwu-root-font-size * 0.8);
104
108
  padding: 0rem 0rem;
105
109
  }
106
110
  }
@@ -110,7 +114,7 @@ q {
110
114
  }
111
115
 
112
116
  ul {
113
- margin: 1rem;
117
+ margin: $muwu-root-line-height;
114
118
  ol, ul {
115
119
  margin: 0rem 1rem;
116
120
  }
@@ -1,7 +1,17 @@
1
1
  @mixin text_section_heading($font-size, $margin-bottom) {
2
- >.section_number {
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 {
3
12
  font-size: $font-size;
4
- & + h1:first-of-type,
13
+ margin-bottom: 0;
14
+ & + h1:nth-of-type(2),
5
15
  & + h2:first-of-type,
6
16
  & + h3:first-of-type,
7
17
  & + h4:first-of-type,
@@ -11,13 +21,4 @@
11
21
  margin-bottom: $margin-bottom;
12
22
  }
13
23
  }
14
- >h1:first-child,
15
- >h2:first-child,
16
- >h3:first-child,
17
- >h4:first-child,
18
- >h5:first-child,
19
- >h6:first-child {
20
- font-size: $font-size;
21
- margin-bottom: $margin-bottom;
22
- }
23
24
  }
@@ -1,8 +1,8 @@
1
1
  body >div.contents {
2
- margin: 4em 0;
2
+ margin: ($muwu-root-line-height * 4) 0;
3
3
  >h1 {
4
- font-size: 1.25em;
5
- margin: 0 0 2rem 0;
4
+ font-size: ($muwu-root-font-size * 1.25);
5
+ margin: 0 0 ($muwu-root-line-height * 2) 0;
6
6
  text-align: left;
7
7
  }
8
8
  .compiler_warning {
@@ -33,7 +33,7 @@ body >div.contents {
33
33
  }
34
34
  td.heading {
35
35
  text-align: left;
36
- }
36
+ }
37
37
  td.number {
38
38
  text-align: right;
39
39
  }
@@ -44,7 +44,7 @@ body >div.contents {
44
44
  display: block;
45
45
  margin: 0rem;
46
46
  li {
47
- margin: 0.5rem 0rem;
47
+ margin: ($muwu-root-line-height * 0.5) 0rem;
48
48
  a {
49
49
  display: inline;
50
50
  }
@@ -1,8 +1,8 @@
1
1
  body >div.metadata {
2
- margin: 4em 0;
2
+ margin: ($muwu-root-line-height * 4) 0;
3
3
  dl {
4
4
  div {
5
- margin: 1rem 0;
5
+ margin: $muwu-root-line-height 0;
6
6
  dt {
7
7
  font-weight: bold;
8
8
  display: block;
@@ -13,5 +13,3 @@ body >div.metadata {
13
13
  }
14
14
  }
15
15
  }
16
-
17
-
@@ -1,13 +1,12 @@
1
1
  body >div.navigator {
2
- margin: 0.5rem 0;
2
+ margin: ($muwu-root-line-height * 0.5) 0;
3
3
  nav.document_links {
4
4
  width: 100%;
5
5
  display: flex;
6
6
  justify-content: space-around;
7
7
  a.document_link {
8
- font-size: 0.8rem;
9
- padding: 0.5rem;
8
+ font-size: ($muwu-root-font-size * 0.8);
9
+ padding: ($muwu-root-line-height * 0.5);
10
10
  }
11
11
  }
12
12
  }
13
-
@@ -1,8 +1,8 @@
1
1
  body >div.subcontents {
2
- margin: 4em 0;
2
+ margin: ($muwu-root-line-height * 4) 0;
3
3
  >h1 {
4
- font-size: 1.75em;
5
- margin: 0 0 2rem 0;
4
+ font-size: ($muwu-root-font-size * 1.75);
5
+ margin: 0 0 ($muwu-root-line-height * 2) 0;
6
6
  text-align: left;
7
7
  }
8
8
  .compiler_warning {
@@ -33,7 +33,7 @@ body >div.subcontents {
33
33
  }
34
34
  td.heading {
35
35
  text-align: left;
36
- }
36
+ }
37
37
  td.number {
38
38
  text-align: right;
39
39
  }
@@ -44,7 +44,7 @@ body >div.subcontents {
44
44
  display: block;
45
45
  margin: 0rem 0.5rem;
46
46
  li {
47
- margin: 0.5rem 0rem;
47
+ margin: ($muwu-root-line-height * 0.5) 0rem;
48
48
  a {
49
49
  display: inline;
50
50
  }
@@ -1,7 +1,7 @@
1
1
  @import 'mixin_text_section_heading';
2
2
 
3
3
  body >div.text {
4
- margin: 6rem 0rem;
4
+ margin: ($muwu-root-line-height * 6) 0rem;
5
5
  ol {
6
6
  padding-left: 1rem;
7
7
  }
@@ -9,40 +9,41 @@ body >div.text {
9
9
  padding-left: 1rem;
10
10
  }
11
11
 
12
- section[data-section_depth] {
12
+ section[data-section_depth] {
13
13
  >.section_number {
14
14
  font-weight: bold;
15
15
  display: block;
16
+ margin-bottom: none;
16
17
  text-decoration: none;
17
18
  }
18
19
  nav.document_links {
19
20
  width: 100%;
20
- margin: 2rem 0rem 4rem 0rem;
21
+ margin: ($muwu-root-line-height * 2) 0rem ($muwu-root-line-height * 4) 0rem;
21
22
  text-align: right;
22
23
  a.document_link {
23
- font-size: 0.75em;
24
+ font-size: ($muwu-root-font-size * 0.75);
24
25
  margin: 0rem 0.5rem
25
26
  }
26
27
  }
27
28
  }
28
-
29
+
29
30
  section[data-section_depth='1'] {
30
- margin: 6rem 0;
31
- @include text_section_heading(1.5rem, 2rem);
31
+ margin: ($muwu-root-line-height * 6) 0;
32
+ @include text_section_heading(($muwu-root-font-size * 1.5), ($muwu-root-line-height * 2));
32
33
  }
33
-
34
+
34
35
  section[data-section_depth='2'] {
35
- margin: 4rem 0;
36
- @include text_section_heading(1.375rem, 1.5rem);
36
+ margin: ($muwu-root-line-height * 4) 0;
37
+ @include text_section_heading(($muwu-root-font-size * 1.375), ($muwu-root-line-height * 1.5));
37
38
  }
38
39
 
39
40
  section[data-section_depth='3'] {
40
- margin: 2rem 0;
41
- @include text_section_heading(1.25rem, 1.5rem);
41
+ margin: ($muwu-root-line-height * 2) 0;
42
+ @include text_section_heading(($muwu-root-font-size * 1.25), ($muwu-root-line-height * 1.5));
42
43
  section[data-section_depth] {
43
- margin: 2rem 0;
44
- @include text_section_heading(1rem, 1.5rem);
44
+ margin: ($muwu-root-line-height * 2) 0;
45
+ @include text_section_heading(($muwu-root-font-size * 1), ($muwu-root-line-height * 1.5));
45
46
  }
46
47
  }
47
48
 
48
- }
49
+ }
@@ -1,20 +1,23 @@
1
1
  body >div.title {
2
- margin: 4em 0;
2
+ margin: ($muwu-root-line-height * 4) 0;
3
3
  text-align: left;
4
4
  h1 {
5
5
  display: block;
6
6
  font-weight: bold;
7
- margin: 0.5rem 0;
7
+ margin: ($muwu-root-line-height * 0.5) 0;
8
8
  }
9
9
  [data-metadata_key='title'] {
10
- font-size: 2.0em;
10
+ font-size: ($muwu-root-font-size * 2);
11
+ line-height: ($muwu-root-line-height * 2);
11
12
  }
12
13
  [data-metadata_key='subtitle'] {
13
- font-size: 1.5em;
14
+ font-size: ($muwu-root-font-size * 1.5);
15
+ line-height: ($muwu-root-line-height * 1.5);
14
16
  }
15
17
  [data-metadata_key='author'] {
16
- margin: 2rem 0rem;
17
- font-size: 1.25em;
18
+ font-size: ($muwu-root-font-size * 1.25);
19
+ line-height: ($muwu-root-line-height * 1.25);
20
+ margin: ($muwu-root-line-height * 2) 0rem;
18
21
  }
19
22
  h1:first-child {
20
23
  margin-top: 0;
@@ -77,7 +77,10 @@ module Muwu
77
77
 
78
78
 
79
79
  def phase_4_validate
80
+ @validator.validate_dir_compiled
80
81
  @validator.validate_file_css
82
+ @validator.validate_option_remote_publish
83
+ @validator.validate_option_remote_sync
81
84
  @validator.validate_output_destination_and_formats
82
85
  @validator.validate_scenario_if_more_than_one_document
83
86
  end
@@ -0,0 +1,31 @@
1
+ module Muwu
2
+ class ProjectResetCompiled
3
+
4
+
5
+ require 'fileutils'
6
+
7
+
8
+ include Muwu
9
+
10
+
11
+ def initialize(project)
12
+ @project = project
13
+ end
14
+
15
+
16
+ public
17
+
18
+
19
+ def reset_compiled
20
+ puts "- Resetting #{@project.path_compiled}"
21
+ begin
22
+ FileUtils.remove_entry_secure(@project.path_compiled)
23
+ rescue Errno::ENOENT
24
+ ensure
25
+ FileUtils.mkdir(@project.path_compiled)
26
+ end
27
+ end
28
+
29
+
30
+ end
31
+ end
@@ -1,21 +1,21 @@
1
1
  module Muwu
2
2
  class ProjectResetCss
3
-
4
-
3
+
4
+
5
5
  include Muwu
6
-
7
-
6
+
7
+
8
8
  require 'fileutils'
9
-
10
-
9
+
10
+
11
11
  def initialize(project)
12
12
  @project = project
13
13
  end
14
-
15
-
14
+
15
+
16
16
  public
17
-
18
-
17
+
18
+
19
19
  def reset_css
20
20
  phase_1_verify_or_create_css_folder
21
21
  phase_2_clear_base_folder
@@ -25,8 +25,8 @@ module Muwu
25
25
  phase_6_copy_index
26
26
  phase_7_verify_or_create_extensions_folder
27
27
  end
28
-
29
-
28
+
29
+
30
30
  def phase_1_verify_or_create_css_folder
31
31
  if Dir.exists?(@project.path_config) == false
32
32
  puts "Creating folder #{@project.path_config}"
@@ -37,50 +37,50 @@ module Muwu
37
37
  FileUtils.mkdir(@project.path_css)
38
38
  end
39
39
  end
40
-
41
-
40
+
41
+
42
42
  def phase_2_clear_base_folder
43
43
  if Dir.exists?(@project.path_css_base) == true
44
44
  puts "Clearing folder #{@project.path_css_base}"
45
- FileUtils.remove_dir(@project.path_css_base)
45
+ FileUtils.remove_entry_secure(@project.path_css_base)
46
46
  end
47
47
  end
48
-
49
-
48
+
49
+
50
50
  def phase_3_copy_base_css_files
51
51
  folder_source_gem = File.absolute_path(File.join(Muwu::GEM_HOME_LIB, 'muwu','project_builder','assets','config','css','base'))
52
52
  folder_destination_project = @project.path_css_base
53
53
  puts "Resetting folder #{@project.path_css_base}"
54
54
  FileUtils.cp_r(folder_source_gem, folder_destination_project)
55
55
  end
56
-
57
-
56
+
57
+
58
58
  def phase_4_verify_or_create_colors_folder
59
59
  if Dir.exists?(@project.path_css_colors) == false
60
60
  puts "Creating folder #{@project.path_css_colors}"
61
61
  FileUtils.mkdir(@project.path_css_colors)
62
62
  end
63
63
  end
64
-
65
-
64
+
65
+
66
66
  def phase_5_copy_colors_css_files
67
67
  colors_source_gem = File.absolute_path(File.join(Muwu::GEM_HOME_LIB, 'muwu','project_builder','assets','config','css','colors','.'))
68
68
  colors_destination_project = @project.path_css
69
69
  puts "Resetting file #{File.join(@project.path_css_colors,'dark.scss')}"
70
- puts "Resetting file #{File.join(@project.path_css_colors,'dark.scss')}"
71
- puts "Resetting file #{File.join(@project.path_css_colors,'dark.scss')}"
70
+ puts "Resetting file #{File.join(@project.path_css_colors,'index.scss')}"
71
+ puts "Resetting file #{File.join(@project.path_css_colors,'light.scss')}"
72
72
  FileUtils.cp_r(colors_source_gem, colors_destination_project)
73
73
  end
74
-
75
-
74
+
75
+
76
76
  def phase_6_copy_index
77
77
  index_source_gem = File.absolute_path(File.join(Muwu::GEM_HOME_LIB, 'muwu','project_builder','assets','config','css','index.scss'))
78
78
  index_destination_project = @project.path_css
79
79
  puts "Resetting file #{File.join(@project.path_css, 'index.scss')}"
80
80
  FileUtils.cp_r(index_source_gem, index_destination_project)
81
81
  end
82
-
83
-
82
+
83
+
84
84
  def phase_7_verify_or_create_extensions_folder
85
85
  if Dir.exists?(@project.path_css_extensions) == false
86
86
  folder_source_gem = File.absolute_path(File.join(Muwu::GEM_HOME_LIB, 'muwu','project_builder','assets','config','css','extensions'))
@@ -89,7 +89,7 @@ module Muwu
89
89
  FileUtils.cp_r(folder_source_gem, folder_destination_project)
90
90
  end
91
91
  end
92
-
93
-
92
+
93
+
94
94
  end
95
- end
95
+ end