Hello whiny.lol

This commit is contained in:
2026-03-09 18:41:02 +00:00
commit b880a1acc2
181 changed files with 3017 additions and 0 deletions

12
layouts/404.html Executable file
View File

@@ -0,0 +1,12 @@
{{ define "main" }}
<section class="hero">
<div class="hero-inner width-page">
<h1>404</h1>
<p>Page not found</p>
</div>
</section>
<div class="container width-page prose">
<p><a href="/">Go home</a></p>
</div>
{{ end }}

View File

@@ -0,0 +1,27 @@
{{- $alt := .Text -}}
{{- $caption := .Title -}}
{{- $src := .Destination -}}
{{- $image := .Page.Resources.GetMatch $src -}}
{{- if $image -}}
{{- $webp := $image.Resize (printf "%dx%d webp" $image.Width $image.Height) -}}
{{- if $caption -}}
<figure>
<img src="{{ $webp.RelPermalink }}" alt="{{ $alt }}" width="{{ $webp.Width }}" height="{{ $webp.Height }}">
<figcaption>{{ $caption }}</figcaption>
</figure>
{{- else -}}
<img src="{{ $webp.RelPermalink }}" alt="{{ $alt }}" width="{{ $webp.Width }}" height="{{ $webp.Height }}">
{{- end -}}
{{- else -}}
{{- if $caption -}}
<figure>
<img src="{{ $src }}" alt="{{ $alt }}">
<figcaption>{{ $caption }}</figcaption>
</figure>
{{- else -}}
<img src="{{ $src }}" alt="{{ $alt }}">
{{- end -}}
{{- end -}}

View File

@@ -0,0 +1 @@
<a href="{{ .Destination | safeURL }}"{{ with .Title}} title="{{ . }}"{{ end }}{{ if strings.HasPrefix .Destination "http" }} target="_blank"{{ end }}>{{ .Text }}</a>

View File

@@ -0,0 +1,17 @@
<article class="card">
{{ with .Resources.GetMatch "cover.*" }}
<img src="{{ .RelPermalink }}" alt="{{ $.Title }}" width="1350" height="700">
{{ end }}
<div class="card-info">
<h3><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3>
{{ if .Date }}
<p>{{ if .Draft }}Draft • {{ end }}<time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "January 2, 2006" }}</time></p>
{{ end }}
{{ with .Params.period }}
<p>{{ . }}</p>
{{ end }}
</div>
</article>

View File

@@ -0,0 +1,46 @@
<dialog class="block" id="dialog" aria-labelledby="dialog-title">
{{ with .Site.Params.version.changelog }}
{{ with $.Site.GetPage . }}
<h2 class="block-title" id="dialog-title">{{ .Title }}</h2>
<div class="block-content prose">
{{ .Summary }}
<p><a href="{{ .RelPermalink }}">Read the full changelog</a></p>
</div>
{{ end }}
{{ end }}
<div class="block-content options">
<ul class="row">
<li>
<button id="close" class="link badge">Close</button>
</li>
<li>
<button id="hide" class="link badge">Hide until next update</button>
</li>
</ul>
</div>
</dialog>
<script>
const dialog = document.getElementById('dialog');
const hide = document.getElementById('hide');
const close = document.getElementById('close');
const currentVersion = "{{ .Site.Params.version.update }}";
if (localStorage.getItem('siteVersion') !== currentVersion) {
dialog.showModal();
}
function hideDialog() {
dialog.close();
localStorage.setItem('siteVersion', currentVersion);
}
hide.addEventListener('click', hideDialog);
close.addEventListener('click', () => {
dialog.close();
});
</script>

18
layouts/_partials/footer.html Executable file
View File

@@ -0,0 +1,18 @@
<footer>
<div class="footer-inner width-page">
<div class="footer-text prose">
{{ .Site.Copyright | $.Page.RenderString (dict "markup" "goldmark" "display" "block") }}
<p>Licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a>.</p>
</div>
<ul class="row">
{{ range site.Menus.footer }}
<li>
<a href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }}target="_blank"{{ end }}>{{ .Name }}</a>
</li>
{{ end }}
</ul>
</div>
</footer>

27
layouts/_partials/head.html Executable file
View File

@@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="{{ site.Language.LanguageCode }}" dir="{{ or site.Language.LanguageDirection `ltr` }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
{{ $title := print .Title " - " .Site.Title }}<title>{{ $title }}</title>
{{ $bundle := slice (resources.Get "css/fonts.css") (resources.Get "css/styles.css") | resources.Concat "css/bundle.css" }}
<link rel="stylesheet" href="{{ $bundle.RelPermalink }}" crossorigin="anonymous">
{{ $js := resources.Get "js/menu.js" }}<script src="{{ $js.RelPermalink }}"></script>
{{ if eq hugo.Environment "production" }}
<script data-goatcounter="https://analytics.whiny.lol/count" async src="//analytics.whiny.lol/count.js"></script>
{{ end }}
<meta name="darkreader-lock"> <!-- Exclude site from Dark Reader browser extension -->
{{ if or (eq hugo.Environment "staging") (eq hugo.Environment "development") }}
<link rel="icon" href="/dev/favicon.ico" sizes="32x32">
<link rel="icon" href="/dev/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/dev/apple-touch-icon.png">
{{ else }}
<link rel="icon" href="/favicon.ico" sizes="32x32">
<link rel="icon" href="/favicon.svg" type="image/svg+xml">
<link rel="apple-touch-icon" href="/apple-touch-icon.png">
<meta name="description" content="{{ .Description | default .Site.Params.description }}">
<meta name="author" content="{{ .Site.Params.author }}">
{{ partial "opengraph.html" . }}
{{ partial "twitter_cards.html" . }}
{{ end }}
</head>

29
layouts/_partials/header.html Executable file
View File

@@ -0,0 +1,29 @@
<header>
<nav class="main-navigation width-page">
<a href="/" class="site-title">
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2" viewBox="0 0 786 308"><path d="m111.817 133.627 22.731 112.124h60.824l28.261-162.81h-47.614l-12.288 110.28-23.039-110.28H82.634l-22.732 110.28-12.288-110.28H0l27.954 162.81h61.131zM282.306 0H233.77v245.751h48.536V136.084c3.686-5.836 13.209-15.359 28.568-15.359 16.589 0 21.504 11.059 21.504 22.732v102.294h48.228V135.47c0-29.49-13.516-56.523-50.379-56.523-21.81 0-37.477 7.987-47.921 19.66zM399.652 245.751h48.536V82.941h-48.536zm49.764-237.15h-50.993v51.301h50.993zM615.912 245.751V135.47c0-29.49-13.516-56.523-50.379-56.523-25.189 0-42.084 10.445-52.222 24.883l-3.686-20.889h-43.313l2.764 46.078v116.732h48.536V136.084c3.686-5.836 13.209-15.359 28.569-15.359 16.588 0 21.503 11.059 21.503 22.732v102.294zM701.618 186.77 670.899 82.941h-52.836L675.2 237.149l-26.111 70.039h57.751l20.889-70.039 57.444-154.208h-52.836z" style="fill:currentColor; fill-rule:nonzero"/></svg>
</a>
<ul class="row">
{{ range site.Menus.main }}
<li>
<a href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }}target="_blank"{{ end }}>{{ .Name }}</a>
</li>
{{ end }}
</ul>
<button id="menu-button" class="link" aria-label="Open mobile navigation" aria-expanded="false" aria-controls="mobile-navigation" onclick="mobileMenu()">Menu</button>
</nav>
<nav id="mobile-navigation" class="mobile-navigation nav-closed">
{{ with site.Menus.main }}
<ul class="row vertical width-page">
{{ range . }}
<li>
<a href="{{ .URL }}" {{ if strings.HasPrefix .URL "http" }}target="_blank"{{ end }}>{{ .Name }}</a>
</li>
{{ end }}
</ul>
{{ end }}
</nav>
</header>

View File

@@ -0,0 +1,38 @@
{{ $paginator := .Paginator }}
{{ if gt $paginator.TotalPages 1 }}
<nav class="pagination" role="navigation" aria-label="pagination">
<ul class="row centered">
{{ if $paginator.HasPrev }}
<li>
<a href="{{ $paginator.Prev.URL }}" class="link" aria-label="Go to previous page">
Previous
</a>
</li>
{{ end }}
{{ range $paginator.Pagers }}
{{ if eq . $paginator }}
<li>
<span class="link current-page" aria-label="Page {{ .PageNumber }}" aria-current="page">
{{ .PageNumber }}
</span>
</li>
{{ else }}
<li>
<a href="{{ .URL }}" class="link" aria-label="Go to page {{ .PageNumber }}">
{{ .PageNumber }}
</a>
</li>
{{ end }}
{{ end }}
{{ if $paginator.HasNext }}
<li>
<a href="{{ $paginator.Next.URL }}" class="link" aria-label="Go to next page">
Next
</a>
</li>
{{ end }}
</ul>
</nav>
{{ end }}

View File

@@ -0,0 +1,33 @@
<div class="block opt-out">
<div class="block-content">
<div class="row">
<button id="gc-toggle" class="link badge" onclick="toggleAnalytics()" aria-pressed="false" aria-describedby="analytics-heading">Checking status...</button>
<span id="gc-status" role="status" aria-live="polite"></span>
</div>
<p>Opting out of analytics creates an item in your browser's <code>localStorage</code> for this website. This will be removed if you clear site data in your browser or decide to opt back in.</p>
</div>
</div>
<script>
const btn = document.getElementById('gc-toggle');
const status = document.getElementById('gc-status');
function updateButton() {
const isOptedOut = localStorage.getItem('skipgc') === 't';
btn.textContent = isOptedOut ? 'Re-enable analytics' : 'Opt-out of analytics';
btn.setAttribute('aria-pressed', isOptedOut);
status.textContent = isOptedOut ? 'You have opted out of analytics' : 'Currently opted in (default)';
}
function toggleAnalytics() {
if (localStorage.getItem('skipgc') === 't') {
localStorage.removeItem('skipgc');
} else {
localStorage.setItem('skipgc', 't');
}
updateButton();
}
updateButton();
</script>

View File

@@ -0,0 +1,7 @@
<aside class="block note">
<h2 class="block-title">{{ .Get "title" | default "Note" }}</h2>
<div class="block-content prose">
{{ .Inner | markdownify }}
</div>
</aside>

View File

@@ -0,0 +1,9 @@
<section class="block overview">
<div class="block-content">
<h3 class="score">{{ .Page.Params.score }}/10</h3>
<div class="prose">
{{ .Inner | markdownify }}
</div>
</div>
</section>

13
layouts/baseof.html Executable file
View File

@@ -0,0 +1,13 @@
{{ partial "head.html" . }}
<body>
{{ partial "header.html" . }}
<main>
{{ block "main" . }}
{{ end }}
</main>
{{ partial "footer.html" . }}
</body>
</html>

43
layouts/home.html Executable file
View File

@@ -0,0 +1,43 @@
{{ define "main" }}
{{ if .Site.Params.version.dialog }}
{{ partial "dialog.html" . }}
{{ end }}
<section class="hero">
<div class="hero-inner width-page home prose">
{{ .Summary }}
{{ if .Site.Params.version.notice }}
{{ with .Site.Params.version.changelog }}
{{ with $.Site.GetPage . }}
<a class="link badge" href="{{ .RelPermalink }}">{{ .Title }}</a>
{{ end }}
{{ end }}
{{ end }}
</div>
</section>
<div class="container width-page">
<section class="latest">
<div>
<h2 class="section-title">Latest post</h2>
{{ range ( where .Site.RegularPages "Type" "posts" | first 1 ) }}
{{ partial "card.html" . }}
{{ end }}
</div>
<div>
<h2 class="section-title">Latest review</h2>
{{ range ( where .Site.RegularPages "Type" "reviews" | first 1 ) }}
{{ partial "card.html" . }}
{{ end }}
</div>
</section>
{{ with .ContentWithoutSummary }}
<div class="prose">
{{ . }}
</div>
{{ end }}
</div>
{{ end }}

46
layouts/list.html Executable file
View File

@@ -0,0 +1,46 @@
{{ define "main" }}
<section class="hero page">
<div class="hero-inner width-page">
{{ if eq .Kind "term" }}
{{ with .Parent }}
<a class="link meta" href="{{ .RelPermalink }}">{{ .Data.Singular | title }}</a>
{{ end }}
{{ end }}
<h1>{{ .Title }}</h1>
{{ with .Description }}
<p>{{ . }}</p>
{{ end }}
{{ if eq .Kind "term" }}
<p>{{ len .Pages }} pages</p>
{{ end }}
{{ if eq .Kind "taxonomy" }}
<p>{{ len .Pages }} {{ .Data.Plural }}</p>
{{ end }}
</div>
</section>
<div class="container width-page">
{{ if .Content }}
<div class="prose">
{{ .Content }}
</div>
{{ end }}
{{ $pages := .Data.Pages }}
{{ $paginator := .Paginate $pages 8 }}
<div class="cards">
{{ range $paginator.Pages }}
{{ partial "card.html" . }}
{{ end }}
</div>
{{ partial "pagination-controls.html" . }}
</div>
{{ end }}

72
layouts/single.html Executable file
View File

@@ -0,0 +1,72 @@
{{ define "main" }}
<article>
<section class="hero">
<div class="hero-inner width-content">
{{ range $name, $taxonomy := .Site.Taxonomies }}
{{ with $.GetTerms $name }}
<ul class="row {{ $name }}" aria-label="List of {{ $name }}">
{{ range . }}
<li>
<a class="link meta" href="{{ .RelPermalink }}">{{ .LinkTitle }}</a>
</li>
{{ end }}
</ul>
{{ end }}
{{ end }}
<h1>{{ .Title }}</h1>
{{ if .Date }}
<p><time datetime="{{ .Date.Format "2006-01-02" }}">{{ .Date.Format "January 2, 2006" }}</time></p>
{{ end }}
{{ with .Params.period }}
<p>{{ . }}</p>
{{ end }}
{{ with .Resources.GetMatch "cover.*" }}
<img class="cover" src="{{ .RelPermalink }}" alt="{{ $.Title }}" width="1350" height="700">
{{ end }}
{{ with .Description }}
<p>{{ . }}</p>
{{ end }}
{{ with .Params.link }}
<a class="link meta icon" href="{{ . }}">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-globe-icon lucide-globe"><circle cx="12" cy="12" r="10"/><path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20"/><path d="M2 12h20"/></svg>
{{ $.Title }} website
</a>
{{ end }}
</div>
</section>
{{ if .Content }}
<div class="container prose width-content">
{{ .ContentWithoutSummary }}
</div>
{{ end }}
{{ if not .Parent.IsHome }}
<section class="share">
<div class="share-inner width-page">
<h2>Share this page</h2>
<div class="row">
<a class="link pill icon" aria-label="Send via Email" href="mailto:?to=&body={{ .Permalink }}&subject=%22{{ .Title }}%22 - {{ .Site.Title }}"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-mail-icon lucide-mail"><path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7"/><rect x="2" y="4" width="20" height="16" rx="2"/></svg>Email</a>
<a class="link pill icon" aria-label="Share on Blusky" href="https://bsky.app/intent/compose?text=%22{{ .Title | urlquery }}%22+-+{{ .Site.Title | urlquery }}%0A{{ .Permalink | urlquery }}" target="_blank"><svg role="img" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><title>Bluesky Logo</title><path d="M5.202 2.857C7.954 4.922 10.913 9.11 12 11.358c1.087-2.247 4.046-6.436 6.798-8.501C20.783 1.366 24 .213 24 3.883c0 .732-.42 6.156-.667 7.037-.856 3.061-3.978 3.842-6.755 3.37 4.854.826 6.089 3.562 3.422 6.299-5.065 5.196-7.28-1.304-7.847-2.97-.104-.305-.152-.448-.153-.327 0-.121-.05.022-.153.327-.568 1.666-2.782 8.166-7.847 2.97-2.667-2.737-1.432-5.473 3.422-6.3-2.777.473-5.899-.308-6.755-3.369C.42 10.04 0 4.615 0 3.883c0-3.67 3.217-2.517 5.202-1.026"/></svg>Bluesky</a>
<a class="link pill icon" aria-label="Share on Threads" href="https://threads.com/intent/post?url={{ .Permalink | urlquery }}&text=%22{{ .Title | urlquery }}%22+-+{{ .Site.Title | urlquery }}" target="_blank"><svg role="img" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><title>Threads Logo</title><path d="M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.783 3.631 2.698 6.54 2.717 2.623-.02 4.358-.631 5.8-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.853 13.853 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 7.847c.98-1.454 2.568-2.256 4.478-2.256h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.79-1.548 7.158-1.85 1.81-4.094 2.628-7.277 2.65Zm1.003-11.69c-.242 0-.487.007-.739.021-1.836.103-2.98.946-2.916 2.143.067 1.256 1.452 1.839 2.784 1.767 1.224-.065 2.818-.543 3.086-3.71a10.5 10.5 0 0 0-2.215-.221z"/></svg>Threads</a>
<a class="link pill icon" aria-label="Share on WhatsApp" href="https://api.whatsapp.com/send?text=%22{{ .Title | urlquery }}%22+-+{{ .Site.Title | urlquery }}%0A{{ .Permalink | urlquery }}" target="_blank"><svg role="img" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><title>WhatsApp Logo</title><path d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z"/></svg>WhatsApp</a>
<a class="link pill icon" aria-label="Share on Telegram" href="https://t.me/share/url?text=%22{{ .Title | urlquery }}%22+-+{{ .Site.Title | urlquery }}&url={{ .Permalink | urlquery }}" target="_blank"><svg role="img" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><title>Telegram Logo</title><path d="M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"/></svg>Telegram</a>
<a class="link pill icon" aria-label="Share on Reddit" href="https://reddit.com/submit?url={{ .Permalink | urlquery }}&title=%22{{ .Title | urlquery }}%22+-+{{ .Site.Title | urlquery }}" target="_blank"><svg role="img" viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><title>Reddit Logo</title><path d="M12 0C5.373 0 0 5.373 0 12c0 3.314 1.343 6.314 3.515 8.485l-2.286 2.286C.775 23.225 1.097 24 1.738 24H12c6.627 0 12-5.373 12-12S18.627 0 12 0Zm4.388 3.199c1.104 0 1.999.895 1.999 1.999 0 1.105-.895 2-1.999 2-.946 0-1.739-.657-1.947-1.539v.002c-1.147.162-2.032 1.15-2.032 2.341v.007c1.776.067 3.4.567 4.686 1.363.473-.363 1.064-.58 1.707-.58 1.547 0 2.802 1.254 2.802 2.802 0 1.117-.655 2.081-1.601 2.531-.088 3.256-3.637 5.876-7.997 5.876-4.361 0-7.905-2.617-7.998-5.87-.954-.447-1.614-1.415-1.614-2.538 0-1.548 1.255-2.802 2.803-2.802.645 0 1.239.218 1.712.585 1.275-.79 2.881-1.291 4.64-1.365v-.01c0-1.663 1.263-3.034 2.88-3.207.188-.911.993-1.595 1.959-1.595Zm-8.085 8.376c-.784 0-1.459.78-1.506 1.797-.047 1.016.64 1.429 1.426 1.429.786 0 1.371-.369 1.418-1.385.047-1.017-.553-1.841-1.338-1.841Zm7.406 0c-.786 0-1.385.824-1.338 1.841.047 1.017.634 1.385 1.418 1.385.785 0 1.473-.413 1.426-1.429-.046-1.017-.721-1.797-1.506-1.797Zm-3.703 4.013c-.974 0-1.907.048-2.77.135-.147.015-.241.168-.183.305.483 1.154 1.622 1.964 2.953 1.964 1.33 0 2.47-.81 2.953-1.964.057-.137-.037-.29-.184-.305-.863-.087-1.795-.135-2.769-.135Z"/></svg>Reddit</a>
</div>
</div>
</section>
{{ end }}
</article>
{{ end }}