beautiful-jekyll-theme 4.1.0 → 6.0.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/404.html +1 -1
- data/LICENSE +1 -1
- data/README.md +96 -132
- data/_data/ui-text.yml +1 -1
- data/_includes/cloudflare_analytics.html +8 -0
- data/_includes/commentbox.html +7 -0
- data/_includes/comments.html +4 -2
- data/_includes/footer-scripts.html +6 -0
- data/_includes/footer.html +16 -7
- data/_includes/giscus-comment.html +16 -0
- data/_includes/google_analytics.html +12 -0
- data/_includes/head.html +67 -78
- data/_includes/header.html +42 -30
- data/_includes/nav.html +21 -5
- data/_includes/readtime.html +2 -2
- data/_includes/search.html +39 -0
- data/_includes/social-networks-links.html +81 -5
- data/_includes/social-share.html +9 -1
- data/_includes/staticman-comments.html +1 -1
- data/_includes/utterances-comment.html +1 -1
- data/_layouts/base.html +16 -16
- data/_layouts/default.html +17 -1
- data/_layouts/home.html +60 -35
- data/_layouts/minimal.html +20 -4
- data/_layouts/page.html +19 -2
- data/_layouts/post.html +21 -9
- data/assets/css/{main-minimal.css → beautifuljekyll-minimal.css} +1 -1
- data/assets/css/{main.css → beautifuljekyll.css} +334 -142
- data/assets/img/install-steps.gif +0 -0
- data/assets/js/{main.js → beautifuljekyll.js} +57 -14
- data/assets/js/staticman.js +39 -28
- data/feed.xml +6 -5
- data/staticman.yml +1 -1
- data/tags.html +1 -1
- metadata +43 -12
- data/assets/js/jquery-3.4.1.min.js +0 -2
data/_includes/head.html
CHANGED
@@ -2,17 +2,34 @@
|
|
2
2
|
<meta charset="utf-8">
|
3
3
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
4
4
|
|
5
|
-
|
5
|
+
{% capture title %}
|
6
|
+
{%- if page.share-title -%}
|
7
|
+
{{ page.share-title | strip_html | xml_escape }}
|
8
|
+
{%- elsif page.title -%}
|
9
|
+
{{ page.title | strip_html | xml_escape }}
|
10
|
+
{%- else -%}
|
11
|
+
{{ site.title | strip_html | xml_escape }}
|
12
|
+
{%- endif -%}
|
13
|
+
{% endcapture %}
|
14
|
+
|
15
|
+
{% capture description %}
|
16
|
+
{%- if page.share-description -%}
|
17
|
+
{{ page.share-description | strip_html | xml_escape }}
|
18
|
+
{%- elsif page.subtitle -%}
|
19
|
+
{{ page.subtitle | strip_html | xml_escape }}
|
20
|
+
{%- else -%}
|
21
|
+
{%- assign excerpt_length = site.excerpt_length | default: 50 -%}
|
22
|
+
{{ page.content | strip_html | xml_escape | truncatewords: excerpt_length | strip }}
|
23
|
+
{%- endif -%}
|
24
|
+
{% endcapture %}
|
25
|
+
|
26
|
+
<title>{{ title }}</title>
|
6
27
|
|
7
28
|
{% if site.author %}
|
8
29
|
<meta name="author" content="{{ site.author }}">
|
9
30
|
{% endif %}
|
10
31
|
|
11
|
-
{
|
12
|
-
<meta name="description" content="{{ page.description }}">
|
13
|
-
{% elsif page.subtitle %}
|
14
|
-
<meta name="description" content="{{ page.subtitle }}">
|
15
|
-
{% endif %}
|
32
|
+
<meta name="description" content="{{ description }}">
|
16
33
|
|
17
34
|
{% if site.mobile-theme-col %}
|
18
35
|
<meta name="theme-color" content="{{ site.mobile-theme-col }}">
|
@@ -22,11 +39,14 @@
|
|
22
39
|
<meta name="keywords" content="{{ site.keywords }}">
|
23
40
|
{% endif %}
|
24
41
|
|
25
|
-
|
42
|
+
{% if site.rss-description %}
|
43
|
+
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ '/feed.xml' | absolute_url }}">
|
44
|
+
{% endif %}
|
26
45
|
|
27
46
|
{% include gtag.html %}
|
28
47
|
{% include gtm_head.html %}
|
29
48
|
{% include google_analytics.html %}
|
49
|
+
{% include cloudflare_analytics.html %}
|
30
50
|
|
31
51
|
{% if layout.common-ext-css %}
|
32
52
|
{% for css in layout.common-ext-css %}
|
@@ -40,25 +60,24 @@
|
|
40
60
|
{% endfor %}
|
41
61
|
{% endif %}
|
42
62
|
|
63
|
+
{% if site.site-css %}
|
64
|
+
{% for css in site.site-css %}
|
65
|
+
<link rel="stylesheet" href="{{ css | relative_url }}">
|
66
|
+
{% endfor %}
|
67
|
+
{% endif %}
|
68
|
+
|
43
69
|
{% if page.ext-css %}
|
44
70
|
{% for css in page.ext-css %}
|
45
71
|
{% include ext-css.html css=css %}
|
46
72
|
{% endfor %}
|
47
73
|
{% endif %}
|
48
|
-
|
74
|
+
|
49
75
|
{% if page.css %}
|
50
76
|
{% for css in page.css %}
|
51
77
|
<link rel="stylesheet" href="{{ css | relative_url }}">
|
52
78
|
{% endfor %}
|
53
79
|
{% endif %}
|
54
80
|
|
55
|
-
{% if site.site-css %}
|
56
|
-
{% for css in site.site-css %}
|
57
|
-
<link rel="stylesheet" href="{{ css | relative_url }}">
|
58
|
-
{% endfor %}
|
59
|
-
{% endif %}
|
60
|
-
|
61
|
-
<!-- Facebook OpenGraph tags -->
|
62
81
|
{% if site.fb_app_id %}
|
63
82
|
<meta property="fb:app_id" content="{{ site.fb_app_id }}">
|
64
83
|
{% endif %}
|
@@ -67,63 +86,43 @@
|
|
67
86
|
<meta property="og:site_name" content="{{ site.title }}">
|
68
87
|
{% endif %}
|
69
88
|
|
70
|
-
{
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
89
|
+
{%- capture img -%}
|
90
|
+
{%- if page.share-img -%}
|
91
|
+
{{ page.share-img }}
|
92
|
+
{%- elsif page.cover-img -%}
|
93
|
+
{%- if page.cover-img.first -%}
|
94
|
+
{{ page.cover-img[0].first.first }}
|
95
|
+
{%- else -%}
|
96
|
+
{{ page.cover-img }}
|
97
|
+
{%- endif -%}
|
98
|
+
{%- elsif page.thumbnail-img -%}
|
99
|
+
{{ page.thumbnail-img }}
|
100
|
+
{%- elsif site.avatar -%}
|
101
|
+
{{ site.avatar }}
|
102
|
+
{% endif %}
|
103
|
+
{%- endcapture -%}
|
104
|
+
{%- assign img=img | strip -%}
|
77
105
|
|
78
|
-
{
|
79
|
-
<meta property="og:description" content="{{
|
80
|
-
{% elsif page.subtitle %}
|
81
|
-
<meta property="og:description" content="{{ page.subtitle }}">
|
82
|
-
{% else %}
|
83
|
-
<meta property="og:description" content="{{ page.content | strip_html | xml_escape | truncatewords: 50 }}">
|
84
|
-
{% endif %}
|
106
|
+
<meta property="og:title" content="{{ title }}">
|
107
|
+
<meta property="og:description" content="{{ description }}">
|
85
108
|
|
109
|
+
{% if img != "" %}
|
110
|
+
<meta property="og:image" content="{{ img | absolute_url }}">
|
111
|
+
{% endif %}
|
86
112
|
|
87
113
|
{% if page.id %}
|
88
114
|
<meta property="og:type" content="article">
|
89
115
|
<meta property="og:article:author" content="{{ site.author }}">
|
90
116
|
<meta property="og:article:published_time" content="{{ page.date | date_to_xmlschema }}">
|
91
|
-
{% else %}
|
92
|
-
<meta property="og:type" content="website">
|
93
|
-
{% endif %}
|
94
|
-
|
95
|
-
{% if page.id %}
|
96
117
|
<meta property="og:url" content="{{ page.url | absolute_url }}">
|
97
118
|
<link rel="canonical" href="{{ page.url | absolute_url }}">
|
98
119
|
{% else %}
|
120
|
+
<meta property="og:type" content="website">
|
99
121
|
<meta property="og:url" content="{{ page.url | absolute_url | strip_index }}">
|
100
122
|
<link rel="canonical" href="{{ page.url | absolute_url | strip_index }}">
|
101
123
|
{% endif %}
|
102
124
|
|
103
|
-
{
|
104
|
-
{% if page.share-img %}
|
105
|
-
{{ page.share-img }}
|
106
|
-
{% elsif page.cover-img %}
|
107
|
-
{% if page.cover-img.first %}
|
108
|
-
{{ page.cover-img[0].first.first }}
|
109
|
-
{% else %}
|
110
|
-
{{ page.cover-img }}
|
111
|
-
{% endif %}
|
112
|
-
{% elsif page.thumbnail-img %}
|
113
|
-
{{ page.thumbnail-img }}
|
114
|
-
{% elsif site.avatar %}
|
115
|
-
{{ site.avatar }}
|
116
|
-
{% endif %}
|
117
|
-
{% endcapture %}
|
118
|
-
{% assign shareimg=shareimg | strip %}
|
119
|
-
|
120
|
-
{% if shareimg != "" %}
|
121
|
-
<meta property="og:image" content="{{ shareimg | absolute_url }}">
|
122
|
-
{% endif %}
|
123
|
-
|
124
|
-
|
125
|
-
<!-- Twitter summary cards -->
|
126
|
-
{% if shareimg != "" and shareimg != site.avatar %}
|
125
|
+
{% if img != "" and img != site.avatar %}
|
127
126
|
<meta name="twitter:card" content="summary_large_image">
|
128
127
|
{% else %}
|
129
128
|
<meta name="twitter:card" content="summary">
|
@@ -131,33 +130,23 @@
|
|
131
130
|
<meta name="twitter:site" content="@{{ site.social-network-links.twitter }}">
|
132
131
|
<meta name="twitter:creator" content="@{{ site.social-network-links.twitter }}">
|
133
132
|
|
134
|
-
{
|
135
|
-
<meta
|
136
|
-
{% elsif page.title %}
|
137
|
-
<meta name="twitter:title" content="{{ page.title }}">
|
138
|
-
{% else %}
|
139
|
-
<meta name="twitter:title" content="{{ site.title }}">
|
140
|
-
{% endif %}
|
133
|
+
<meta property="twitter:title" content="{{ title }}">
|
134
|
+
<meta property="twitter:description" content="{{ description }}">
|
141
135
|
|
142
|
-
{% if
|
143
|
-
<meta name="twitter:
|
144
|
-
{% elsif page.subtitle %}
|
145
|
-
<meta name="twitter:description" content="{{ page.subtitle }}">
|
146
|
-
{% else %}
|
147
|
-
<meta name="twitter:description" content="{{ page.content | strip_html | xml_escape | truncatewords: 50 }}">
|
136
|
+
{% if img != "" %}
|
137
|
+
<meta name="twitter:image" content="{{ img | absolute_url }}">
|
148
138
|
{% endif %}
|
149
139
|
|
150
|
-
{% if shareimg != "" %}
|
151
|
-
<meta name="twitter:image" content="{{ shareimg | absolute_url }}">
|
152
|
-
{% endif %}
|
153
|
-
|
154
|
-
{% if site.matomo %}
|
155
140
|
{% include matomo.html %}
|
156
|
-
{% endif %}
|
157
141
|
|
158
142
|
{% if page.comments and site.staticman.repository and site.staticman.branch %}
|
159
|
-
<!-- Staticman -->
|
160
143
|
<link rel="stylesheet" href="{{ "/assets/css/staticman.css" | relative_url }}">
|
161
144
|
{% endif %}
|
162
145
|
|
146
|
+
{% if page.head-extra %}
|
147
|
+
{% for file in page.head-extra %}
|
148
|
+
{% include {{ file }} %}
|
149
|
+
{% endfor %}
|
150
|
+
{% endif %}
|
151
|
+
|
163
152
|
</head>
|
data/_includes/header.html
CHANGED
@@ -27,22 +27,28 @@
|
|
27
27
|
<div class="row">
|
28
28
|
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
|
29
29
|
<div class="{{ include.type }}-heading">
|
30
|
-
<h1>{% if page.title %}{{ page.title }}{% else %}<br/>{% endif %}</h1>
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
30
|
+
<h1>{% if page.title %}{{ page.title | strip_html }}{% else %}<br/>{% endif %}</h1>
|
31
|
+
{% if page.subtitle %}
|
32
|
+
{% if include.type == "page" %}
|
33
|
+
<hr class="small">
|
34
|
+
<span class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</span>
|
35
|
+
{% else %}
|
36
|
+
<h2 class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</h2>
|
37
|
+
{% endif %}
|
38
|
+
{% endif %}
|
39
|
+
|
40
|
+
{% if include.type == "post" %}
|
41
|
+
<span class="post-meta">Posted on {{ page.date | date: date_format }}</span>
|
42
|
+
{% if page.last-updated %}
|
43
|
+
<span class="post-meta">
|
44
|
+
<span class="d-none d-md-inline middot">·</span>
|
45
|
+
Last updated {{ page.last-updated | date: date_format }}
|
46
|
+
</span>
|
47
|
+
{% endif %}
|
48
|
+
{% if page.readtime %}
|
49
|
+
{% include readtime.html %}
|
50
|
+
{% endif %}
|
44
51
|
{% endif %}
|
45
|
-
{% endif %}
|
46
52
|
</div>
|
47
53
|
</div>
|
48
54
|
</div>
|
@@ -55,22 +61,28 @@
|
|
55
61
|
<div class="row">
|
56
62
|
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
|
57
63
|
<div class="{{ include.type }}-heading">
|
58
|
-
<h1>{% if page.title %}{{ page.title }}{% else %}<br/>{% endif %}</h1>
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
64
|
+
<h1>{% if page.title %}{{ page.title | strip_html }}{% else %}<br/>{% endif %}</h1>
|
65
|
+
{% if page.subtitle %}
|
66
|
+
{% if include.type == "page" %}
|
67
|
+
<hr class="small">
|
68
|
+
<span class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</span>
|
69
|
+
{% else %}
|
70
|
+
<h2 class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</h2>
|
71
|
+
{% endif %}
|
72
|
+
{% endif %}
|
73
|
+
|
74
|
+
{% if include.type == "post" %}
|
75
|
+
<span class="post-meta">Posted on {{ page.date | date: date_format }}</span>
|
76
|
+
{% if page.last-updated %}
|
77
|
+
<span class="post-meta">
|
78
|
+
<span class="d-none d-md-inline middot">·</span>
|
79
|
+
Last updated {{ page.last-updated | date: date_format }}
|
80
|
+
</span>
|
81
|
+
{% endif %}
|
82
|
+
{% if page.readtime %}
|
83
|
+
{% include readtime.html %}
|
84
|
+
{% endif %}
|
72
85
|
{% endif %}
|
73
|
-
{% endif %}
|
74
86
|
</div>
|
75
87
|
</div>
|
76
88
|
</div>
|
data/_includes/nav.html
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
<nav class="navbar navbar-expand-
|
1
|
+
<nav class="navbar navbar-expand-xl navbar-light fixed-top navbar-custom {% if page.nav-short %}top-nav-short-permanent{% else %}top-nav-regular{% endif %}">
|
2
2
|
|
3
3
|
{%- if site.title-img -%}
|
4
|
-
<a class="navbar-brand navbar-brand-logo" href="{{ '' | absolute_url }}"><img alt="{{ site.title }} Logo" src="{{ site.title-img }}"/></a>
|
4
|
+
<a class="navbar-brand navbar-brand-logo" href="{{ '' | absolute_url }}"><img alt="{{ site.title }} Logo" src="{{ site.title-img | relative_url}}"/></a>
|
5
5
|
{%- elsif site.title -%}
|
6
6
|
<a class="navbar-brand" href="{{ '' | absolute_url }}">{{ site.title }}</a>
|
7
7
|
{%- endif -%}
|
@@ -16,7 +16,7 @@
|
|
16
16
|
{%- if link[1].first %}
|
17
17
|
<li class="nav-item dropdown">
|
18
18
|
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ link[0] }}</a>
|
19
|
-
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
|
19
|
+
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
|
20
20
|
{%- for childlink in link[1] -%}
|
21
21
|
{%- for linkparts in childlink %}
|
22
22
|
<a class="dropdown-item" href="{{ linkparts[1] | relative_url }}">{{ linkparts[0] }}</a>
|
@@ -30,17 +30,33 @@
|
|
30
30
|
</li>
|
31
31
|
{%- endif -%}
|
32
32
|
{%- endfor -%}
|
33
|
+
{% if site.post_search %}
|
34
|
+
<li class="nav-item">
|
35
|
+
<a class="nav-link" id="nav-search-link" href="#" title="Search">
|
36
|
+
<span id="nav-search-icon" class="fa fa-search"></span>
|
37
|
+
<span id="nav-search-text">Search</span>
|
38
|
+
</a>
|
39
|
+
</li>
|
40
|
+
{%- endif -%}
|
33
41
|
</ul>
|
34
42
|
</div>
|
35
43
|
|
36
|
-
{% if site.
|
44
|
+
{% if site.navbar-extra %}
|
45
|
+
{% for file in site.navbar-extra %}
|
46
|
+
{% include {{ file }} %}
|
47
|
+
{% endfor %}
|
48
|
+
{% endif %}
|
49
|
+
|
50
|
+
{% if site.avatar and page.show-avatar != false %}
|
37
51
|
<div class="avatar-container">
|
38
52
|
<div class="avatar-img-border">
|
39
53
|
<a href="{{ '' | absolute_url }}">
|
40
|
-
<img alt="
|
54
|
+
<img alt="Navigation bar avatar" class="avatar-img" src="{{ site.avatar | relative_url }}" />
|
41
55
|
</a>
|
42
56
|
</div>
|
43
57
|
</div>
|
44
58
|
{% endif %}
|
45
59
|
|
46
60
|
</nav>
|
61
|
+
|
62
|
+
{% include search.html %}
|
data/_includes/readtime.html
CHANGED
@@ -6,10 +6,10 @@
|
|
6
6
|
{% assign number = finalReadTime | round %}
|
7
7
|
{% if number >= 1 %}
|
8
8
|
{% assign yesReadTime = number | append: " minute read" %}
|
9
|
-
<span class="
|
9
|
+
<span class="post-meta"><span class="d-none d-md-inline middot">·</span> {{ yesReadTime }}</span>
|
10
10
|
{% elsif number < 1 %}
|
11
11
|
{% assign minReadTime = '< 1 minute read' %}
|
12
|
-
<span class="
|
12
|
+
<span class="post-meta"><span class="d-none d-md-inline middot">·</span> {{ minReadTime }}</span>
|
13
13
|
{% else %}
|
14
14
|
{% assign nilReadTime = number | replace:'0',' ' %}
|
15
15
|
{{ nilReadTime }}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
{% if site.post_search %}
|
2
|
+
|
3
|
+
<div id="beautifuljekyll-search-overlay">
|
4
|
+
|
5
|
+
<div id="nav-search-exit" title="Exit search">✕</div>
|
6
|
+
<input type="text" id="nav-search-input" placeholder="Search">
|
7
|
+
<ul id="search-results-container"></ul>
|
8
|
+
|
9
|
+
<script src="https://unpkg.com/simple-jekyll-search@latest/dest/simple-jekyll-search.min.js"></script>
|
10
|
+
<script>
|
11
|
+
var searchjson = '[ \
|
12
|
+
{% for post in site.posts %} \
|
13
|
+
{ \
|
14
|
+
"title" : "{% if post.title != "" %}{{ post.title | strip_html | escape }}{% else %}{{ post.excerpt | strip_html | escape | strip }}{%endif%}", \
|
15
|
+
"category" : "{{ post.tags | join: \', \' }}", \
|
16
|
+
"url" : "{{ site.baseurl }}{{ post.url }}", \
|
17
|
+
"date" : "{{ post.date | date: "%B %e, %Y" | default: "January 1, 1970" }}" \
|
18
|
+
}, \
|
19
|
+
{% endfor %} \
|
20
|
+
{% for page in site.html_pages %}{% if page.title != "{title}" and page.title != "404 - Page not found" %} \
|
21
|
+
{ \
|
22
|
+
"title" : "{% if page.title != "" %}{{ page.title | strip_html | escape }}{% else %}{{ page.excerpt | strip_html | escape | strip }}{% endif %}", \
|
23
|
+
"category" : "{% if page.tags %}{{ page.tags | join: \', \' }}{% else %}page{% endif %}", \
|
24
|
+
"url" : "{{ site.baseurl }}{{ page.url }}", \
|
25
|
+
"date" : "{{ page.date | date: '%B %e, %Y' | default: "January 1, 1970" }}" \
|
26
|
+
}{% unless forloop.last %},{% endunless %} \
|
27
|
+
{% endif %}{% endfor %} \
|
28
|
+
]';
|
29
|
+
searchjson = JSON.parse(searchjson);
|
30
|
+
|
31
|
+
var sjs = SimpleJekyllSearch({
|
32
|
+
searchInput: document.getElementById('nav-search-input'),
|
33
|
+
resultsContainer: document.getElementById('search-results-container'),
|
34
|
+
json: searchjson
|
35
|
+
});
|
36
|
+
</script>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
{% endif %}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
<ul class="list-inline text-center footer-links">
|
2
2
|
|
3
|
-
{%- if site.social-network-links.rss -%}
|
3
|
+
{%- if site.social-network-links.rss and site.rss-description -%}
|
4
4
|
<li class="list-inline-item">
|
5
5
|
<a href="{{ '/feed.xml' | relative_url }}" title="RSS">
|
6
6
|
<span class="fa-stack fa-lg" aria-hidden="true">
|
@@ -59,7 +59,7 @@
|
|
59
59
|
</a>
|
60
60
|
</li>
|
61
61
|
{%- endif -%}
|
62
|
-
|
62
|
+
|
63
63
|
{%- if site.social-network-links.github -%}
|
64
64
|
<li class="list-inline-item">
|
65
65
|
<a href="https://github.com/{{ site.social-network-links.github }}" title="GitHub">
|
@@ -230,7 +230,7 @@
|
|
230
230
|
|
231
231
|
{%- if site.social-network-links.mastodon -%}
|
232
232
|
<li class="list-inline-item">
|
233
|
-
<a href="https://{{ site.social-network-links.mastodon }}" title="Mastodon">
|
233
|
+
<a rel="me" href="https://{{ site.social-network-links.mastodon }}" title="Mastodon">
|
234
234
|
<span class="fa-stack fa-lg" aria-hidden="true">
|
235
235
|
<i class="fas fa-circle fa-stack-2x"></i>
|
236
236
|
<i class="fab fa-mastodon fa-stack-1x fa-inverse"></i>
|
@@ -248,7 +248,7 @@
|
|
248
248
|
<i class="fab fa-orcid fa-stack-1x fa-inverse"></i>
|
249
249
|
</span>
|
250
250
|
<span class="sr-only">ORCID</span>
|
251
|
-
|
251
|
+
</a>
|
252
252
|
</li>
|
253
253
|
{%- endif -%}
|
254
254
|
|
@@ -260,8 +260,84 @@
|
|
260
260
|
<i class="fa fa-graduation-cap fa-stack-1x fa-inverse"></i>
|
261
261
|
</span>
|
262
262
|
<span class="sr-only">Google Scholar</span>
|
263
|
+
</a>
|
264
|
+
</li>
|
265
|
+
{%- endif -%}
|
266
|
+
|
267
|
+
{%- if site.social-network-links.patreon -%}
|
268
|
+
<li class="list-inline-item">
|
269
|
+
<a href="https://patreon.com/{{ site.social-network-links.patreon }}" title="Patreon">
|
270
|
+
<span class="fa-stack fa-lg" aria-hidden="true">
|
271
|
+
<i class="fas fa-circle fa-stack-2x"></i>
|
272
|
+
<i class="fab fa-patreon fa-stack-1x fa-inverse"></i>
|
273
|
+
</span>
|
274
|
+
<span class="sr-only">Patreon</span>
|
275
|
+
</a>
|
276
|
+
</li>
|
277
|
+
{%- endif -%}
|
278
|
+
|
279
|
+
{%- if site.social-network-links.medium -%}
|
280
|
+
<li class="list-inline-item">
|
281
|
+
<a href="https://medium.com/@{{ site.social-network-links.medium }}" title="Medium">
|
282
|
+
<span class="fa-stack fa-lg" aria-hidden="true">
|
283
|
+
<i class="fas fa-circle fa-stack-2x"></i>
|
284
|
+
<i class="fab fa-medium fa-stack-1x fa-inverse"></i>
|
285
|
+
</span>
|
286
|
+
<span class="sr-only">Medium</span>
|
287
|
+
</a>
|
288
|
+
</li>
|
289
|
+
{%- endif -%}
|
290
|
+
|
291
|
+
{%- if site.social-network-links.itchio -%}
|
292
|
+
<li class="list-inline-item">
|
293
|
+
<a href="https://{{ site.social-network-links.itchio }}.itch.io/" title="Itchio">
|
294
|
+
<span class="fa-stack fa-lg" aria-hidden="true">
|
295
|
+
<i class="fas fa-circle fa-stack-2x"></i>
|
296
|
+
<i class="fab fa-itch-io fa-stack-1x fa-inverse"></i>
|
297
|
+
</span>
|
298
|
+
<span class="sr-only">Itchio</span>
|
299
|
+
</a>
|
300
|
+
</li>
|
301
|
+
{%- endif -%}
|
302
|
+
|
303
|
+
{%- if site.social-network-links.discord -%}
|
304
|
+
{% assign discord_start = site.social-network-links.discord | split: "/" | first -%}
|
305
|
+
{% unless discord_start == 'users' or discord_start == 'invite' -%}
|
306
|
+
{% assign discord_url_prefix = 'invite/' -%}
|
307
|
+
{% endunless -%}
|
308
|
+
<li class="list-inline-item">
|
309
|
+
<a href="https://discord.com/{{discord_url_prefix}}{{site.social-network-links.discord}}" title="Discord">
|
310
|
+
<span class="fa-stack fa-lg" aria-hidden="true">
|
311
|
+
<i class="fas fa-circle fa-stack-2x"></i>
|
312
|
+
<i class="fab fa-discord fa-stack-1x fa-inverse"></i>
|
313
|
+
</span>
|
314
|
+
<span class="sr-only">Discord</span>
|
315
|
+
</a>
|
316
|
+
</li>
|
317
|
+
{%- endif -%}
|
318
|
+
|
319
|
+
{%- if site.social-network-links.kaggle -%}
|
320
|
+
<li class="list-inline-item">
|
321
|
+
<a href="https://www.kaggle.com/{{ site.social-network-links.kaggle }}" title="Kaggle">
|
322
|
+
<span class="fa-stack fa-lg" aria-hidden="true">
|
323
|
+
<i class="fas fa-circle fa-stack-2x"></i>
|
324
|
+
<i class="fab fa-kaggle fa-stack-1x fa-inverse"></i>
|
325
|
+
</span>
|
326
|
+
<span class="sr-only">Kaggle</span>
|
263
327
|
</a>
|
264
328
|
</li>
|
265
|
-
|
329
|
+
{%- endif -%}
|
330
|
+
|
331
|
+
{%- if site.social-network-links.hackerrank -%}
|
332
|
+
<li class="list-inline-item">
|
333
|
+
<a href="https://www.hackerrank.com/{{ site.social-network-links.hackerrank }}" title="Hackerrank">
|
334
|
+
<span class="fa-stack fa-lg" aria-hidden="true">
|
335
|
+
<i class="fas fa-circle fa-stack-2x"></i>
|
336
|
+
<i class="fab fa-hackerrank fa-stack-1x fa-inverse"></i>
|
337
|
+
</span>
|
338
|
+
<span class="sr-only">Hackerrank</span>
|
339
|
+
</a>
|
340
|
+
</li>
|
341
|
+
{%- endif -%}
|
266
342
|
|
267
343
|
</ul>
|
data/_includes/social-share.html
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
<span class="sr-only">Share: </span>
|
12
12
|
|
13
13
|
{% if site.share-links-active.twitter %}
|
14
|
-
<a href="https://twitter.com/intent/tweet?text={{ page.title | url_encode }}&url={{ page.url | absolute_url | url_encode }}"
|
14
|
+
<a href="https://twitter.com/intent/tweet?text={{ page.title | strip_html | url_encode }}&url={{ page.url | absolute_url | url_encode }}"
|
15
15
|
class="btn btn-social-icon btn-twitter" title="Share on Twitter">
|
16
16
|
<span class="fab fa-fw fa-twitter" aria-hidden="true"></span>
|
17
17
|
<span class="sr-only">Twitter</span>
|
@@ -42,6 +42,14 @@
|
|
42
42
|
</a>
|
43
43
|
{% endif %}
|
44
44
|
|
45
|
+
{% if site.share-links-active.reddit %}
|
46
|
+
<a href="https://www.reddit.com/submit?url={{ page.url | absolute_url | url_encode }}"
|
47
|
+
class="btn btn-social-icon btn-reddit" title="Share on Reddit">
|
48
|
+
<span class="fab fa-fw fa-reddit" aria-hidden="true"></span>
|
49
|
+
<span class="sr-only">Reddit</span>
|
50
|
+
</a>
|
51
|
+
{% endif %}
|
52
|
+
|
45
53
|
</section>
|
46
54
|
|
47
55
|
{% endif %}
|
@@ -75,7 +75,7 @@
|
|
75
75
|
<!-- doing something a bit funky here because I want to be careful not to include JQuery twice! -->
|
76
76
|
<script>
|
77
77
|
if (typeof jQuery == 'undefined') {
|
78
|
-
document.write('<script src="
|
78
|
+
document.write('<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></scr' + 'ipt>');
|
79
79
|
}
|
80
80
|
</script>
|
81
81
|
<script src="{{ "/assets/js/staticman.js" | relative_url }}"></script>
|
data/_layouts/base.html
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
common-css:
|
3
3
|
- "/assets/css/bootstrap-social.css"
|
4
|
-
- "/assets/css/
|
4
|
+
- "/assets/css/beautifuljekyll.css"
|
5
5
|
common-ext-css:
|
6
6
|
- href: "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css"
|
7
7
|
sri: "sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh"
|
@@ -9,32 +9,32 @@ common-ext-css:
|
|
9
9
|
- "https://fonts.googleapis.com/css?family=Lora:400,700,400italic,700italic"
|
10
10
|
- "https://fonts.googleapis.com/css?family=Open+Sans:300italic,400italic,600italic,700italic,800italic,400,300,600,700,800"
|
11
11
|
common-ext-js:
|
12
|
-
- href: "https://code.jquery.com/jquery-3.
|
13
|
-
sri: "sha256-
|
12
|
+
- href: "https://code.jquery.com/jquery-3.5.1.slim.min.js"
|
13
|
+
sri: "sha256-4+XzXVhsDmqanXGHaHvgh1gMQKX40OUvDEBTu8JcmNs="
|
14
14
|
- href: "https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js"
|
15
15
|
sri: "sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo"
|
16
16
|
- href: "https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js"
|
17
17
|
sri: "sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6"
|
18
18
|
common-js:
|
19
|
-
- "/assets/js/
|
19
|
+
- "/assets/js/beautifuljekyll.js"
|
20
20
|
---
|
21
21
|
|
22
22
|
<!DOCTYPE html>
|
23
23
|
<html lang="{{ page.language | default: site.language | default: 'en' }}">
|
24
|
-
|
25
|
-
|
24
|
+
<!-- Beautiful Jekyll 6.0.1 | Copyright Dean Attali 2023 -->
|
25
|
+
{% include head.html %}
|
26
26
|
|
27
|
-
|
27
|
+
<body>
|
28
28
|
|
29
|
-
|
30
|
-
|
31
|
-
{% include nav.html %}
|
29
|
+
{% include gtm_body.html %}
|
32
30
|
|
33
|
-
|
31
|
+
{% include nav.html %}
|
34
32
|
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
33
|
+
{{ content }}
|
34
|
+
|
35
|
+
{% include footer.html %}
|
36
|
+
|
37
|
+
{% include footer-scripts.html %}
|
38
|
+
|
39
|
+
</body>
|
40
40
|
</html>
|
data/_layouts/default.html
CHANGED
@@ -4,6 +4,22 @@ layout: base
|
|
4
4
|
|
5
5
|
<div class="intro-header"></div>
|
6
6
|
|
7
|
-
<div role="main" class="container-md">
|
7
|
+
<div role="main" class="{% if page.full-width %} container-fluid {% else %} container-md {% endif %}">
|
8
|
+
{% if page.before-content %}
|
9
|
+
<div class="before-content">
|
10
|
+
{% for file in page.before-content %}
|
11
|
+
{% include {{ file }} %}
|
12
|
+
{% endfor %}
|
13
|
+
</div>
|
14
|
+
{% endif %}
|
15
|
+
|
8
16
|
{{ content }}
|
17
|
+
|
18
|
+
{% if page.after-content %}
|
19
|
+
<div class="after-content">
|
20
|
+
{% for file in page.after-content %}
|
21
|
+
{% include {{ file }} %}
|
22
|
+
{% endfor %}
|
23
|
+
</div>
|
24
|
+
{% endif %}
|
9
25
|
</div>
|