Merge upstream

This commit is contained in:
2022-10-10 12:47:38 -04:00
parent f4ebff5cda
commit fd4e05cc7d
80 changed files with 1685 additions and 3017 deletions

View File

@@ -1,6 +1,8 @@
{% if page.comments %}
{% if page.comments %}
{% include disqus.html %}
{% include fb-comment.html %}
{% include staticman-comments.html %}
{% include utterances-comment.html %}
{% endif %}
{% include giscus-comment.html %}
{% include commentbox.html %}
{% endif %}

View File

@@ -19,6 +19,12 @@
{% endfor %}
{% endif %}
{% if site.site-js %}
{% for js in site.site-js %}
<script src="{{ js | relative_url }}"></script>
{% endfor %}
{% endif %}
{% if page.ext-js %}
{% for js in page.ext-js %}
{% include ext-js.html js=js %}

View File

@@ -5,7 +5,9 @@
{% include social-networks-links.html %}
{% if page.footer-extra %}
<div class="footer-custom-content">
{% include {{ page.footer-extra }} %}
{% for file in page.footer-extra %}
{% include {{ file }} %}
{% endfor %}
</div>
{% endif %}
<p class="copyright text-muted">
@@ -17,7 +19,9 @@
{% if site.url-pretty %}
&nbsp;&bull;&nbsp;
<a href="{{ '' | absolute_url }}">{{ site.url-pretty }}</a>
<span class="author-site">
<a href="{% if site.url-canonical %}{{ site.url-canonical }}{% else %}{{ '' | absolute_url }}{% endif %}">{{ site.url-pretty }}</a>
</span>
{% endif %}
{% if site.matomo %}
@@ -26,12 +30,17 @@
<a href="http://{{- site.matomo.uri -}}/index.php?module=CoreAdminHome&action=optOut" target="_blank" class="text_muted">Do-not-Track</a>
{% endif %}
{% endif%}
{% if site.edit_page_button and site.github.repository_url %}
&nbsp;&bull;&nbsp;
<a title="Edit this page on GitHub" href="{{ site.github.repository_url }}/edit/{{ site.github.source.branch }}/{{ page.path }}" class="text_muted">Edit page</a>
{% endif%}
</p>
<!-- Please don't remove this, keep my open source work credited :) -->
<p class="theme-by text-muted">
Theme by
<a href="https://beautifuljekyll.com">beautiful-jekyll</a>
</p>
{% unless site.remove-ads %}<p class="theme-by text-muted">
Powered by
<a href="https://beautifuljekyll.com">Beautiful Jekyll</a>
</p>{% endunless %}
</div>
</div>
</div>

View File

@@ -2,21 +2,51 @@
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>{% if page.use-site-title %}{{ site.title }} {{ site.title-separator | default: '-' }} {{ site.description }}{% elsif page.title %}{{ page.title }}{% else %}{{ site.title }}{% endif %}</title>
{% capture title %}
{%- if page.share-title -%}
{{ page.share-title | strip_html | xml_escape }}
{%- elsif page.title -%}
{{ page.title | strip_html | xml_escape }}
{%- else -%}
{{ site.title | strip_html | xml_escape }}
{%- endif -%}
{% endcapture %}
{% capture description %}
{%- if page.share-description -%}
{{ page.share-description | strip_html | xml_escape }}
{%- elsif page.subtitle -%}
{{ page.subtitle | strip_html | xml_escape }}
{%- else -%}
{%- assign excerpt_length = site.excerpt_length | default: 50 -%}
{{ page.content | strip_html | xml_escape | truncatewords: excerpt_length | strip }}
{%- endif -%}
{% endcapture %}
<title>{{ title }}</title>
{% if site.author %}
<meta name="author" content="{{ site.author }}">
{% endif %}
{% if page.subtitle %}
<meta name="description" content="{{ page.subtitle }}">
<meta name="description" content="{{ description }}">
{% if site.mobile-theme-col %}
<meta name="theme-color" content="{{ site.mobile-theme-col }}">
{% endif %}
<link rel="alternate" type="application/rss+xml" title="{{ site.title | default: 'Untitled' }} {{ site.title-separator | default: '-' }} {{ site.description }}" href="{{ '/feed.xml' | absolute_url }}">
{% if site.keywords %}
<meta name="keywords" content="{{ site.keywords }}">
{% endif %}
{% if site.rss-description %}
<link rel="alternate" type="application/rss+xml" title="{{ site.title }}" href="{{ '/feed.xml' | absolute_url }}">
{% endif %}
{% include gtag.html %}
{% include gtm_head.html %}
{% include google_analytics.html %}
{% include cloudflare_analytics.html %}
{% if layout.common-ext-css %}
{% for css in layout.common-ext-css %}
@@ -30,80 +60,69 @@
{% endfor %}
{% endif %}
{% if site.site-css %}
{% for css in site.site-css %}
<link rel="stylesheet" href="{{ css | relative_url }}">
{% endfor %}
{% endif %}
{% if page.ext-css %}
{% for css in page.ext-css %}
{% include ext-css.html css=css %}
{% endfor %}
{% endif %}
{% if page.css %}
{% for css in page.css %}
<link rel="stylesheet" href="{{ css | relative_url }}">
{% endfor %}
{% endif %}
<!-- Facebook OpenGraph tags -->
{% if site.fb_app_id %}
<meta property="fb:app_id" content="{{ site.fb_app_id }}">
{% endif %}
{% if page.meta-title %}
<meta property="og:title" content="{{ page.meta-title }}">
{% elsif page.title %}
<meta property="og:title" content="{{ page.title }}">
{% elsif site.title %}
<meta property="og:title" content="{{ site.title }}">
{% if site.title %}
<meta property="og:site_name" content="{{ site.title }}">
{% endif %}
{% if page.meta-description %}
<meta property="og:description" content="{{ page.meta-description }}">
{% elsif page.subtitle %}
<meta property="og:description" content="{{ page.subtitle }}">
{% else %}
<meta property="og:description" content="{{ page.content | strip_html | xml_escape | truncatewords: 50 }}">
{% endif %}
{%- capture img -%}
{%- if page.share-img -%}
{{ page.share-img }}
{%- elsif page.cover-img -%}
{%- if page.cover-img.first -%}
{{ page.cover-img[0].first.first }}
{%- else -%}
{{ page.cover-img }}
{%- endif -%}
{%- elsif page.thumbnail-img -%}
{{ page.thumbnail-img }}
{%- elsif site.avatar -%}
{{ site.avatar }}
{% endif %}
{%- endcapture -%}
{%- assign img=img | strip -%}
<meta property="og:title" content="{{ title }}">
<meta property="og:description" content="{{ description }}">
{% if img != "" %}
<meta property="og:image" content="{{ img | absolute_url }}">
{% endif %}
{% if page.id %}
<meta property="og:type" content="article">
<meta property="og:article:author" content="{{ site.author }}">
<meta property="og:article:published_time" content="{{ page.date | date_to_xmlschema }}">
{% else %}
<meta property="og:type" content="website">
{% endif %}
{% if page.id %}
<meta property="og:url" content="{{ page.url | absolute_url }}">
<link rel="canonical" href="{{ page.url | absolute_url }}">
{% else %}
<meta property="og:type" content="website">
<meta property="og:url" content="{{ page.url | absolute_url | strip_index }}">
<link rel="canonical" href="{{ page.url | absolute_url | strip_index }}">
{% endif %}
{%- capture shareimg -%}
{% if page.share-img %}
{{ page.share-img }}
{% elsif page.cover-img %}
{% if page.cover-img.first %}
{{ page.cover-img[0].first.first }}
{% else %}
{{ page.cover-img }}
{% endif %}
{% elsif page.thumbnail-img %}
{{ page.thumbnail-img }}
{% elsif site.avatar %}
{{ site.avatar }}
{% endif %}
{% endcapture %}
{% assign shareimg=shareimg | strip %}
{% if shareimg != "" %}
<meta property="og:image" content="{{ shareimg | absolute_url }}">
{% endif %}
<!-- Twitter summary cards -->
{% if shareimg != "" and shareimg != site.avatar %}
{% if img != "" and img != site.avatar %}
<meta name="twitter:card" content="summary_large_image">
{% else %}
<meta name="twitter:card" content="summary">
@@ -111,33 +130,23 @@
<meta name="twitter:site" content="@{{ site.social-network-links.twitter }}">
<meta name="twitter:creator" content="@{{ site.social-network-links.twitter }}">
{% if page.meta-title %}
<meta name="twitter:title" content="{{ page.meta-title }}">
{% elsif page.title %}
<meta name="twitter:title" content="{{ page.title }}">
{% else %}
<meta name="twitter:title" content="{{ site.title }}">
<meta property="twitter:title" content="{{ title }}">
<meta property="twitter:description" content="{{ description }}">
{% if img != "" %}
<meta name="twitter:image" content="{{ img | absolute_url }}">
{% endif %}
{% if page.meta-description %}
<meta name="twitter:description" content="{{ page.meta-description }}">
{% elsif page.subtitle %}
<meta name="twitter:description" content="{{ page.subtitle }}">
{% else %}
<meta name="twitter:description" content="{{ page.content | strip_html | xml_escape | truncatewords: 50 }}">
{% endif %}
{% if shareimg != "" %}
<meta name="twitter:image" content="{{ shareimg | absolute_url }}">
{% endif %}
{% if site.matomo %}
{% include matomo.html %}
{% endif %}
{% if page.comments and site.staticman.repository and site.staticman.branch %}
<!-- Staticman -->
<link rel="stylesheet" href="{{ "/assets/css/staticman.css" | relative_url }}">
{% endif %}
{% if page.head-extra %}
{% for file in page.head-extra %}
{% include {{ file }} %}
{% endfor %}
{% endif %}
</head>

View File

@@ -27,22 +27,28 @@
<div class="row">
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
<div class="{{ include.type }}-heading">
<h1>{% if page.title %}{{ page.title }}{% else %}<br/>{% endif %}</h1>
{% if page.subtitle %}
{% if include.type == "page" %}
<hr class="small">
<span class="{{ include.type }}-subheading">{{ page.subtitle }}</span>
{% else %}
<h2 class="{{ include.type }}-subheading">{{ page.subtitle }}</h2>
{% endif %}
{% endif %}
{% if include.type == "post" %}
<span class="post-meta">Posted on {{ page.date | date: date_format }}</span>
{% if page.readtime %}
{% include readtime.html %}
<h1>{% if page.title %}{{ page.title | strip_html }}{% else %}<br/>{% endif %}</h1>
{% if page.subtitle %}
{% if include.type == "page" %}
<hr class="small">
<span class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</span>
{% else %}
<h2 class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</h2>
{% endif %}
{% endif %}
{% if include.type == "post" %}
<span class="post-meta">Posted on {{ page.date | date: date_format }}</span>
{% if page.last-updated %}
<span class="post-meta">
<span class="d-none d-md-inline middot">&middot;</span>
Last updated {{ page.last-updated | date: date_format }}
</span>
{% endif %}
{% if page.readtime %}
{% include readtime.html %}
{% endif %}
{% endif %}
{% endif %}
</div>
</div>
</div>
@@ -55,22 +61,28 @@
<div class="row">
<div class="col-xl-8 offset-xl-2 col-lg-10 offset-lg-1">
<div class="{{ include.type }}-heading">
<h1>{% if page.title %}{{ page.title }}{% else %}<br/>{% endif %}</h1>
{% if page.subtitle %}
{% if include.type == "page" %}
<hr class="small">
<span class="{{ include.type }}-subheading">{{ page.subtitle }}</span>
{% else %}
<h2 class="{{ include.type }}-subheading">{{ page.subtitle }}</h2>
{% endif %}
{% endif %}
{% if include.type == "post" %}
<span class="post-meta">Posted on {{ page.date | date: date_format }}</span>
{% if page.readtime %}
{% include readtime.html %}
<h1>{% if page.title %}{{ page.title | strip_html }}{% else %}<br/>{% endif %}</h1>
{% if page.subtitle %}
{% if include.type == "page" %}
<hr class="small">
<span class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</span>
{% else %}
<h2 class="{{ include.type }}-subheading">{{ page.subtitle | strip_html }}</h2>
{% endif %}
{% endif %}
{% if include.type == "post" %}
<span class="post-meta">Posted on {{ page.date | date: date_format }}</span>
{% if page.last-updated %}
<span class="post-meta">
<span class="d-none d-md-inline middot">&middot;</span>
Last updated {{ page.last-updated | date: date_format }}
</span>
{% endif %}
{% if page.readtime %}
{% include readtime.html %}
{% endif %}
{% endif %}
{% endif %}
</div>
</div>
</div>

View File

@@ -1,7 +1,7 @@
<nav class="navbar navbar-expand-md navbar-light fixed-top navbar-custom {% if page.nav-short %}top-nav-short-permanent{% endif %}">
<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 %}">
{%- if site.title-img -%}
<a class="navbar-brand navbar-brand-logo" href="{{ '' | absolute_url }}"><img alt="{{ site.title }} Logo" src="{{ site.title-img }}"/></a>
<a class="navbar-brand navbar-brand-logo" href="{{ '' | absolute_url }}"><img alt="{{ site.title }} Logo" src="{{ site.title-img | relative_url}}"/></a>
{%- elsif site.title -%}
<a class="navbar-brand" href="{{ '' | absolute_url }}">{{ site.title }}</a>
{%- endif -%}
@@ -16,7 +16,7 @@
{%- if link[1].first %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">{{ link[0] }}</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<div class="dropdown-menu dropdown-menu-right" aria-labelledby="navbarDropdown">
{%- for childlink in link[1] -%}
{%- for linkparts in childlink %}
<a class="dropdown-item" href="{{ linkparts[1] | relative_url }}">{{ linkparts[0] }}</a>
@@ -30,17 +30,33 @@
</li>
{%- endif -%}
{%- endfor -%}
{% if site.post_search %}
<li class="nav-item">
<a class="nav-link" id="nav-search-link" href="#" title="Search">
<span id="nav-search-icon" class="fa fa-search"></span>
<span id="nav-search-text">Search</span>
</a>
</li>
{%- endif -%}
</ul>
</div>
{% if site.avatar and (layout.show-avatar or page.show-avatar) %}
{% if site.navbar-extra %}
{% for file in site.navbar-extra %}
{% include {{ file }} %}
{% endfor %}
{% endif %}
{% if site.avatar and page.show-avatar != false %}
<div class="avatar-container">
<div class="avatar-img-border">
<a href="{{ '' | absolute_url }}">
<img alt="Navbar avatar" class="avatar-img" src="{{ site.avatar | relative_url }}" />
<img alt="Navigation bar avatar" class="avatar-img" src="{{ site.avatar | relative_url }}" />
</a>
</div>
</div>
{% endif %}
</nav>
{% include search.html %}

View File

@@ -6,10 +6,10 @@
{% assign number = finalReadTime | round %}
{% if number >= 1 %}
{% assign yesReadTime = number | append: " minute read" %}
<span class="reader-time post-meta"><span class="d-none d-md-inline middot">&middot;</span> {{ yesReadTime }}</span>
<span class="post-meta"><span class="d-none d-md-inline middot">&middot;</span> {{ yesReadTime }}</span>
{% elsif number < 1 %}
{% assign minReadTime = '&lt; 1 minute read' %}
<span class="reader-time post-meta"><span class="d-none d-md-inline middot">&middot;</span> {{ minReadTime }}</span>
<span class="post-meta"><span class="d-none d-md-inline middot">&middot;</span> {{ minReadTime }}</span>
{% else %}
{% assign nilReadTime = number | replace:'0',' ' %}
{{ nilReadTime }}

View File

@@ -1,6 +1,6 @@
<ul class="list-inline text-center footer-links">
{%- if site.social-network-links.rss -%}
{%- if site.social-network-links.rss and site.rss-description -%}
<li class="list-inline-item">
<a href="{{ '/feed.xml' | relative_url }}" title="RSS">
<span class="fa-stack fa-lg" aria-hidden="true">
@@ -59,7 +59,7 @@
</a>
</li>
{%- endif -%}
{%- if site.social-network-links.github -%}
<li class="list-inline-item">
<a href="https://github.com/{{ site.social-network-links.github }}" title="GitHub">
@@ -230,7 +230,7 @@
{%- if site.social-network-links.mastodon -%}
<li class="list-inline-item">
<a href="https://{{ site.social-network-links.mastodon }}" title="Mastodon">
<a rel="me" href="https://{{ site.social-network-links.mastodon }}" title="Mastodon">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-mastodon fa-stack-1x fa-inverse"></i>
@@ -248,7 +248,7 @@
<i class="fab fa-orcid fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">ORCID</span>
</a>
</a>
</li>
{%- endif -%}
@@ -260,8 +260,80 @@
<i class="fa fa-graduation-cap fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">Google Scholar</span>
</a>
</li>
{%- endif -%}
{%- if site.social-network-links.patreon -%}
<li class="list-inline-item">
<a href="https://patreon.com/{{ site.social-network-links.patreon }}" title="Patreon">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-patreon fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">Patreon</span>
</a>
</li>
{%- endif -%}
{%- if site.social-network-links.medium -%}
<li class="list-inline-item">
<a href="https://medium.com/@{{ site.social-network-links.medium }}" title="Medium">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-medium fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">Medium</span>
</a>
</li>
{%- endif -%}
{%- if site.social-network-links.itchio -%}
<li class="list-inline-item">
<a href="https://{{ site.social-network-links.itchio }}.itch.io/" title="Itchio">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-itch-io fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">Itchio</span>
</a>
</li>
{%- endif -%}
{%- endif -%}
{%- if site.social-network-links.discord -%}
<li class="list-inline-item">
<a href="https://discord.com/{{ site.social-network-links.discord }}" title="Discord">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-discord fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">Discord</span>
</a>
</li>
{%- endif -%}
{%- if site.social-network-links.kaggle -%}
<li class="list-inline-item">
<a href="https://www.kaggle.com/{{ site.social-network-links.kaggle }}" title="Kaggle">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-kaggle fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">Kaggle</span>
</a>
</li>
{%- endif -%}
{%- if site.social-network-links.hackerrank -%}
<li class="list-inline-item">
<a href="https://www.hackerrank.com/{{ site.social-network-links.hackerrank }}" title="Hackerrank">
<span class="fa-stack fa-lg" aria-hidden="true">
<i class="fas fa-circle fa-stack-2x"></i>
<i class="fab fa-hackerrank fa-stack-1x fa-inverse"></i>
</span>
<span class="sr-only">Hackerrank</span>
</a>
</li>
{%- endif -%}
</ul>

View File

@@ -11,7 +11,7 @@
<span class="sr-only">Share: </span>
{% if site.share-links-active.twitter %}
<a href="https://twitter.com/intent/tweet?text={{ page.title | url_encode }}&url={{ page.url | absolute_url | url_encode }}"
<a href="https://twitter.com/intent/tweet?text={{ page.title | strip_html | url_encode }}&url={{ page.url | absolute_url | url_encode }}"
class="btn btn-social-icon btn-twitter" title="Share on Twitter">
<span class="fab fa-fw fa-twitter" aria-hidden="true"></span>
<span class="sr-only">Twitter</span>
@@ -42,6 +42,14 @@
</a>
{% endif %}
{% if site.share-links-active.reddit %}
<a href="https://www.reddit.com/submit?url={{ page.url | absolute_url | url_encode }}"
class="btn btn-social-icon btn-reddit" title="Share on Reddit">
<span class="fab fa-fw fa-reddit" aria-hidden="true"></span>
<span class="sr-only">Reddit</span>
</a>
{% endif %}
</section>
{% endif %}

View File

@@ -75,7 +75,7 @@
<!-- doing something a bit funky here because I want to be careful not to include JQuery twice! -->
<script>
if (typeof jQuery == 'undefined') {
document.write('<script src="{{ "/assets/js/jquery-3.4.1.min.js" | relative_url }}"></scr' + 'ipt>');
document.write('<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></scr' + 'ipt>');
}
</script>
<script src="{{ "/assets/js/staticman.js" | relative_url }}"></script>

View File

@@ -4,7 +4,7 @@
repo="{{ site.utterances.repository }}"
issue-term="{{ site.utterances.issue-term }}"
theme="{{ site.utterances.theme}}"
label="{{ site.utterances.label}}"
label="{{ site.utterances.label}}"
crossorigin="anonymous"
async>
</script>