summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--_includes/base.njk4
-rw-r--r--_includes/blogpost.njk2
-rw-r--r--eleventy.config.js3
-rw-r--r--js/moon-phase.js48
-rw-r--r--src/blog.njk4
5 files changed, 57 insertions, 4 deletions
diff --git a/_includes/base.njk b/_includes/base.njk
index 22f94b6..e31e4dc 100644
--- a/_includes/base.njk
+++ b/_includes/base.njk
@@ -9,6 +9,7 @@ title = "Starfall"
 	<meta name=robots content="noindex, nofollow">
 	<meta name=viewport content="width=device-width, initial-scale=1">
 	<link rel=stylesheet href=/css/terminal.css>
+	<script src='/js/moon-phase.js'></script>
 	{{ extraHeadContent | safe }}
 </head>
 
@@ -17,6 +18,7 @@ title = "Starfall"
 
 <header>
 	<h1>{{ title }}</h1>
+	<span style="float: right; user-select: none" id=decor-moons aria-hidden=true></span>
 	<nav aria-label=primary>
 		{% set navs = collections.all | eleventyNavigation %}
 		<ul>{%- for nav in navs %}
@@ -35,7 +37,7 @@ title = "Starfall"
 <section>
 	<p>This site is 100% <a href=https://git.starfall.systems/web>source-available</a>. © 2020-2023 Starfall. See <a href=https://git.starfall.systems/web/tree/COPYING.md rel=license>COPYING.md</a>.
 </section>
-<div style=text-align:center>⋁/⋀</div>
+<div style=text-align:center>∨/∧</div>
 </footer>
 
 </body>
diff --git a/_includes/blogpost.njk b/_includes/blogpost.njk
index dce49b7..94541c4 100644
--- a/_includes/blogpost.njk
+++ b/_includes/blogpost.njk
@@ -9,6 +9,7 @@ title = "Starfall"
 	<meta name=robots content="noindex, nofollow">
 	<meta name=viewport content="width=device-width, initial-scale=1">
 	<link rel=stylesheet href=/css/terminal.css>
+	<script src='/js/moon-phase.js'></script>
 	{{ extraHeadContent | safe }}
 </head>
 
@@ -17,6 +18,7 @@ title = "Starfall"
 
 <header>
 	<h1>{{ title }}</h1>
+	<span style="float: right; user-select: none" id=decor-moons aria-hidden=true></span>
 	<nav aria-label=primary>
 		{% set navs = collections.all | eleventyNavigation %}
 		<ul>{%- for nav in navs %}
diff --git a/eleventy.config.js b/eleventy.config.js
index 07da99d..7268139 100644
--- a/eleventy.config.js
+++ b/eleventy.config.js
@@ -28,8 +28,9 @@ module.exports = function(eleventyConfig) {
 	eleventyConfig.addPlugin(eleventyRss)
 
 	eleventyConfig.addPassthroughCopy('./css/')
-	eleventyConfig.addPassthroughCopy('./img/')
 	eleventyConfig.addPassthroughCopy('./files/')
+	eleventyConfig.addPassthroughCopy('./img/')
+	eleventyConfig.addPassthroughCopy('./js/')
 
 	eleventyConfig.addFilter('local_date', filter_local_date)
 	eleventyConfig.addFilter('rfc3339_datetime', filter_rfc3339_datetime)
diff --git a/js/moon-phase.js b/js/moon-phase.js
new file mode 100644
index 0000000..8feaced
--- /dev/null
+++ b/js/moon-phase.js
@@ -0,0 +1,48 @@
+// truncated to the day, America/Chicago time
+// only includes moons through end of 2024 (brown lunation number 1262)
+moons = [
+19585, 19593, 19599, 19606,
+19614, 19622, 19629, 19636,
+19644, 19651, 19658, 19666,
+19674, 19681, 19688, 19695,
+19703, 19710, 19717, 19725,
+19733, 19739, 19747, 19755,
+19762, 19769, 19777, 19785,
+19792, 19798, 19807, 19814,
+19821, 19828, 19836, 19844,
+19850, 19858, 19866, 19873,
+19880, 19888, 19895, 19902,
+19909, 19917, 19925, 19931,
+19939, 19947, 19954, 19961,
+19968, 19977, 19983, 19990,
+19998, 20006, 20013, 20020,
+20028, 20035, 20042, 20049,
+20058, 20065, 20072, 20079,
+20087, 20094, 20101, 20109
+]
+icons = ['\u{1f311}', '\u{1f313}', '\u{1f315}', '\u{1f317}']
+icons_inverted = ['\u{1f315}', '\u{1f317}', '\u{1f311}', '\u{1f313}']
+
+function getMoonsString(disable_emoji, inverted_icons) {
+	today = Math.floor((Date.now() - 18e6) / 86.4e6)
+
+	next_index = moons.findIndex((element) => element > today)
+	next_days = moons.slice(next_index, next_index + 4)
+
+	str = ""
+	for (let i = today; i < today + 30; i++) {
+		j = next_days.indexOf(i) + 1
+		if(j != 0) {
+			icon = disable_emoji && inverted_icons ? icons_inverted[j%4] : icons[j%4]
+			str = str.concat(icon)
+			if(disable_emoji)
+				str = str.concat('\ufe0e')
+		}
+		else str = str.concat('\u2500')
+	}
+	return str
+}
+
+document.addEventListener('DOMContentLoaded', (event) => {
+	document.getElementById('decor-moons').innerHTML = getMoonsString(true, true)
+})
diff --git a/src/blog.njk b/src/blog.njk
index b353545..b0f12db 100644
--- a/src/blog.njk
+++ b/src/blog.njk
@@ -17,8 +17,8 @@ order = 1
 .feed-icon {
 	display: block;
 	float: right;
-	height: 1em;
-	width: 1em;
+	height: 1.5em;
+	width: 1.5em;
 	background: url('/img/feed-icon.svg') center/contain, var(--fg);
 	background-blend-mode: luminosity;
 	mask: url('/img/feed-icon.svg') 0 0/100% 100%;