jekyll-theme-switch 0.5.1 → 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -1
- data/_data/i18n.yaml +42 -0
- data/_includes/date.html +1 -4
- data/_includes/footer.html +42 -13
- data/_includes/footer_text.html +5 -0
- data/_includes/head.html +37 -40
- data/_includes/month.html +7 -14
- data/_includes/page_title.html +1 -0
- data/_includes/paginator_nav.html +24 -0
- data/_includes/post_item.html +34 -0
- data/_includes/post_list.html +7 -0
- data/_includes/post_meta.html +9 -0
- data/_includes/post_nav.html +22 -0
- data/_includes/rss/channel.html +3 -0
- data/_includes/rss/post.html +1 -1
- data/_includes/youtube.html +1 -1
- data/_layouts/archive.html +1 -1
- data/_layouts/category_page.html +2 -37
- data/_layouts/default.html +2 -0
- data/_layouts/home.html +2 -69
- data/_layouts/monthly_archive.html +2 -2
- data/_layouts/post.html +1 -22
- data/_layouts/rss.html +1 -2
- data/_layouts/series_post.html +2 -2
- data/_layouts/tag_page.html +2 -36
- data/_layouts/yearly_archive.html +2 -1
- data/_sass/jekyll-theme-switch/_base.scss +61 -40
- data/_sass/jekyll-theme-switch/_dark.scss +5 -1
- data/_sass/jekyll-theme-switch/_image-effects.scss +1 -1
- data/_sass/jekyll-theme-switch/_layout.scss +53 -12
- metadata +16 -16
- data/_plugins/blog_series_plugin.rb +0 -16
- data/_plugins/category_tag_filter.rb +0 -36
- data/_plugins/filesize_filter.rb +0 -13
- data/_plugins/normalize_whitespace_filter.rb +0 -10
- data/_plugins/songlink_tag_plugin.rb +0 -18
- data/_plugins/video_tag_plugin.rb +0 -62
- data/_plugins/vimeo_tag_plugin.rb +0 -23
- data/_plugins/yearly_archive_plugin.rb +0 -81
data/_layouts/tag_page.html
CHANGED
@@ -3,41 +3,7 @@ layout: wrapped
|
|
3
3
|
---
|
4
4
|
|
5
5
|
<div class="tag-index">
|
6
|
-
<h1 class="page-heading">{{ page.title | capitalize | replace: "Ij", "IJ" }}</h1>
|
6
|
+
<h1 class="page-heading">{{ site.data.i18n.tag }}: {{ page.title | capitalize | replace: "Ij", "IJ" }}</h1>
|
7
7
|
|
8
|
-
|
9
|
-
{% for post in page.posts %}
|
10
|
-
{% if post.lead_image %}
|
11
|
-
<style type="text/css" scoped>
|
12
|
-
li#post-{{ post.id | slugify }} {
|
13
|
-
background-image: linear-gradient(90deg, rgba(255,255,255,1) 50%, rgba(255,255,255,0.7) 80%),
|
14
|
-
url('{{ post.lead_image | prepend: site.baseurl | prepend: site.url }}');
|
15
|
-
background-size: cover;
|
16
|
-
background-repeat: no-repeat;
|
17
|
-
background-position-x: right;
|
18
|
-
}
|
19
|
-
|
20
|
-
@media (prefers-color-scheme: dark) {
|
21
|
-
li#post-{{ post.id | slugify }} {
|
22
|
-
background-image: linear-gradient(90deg, rgba(31,31,31,1) 50%, rgba(31,31,31,0.7) 80%),
|
23
|
-
url('{{ post.lead_image | prepend: site.baseurl | prepend: site.url }}');
|
24
|
-
}
|
25
|
-
}
|
26
|
-
</style>
|
27
|
-
{% endif %}
|
28
|
-
<li id="post-{{ post.id | slugify }}">
|
29
|
-
<article>
|
30
|
-
{% include post_meta.html post=post %}
|
31
|
-
|
32
|
-
<h2>
|
33
|
-
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
|
34
|
-
</h2>
|
35
|
-
<div>
|
36
|
-
{{ post.excerpt }}
|
37
|
-
</div>
|
38
|
-
<a href="{{ post.url | prepend: site.baseurl }}">lees verder</a>
|
39
|
-
</article>
|
40
|
-
</li>
|
41
|
-
{% endfor %}
|
42
|
-
</ul>
|
8
|
+
{% include post_list.html posts=page.posts %}
|
43
9
|
</div>
|
@@ -3,7 +3,8 @@ layout: wrapped
|
|
3
3
|
---
|
4
4
|
<div class="yearly-archive">
|
5
5
|
<div>
|
6
|
-
|
6
|
+
{% capture year %}<time datetime="{{ page.date | date: '%Y' }}">{{ page.date | date: "%Y" }}</time>{% endcapture %}
|
7
|
+
<h1 class="title">{{ site.data.i18n.archives.yearly_header | params: year: year }}</h1>
|
7
8
|
</div>
|
8
9
|
<div>
|
9
10
|
{% assign posts = page.posts | group_by_exp: "post", "post.date | date: '%-m'" %}
|
@@ -9,7 +9,6 @@ dl, dd, ol, ul, figure {
|
|
9
9
|
}
|
10
10
|
|
11
11
|
|
12
|
-
|
13
12
|
/**
|
14
13
|
* Basic styling
|
15
14
|
*/
|
@@ -24,7 +23,6 @@ body {
|
|
24
23
|
}
|
25
24
|
|
26
25
|
|
27
|
-
|
28
26
|
/**
|
29
27
|
* Set `margin-bottom` to maintain vertical rhythm
|
30
28
|
*/
|
@@ -32,11 +30,10 @@ h1, h2, h3, h4, h5, h6,
|
|
32
30
|
p, blockquote, pre,
|
33
31
|
ul, ol, dl, figure,
|
34
32
|
%vertical-rhythm {
|
35
|
-
margin-bottom: $spacing-unit / 2;
|
33
|
+
margin-bottom: calc($spacing-unit / 2);
|
36
34
|
}
|
37
35
|
|
38
36
|
|
39
|
-
|
40
37
|
/**
|
41
38
|
* Images
|
42
39
|
*/
|
@@ -46,33 +43,65 @@ img {
|
|
46
43
|
}
|
47
44
|
|
48
45
|
article {
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
46
|
+
img, iframe {
|
47
|
+
border-radius: 4px;
|
48
|
+
@include BoxShadow(1);
|
49
|
+
|
50
|
+
&.center {
|
53
51
|
|
54
|
-
|
55
|
-
|
56
|
-
|
52
|
+
}
|
53
|
+
|
54
|
+
&.width-75 {
|
55
|
+
max-width: 75%;
|
56
|
+
}
|
57
57
|
|
58
|
-
|
59
|
-
|
58
|
+
&.width-50 {
|
59
|
+
max-width: 50%;
|
60
|
+
}
|
60
61
|
}
|
61
|
-
}
|
62
62
|
|
63
|
-
|
64
|
-
|
63
|
+
.embed-container {
|
64
|
+
position: relative;
|
65
|
+
padding-bottom: 56.25%;
|
66
|
+
margin-bottom: 1em;
|
67
|
+
height: 0;
|
68
|
+
overflow: hidden;
|
69
|
+
max-width: 100%;
|
70
|
+
clear: both;
|
71
|
+
|
72
|
+
iframe,
|
73
|
+
object,
|
74
|
+
embed {
|
75
|
+
position: absolute;
|
76
|
+
top: 0;
|
77
|
+
left: 0;
|
78
|
+
width: 100%;
|
79
|
+
height: 100%;
|
80
|
+
}
|
81
|
+
}
|
65
82
|
|
66
|
-
|
67
|
-
|
68
|
-
|
83
|
+
p.center {
|
84
|
+
clear: both;
|
85
|
+
text-align: center;
|
86
|
+
|
87
|
+
img {
|
88
|
+
float: none;
|
89
|
+
}
|
69
90
|
}
|
70
|
-
}
|
71
91
|
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
92
|
+
p.fill {
|
93
|
+
text-align: center;
|
94
|
+
|
95
|
+
img {
|
96
|
+
float: none;
|
97
|
+
width: 90%;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
|
101
|
+
p.small,
|
102
|
+
div.footnotes {
|
103
|
+
font-size: 0.75em;
|
104
|
+
}
|
76
105
|
}
|
77
106
|
|
78
107
|
video {
|
@@ -93,7 +122,6 @@ figcaption {
|
|
93
122
|
}
|
94
123
|
|
95
124
|
|
96
|
-
|
97
125
|
/**
|
98
126
|
* Lists
|
99
127
|
*/
|
@@ -104,12 +132,11 @@ ul, ol {
|
|
104
132
|
li {
|
105
133
|
> ul,
|
106
134
|
> ol {
|
107
|
-
|
135
|
+
margin-bottom: 0;
|
108
136
|
}
|
109
137
|
}
|
110
138
|
|
111
139
|
|
112
|
-
|
113
140
|
/**
|
114
141
|
* Headings
|
115
142
|
*/
|
@@ -118,7 +145,6 @@ h1, h2, h3, h4, h5, h6 {
|
|
118
145
|
}
|
119
146
|
|
120
147
|
|
121
|
-
|
122
148
|
/**
|
123
149
|
* Links
|
124
150
|
*/
|
@@ -126,7 +152,7 @@ a {
|
|
126
152
|
color: $brand-color;
|
127
153
|
|
128
154
|
&:visited {
|
129
|
-
|
155
|
+
color: adjust-hue($brand-color, +120deg);
|
130
156
|
}
|
131
157
|
|
132
158
|
&:hover {
|
@@ -136,13 +162,12 @@ a {
|
|
136
162
|
}
|
137
163
|
|
138
164
|
|
139
|
-
|
140
165
|
/**
|
141
166
|
* Blockquotes
|
142
167
|
*/
|
143
168
|
blockquote {
|
144
|
-
border-left: ($spacing-unit / 8) solid $grey-color;
|
145
|
-
padding-left: $spacing-unit / 2;
|
169
|
+
border-left: calc($spacing-unit / 8) solid $grey-color;
|
170
|
+
padding-left: calc($spacing-unit / 2);
|
146
171
|
font-style: italic;
|
147
172
|
|
148
173
|
> :last-child {
|
@@ -151,7 +176,6 @@ blockquote {
|
|
151
176
|
}
|
152
177
|
|
153
178
|
|
154
|
-
|
155
179
|
/**
|
156
180
|
* Code formatting
|
157
181
|
*/
|
@@ -179,13 +203,12 @@ pre {
|
|
179
203
|
}
|
180
204
|
|
181
205
|
|
182
|
-
|
183
206
|
/**
|
184
207
|
* Wrapper
|
185
208
|
*/
|
186
209
|
.wrapper {
|
187
210
|
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit} * 2));
|
188
|
-
max-width:
|
211
|
+
max-width: calc(#{$content-width} - (#{$spacing-unit} * 2));
|
189
212
|
margin-right: auto;
|
190
213
|
margin-left: auto;
|
191
214
|
padding-right: $spacing-unit;
|
@@ -194,14 +217,13 @@ pre {
|
|
194
217
|
|
195
218
|
@include media-query($on-laptop) {
|
196
219
|
max-width: -webkit-calc(#{$content-width} - (#{$spacing-unit}));
|
197
|
-
max-width:
|
198
|
-
padding-right: $spacing-unit / 2;
|
199
|
-
padding-left: $spacing-unit / 2;
|
220
|
+
max-width: calc(#{$content-width} - (#{$spacing-unit}));
|
221
|
+
padding-right: calc($spacing-unit / 2);
|
222
|
+
padding-left: calc($spacing-unit / 2);
|
200
223
|
}
|
201
224
|
}
|
202
225
|
|
203
226
|
|
204
|
-
|
205
227
|
/**
|
206
228
|
* Clearfix
|
207
229
|
*/
|
@@ -215,7 +237,6 @@ pre {
|
|
215
237
|
}
|
216
238
|
|
217
239
|
|
218
|
-
|
219
240
|
/**
|
220
241
|
* Icons
|
221
242
|
*/
|
@@ -15,7 +15,6 @@
|
|
15
15
|
|
16
16
|
body,
|
17
17
|
.page-content,
|
18
|
-
.post-content,
|
19
18
|
{
|
20
19
|
background-color: $background-color-dark;
|
21
20
|
}
|
@@ -33,6 +32,11 @@
|
|
33
32
|
background-color: lighten($background-color-dark, 5%);
|
34
33
|
}
|
35
34
|
|
35
|
+
.category-index ul.post-list > li article a.read-more, .tag-index ul.post-list > li article a.read-more, .home ul.post-list > li article a.read-more {
|
36
|
+
background: lighten($background-color-dark, 5%);
|
37
|
+
box-shadow: 0 -12px 50px 50px lighten($background-color-dark, 5%);
|
38
|
+
}
|
39
|
+
|
36
40
|
.post-content {
|
37
41
|
td, th {
|
38
42
|
border-bottom-color: $brand-color-dark;
|
@@ -82,6 +82,46 @@
|
|
82
82
|
}
|
83
83
|
|
84
84
|
|
85
|
+
.category-index,
|
86
|
+
.tag-index,
|
87
|
+
.home {
|
88
|
+
padding: $spacing-unit;
|
89
|
+
|
90
|
+
ul.post-list {
|
91
|
+
display: flex;
|
92
|
+
flex-wrap: wrap;
|
93
|
+
flex-direction: row;
|
94
|
+
column-gap: $spacing-unit;
|
95
|
+
row-gap: $spacing-unit;
|
96
|
+
|
97
|
+
& > li {
|
98
|
+
flex-grow: 1;
|
99
|
+
//width: 300px;
|
100
|
+
height: 350px;
|
101
|
+
overflow: hidden;
|
102
|
+
|
103
|
+
article {
|
104
|
+
display: flex;
|
105
|
+
flex-direction: column;
|
106
|
+
justify-items: stretch;
|
107
|
+
height: 100%;
|
108
|
+
|
109
|
+
div.post-content {
|
110
|
+
flex-shrink: 1;
|
111
|
+
flex-grow: 1;
|
112
|
+
overflow: hidden;
|
113
|
+
}
|
114
|
+
|
115
|
+
a.read-more {
|
116
|
+
background: $background-color;
|
117
|
+
box-shadow: 0 -12px 50px 50px $background-color;
|
118
|
+
padding-top: 8px;
|
119
|
+
}
|
120
|
+
}
|
121
|
+
}
|
122
|
+
}
|
123
|
+
}
|
124
|
+
|
85
125
|
|
86
126
|
/**
|
87
127
|
* Site footer
|
@@ -93,7 +133,7 @@
|
|
93
133
|
|
94
134
|
.footer-heading {
|
95
135
|
font-size: 18px;
|
96
|
-
margin-bottom: $spacing-unit / 2;
|
136
|
+
margin-bottom: calc($spacing-unit / 2);
|
97
137
|
}
|
98
138
|
|
99
139
|
.contact-list,
|
@@ -109,14 +149,14 @@
|
|
109
149
|
.footer-col-wrapper {
|
110
150
|
font-size: 15px;
|
111
151
|
color: $grey-color;
|
112
|
-
margin-left:
|
152
|
+
margin-left: calc(-1 * $spacing-unit / 2);
|
113
153
|
@extend %clearfix;
|
114
154
|
}
|
115
155
|
|
116
156
|
.footer-col {
|
117
157
|
float: left;
|
118
|
-
margin-bottom: $spacing-unit / 2;
|
119
|
-
padding-left: $spacing-unit / 2;
|
158
|
+
margin-bottom: calc($spacing-unit / 2);
|
159
|
+
padding-left: calc($spacing-unit / 2);
|
120
160
|
}
|
121
161
|
|
122
162
|
.footer-col-1 {
|
@@ -125,13 +165,13 @@
|
|
125
165
|
}
|
126
166
|
|
127
167
|
.footer-col-2 {
|
128
|
-
width: -webkit-calc(
|
129
|
-
width: calc(
|
168
|
+
width: -webkit-calc(30% - (#{$spacing-unit} / 2));
|
169
|
+
width: calc(30% - (#{$spacing-unit} / 2));
|
130
170
|
}
|
131
171
|
|
132
172
|
.footer-col-3 {
|
133
|
-
width: -webkit-calc(
|
134
|
-
width: calc(
|
173
|
+
width: -webkit-calc(40% - (#{$spacing-unit} / 2));
|
174
|
+
width: calc(40% - (#{$spacing-unit} / 2));
|
135
175
|
}
|
136
176
|
|
137
177
|
@include media-query($on-laptop) {
|
@@ -176,7 +216,6 @@
|
|
176
216
|
> li {
|
177
217
|
background-color: white;
|
178
218
|
padding: $spacing-unit;
|
179
|
-
margin: $spacing-unit 0;
|
180
219
|
border-radius: 4px;
|
181
220
|
@include BoxShadow(1);
|
182
221
|
|
@@ -248,6 +287,8 @@
|
|
248
287
|
}
|
249
288
|
|
250
289
|
.post-content {
|
290
|
+
h1, h2, h3, h4 { clear: both; }
|
291
|
+
|
251
292
|
h2 {
|
252
293
|
font-size: 32px;
|
253
294
|
|
@@ -294,7 +335,7 @@
|
|
294
335
|
|
295
336
|
th, td {
|
296
337
|
text-align: left;
|
297
|
-
padding: $spacing-unit / 2;
|
338
|
+
padding: calc($spacing-unit / 2);
|
298
339
|
border-bottom: thin solid $brand-color;
|
299
340
|
}
|
300
341
|
|
@@ -386,8 +427,8 @@ a.button:hover,
|
|
386
427
|
.align-right { text-align: right; }
|
387
428
|
.align-left { text-align: left; }
|
388
429
|
|
389
|
-
.left { float: left; }
|
390
|
-
.right { float: right; }
|
430
|
+
.left { float: left; margin-right: 1em }
|
431
|
+
.right { float: right; margin-left: 1em; }
|
391
432
|
|
392
433
|
div.post.candid-strategies-md
|
393
434
|
article
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-switch
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christian Luijten
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-02-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -122,7 +122,7 @@ dependencies:
|
|
122
122
|
- - "~>"
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: 1.4.0
|
125
|
-
description:
|
125
|
+
description:
|
126
126
|
email:
|
127
127
|
- christian@luijten.org
|
128
128
|
executables: []
|
@@ -131,15 +131,23 @@ extra_rdoc_files: []
|
|
131
131
|
files:
|
132
132
|
- LICENSE.txt
|
133
133
|
- README.md
|
134
|
+
- _data/i18n.yaml
|
134
135
|
- _includes/date.html
|
135
136
|
- _includes/disqus.html
|
136
137
|
- _includes/footer.html
|
138
|
+
- _includes/footer_text.html
|
137
139
|
- _includes/head.html
|
138
140
|
- _includes/header.html
|
139
141
|
- _includes/holidays_contents.html
|
140
142
|
- _includes/holidays_ul.html
|
141
143
|
- _includes/month.html
|
144
|
+
- _includes/page_title.html
|
145
|
+
- _includes/paginator_nav.html
|
146
|
+
- _includes/post_item.html
|
147
|
+
- _includes/post_list.html
|
142
148
|
- _includes/post_meta.html
|
149
|
+
- _includes/post_nav.html
|
150
|
+
- _includes/rss/channel.html
|
143
151
|
- _includes/rss/post.html
|
144
152
|
- _includes/section_nav.html
|
145
153
|
- _includes/vimeo.html
|
@@ -158,14 +166,6 @@ files:
|
|
158
166
|
- _layouts/tag_page.html
|
159
167
|
- _layouts/wrapped.html
|
160
168
|
- _layouts/yearly_archive.html
|
161
|
-
- _plugins/blog_series_plugin.rb
|
162
|
-
- _plugins/category_tag_filter.rb
|
163
|
-
- _plugins/filesize_filter.rb
|
164
|
-
- _plugins/normalize_whitespace_filter.rb
|
165
|
-
- _plugins/songlink_tag_plugin.rb
|
166
|
-
- _plugins/video_tag_plugin.rb
|
167
|
-
- _plugins/vimeo_tag_plugin.rb
|
168
|
-
- _plugins/yearly_archive_plugin.rb
|
169
169
|
- _sass/jekyll-theme-switch/_base.scss
|
170
170
|
- _sass/jekyll-theme-switch/_dark.scss
|
171
171
|
- _sass/jekyll-theme-switch/_image-effects.scss
|
@@ -177,11 +177,11 @@ files:
|
|
177
177
|
- assets/image/fabian-betto-d3npqyXkaGI-unsplash.jpg
|
178
178
|
- assets/image/jonatan-pie-g6tqHx0ME1o-unsplash.jpg
|
179
179
|
- assets/image/marek-piwnicki-NPct-Mxw-64-unsplash.jpg
|
180
|
-
homepage: https://
|
180
|
+
homepage: https://islandsvinur.gitlab.io/jekyll-theme-switch/
|
181
181
|
licenses:
|
182
182
|
- MIT
|
183
183
|
metadata: {}
|
184
|
-
post_install_message:
|
184
|
+
post_install_message:
|
185
185
|
rdoc_options: []
|
186
186
|
require_paths:
|
187
187
|
- lib
|
@@ -196,8 +196,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
196
196
|
- !ruby/object:Gem::Version
|
197
197
|
version: '0'
|
198
198
|
requirements: []
|
199
|
-
rubygems_version: 3.
|
200
|
-
signing_key:
|
199
|
+
rubygems_version: 3.3.26
|
200
|
+
signing_key:
|
201
201
|
specification_version: 4
|
202
202
|
summary: The theme for Logging the Switch.
|
203
203
|
test_files: []
|
@@ -1,16 +0,0 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
Jekyll::Hooks.register :site, :pre_render do |site|
|
4
|
-
|
5
|
-
seriesIndexes = site.posts.docs
|
6
|
-
.select { |p| p.data.key? 'series_slug' }
|
7
|
-
.reduce(Hash.new {|h,k| h[k] = []} ) { |series, post| series[post.data['series_slug']] << post; series }
|
8
|
-
|
9
|
-
seriesPosts = site.posts.docs
|
10
|
-
.select { |p| p.data.key? 'series' }
|
11
|
-
.reduce(Hash.new {|h,k| h[k] = []}) { |series, post| series[post.data['series']] << post; series }
|
12
|
-
|
13
|
-
seriesIndexes.each { |slug, posts| posts.each {|post| post.data['series_posts'] = seriesPosts[slug] }}
|
14
|
-
seriesPosts.each { |slug, posts| posts.each {|post| post.data['series_index'] = seriesIndexes[slug] }}
|
15
|
-
end
|
16
|
-
|
@@ -1,36 +0,0 @@
|
|
1
|
-
|
2
|
-
module Jekyll
|
3
|
-
module CategoryTagFilter
|
4
|
-
def taglinks(input)
|
5
|
-
site = @context.registers[:site]
|
6
|
-
input.map do |tag|
|
7
|
-
"<a href=\"#{site.baseurl}/#{site.config['tag_dir']}/#{tag}\">#{tag}</a>"
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def categorylinks(input)
|
12
|
-
site = @context.registers[:site]
|
13
|
-
input.map do |cat|
|
14
|
-
"<a href=\"#{site.baseurl}/#{site.config['category_dir']}/#{cat}\">#{cat}</a>"
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
class CategoryLinkTag < Liquid::Tag
|
20
|
-
def initialize(tag_name, text, tokens)
|
21
|
-
super
|
22
|
-
@text = text
|
23
|
-
end
|
24
|
-
|
25
|
-
def render(context)
|
26
|
-
@context = context
|
27
|
-
site = context.registers[:site]
|
28
|
-
dir = site.config['category_dir'] || 'categories'
|
29
|
-
|
30
|
-
"/#{dir}/#{@text}"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
Liquid::Template.register_tag('category_link', Jekyll::CategoryLinkTag)
|
36
|
-
Liquid::Template.register_filter(Jekyll::CategoryTagFilter)
|
data/_plugins/filesize_filter.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
|
2
|
-
module Jekyll
|
3
|
-
module FilesizeFilter
|
4
|
-
def filesize(input)
|
5
|
-
site = @context.registers[:site]
|
6
|
-
file = site.static_files.find {|f| f.path.end_with?(input) }
|
7
|
-
|
8
|
-
File.size(file.path)
|
9
|
-
end
|
10
|
-
end
|
11
|
-
end
|
12
|
-
|
13
|
-
Liquid::Template.register_filter(Jekyll::FilesizeFilter)
|
@@ -1,18 +0,0 @@
|
|
1
|
-
|
2
|
-
module Jekyll
|
3
|
-
class SonglinkTag < Liquid::Tag
|
4
|
-
@songlink = ''
|
5
|
-
|
6
|
-
def initialize(tag_name, markup, tokens)
|
7
|
-
@songlink = markup.split(' ').first
|
8
|
-
end
|
9
|
-
|
10
|
-
def render(context)
|
11
|
-
output = super
|
12
|
-
url = "https://embed.song.link/?url=#{@songlink}&theme=light"
|
13
|
-
songlink = "<iframe width='100%' height='414' src='#{url}' frameborder='0' allowfullscreen sandbox='allow-same-origin allow-scripts allow-presentation allow-popups allow-popups-to-escape-sandbox'></iframe>"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
Liquid::Template.register_tag('songlink', Jekyll::SonglinkTag)
|
@@ -1,62 +0,0 @@
|
|
1
|
-
# Title: Simple Video tag for Jekyll
|
2
|
-
# Author: Brandon Mathis http://brandonmathis.com
|
3
|
-
# Description: Easily output MPEG4 HTML5 video with a flash backup.
|
4
|
-
#
|
5
|
-
# Syntax {% video url/to/video [width height] [url/to/poster] %}
|
6
|
-
#
|
7
|
-
# Example:
|
8
|
-
# {% video http://site.com/video.mp4 720 480 http://site.com/poster-frame.jpg %}
|
9
|
-
#
|
10
|
-
# Output:
|
11
|
-
# <video width='720' height='480' preload='none' controls poster='http://site.com/poster-frame.jpg'>
|
12
|
-
# <source src='http://site.com/video.mp4' type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'/>
|
13
|
-
# </video>
|
14
|
-
#
|
15
|
-
|
16
|
-
module Jekyll
|
17
|
-
|
18
|
-
class VideoTag < Liquid::Tag
|
19
|
-
@video = nil
|
20
|
-
@poster = ''
|
21
|
-
@height = ''
|
22
|
-
@width = ''
|
23
|
-
|
24
|
-
def initialize(tag_name, markup, tokens)
|
25
|
-
@videos = markup.scan(/((https?:\/\/|\/)\S+\.(webm|ogv|mp4)\S*)/i).map(&:first).compact
|
26
|
-
@poster = markup.scan(/((https?:\/\/|\/)\S+\.(png|gif|jpe?g)\S*)/i).map(&:first).compact.first
|
27
|
-
@sizes = markup.scan(/\s(\d\S+)/i).map(&:first).compact
|
28
|
-
super
|
29
|
-
end
|
30
|
-
|
31
|
-
def render(context)
|
32
|
-
output = super
|
33
|
-
types = {
|
34
|
-
'.mp4' => "type='video/mp4; codecs=\"avc1.42E01E, mp4a.40.2\"'",
|
35
|
-
'.ogv' => "type='video/ogg; codecs=theora, vorbis'",
|
36
|
-
'.webm' => "type='video/webm; codecs=vp8, vorbis'"
|
37
|
-
}
|
38
|
-
if @videos.size > 0
|
39
|
-
video = "<video #{sizes} preload='metadata' controls #{poster}>"
|
40
|
-
@videos.each do |v|
|
41
|
-
video << "<source src='#{v}' #{types[File.extname(v)]}>"
|
42
|
-
end
|
43
|
-
video += "</video>"
|
44
|
-
else
|
45
|
-
"Error processing input, expected syntax: {% video url/to/video [url/to/video] [url/to/video] [width height] [url/to/poster] %}"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
|
49
|
-
def poster
|
50
|
-
"poster='#{@poster}'" if @poster
|
51
|
-
end
|
52
|
-
|
53
|
-
def sizes
|
54
|
-
attrs = "width='#{@sizes[0]}'" if @sizes[0]
|
55
|
-
attrs += " height='#{@sizes[1]}'" if @sizes[1]
|
56
|
-
attrs
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
Liquid::Template.register_tag('video', Jekyll::VideoTag)
|
62
|
-
|