jekyll-theme-switch 0.6.0 → 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 -7
- 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/_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/_dark.scss +5 -1
- data/_sass/jekyll-theme-switch/_layout.scss +44 -5
- metadata +14 -14
- 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
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0f91fdbd29c08c049e873104ce8a9d3a8a14735ac77594ea1f36c4200374973e
|
4
|
+
data.tar.gz: b9c7b7e1f107c5c8de11212298fa681336e7f8661175eb40832b9a9f2c645f9f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 55c1055b62a2141b5196c3685de1bd1602fe721a603dd458cfabf2718abf3a694bef1d974dc96122b6a30f49fc70955f3cd1149ce9600cd3c6d4acd1f4416a38
|
7
|
+
data.tar.gz: d8ec20b50f7cbd243fcfcd5624aa3275b2a2aa70d62f5b0940824fe3034b3f0b9c23042a9d6369e738ca59633474bc655800891fc9db620ba4051fe3ba1934ab
|
data/README.md
CHANGED
@@ -13,10 +13,12 @@ git 'https://gitlab.com/islandsvinur/jekyll-theme-switch.git' do
|
|
13
13
|
end
|
14
14
|
```
|
15
15
|
|
16
|
-
Run `bundle install`, then set the theme in your `_config.yml`:
|
16
|
+
Run `bundle install`, then set the theme and add the plugin in your `_config.yml`:
|
17
17
|
|
18
18
|
```
|
19
19
|
theme: jekyll-theme-switch
|
20
|
+
plugins:
|
21
|
+
- jekyll-theme-switch
|
20
22
|
```
|
21
23
|
|
22
24
|
## Usage
|
data/_data/i18n.yaml
ADDED
@@ -0,0 +1,42 @@
|
|
1
|
+
read_more: Read more
|
2
|
+
|
3
|
+
archives:
|
4
|
+
index_header: Archives
|
5
|
+
yearly_header: Yearly archive for %{year}
|
6
|
+
monthly_header: Monthly archive for %{month}
|
7
|
+
|
8
|
+
category: Category
|
9
|
+
tag: Tag
|
10
|
+
|
11
|
+
series: This post is part of the series
|
12
|
+
|
13
|
+
nav:
|
14
|
+
next: Next
|
15
|
+
previous: Previous
|
16
|
+
page_of_pages: Page %{page} of %{pages}
|
17
|
+
|
18
|
+
rss:
|
19
|
+
originally_posted: Originally posted on
|
20
|
+
|
21
|
+
date:
|
22
|
+
months:
|
23
|
+
- January
|
24
|
+
- February
|
25
|
+
- March
|
26
|
+
- April
|
27
|
+
- May
|
28
|
+
- June
|
29
|
+
- July
|
30
|
+
- August
|
31
|
+
- September
|
32
|
+
- October
|
33
|
+
- November
|
34
|
+
- December
|
35
|
+
weekday:
|
36
|
+
- Monday
|
37
|
+
- Tuesday
|
38
|
+
- Wednesday
|
39
|
+
- Thursday
|
40
|
+
- Friday
|
41
|
+
- Saturday
|
42
|
+
- Sunday
|
data/_includes/date.html
CHANGED
@@ -1,4 +1 @@
|
|
1
|
-
<time datetime="{{ include.date | date_to_xmlschema }}">{{ include.date | date: "%-d" }}
|
2
|
-
{% assign m = include.date | date: "%-m" %}
|
3
|
-
{% include month.html month=m %}
|
4
|
-
{{ include.date | date: "%Y" }}</time>
|
1
|
+
<time datetime="{{ include.date | date_to_xmlschema }}">{{ include.date | date: "%-d" }} {% include month.html date=include.date %} {{ include.date | date: "%Y" }}</time>
|
data/_includes/footer.html
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
<ul class="social-media-list">
|
17
17
|
{% if site.gitlab_username %}
|
18
18
|
<li>
|
19
|
-
<a href="https://gitlab.com/{{ site.gitlab_username }}" rel="me">
|
19
|
+
<a title="GitLab" href="https://gitlab.com/{{ site.gitlab_username }}" rel="me">
|
20
20
|
<span class="icon icon--gitlab">
|
21
21
|
<svg viewBox="0 0 100 100">
|
22
22
|
<path d="m50 96h0l18.42-56.63h-36.82z" fill="#9c9b9b"/>
|
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
{% if site.github_username %}
|
36
36
|
<li>
|
37
|
-
<a href="https://github.com/{{ site.github_username }}" rel="me">
|
37
|
+
<a title="GitHub" href="https://github.com/{{ site.github_username }}" rel="me">
|
38
38
|
<span class="icon icon--github">
|
39
39
|
<svg viewBox="0 0 16 16">
|
40
40
|
<path fill="#828282" d="M7.999,0.431c-4.285,0-7.76,3.474-7.76,7.761 c0,3.428,2.223,6.337,5.307,7.363c0.388,0.071,0.53-0.168,0.53-0.374c0-0.184-0.007-0.672-0.01-1.32 c-2.159,0.469-2.614-1.04-2.614-1.04c-0.353-0.896-0.862-1.135-0.862-1.135c-0.705-0.481,0.053-0.472,0.053-0.472 c0.779,0.055,1.189,0.8,1.189,0.8c0.692,1.186,1.816,0.843,2.258,0.645c0.071-0.502,0.271-0.843,0.493-1.037 C4.86,11.425,3.049,10.76,3.049,7.786c0-0.847,0.302-1.54,0.799-2.082C3.768,5.507,3.501,4.718,3.924,3.65 c0,0,0.652-0.209,2.134,0.796C6.677,4.273,7.34,4.187,8,4.184c0.659,0.003,1.323,0.089,1.943,0.261 c1.482-1.004,2.132-0.796,2.132-0.796c0.423,1.068,0.157,1.857,0.077,2.054c0.497,0.542,0.798,1.235,0.798,2.082 c0,2.981-1.814,3.637-3.543,3.829c0.279,0.24,0.527,0.713,0.527,1.437c0,1.037-0.01,1.874-0.01,2.129 c0,0.208,0.14,0.449,0.534,0.373c3.081-1.028,5.302-3.935,5.302-7.362C15.76,3.906,12.285,0.431,7.999,0.431z"/>
|
@@ -48,7 +48,7 @@
|
|
48
48
|
|
49
49
|
{% if site.twitter_username %}
|
50
50
|
<li>
|
51
|
-
<a href="https://twitter.com/{{ site.twitter_username }}" rel="me">
|
51
|
+
<a title="Twitter" href="https://twitter.com/{{ site.twitter_username }}" rel="me">
|
52
52
|
<span class="icon icon--twitter">
|
53
53
|
<svg viewBox="0 0 16 16">
|
54
54
|
<path fill="#828282" d="M15.969,3.058c-0.586,0.26-1.217,0.436-1.878,0.515c0.675-0.405,1.194-1.045,1.438-1.809
|
@@ -61,9 +61,45 @@
|
|
61
61
|
</li>
|
62
62
|
{% endif %}
|
63
63
|
|
64
|
+
{% if site.mastodon_profile %}
|
65
|
+
<li>
|
66
|
+
<a title="Mastodon" href="{{ site.mastodon_profile | mastodon_url }}" rel="me">
|
67
|
+
<span class="icon icon--mastodon">
|
68
|
+
<svg viewBox="0 0 74 79">
|
69
|
+
<path fill="#828282" d="M73.7014 17.9592C72.5616 9.62034 65.1774 3.04876 56.424 1.77536C54.9472
|
70
|
+
1.56019 49.3517 0.7771 36.3901 0.7771H36.2933C23.3281 0.7771 20.5465 1.56019 19.0697 1.77536C10.56
|
71
|
+
3.01348 2.78877 8.91838 0.903306 17.356C-0.00357857 21.5113 -0.100361 26.1181 0.068112
|
72
|
+
30.3439C0.308275 36.404 0.354874 42.4535 0.91406 48.489C1.30064 52.498 1.97502 56.4751 2.93215
|
73
|
+
60.3905C4.72441 67.6217 11.9795 73.6395 19.0876 76.0945C26.6979 78.6548 34.8821 79.0799 42.724
|
74
|
+
77.3221C43.5866 77.1245 44.4398 76.8953 45.2833 76.6342C47.1867 76.0381 49.4199 75.3714 51.0616
|
75
|
+
74.2003C51.0841 74.1839 51.1026 74.1627 51.1156 74.1382C51.1286 74.1138 51.1359 74.0868 51.1368
|
76
|
+
74.0592V68.2108C51.1364 68.185 51.1302 68.1596 51.1185 68.1365C51.1069 68.1134 51.0902 68.0932 51.0695
|
77
|
+
68.0773C51.0489 68.0614 51.0249 68.0503 50.9994 68.0447C50.9738 68.0391 50.9473 68.0392 50.9218
|
78
|
+
68.045C45.8976 69.226 40.7491 69.818 35.5836 69.8087C26.694 69.8087 24.3031 65.6569 23.6184
|
79
|
+
63.9285C23.0681 62.4347 22.7186 60.8764 22.5789 59.2934C22.5775 59.2669 22.5825 59.2403 22.5934
|
80
|
+
59.216C22.6043 59.1916 22.621 59.1702 22.6419 59.1533C22.6629 59.1365 22.6876 59.1248 22.714
|
81
|
+
59.1191C22.7404 59.1134 22.7678 59.1139 22.794 59.1206C27.7345 60.2936 32.799 60.8856 37.8813
|
82
|
+
60.8843C39.1036 60.8843 40.3223 60.8843 41.5447 60.8526C46.6562 60.7115 52.0437 60.454 57.0728
|
83
|
+
59.4874C57.1983 59.4628 57.3237 59.4416 57.4313 59.4098C65.3638 57.9107 72.9128 53.2051 73.6799
|
84
|
+
41.2895C73.7086 40.8204 73.7803 36.3758 73.7803 35.889C73.7839 34.2347 74.3216 24.1533 73.7014
|
85
|
+
17.9592ZM61.4925 47.6918H53.1514V27.5855C53.1514 23.3526 51.3591 21.1938 47.7136 21.1938C43.7061
|
86
|
+
21.1938 41.6988 23.7476 41.6988 28.7919V39.7974H33.4078V28.7919C33.4078 23.7476 31.3969 21.1938
|
87
|
+
27.3894 21.1938C23.7654 21.1938 21.9552 23.3526 21.9516 27.5855V47.6918H13.6176V26.9752C13.6176
|
88
|
+
22.7423 14.7157 19.3795 16.9118 16.8868C19.1772 14.4 22.1488 13.1231 25.8373 13.1231C30.1064 13.1231
|
89
|
+
33.3325 14.7386 35.4832 17.9662L37.5587 21.3949L39.6377 17.9662C41.7884 14.7386 45.0145 13.1231
|
90
|
+
49.2765 13.1231C52.9614 13.1231 55.9329 14.4 58.2055 16.8868C60.4017 19.3772 61.4997 22.74 61.4997
|
91
|
+
26.9752L61.4925 47.6918Z"/>
|
92
|
+
</svg>
|
93
|
+
</span>
|
94
|
+
|
95
|
+
<span class="username">{{ site.mastodon_profile }}</span>
|
96
|
+
</a>
|
97
|
+
</li>
|
98
|
+
{% endif %}
|
99
|
+
|
64
100
|
{% if site.instagram_username %}
|
65
101
|
<li>
|
66
|
-
<a href="https://instagram.com/{{ site.instagram_username }}"
|
102
|
+
<a title="Instagram" href="https://instagram.com/{{ site.instagram_username }}"
|
67
103
|
rel="me">
|
68
104
|
<span class="icon icon--instagram">
|
69
105
|
<svg viewBox="0 0 512 512">
|
@@ -79,7 +115,7 @@
|
|
79
115
|
</li>
|
80
116
|
{% endif %}
|
81
117
|
<li>
|
82
|
-
<a href="{{ "/feed.xml" | prepend: site.baseurl }}">
|
118
|
+
<a title="RSS" href="{{ "/feed.xml" | prepend: site.baseurl }}">
|
83
119
|
<span class="icon">
|
84
120
|
<svg viewBox="0 0 256 256">
|
85
121
|
<circle cx="68" cy="189" r="24" fill="#828282"/>
|
@@ -100,8 +136,7 @@
|
|
100
136
|
|
101
137
|
<div class="footer-col-wrapper">
|
102
138
|
<div class="footer-wide">
|
103
|
-
|
104
|
-
and the <a href="https://islandsvinur.gitlab.io/jekyll-theme-switch/">Logging the Switch theme</a>.
|
139
|
+
{% include footer_text.html %}
|
105
140
|
</div>
|
106
141
|
</div>
|
107
142
|
|
@@ -0,0 +1,5 @@
|
|
1
|
+
Generated by <a href="https://jekyllrb.com/">Jekyll</a>
|
2
|
+
and the <a href="https://islandsvinur.gitlab.io/jekyll-theme-switch/">Logging the Switch theme</a>.
|
3
|
+
{% if site.site_repository_base_url %}
|
4
|
+
<a href="{{ site.site_repository_base_url }}/{{ page.path }}">Edit this page</a>.
|
5
|
+
{% endif %}
|
data/_includes/head.html
CHANGED
@@ -1,45 +1,42 @@
|
|
1
|
-
<
|
2
|
-
|
3
|
-
|
4
|
-
<meta name="viewport" content="width=device-width, initial-scale=1">
|
1
|
+
<meta charset="utf-8">
|
2
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
3
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
5
4
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
<meta name="description" content="{{ description }}">
|
5
|
+
{% if page.excerpt %}
|
6
|
+
{% assign description = page.excerpt | strip_html | normalize_whitespace | truncate: 160 %}
|
7
|
+
{% else %}
|
8
|
+
{% assign description = site.description | markdownify | strip_html | normalize_whitespace %}
|
9
|
+
{% endif %}
|
10
|
+
<title>{% include page_title.html %}</title>
|
11
|
+
<meta name="description" content="{{ description }}">
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
13
|
+
<link rel="stylesheet" href="{{ "/assets/css/jekyll-theme-switch.css" | prepend: site.baseurl }}">
|
14
|
+
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons"/>
|
15
|
+
{% if page.previous %}<link rel="prev" href="{{ page.previous.url | absolute_url }}">{% endif %}
|
16
|
+
{% assign canonical_url = page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url %}
|
17
|
+
<link rel="canonical" href="{{ canonical_url }}">
|
18
|
+
{% if page.next %}<link rel="next" href="{{ page.next.url | absolute_url }}">{% endif %}
|
19
|
+
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" />
|
22
20
|
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
{% for link in site.links %}
|
22
|
+
<link rel="{{ link.rel }}" href="{{ link.href }}"/>
|
23
|
+
{% endfor %}
|
26
24
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
25
|
+
<meta property="og:title" content="{% include page_title.html %}">
|
26
|
+
<meta property="og:description" content="{{ description }}">
|
27
|
+
<meta property="og:site_name" content="{{ site.title }}">
|
28
|
+
<meta property="og:url" content="{{ canonical_url }}">
|
29
|
+
{% if page.lead_image %}
|
30
|
+
<meta property="og:image" content="{{ page.lead_image | absolute_url }}"/>
|
31
|
+
{% endif %}
|
34
32
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
</head>
|
33
|
+
{% if page.lead_image %}
|
34
|
+
<meta property="twitter:card" content="summary_large_image"/>
|
35
|
+
<meta property="twitter:image" content="{{ page.lead_image | absolute_url }}"/>
|
36
|
+
{% else %}
|
37
|
+
<meta property="twitter:card" content="summary"/>
|
38
|
+
{% endif %}
|
39
|
+
<meta property="twitter:title" content="{% include page_title.html %}"/>
|
40
|
+
<meta property="twitter:description" content="{{ description }}"/>
|
41
|
+
{% if site.twitter_username %}<meta property="twitter:creator" content="@{{ site.twitter_username }}"/>{% endif %}
|
42
|
+
<meta property="twitter:site" content="{{ canonical_url }}"/>
|
data/_includes/month.html
CHANGED
@@ -1,14 +1,7 @@
|
|
1
|
-
{%
|
2
|
-
{%
|
3
|
-
{
|
4
|
-
{%
|
5
|
-
{%
|
6
|
-
{
|
7
|
-
{%
|
8
|
-
{% when '7' %}juli
|
9
|
-
{% when '8' %}augustus
|
10
|
-
{% when '9' %}september
|
11
|
-
{% when '10' %}oktober
|
12
|
-
{% when '11' %}november
|
13
|
-
{% when '12' %}december
|
14
|
-
{% endcase %}
|
1
|
+
{% if include.date %}
|
2
|
+
{% assign m = include.date | date: "%-m" | minus: 1 %}
|
3
|
+
{{ site.data.i18n.date.months | slice: m }}
|
4
|
+
{% else %}
|
5
|
+
{% assign m = include.month | minus: 1 %}
|
6
|
+
{{ site.data.i18n.date.months | slice: m }}
|
7
|
+
{% endif %}
|
@@ -0,0 +1 @@
|
|
1
|
+
{% if page.title %}{{ page.title | append: " ≪ " | append: site.title }}{% else %}{{ site.title }}{% endif %}
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<!-- Pagination links -->
|
2
|
+
<div class="pagination">
|
3
|
+
{% if paginator.previous_page %}
|
4
|
+
<a href="{{ paginator.previous_page_path | prepend: site.baseurl }}" class="previous button">
|
5
|
+
<i class="material-icons">keyboard_arrow_left</i> {{ site.data.i18n.nav.previous }}
|
6
|
+
</a>
|
7
|
+
{% else %}
|
8
|
+
<span class="previous button">
|
9
|
+
<i class="material-icons">keyboard_arrow_left</i> {{ site.data.i18n.nav.previous }}
|
10
|
+
</span>
|
11
|
+
{% endif %}
|
12
|
+
<span class="page_number" style="display: flex; align-items: center">
|
13
|
+
{{ site.data.i18n.nav.page_of_pages | params: page: paginator.page, pages: paginator.total_pages }}
|
14
|
+
</span>
|
15
|
+
{% if paginator.next_page %}
|
16
|
+
<a href="{{ paginator.next_page_path | prepend: site.baseurl }}" class="next button">
|
17
|
+
{{ site.data.i18n.nav.next }} <i class="material-icons">keyboard_arrow_right</i>
|
18
|
+
</a>
|
19
|
+
{% else %}
|
20
|
+
<span class="next button">
|
21
|
+
{{ site.data.i18n.nav.next }} <i class="material-icons">keyboard_arrow_right</i>
|
22
|
+
</span>
|
23
|
+
{% endif %}
|
24
|
+
</div>
|
@@ -0,0 +1,34 @@
|
|
1
|
+
{% if post.lead_image %}
|
2
|
+
<style type="text/css" scoped>
|
3
|
+
li#post-{{ post.id | slugify }} {
|
4
|
+
background-image: radial-gradient(farthest-corner at 100% 0, rgba(255,255,255,0.7) 33%, rgba(255,255,255,1) 66%),
|
5
|
+
url('{{ post.lead_image | prepend: site.baseurl | prepend: site.url }}');
|
6
|
+
background-size: cover;
|
7
|
+
background-repeat: no-repeat;
|
8
|
+
background-position: right center;
|
9
|
+
}
|
10
|
+
|
11
|
+
@media (prefers-color-scheme: dark) {
|
12
|
+
li#post-{{ post.id | slugify }} {
|
13
|
+
background-image: radial-gradient(farthest-corner at 100% 0, rgba(31,31,31,0.7) 33%, rgba(31,31,31,1) 66%),
|
14
|
+
url('{{ post.lead_image | prepend: site.baseurl | prepend: site.url }}');
|
15
|
+
}
|
16
|
+
}
|
17
|
+
</style>
|
18
|
+
{% endif %}
|
19
|
+
|
20
|
+
<li id="post-{{ post.id | slugify }}">
|
21
|
+
<article>
|
22
|
+
{% include post_meta.html post=post %}
|
23
|
+
|
24
|
+
<h2>
|
25
|
+
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
|
26
|
+
</h2>
|
27
|
+
|
28
|
+
<div class="post-content">
|
29
|
+
{{ post.content }}
|
30
|
+
</div>
|
31
|
+
|
32
|
+
<a class="read-more" href="{{ post.url | prepend: site.baseurl }}">{{ site.data.i18n.read_more }}</a>
|
33
|
+
</article>
|
34
|
+
</li>
|
data/_includes/post_meta.html
CHANGED
@@ -8,6 +8,15 @@
|
|
8
8
|
</span>
|
9
9
|
<span class="meta-text">{% include date.html date=include.post.date %}</span>
|
10
10
|
</li>
|
11
|
+
{% if include.post.modified_date %}
|
12
|
+
<li>
|
13
|
+
<span class="meta-icon">
|
14
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path
|
15
|
+
d="M21 10.12h-6.78l2.74-2.82c-2.73-2.7-7.15-2.8-9.88-.1-2.73 2.71-2.73 7.08 0 9.79s7.15 2.71 9.88 0C18.32 15.65 19 14.08 19 12.1h2c0 1.98-.88 4.55-2.64 6.29-3.51 3.48-9.21 3.48-12.72 0-3.5-3.47-3.53-9.11-.02-12.58s9.14-3.47 12.65 0L21 3v7.12zM12.5 8v4.25l3.5 2.08-.72 1.21L11 13V8h1.5z"/></svg>
|
16
|
+
</span>
|
17
|
+
<span class="meta-text">{% include date.html date=include.post.modified_date %}</span>
|
18
|
+
</li>
|
19
|
+
{% endif %}
|
11
20
|
<li>
|
12
21
|
<span class="meta-icon">
|
13
22
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48"><path
|
@@ -0,0 +1,22 @@
|
|
1
|
+
<nav class="post-nav">
|
2
|
+
{% if page.previous %}
|
3
|
+
<a href="{{ page.previous.url | prepend: site.baseurl }}"
|
4
|
+
class="previous button" title="{{ page.previous.title }}">
|
5
|
+
<i class="material-icons">keyboard_arrow_left</i> {{ site.data.i18n.nav.previous }}
|
6
|
+
</a>
|
7
|
+
{% else %}
|
8
|
+
<span class="previous button disabled">
|
9
|
+
<i class="material-icons">keyboard_arrow_left</i> {{ site.data.i18n.nav.previous }}
|
10
|
+
</span>
|
11
|
+
{% endif %}
|
12
|
+
{% if page.next %}
|
13
|
+
<a href="{{ page.next.url | prepend: site.baseurl }}" class="next button"
|
14
|
+
title="{{ page.next.title }}">
|
15
|
+
{{ site.data.i18n.nav.next }} <i class="material-icons">keyboard_arrow_right</i>
|
16
|
+
</a>
|
17
|
+
{% else %}
|
18
|
+
<span class="next button disabled">
|
19
|
+
{{ site.data.i18n.nav.next }} <i class="material-icons">keyboard_arrow_right</i>
|
20
|
+
</span>
|
21
|
+
{% endif %}
|
22
|
+
</nav>
|
data/_includes/rss/post.html
CHANGED
@@ -1,4 +1,4 @@
|
|
1
1
|
{{ post.content | xml_escape }}
|
2
|
-
<p><em>
|
2
|
+
<p><em>{{ site.data.i18n.rss.originally_posted }}
|
3
3
|
<a href='{{ post.url | prepend: site.baseurl | prepend: site.url }}'>{{ site.title | xml_escape }}</a>.
|
4
4
|
</em></p>
|
data/_layouts/archive.html
CHANGED
data/_layouts/category_page.html
CHANGED
@@ -3,42 +3,7 @@ layout: wrapped
|
|
3
3
|
---
|
4
4
|
|
5
5
|
<div class="category-index">
|
6
|
-
<h1 class="page-heading">{{ page.title | capitalize | replace: "Ij", "IJ" }}</h1>
|
6
|
+
<h1 class="page-heading">{{ site.data.i18n.category }}: {{ 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: radial-gradient(farthest-corner at 100% 0, rgba(255,255,255,0.7) 33%, rgba(255,255,255,1) 66%),
|
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: radial-gradient(farthest-corner at 100% 0, rgba(31,31,31,0.7) 33%, rgba(31,31,31,1) 66%),
|
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
|
-
|
31
|
-
{% include post_meta.html post=post %}
|
32
|
-
|
33
|
-
<h2>
|
34
|
-
<a class="post-link" href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a>
|
35
|
-
</h2>
|
36
|
-
<div>
|
37
|
-
{{ post.excerpt }}
|
38
|
-
</div>
|
39
|
-
<a href="{{ post.url | prepend: site.baseurl }}">lees verder</a>
|
40
|
-
</article>
|
41
|
-
</li>
|
42
|
-
{% endfor %}
|
43
|
-
</ul>
|
8
|
+
{% include post_list.html posts=page.posts %}
|
44
9
|
</div>
|
data/_layouts/default.html
CHANGED
data/_layouts/home.html
CHANGED
@@ -4,75 +4,8 @@ layout: wrapped
|
|
4
4
|
|
5
5
|
<div class="home">
|
6
6
|
|
7
|
-
|
8
|
-
{% assign first = true %}
|
9
|
-
{% for post in paginator.posts %}
|
10
|
-
{% if post.lead_image %}
|
11
|
-
<style type="text/css" scoped>
|
12
|
-
li#post-{{ post.id | slugify }} {
|
13
|
-
background-image: radial-gradient(farthest-corner at 100% 0, rgba(255,255,255,0.7) 33%, rgba(255,255,255,1) 66%),
|
14
|
-
url('{{ post.lead_image | prepend: site.baseurl | prepend: site.url }}');
|
15
|
-
background-size: cover;
|
16
|
-
background-repeat: no-repeat;
|
17
|
-
background-position: right center;
|
18
|
-
}
|
19
|
-
|
20
|
-
@media (prefers-color-scheme: dark) {
|
21
|
-
li#post-{{ post.id | slugify }} {
|
22
|
-
background-image: radial-gradient(farthest-corner at 100% 0, rgba(31,31,31,0.7) 33%, rgba(31,31,31,1) 66%),
|
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
|
-
{% if paginator.page == 1 and first %}
|
36
|
-
<div>
|
37
|
-
{{ post.content }}
|
38
|
-
{% assign first = false %}
|
39
|
-
</div>
|
40
|
-
{% else %}
|
41
|
-
<div>
|
42
|
-
{{ post.excerpt }}
|
43
|
-
</div>
|
44
|
-
<a href="{{ post.url | prepend: site.baseurl }}">lees verder</a>
|
45
|
-
{% endif %}
|
46
|
-
</article>
|
47
|
-
</li>
|
48
|
-
{% endfor %}
|
49
|
-
</ul>
|
50
|
-
|
51
|
-
<!-- Pagination links -->
|
52
|
-
<div class="pagination">
|
53
|
-
{% if paginator.previous_page %}
|
54
|
-
<a href="{{ paginator.previous_page_path | prepend: site.baseurl }}" class="previous button">
|
55
|
-
<i class="material-icons">keyboard_arrow_left</i> Vorige
|
56
|
-
</a>
|
57
|
-
{% else %}
|
58
|
-
<span class="previous button">
|
59
|
-
<i class="material-icons">keyboard_arrow_left</i> Vorige
|
60
|
-
</span>
|
61
|
-
{% endif %}
|
62
|
-
<span class="page_number" style="display: flex; align-items: center">
|
63
|
-
Pagina: {{ paginator.page }} van {{ paginator.total_pages }}
|
64
|
-
</span>
|
65
|
-
{% if paginator.next_page %}
|
66
|
-
<a href="{{ paginator.next_page_path | prepend: site.baseurl }}" class="next button">
|
67
|
-
Volgende <i class="material-icons">keyboard_arrow_right</i>
|
68
|
-
</a>
|
69
|
-
{% else %}
|
70
|
-
<span class="next button">
|
71
|
-
Volgende <i class="material-icons">keyboard_arrow_right</i>
|
72
|
-
</span>
|
73
|
-
{% endif %}
|
74
|
-
</div>
|
75
|
-
|
7
|
+
{% include post_list.html posts=paginator.posts %}
|
76
8
|
|
9
|
+
{% include paginator_nav.html %}
|
77
10
|
|
78
11
|
</div>
|
@@ -3,8 +3,8 @@ layout: wrapped
|
|
3
3
|
---
|
4
4
|
<div class="monthly-archive">
|
5
5
|
<div>
|
6
|
-
{%
|
7
|
-
<h1 class="title">
|
6
|
+
{% capture month %}<time datetime="{{ page.date | date: '%Y-%m' }}">{% include month.html date=page.date %} {{ page.date | date: "%Y" }}</time>{% endcapture %}
|
7
|
+
<h1 class="title">{{ site.data.i18n.archives.monthly_header | params: month: month }}</h1>
|
8
8
|
</div>
|
9
9
|
<div>
|
10
10
|
<dl>
|
data/_layouts/post.html
CHANGED
@@ -38,27 +38,6 @@ layout: default
|
|
38
38
|
{% include disqus.html %}
|
39
39
|
{% endunless %}
|
40
40
|
|
41
|
-
|
42
|
-
{% if page.previous %}
|
43
|
-
<a href="{{ page.previous.url | prepend: site.baseurl }}"
|
44
|
-
class="previous button" title="{{ page.previous.title }}">
|
45
|
-
<i class="material-icons">keyboard_arrow_left</i> Vorige
|
46
|
-
</a>
|
47
|
-
{% else %}
|
48
|
-
<span class="previous button disabled">
|
49
|
-
<i class="material-icons">keyboard_arrow_left</i> Vorige
|
50
|
-
</span>
|
51
|
-
{% endif %}
|
52
|
-
{% if page.next %}
|
53
|
-
<a href="{{ page.next.url | prepend: site.baseurl }}" class="next button"
|
54
|
-
title="{{ page.next.title }}">
|
55
|
-
Volgende <i class="material-icons">keyboard_arrow_right</i>
|
56
|
-
</a>
|
57
|
-
{% else %}
|
58
|
-
<span class="next button disabled">
|
59
|
-
Volgende <i class="material-icons">keyboard_arrow_right</i>
|
60
|
-
</span>
|
61
|
-
{% endif %}
|
62
|
-
</div>
|
41
|
+
{% include post_nav.html %}
|
63
42
|
</div>
|
64
43
|
</div>
|
data/_layouts/rss.html
CHANGED
@@ -1,8 +1,7 @@
|
|
1
1
|
<?xml version="1.0" encoding="UTF-8"?>
|
2
2
|
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
3
3
|
<channel>
|
4
|
-
|
5
|
-
<description>{{ site.description | markdownify | strip_html | normalize_whitespace }}</description>
|
4
|
+
{% include rss/channel.html %}
|
6
5
|
<link>{{ site.url }}{{ site.baseurl }}/</link>
|
7
6
|
<atom:link href="{{ "/feed.xml" | prepend: site.baseurl | prepend: site.url }}" rel="self" type="application/rss+xml"/>
|
8
7
|
<pubDate>{{ site.time | date_to_rfc822 }}</pubDate>
|
data/_layouts/series_post.html
CHANGED
@@ -3,11 +3,11 @@ layout: post
|
|
3
3
|
---
|
4
4
|
{% assign series_index = page.series_index[0] %}
|
5
5
|
<div class="series-header">
|
6
|
-
<p>
|
6
|
+
<p>{{ site.data.i18n.series }}: <a href="{{ series_index.url | prepend: site.baseurl }}">{{ series_index.title }}</a>.</p>
|
7
7
|
</div>
|
8
8
|
{{ content }}
|
9
9
|
<div class="series-footer">
|
10
|
-
<p>
|
10
|
+
<p>{{ site.data.i18n.series }}: <a href="{{ series_index.url | prepend: site.baseurl }}">{{ series_index.title }}</a>.</p>
|
11
11
|
<ul>
|
12
12
|
{% for post in series_index.series_posts %}
|
13
13
|
<li><a href="{{ post.url | prepend: site.baseurl }}">{{ post.title }}</a></li>
|
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: radial-gradient(farthest-corner at 100% 0, rgba(255,255,255,0.7) 33%, rgba(255,255,255,1) 66%),
|
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: radial-gradient(farthest-corner at 100% 0, rgba(31,31,31,0.7) 33%, rgba(31,31,31,1) 66%),
|
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'" %}
|
@@ -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
|
@@ -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
|
|
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
|
@@ -181,7 +181,7 @@ 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
|
@@ -197,7 +197,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
197
197
|
version: '0'
|
198
198
|
requirements: []
|
199
199
|
rubygems_version: 3.3.26
|
200
|
-
signing_key:
|
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']}/#{Utils.slugify(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']}/#{Utils.slugify(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
|
-
|
@@ -1,23 +0,0 @@
|
|
1
|
-
|
2
|
-
class VimeoEmbed < Liquid::Tag
|
3
|
-
|
4
|
-
def initialize(tagName, content, tokens)
|
5
|
-
super
|
6
|
-
@content = content
|
7
|
-
content[/([0-9]+)/]
|
8
|
-
@vimeo_id = $1
|
9
|
-
end
|
10
|
-
|
11
|
-
def render(context)
|
12
|
-
tmpl_path = File.join Dir.pwd, "_includes", "vimeo.html"
|
13
|
-
if File.exist?(tmpl_path)
|
14
|
-
tmpl = File.read tmpl_path
|
15
|
-
site = context.registers[:site]
|
16
|
-
tmpl = (Liquid::Template.parse tmpl).render site.site_payload.merge!({"vimeo_id" => @vimeo_id})
|
17
|
-
else
|
18
|
-
%Q{<style>.embed-container { position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; } .embed-container iframe, .embed-container object, .embed-container embed { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }</style><div class='embed-container'> <iframe title="vimeo video player" width="640" height="390" src="//www.vimeo.com/embed/#{ @vimeo_id }" frameborder="0" allowfullscreen></iframe></div>}
|
19
|
-
end
|
20
|
-
end
|
21
|
-
|
22
|
-
Liquid::Template.register_tag "vimeo", self
|
23
|
-
end
|
@@ -1,81 +0,0 @@
|
|
1
|
-
# Jekyll Module to create yearly archive pages
|
2
|
-
#
|
3
|
-
# Shigeya Suzuki, November 2013
|
4
|
-
# Copyright notice (MIT License) attached at the end of this file
|
5
|
-
#
|
6
|
-
|
7
|
-
#
|
8
|
-
# This code is based on the following works:
|
9
|
-
# https://gist.github.com/ilkka/707909
|
10
|
-
# https://gist.github.com/ilkka/707020
|
11
|
-
# https://gist.github.com/nlindley/6409459
|
12
|
-
#
|
13
|
-
|
14
|
-
#
|
15
|
-
# Archive will be written as #{archive_path}/#{year}/#{month}/index.html
|
16
|
-
# archive_path can be configured in 'path' key in 'yearly_archive' of
|
17
|
-
# site configuration file. 'path' is default null.
|
18
|
-
#
|
19
|
-
|
20
|
-
module Jekyll
|
21
|
-
|
22
|
-
module YearlyArchiveUtil
|
23
|
-
def self.archive_base(site)
|
24
|
-
site.config['yearly_archive'] && site.config['yearly_archive']['path'] || ''
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
# Generator class invoked from Jekyll
|
29
|
-
class YearlyArchiveGenerator < Generator
|
30
|
-
def generate(site)
|
31
|
-
posts_by_year = posts_group_by_year(site)
|
32
|
-
site.pages << ArchivePage.new(site, YearlyArchiveUtil.archive_base(site), posts_by_year)
|
33
|
-
end
|
34
|
-
|
35
|
-
def posts_group_by_year(site)
|
36
|
-
site.posts.docs.each.group_by { |post| post.date.year }
|
37
|
-
end
|
38
|
-
|
39
|
-
end
|
40
|
-
|
41
|
-
class ArchivePage < Page
|
42
|
-
def initialize(site, dir, posts_by_year)
|
43
|
-
@site = site
|
44
|
-
@dir = dir
|
45
|
-
@years = posts_by_year
|
46
|
-
@layout = 'archive'
|
47
|
-
self.ext = '.html'
|
48
|
-
self.basename = 'archive'
|
49
|
-
self.data = {
|
50
|
-
'layout' => @layout,
|
51
|
-
'type' => 'archive',
|
52
|
-
'title' => 'Archieven',
|
53
|
-
'site_header' => 'Archieven',
|
54
|
-
'years' => @years,
|
55
|
-
'url' => File.join('/', YearlyArchiveUtil.archive_base(site), 'archives.html')
|
56
|
-
}
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
# The MIT License (MIT)
|
62
|
-
#
|
63
|
-
# Copyright (c) 2013 Shigeya Suzuki
|
64
|
-
#
|
65
|
-
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
66
|
-
# of this software and associated documentation files (the "Software"), to deal
|
67
|
-
# in the Software without restriction, including without limitation the rights
|
68
|
-
# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
69
|
-
# copies of the Software, and to permit persons to whom the Software is
|
70
|
-
# furnished to do so, subject to the following conditions:
|
71
|
-
#
|
72
|
-
# The above copyright notice and this permission notice shall be included in all
|
73
|
-
# copies or substantial portions of the Software.
|
74
|
-
#
|
75
|
-
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
76
|
-
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
77
|
-
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
78
|
-
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
79
|
-
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
80
|
-
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
81
|
-
# SOFTWARE.
|