sparrow-jekyll-theme 0.1.1 → 0.1.2

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 (121) hide show
  1. checksums.yaml +4 -4
  2. data/LICENSE.txt +20 -20
  3. data/README.md +170 -178
  4. data/_includes/analytics.html +13 -13
  5. data/_includes/breadcrumbs.html +31 -31
  6. data/_includes/comments.html +26 -26
  7. data/_includes/figure +12 -12
  8. data/_includes/paginator.html +8 -69
  9. data/_includes/post-entry.html +15 -15
  10. data/_includes/seo.html +77 -77
  11. data/_includes/social-share.html +42 -42
  12. data/_includes/topnav.html +46 -46
  13. data/_layouts/default.html +46 -46
  14. data/_layouts/home.html +11 -11
  15. data/_layouts/page.html +16 -16
  16. data/_layouts/post.html +38 -38
  17. data/_sass/_base.scss +359 -359
  18. data/_sass/_buttons.scss +61 -61
  19. data/_sass/_footer.scss +53 -53
  20. data/_sass/_navigation.scss +216 -216
  21. data/_sass/_page.scss +60 -60
  22. data/_sass/_post.scss +85 -85
  23. data/_sass/_reset.scss +186 -186
  24. data/_sass/_rrssb.scss +276 -276
  25. data/_sass/_slimmenu.scss +177 -177
  26. data/_sass/_syntax.scss +125 -125
  27. data/_sass/_utilities.scss +67 -67
  28. data/_sass/_variables.scss +73 -73
  29. data/_sass/vendor/breakpoint/_breakpoint.scss +114 -114
  30. data/_sass/vendor/breakpoint/_context.scss +94 -94
  31. data/_sass/vendor/breakpoint/_helpers.scss +151 -151
  32. data/_sass/vendor/breakpoint/_legacy-settings.scss +49 -49
  33. data/_sass/vendor/breakpoint/_no-query.scss +15 -15
  34. data/_sass/vendor/breakpoint/_parsers.scss +215 -215
  35. data/_sass/vendor/breakpoint/_respond-to.scss +82 -82
  36. data/_sass/vendor/breakpoint/_settings.scss +70 -70
  37. data/_sass/vendor/breakpoint/parsers/_double.scss +33 -33
  38. data/_sass/vendor/breakpoint/parsers/_query.scss +82 -82
  39. data/_sass/vendor/breakpoint/parsers/_resolution.scss +31 -31
  40. data/_sass/vendor/breakpoint/parsers/_single.scss +26 -26
  41. data/_sass/vendor/breakpoint/parsers/_triple.scss +36 -36
  42. data/_sass/vendor/breakpoint/parsers/double/_default-pair.scss +21 -21
  43. data/_sass/vendor/breakpoint/parsers/double/_default.scss +22 -22
  44. data/_sass/vendor/breakpoint/parsers/double/_double-string.scss +21 -21
  45. data/_sass/vendor/breakpoint/parsers/resolution/_resolution.scss +60 -60
  46. data/_sass/vendor/breakpoint/parsers/single/_default.scss +13 -13
  47. data/_sass/vendor/breakpoint/parsers/triple/_default.scss +18 -18
  48. data/_sass/vendor/font-awesome/_animated.scss +34 -34
  49. data/_sass/vendor/font-awesome/_bordered-pulled.scss +25 -25
  50. data/_sass/vendor/font-awesome/_core.scss +12 -12
  51. data/_sass/vendor/font-awesome/_fixed-width.scss +6 -6
  52. data/_sass/vendor/font-awesome/_font-awesome.scss +18 -18
  53. data/_sass/vendor/font-awesome/_icons.scss +789 -789
  54. data/_sass/vendor/font-awesome/_larger.scss +13 -13
  55. data/_sass/vendor/font-awesome/_list.scss +19 -19
  56. data/_sass/vendor/font-awesome/_mixins.scss +60 -60
  57. data/_sass/vendor/font-awesome/_path.scss +15 -15
  58. data/_sass/vendor/font-awesome/_rotated-flipped.scss +20 -20
  59. data/_sass/vendor/font-awesome/_screen-reader.scss +5 -5
  60. data/_sass/vendor/font-awesome/_stacked.scss +20 -20
  61. data/_sass/vendor/font-awesome/_variables.scss +800 -800
  62. data/_sass/vendor/susy/_su.scss +4 -4
  63. data/_sass/vendor/susy/_susy.scss +4 -4
  64. data/_sass/vendor/susy/_susyone.scss +4 -4
  65. data/_sass/vendor/susy/susy/_su.scss +7 -7
  66. data/_sass/vendor/susy/susy/language/_susy.scss +24 -24
  67. data/_sass/vendor/susy/susy/language/_susyone.scss +13 -13
  68. data/_sass/vendor/susy/susy/language/susy/_background.scss +385 -385
  69. data/_sass/vendor/susy/susy/language/susy/_bleed.scss +200 -200
  70. data/_sass/vendor/susy/susy/language/susy/_box-sizing.scss +47 -47
  71. data/_sass/vendor/susy/susy/language/susy/_breakpoint-plugin.scss +185 -185
  72. data/_sass/vendor/susy/susy/language/susy/_container.scss +81 -81
  73. data/_sass/vendor/susy/susy/language/susy/_context.scss +36 -36
  74. data/_sass/vendor/susy/susy/language/susy/_gallery.scss +94 -94
  75. data/_sass/vendor/susy/susy/language/susy/_grids.scss +64 -64
  76. data/_sass/vendor/susy/susy/language/susy/_gutters.scss +154 -154
  77. data/_sass/vendor/susy/susy/language/susy/_isolate.scss +77 -77
  78. data/_sass/vendor/susy/susy/language/susy/_margins.scss +94 -94
  79. data/_sass/vendor/susy/susy/language/susy/_padding.scss +74 -74
  80. data/_sass/vendor/susy/susy/language/susy/_rows.scss +138 -138
  81. data/_sass/vendor/susy/susy/language/susy/_settings.scss +216 -216
  82. data/_sass/vendor/susy/susy/language/susy/_span.scss +163 -163
  83. data/_sass/vendor/susy/susy/language/susy/_validation.scss +16 -16
  84. data/_sass/vendor/susy/susy/language/susyone/_background.scss +18 -18
  85. data/_sass/vendor/susy/susy/language/susyone/_functions.scss +377 -377
  86. data/_sass/vendor/susy/susy/language/susyone/_grid.scss +312 -312
  87. data/_sass/vendor/susy/susy/language/susyone/_isolation.scss +51 -51
  88. data/_sass/vendor/susy/susy/language/susyone/_margin.scss +93 -93
  89. data/_sass/vendor/susy/susy/language/susyone/_media.scss +105 -105
  90. data/_sass/vendor/susy/susy/language/susyone/_padding.scss +92 -92
  91. data/_sass/vendor/susy/susy/language/susyone/_settings.scss +60 -60
  92. data/_sass/vendor/susy/susy/output/_float.scss +9 -9
  93. data/_sass/vendor/susy/susy/output/_shared.scss +15 -15
  94. data/_sass/vendor/susy/susy/output/_support.scss +9 -9
  95. data/_sass/vendor/susy/susy/output/float/_container.scss +16 -16
  96. data/_sass/vendor/susy/susy/output/float/_end.scss +40 -40
  97. data/_sass/vendor/susy/susy/output/float/_isolate.scss +22 -22
  98. data/_sass/vendor/susy/susy/output/float/_span.scss +35 -35
  99. data/_sass/vendor/susy/susy/output/shared/_background.scss +26 -26
  100. data/_sass/vendor/susy/susy/output/shared/_container.scss +21 -21
  101. data/_sass/vendor/susy/susy/output/shared/_direction.scss +42 -42
  102. data/_sass/vendor/susy/susy/output/shared/_inspect.scss +25 -25
  103. data/_sass/vendor/susy/susy/output/shared/_margins.scss +23 -23
  104. data/_sass/vendor/susy/susy/output/shared/_output.scss +14 -14
  105. data/_sass/vendor/susy/susy/output/shared/_padding.scss +23 -23
  106. data/_sass/vendor/susy/susy/output/support/_background.scss +58 -58
  107. data/_sass/vendor/susy/susy/output/support/_box-sizing.scss +19 -19
  108. data/_sass/vendor/susy/susy/output/support/_clearfix.scss +18 -18
  109. data/_sass/vendor/susy/susy/output/support/_prefix.scss +19 -19
  110. data/_sass/vendor/susy/susy/output/support/_rem.scss +22 -22
  111. data/_sass/vendor/susy/susy/output/support/_support.scss +85 -85
  112. data/_sass/vendor/susy/susy/su/_grid.scss +103 -103
  113. data/_sass/vendor/susy/susy/su/_settings.scss +73 -73
  114. data/_sass/vendor/susy/susy/su/_utilities.scss +111 -111
  115. data/_sass/vendor/susy/susy/su/_validation.scss +57 -57
  116. data/assets/css/main.scss +43 -43
  117. data/assets/fonts/fontawesome-webfont.svg +2671 -2671
  118. data/assets/js/main.js +35 -35
  119. data/assets/js/plugins/jquery-1.12.4.min.js +4 -4
  120. data/assets/js/slimmenu.js +154 -154
  121. metadata +6 -6
@@ -1,138 +1,138 @@
1
- // Row Start & End
2
- // ===============
3
-
4
- // Break
5
- // -----
6
- // Apply to any element that should force a line break.
7
- @mixin break {
8
- @include output((clear: both));
9
- }
10
-
11
-
12
- // NoBreak
13
- // -------
14
- // Cancel the break() effect, e.g. when using media queries.
15
- @mixin nobreak {
16
- @include output((clear: none));
17
- }
18
-
19
-
20
- // Full
21
- // ----
22
- // - [$context]: <layout shorthand>
23
- @mixin full(
24
- $context: $susy
25
- ) {
26
- $inspect : $context;
27
- @include susy-inspect(full, $inspect);
28
- @include span(full of parse-grid($context) break);
29
- }
30
-
31
-
32
- // First
33
- // -----
34
- // - [$context]: <settings>
35
- @mixin first(
36
- $context: $susy
37
- ) {
38
- $inspect : $context;
39
- $context : parse-grid($context);
40
- $flow : susy-get(flow, $context);
41
-
42
- @include susy-inspect(first, $inspect);
43
- @if not(is-split($context)) {
44
- @include float-first($flow);
45
- }
46
- }
47
-
48
- @mixin alpha(
49
- $context: $susy
50
- ) {
51
- @include first($context);
52
- }
53
-
54
-
55
- // Last
56
- // ----
57
- // - [$context]: <settings>
58
- @mixin last(
59
- $context: $susy
60
- ) {
61
- $inspect : $context;
62
- $context : parse-grid($context);
63
-
64
- @include susy-inspect(last, $inspect);
65
-
66
- $output: (
67
- flow: susy-get(flow, $context),
68
- last-flow: susy-get(last-flow, $context),
69
- margin: if(is-split($context), null, 0),
70
- );
71
-
72
- @include float-last($output...);
73
- }
74
-
75
- @mixin omega(
76
- $context: $susy
77
- ) {
78
- @include last($context);
79
- }
80
-
81
-
82
- // Get Edge
83
- // --------
84
- // Calculate edge value based on location, if possible
85
- @function get-edge(
86
- $span
87
- ) {
88
- $span : parse-span($span);
89
- $edge : susy-get(edge, $span);
90
-
91
- @if not($edge) {
92
- $count: susy-count(susy-get(columns, $span));
93
- $location: susy-get(location, $span);
94
- $n: susy-get(span, $span);
95
-
96
- $number: if(type-of($location) == number, true, false);
97
- $index: if($number and unitless($location), true, false);
98
-
99
- @if $n == $count {
100
- $edge: full;
101
- } @else if $location and $n and $index {
102
- @if $location == 1 {
103
- $edge: if($n == $count, full, first);
104
- } @else if $location + $n - 1 == $count {
105
- $edge: last;
106
- }
107
- }
108
- }
109
-
110
- @if $edge == alpha or $edge == omega {
111
- $edge: if($edge == alpha, first, last);
112
- }
113
-
114
- @return $edge;
115
- }
116
-
117
-
118
- // Get Location
119
- // ------------
120
- // Calculate location value based on edge, if possible
121
- @function get-location(
122
- $span
123
- ) {
124
- $span : parse-span($span);
125
- $location : susy-get(location, $span);
126
- $edge : get-edge($span);
127
- $n : susy-get(span, $span);
128
-
129
- @if $edge and not($location) and type-of($n) == number and unitless($n) {
130
- @if $edge == first {
131
- $location: 1;
132
- } @else if $edge == last {
133
- $location: susy-count(susy-get(columns, $span)) - $n + 1;
134
- }
135
- }
136
-
137
- @return $location
138
- }
1
+ // Row Start & End
2
+ // ===============
3
+
4
+ // Break
5
+ // -----
6
+ // Apply to any element that should force a line break.
7
+ @mixin break {
8
+ @include output((clear: both));
9
+ }
10
+
11
+
12
+ // NoBreak
13
+ // -------
14
+ // Cancel the break() effect, e.g. when using media queries.
15
+ @mixin nobreak {
16
+ @include output((clear: none));
17
+ }
18
+
19
+
20
+ // Full
21
+ // ----
22
+ // - [$context]: <layout shorthand>
23
+ @mixin full(
24
+ $context: $susy
25
+ ) {
26
+ $inspect : $context;
27
+ @include susy-inspect(full, $inspect);
28
+ @include span(full of parse-grid($context) break);
29
+ }
30
+
31
+
32
+ // First
33
+ // -----
34
+ // - [$context]: <settings>
35
+ @mixin first(
36
+ $context: $susy
37
+ ) {
38
+ $inspect : $context;
39
+ $context : parse-grid($context);
40
+ $flow : susy-get(flow, $context);
41
+
42
+ @include susy-inspect(first, $inspect);
43
+ @if not(is-split($context)) {
44
+ @include float-first($flow);
45
+ }
46
+ }
47
+
48
+ @mixin alpha(
49
+ $context: $susy
50
+ ) {
51
+ @include first($context);
52
+ }
53
+
54
+
55
+ // Last
56
+ // ----
57
+ // - [$context]: <settings>
58
+ @mixin last(
59
+ $context: $susy
60
+ ) {
61
+ $inspect : $context;
62
+ $context : parse-grid($context);
63
+
64
+ @include susy-inspect(last, $inspect);
65
+
66
+ $output: (
67
+ flow: susy-get(flow, $context),
68
+ last-flow: susy-get(last-flow, $context),
69
+ margin: if(is-split($context), null, 0),
70
+ );
71
+
72
+ @include float-last($output...);
73
+ }
74
+
75
+ @mixin omega(
76
+ $context: $susy
77
+ ) {
78
+ @include last($context);
79
+ }
80
+
81
+
82
+ // Get Edge
83
+ // --------
84
+ // Calculate edge value based on location, if possible
85
+ @function get-edge(
86
+ $span
87
+ ) {
88
+ $span : parse-span($span);
89
+ $edge : susy-get(edge, $span);
90
+
91
+ @if not($edge) {
92
+ $count: susy-count(susy-get(columns, $span));
93
+ $location: susy-get(location, $span);
94
+ $n: susy-get(span, $span);
95
+
96
+ $number: if(type-of($location) == number, true, false);
97
+ $index: if($number and unitless($location), true, false);
98
+
99
+ @if $n == $count {
100
+ $edge: full;
101
+ } @else if $location and $n and $index {
102
+ @if $location == 1 {
103
+ $edge: if($n == $count, full, first);
104
+ } @else if $location + $n - 1 == $count {
105
+ $edge: last;
106
+ }
107
+ }
108
+ }
109
+
110
+ @if $edge == alpha or $edge == omega {
111
+ $edge: if($edge == alpha, first, last);
112
+ }
113
+
114
+ @return $edge;
115
+ }
116
+
117
+
118
+ // Get Location
119
+ // ------------
120
+ // Calculate location value based on edge, if possible
121
+ @function get-location(
122
+ $span
123
+ ) {
124
+ $span : parse-span($span);
125
+ $location : susy-get(location, $span);
126
+ $edge : get-edge($span);
127
+ $n : susy-get(span, $span);
128
+
129
+ @if $edge and not($location) and type-of($n) == number and unitless($n) {
130
+ @if $edge == first {
131
+ $location: 1;
132
+ } @else if $edge == last {
133
+ $location: susy-count(susy-get(columns, $span)) - $n + 1;
134
+ }
135
+ }
136
+
137
+ @return $location
138
+ }
@@ -1,216 +1,216 @@
1
- // Susy Settings
2
- // =============
3
-
4
- // Susy Language Defaults
5
- // ----------------------
6
- // - PRIVATE
7
- @include susy-defaults((
8
- container: auto,
9
- math: fluid,
10
- output: float,
11
- container-position: center,
12
- gutter-position: after,
13
- global-box-sizing: content-box,
14
- debug: (
15
- image: hide,
16
- color: rgba(#66f, .25),
17
- output: background,
18
- toggle: top right,
19
- ),
20
- ));
21
-
22
-
23
- // Valid Keyword Values
24
- // --------------------
25
- // - PRIVATE: DONT'T TOUCH
26
- $susy-keywords: (
27
- container: auto,
28
- math: static fluid,
29
- output: isolate float,
30
- container-position: left center right,
31
- flow: ltr rtl,
32
- gutter-position: before after split inside inside-static,
33
- box-sizing: border-box content-box,
34
- span: full,
35
- edge: first alpha last omega full,
36
- spread: narrow wide wider,
37
- gutter-override: no-gutters no-gutter,
38
- role: nest,
39
- clear: break nobreak,
40
- debug image: show hide show-columns show-baseline,
41
- debug output: background overlay,
42
- );
43
-
44
-
45
- // Parse Susy Keywords and Maps
46
- // ----------------------------
47
- @function parse-settings(
48
- $short: $susy
49
- ) {
50
- $_return: ();
51
-
52
- @if type-of($short) == map {
53
- $_return: $short;
54
- } @else {
55
- @each $item in $short {
56
- // strings
57
- @if type-of($item) == string {
58
- @each $key, $value in $susy-keywords {
59
- @if index($value, $item) {
60
- $_key-value: append($key, $item);
61
- $_return: _susy-deep-set($_return, $_key-value...);
62
- }
63
- }
64
- // maps
65
- } @else if type-of($item) == map {
66
- $_return: map-merge($_return, $item);
67
- }
68
- }
69
- }
70
-
71
- @return $_return;
72
- }
73
-
74
-
75
- // Parse Columns & Gutters
76
- // -----------------------
77
- @function parse-layout(
78
- $short
79
- ) {
80
- $_return: ();
81
- $_columns: ();
82
- $_gutters: null;
83
-
84
- @if not(unitless(nth(nth($short, 1), 1))) {
85
- $_gutters: nth($short, 1);
86
- } @else {
87
- $_columns: (columns: nth($short, 1));
88
- $_gutters: if(length($short) > 1, nth($short, 2), $_gutters);
89
- }
90
-
91
- @if type-of($_gutters) == list and length($_gutters) > 0 {
92
- $_gutters: (
93
- gutters: nth($_gutters, 2) / nth($_gutters, 1),
94
- column-width: nth($_gutters, 1),
95
- );
96
- } @else {
97
- $_gutters: if($_gutters, (gutters: $_gutters), ());
98
- }
99
-
100
- $_return: map-merge($_return, $_columns);
101
- $_return: map-merge($_return, $_gutters);
102
-
103
- @return $_return;
104
- }
105
-
106
-
107
- // Parse Grid/Context
108
- // ------------------
109
- @function parse-grid(
110
- $short: $susy
111
- ) {
112
- $_return: parse-settings($short);
113
- $_layout: ();
114
-
115
- @if type-of($short) == map {
116
- $_return: $short;
117
- } @else {
118
- @each $item in $short {
119
- // number or list
120
- @if type-of($item) == number or type-of($item) == list {
121
- @if type-of($item) == list or unitless($item) {
122
- $_layout: append($_layout, $item);
123
- } @else {
124
- $_return: map-merge($_return, (container: $item));
125
- }
126
- }
127
- }
128
-
129
- $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout);
130
- }
131
-
132
- @return map-merge($_return, $_layout);
133
- }
134
-
135
-
136
- // Parse Span
137
- // ----------
138
- @function parse-span(
139
- $short,
140
- $key: span
141
- ) {
142
- $_return: ();
143
-
144
- @if type-of($short) == map {
145
- $_return: $short;
146
- } @else {
147
- $_at: index($short, at);
148
-
149
- @if $_at {
150
- $_loci: $_at + 1;
151
- $_location: nth($short, $_loci);
152
- $_return: map-merge($_return, (location: $_location));
153
- $short: set-nth($short, $_at, null);
154
- $short: set-nth($short, $_loci, null);
155
- }
156
-
157
- $_i: 1;
158
- $_span: ();
159
-
160
- @while $_i <= length($short) {
161
- $_this: nth($short, $_i);
162
-
163
- @if type-of($_this) == number {
164
- $_span: append($_span, $_this);
165
- $short: set-nth($short, $_i, null);
166
- } @else if $_this == of {
167
- $short: set-nth($short, $_i, null);
168
- $_i: length($short) + 1;
169
- }
170
-
171
- $_i: $_i + 1;
172
- }
173
-
174
- @if length($_span) > 0 {
175
- $_span: if(length($_span) == 1, nth($_span, 1), $_span);
176
- $_return: map-merge($_return, ($key: $_span));
177
- }
178
-
179
- $_return: map-merge($_return, parse-grid($short));
180
- }
181
-
182
- @return $_return;
183
- }
184
-
185
-
186
- // Parse Gutters
187
- // -------------
188
- @function parse-gutters(
189
- $short: $susy
190
- ) {
191
- $_gutters: parse-span($short, gutter-override);
192
- $_span: susy-get(gutter-override, $_gutters);
193
-
194
- @if $_span and not(map-get($_gutters, columns)) {
195
- $_context: ();
196
- $_new: ();
197
-
198
- @each $item in $_span {
199
- @if type-of($item) == number and unitless($item) {
200
- $_context: append($_context, $item);
201
- } @else {
202
- $_new: append($_new, $item);
203
- }
204
- }
205
-
206
- $_context: parse-grid($_context);
207
- $_new: if(length($_new) == 0, null, $_new);
208
- $_new: if(length($_new) == 1, nth($_new, 1), $_new);
209
- $_new: (gutter-override: if($_new != $_span, $_new, $_span));
210
-
211
- $_gutters: map-merge($_gutters, $_new);
212
- $_gutters: map-merge($_gutters, $_context);
213
- }
214
-
215
- @return $_gutters;
216
- }
1
+ // Susy Settings
2
+ // =============
3
+
4
+ // Susy Language Defaults
5
+ // ----------------------
6
+ // - PRIVATE
7
+ @include susy-defaults((
8
+ container: auto,
9
+ math: fluid,
10
+ output: float,
11
+ container-position: center,
12
+ gutter-position: after,
13
+ global-box-sizing: content-box,
14
+ debug: (
15
+ image: hide,
16
+ color: rgba(#66f, .25),
17
+ output: background,
18
+ toggle: top right,
19
+ ),
20
+ ));
21
+
22
+
23
+ // Valid Keyword Values
24
+ // --------------------
25
+ // - PRIVATE: DONT'T TOUCH
26
+ $susy-keywords: (
27
+ container: auto,
28
+ math: static fluid,
29
+ output: isolate float,
30
+ container-position: left center right,
31
+ flow: ltr rtl,
32
+ gutter-position: before after split inside inside-static,
33
+ box-sizing: border-box content-box,
34
+ span: full,
35
+ edge: first alpha last omega full,
36
+ spread: narrow wide wider,
37
+ gutter-override: no-gutters no-gutter,
38
+ role: nest,
39
+ clear: break nobreak,
40
+ debug image: show hide show-columns show-baseline,
41
+ debug output: background overlay,
42
+ );
43
+
44
+
45
+ // Parse Susy Keywords and Maps
46
+ // ----------------------------
47
+ @function parse-settings(
48
+ $short: $susy
49
+ ) {
50
+ $_return: ();
51
+
52
+ @if type-of($short) == map {
53
+ $_return: $short;
54
+ } @else {
55
+ @each $item in $short {
56
+ // strings
57
+ @if type-of($item) == string {
58
+ @each $key, $value in $susy-keywords {
59
+ @if index($value, $item) {
60
+ $_key-value: append($key, $item);
61
+ $_return: _susy-deep-set($_return, $_key-value...);
62
+ }
63
+ }
64
+ // maps
65
+ } @else if type-of($item) == map {
66
+ $_return: map-merge($_return, $item);
67
+ }
68
+ }
69
+ }
70
+
71
+ @return $_return;
72
+ }
73
+
74
+
75
+ // Parse Columns & Gutters
76
+ // -----------------------
77
+ @function parse-layout(
78
+ $short
79
+ ) {
80
+ $_return: ();
81
+ $_columns: ();
82
+ $_gutters: null;
83
+
84
+ @if not(unitless(nth(nth($short, 1), 1))) {
85
+ $_gutters: nth($short, 1);
86
+ } @else {
87
+ $_columns: (columns: nth($short, 1));
88
+ $_gutters: if(length($short) > 1, nth($short, 2), $_gutters);
89
+ }
90
+
91
+ @if type-of($_gutters) == list and length($_gutters) > 0 {
92
+ $_gutters: (
93
+ gutters: nth($_gutters, 2) / nth($_gutters, 1),
94
+ column-width: nth($_gutters, 1),
95
+ );
96
+ } @else {
97
+ $_gutters: if($_gutters, (gutters: $_gutters), ());
98
+ }
99
+
100
+ $_return: map-merge($_return, $_columns);
101
+ $_return: map-merge($_return, $_gutters);
102
+
103
+ @return $_return;
104
+ }
105
+
106
+
107
+ // Parse Grid/Context
108
+ // ------------------
109
+ @function parse-grid(
110
+ $short: $susy
111
+ ) {
112
+ $_return: parse-settings($short);
113
+ $_layout: ();
114
+
115
+ @if type-of($short) == map {
116
+ $_return: $short;
117
+ } @else {
118
+ @each $item in $short {
119
+ // number or list
120
+ @if type-of($item) == number or type-of($item) == list {
121
+ @if type-of($item) == list or unitless($item) {
122
+ $_layout: append($_layout, $item);
123
+ } @else {
124
+ $_return: map-merge($_return, (container: $item));
125
+ }
126
+ }
127
+ }
128
+
129
+ $_layout: if(length($_layout) > 0, parse-layout($_layout), $_layout);
130
+ }
131
+
132
+ @return map-merge($_return, $_layout);
133
+ }
134
+
135
+
136
+ // Parse Span
137
+ // ----------
138
+ @function parse-span(
139
+ $short,
140
+ $key: span
141
+ ) {
142
+ $_return: ();
143
+
144
+ @if type-of($short) == map {
145
+ $_return: $short;
146
+ } @else {
147
+ $_at: index($short, at);
148
+
149
+ @if $_at {
150
+ $_loci: $_at + 1;
151
+ $_location: nth($short, $_loci);
152
+ $_return: map-merge($_return, (location: $_location));
153
+ $short: set-nth($short, $_at, null);
154
+ $short: set-nth($short, $_loci, null);
155
+ }
156
+
157
+ $_i: 1;
158
+ $_span: ();
159
+
160
+ @while $_i <= length($short) {
161
+ $_this: nth($short, $_i);
162
+
163
+ @if type-of($_this) == number {
164
+ $_span: append($_span, $_this);
165
+ $short: set-nth($short, $_i, null);
166
+ } @else if $_this == of {
167
+ $short: set-nth($short, $_i, null);
168
+ $_i: length($short) + 1;
169
+ }
170
+
171
+ $_i: $_i + 1;
172
+ }
173
+
174
+ @if length($_span) > 0 {
175
+ $_span: if(length($_span) == 1, nth($_span, 1), $_span);
176
+ $_return: map-merge($_return, ($key: $_span));
177
+ }
178
+
179
+ $_return: map-merge($_return, parse-grid($short));
180
+ }
181
+
182
+ @return $_return;
183
+ }
184
+
185
+
186
+ // Parse Gutters
187
+ // -------------
188
+ @function parse-gutters(
189
+ $short: $susy
190
+ ) {
191
+ $_gutters: parse-span($short, gutter-override);
192
+ $_span: susy-get(gutter-override, $_gutters);
193
+
194
+ @if $_span and not(map-get($_gutters, columns)) {
195
+ $_context: ();
196
+ $_new: ();
197
+
198
+ @each $item in $_span {
199
+ @if type-of($item) == number and unitless($item) {
200
+ $_context: append($_context, $item);
201
+ } @else {
202
+ $_new: append($_new, $item);
203
+ }
204
+ }
205
+
206
+ $_context: parse-grid($_context);
207
+ $_new: if(length($_new) == 0, null, $_new);
208
+ $_new: if(length($_new) == 1, nth($_new, 1), $_new);
209
+ $_new: (gutter-override: if($_new != $_span, $_new, $_span));
210
+
211
+ $_gutters: map-merge($_gutters, $_new);
212
+ $_gutters: map-merge($_gutters, $_context);
213
+ }
214
+
215
+ @return $_gutters;
216
+ }