jekyll-theme-switch 0.1.1 → 0.5.1.pre.1
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.
- 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
|
+
}
|