2019-01-04 18:14:53 +00:00
|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<meta charset="UTF-8">
|
2022-05-16 03:15:53 +00:00
|
|
|
<meta name="viewport" content="width=device-width">
|
2019-01-04 18:14:53 +00:00
|
|
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
2019-01-04 18:36:40 +00:00
|
|
|
|
2019-01-04 18:14:53 +00:00
|
|
|
<title><%= metadata.title %></title>
|
2019-01-04 18:36:40 +00:00
|
|
|
|
2022-06-14 14:18:11 +00:00
|
|
|
<link rel="canonical" href="https://<%= domain %><%= metadata.permalink %>">
|
|
|
|
<link rel="alternate" type="application/rss+xml" title="Shadowfacts" href="https://<%= domain %>/feed.xml">
|
2019-01-04 18:36:40 +00:00
|
|
|
|
|
|
|
<link rel="icon" href="/favicon.ico">
|
|
|
|
<link rel="apple-touch-icon-precomposed" href="/favicon-152.png">
|
|
|
|
<meta name="msapplication-TileColor" content="#F9C72F">
|
|
|
|
<meta name="msapplication-TileImage" content="/favicon-152.png">
|
|
|
|
|
2019-01-04 22:54:34 +00:00
|
|
|
<meta name="twitter:card" content="summary" />
|
|
|
|
<meta name="twitter:creator" content="@ShadowfactsDev" />
|
|
|
|
<meta property="og:title" content="<%= metadata.title %>" />
|
|
|
|
<% if (metadata.shortDesc) { %>
|
|
|
|
<meta property="og:type" content="article" />
|
|
|
|
<meta property="og:description" content="<%= metadata.shortDesc %>" />
|
|
|
|
<% } else { %>
|
|
|
|
<meta property="og:type" content="website" />
|
|
|
|
<meta property="og:description" content="Just my various ramblings." />
|
|
|
|
<% } %>
|
2022-06-14 14:18:11 +00:00
|
|
|
<meta property="og:url" content="https://<%= domain %><%= metadata.permalink %>" />
|
2019-01-04 22:54:34 +00:00
|
|
|
<meta property="og:site_name" content="Shadowfacts" />
|
2022-06-14 14:18:11 +00:00
|
|
|
<% if (metadata.cardImagePath) { %>
|
|
|
|
<meta property="twitter:image" content="https://<%= domain %><%= metadata.cardImagePath %>">
|
|
|
|
<meta property="og:image" content="https://<%= domain %><%= metadata.cardImagePath %>">
|
|
|
|
<% } else { %>
|
|
|
|
<meta property="og:image" content="https://<%= domain %>/shadowfacts.png" />
|
|
|
|
<% } %>
|
2019-01-04 22:54:34 +00:00
|
|
|
|
2019-01-04 18:14:53 +00:00
|
|
|
<script>
|
|
|
|
(() => {
|
2019-06-28 19:51:26 +00:00
|
|
|
const theme = localStorage.getItem("theme") || "auto";
|
2021-04-09 01:41:05 +00:00
|
|
|
document.write(`<link rel="stylesheet" href="/css/${theme}.css?<%= stylesheetCacheBuster %>">`);
|
2019-01-04 18:14:53 +00:00
|
|
|
})();
|
|
|
|
</script>
|
|
|
|
<noscript>
|
2021-04-09 01:41:05 +00:00
|
|
|
<link rel="stylesheet" href="/css/auto.css?<%= stylesheetCacheBuster %>">
|
2019-01-04 18:14:53 +00:00
|
|
|
</noscript>
|
|
|
|
</head>
|
2019-01-04 23:24:16 +00:00
|
|
|
<body itemscope itemtype="https://schema.org/Blog">
|
2019-06-28 19:28:00 +00:00
|
|
|
<header class="site-header container">
|
|
|
|
<div>
|
2019-06-19 13:29:56 +00:00
|
|
|
<div>
|
|
|
|
<h1 class="site-title"><%- fancyLink("Shadowfacts", "/") %></h1>
|
2021-08-04 13:11:06 +00:00
|
|
|
<p class="site-description">The outer part of a shadow is called the penumbra.</p>
|
2019-06-19 13:29:56 +00:00
|
|
|
</div>
|
2019-01-05 02:44:55 +00:00
|
|
|
<nav class="site-nav" role="navigation">
|
2019-01-04 18:14:53 +00:00
|
|
|
<ul>
|
2020-08-22 02:37:57 +00:00
|
|
|
<li><%- fancyLink("Archive", "/archive/") %></li>
|
2019-02-16 19:43:41 +00:00
|
|
|
<li><%- fancyLink("Tutorials", "/tutorials/") %></li>
|
2019-01-05 02:44:55 +00:00
|
|
|
<li><%- fancyLink("RTFM", "https://rtfm.shadowfacts.net") %></li>
|
2019-02-16 19:43:41 +00:00
|
|
|
<li>
|
|
|
|
<a href="#" class="dropdown-link" aria-haspopup="true">Other <span class="arrow arrow-down" aria-hidden="true"></span></a>
|
|
|
|
<ul aria-label="other links">
|
|
|
|
<li><%- fancyLink("Gitea", "https://git.shadowfacts.net") %></li>
|
|
|
|
<li><%- fancyLink("Maven", "https://maven.shadowfacts.net") %></li>
|
2020-08-22 02:37:57 +00:00
|
|
|
<li><%- fancyLink("Type", "https://type.shadowfacts.net") %></li>
|
2019-02-16 19:43:41 +00:00
|
|
|
<li><%- fancyLink("Meme Machine", "https://mememachine.shadowfacts.net") %></li>
|
|
|
|
</ul>
|
|
|
|
</li>
|
2019-01-04 18:14:53 +00:00
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
</div>
|
|
|
|
</header>
|
|
|
|
|
2019-01-05 02:44:55 +00:00
|
|
|
<div class="container" role="main">
|
2019-01-04 18:14:53 +00:00
|
|
|
<%- content %>
|
|
|
|
</div>
|
|
|
|
|
2019-06-28 19:28:00 +00:00
|
|
|
<footer class="site-footer container">
|
2022-04-07 03:43:16 +00:00
|
|
|
<h2 class="site-title">Shadowfacts</h2>
|
|
|
|
<span class="ui-controls">
|
|
|
|
Theme:
|
|
|
|
<input type="radio" name="theme" id="auto" value="auto">
|
|
|
|
<label for="auto">auto</label>
|
|
|
|
<input type="radio" name="theme" id="light" value="light">
|
|
|
|
<label for="light">light</label>
|
|
|
|
<input type="radio" name="theme" id="dark" value="dark">
|
|
|
|
<label for="dark">dark</label>
|
|
|
|
</span>
|
|
|
|
<nav class="social-links">
|
|
|
|
<ul>
|
|
|
|
<li><%- fancyLink("Email", "mailto:me@shadowfacts.net", "rel=me") %></li>
|
|
|
|
<li><%- fancyLink("RSS", "/feed.xml") %></li>
|
|
|
|
<li><%- fancyLink("GitHub", "https://github.com/shadowfacts", "rel=me") %></li>
|
|
|
|
<li><%- fancyLink("Mastodon", "https://social.shadowfacts.net/users/shadowfacts", "rel=me") %></li>
|
|
|
|
</ul>
|
|
|
|
</nav>
|
|
|
|
<aside class="webring">
|
|
|
|
<a href="https://metro.bieszczady.pl">Metro Bieszczady webring</a>
|
2022-09-03 08:36:17 +00:00
|
|
|
<a title="previous page in webring" href="https://metro.bieszczady.pl/cgi-bin/webring?action=previous&from=shadowfacts">←</a>
|
|
|
|
<a title="next page in webring" href="https://metro.bieszczady.pl/cgi-bin/webring?action=next&from=shadowfacts">→</a>
|
2022-04-07 03:43:16 +00:00
|
|
|
</aside>
|
2019-01-04 18:14:53 +00:00
|
|
|
|
|
|
|
<script>
|
|
|
|
(() => {
|
2019-06-28 19:51:26 +00:00
|
|
|
const theme = localStorage.getItem("theme") || "auto";
|
|
|
|
document.getElementsByName("theme").forEach((el) => {
|
|
|
|
el.checked = theme === el.value;
|
|
|
|
el.onchange = () => {
|
|
|
|
localStorage.setItem("theme", el.value);
|
|
|
|
window.location.reload();
|
|
|
|
};
|
|
|
|
});
|
2019-01-04 18:14:53 +00:00
|
|
|
})();
|
|
|
|
</script>
|
|
|
|
<noscript>
|
|
|
|
<style>
|
|
|
|
.ui-controls {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
</noscript>
|
|
|
|
</footer>
|
|
|
|
|
2022-05-16 03:16:15 +00:00
|
|
|
<script data-goatcounter="https://shadowfacts.goatcounter.com/count" async src="//gc.zgo.at/count.v3.js" crossorigin="anonymous" integrity="sha384-QGgNMMRFTi8ul5kHJ+vXysPe8gySvSA/Y3rpXZiRLzKPIw8CWY+a3ObKmQsyDr+a"></script>
|
|
|
|
|
2019-01-04 18:14:53 +00:00
|
|
|
</body>
|
2020-07-08 22:00:54 +00:00
|
|
|
</html>
|