jekyll-theme-hydeout 3.1.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 (47) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.md +11 -0
  3. data/README.md +98 -0
  4. data/_includes/comments.html +6 -0
  5. data/_includes/copyright.html +4 -0
  6. data/_includes/custom-foot.html +1 -0
  7. data/_includes/custom-head.html +1 -0
  8. data/_includes/disqus.html +43 -0
  9. data/_includes/favicons.html +2 -0
  10. data/_includes/font-includes.html +6 -0
  11. data/_includes/google-analytics.html +11 -0
  12. data/_includes/head.html +30 -0
  13. data/_includes/pagination.html +16 -0
  14. data/_includes/post-meta.html +30 -0
  15. data/_includes/post-tags.html +9 -0
  16. data/_includes/related_posts.html +15 -0
  17. data/_includes/search-form.html +17 -0
  18. data/_includes/sidebar-icon-links.html +26 -0
  19. data/_includes/sidebar-nav.html +34 -0
  20. data/_includes/sidebar.html +16 -0
  21. data/_includes/svg/back-arrow.svg +4 -0
  22. data/_includes/svg/download.svg +4 -0
  23. data/_includes/svg/feed.svg +5 -0
  24. data/_includes/svg/github.svg +2 -0
  25. data/_includes/svg/search.svg +4 -0
  26. data/_includes/svg/tags.svg +4 -0
  27. data/_includes/tags-list.html +39 -0
  28. data/_layouts/category.html +21 -0
  29. data/_layouts/default.html +16 -0
  30. data/_layouts/home.html +38 -0
  31. data/_layouts/page.html +10 -0
  32. data/_layouts/post.html +18 -0
  33. data/_sass/hydeout.scss +17 -0
  34. data/_sass/hydeout/_base.scss +102 -0
  35. data/_sass/hydeout/_code.scss +82 -0
  36. data/_sass/hydeout/_layout.scss +264 -0
  37. data/_sass/hydeout/_masthead.scss +25 -0
  38. data/_sass/hydeout/_message.scss +11 -0
  39. data/_sass/hydeout/_pagination.scss +41 -0
  40. data/_sass/hydeout/_posts.scss +88 -0
  41. data/_sass/hydeout/_search.scss +16 -0
  42. data/_sass/hydeout/_syntax.scss +65 -0
  43. data/_sass/hydeout/_tags.scss +23 -0
  44. data/_sass/hydeout/_type.scss +125 -0
  45. data/_sass/hydeout/_variables.scss +44 -0
  46. data/assets/css/main.scss +6 -0
  47. metadata +160 -0
@@ -0,0 +1,4 @@
1
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/>
3
+ <path d="M0 0h24v24H0z" fill="none"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg fill="#000000" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M0 0h24v24H0z" fill="none"/>
3
+ <path d="M17.63 5.84C17.27 5.33 16.67 5 16 5L5 5.01C3.9 5.01 3 5.9 3 7v10c0 1.1.9 1.99 2 1.99L16 19c.67 0 1.27-.33 1.63-.84L22 12l-4.37-6.16z"/>
4
+ </svg>
@@ -0,0 +1,39 @@
1
+ <!-- See https://blog.lanyonm.org/articles/2013/11/21/alphabetize-jekyll-page-tags-pure-liquid.html -->
2
+ <!-- With added pipe to handle lack of sort_natural -->
3
+ {% capture site_tags %}{% for tag in site.tags %}{{ tag | first | downcase }}|{{ tag | first }}{% unless forloop.last %},{% endunless %}{% endfor %}{% endcapture %}
4
+ <!-- site_tags: {{ site_tags }} -->
5
+ {% assign tag_words = site_tags | split:',' | sort %}
6
+ <!-- tag_words: {{ tag_words }} -->
7
+
8
+ <div id="tags-page">
9
+ <div class="tags-list">
10
+ {% for tag_pair in tag_words %}
11
+ {% assign tag = tag_pair | split:'|' | last %}
12
+ <a href="#{{ tag | slugify }}" class="tag-link">
13
+ <span class="tag-name">{{ tag }}</span>
14
+ <span class="tag-count">{{ site.tags[tag] | size }}</span>
15
+ </a>
16
+ {% endfor %}
17
+ </div>
18
+
19
+ <hr/>
20
+
21
+ <div class="posts-by-tag">
22
+ {% for tag_pair in tag_words %}
23
+ {% assign tag = tag_pair | split:'|' | last %}
24
+ <h2 id="{{ tag | slugify }}">{{ tag }}</h2>
25
+ <ul class="posts-list">
26
+ {% for post in site.tags[tag] %}
27
+ <li>
28
+ <h3>
29
+ <a href="{{ site.baseurl }}{{ post.url }}">
30
+ {{ post.title }}
31
+ <small>{{ post.date | date_to_string }}</small>
32
+ </a>
33
+ </h3>
34
+ </li>
35
+ {% endfor %}
36
+ </ul>
37
+ {% endfor %}
38
+ </div>
39
+ </div>
@@ -0,0 +1,21 @@
1
+ ---
2
+ layout: page
3
+ ---
4
+
5
+ {% unless page.content == '' %}
6
+ {{ content }}
7
+ {% endunless %}
8
+
9
+ <ul class="posts-list">
10
+ {% assign category = page.category | default: page.title %}
11
+ {% for post in site.categories[category] %}
12
+ <li>
13
+ <h3>
14
+ <a href="{{ site.baseurl }}{{ post.url }}">
15
+ {{ post.title }}
16
+ <small>{{ post.date | date_to_string }}</small>
17
+ </a>
18
+ </h3>
19
+ </li>
20
+ {% endfor %}
21
+ </ul>
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en-us">
3
+
4
+ {% include head.html %}
5
+
6
+ <body class="{{ page.layout }}">
7
+
8
+ {% include sidebar.html %}
9
+
10
+ <main class="container">
11
+ {{ content }}
12
+ </main>
13
+
14
+ {% include custom-foot.html %}
15
+ </body>
16
+ </html>
@@ -0,0 +1,38 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <div class="content">
6
+ {% for post in paginator.posts %}
7
+ <article class="post-body">
8
+ <h2 class="post-title">
9
+ <a href="{{ site.baseurl }}{{ post.url }}">
10
+ {{ post.title }}
11
+ </a>
12
+ </h2>
13
+ {% include post-meta.html post=post %}
14
+
15
+ {% if post.excerpt %}
16
+ {{ post.excerpt }}
17
+ {% else %}
18
+ {{ post.content }}
19
+ {% endif %}
20
+
21
+ {% if post.excerpt %}
22
+ {% comment %}Excerpt may be equal to content. Check.{% endcomment %}
23
+ {% capture content_words %}
24
+ {{ post.content | number_of_words }}
25
+ {% endcapture %}
26
+ {% capture excerpt_words %}
27
+ {{ post.excerpt | number_of_words }}
28
+ {% endcapture %}
29
+
30
+ {% if content_words != excerpt_words %}
31
+ <a href="{{ site.baseurl }}{{ post.url }}">More &hellip;</a>
32
+ {% endif %}
33
+ {% endif %}
34
+ </article>
35
+ {% endfor %}
36
+
37
+ {% include pagination.html %}
38
+ </div>
@@ -0,0 +1,10 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <header>
6
+ <h1 class="page-title">{{ page.title }}</h1>
7
+ </header>
8
+ <div class="content">
9
+ {{ content }}
10
+ </div>
@@ -0,0 +1,18 @@
1
+ ---
2
+ layout: default
3
+ ---
4
+
5
+ <header>
6
+ <h1 class="post-title">{{ page.title }}</h1>
7
+ </header>
8
+ <div class="content">
9
+ {% include post-meta.html post=page %}
10
+
11
+ <div class="post-body">
12
+ {{ content }}
13
+ {% include post-tags.html post=page %}
14
+ </div>
15
+
16
+ {% include comments.html %}
17
+ {% include related_posts.html %}
18
+ </div>
@@ -0,0 +1,17 @@
1
+ /*
2
+ Most of these imports are derived from https://github.com/poole/poole.
3
+ Designed, built, and released under MIT license by @mdo.
4
+ */
5
+
6
+ @import "hydeout/variables";
7
+ @import "hydeout/base";
8
+ @import "hydeout/type";
9
+ @import "hydeout/syntax";
10
+ @import "hydeout/code";
11
+ @import "hydeout/layout";
12
+ @import "hydeout/masthead";
13
+ @import "hydeout/posts";
14
+ @import "hydeout/pagination";
15
+ @import "hydeout/message";
16
+ @import "hydeout/search";
17
+ @import "hydeout/tags";
@@ -0,0 +1,102 @@
1
+ // Body resets
2
+ //
3
+ // Update the foundational and global aspects of the page.
4
+
5
+ * {
6
+ -webkit-box-sizing: border-box;
7
+ -moz-box-sizing: border-box;
8
+ box-sizing: border-box;
9
+ }
10
+
11
+ html,
12
+ body {
13
+ margin: 0;
14
+ padding: 0;
15
+ }
16
+
17
+ html {
18
+ font-family: $root-font-family;
19
+ font-size: $root-font-size;
20
+ line-height: $root-line-height;
21
+
22
+ @media (min-width: $large-breakpoint) {
23
+ font-size: $large-font-size;
24
+ }
25
+ }
26
+
27
+ body {
28
+ -webkit-text-size-adjust: 100%;
29
+ -ms-text-size-adjust: 100%;
30
+ }
31
+
32
+ main, article, section { display: block; }
33
+
34
+ // No `:visited` state is required by default (browsers will use `a`)
35
+ a {
36
+ color: $link-color;
37
+ text-decoration: none;
38
+
39
+ // `:focus` is linked to `:hover` for basic accessibility
40
+ &:hover,
41
+ &:focus {
42
+ text-decoration: underline;
43
+ }
44
+
45
+ strong {
46
+ color: inherit;
47
+ }
48
+ }
49
+
50
+ img {
51
+ display: block;
52
+ max-width: 100%;
53
+ margin: 0 0 1rem;
54
+ border-radius: 5px;
55
+ height: auto; // Fix to keep max-width from squishing images with defined
56
+ // height in HTML
57
+ }
58
+
59
+ table {
60
+ margin-bottom: 1rem;
61
+ width: 100%;
62
+ font-size: 85%;
63
+ border: 1px solid $border-color;
64
+ border-collapse: collapse;
65
+ }
66
+
67
+ td,
68
+ th {
69
+ padding: .25rem .5rem;
70
+ border: 1px solid $border-color;
71
+ }
72
+
73
+ th {
74
+ text-align: left;
75
+ }
76
+
77
+ tbody tr:nth-child(odd) td,
78
+ tbody tr:nth-child(odd) th {
79
+ background-color: $gray-1;
80
+ }
81
+
82
+ input[type="text"], input[type="search"], input[type="submit"], button {
83
+ padding: $padding-v $padding-h;
84
+ border: 1px solid $border-color;
85
+ border-radius: $border-radius;
86
+ }
87
+
88
+ button, input[type="submit"] {
89
+ cursor: pointer;
90
+ background: transparent;
91
+ border-color: $border-color;
92
+ color: $link-color;
93
+ transition: color 0.6s ease-in-out,
94
+ border-color 0.6s ease-in-out,
95
+ background 0.6s ease-in-out;
96
+
97
+ &:hover {
98
+ background: $link-color;
99
+ border-color: $link-color;
100
+ color: white;
101
+ }
102
+ }
@@ -0,0 +1,82 @@
1
+ // Code
2
+ //
3
+ // Inline and block-level code snippets. Includes tweaks to syntax highlighted
4
+ // snippets from Pygments/Rouge and Gist embeds.
5
+
6
+ code,
7
+ pre {
8
+ font-family: $code-font-family;
9
+ }
10
+
11
+ code {
12
+ padding: .25em .5em;
13
+ font-size: 85%;
14
+ color: $code-color;
15
+ background-color: #f9f9f9;
16
+ border-radius: 3px;
17
+ }
18
+
19
+ pre {
20
+ margin-top: 0;
21
+ margin-bottom: 1rem;
22
+ }
23
+
24
+ pre code {
25
+ padding: 0;
26
+ font-size: 100%;
27
+ color: inherit;
28
+ background-color: transparent;
29
+ }
30
+
31
+ // Pygments/Rouge via Jekyll
32
+ .highlight {
33
+ padding: 1rem;
34
+ margin-bottom: 1rem;
35
+ font-size: .8rem;
36
+ line-height: 1.4;
37
+ background-color: #f9f9f9;
38
+ border-radius: .25rem;
39
+
40
+ pre {
41
+ margin-bottom: 0;
42
+ overflow-x: auto;
43
+ }
44
+
45
+ .lineno {
46
+ display: inline-block; // Ensures the null space also isn't selectable
47
+ padding-right: .75rem;
48
+ padding-left: .25rem;
49
+ color: #999;
50
+ // Make sure numbers aren't selectable
51
+ -webkit-user-select: none;
52
+ -moz-user-select: none;
53
+ user-select: none;
54
+ }
55
+ }
56
+
57
+ pre {
58
+ max-width: 100%;
59
+ overflow-x: auto;
60
+ }
61
+
62
+ // Gist via GitHub Pages
63
+ // .gist .gist-file {
64
+ // font-family: Menlo, Monaco, "Courier New", monospace !important;
65
+ // }
66
+ // .gist .markdown-body {
67
+ // padding: 15px;
68
+ // }
69
+ // .gist pre {
70
+ // padding: 0;
71
+ // background-color: transparent;
72
+ // }
73
+ // .gist .gist-file .gist-data {
74
+ // font-size: .8rem !important;
75
+ // line-height: 1.4;
76
+ // }
77
+ // .gist code {
78
+ // padding: 0;
79
+ // color: inherit;
80
+ // background-color: transparent;
81
+ // border-radius: 0;
82
+ // }
@@ -0,0 +1,264 @@
1
+ /*
2
+ Layout
3
+
4
+ Styles for managing the structural hierarchy of the site.
5
+ Hydeout features the large colored sidebar from Hyde that houses the
6
+ site name, intro, and "footer" content. Sidebar is on top of content on
7
+ mobile and expands into sidebar on larger width displays.
8
+
9
+ Sidebar CSS assumes HTML looks like this for post pages:
10
+
11
+ body
12
+ > #sidebar
13
+ > header (primary sidebar content -- i.e. title)
14
+ > h1 (home page only, otherwise div or span)
15
+ > secondary nav content we may want to hide on certain pages
16
+ > .container
17
+ > h1 (non-home page)
18
+ > .content
19
+
20
+ Basic approach is to color in body, make sidebar background transparent,
21
+ and then fill in the .container or .content elements depending on how far
22
+ we want the sidebar or header to stretch.
23
+ */
24
+
25
+ body {
26
+ color: rgba(255,255,255,.75);
27
+ background-color: $sidebar-bg-color;
28
+ background-image: linear-gradient(
29
+ to bottom,
30
+ lighten($sidebar-bg-color, 7%),
31
+ darken($sidebar-bg-color, 7%));
32
+ display: flex;
33
+ flex-direction: column;
34
+ min-width: 100vw;
35
+ min-height: 100vh;
36
+ }
37
+
38
+ #sidebar {
39
+ flex: 0 0 auto;
40
+
41
+ // Use header + last-child to control vertical spacing so we can make
42
+ // certain elements appear to be part of sidebar
43
+ padding: 0 $section-spacing;
44
+ header { margin-top: $section-spacing; }
45
+ header ~ *:last-child { margin-bottom: $section-spacing; }
46
+
47
+ .site-title {
48
+ font-family: "Abril Fatface", serif;
49
+ font-weight: normal;
50
+ font-size: $large-font-size;
51
+ color: rgba(255,255,255,.75);
52
+ margin-top: 0;
53
+ margin-bottom: 0;
54
+
55
+ a {
56
+ color: inherit;
57
+ &:hover { color: white; }
58
+ }
59
+
60
+ .back-arrow { margin-right: 0.5rem; }
61
+ }
62
+ }
63
+
64
+ // Container is flexbox as well -- we want content div to stretch and fill
65
+ .container {
66
+ flex: 1 1 auto;
67
+ display: flex;
68
+ flex-direction: column;
69
+
70
+ > .content {
71
+ flex-grow: 1;
72
+ }
73
+ }
74
+
75
+ .content {
76
+ background: $body-bg;
77
+ color: $body-color;
78
+ padding: $section-spacing;
79
+ }
80
+
81
+
82
+ /* -----------------------------------------------------------
83
+ Mobile view
84
+ ----------------------------------------------------------- */
85
+
86
+ // Hide secondary nav content in sidebar
87
+ // Hide lead paragraph in sidebar
88
+ #sidebar {
89
+ header ~ *, p.lead {
90
+ display: none;
91
+ }
92
+ }
93
+
94
+ // Make header elements blend into sidebar / background
95
+ .container > header {
96
+ background: transparent;
97
+ color: white;
98
+ margin: 0 $section-spacing $section-spacing;
99
+
100
+ h1, h2 {
101
+ color: white;
102
+
103
+ &:last-child {
104
+ margin-bottom: 0;
105
+ }
106
+ }
107
+ }
108
+
109
+
110
+ /* -----------------------------------------------------------
111
+ Mobile view for home page)
112
+ ----------------------------------------------------------- */
113
+
114
+ .home #sidebar {
115
+
116
+ // Center sidebar content
117
+ text-align: center;
118
+
119
+ // Bigger title
120
+ .site-title {
121
+ font-size: 3.25rem;
122
+ margin-bottom: $heading-spacing;
123
+ color: white;
124
+ }
125
+
126
+ // Show secondary nav content + lead
127
+ header ~ *, p.lead {
128
+ display: block;
129
+ }
130
+ }
131
+
132
+
133
+ /* -----------------------------------------------------------
134
+ Tablet / Desktop view
135
+ ----------------------------------------------------------- */
136
+
137
+ @media (min-width: $large-breakpoint) {
138
+ body {
139
+ flex-direction: row;
140
+ height: 100vh;
141
+ overflow: auto;
142
+ > * { max-height: 100vh; overflow: auto; }
143
+ }
144
+
145
+ #sidebar, .home #sidebar {
146
+ width: $sidebar-width;
147
+ text-align: left;
148
+ }
149
+
150
+ // Undo mobile CSS
151
+ #sidebar {
152
+ .site-title {
153
+ font-size: 3.25rem;
154
+ margin-bottom: $heading-spacing;
155
+
156
+ a { color: white; }
157
+ .back-arrow { display: none; }
158
+ }
159
+
160
+ p.lead, header ~ * {
161
+ display: block;
162
+ }
163
+ }
164
+
165
+ // Make entire container background white to contrast against sidebar
166
+ .container {
167
+ background: $body-bg;
168
+ color: $body-color;
169
+ padding: $section-spacing * 2;
170
+ height: 100vh;
171
+
172
+ > header {
173
+ color: inherit;
174
+ margin: 0;
175
+ h1, h2 {
176
+ color: inherit;
177
+
178
+ &:last-child {
179
+ margin-bottom: $heading-spacing;
180
+ }
181
+ }
182
+ }
183
+
184
+ .content {
185
+ max-width: 38rem;
186
+ padding: 0;
187
+ }
188
+ }
189
+ }
190
+
191
+
192
+ /* -----------------------------------------------------------
193
+ Sidebar links + nav
194
+ ----------------------------------------------------------- */
195
+
196
+ #sidebar a {
197
+ color: #fff;
198
+
199
+ svg {
200
+ fill: rgba(255, 255, 255, 0.85);
201
+ }
202
+
203
+ &:hover, &:focus, &.active {
204
+ svg { fill: #fff; }
205
+ }
206
+
207
+ &:hover, &:focus {
208
+ text-decoration: underline;
209
+ &.icon {
210
+ text-decoration: none;
211
+ }
212
+ }
213
+
214
+ &.active {
215
+ font-weight: bold;
216
+ }
217
+ }
218
+
219
+ #sidebar-nav {
220
+ margin-bottom: 1rem;
221
+ }
222
+
223
+ #sidebar nav > * {
224
+ display: block;
225
+ line-height: 1.75;
226
+ }
227
+
228
+ #sidebar nav > .icon {
229
+ font-size: 1.5rem;
230
+ display: inline-block;
231
+ + a { margin-left: 0.5em; }
232
+ }
233
+
234
+
235
+ /* -----------------------------------------------------------
236
+ Sticky sidebar
237
+
238
+ Set $sidebar-stick variable to affix sidebar contents to the
239
+ bottom of the sidebar in tablets and up.
240
+ ----------------------------------------------------------- */
241
+
242
+ @if $sidebar-sticky {
243
+ @media (min-width: $large-breakpoint) {
244
+ body {
245
+ align-items: flex-end;
246
+ }
247
+ }
248
+ }
249
+
250
+
251
+ /* -----------------------------------------------------------
252
+ Reverse layout
253
+
254
+ Flip the orientation of the page by placing the `#sidebar`
255
+ on the right.
256
+ ----------------------------------------------------------- */
257
+
258
+ @if $layout-reverse {
259
+ @media (min-width: $large-breakpoint) {
260
+ .container {
261
+ order: -1;
262
+ }
263
+ }
264
+ }