nesta 0.9.13 → 0.10.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +7 -0
  2. data/{spec/spec.opts → .rspec} +0 -0
  3. data/.travis.yml +3 -2
  4. data/CHANGES +130 -1
  5. data/Gemfile +1 -8
  6. data/Gemfile.lock +68 -51
  7. data/LICENSE +1 -1
  8. data/README.md +38 -6
  9. data/Rakefile +2 -5
  10. data/bin/nesta +59 -3
  11. data/config.ru +3 -0
  12. data/lib/nesta.rb +1 -1
  13. data/lib/nesta/app.rb +20 -17
  14. data/lib/nesta/commands.rb +6 -3
  15. data/lib/nesta/config.rb +52 -15
  16. data/lib/nesta/helpers.rb +30 -3
  17. data/lib/nesta/models.rb +48 -30
  18. data/lib/nesta/navigation.rb +32 -12
  19. data/lib/nesta/overrides.rb +5 -5
  20. data/lib/nesta/version.rb +1 -1
  21. data/nesta.gemspec +9 -10
  22. data/smoke-test.sh +102 -0
  23. data/spec/atom_spec.rb +52 -49
  24. data/spec/commands_spec.rb +22 -16
  25. data/spec/config_spec.rb +66 -6
  26. data/spec/fixtures/nesta-plugin-test/lib/nesta-plugin-test/init.rb +1 -3
  27. data/spec/model_factory.rb +16 -16
  28. data/spec/models_spec.rb +197 -144
  29. data/spec/overrides_spec.rb +21 -21
  30. data/spec/page_spec.rb +182 -136
  31. data/spec/sitemap_spec.rb +48 -43
  32. data/spec/spec_helper.rb +32 -17
  33. data/templates/Gemfile +5 -2
  34. data/templates/config/config.yml +13 -13
  35. data/templates/config/deploy.rb +2 -2
  36. data/templates/index.haml +2 -0
  37. data/templates/themes/app.rb +1 -1
  38. data/templates/themes/views/layout.haml +7 -0
  39. data/templates/themes/views/master.sass +3 -0
  40. data/templates/themes/views/page.haml +1 -0
  41. data/views/atom.haml +3 -3
  42. data/views/comments.haml +1 -1
  43. data/views/error.haml +1 -1
  44. data/views/feed.haml +1 -1
  45. data/views/layout.haml +6 -3
  46. data/views/master.sass +143 -133
  47. data/views/mixins.sass +53 -28
  48. data/views/normalize.scss +396 -0
  49. data/views/page_meta.haml +2 -2
  50. data/views/sitemap.haml +2 -2
  51. data/views/summaries.haml +2 -2
  52. metadata +155 -202
  53. data/lib/nesta/cache.rb +0 -138
@@ -1,39 +1,64 @@
1
1
  // Default ratios between font sizes; used to maintain the type hierarchy.
2
2
  // http://www.markboulton.co.uk/journal/comments/five-simple-steps-to-better-typography-part-4
3
3
 
4
- $h1-scale: 2.18
5
- $h2-scale: 1.64
6
- $h3-scale: 1.45
7
- $h4-scale: 1.18
8
-
9
- // Variables used in calculations used to maintain vertical rhythm.
10
- // http://webtypography.net/Rhythm_and_Proportion/Vertical_Motion/2.2.2/
11
-
12
- $base-scale: 0.88
13
- $base-font: $base-scale * 1em
14
- $vertical-rhythm: 1.75em
15
- $base-vertical-margin: 1.75em
16
-
17
- @mixin adjust-font-size($scale, $top-weight: 1, $bottom-weight: 1)
18
- $average-margin: $base-vertical-margin / $scale
19
- margin-top: $average-margin * $top-weight
20
- margin-bottom: $average-margin * $bottom-weight
21
-
22
- $line-height: $vertical-rhythm / $scale
23
- @if $line-height < 1
24
- line-height: $line-height * 2
25
- @else
26
- line-height: $line-height
27
-
28
- font-size: 100% * $scale
29
-
30
- @mixin border-radius($radius)
4
+ $size5: 2.18em
5
+ $size4: 1.64em
6
+ $size3: 1.45em
7
+ $size2: 1.18em
8
+ $size1: 1em
9
+ $size0: 0.88em
10
+
11
+ $vertical-margin: 1.5em
12
+
13
+ // Colour settings
14
+
15
+ $base-color: #313126
16
+ $tint: #EEEEC6
17
+ $border-color: #D7C28B
18
+ $link-color: #4786fd
19
+ $visited-link-color: darken($link-color, 5%)
20
+ $hover-link-color: darken($link-color, 15%)
21
+ $active-link-color: darken($link-color, 20%)
22
+ $nav-link-color: desaturate(lighten($link-color, 10%), 25%)
23
+ $meta-color: #87877D
24
+
25
+ @function empx($em, $base: 16px)
26
+ @return ($em / 1em) * $base
27
+
28
+ // Layout settings
29
+
30
+ $measure: empx(36em)
31
+ $gutter: empx(6em)
32
+ $sidebar-width: empx(14em)
33
+ $full-page-width: $measure + $gutter + $sidebar-width
34
+
35
+ $max-handheld-width: 400px
36
+ $min-medium-width: $measure + empx(1em)
37
+ $min-wide-width: $full-page-width + empx(4em)
38
+
39
+ // Mixin
40
+
41
+ =border-radius($radius)
31
42
  -webkit-border-radius: $radius
32
43
  -moz-border-radius: $radius
33
44
  border-radius: $radius
34
45
 
35
- @mixin transition($definition)
46
+ =transition($definition)
36
47
  -moz-transition: $definition
37
48
  -o-transition: $definition
38
49
  -webkit-transition: $definition
39
50
  transition: $definition
51
+
52
+ =respond-to($media)
53
+ @if $media == handhelds
54
+ @media only screen and (max-width: $max-handheld-width)
55
+ @content
56
+ @else if $media == medium-screens
57
+ @media only screen and (min-width: $min-medium-width)
58
+ @content
59
+ @else if $media == only-medium-screens
60
+ @media only screen and (min-width: $min-medium-width) and (max-width: $min-wide-width - 1px)
61
+ @content
62
+ @else if $media == wide-screens
63
+ @media only screen and (min-width: $min-wide-width)
64
+ @content
@@ -0,0 +1,396 @@
1
+ /*! normalize.css v2.1.0 | MIT License | git.io/normalize */
2
+
3
+ /* ==========================================================================
4
+ HTML5 display definitions
5
+ ========================================================================== */
6
+
7
+ /**
8
+ * Correct `block` display not defined in IE 8/9.
9
+ */
10
+
11
+ article,
12
+ aside,
13
+ details,
14
+ figcaption,
15
+ figure,
16
+ footer,
17
+ header,
18
+ hgroup,
19
+ main,
20
+ nav,
21
+ section,
22
+ summary {
23
+ display: block;
24
+ }
25
+
26
+ /**
27
+ * Correct `inline-block` display not defined in IE 8/9.
28
+ */
29
+
30
+ audio,
31
+ canvas,
32
+ video {
33
+ display: inline-block;
34
+ }
35
+
36
+ /**
37
+ * Prevent modern browsers from displaying `audio` without controls.
38
+ * Remove excess height in iOS 5 devices.
39
+ */
40
+
41
+ audio:not([controls]) {
42
+ display: none;
43
+ height: 0;
44
+ }
45
+
46
+ /**
47
+ * Address styling not present in IE 8/9.
48
+ */
49
+
50
+ [hidden] {
51
+ display: none;
52
+ }
53
+
54
+ /* ==========================================================================
55
+ Base
56
+ ========================================================================== */
57
+
58
+ /**
59
+ * 1. Set default font family to sans-serif.
60
+ * 2. Prevent iOS text size adjust after orientation change, without disabling
61
+ * user zoom.
62
+ */
63
+
64
+ html {
65
+ font-family: sans-serif; /* 1 */
66
+ -webkit-text-size-adjust: 100%; /* 2 */
67
+ -ms-text-size-adjust: 100%; /* 2 */
68
+ }
69
+
70
+ /**
71
+ * Remove default margin.
72
+ */
73
+
74
+ body {
75
+ margin: 0;
76
+ }
77
+
78
+ /* ==========================================================================
79
+ Links
80
+ ========================================================================== */
81
+
82
+ /**
83
+ * Address `outline` inconsistency between Chrome and other browsers.
84
+ */
85
+
86
+ a:focus {
87
+ outline: thin dotted;
88
+ }
89
+
90
+ /**
91
+ * Improve readability when focused and also mouse hovered in all browsers.
92
+ */
93
+
94
+ a:active,
95
+ a:hover {
96
+ outline: 0;
97
+ }
98
+
99
+ /* ==========================================================================
100
+ Typography
101
+ ========================================================================== */
102
+
103
+ /**
104
+ * Address variable `h1` font-size and margin within `section` and `article`
105
+ * contexts in Firefox 4+, Safari 5, and Chrome.
106
+ */
107
+
108
+ h1 {
109
+ font-size: 2em;
110
+ margin: 0.67em 0;
111
+ }
112
+
113
+ /**
114
+ * Address styling not present in IE 8/9, Safari 5, and Chrome.
115
+ */
116
+
117
+ abbr[title] {
118
+ border-bottom: 1px dotted;
119
+ }
120
+
121
+ /**
122
+ * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
123
+ */
124
+
125
+ b,
126
+ strong {
127
+ font-weight: bold;
128
+ }
129
+
130
+ /**
131
+ * Address styling not present in Safari 5 and Chrome.
132
+ */
133
+
134
+ dfn {
135
+ font-style: italic;
136
+ }
137
+
138
+ /**
139
+ * Address differences between Firefox and other browsers.
140
+ */
141
+
142
+ hr {
143
+ -moz-box-sizing: content-box;
144
+ box-sizing: content-box;
145
+ height: 0;
146
+ }
147
+
148
+ /**
149
+ * Address styling not present in IE 8/9.
150
+ */
151
+
152
+ mark {
153
+ background: #ff0;
154
+ color: #000;
155
+ }
156
+
157
+ /**
158
+ * Correct font family set oddly in Safari 5 and Chrome.
159
+ */
160
+
161
+ code,
162
+ kbd,
163
+ pre,
164
+ samp {
165
+ font-family: monospace, serif;
166
+ font-size: 1em;
167
+ }
168
+
169
+ /**
170
+ * Improve readability of pre-formatted text in all browsers.
171
+ */
172
+
173
+ pre {
174
+ white-space: pre-wrap;
175
+ }
176
+
177
+ /**
178
+ * Set consistent quote types.
179
+ */
180
+
181
+ q {
182
+ quotes: "\201C" "\201D" "\2018" "\2019";
183
+ }
184
+
185
+ /**
186
+ * Address inconsistent and variable font size in all browsers.
187
+ */
188
+
189
+ small {
190
+ font-size: 80%;
191
+ }
192
+
193
+ /**
194
+ * Prevent `sub` and `sup` affecting `line-height` in all browsers.
195
+ */
196
+
197
+ sub,
198
+ sup {
199
+ font-size: 75%;
200
+ line-height: 0;
201
+ position: relative;
202
+ vertical-align: baseline;
203
+ }
204
+
205
+ sup {
206
+ top: -0.5em;
207
+ }
208
+
209
+ sub {
210
+ bottom: -0.25em;
211
+ }
212
+
213
+ /* ==========================================================================
214
+ Embedded content
215
+ ========================================================================== */
216
+
217
+ /**
218
+ * Remove border when inside `a` element in IE 8/9.
219
+ */
220
+
221
+ img {
222
+ border: 0;
223
+ }
224
+
225
+ /**
226
+ * Correct overflow displayed oddly in IE 9.
227
+ */
228
+
229
+ svg:not(:root) {
230
+ overflow: hidden;
231
+ }
232
+
233
+ /* ==========================================================================
234
+ Figures
235
+ ========================================================================== */
236
+
237
+ /**
238
+ * Address margin not present in IE 8/9 and Safari 5.
239
+ */
240
+
241
+ figure {
242
+ margin: 0;
243
+ }
244
+
245
+ /* ==========================================================================
246
+ Forms
247
+ ========================================================================== */
248
+
249
+ /**
250
+ * Define consistent border, margin, and padding.
251
+ */
252
+
253
+ fieldset {
254
+ border: 1px solid #c0c0c0;
255
+ margin: 0 2px;
256
+ padding: 0.35em 0.625em 0.75em;
257
+ }
258
+
259
+ /**
260
+ * 1. Correct `color` not being inherited in IE 8/9.
261
+ * 2. Remove padding so people aren't caught out if they zero out fieldsets.
262
+ */
263
+
264
+ legend {
265
+ border: 0; /* 1 */
266
+ padding: 0; /* 2 */
267
+ }
268
+
269
+ /**
270
+ * 1. Correct font family not being inherited in all browsers.
271
+ * 2. Correct font size not being inherited in all browsers.
272
+ * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
273
+ */
274
+
275
+ button,
276
+ input,
277
+ select,
278
+ textarea {
279
+ font-family: inherit; /* 1 */
280
+ font-size: 100%; /* 2 */
281
+ margin: 0; /* 3 */
282
+ }
283
+
284
+ /**
285
+ * Address Firefox 4+ setting `line-height` on `input` using `!important` in
286
+ * the UA stylesheet.
287
+ */
288
+
289
+ button,
290
+ input {
291
+ line-height: normal;
292
+ }
293
+
294
+ /**
295
+ * Address inconsistent `text-transform` inheritance for `button` and `select`.
296
+ * All other form control elements do not inherit `text-transform` values.
297
+ * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
298
+ * Correct `select` style inheritance in Firefox 4+ and Opera.
299
+ */
300
+
301
+ button,
302
+ select {
303
+ text-transform: none;
304
+ }
305
+
306
+ /**
307
+ * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
308
+ * and `video` controls.
309
+ * 2. Correct inability to style clickable `input` types in iOS.
310
+ * 3. Improve usability and consistency of cursor style between image-type
311
+ * `input` and others.
312
+ */
313
+
314
+ button,
315
+ html input[type="button"], /* 1 */
316
+ input[type="reset"],
317
+ input[type="submit"] {
318
+ -webkit-appearance: button; /* 2 */
319
+ cursor: pointer; /* 3 */
320
+ }
321
+
322
+ /**
323
+ * Re-set default cursor for disabled elements.
324
+ */
325
+
326
+ button[disabled],
327
+ html input[disabled] {
328
+ cursor: default;
329
+ }
330
+
331
+ /**
332
+ * 1. Address box sizing set to `content-box` in IE 8/9.
333
+ * 2. Remove excess padding in IE 8/9.
334
+ */
335
+
336
+ input[type="checkbox"],
337
+ input[type="radio"] {
338
+ box-sizing: border-box; /* 1 */
339
+ padding: 0; /* 2 */
340
+ }
341
+
342
+ /**
343
+ * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
344
+ * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
345
+ * (include `-moz` to future-proof).
346
+ */
347
+
348
+ input[type="search"] {
349
+ -webkit-appearance: textfield; /* 1 */
350
+ -moz-box-sizing: content-box;
351
+ -webkit-box-sizing: content-box; /* 2 */
352
+ box-sizing: content-box;
353
+ }
354
+
355
+ /**
356
+ * Remove inner padding and search cancel button in Safari 5 and Chrome
357
+ * on OS X.
358
+ */
359
+
360
+ input[type="search"]::-webkit-search-cancel-button,
361
+ input[type="search"]::-webkit-search-decoration {
362
+ -webkit-appearance: none;
363
+ }
364
+
365
+ /**
366
+ * Remove inner padding and border in Firefox 4+.
367
+ */
368
+
369
+ button::-moz-focus-inner,
370
+ input::-moz-focus-inner {
371
+ border: 0;
372
+ padding: 0;
373
+ }
374
+
375
+ /**
376
+ * 1. Remove default vertical scrollbar in IE 8/9.
377
+ * 2. Improve readability and alignment in all browsers.
378
+ */
379
+
380
+ textarea {
381
+ overflow: auto; /* 1 */
382
+ vertical-align: top; /* 2 */
383
+ }
384
+
385
+ /* ==========================================================================
386
+ Tables
387
+ ========================================================================== */
388
+
389
+ /**
390
+ * Remove most spacing between table cells.
391
+ */
392
+
393
+ table {
394
+ border-collapse: collapse;
395
+ border-spacing: 0;
396
+ }