minimal-mistakes-jekyll 4.25.1 → 4.26.1

Sign up to get free protection for your applications and to get access to all the features.
data/_includes/seo.html CHANGED
@@ -1,24 +1,13 @@
1
1
  <!-- begin _includes/seo.html -->
2
- {%- if site.url -%}
3
- {%- assign seo_url = site.url | append: site.baseurl -%}
4
- {%- endif -%}
5
- {%- assign seo_url = seo_url | default: site.github.url -%}
2
+ {%- assign title_separator = site.title_separator | default: '-' -%}
6
3
 
7
- {% assign title_separator = site.title_separator | default: '-' | replace: '|', '&#124;' %}
4
+ {%- assign page_title = page.title | default: site.title | replace: '|', '&#124;' -%}
5
+ {%- assign seo_title = page_title | append: " " | append: title_separator | append: " " | append: site.title | replace: '|', '&#124;' -%}
8
6
 
9
- {%- if page.title -%}
10
- {%- assign seo_title = page.title | append: " " | append: title_separator | append: " " | append: site.title -%}
11
- {%- endif -%}
7
+ {%- assign page_title = page_title | markdownify | strip_html | strip_newlines | escape_once -%}
8
+ {%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
12
9
 
13
- {%- if seo_title -%}
14
- {%- assign seo_title = seo_title | markdownify | strip_html | strip_newlines | escape_once -%}
15
- {%- endif -%}
16
-
17
- {% if page.canonical_url %}
18
- {%- assign canonical_url = page.canonical_url %}
19
- {% else %}
20
- {%- assign canonical_url = page.url | replace: "index.html", "" | absolute_url %}
21
- {% endif %}
10
+ {%- assign canonical_url = page.canonical_url | default: page.url | replace: "/index.html", "/" | absolute_url %}
22
11
 
23
12
  {%- assign seo_description = page.description | default: page.excerpt | default: site.description -%}
24
13
  {%- if seo_description -%}
@@ -32,14 +21,9 @@
32
21
  {%- assign author_twitter = author.twitter | replace: "@", "" -%}
33
22
  {%- endif -%}
34
23
 
35
- {%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image | absolute_url -%}
36
- {%- assign page_large_image = page_large_image | escape -%}
37
-
38
- {%- assign page_teaser_image = page.header.teaser | default: site.og_image | absolute_url -%}
39
- {%- assign page_teaser_image = page_teaser_image | escape -%}
40
-
41
- {%- assign site_og_image = site.og_image | absolute_url -%}
42
- {%- assign site_og_image = site_og_image | escape -%}
24
+ {%- assign page_large_image = page.header.og_image | default: page.header.overlay_image | default: page.header.image | absolute_url | escape -%}
25
+ {%- assign page_teaser_image = page.header.teaser | default: site.og_image | absolute_url | escape -%}
26
+ {%- assign site_og_image = site.og_image | absolute_url | escape -%}
43
27
 
44
28
  {%- if page.date -%}
45
29
  {%- assign og_type = "article" -%}
@@ -47,7 +31,7 @@
47
31
  {%- assign og_type = "website" -%}
48
32
  {%- endif -%}
49
33
 
50
- <title>{{ seo_title | default: site.title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
34
+ <title>{{ seo_title }}{% if paginator %}{% unless paginator.page == 1 %} {{ title_separator }} {{ site.data.ui-text[site.locale].page | default: "Page" }} {{ paginator.page }}{% endunless %}{% endif %}</title>
51
35
  <meta name="description" content="{{ seo_description }}">
52
36
 
53
37
  {% if author.name %}
@@ -60,7 +44,7 @@
60
44
  <meta property="og:type" content="{{ og_type }}">
61
45
  <meta property="og:locale" content="{{ site.locale | replace: "-", "_" | default: "en_US" }}">
62
46
  <meta property="og:site_name" content="{{ site.title }}">
63
- <meta property="og:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
47
+ <meta property="og:title" content="{{ page_title }}">
64
48
  <meta property="og:url" content="{{ canonical_url }}">
65
49
 
66
50
  {% if seo_description %}
@@ -75,7 +59,7 @@
75
59
 
76
60
  {% if site.twitter.username %}
77
61
  <meta name="twitter:site" content="@{{ site.twitter.username | replace: "@", "" }}">
78
- <meta name="twitter:title" content="{{ page.title | default: site.title | markdownify | strip_html | strip_newlines | escape_once }}">
62
+ <meta name="twitter:title" content="{{ page_title }}">
79
63
  <meta name="twitter:description" content="{{ seo_description }}">
80
64
  <meta name="twitter:url" content="{{ canonical_url }}">
81
65
 
@@ -121,21 +105,9 @@
121
105
  <link rel="next" href="{{ paginator.next_page_path | absolute_url }}">
122
106
  {% endif %}
123
107
 
124
- <script type="application/ld+json">
125
- {
126
- "@context": "https://schema.org",
127
- {% if site.social.type == "Organization" %}
128
- "@type": "Organization",
129
- "url": {{ '/' | absolute_url | jsonify }}{% if site.og_image %},
130
- "logo": {{ site_og_image | jsonify }}{% endif %}
131
- {% else %}
132
- "@type": "Person",
133
- "name": {{ site.social.name | default: site.name | jsonify }},
134
- "url": {{ '/' | absolute_url |jsonify }}{% if site.social.links %},
135
- "sameAs": {{ site.social.links | jsonify }}{% endif %}
136
- {% endif %}
137
- }
138
- </script>
108
+ {% if page.url == '/' %}
109
+ {% include schema.html %}
110
+ {% endif %}
139
111
 
140
112
  {% if site.google_site_verification %}
141
113
  <meta name="google-site-verification" content="{{ site.google_site_verification }}" />
@@ -23,4 +23,4 @@ layout: default
23
23
  {% endunless %}
24
24
  {{ content }}
25
25
  </div>
26
- </div>
26
+ </div>
@@ -4,40 +4,4 @@ layout: archive
4
4
 
5
5
  {{ content }}
6
6
 
7
- {% assign categories_max = 0 %}
8
- {% for category in site.categories %}
9
- {% if category[1].size > categories_max %}
10
- {% assign categories_max = category[1].size %}
11
- {% endif %}
12
- {% endfor %}
13
-
14
- <ul class="taxonomy__index">
15
- {% for i in (1..categories_max) reversed %}
16
- {% for category in site.categories %}
17
- {% if category[1].size == i %}
18
- <li>
19
- <a href="#{{ category[0] | slugify }}">
20
- <strong>{{ category[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
21
- </a>
22
- </li>
23
- {% endif %}
24
- {% endfor %}
25
- {% endfor %}
26
- </ul>
27
-
28
- {% assign entries_layout = page.entries_layout | default: 'list' %}
29
- {% for i in (1..categories_max) reversed %}
30
- {% for category in site.categories %}
31
- {% if category[1].size == i %}
32
- <section id="{{ category[0] | slugify }}" class="taxonomy__section">
33
- <h2 class="archive__subtitle">{{ category[0] }}</h2>
34
- <div class="entries-{{ entries_layout }}">
35
- {% for post in category.last %}
36
- {% include archive-single.html type=entries_layout %}
37
- {% endfor %}
38
- </div>
39
- <a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} &uarr;</a>
40
- </section>
41
- {% endif %}
42
- {% endfor %}
43
- {% endfor %}
7
+ {% include posts-taxonomy.html taxonomies=site.categories %}
data/_layouts/single.html CHANGED
@@ -21,8 +21,8 @@ layout: default
21
21
  <div id="main" role="main">
22
22
  {% include sidebar.html %}
23
23
 
24
- <article class="page h-entry" itemscope itemtype="https://schema.org/CreativeWork">
25
- {% if page.title %}<meta itemprop="headline" content="{{ page.title | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
24
+ <article class="page" itemscope itemtype="https://schema.org/CreativeWork">
25
+ {% if page.title %}<meta itemprop="headline" content="{{ page.title | replace: '|', '&#124;' | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
26
26
  {% if page.excerpt %}<meta itemprop="description" content="{{ page.excerpt | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
27
27
  {% if page.date %}<meta itemprop="datePublished" content="{{ page.date | date_to_xmlschema }}">{% endif %}
28
28
  {% if page.last_modified_at %}<meta itemprop="dateModified" content="{{ page.last_modified_at | date_to_xmlschema }}">{% endif %}
@@ -30,14 +30,16 @@ layout: default
30
30
  <div class="page__inner-wrap">
31
31
  {% unless page.header.overlay_color or page.header.overlay_image %}
32
32
  <header>
33
- {% if page.title %}<h1 id="page-title" class="page__title p-name" itemprop="headline">
34
- <a href="{{ page.url | absolute_url }}" class="u-url" itemprop="url">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</a>
35
- </h1>{% endif %}
33
+ {% if page.title -%}
34
+ <h1 id="page-title" class="page__title" itemprop="headline">
35
+ <a href="{{ page.url | absolute_url }}" itemprop="url">{{ page.title | markdownify | remove: "<p>" | remove: "</p>" }}</a>
36
+ </h1>
37
+ {%- endif %}
36
38
  {% include page__meta.html %}
37
39
  </header>
38
40
  {% endunless %}
39
41
 
40
- <section class="page__content e-content" itemprop="text">
42
+ <section class="page__content" itemprop="text">
41
43
  {% if page.toc %}
42
44
  <aside class="sidebar__right {% if page.toc_sticky %}sticky{% endif %}">
43
45
  <nav class="toc">
data/_layouts/tags.html CHANGED
@@ -4,40 +4,4 @@ layout: archive
4
4
 
5
5
  {{ content }}
6
6
 
7
- {% assign tags_max = 0 %}
8
- {% for tag in site.tags %}
9
- {% if tag[1].size > tags_max %}
10
- {% assign tags_max = tag[1].size %}
11
- {% endif %}
12
- {% endfor %}
13
-
14
- <ul class="taxonomy__index">
15
- {% for i in (1..tags_max) reversed %}
16
- {% for tag in site.tags %}
17
- {% if tag[1].size == i %}
18
- <li>
19
- <a href="#{{ tag[0] | slugify }}">
20
- <strong>{{ tag[0] }}</strong> <span class="taxonomy__count">{{ i }}</span>
21
- </a>
22
- </li>
23
- {% endif %}
24
- {% endfor %}
25
- {% endfor %}
26
- </ul>
27
-
28
- {% assign entries_layout = page.entries_layout | default: 'list' %}
29
- {% for i in (1..tags_max) reversed %}
30
- {% for tag in site.tags %}
31
- {% if tag[1].size == i %}
32
- <section id="{{ tag[0] | slugify | downcase }}" class="taxonomy__section">
33
- <h2 class="archive__subtitle">{{ tag[0] }}</h2>
34
- <div class="entries-{{ entries_layout }}">
35
- {% for post in tag.last %}
36
- {% include archive-single.html type=entries_layout %}
37
- {% endfor %}
38
- </div>
39
- <a href="#page-title" class="back-to-top">{{ site.data.ui-text[site.locale].back_to_top | default: 'Back to Top' }} &uarr;</a>
40
- </section>
41
- {% endif %}
42
- {% endfor %}
43
- {% endfor %}
7
+ {% include posts-taxonomy.html taxonomies=site.tags %}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Minimal Mistakes Jekyll Theme 4.25.1 by Michael Rose
2
+ * Minimal Mistakes Jekyll Theme 4.26.1 by Michael Rose
3
3
  * Copyright 2013-2024 Michael Rose - mademistakes.com | @mmistakes
4
4
  * Free for personal and commercial use under the MIT license
5
5
  * https://github.com/mmistakes/minimal-mistakes/blob/master/LICENSE
@@ -211,118 +211,35 @@ body:hover .visually-hidden button {
211
211
  color: $text-color;
212
212
  }
213
213
 
214
- .fa-behance,
215
- .fa-behance-square {
216
- color: $behance-color;
217
- }
218
-
219
- .fa-bitbucket {
220
- color: $bitbucket-color;
221
- }
222
-
223
- .fa-dribbble,
224
- .fa-dribble-square {
225
- color: $dribbble-color;
226
- }
227
-
228
- .fa-facebook,
229
- .fa-facebook-square,
230
- .fa-facebook-f {
231
- color: $facebook-color;
232
- }
233
-
234
- .fa-flickr {
235
- color: $flickr-color;
236
- }
237
-
238
- .fa-foursquare {
239
- color: $foursquare-color;
240
- }
241
-
242
- .fa-github,
243
- .fa-github-alt,
244
- .fa-github-square {
245
- color: $github-color;
246
- }
247
-
248
- .fa-gitlab {
249
- color: $gitlab-color;
250
- }
251
-
252
- .fa-instagram {
253
- color: $instagram-color;
254
- }
255
-
256
- .fa-keybase {
257
- color: $keybase-color;
258
- }
259
-
260
- .fa-lastfm,
261
- .fa-lastfm-square {
262
- color: $lastfm-color;
263
- }
264
-
265
- .fa-linkedin,
266
- .fa-linkedin-in {
267
- color: $linkedin-color;
268
- }
269
-
270
- .fa-mastodon,
271
- .fa-mastodon-square {
272
- color: $mastodon-color;
273
- }
274
-
275
- .fa-pinterest,
276
- .fa-pinterest-p,
277
- .fa-pinterest-square {
278
- color: $pinterest-color;
279
- }
280
-
281
- .fa-reddit {
282
- color: $reddit-color;
283
- }
284
-
285
- .fa-rss,
286
- .fa-rss-square {
287
- color: $rss-color;
288
- }
289
-
290
- .fa-soundcloud {
291
- color: $soundcloud-color;
292
- }
293
-
294
- .fa-stack-exchange,
295
- .fa-stack-overflow {
296
- color: $stackoverflow-color;
297
- }
298
-
299
- .fa-tumblr,
300
- .fa-tumblr-square {
301
- color: $tumblr-color;
302
- }
303
-
304
- .fa-twitter,
305
- .fa-twitter-square {
306
- color: $twitter-color;
307
- }
308
-
309
- .fa-vimeo,
310
- .fa-vimeo-square,
311
- .fa-vimeo-v {
312
- color: $vimeo-color;
313
- }
314
-
315
- .fa-vine {
316
- color: $vine-color;
317
- }
318
-
319
- .fa-youtube {
320
- color: $youtube-color;
321
- }
322
-
323
- .fa-xing,
324
- .fa-xing-square {
325
- color: $xing-color;
214
+ @each $color, $icons in (
215
+ $behance-color: ".fa-behance, .fa-behance-square",
216
+ $bitbucket-color: ".fa-bitbucket",
217
+ $dribbble-color: ".fa-dribbble, .fa-dribbble-square",
218
+ $facebook-color: ".fa-facebook, .fa-facebook-square, .fa-facebook-f",
219
+ $flickr-color: ".fa-flickr",
220
+ $foursquare-color: ".fa-foursquare",
221
+ $github-color: ".fa-github, .fa-github-alt, .fa-github-square",
222
+ $gitlab-color: ".fa-gitlab",
223
+ $instagram-color: ".fa-instagram",
224
+ $keybase-color: ".fa-keybase",
225
+ $lastfm-color: ".fa-lastfm, .fa-lastfm-square",
226
+ $linkedin-color: ".fa-linkedin, .fa-linkedin-in",
227
+ $mastodon-color: ".fa-mastodon, .fa-mastodon-square",
228
+ $pinterest-color: ".fa-pinterest, .fa-pinterest-p, .fa-pinterest-square",
229
+ $reddit-color: ".fa-reddit",
230
+ $rss-color: ".fa-rss, .fa-rss-square",
231
+ $soundcloud-color: ".fa-soundcloud",
232
+ $stackoverflow-color: ".fa-stack-exchange, .fa-stack-overflow",
233
+ $tumblr-color: ".fa-tumblr, .fa-tumblr-square",
234
+ $twitter-color: ".fa-twitter, .fa-twitter-square",
235
+ $vimeo-color: ".fa-vimeo, .fa-vimeo-square, .fa-vimeo-v",
236
+ $vine-color: ".fa-vine",
237
+ $xing-color: ".fa-xing, .fa-xing-square",
238
+ $youtube-color: ".fa-youtube",
239
+ ) {
240
+ #{$icons} {
241
+ color: $color;
242
+ }
326
243
  }
327
244
  }
328
245
 
@@ -591,3 +508,77 @@ a.reversefootnote {
591
508
  position: static;
592
509
  }
593
510
  }
511
+
512
+ /*
513
+ Copy <pre> block to clipboard
514
+ ========================================================================== */
515
+
516
+ // a <textarea> to hold text for document.execCommand("copy")
517
+ .clipboard-helper {
518
+ // Prevent zooming on iOS
519
+ font-size: 12pt !important;
520
+ border: 0 !important;
521
+ padding: 0 !important;
522
+ margin: 0 !important;
523
+ outline: none !important;
524
+ position: absolute;
525
+ }
526
+
527
+ pre {
528
+ &.highlight .clipboard-copy-button {
529
+ color: #ffffca;
530
+ }
531
+
532
+ .clipboard-copy-button {
533
+ display: block;
534
+ position: absolute;
535
+ top: 0.6em;
536
+ right: 0.5em;
537
+ width: 1.8em;
538
+ height: 1.5em;
539
+ z-index: 1;
540
+ background: none;
541
+ border: none;
542
+ outline: none;
543
+ border-radius: 0.1em;
544
+ padding: 0.2em 0.5em;
545
+ opacity: 0.4;
546
+ transition: color 0.25s linear -0.25s, opacity 0.25s linear;
547
+
548
+ &::before {
549
+ content: '';
550
+ position: absolute;
551
+ top: 0;
552
+ right: 0;
553
+ bottom: 0;
554
+ left: 0;
555
+ z-index: 2;
556
+ }
557
+
558
+ i {
559
+ position: absolute;
560
+ top: 0.25em;
561
+ right: 0.25em;
562
+ &.copied {
563
+ opacity: 0;
564
+ }
565
+ }
566
+
567
+ &.copied i {
568
+ opacity: 0;
569
+ &.copied {
570
+ opacity: 1;
571
+ }
572
+ }
573
+
574
+ @at-root {
575
+ .no-copy & {
576
+ display: none;
577
+ }
578
+ }
579
+ }
580
+
581
+ &:hover .clipboard-copy-button {
582
+ opacity: 1;
583
+ }
584
+ }