minimal-mistakes-jekyll 4.4.1 → 4.4.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (172) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/LICENSE.txt +20 -20
  4. data/README.md +160 -160
  5. data/_includes/analytics-providers/custom.html +2 -2
  6. data/_includes/analytics-providers/google-universal.html +9 -9
  7. data/_includes/analytics-providers/google.html +10 -10
  8. data/_includes/analytics.html +11 -11
  9. data/_includes/archive-single.html +37 -37
  10. data/_includes/author-profile-custom-links.html +6 -6
  11. data/_includes/author-profile.html +249 -241
  12. data/_includes/base_path +4 -4
  13. data/_includes/breadcrumbs.html +39 -39
  14. data/_includes/browser-upgrade.html +2 -2
  15. data/_includes/category-list.html +25 -25
  16. data/_includes/comment.html +21 -21
  17. data/_includes/comments-providers/custom.html +2 -2
  18. data/_includes/comments-providers/discourse.html +13 -13
  19. data/_includes/comments-providers/disqus.html +21 -21
  20. data/_includes/comments-providers/facebook.html +7 -7
  21. data/_includes/comments-providers/google-plus.html +1 -1
  22. data/_includes/comments-providers/scripts.html +15 -17
  23. data/_includes/comments-providers/staticman.html +41 -41
  24. data/_includes/comments.html +95 -83
  25. data/_includes/feature_row +49 -49
  26. data/_includes/figure +12 -12
  27. data/_includes/footer.html +25 -22
  28. data/_includes/footer/custom.html +2 -2
  29. data/_includes/gallery +46 -46
  30. data/_includes/group-by-array +46 -46
  31. data/_includes/head.html +33 -33
  32. data/_includes/head/custom.html +4 -4
  33. data/_includes/masthead.html +20 -20
  34. data/_includes/nav_list +46 -46
  35. data/_includes/page__hero.html +53 -53
  36. data/_includes/page__hero_video.html +4 -4
  37. data/_includes/page__taxonomy.html +6 -6
  38. data/_includes/paginator.html +69 -69
  39. data/_includes/post_pagination.html +13 -13
  40. data/_includes/read-time.html +14 -14
  41. data/_includes/scripts.html +4 -4
  42. data/_includes/seo.html +147 -147
  43. data/_includes/sidebar.html +22 -22
  44. data/_includes/social-share.html +13 -13
  45. data/_includes/tag-list.html +25 -25
  46. data/_includes/toc +6 -6
  47. data/_includes/video +11 -11
  48. data/_layouts/archive-taxonomy.html +14 -14
  49. data/_layouts/archive.html +25 -25
  50. data/_layouts/compress.html +10 -10
  51. data/_layouts/default.html +34 -34
  52. data/_layouts/home.html +11 -11
  53. data/_layouts/single.html +74 -74
  54. data/_layouts/splash.html +21 -21
  55. data/_sass/minimal-mistakes.scss +39 -39
  56. data/_sass/minimal-mistakes/_animations.scss +20 -20
  57. data/_sass/minimal-mistakes/_archive.scss +237 -237
  58. data/_sass/minimal-mistakes/_base.scss +314 -314
  59. data/_sass/minimal-mistakes/_buttons.scss +152 -152
  60. data/_sass/minimal-mistakes/_footer.scss +79 -79
  61. data/_sass/minimal-mistakes/_forms.scss +390 -390
  62. data/_sass/minimal-mistakes/_masthead.scss +76 -76
  63. data/_sass/minimal-mistakes/_mixins.scss +52 -52
  64. data/_sass/minimal-mistakes/_navigation.scss +551 -558
  65. data/_sass/minimal-mistakes/_notices.scss +98 -98
  66. data/_sass/minimal-mistakes/_page.scss +407 -407
  67. data/_sass/minimal-mistakes/_print.scss +237 -237
  68. data/_sass/minimal-mistakes/_reset.scss +186 -186
  69. data/_sass/minimal-mistakes/_sidebar.scss +230 -230
  70. data/_sass/minimal-mistakes/_syntax.scss +145 -145
  71. data/_sass/minimal-mistakes/_tables.scss +37 -37
  72. data/_sass/minimal-mistakes/_utilities.scss +517 -512
  73. data/_sass/minimal-mistakes/_variables.scss +129 -128
  74. data/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss +114 -114
  75. data/_sass/minimal-mistakes/vendor/breakpoint/_context.scss +94 -94
  76. data/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss +151 -151
  77. data/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss +49 -49
  78. data/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss +15 -15
  79. data/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss +215 -215
  80. data/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss +82 -82
  81. data/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss +70 -70
  82. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss +33 -33
  83. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss +82 -82
  84. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss +31 -31
  85. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss +26 -26
  86. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss +36 -36
  87. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss +21 -21
  88. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss +22 -22
  89. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss +21 -21
  90. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -60
  91. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss +13 -13
  92. data/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss +18 -18
  93. data/_sass/minimal-mistakes/vendor/font-awesome/_animated.scss +34 -34
  94. data/_sass/minimal-mistakes/vendor/font-awesome/_bordered-pulled.scss +25 -25
  95. data/_sass/minimal-mistakes/vendor/font-awesome/_core.scss +12 -12
  96. data/_sass/minimal-mistakes/vendor/font-awesome/_fixed-width.scss +6 -6
  97. data/_sass/minimal-mistakes/vendor/font-awesome/_font-awesome.scss +18 -18
  98. data/_sass/minimal-mistakes/vendor/font-awesome/_icons.scss +789 -789
  99. data/_sass/minimal-mistakes/vendor/font-awesome/_larger.scss +13 -13
  100. data/_sass/minimal-mistakes/vendor/font-awesome/_list.scss +19 -19
  101. data/_sass/minimal-mistakes/vendor/font-awesome/_mixins.scss +60 -60
  102. data/_sass/minimal-mistakes/vendor/font-awesome/_path.scss +15 -15
  103. data/_sass/minimal-mistakes/vendor/font-awesome/_rotated-flipped.scss +20 -20
  104. data/_sass/minimal-mistakes/vendor/font-awesome/_screen-reader.scss +5 -5
  105. data/_sass/minimal-mistakes/vendor/font-awesome/_stacked.scss +20 -20
  106. data/_sass/minimal-mistakes/vendor/font-awesome/_variables.scss +800 -800
  107. data/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss +649 -649
  108. data/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss +45 -45
  109. data/_sass/minimal-mistakes/vendor/susy/_su.scss +4 -4
  110. data/_sass/minimal-mistakes/vendor/susy/_susy.scss +4 -4
  111. data/_sass/minimal-mistakes/vendor/susy/_susyone.scss +4 -4
  112. data/_sass/minimal-mistakes/vendor/susy/susy/_su.scss +7 -7
  113. data/_sass/minimal-mistakes/vendor/susy/susy/language/_susy.scss +24 -24
  114. data/_sass/minimal-mistakes/vendor/susy/susy/language/_susyone.scss +13 -13
  115. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_background.scss +385 -385
  116. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_bleed.scss +200 -200
  117. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_box-sizing.scss +47 -47
  118. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_breakpoint-plugin.scss +185 -185
  119. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_container.scss +81 -81
  120. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_context.scss +36 -36
  121. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_gallery.scss +94 -94
  122. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_grids.scss +64 -64
  123. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_gutters.scss +154 -154
  124. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_isolate.scss +77 -77
  125. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_margins.scss +94 -94
  126. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_padding.scss +74 -74
  127. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_rows.scss +138 -138
  128. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_settings.scss +216 -216
  129. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_span.scss +163 -163
  130. data/_sass/minimal-mistakes/vendor/susy/susy/language/susy/_validation.scss +16 -16
  131. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_background.scss +18 -18
  132. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_functions.scss +377 -377
  133. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_grid.scss +312 -312
  134. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_isolation.scss +51 -51
  135. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_margin.scss +93 -93
  136. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_media.scss +105 -105
  137. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_padding.scss +92 -92
  138. data/_sass/minimal-mistakes/vendor/susy/susy/language/susyone/_settings.scss +60 -60
  139. data/_sass/minimal-mistakes/vendor/susy/susy/output/_float.scss +9 -9
  140. data/_sass/minimal-mistakes/vendor/susy/susy/output/_shared.scss +15 -15
  141. data/_sass/minimal-mistakes/vendor/susy/susy/output/_support.scss +9 -9
  142. data/_sass/minimal-mistakes/vendor/susy/susy/output/float/_container.scss +16 -16
  143. data/_sass/minimal-mistakes/vendor/susy/susy/output/float/_end.scss +40 -40
  144. data/_sass/minimal-mistakes/vendor/susy/susy/output/float/_isolate.scss +22 -22
  145. data/_sass/minimal-mistakes/vendor/susy/susy/output/float/_span.scss +35 -35
  146. data/_sass/minimal-mistakes/vendor/susy/susy/output/shared/_background.scss +26 -26
  147. data/_sass/minimal-mistakes/vendor/susy/susy/output/shared/_container.scss +21 -21
  148. data/_sass/minimal-mistakes/vendor/susy/susy/output/shared/_direction.scss +42 -42
  149. data/_sass/minimal-mistakes/vendor/susy/susy/output/shared/_inspect.scss +25 -25
  150. data/_sass/minimal-mistakes/vendor/susy/susy/output/shared/_margins.scss +23 -23
  151. data/_sass/minimal-mistakes/vendor/susy/susy/output/shared/_output.scss +14 -14
  152. data/_sass/minimal-mistakes/vendor/susy/susy/output/shared/_padding.scss +23 -23
  153. data/_sass/minimal-mistakes/vendor/susy/susy/output/support/_background.scss +58 -58
  154. data/_sass/minimal-mistakes/vendor/susy/susy/output/support/_box-sizing.scss +19 -19
  155. data/_sass/minimal-mistakes/vendor/susy/susy/output/support/_clearfix.scss +18 -18
  156. data/_sass/minimal-mistakes/vendor/susy/susy/output/support/_prefix.scss +19 -19
  157. data/_sass/minimal-mistakes/vendor/susy/susy/output/support/_rem.scss +22 -22
  158. data/_sass/minimal-mistakes/vendor/susy/susy/output/support/_support.scss +85 -85
  159. data/_sass/minimal-mistakes/vendor/susy/susy/su/_grid.scss +103 -103
  160. data/_sass/minimal-mistakes/vendor/susy/susy/su/_settings.scss +73 -73
  161. data/_sass/minimal-mistakes/vendor/susy/susy/su/_utilities.scss +111 -111
  162. data/_sass/minimal-mistakes/vendor/susy/susy/su/_validation.scss +57 -57
  163. data/assets/css/main.scss +6 -6
  164. data/assets/fonts/fontawesome-webfont.svg +2671 -2671
  165. data/assets/js/_main.js +72 -72
  166. data/assets/js/main.min.js +13 -13
  167. data/assets/js/plugins/jquery.fitvids.js +81 -81
  168. data/assets/js/plugins/jquery.greedy-navigation.js +77 -74
  169. data/assets/js/plugins/jquery.magnific-popup.js +2049 -2049
  170. data/assets/js/plugins/jquery.smooth-scroll.min.js +8 -8
  171. data/assets/js/vendor/jquery/jquery-1.12.4.min.js +4 -4
  172. metadata +7 -7
@@ -1,50 +1,50 @@
1
- @mixin legacy-settings-warning {
2
- $legacyVars: (
3
- 'default-media': 'default media',
4
- 'default-feature': 'default feature',
5
- 'force-media-all': 'force all media type',
6
- 'to-ems': 'to ems',
7
- 'resolutions': 'transform resolutions',
8
- 'no-queries': 'no queries',
9
- 'no-query-fallbacks': 'no query fallbacks',
10
- 'base-font-size': 'base font size',
11
- 'legacy-syntax': 'legacy syntax'
12
- );
13
-
14
- @each $legacy, $new in $legacyVars {
15
- @if global-variable-exists('breakpoint-' + $legacy) {
16
- @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release."
17
- }
18
- };
19
-
20
- //////////////////////////////
21
- // Hand correct each setting
22
- //////////////////////////////
23
- @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {
24
- @include breakpoint-set('default media', $breakpoint-default-media);
25
- }
26
- @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {
27
- @include breakpoint-set('default feature', $breakpoint-default-feature);
28
- }
29
- @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {
30
- @include breakpoint-set('force all media type', $breakpoint-force-media-all);
31
- }
32
- @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {
33
- @include breakpoint-set('to ems', $breakpoint-to-ems);
34
- }
35
- @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {
36
- @include breakpoint-set('transform resolutions', $breakpoint-resolutions);
37
- }
38
- @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {
39
- @include breakpoint-set('no queries', $breakpoint-no-queries);
40
- }
41
- @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {
42
- @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);
43
- }
44
- @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {
45
- @include breakpoint-set('base font size', $breakpoint-base-font-size);
46
- }
47
- @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {
48
- @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);
49
- }
1
+ @mixin legacy-settings-warning {
2
+ $legacyVars: (
3
+ 'default-media': 'default media',
4
+ 'default-feature': 'default feature',
5
+ 'force-media-all': 'force all media type',
6
+ 'to-ems': 'to ems',
7
+ 'resolutions': 'transform resolutions',
8
+ 'no-queries': 'no queries',
9
+ 'no-query-fallbacks': 'no query fallbacks',
10
+ 'base-font-size': 'base font size',
11
+ 'legacy-syntax': 'legacy syntax'
12
+ );
13
+
14
+ @each $legacy, $new in $legacyVars {
15
+ @if global-variable-exists('breakpoint-' + $legacy) {
16
+ @warn "In order to avoid variable namspace collisions, we have updated the way to change settings for Breakpoint. Please change all instances of `$breakpoint-#{$legacy}: {{setting}}` to `@include breakpoint-set('#{$new}', {{setting}})`. Variable settings, as well as this warning will be deprecated in a future release."
17
+ }
18
+ };
19
+
20
+ //////////////////////////////
21
+ // Hand correct each setting
22
+ //////////////////////////////
23
+ @if global-variable-exists('breakpoint-default-media') and $breakpoint-default-media != breakpoint-get('default media') {
24
+ @include breakpoint-set('default media', $breakpoint-default-media);
25
+ }
26
+ @if global-variable-exists('breakpoint-default-feature') and $breakpoint-default-feature != breakpoint-get('default feature') {
27
+ @include breakpoint-set('default feature', $breakpoint-default-feature);
28
+ }
29
+ @if global-variable-exists('breakpoint-force-media-all') and $breakpoint-force-media-all != breakpoint-get('force all media type') {
30
+ @include breakpoint-set('force all media type', $breakpoint-force-media-all);
31
+ }
32
+ @if global-variable-exists('breakpoint-to-ems') and $breakpoint-to-ems != breakpoint-get('to ems') {
33
+ @include breakpoint-set('to ems', $breakpoint-to-ems);
34
+ }
35
+ @if global-variable-exists('breakpoint-resolutions') and $breakpoint-resolutions != breakpoint-get('transform resolutions') {
36
+ @include breakpoint-set('transform resolutions', $breakpoint-resolutions);
37
+ }
38
+ @if global-variable-exists('breakpoint-no-queries') and $breakpoint-no-queries != breakpoint-get('no queries') {
39
+ @include breakpoint-set('no queries', $breakpoint-no-queries);
40
+ }
41
+ @if global-variable-exists('breakpoint-no-query-fallbacks') and $breakpoint-no-query-fallbacks != breakpoint-get('no query fallbacks') {
42
+ @include breakpoint-set('no query fallbacks', $breakpoint-no-query-fallbacks);
43
+ }
44
+ @if global-variable-exists('breakpoint-base-font-size') and $breakpoint-base-font-size != breakpoint-get('base font size') {
45
+ @include breakpoint-set('base font size', $breakpoint-base-font-size);
46
+ }
47
+ @if global-variable-exists('breakpoint-legacy-syntax') and $breakpoint-legacy-syntax != breakpoint-get('legacy syntax') {
48
+ @include breakpoint-set('legacy syntax', $breakpoint-legacy-syntax);
49
+ }
50
50
  }
@@ -1,15 +1,15 @@
1
- @function breakpoint-no-query($query) {
2
- @if type-of($query) == 'list' {
3
- $keyword: nth($query, 1);
4
-
5
- @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {
6
- @return nth($query, 2);
7
- }
8
- @else {
9
- @return false;
10
- }
11
- }
12
- @else {
13
- @return false;
14
- }
15
- }
1
+ @function breakpoint-no-query($query) {
2
+ @if type-of($query) == 'list' {
3
+ $keyword: nth($query, 1);
4
+
5
+ @if type-of($keyword) == 'string' and ($keyword == 'no-query' or $keyword == 'no query' or $keyword == 'fallback') {
6
+ @return nth($query, 2);
7
+ }
8
+ @else {
9
+ @return false;
10
+ }
11
+ }
12
+ @else {
13
+ @return false;
14
+ }
15
+ }
@@ -1,215 +1,215 @@
1
- //////////////////////////////
2
- // Import Parser Pieces
3
- //////////////////////////////
4
- @import "parsers/query";
5
- @import "parsers/single";
6
- @import "parsers/double";
7
- @import "parsers/triple";
8
- @import "parsers/resolution";
9
-
10
- $Memo-Exists: function-exists(memo-get) and function-exists(memo-set);
11
-
12
- //////////////////////////////
13
- // Breakpoint Function
14
- //////////////////////////////
15
- @function breakpoint($query, $contexts...) {
16
- $run: true;
17
- $return: ();
18
-
19
- // Grab the Memo Output if Memoization can be a thing
20
- @if $Memo-Exists {
21
- $return: memo-get(breakpoint, breakpoint $query $contexts);
22
-
23
- @if $return != null {
24
- $run: false;
25
- }
26
- }
27
-
28
- @if not $Memo-Exists or $run {
29
- // Internal Variables
30
- $query-string: '';
31
- $query-fallback: false;
32
- $return: ();
33
-
34
- // Reserve Global Private Breakpoint Context
35
- $holder-context: $private-breakpoint-context-holder;
36
- $holder-query-count: $private-breakpoint-query-count;
37
-
38
- // Reset Global Private Breakpoint Context
39
- $private-breakpoint-context-holder: () !global;
40
- $private-breakpoint-query-count: 0 !global;
41
-
42
-
43
- // Test to see if it's a comma-separated list
44
- $or-list: if(list-separator($query) == 'comma', true, false);
45
-
46
-
47
- @if ($or-list == false and breakpoint-get('legacy syntax') == false) {
48
- $query-string: breakpoint-parse($query);
49
- }
50
- @else {
51
- $length: length($query);
52
-
53
- $last: nth($query, $length);
54
- $query-fallback: breakpoint-no-query($last);
55
-
56
- @if ($query-fallback != false) {
57
- $length: $length - 1;
58
- }
59
-
60
- @if (breakpoint-get('legacy syntax') == true) {
61
- $mq: ();
62
-
63
- @for $i from 1 through $length {
64
- $mq: append($mq, nth($query, $i), comma);
65
- }
66
-
67
- $query-string: breakpoint-parse($mq);
68
- }
69
- @else {
70
- $query-string: '';
71
- @for $i from 1 through $length {
72
- $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i));
73
- }
74
- }
75
- }
76
-
77
- $return: ('query': $query-string,
78
- 'fallback': $query-fallback,
79
- 'context holder': $private-breakpoint-context-holder,
80
- 'query count': $private-breakpoint-query-count
81
- );
82
- @if length($contexts) > 0 and nth($contexts, 1) != false {
83
- @if $query-fallback != false {
84
- $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
85
- }
86
- $context-map: ();
87
- @each $context in $contexts {
88
- $context-map: map-merge($context-map, ($context: breakpoint-get-context($context)));
89
- }
90
- $return: map-merge($return, (context: $context-map));
91
- }
92
-
93
- // Reset Global Private Breakpoint Context
94
- $private-breakpoint-context-holder: () !global;
95
- $private-breakpoint-query-count: 0 !global;
96
-
97
- @if $Memo-Exists {
98
- $holder: memo-set(breakpoint, breakpoint $query $contexts, $return);
99
- }
100
- }
101
-
102
- @return $return;
103
- }
104
-
105
- //////////////////////////////
106
- // General Breakpoint Parser
107
- //////////////////////////////
108
- @function breakpoint-parse($query) {
109
- // Increase number of 'and' queries
110
- $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global;
111
-
112
- // Set up Media Type
113
- $query-print: '';
114
-
115
- $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all'));
116
- $empty-media: true;
117
- @if ($force-all == true) or (breakpoint-get('default media') != 'all') {
118
- // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
119
- $query-print: breakpoint-get('default media');
120
- $empty-media: false;
121
- }
122
-
123
-
124
- $query-resolution: false;
125
-
126
- $query-holder: breakpoint-parse-query($query);
127
-
128
-
129
-
130
- // Loop over each parsed out query and write it to $query-print
131
- $first: true;
132
-
133
- @each $feature in $query-holder {
134
- $length: length($feature);
135
-
136
- // Parse a single feature
137
- @if ($length == 1) {
138
- // Feature is currently a list, grab the actual value
139
- $feature: nth($feature, 1);
140
-
141
- // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type
142
- @if (breakpoint-is-media($feature)) {
143
- @if ($force-all == true) or ($feature != 'all') {
144
- // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
145
- $query-print: $feature;
146
- $empty-media: false;
147
-
148
- // Set Context
149
- $context-setter: private-breakpoint-set-context(media, $query-print);
150
- }
151
- }
152
- @else {
153
- $parsed: breakpoint-parse-single($feature, $empty-media, $first);
154
- $query-print: '#{$query-print} #{$parsed}';
155
- $first: false;
156
- }
157
- }
158
- // Parse a double feature
159
- @else if ($length == 2) {
160
- @if (breakpoint-is-resolution($feature) != false) {
161
- $query-resolution: $feature;
162
- }
163
- @else {
164
- $parsed: null;
165
- // If it's a string/number pair,
166
- // we check to see if one is a single-string value,
167
- // then we parse it as a normal double
168
- $alpha: nth($feature, 1);
169
- $beta: nth($feature, 2);
170
- @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) {
171
- $parsed: breakpoint-parse-single($alpha, $empty-media, $first);
172
- $query-print: '#{$query-print} #{$parsed}';
173
- $first: false;
174
- $parsed: breakpoint-parse-single($beta, $empty-media, $first);
175
- $query-print: '#{$query-print} #{$parsed}';
176
- }
177
- @else {
178
- $parsed: breakpoint-parse-double($feature, $empty-media, $first);
179
- $query-print: '#{$query-print} #{$parsed}';
180
- $first: false;
181
- }
182
- }
183
- }
184
- // Parse a triple feature
185
- @else if ($length == 3) {
186
- $parsed: breakpoint-parse-triple($feature, $empty-media, $first);
187
- $query-print: '#{$query-print} #{$parsed}';
188
- $first: false;
189
- }
190
-
191
- }
192
-
193
- @if ($query-resolution != false) {
194
- $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first);
195
- }
196
-
197
- // Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters
198
- @each $f, $v in $private-breakpoint-context-holder {
199
- $v-holder: $v;
200
- $length: length($v-holder);
201
- @if length($v-holder) < $private-breakpoint-query-count {
202
- @for $i from $length to $private-breakpoint-query-count {
203
- @if $f == 'media' {
204
- $v-holder: append($v-holder, breakpoint-get('default media'));
205
- }
206
- @else {
207
- $v-holder: append($v-holder, false);
208
- }
209
- }
210
- }
211
- $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global;
212
- }
213
-
214
- @return $query-print;
215
- }
1
+ //////////////////////////////
2
+ // Import Parser Pieces
3
+ //////////////////////////////
4
+ @import "parsers/query";
5
+ @import "parsers/single";
6
+ @import "parsers/double";
7
+ @import "parsers/triple";
8
+ @import "parsers/resolution";
9
+
10
+ $Memo-Exists: function-exists(memo-get) and function-exists(memo-set);
11
+
12
+ //////////////////////////////
13
+ // Breakpoint Function
14
+ //////////////////////////////
15
+ @function breakpoint($query, $contexts...) {
16
+ $run: true;
17
+ $return: ();
18
+
19
+ // Grab the Memo Output if Memoization can be a thing
20
+ @if $Memo-Exists {
21
+ $return: memo-get(breakpoint, breakpoint $query $contexts);
22
+
23
+ @if $return != null {
24
+ $run: false;
25
+ }
26
+ }
27
+
28
+ @if not $Memo-Exists or $run {
29
+ // Internal Variables
30
+ $query-string: '';
31
+ $query-fallback: false;
32
+ $return: ();
33
+
34
+ // Reserve Global Private Breakpoint Context
35
+ $holder-context: $private-breakpoint-context-holder;
36
+ $holder-query-count: $private-breakpoint-query-count;
37
+
38
+ // Reset Global Private Breakpoint Context
39
+ $private-breakpoint-context-holder: () !global;
40
+ $private-breakpoint-query-count: 0 !global;
41
+
42
+
43
+ // Test to see if it's a comma-separated list
44
+ $or-list: if(list-separator($query) == 'comma', true, false);
45
+
46
+
47
+ @if ($or-list == false and breakpoint-get('legacy syntax') == false) {
48
+ $query-string: breakpoint-parse($query);
49
+ }
50
+ @else {
51
+ $length: length($query);
52
+
53
+ $last: nth($query, $length);
54
+ $query-fallback: breakpoint-no-query($last);
55
+
56
+ @if ($query-fallback != false) {
57
+ $length: $length - 1;
58
+ }
59
+
60
+ @if (breakpoint-get('legacy syntax') == true) {
61
+ $mq: ();
62
+
63
+ @for $i from 1 through $length {
64
+ $mq: append($mq, nth($query, $i), comma);
65
+ }
66
+
67
+ $query-string: breakpoint-parse($mq);
68
+ }
69
+ @else {
70
+ $query-string: '';
71
+ @for $i from 1 through $length {
72
+ $query-string: $query-string + if($i == 1, '', ', ') + breakpoint-parse(nth($query, $i));
73
+ }
74
+ }
75
+ }
76
+
77
+ $return: ('query': $query-string,
78
+ 'fallback': $query-fallback,
79
+ 'context holder': $private-breakpoint-context-holder,
80
+ 'query count': $private-breakpoint-query-count
81
+ );
82
+ @if length($contexts) > 0 and nth($contexts, 1) != false {
83
+ @if $query-fallback != false {
84
+ $context-setter: private-breakpoint-set-context('no-query', $query-fallback);
85
+ }
86
+ $context-map: ();
87
+ @each $context in $contexts {
88
+ $context-map: map-merge($context-map, ($context: breakpoint-get-context($context)));
89
+ }
90
+ $return: map-merge($return, (context: $context-map));
91
+ }
92
+
93
+ // Reset Global Private Breakpoint Context
94
+ $private-breakpoint-context-holder: () !global;
95
+ $private-breakpoint-query-count: 0 !global;
96
+
97
+ @if $Memo-Exists {
98
+ $holder: memo-set(breakpoint, breakpoint $query $contexts, $return);
99
+ }
100
+ }
101
+
102
+ @return $return;
103
+ }
104
+
105
+ //////////////////////////////
106
+ // General Breakpoint Parser
107
+ //////////////////////////////
108
+ @function breakpoint-parse($query) {
109
+ // Increase number of 'and' queries
110
+ $private-breakpoint-query-count: $private-breakpoint-query-count + 1 !global;
111
+
112
+ // Set up Media Type
113
+ $query-print: '';
114
+
115
+ $force-all: ((breakpoint-get('force all media type') == true) and (breakpoint-get('default media') == 'all'));
116
+ $empty-media: true;
117
+ @if ($force-all == true) or (breakpoint-get('default media') != 'all') {
118
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
119
+ $query-print: breakpoint-get('default media');
120
+ $empty-media: false;
121
+ }
122
+
123
+
124
+ $query-resolution: false;
125
+
126
+ $query-holder: breakpoint-parse-query($query);
127
+
128
+
129
+
130
+ // Loop over each parsed out query and write it to $query-print
131
+ $first: true;
132
+
133
+ @each $feature in $query-holder {
134
+ $length: length($feature);
135
+
136
+ // Parse a single feature
137
+ @if ($length == 1) {
138
+ // Feature is currently a list, grab the actual value
139
+ $feature: nth($feature, 1);
140
+
141
+ // Media Type must by convention be the first item, so it's safe to flat override $query-print, which right now should only be the default media type
142
+ @if (breakpoint-is-media($feature)) {
143
+ @if ($force-all == true) or ($feature != 'all') {
144
+ // Force the print of the default media type if (force all is true and default media type is all) or (default media type is not all)
145
+ $query-print: $feature;
146
+ $empty-media: false;
147
+
148
+ // Set Context
149
+ $context-setter: private-breakpoint-set-context(media, $query-print);
150
+ }
151
+ }
152
+ @else {
153
+ $parsed: breakpoint-parse-single($feature, $empty-media, $first);
154
+ $query-print: '#{$query-print} #{$parsed}';
155
+ $first: false;
156
+ }
157
+ }
158
+ // Parse a double feature
159
+ @else if ($length == 2) {
160
+ @if (breakpoint-is-resolution($feature) != false) {
161
+ $query-resolution: $feature;
162
+ }
163
+ @else {
164
+ $parsed: null;
165
+ // If it's a string/number pair,
166
+ // we check to see if one is a single-string value,
167
+ // then we parse it as a normal double
168
+ $alpha: nth($feature, 1);
169
+ $beta: nth($feature, 2);
170
+ @if breakpoint-single-string($alpha) or breakpoint-single-string($beta) {
171
+ $parsed: breakpoint-parse-single($alpha, $empty-media, $first);
172
+ $query-print: '#{$query-print} #{$parsed}';
173
+ $first: false;
174
+ $parsed: breakpoint-parse-single($beta, $empty-media, $first);
175
+ $query-print: '#{$query-print} #{$parsed}';
176
+ }
177
+ @else {
178
+ $parsed: breakpoint-parse-double($feature, $empty-media, $first);
179
+ $query-print: '#{$query-print} #{$parsed}';
180
+ $first: false;
181
+ }
182
+ }
183
+ }
184
+ // Parse a triple feature
185
+ @else if ($length == 3) {
186
+ $parsed: breakpoint-parse-triple($feature, $empty-media, $first);
187
+ $query-print: '#{$query-print} #{$parsed}';
188
+ $first: false;
189
+ }
190
+
191
+ }
192
+
193
+ @if ($query-resolution != false) {
194
+ $query-print: breakpoint-build-resolution($query-print, $query-resolution, $empty-media, $first);
195
+ }
196
+
197
+ // Loop through each feature that's been detected so far and append 'false' to the the value list to increment their counters
198
+ @each $f, $v in $private-breakpoint-context-holder {
199
+ $v-holder: $v;
200
+ $length: length($v-holder);
201
+ @if length($v-holder) < $private-breakpoint-query-count {
202
+ @for $i from $length to $private-breakpoint-query-count {
203
+ @if $f == 'media' {
204
+ $v-holder: append($v-holder, breakpoint-get('default media'));
205
+ }
206
+ @else {
207
+ $v-holder: append($v-holder, false);
208
+ }
209
+ }
210
+ }
211
+ $private-breakpoint-context-holder: map-merge($private-breakpoint-context-holder, ($f: $v-holder)) !global;
212
+ }
213
+
214
+ @return $query-print;
215
+ }