mr_hyde 0.1.0 → 0.2.0

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 (57) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/README.md +3 -3
  4. data/Rakefile +1 -0
  5. data/bin/mrhyde +56 -10
  6. data/lib/mr_hyde/commands/build.rb +3 -2
  7. data/lib/mr_hyde/commands/list.rb +41 -0
  8. data/lib/mr_hyde/commands/new.rb +3 -9
  9. data/lib/mr_hyde/commands/remove.rb +2 -2
  10. data/lib/mr_hyde/commands/serve.rb +26 -0
  11. data/lib/mr_hyde/configuration.rb +17 -5
  12. data/lib/mr_hyde/extensions/new.rb +54 -2
  13. data/lib/mr_hyde/jekyll_ext/converters/scss.rb +18 -0
  14. data/lib/mr_hyde/jekyll_ext/jekyll.rb +16 -0
  15. data/lib/mr_hyde/jekyll_ext/site.rb +47 -0
  16. data/lib/mr_hyde/jekyll_ext/tags/include.rb +23 -0
  17. data/lib/mr_hyde/site.rb +234 -0
  18. data/lib/mr_hyde/version.rb +1 -1
  19. data/lib/mr_hyde.rb +125 -24
  20. data/lib/site_template/_config.yml +14 -0
  21. data/lib/site_template/_mrhyde.yml +2 -11
  22. data/lib/site_template/sources/_assets/_sass/_base.scss +204 -0
  23. data/lib/site_template/sources/_assets/_sass/_functions.scss +11 -0
  24. data/lib/site_template/sources/_assets/_sass/_grid.scss +544 -0
  25. data/lib/site_template/sources/_assets/_sass/_layout.scss +241 -0
  26. data/lib/site_template/sources/_assets/_sass/_newbase.scss +488 -0
  27. data/lib/site_template/sources/_assets/_sass/_normalize.scss +424 -0
  28. data/lib/site_template/sources/_assets/_sass/_syntax-highlighting.scss +67 -0
  29. data/lib/site_template/sources/_includes/footer.html +58 -0
  30. data/lib/site_template/sources/_includes/head.html +12 -0
  31. data/lib/site_template/sources/_includes/header.html +31 -0
  32. data/lib/site_template/sources/_layouts/default.html +25 -0
  33. data/lib/site_template/sources/_layouts/page.html +14 -0
  34. data/lib/site_template/sources/_layouts/post.html +15 -0
  35. data/lib/site_template/sources/main_site/about.md +9 -0
  36. data/lib/site_template/sources/main_site/css/main.scss +55 -0
  37. data/lib/site_template/sources/main_site/css/normalize.css +427 -0
  38. data/lib/site_template/sources/main_site/index.md +17 -0
  39. data/lib/site_template/sources/main_site/js/main.coffee +27 -0
  40. data/lib/subsite_template/_config.yml +2 -0
  41. data/lib/subsite_template/_posts/0000-00-00-welcome-to-mr-hyde.markdown.erb +27 -0
  42. data/lib/subsite_template/about.md +9 -0
  43. data/lib/subsite_template/assets/dr_jekyll_and_mr_hyde_poster.png +0 -0
  44. data/lib/subsite_template/feed.xml +30 -0
  45. data/lib/subsite_template/index.html +26 -0
  46. data/resources/mrhyde-logo-red.png +0 -0
  47. data/resources/mrhyde-logo.png +0 -0
  48. data/spec/build_spec.rb +26 -27
  49. data/spec/list_spec.rb +37 -0
  50. data/spec/new_spec.rb +53 -25
  51. data/spec/rm_spec.rb +30 -31
  52. metadata +38 -8
  53. data/lib/mr_hyde/blog.rb +0 -146
  54. data/lib/mr_hyde/extensions/.new.rb.swp +0 -0
  55. data/lib/site_template/site/css/main.css +0 -0
  56. data/lib/site_template/site/index.html +0 -0
  57. data/test/blog_test.rb +0 -46
@@ -0,0 +1,241 @@
1
+ /**
2
+ * Site header
3
+ */
4
+
5
+ .site-header {
6
+ padding-top: 1.250em;
7
+ padding-bottom: 3em;
8
+ text-align: center;
9
+ hgroup {
10
+ padding: 1.5em 0;
11
+ }
12
+ }
13
+
14
+ h1.site-title {
15
+ font-size: 3.2em;
16
+ line-height: 1.3;
17
+ margin-bottom: .4em;
18
+ margin-top: 0;
19
+ img {
20
+ max-height: 200px;
21
+ }
22
+ a {
23
+ border-bottom: 1px dotted #ccc;
24
+ &:hover {
25
+ color: #000;
26
+ }
27
+ }
28
+ }
29
+
30
+ .site-description {
31
+ font-size: .9em;
32
+ font-weight: 400;
33
+ }
34
+
35
+ /**
36
+ * Site footer
37
+ */
38
+ .site-footer {
39
+ padding: 0 0 1.5em 0;
40
+ > .row {
41
+ border-top: 1px solid #eee;
42
+ padding-top: 1.5em
43
+ }
44
+ .site-info {
45
+ padding-top: 1em;
46
+ text-align: center;
47
+ font-size: .9em;
48
+ color: #666;
49
+ a {
50
+ color: #666;
51
+ }
52
+ }
53
+ }
54
+
55
+ .footer-heading {
56
+ font-size: 18px;
57
+ margin-bottom: $spacing-unit / 2;
58
+ }
59
+
60
+ .footer-content {
61
+ font-size: 0.8em;
62
+ color: #828282;
63
+ }
64
+
65
+ .footer-col {
66
+ margin-bottom: 15px;
67
+ }
68
+
69
+ .contact-list,
70
+ .social-media-list {
71
+ list-style: none;
72
+ margin-left: 0;
73
+ }
74
+
75
+ /**
76
+ * Content
77
+ */
78
+ .page, .posts, .posts-list {
79
+ max-width: 700px;
80
+ margin-left: auto;
81
+ margin-right: auto;
82
+
83
+ }
84
+
85
+ .page {
86
+ .post-list, .rss-subscribe {
87
+ text-align: center;
88
+ }
89
+ }
90
+
91
+ /**
92
+ * Page content
93
+ */
94
+ .page-content {
95
+
96
+ }
97
+
98
+ .page-heading {
99
+ font-size: 20px;
100
+ text-align: center;
101
+ }
102
+
103
+ .site-list, .post-list {
104
+ margin-left: 0;
105
+ list-style: none;
106
+
107
+ li {
108
+ margin-bottom: $spacing-unit;
109
+ &:last-child { margin-bottom: 0; }
110
+ }
111
+ }
112
+
113
+ .site-meta, .post-meta {
114
+ font-size: $small-font-size;
115
+ color: $grey-color;
116
+ }
117
+
118
+ .site-link, .post-link {
119
+ display: block;
120
+ font-size: 24px;
121
+ }
122
+
123
+
124
+
125
+ /**
126
+ * Posts
127
+ */
128
+ .post-header {
129
+ margin-bottom: $spacing-unit;
130
+ text-align: center;
131
+ }
132
+
133
+ .post-title {
134
+ font-size: 42px;
135
+ letter-spacing: -1px;
136
+ line-height: 1;
137
+
138
+ @include media-query($on-laptop) {
139
+ font-size: 36px;
140
+ }
141
+ }
142
+
143
+ .post-content {
144
+ margin-bottom: $spacing-unit;
145
+ h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight {
146
+ margin-bottom: 15px;
147
+ }
148
+
149
+ h2, h3, h4 { text-align: center; }
150
+ h2 {
151
+ font-size: 32px;
152
+
153
+ @include media-query($on-laptop) {
154
+ font-size: 28px;
155
+ }
156
+ }
157
+
158
+ h3 {
159
+ font-size: 26px;
160
+
161
+ @include media-query($on-laptop) {
162
+ font-size: 22px;
163
+ }
164
+ }
165
+
166
+ h4 {
167
+ font-size: 20px;
168
+
169
+ @include media-query($on-laptop) {
170
+ font-size: 18px;
171
+ }
172
+ }
173
+
174
+ ul {
175
+ list-style: none;
176
+ text-align: center;
177
+ }
178
+
179
+ pre, code {
180
+ font-size: 15px;
181
+ border: 1px solid #E8E8E8;
182
+ border-radius: 3px;
183
+ background-color: #EEF;
184
+ }
185
+
186
+ pre {
187
+ padding: 8px 12px;
188
+ overflow-x: scroll;
189
+ }
190
+
191
+ * {
192
+ &:first-child {
193
+ margin-top: 0
194
+ }
195
+ }
196
+ }
197
+
198
+ /**
199
+ * Home
200
+ */
201
+
202
+ .home {
203
+ article {
204
+ margin-bottom: 3em;
205
+ &:last-child { margin-bottom: 0; }
206
+ p { text-align: justify; }
207
+ }
208
+
209
+ .article-heading {
210
+ font-size: 2em;
211
+ margin-bottom: 0.5em;
212
+ }
213
+ }
214
+
215
+ /* --------------- MEDIA QUERIES ---------------- */
216
+ @media (min-width: 768px) and (max-width: 979px) {
217
+ .main-navigation ul li {
218
+ margin: 0 0.75em;
219
+ }
220
+ }
221
+
222
+ @media (max-width: 767px) {
223
+ .site-header {
224
+ padding-top: 0.250em;
225
+ }
226
+ .site-header {
227
+ padding-bottom: 1em;
228
+ hgroup {
229
+ padding: .875em 0;
230
+ }
231
+ }
232
+ .site-description {
233
+ margin: 0.23em 0;
234
+ }
235
+ .footer-col {
236
+ float: none;
237
+ width: -webkit-calc(100% - (#{$spacing-unit} / 2));
238
+ width: calc(100% - (#{$spacing-unit} / 2));
239
+ }
240
+ }
241
+
@@ -0,0 +1,488 @@
1
+ /**
2
+ * Reset some basic elements
3
+ */
4
+ body, h1, h2, h3, h4, h5, h6,
5
+ p, blockquote, pre, hr,
6
+ dl, dd, ol, ul, figure {
7
+ margin: 0;
8
+ padding: 0;
9
+ }
10
+
11
+ /**
12
+ * Basic styling
13
+ */
14
+ html {
15
+ font-size: 100%;
16
+ }
17
+
18
+ body {
19
+ line-height: 1.6;
20
+ overflow-x: hidden;
21
+ font-family: 'Lora', Georgia, serif;
22
+ }
23
+
24
+ img {
25
+ max-width: 100%;
26
+ height: auto;
27
+ }
28
+
29
+ iframe {
30
+ border: 0;
31
+ outline: none;
32
+ }
33
+
34
+ video, audio {
35
+ width: 100%;
36
+ }
37
+
38
+ object, embed, video, iframe {
39
+ max-width: 100%;
40
+ }
41
+
42
+ h1, h2, h3, h4, h5, h6 {
43
+ line-height: 1.5;
44
+ font-weight: 400;
45
+ }
46
+
47
+ a {
48
+ color: #CE6607;
49
+ text-decoration: none;
50
+ &:hover {
51
+ color: #A35208;
52
+ }
53
+ &:focus {
54
+ outline: none;
55
+ }
56
+ }
57
+
58
+ h1 a {
59
+ color: #333;
60
+ }
61
+
62
+ /* Clearfix hack by Nicolas Gallagher: http://nicolasgallagher.com/micro-clearfix-hack/ */
63
+
64
+ .clearfix {
65
+ &:before {
66
+ content: " ";
67
+ display: table;
68
+ }
69
+ &:after {
70
+ content: " ";
71
+ display: table;
72
+ clear: both;
73
+ }
74
+ }
75
+
76
+ .easing, .media-box .mask {
77
+ -webkit-transition: all 0.3s ease-out;
78
+ /* Safari 3.2+, Chrome */
79
+ -moz-transition: all 0.3s ease-out;
80
+ /* Firefox 4-15 */
81
+ -o-transition: all 0.3s ease-out;
82
+ /* Opera 10.5–12.00 */
83
+ transition: all 0.3s ease-out;
84
+ /* Firefox 16+, Opera 12.50+ */
85
+ }
86
+
87
+ /* -------------------------------------------- */
88
+ /* FONTS */
89
+
90
+ html, button, input, select, textarea, .toggle h4 {
91
+ font-family: 'Lora', Georgia, serif;
92
+ }
93
+
94
+ h1, h2, h3, h4, h5, h6, .main-navigation ul li, dt {
95
+ font-family: "Coustard", Georgia, serif;
96
+ }
97
+
98
+ h1.site-title {
99
+ font-family: "UnifrakturMaguntia", Georgia, serif;
100
+ a {
101
+ font-family: "UnifrakturMaguntia", Georgia, serif;
102
+ }
103
+ }
104
+
105
+ /* -------------------------------------------- */
106
+ /* COLORS */
107
+ /* Text Selection */
108
+
109
+ ::selection, ::-moz-selection {
110
+ text-shadow: none;
111
+ color: #333;
112
+ background: #FFFFCF;
113
+ }
114
+
115
+ body {
116
+ color: #444;
117
+ }
118
+
119
+ /* -------------------------------------------- */
120
+ /* LAYOUT */
121
+
122
+ .middle {
123
+ padding-bottom: 4em;
124
+ overflow: hidden;
125
+ }
126
+
127
+ .wrapper {
128
+ width: 100%;
129
+ > .row {
130
+ width: 80%;
131
+ margin-left: auto;
132
+ margin-right: auto;
133
+ }
134
+ }
135
+
136
+ .row-fluid {
137
+ margin-left: auto;
138
+ margin-right: auto;
139
+ }
140
+
141
+ .readable-content {
142
+ max-width: 780px;
143
+ margin-left: auto;
144
+ margin-right: auto;
145
+ }
146
+
147
+ .blog-with-sidebar {
148
+ max-width: 1200px;
149
+ }
150
+
151
+ /* NAVIGATION */
152
+
153
+ .main-navigation {
154
+ div.selector {
155
+ display: none;
156
+ margin: 0 auto;
157
+ border: 0;
158
+ &:before {
159
+ font-size: 17px;
160
+ content: "\f0c9";
161
+ }
162
+ span {
163
+ font-weight: bold;
164
+ }
165
+ }
166
+ border-style: solid;
167
+ border-width: 1px 0;
168
+ border-color: #eee;
169
+ ul {
170
+ list-style: none;
171
+ padding: 0;
172
+ margin: 0;
173
+ li {
174
+ position: relative;
175
+ display: inline-block;
176
+ margin: 0 1.25em;
177
+ padding: 1em 0;
178
+ max-height: 1.5em;
179
+ font-size: .9em;
180
+ a {
181
+ display: inline-block;
182
+ }
183
+ }
184
+ .current-menu-item > a {
185
+ color: #C30;
186
+ }
187
+ li {
188
+ color: #333;
189
+ a {
190
+ color: #333;
191
+ }
192
+ }
193
+ ul {
194
+ display: none;
195
+ position: absolute;
196
+ top: 3.542em;
197
+ margin: -2px 0 0 0;
198
+ left: -1em;
199
+ width: 160px;
200
+ z-index: 310;
201
+ padding: 0;
202
+ border: 1px solid #ddd;
203
+ border-top: 2px solid #555;
204
+ box-shadow: 0px 0px 10px 1px rgba(0, 0, 0, 0.1);
205
+ li {
206
+ display: block;
207
+ max-height: none;
208
+ padding: 0;
209
+ margin: 0;
210
+ text-align: left;
211
+ background-color: #fff;
212
+ border-bottom: 1px solid #eee;
213
+ &:first-child {
214
+ border-top: 0;
215
+ }
216
+ a {
217
+ display: block;
218
+ padding: .8em 1.2em;
219
+ font-size: .95em;
220
+ color: #666;
221
+ &:hover, &.selected {
222
+ color: #000;
223
+ }
224
+ }
225
+ &:last-child {
226
+ border-bottom: none;
227
+ }
228
+ }
229
+ &:after {
230
+ content: " ";
231
+ position: absolute;
232
+ left: 1.6em;
233
+ bottom: 100%;
234
+ pointer-events: none;
235
+ width: 0;
236
+ height: 0;
237
+ border-bottom: 12px solid #555;
238
+ border-right: 12px solid transparent;
239
+ }
240
+ ul {
241
+ top: 0;
242
+ left: auto;
243
+ right: 160px;
244
+ border: 1px solid #ddd;
245
+ border-right: 2px solid #777;
246
+ &:after {
247
+ content: " ";
248
+ position: absolute;
249
+ top: 1.2em;
250
+ left: 100%;
251
+ pointer-events: none;
252
+ width: 0;
253
+ height: 0;
254
+ border: 0;
255
+ border-top: 10px solid #555;
256
+ border-right: 10px solid transparent;
257
+ }
258
+ a {
259
+ font-size: 1em;
260
+ }
261
+ }
262
+ }
263
+ }
264
+ > ul > li > a {
265
+ &:hover, &.selected {
266
+ border-bottom: 1px dotted #ccc;
267
+ }
268
+ }
269
+ }
270
+
271
+
272
+ /* SEARCH */
273
+
274
+ #search-form {
275
+ position: relative;
276
+ label {
277
+ position: absolute;
278
+ font-size: 1em;
279
+ top: 0.09em;
280
+ left: 0;
281
+ cursor: text;
282
+ &:hover {
283
+ color: #777;
284
+ }
285
+ }
286
+ #search {
287
+ font-size: .9em;
288
+ color: #888;
289
+ width: 50px;
290
+ min-width: 0;
291
+ max-width: none;
292
+ padding: 3px 23px 3px 0;
293
+ border: 0;
294
+ outline: 0;
295
+ background-color: transparent;
296
+ -moz-box-sizing: content-box;
297
+ -webkit-box-sizing: content-box;
298
+ -ms-box-sizing: content-box;
299
+ box-sizing: content-box;
300
+ &:focus {
301
+ color: #333;
302
+ border-bottom: 1px dotted #ccc;
303
+ }
304
+ }
305
+ }
306
+
307
+ #search-submit {
308
+ position: absolute;
309
+ top: .24em;
310
+ right: 0;
311
+ margin: 0 0 0 -23px;
312
+ font-size: 1em;
313
+ text-shadow: none;
314
+ color: #444;
315
+ border: 0;
316
+ outline: 0;
317
+ padding: 0;
318
+ background: none;
319
+ &:hover {
320
+ color: #000;
321
+ }
322
+ }
323
+
324
+ /* Mobile Search */
325
+
326
+ .search-mobile {
327
+ display: none;
328
+ position: relative;
329
+ padding: 2em 1em;
330
+ background: #333;
331
+ form {
332
+ max-width: 262px;
333
+ position: relative;
334
+ margin: 0 auto;
335
+ }
336
+ #search-mobile-input {
337
+ border-color: #000;
338
+ }
339
+ #search-mobile-submit {
340
+ position: absolute;
341
+ top: 9px;
342
+ right: 16px;
343
+ margin: 0 0 0 -23px;
344
+ font-size: 1em;
345
+ text-shadow: none;
346
+ color: #444;
347
+ border: 0;
348
+ outline: 0;
349
+ padding: 0;
350
+ background: none;
351
+ }
352
+ }
353
+
354
+ /* content */
355
+ .middle {
356
+ padding-bottom: 4em;
357
+ overflow: hidden;
358
+ }
359
+
360
+ /* --------------- MEDIA QUERIES ---------------- */
361
+ @media (min-width: 768px) and (max-width: 979px) {
362
+ .wrapper > .row {
363
+ width: 80%;
364
+ }
365
+ /* SIDEBAR */
366
+ .widget {
367
+ input[type=text], textarea {
368
+ width: 90%;
369
+ margin-right: 0;
370
+ }
371
+ }
372
+ #secondary .flickr-badges {
373
+ margin-right: -2em;
374
+ }
375
+ }
376
+
377
+ @media (max-width: 767px) {
378
+ .wrapper > .row {
379
+ width: 90%;
380
+ }
381
+ /* NAVIGATION */
382
+ .main-navigation {
383
+ div.selector {
384
+ display: block;
385
+ }
386
+ > ul {
387
+ display: none;
388
+ }
389
+ }
390
+ h1, .blog-posts .entry-title {
391
+ font-size: 1.3em;
392
+ }
393
+ h1.site-title {
394
+ font-size: 4em;
395
+ margin-bottom: .16em;
396
+ img {
397
+ max-height: 160px;
398
+ }
399
+ }
400
+ .main-navigation {
401
+ > ul {
402
+ padding: .4em 0;
403
+ > li {
404
+ padding: .5em 0;
405
+ }
406
+ }
407
+ ul ul {
408
+ top: 2.5em;
409
+ }
410
+ }
411
+ }
412
+
413
+ /* forms */
414
+
415
+ label {
416
+ display: block;
417
+ font-size: .9em;
418
+ margin-bottom: .2em;
419
+ }
420
+
421
+ input:not([type=submit]):not([type=button]):not([type=file]):not([type=radio]):not([type=checkbox]), textarea, select {
422
+ padding: .7em;
423
+ width: 262px;
424
+ max-width: 100%;
425
+ font-size: .9em;
426
+ color: #444;
427
+ border: 1px solid #ddd;
428
+ border-radius: 0;
429
+ background: #fff;
430
+ -webkit-appearance: none;
431
+ -webkit-tap-highlight-color: transparent;
432
+ -moz-box-sizing: border-box;
433
+ -webkit-box-sizing: border-box;
434
+ -ms-box-sizing: border-box;
435
+ box-sizing: border-box;
436
+ }
437
+
438
+ input:not([type=submit]):not([type=button]):not([type=file]):not([type=radio]):not([type=checkbox]):focus, textarea:focus, input:focus, select:focus, div.uploader:hover {
439
+ border-color: #aaa;
440
+ outline: 0;
441
+ }
442
+
443
+ select {
444
+ min-width: 262px;
445
+ }
446
+
447
+ textarea {
448
+ width: 41%;
449
+ min-width: 262px;
450
+ min-height: 10em;
451
+ }
452
+
453
+ .inline-label {
454
+ display: inline-block;
455
+ margin-right: 2em;
456
+ }
457
+
458
+ /**
459
+ * Icons
460
+ */
461
+ .icon {
462
+
463
+ > svg {
464
+ display: inline-block;
465
+ width: 16px;
466
+ height: 16px;
467
+ vertical-align: middle;
468
+
469
+ path {
470
+ fill: $grey-color;
471
+ }
472
+ }
473
+ }
474
+
475
+ /**
476
+ * Clearfix
477
+ */
478
+ %clearfix {
479
+
480
+ &:after {
481
+ content: "";
482
+ display: table;
483
+ clear: both;
484
+ }
485
+ }
486
+ %vertical-rhythm {
487
+ margin-bottom: $spacing-unit / 2;
488
+ }