jekyll-theme-switch 0.1.1 → 0.5.1.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +18 -22
- data/_includes/footer.html +27 -2
- data/_includes/head.html +34 -5
- data/_includes/post_meta.html +44 -7
- data/_includes/rss/post.html +4 -0
- data/_layouts/archive.html +1 -1
- data/_layouts/category_page.html +30 -10
- data/_layouts/default.html +1 -4
- data/_layouts/holidays.html +1 -1
- data/_layouts/home.html +37 -11
- data/_layouts/monthly_archive.html +2 -2
- data/_layouts/page.html +29 -7
- data/_layouts/post.html +53 -23
- data/_layouts/rss.html +32 -0
- data/_layouts/series_index.html +1 -1
- data/_layouts/series_post.html +3 -3
- data/_layouts/tag_page.html +30 -10
- data/_layouts/wrapped.html +6 -0
- data/_layouts/yearly_archive.html +2 -2
- data/_plugins/blog_series_plugin.rb +16 -0
- data/_plugins/category_tag_filter.rb +36 -0
- data/_plugins/filesize_filter.rb +13 -0
- data/_plugins/normalize_whitespace_filter.rb +10 -0
- data/_plugins/songlink_tag_plugin.rb +18 -0
- data/_plugins/video_tag_plugin.rb +62 -0
- data/_plugins/vimeo_tag_plugin.rb +23 -0
- data/_plugins/yearly_archive_plugin.rb +81 -0
- data/_sass/jekyll-theme-switch/_base.scss +1 -1
- data/_sass/jekyll-theme-switch/_dark.scss +51 -5
- data/_sass/jekyll-theme-switch/_layout.scss +157 -20
- data/_sass/jekyll-theme-switch/_syntax-highlighting.scss +0 -1
- data/assets/css/jekyll-theme-switch.scss +5 -5
- data/assets/image/arnaud-jaegers-OkXIepDkNBE-unsplash.jpg +0 -0
- data/assets/image/fabian-betto-d3npqyXkaGI-unsplash.jpg +0 -0
- data/assets/image/jonatan-pie-g6tqHx0ME1o-unsplash.jpg +0 -0
- data/assets/image/marek-piwnicki-NPct-Mxw-64-unsplash.jpg +0 -0
- metadata +21 -34
data/_layouts/tag_page.html
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
layout:
|
2
|
+
layout: wrapped
|
3
3
|
---
|
4
4
|
|
5
5
|
<div class="tag-index">
|
@@ -7,16 +7,36 @@ layout: default
|
|
7
7
|
|
8
8
|
<ul class="post-list">
|
9
9
|
{% for post in page.posts %}
|
10
|
-
|
11
|
-
|
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
|
+
}
|
12
19
|
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
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>
|
20
40
|
</li>
|
21
41
|
{% endfor %}
|
22
42
|
</ul>
|
@@ -1,5 +1,5 @@
|
|
1
1
|
---
|
2
|
-
layout:
|
2
|
+
layout: wrapped
|
3
3
|
---
|
4
4
|
<div class="yearly-archive">
|
5
5
|
<div>
|
@@ -12,7 +12,7 @@ layout: default
|
|
12
12
|
<dl>
|
13
13
|
{% for post in group.items reversed %}
|
14
14
|
<dt>{% include date.html date=post.date %}</dt>
|
15
|
-
<dd><a href="{{ post.url }}"><span>{{ post.title }}</span></a></dd>
|
15
|
+
<dd><a href="{{ post.url | prepend: site.baseurl }}"><span>{{ post.title }}</span></a></dd>
|
16
16
|
{% endfor %}
|
17
17
|
</dl>
|
18
18
|
{% endfor %}
|
@@ -0,0 +1,16 @@
|
|
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
|
+
|
@@ -0,0 +1,36 @@
|
|
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)
|
@@ -0,0 +1,13 @@
|
|
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)
|
@@ -0,0 +1,18 @@
|
|
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)
|
@@ -0,0 +1,62 @@
|
|
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
|
+
|
@@ -0,0 +1,23 @@
|
|
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
|
@@ -0,0 +1,81 @@
|
|
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.
|
@@ -1,26 +1,72 @@
|
|
1
|
-
|
2
1
|
@media (prefers-color-scheme: dark) {
|
3
2
|
body {
|
4
3
|
color: $text-color-dark;
|
5
4
|
}
|
6
5
|
|
6
|
+
.post-meta ul li {
|
7
|
+
.meta-text {
|
8
|
+
color: $grey-color-dark;
|
9
|
+
}
|
10
|
+
|
11
|
+
.meta-icon svg {
|
12
|
+
fill: $grey-color-dark;
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
7
16
|
body,
|
8
17
|
.page-content,
|
9
18
|
.post-content,
|
19
|
+
{
|
20
|
+
background-color: $background-color-dark;
|
21
|
+
}
|
22
|
+
|
23
|
+
body > header,
|
24
|
+
body > footer,
|
25
|
+
article div.series-header,
|
26
|
+
article div.series-footer,
|
10
27
|
.pagination,
|
28
|
+
.post-list > li,
|
11
29
|
.site-nav,
|
12
30
|
.section-nav,
|
13
31
|
.post-nav,
|
14
|
-
.post-
|
15
|
-
|
16
|
-
|
32
|
+
.post-content tbody tr:nth-child(odd) {
|
33
|
+
background-color: lighten($background-color-dark, 5%);
|
34
|
+
}
|
35
|
+
|
36
|
+
.post-content {
|
37
|
+
td, th {
|
38
|
+
border-bottom-color: $brand-color-dark;
|
39
|
+
}
|
40
|
+
|
41
|
+
q {
|
42
|
+
background-color: lighten($background-color-dark, 10);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
.pagination,
|
47
|
+
.post-nav,
|
48
|
+
.section-nav {
|
49
|
+
.button {
|
50
|
+
border-color: $grey-color-dark;
|
51
|
+
|
52
|
+
&.disabled {
|
53
|
+
color: $grey-color-dark;
|
54
|
+
}
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
.highlight,
|
59
|
+
pre,
|
60
|
+
code {
|
61
|
+
background-color: lighten($background-color-dark, 10%);
|
62
|
+
border-color: $grey-color-dark;
|
17
63
|
}
|
18
64
|
|
19
65
|
a {
|
20
66
|
color: $brand-color-dark;
|
21
67
|
|
22
68
|
&:visited {
|
23
|
-
color:
|
69
|
+
color: adjust-hue($brand-color-dark, -120deg);
|
24
70
|
}
|
25
71
|
|
26
72
|
&:hover {
|
@@ -4,6 +4,7 @@
|
|
4
4
|
.site-header {
|
5
5
|
border-top: 5px solid $grey-color-dark;
|
6
6
|
min-height: 56px;
|
7
|
+
z-index: 100;
|
7
8
|
|
8
9
|
// Positioning context for the mobile navigation icon
|
9
10
|
position: relative;
|
@@ -101,6 +102,10 @@
|
|
101
102
|
margin-left: 0;
|
102
103
|
}
|
103
104
|
|
105
|
+
.footer-wide {
|
106
|
+
text-align: center;
|
107
|
+
}
|
108
|
+
|
104
109
|
.footer-col-wrapper {
|
105
110
|
font-size: 15px;
|
106
111
|
color: $grey-color;
|
@@ -189,6 +194,33 @@
|
|
189
194
|
.post-meta {
|
190
195
|
font-size: $small-font-size;
|
191
196
|
color: $grey-color;
|
197
|
+
|
198
|
+
ul {
|
199
|
+
display: flex;
|
200
|
+
flex-wrap: wrap;
|
201
|
+
list-style: none;
|
202
|
+
margin: 0;
|
203
|
+
|
204
|
+
li {
|
205
|
+
display: flex;
|
206
|
+
flex-shrink: 0;
|
207
|
+
flex-wrap: nowrap;
|
208
|
+
align-items: center;
|
209
|
+
|
210
|
+
.meta-icon {
|
211
|
+
line-height: 0.8;
|
212
|
+
|
213
|
+
svg {
|
214
|
+
fill: $grey-color;
|
215
|
+
height: 24px;
|
216
|
+
}
|
217
|
+
}
|
218
|
+
|
219
|
+
.meta-text {
|
220
|
+
margin: 4px;
|
221
|
+
}
|
222
|
+
}
|
223
|
+
}
|
192
224
|
}
|
193
225
|
|
194
226
|
.post-link {
|
@@ -240,6 +272,20 @@
|
|
240
272
|
}
|
241
273
|
}
|
242
274
|
|
275
|
+
q {
|
276
|
+
font-style: italic;
|
277
|
+
background-color: darken($background-color, 10);
|
278
|
+
quotes: "«" "»" "‹" "›";
|
279
|
+
|
280
|
+
&:before {
|
281
|
+
content: open-quote;
|
282
|
+
}
|
283
|
+
|
284
|
+
&:after {
|
285
|
+
content: close-quote;
|
286
|
+
}
|
287
|
+
}
|
288
|
+
|
243
289
|
table {
|
244
290
|
width: 100%;
|
245
291
|
border-collapse: collapse;
|
@@ -252,18 +298,60 @@
|
|
252
298
|
border-bottom: thin solid $brand-color;
|
253
299
|
}
|
254
300
|
|
255
|
-
tbody tr:nth-child(odd) {
|
301
|
+
tbody tr:nth-child(odd) {
|
302
|
+
background-color: darken($background-color, 5%);
|
303
|
+
}
|
256
304
|
}
|
257
305
|
|
258
306
|
.pagination,
|
259
307
|
.post-nav,
|
260
308
|
.section-nav {
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
309
|
+
display: flex;
|
310
|
+
justify-content: space-between;
|
311
|
+
text-align: center;
|
312
|
+
background-color: white;
|
313
|
+
padding: $spacing-unit;
|
314
|
+
margin: $spacing-unit 0;
|
315
|
+
border-radius: 4px;
|
316
|
+
@include BoxShadow(1);
|
317
|
+
|
318
|
+
.button {
|
319
|
+
display: flex;
|
320
|
+
align-items: center;
|
321
|
+
|
322
|
+
min-width: 64px;
|
323
|
+
height: 36px;
|
324
|
+
padding: 0 16px 0 12px;
|
325
|
+
|
326
|
+
font-size: 14px;
|
327
|
+
font-weight: bold;
|
328
|
+
|
329
|
+
text-decoration: none;
|
330
|
+
text-transform: uppercase;
|
331
|
+
|
265
332
|
border-radius: 4px;
|
266
|
-
|
333
|
+
border: thin solid $grey-color-light;
|
334
|
+
|
335
|
+
&.disabled {
|
336
|
+
color: $grey-color-light;
|
337
|
+
}
|
338
|
+
|
339
|
+
&.previous {
|
340
|
+
padding: 0 16px 0 12px;
|
341
|
+
|
342
|
+
.material-icons {
|
343
|
+
padding-right: 8px;
|
344
|
+
}
|
345
|
+
}
|
346
|
+
|
347
|
+
&.next {
|
348
|
+
padding: 0 12px 0 16px;
|
349
|
+
|
350
|
+
.material-icons {
|
351
|
+
padding-left: 8px;
|
352
|
+
}
|
353
|
+
}
|
354
|
+
}
|
267
355
|
}
|
268
356
|
|
269
357
|
.post-nav + h3 {
|
@@ -287,13 +375,8 @@ span.button,
|
|
287
375
|
padding: 5pt 15pt;
|
288
376
|
}
|
289
377
|
|
290
|
-
div.post-nav .button,
|
291
|
-
div.pagination span.button,
|
292
|
-
div.pagination a.button {
|
293
|
-
margin: 0 5%;
|
294
|
-
}
|
295
|
-
|
296
378
|
a.button:hover,
|
379
|
+
.pagination a:hover,
|
297
380
|
.post-nav a:hover,
|
298
381
|
.section-nav a:hover {
|
299
382
|
background: lightgray;
|
@@ -343,14 +426,16 @@ article div.comment
|
|
343
426
|
article div.series-header,
|
344
427
|
article div.series-footer
|
345
428
|
{
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
429
|
+
background-color: white;
|
430
|
+
padding: $spacing-unit;
|
431
|
+
margin: $spacing-unit 0;
|
432
|
+
border-radius: 4px;
|
433
|
+
@include BoxShadow(1);
|
434
|
+
clear: both;
|
435
|
+
|
436
|
+
:last-child {
|
437
|
+
margin-bottom: 0;
|
438
|
+
}
|
354
439
|
}
|
355
440
|
|
356
441
|
.yearly-archive dl h2 {
|
@@ -387,3 +472,55 @@ article div.series-footer
|
|
387
472
|
grid-template-columns: 12em 1fr;
|
388
473
|
margin-bottom: 1em;
|
389
474
|
}
|
475
|
+
|
476
|
+
.page-content .post {
|
477
|
+
.lead-image {
|
478
|
+
position: relative;
|
479
|
+
top: -1.5em;
|
480
|
+
display: flex;
|
481
|
+
flex-direction: column;
|
482
|
+
background-size: cover;
|
483
|
+
background-position: 50%;
|
484
|
+
background-color: #707070;
|
485
|
+
background-blend-mode: color-dodge;
|
486
|
+
box-shadow: inset 0 -8px 10px 1px rgba(0, 0, 0, .14),
|
487
|
+
inset 0 -3px 14px 2px rgba(0, 0, 0, .12),
|
488
|
+
inset 0 -5px 5px -3px rgba(0, 0, 0, .20);
|
489
|
+
|
490
|
+
header {
|
491
|
+
text-align: center;
|
492
|
+
align-self: center;
|
493
|
+
padding-top: 100px;
|
494
|
+
padding-bottom: 60px;
|
495
|
+
color: black;
|
496
|
+
max-width: 90vw;
|
497
|
+
display: flex;
|
498
|
+
flex-direction: column;
|
499
|
+
justify-content: space-around;
|
500
|
+
gap: 4px;
|
501
|
+
|
502
|
+
.post-title {
|
503
|
+
font-size: 7vw;
|
504
|
+
margin-bottom: 0;
|
505
|
+
}
|
506
|
+
|
507
|
+
ul {
|
508
|
+
justify-content: center;
|
509
|
+
gap: 16px;
|
510
|
+
|
511
|
+
li {
|
512
|
+
background-color: rgba(255, 255, 255, 0.9);
|
513
|
+
border-radius: 4px;
|
514
|
+
padding: 4px;
|
515
|
+
align-items: center;
|
516
|
+
}
|
517
|
+
}
|
518
|
+
}
|
519
|
+
}
|
520
|
+
|
521
|
+
.lead-image-credit {
|
522
|
+
text-align: center;
|
523
|
+
font-style: italic;
|
524
|
+
color: $grey-color;
|
525
|
+
}
|
526
|
+
}
|