minimal-mistakes-jekyll 4.6.0 → 4.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +26 -0
- data/LICENSE.txt +59 -21
- data/README.md +217 -160
- data/_data/navigation.yml +11 -11
- data/_data/ui-text.yml +931 -888
- data/_includes/analytics-providers/custom.html +2 -2
- data/_includes/analytics-providers/google-universal.html +9 -9
- data/_includes/analytics-providers/google.html +10 -10
- data/_includes/analytics.html +11 -11
- data/_includes/archive-single.html +37 -37
- data/_includes/author-profile-custom-links.html +6 -6
- data/_includes/author-profile.html +249 -249
- data/_includes/base_path +4 -4
- data/_includes/breadcrumbs.html +39 -39
- data/_includes/browser-upgrade.html +2 -2
- data/_includes/category-list.html +25 -25
- data/_includes/comment.html +22 -22
- data/_includes/comments-providers/custom.html +2 -2
- data/_includes/comments-providers/discourse.html +13 -13
- data/_includes/comments-providers/facebook.html +7 -7
- data/_includes/comments-providers/google-plus.html +1 -1
- data/_includes/comments-providers/scripts.html +17 -15
- data/_includes/comments-providers/staticman.html +41 -41
- data/_includes/comments-providers/staticman_v2.html +42 -0
- data/_includes/comments.html +168 -96
- data/_includes/feature_row +49 -49
- data/_includes/figure +12 -12
- data/_includes/footer.html +25 -25
- data/_includes/footer/custom.html +2 -2
- data/_includes/gallery +46 -46
- data/_includes/group-by-array +46 -46
- data/_includes/head.html +42 -42
- data/_includes/head/custom.html +4 -4
- data/_includes/masthead.html +23 -20
- data/_includes/nav_list +46 -46
- data/_includes/page__hero_video.html +4 -4
- data/_includes/page__taxonomy.html +6 -6
- data/_includes/paginator.html +69 -69
- data/_includes/post_pagination.html +13 -13
- data/_includes/read-time.html +14 -14
- data/_includes/scripts.html +15 -15
- data/_includes/seo.html +162 -147
- data/_includes/sidebar.html +22 -22
- data/_includes/social-share.html +13 -13
- data/_includes/tag-list.html +25 -25
- data/_includes/toc +6 -6
- data/_includes/toc.html +75 -0
- data/_includes/video +11 -11
- data/_layouts/archive-taxonomy.html +14 -14
- data/_layouts/archive.html +25 -25
- data/_layouts/compress.html +10 -10
- data/_layouts/default.html +1 -1
- data/_layouts/home.html +11 -11
- data/_layouts/single.html +92 -84
- data/_layouts/splash.html +21 -21
- data/_sass/minimal-mistakes.scss +1 -1
- data/_sass/minimal-mistakes/_animations.scss +20 -20
- data/_sass/minimal-mistakes/_archive.scss +317 -317
- data/_sass/minimal-mistakes/_base.scss +315 -315
- data/_sass/minimal-mistakes/_buttons.scss +97 -97
- data/_sass/minimal-mistakes/_footer.scss +82 -82
- data/_sass/minimal-mistakes/_forms.scss +399 -389
- data/_sass/minimal-mistakes/_masthead.scss +82 -82
- data/_sass/minimal-mistakes/_mixins.scss +91 -91
- data/_sass/minimal-mistakes/_navigation.scss +552 -552
- data/_sass/minimal-mistakes/_notices.scss +99 -99
- data/_sass/minimal-mistakes/_page.scss +430 -430
- data/_sass/minimal-mistakes/_reset.scss +186 -186
- data/_sass/minimal-mistakes/_sidebar.scss +262 -262
- data/_sass/minimal-mistakes/_syntax.scss +286 -146
- data/_sass/minimal-mistakes/_tables.scss +36 -36
- data/_sass/minimal-mistakes/_utilities.scss +519 -519
- data/_sass/minimal-mistakes/_variables.scss +137 -137
- data/_sass/minimal-mistakes/skins/_air.scss +22 -22
- data/_sass/minimal-mistakes/skins/_aqua.scss +30 -0
- data/_sass/minimal-mistakes/skins/_contrast.scss +33 -33
- data/_sass/minimal-mistakes/skins/_dark.scss +23 -23
- data/_sass/minimal-mistakes/skins/_default.scss +5 -5
- data/_sass/minimal-mistakes/skins/_dirt.scss +14 -14
- data/_sass/minimal-mistakes/skins/_mint.scss +22 -22
- data/_sass/minimal-mistakes/skins/_neon.scss +35 -0
- data/_sass/minimal-mistakes/skins/_plum.scss +42 -0
- data/_sass/minimal-mistakes/skins/_sunrise.scss +25 -25
- data/_sass/minimal-mistakes/vendor/breakpoint/_breakpoint.scss +114 -114
- data/_sass/minimal-mistakes/vendor/breakpoint/_context.scss +94 -94
- data/_sass/minimal-mistakes/vendor/breakpoint/_helpers.scss +151 -151
- data/_sass/minimal-mistakes/vendor/breakpoint/_legacy-settings.scss +49 -49
- data/_sass/minimal-mistakes/vendor/breakpoint/_no-query.scss +15 -15
- data/_sass/minimal-mistakes/vendor/breakpoint/_parsers.scss +215 -215
- data/_sass/minimal-mistakes/vendor/breakpoint/_respond-to.scss +82 -82
- data/_sass/minimal-mistakes/vendor/breakpoint/_settings.scss +70 -70
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_double.scss +33 -33
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_query.scss +82 -82
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_resolution.scss +31 -31
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_single.scss +26 -26
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/_triple.scss +36 -36
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default-pair.scss +21 -21
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_default.scss +22 -22
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/double/_double-string.scss +21 -21
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -60
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/single/_default.scss +13 -13
- data/_sass/minimal-mistakes/vendor/breakpoint/parsers/triple/_default.scss +18 -18
- data/_sass/minimal-mistakes/vendor/font-awesome/_animated.scss +34 -34
- data/_sass/minimal-mistakes/vendor/font-awesome/_bordered-pulled.scss +25 -25
- data/_sass/minimal-mistakes/vendor/font-awesome/_core.scss +12 -12
- data/_sass/minimal-mistakes/vendor/font-awesome/_fixed-width.scss +6 -6
- data/_sass/minimal-mistakes/vendor/font-awesome/_font-awesome.scss +18 -18
- data/_sass/minimal-mistakes/vendor/font-awesome/_icons.scss +789 -789
- data/_sass/minimal-mistakes/vendor/font-awesome/_larger.scss +13 -13
- data/_sass/minimal-mistakes/vendor/font-awesome/_list.scss +19 -19
- data/_sass/minimal-mistakes/vendor/font-awesome/_mixins.scss +60 -60
- data/_sass/minimal-mistakes/vendor/font-awesome/_path.scss +15 -15
- data/_sass/minimal-mistakes/vendor/font-awesome/_rotated-flipped.scss +20 -20
- data/_sass/minimal-mistakes/vendor/font-awesome/_screen-reader.scss +5 -5
- data/_sass/minimal-mistakes/vendor/font-awesome/_stacked.scss +20 -20
- data/_sass/minimal-mistakes/vendor/font-awesome/_variables.scss +800 -800
- data/_sass/minimal-mistakes/vendor/magnific-popup/_magnific-popup.scss +649 -649
- data/_sass/minimal-mistakes/vendor/magnific-popup/_settings.scss +45 -45
- data/_sass/minimal-mistakes/vendor/susy/_susy-prefix.scss +13 -13
- data/_sass/minimal-mistakes/vendor/susy/_susy.scss +5 -5
- data/_sass/minimal-mistakes/vendor/susy/plugins/_svg-grid.scss +5 -5
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_prefix.scss +7 -7
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-api.scss +114 -114
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-grid-math.scss +67 -67
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-settings.scss +14 -14
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-unprefix.scss +18 -18
- data/_sass/minimal-mistakes/vendor/susy/plugins/svg-grid/_svg-utilities.scss +133 -133
- data/_sass/minimal-mistakes/vendor/susy/susy/_api.scss +318 -318
- data/_sass/minimal-mistakes/vendor/susy/susy/_normalize.scss +261 -261
- data/_sass/minimal-mistakes/vendor/susy/susy/_parse.scss +163 -163
- data/_sass/minimal-mistakes/vendor/susy/susy/_settings.scss +329 -329
- data/_sass/minimal-mistakes/vendor/susy/susy/_su-math.scss +441 -441
- data/_sass/minimal-mistakes/vendor/susy/susy/_su-validate.scss +213 -213
- data/_sass/minimal-mistakes/vendor/susy/susy/_syntax-helpers.scss +191 -191
- data/_sass/minimal-mistakes/vendor/susy/susy/_unprefix.scss +56 -56
- data/_sass/minimal-mistakes/vendor/susy/susy/_utilities.scss +167 -167
- data/assets/css/main.scss +7 -7
- data/assets/fonts/fontawesome-webfont.svg +2671 -2671
- data/assets/js/_main.js +72 -72
- data/assets/js/main.min.js +1 -1
- data/assets/js/plugins/jquery.fitvids.js +81 -81
- data/assets/js/plugins/jquery.greedy-navigation.js +77 -77
- metadata +8 -3
@@ -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
|
+
}
|