cool cleanup club
All checks were successful
ci/woodpecker/push/main Pipeline was successful

This commit is contained in:
Ell 2023-08-07 14:04:06 +02:00
parent 5f248b47d5
commit 812fe57577
42 changed files with 250 additions and 252 deletions

View file

@ -56,18 +56,18 @@
<span id="message"></span> <span id="message"></span>
<script> <script>
const messages = [ const messages = [
'Maybe try a different place?', "Maybe try a different place?",
'Do you want to know a secret?', "Do you want to know a secret?",
'This is a magical place', "This is a magical place",
'What were you trying to find?', "What were you trying to find?",
'Now my day is ruined', "Now my day is ruined",
'There\'s a place like this somewhere', "There's a place like this somewhere",
'I shall overcome this obstacle.', "I shall overcome this obstacle.",
'Why are you like this?', "Why are you like this?",
'this is so sad alexa play despacito', "this is so sad alexa play despacito",
'The server is at a loss for what you were trying to find', "The server is at a loss for what you were trying to find",
'oh no :(', "oh no :(",
'The world is quiet here.', "The world is quiet here.",
"Instructions unclear, got site stuck in debug mode", "Instructions unclear, got site stuck in debug mode",
"Please fix", "Please fix",
"If we get this video to 400 likes, I'll put the site back up", "If we get this video to 400 likes, I'll put the site back up",
@ -75,7 +75,7 @@
]; ];
let message = Math.floor(Math.random() * messages.length); let message = Math.floor(Math.random() * messages.length);
document.getElementById('message').innerHTML = `<em>${messages[message]}</em>`; document.getElementById("message").innerHTML = `<em>${messages[message]}</em>`;
</script> </script>
</p> </p>
<p class="go-home"> <p class="go-home">

View file

@ -5,7 +5,7 @@
}, },
{ {
"name": "Twitch", "name": "Twitch",
"link": "http://twitch.tv/ellpeck" "link": "https://twitch.tv/ellpeck"
}, },
{ {
"name": "GitHub", "name": "GitHub",

View file

@ -5,10 +5,10 @@
</p> </p>
<div id="about-list"> <div id="about-list">
{% for item in site.data.about %} {% for item in site.data.about %}
<p> <p>
<strong>Q: {{ item.q }}</strong><br> <strong>Q: {{ item.q }}</strong><br>
<strong>A:</strong> {{ item.a }} <strong>A:</strong> {{ item.a }}
</p> </p>
{% endfor %} {% endfor %}
</div> </div>
<script> <script>

View file

@ -2,7 +2,7 @@
<h1 id="blog"> <h1 id="blog">
<span id="blog-all"></span> <span id="blog-all"></span>
{% for tag in site.tags %} {% for tag in site.tags %}
<span id="blog-{{ tag[0] | slugify }}"></span> <span id="blog-{{ tag[0] | slugify }}"></span>
{% endfor %} {% endfor %}
📔 Blog 📔 Blog
</h1> </h1>
@ -14,24 +14,24 @@
{% include tagbtn.html tag="All" %} {% include tagbtn.html tag="All" %}
{%- assign sorted = site.tags | sort -%} {%- assign sorted = site.tags | sort -%}
{%- for tag in sorted -%} {%- for tag in sorted -%}
{%- assign name = tag[0] -%} {%- assign name = tag[0] -%}
{% include tagbtn.html tag=name %} {% include tagbtn.html tag=name %}
{%- endfor -%} {%- endfor -%}
</div> </div>
<div id="blog-list"> <div id="blog-list">
{% for post in site.posts %} {% for post in site.posts %}
{% if post.archived != true %} {% if post.archived != true %}
{% include post.html post=post %} {% include post.html post=post %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
</div> </div>
<button type="button" class="btn btn-link" id="blog-archive-button">Show archived posts</button> <button type="button" class="btn btn-link" id="blog-archive-button">Show archived posts</button>
<div id="blog-archive"> <div id="blog-archive">
{% for post in site.posts %} {% for post in site.posts %}
{% if post.archived == true %} {% if post.archived == true %}
{% include post.html post=post %} {% include post.html post=post %}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
<em id="no-archived-posts" hidden>There are no archived posts in this category.</em> <em id="no-archived-posts" hidden>There are no archived posts in this category.</em>
</div> </div>

View file

@ -10,7 +10,7 @@
<script src="/scripts/quote.js"></script> <script src="/scripts/quote.js"></script>
<img src="/res/blobheart.png" id="blobheart" alt="A blob emoji holding a heart"> <img src="/res/blobheart.png" id="blobheart" alt="A blob emoji holding a heart">
<script> <script>
$('#blobheart').on('click', () => $("#navbar-image").attr("src", "res/heart.jpeg")); $("#blobheart").on("click", () => $("#navbar-image").attr("src", "res/heart.jpeg"));
</script> </script>
</div> </div>
</div> </div>

View file

@ -1,22 +1,22 @@
{% assign tag = page.tags[0] %} {% assign tag = page.tags[0] %}
{% assign posts = site.tags[tag] | where_exp: "post", "post.archived != true" %} {% assign posts = site.tags[tag] | where_exp: "post", "post.archived != true" %}
{% for post in posts %} {% for post in posts %}
{% if post.url != page.url %} {% if post.url != page.url %}
{% continue %} {% continue %}
{% endif %} {% endif %}
{% if forloop.last == false %} {% if forloop.last == false %}
{% assign prev = forloop.index0 | plus: 1 %} {% assign prev = forloop.index0 | plus: 1 %}
{% endif %} {% endif %}
{% if forloop.first == false %} {% if forloop.first == false %}
{% assign next = forloop.index0 | minus: 1 %} {% assign next = forloop.index0 | minus: 1 %}
{% endif %} {% endif %}
{% break %} {% break %}
{% endfor %} {% endfor %}
<a class="nav-item nav-link" href="../../#blog-{{ tag | slugify }}">🏠 Back to Main Page</a> <a class="nav-item nav-link" href="../../#blog-{{ tag | slugify }}">🏠 Back to Main Page</a>
{% if prev %} {% if prev %}
<a class="nav-item nav-link" href="{{ posts[prev].url }}">⏮️ Previous in {{ tag }}</a> <a class="nav-item nav-link" href="{{ posts[prev].url }}">⏮️ Previous in {{ tag }}</a>
{% endif %} {% endif %}
{% if next %} {% if next %}
<a class="nav-item nav-link" href="{{ posts[next].url }}">⏭️ Next in {{ tag }}</a> <a class="nav-item nav-link" href="{{ posts[next].url }}">⏭️ Next in {{ tag }}</a>
{% endif %} {% endif %}

View file

@ -8,18 +8,18 @@
<div class="col"> <div class="col">
<div id="social-list"> <div id="social-list">
{% for item in site.data.socials %} {% for item in site.data.socials %}
<a class="btn btn-light social-button rounded-0" href="{{ item.link }}"> <a class="btn btn-light social-button rounded-0" href="{{ item.link }}">
<img class="social-image social-image-light" src="res/social/{{ item.name | downcase }}.png" alt="Social icon"> <img class="social-image social-image-light" src="res/social/{{ item.name | downcase }}.png" alt="Social icon">
{% if item.darkIcon %} {% if item.darkIcon %}
{% assign dark = item.name | downcase | append: "_dark" %} {% assign dark = item.name | downcase | append: "_dark" %}
{% else %} {% else %}
{% assign dark = item.name | downcase %} {% assign dark = item.name | downcase %}
{% endif %} {% endif %}
<img class="social-image social-image-dark" src="res/social/{{ dark }}.png" alt="Social icon" hidden> <img class="social-image social-image-dark" src="res/social/{{ dark }}.png" alt="Social icon" hidden>
{{ item.name }} {{ item.name }}
</a> </a>
{% endfor %} {% endfor %}
</div> </div>

View file

@ -5,12 +5,12 @@
</p> </p>
<div id="support-list"> <div id="support-list">
{% for item in site.data.support %} {% for item in site.data.support %}
<div class="card bg-light support-entry rounded-0"> <div class="card bg-light support-entry rounded-0">
<div class="card-body"> <div class="card-body">
<h4 class="card-title"><a class="title-button" href="{{ item.link }}">{{ item.name }}</a></h4> <h4 class="card-title"><a class="title-button" href="{{ item.link }}">{{ item.name }}</a></h4>
<p class="card-text">{{ item.text }}</p> <p class="card-text">{{ item.text }}</p>
</div>
</div> </div>
</div>
{% endfor %} {% endfor %}
</div> </div>
<script> <script>

View file

@ -22,7 +22,7 @@ nav: nav/blognav.html
{% else %} {% else %}
<script> <script>
let style = dark ? "monokai" : "friendly"; let style = dark ? "monokai" : "friendly";
$('head').append($("<link/>", { $("head").append($("<link/>", {
rel: "stylesheet", rel: "stylesheet",
href: `https://cdn.jsdelivr.net/gh/richleland/pygments-css@master/${style}.css` href: `https://cdn.jsdelivr.net/gh/richleland/pygments-css@master/${style}.css`
})); }));

View file

@ -42,7 +42,7 @@ So keep on going, no matter what people say, because you're probably awesome.
# Basically No Obligations # Basically No Obligations
When making a game, or a "real" product in general, a lot of the time, you're bound to certain obligations: Either it's legal ones, or maybe you've done a Kickstarter, maybe the thing you make actually costs you quite a bit of money because you have a whole development team, stuff like that. When making a game, or a "real" product in general, a lot of the time, you're bound to certain obligations: Either it's legal ones, or maybe you've done a Kickstarter, maybe the thing you make actually costs you quite a bit of money because you have a whole development team, stuff like that.
Well with Minecraft modding, the only thing you have to deal with is people asking you when you'll *finally* update to the next version. But if you're sick of that, or sick of anything else, you can just stop, take a break, and do something else entirely for a while. Well with Minecraft modding, the only thing you have to deal with is people asking you when you'll *finally* update to the next version. But if you're sick of that, or sick of anything else, you can just stop, take a break, and do something else entirely for a while.
People might judge, but the important thing is: They don't have a right to judge, because you can do whatever you want. It's a hobby thing, so it's your thing. People might judge, but the important thing is: They don't have a right to judge, because you can do whatever you want. It's a hobby thing, so it's your thing.

View file

@ -97,7 +97,8 @@ But he did. Tears started running down his face like waterfalls, and he tried to
He rested one hand against the bark and tried to catch his breath. The thought of bubblegum ice cream was fresh in his mind again, the thought of the red, rickety swing set was morphing and mixing with the thought of churros, the thought of chocolate sauce in his face. The thought of Emily's smile, the thought of her frown, the thought of her sad movie face. Fuck. He rested one hand against the bark and tried to catch his breath. The thought of bubblegum ice cream was fresh in his mind again, the thought of the red, rickety swing set was morphing and mixing with the thought of churros, the thought of chocolate sauce in his face. The thought of Emily's smile, the thought of her frown, the thought of her sad movie face. Fuck.
He tried telling himself to breathe. *Five in, six hold, seven out.* That's what his therapist had told him. *One, two, three.* What's the worst that could realistically happen?, that's what he was supposed to ask himself. *Four, five.* Well. *One, two, three.* Emily might never talk to him again. *Four, five, six.* She might hate him, now that she'd just tried to be cute by shoving a churro into his face, and now that he'd reacted like a total fucking asshole. *One, two.* Was he already breathing in again? *Fuck.* He kept telling his body to calm down, his mind to stop racing. His heart to stop racing. He started leaning against the bark and then slowly slid down the tree trunk, sitting down on the ground with his knees close to his chest. He observed the rickety swing set in the middle of the field, and saw himself and Emily swinging back and forth again, talking about three hundred and sixty degree swings. He saw himself, laughing and giggling and occasionally licking a cone of bubble gum soft serve he had in his left hand. He saw Emily doing the same. He saw himself wobbling a bit on the swing, trying to hold himself steady with just his right hand. He tried to breathe again. *One, two, three.* He saw himself, still holding the cone, sliding out of the swing's seat and yelling something. He saw himself landing in the rough, wet sand, the cone having left his hand and landing face-down in the sand next to him. *Four, five.* Tears were still running down his face. He saw himself turning around as Emily jumped off of her swing and came to his rescue. He tried telling himself to breathe. *Five in, six hold, seven out.* That's what his therapist had told him. *One, two, three.* What's the worst that could realistically happen?, that's what he was supposed to ask himself. *Four, five.* Well. *One, two, three.* Emily might never talk to him again. *Four, five, six.* She might hate him, now that she'd just tried to be cute by shoving a churro into his face, and now that he'd reacted like a total fucking asshole. *One, two.* Was he already breathing in again? *Fuck.* He kept telling his body to calm down, his mind to stop racing. His heart to stop racing. He started leaning against the bark and then slowly slid down the tree trunk, sitting down on the ground with his knees close to his chest. He observed the rickety swing set in the middle of the field, and saw himself and Emily swinging back and forth again, talking about three hundred and sixty degree swings. He saw himself, laughing and giggling and occasionally licking a cone of
bubble gum soft serve he had in his left hand. He saw Emily doing the same. He saw himself wobbling a bit on the swing, trying to hold himself steady with just his right hand. He tried to breathe again. *One, two, three.* He saw himself, still holding the cone, sliding out of the swing's seat and yelling something. He saw himself landing in the rough, wet sand, the cone having left his hand and landing face-down in the sand next to him. *Four, five.* Tears were still running down his face. He saw himself turning around as Emily jumped off of her swing and came to his rescue.
"Are you alright?", he heard her say in her beautiful, melodic voice. *One, two, three.* "Are you alright?", he heard her say in her beautiful, melodic voice. *One, two, three.*

View file

@ -53,7 +53,7 @@ Only a few days later, Jed arrived at a coffee shop that he used to go to with h
He waited in the entryway of the café until Davy arrived. And *boy*, did he arrive. He walked into the room wearing a jean jacket over a black logo tee and jeans. His hair was blowing in the wind let in by the open door, and it reminded Jed of their first encounter at the train station. The whole outfit made Davy seem strong. For a second, Jed imagined what it would be like to be scooped up by his strong, muscular arms like a princess. Like a *prince*. He waited in the entryway of the café until Davy arrived. And *boy*, did he arrive. He walked into the room wearing a jean jacket over a black logo tee and jeans. His hair was blowing in the wind let in by the open door, and it reminded Jed of their first encounter at the train station. The whole outfit made Davy seem strong. For a second, Jed imagined what it would be like to be scooped up by his strong, muscular arms like a princess. Like a *prince*.
*Get a grip*, he thought to himself. *Get a grip*, he thought to himself.
"Hey man," Davy said with a smile as he saw Jed. *Hey, 'man'?*, he repeated in his head. "Hey man," Davy said with a smile as he saw Jed. *Hey, 'man'?*, he repeated in his head.

View file

@ -22,7 +22,8 @@ So, right off the bat, I need you to know that I don't usually read books with s
But when I saw *They Both Die at the End* by Adam Silvera, I didn't *know* it was going to be as bittersweet as it was. Well, I had some idea based on the title, of course, but for some reason I didn't clock that it was going to be a romance. A romance where both characters die at the end. *I cried so much.* But when I saw *They Both Die at the End* by Adam Silvera, I didn't *know* it was going to be as bittersweet as it was. Well, I had some idea based on the title, of course, but for some reason I didn't clock that it was going to be a romance. A romance where both characters die at the end. *I cried so much.*
*They Both Die at the End*, and its prequel, *The First to Die at the End*, are set in a fictionalized universe where a service exists that will tell you about the day you're going to die. On the day, they call you on the phone and deliver the frankly disturbingly true prediction. They don't tell you why, or how, you're going to die, but they tell you that you *will* definitely die on that day. The stories are told from multiple people's perspectives, with each chapter being told either by one of the two main characters, or occasionally by some of the many side characters. The people dying, called "Deckers" (for a somewhat silly reason that will become apparent in the prequel), are encouraged to make their last day beautiful, and fill it with as many memorable moments as possible. In both books, this includes a boy falling in love with another boy (who may or may not also die today). They have a beautiful one-day romance, until death happens at the end and the reader cries themselves to sleep, replaying the scene in their head for hours. *They Both Die at the End*, and its prequel, *The First to Die at the End*, are set in a fictionalized universe where a service exists that will tell you about the day you're going to die. On the day, they call you on the phone and deliver the frankly disturbingly true prediction. They don't tell you why, or how, you're going to die, but they tell you that you *will* definitely die on that day. The stories are told from multiple people's perspectives, with each chapter being told either by one of the two main characters, or occasionally by some of the many side characters. The people dying, called "Deckers" (for a somewhat silly reason that will become apparent in the prequel), are encouraged to make their last day beautiful, and fill it with as many memorable moments as possible. In both books, this includes a boy falling in love with another boy (who may or may not also die today). They have a beautiful one-day romance, until death happens at the end and the reader cries themselves
to sleep, replaying the scene in their head for hours.
If you like close-to-reality sci-fi, and heartbreakingly tragic queer romance stories, then I really recommend these two books. If you like close-to-reality sci-fi, and heartbreakingly tragic queer romance stories, then I really recommend these two books.

View file

@ -30,10 +30,10 @@ function populateManual(lang) {
for (let topic of data.split("\n\n")) { for (let topic of data.split("\n\n")) {
let lines = topic.split("\n"); let lines = topic.split("\n");
let t = '<div class="entry rounded">'; let t = "<div class=\"entry rounded\">";
// first line is name // first line is name
let name = lines[0].substring(lines[0].indexOf("=") + 1); let name = lines[0].substring(lines[0].indexOf("=") + 1);
let id = lines[0].match(/chapter\.([^\.]*)\.name/)[1]; let id = lines[0].match(/chapter\.([^.]*)\.name/)[1];
sidebar.append(`<a href=#${id}>${name}</a>`); sidebar.append(`<a href=#${id}>${name}</a>`);
t += `<h1 id="${id}">${name}</h1>`; t += `<h1 id="${id}">${name}</h1>`;
// following lines are content // following lines are content
@ -49,7 +49,7 @@ function populateManual(lang) {
if (location.hash.startsWith("#")) { if (location.hash.startsWith("#")) {
let element = $(location.hash); let element = $(location.hash);
if (element.length) { if (element.length) {
$('html, body').animate({ $("html, body").animate({
scrollTop: element.offset().top scrollTop: element.offset().top
}, 0); }, 0);
} }

View file

@ -4,7 +4,6 @@ html {
body { body {
font-family: Roboto, sans-serif; font-family: Roboto, sans-serif;
font-display: swap;
margin-top: 30px; margin-top: 30px;
margin-bottom: 30px; margin-bottom: 30px;
background-color: #e2e2e2; background-color: #e2e2e2;
@ -25,10 +24,7 @@ body {
margin-top: 20px; margin-top: 20px;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
padding-top: 30px; padding: 30px 40px;
padding-bottom: 30px;
padding-left: 40px;
padding-right: 40px;
background-color: white; background-color: white;
} }

View file

@ -5,7 +5,7 @@ $.ajax({
success: function (value) { success: function (value) {
if (value !== "true") if (value !== "true")
return; return;
$('.closed').html( /*html*/ ` $(".closed").html( /*html*/ `
<div class="alert alert-warning" role="alert"> <div class="alert alert-warning" role="alert">
<strong>My commissions are currently closed.</strong> <strong>My commissions are currently closed.</strong>
<br>Check this site periodically to see if they have opened back up. Please don't contact me until they do. <br>Check this site periodically to see if they have opened back up. Please don't contact me until they do.

View file

@ -1,10 +1,10 @@
const data = [{ const data = [{
id: "nyx", id: "nyx",
name: "Nyx", name: "Nyx",
description: "Nyx is a mod that transforms and improves Minecraft's time of darkness by adding elements and events themed around the moon, stars, and night sky", description: "Nyx is a mod that transforms and improves Minecraft's time of darkness by adding elements and events themed around the moon, stars, and night sky",
testimonial: "Ellpeck has proven time and again to be very talented and open-minded when it comes to mod commissions. Easy and enjoyable to work with, and very patient when it comes to working out any inconsistencies. I'm happy to have collaborated with him!", testimonial: "Ellpeck has proven time and again to be very talented and open-minded when it comes to mod commissions. Easy and enjoyable to work with, and very patient when it comes to working out any inconsistencies. I'm happy to have collaborated with him!",
commissioner: "Drakallen" commissioner: "Drakallen"
}, },
{ {
id: "slingshot", id: "slingshot",
name: "Slingshot", name: "Slingshot",

View file

@ -1,5 +1,5 @@
$("#blog-archive-button").on("click", function () { $("#blog-archive-button").on("click", function () {
let archive = $('#blog-archive'); let archive = $("#blog-archive");
archive.toggle(); archive.toggle();
$(this).html((archive.is(":visible") ? "Hide" : "Show") + " archived posts"); $(this).html((archive.is(":visible") ? "Hide" : "Show") + " archived posts");
}); });

View file

@ -1,5 +1,5 @@
if (localStorage.getItem("notification") !== "true") { if (localStorage.getItem("notification") !== "true") {
$('#cookieinfo').html( /*html*/ ` $("#cookieinfo").html( /*html*/ `
<div class="alert alert-danger alert-dismissible fade show" role="alert"> <div class="alert alert-danger alert-dismissible fade show" role="alert">
This site uses your browser's local storage to store information about your browsing activity. This site uses your browser's local storage to store information about your browsing activity.
<br>For more information, check out the <a href="/privacy">privacy policy</a>. <br>For more information, check out the <a href="/privacy">privacy policy</a>.

View file

@ -1,18 +1,18 @@
const greetings = [ const greetings = [
'Hey!', "Hey!",
'How\'s it going?', "How's it going?",
'Welcome!', "Welcome!",
'Hello to you!', "Hello to you!",
'It\'s nice to see you!', "It's nice to see you!",
'How are you?', "How are you?",
'What\'s up?', "What's up?",
'Hello!', "Hello!",
'You\'re looking great!', "You're looking great!",
'Good day mate!', "Good day mate!",
'Hello friend!', "Hello friend!",
'Howdy!', "Howdy!",
'Guten Tag!', "Guten Tag!",
'Servus!', "Servus!",
"Yo yo yo", "Yo yo yo",
"Good morning!", "Good morning!",
"Good evening!", "Good evening!",
@ -21,4 +21,4 @@ const greetings = [
"Henlo", "Henlo",
"Sul Sul" "Sul Sul"
]; ];
$('#intro-text').html(greetings[Math.floor(Math.random() * greetings.length)]); $("#intro-text").html(greetings[Math.floor(Math.random() * greetings.length)]);

View file

@ -498,4 +498,4 @@ const quotes = [
"I'll kill the lights to lose you in the dark", "I'll kill the lights to lose you in the dark",
"So I don't distroy us, please, baby, disarm me" "So I don't distroy us, please, baby, disarm me"
]; ];
$('#quote-text').html(`🎵 <em>${quotes[Math.floor(Math.random() * quotes.length)]}</em>`); $("#quote-text").html(`🎵 <em>${quotes[Math.floor(Math.random() * quotes.length)]}</em>`);