Compare commits

..

No commits in common. "b3063a4c85430c3111702e59447aaa518b0ae3e8" and "c0ff5af4bb993f0c85414453752696074c40309c" have entirely different histories.

8 changed files with 255 additions and 189 deletions

View file

@ -3,7 +3,7 @@
"href": "https://bsky.app/profile/pancakes.gay", "href": "https://bsky.app/profile/pancakes.gay",
"icon": "bluesky.png", "icon": "bluesky.png",
"mainOnly": true, "mainOnly": true,
"name": "Bluesky", "name": "Bluesky (inactive)",
"username": "@pancakes.gay" "username": "@pancakes.gay"
}, },
{ {
@ -18,27 +18,27 @@
"name": "Discord", "name": "Discord",
"username": "pancakesmeow" "username": "pancakesmeow"
}, },
{
"href": "https://git.meow.company/pancakes",
"icon": "forgejo.png",
"name": "Forgejo",
"username": "pancakes"
},
{ {
"href": "https://github.com/pancakesmeow", "href": "https://github.com/pancakesmeow",
"icon": "github-mark.png", "icon": "github-mark.png",
"iconInvert": true, "iconInvert": true,
"mainOnly": true, "mainOnly": true,
"name": "GitHub", "name": "GitHub (inactive)",
"username": "pancakesmeow" "username": "pancakesmeow"
}, },
{ {
"href": "https://shrimp.meow.company/@pancakes", "href": "https://shrimp.meow.company/@pancakes",
"icon": "iceshrimp-logo-black.svg", "icon": "iceshrimp-logo-black.svg",
"iconInvert": true, "iconInvert": true,
"name": "Iceshrimp.NET (Fediverse)", "name": "meow.company",
"username": "@pancakes@meow.company" "username": "@pancakes@meow.company"
}, },
{
"href": "https://git.meow.company/pancakes",
"icon": "forgejo.png",
"name": "meow forge",
"username": "pancakes"
},
{ {
"href": "https://pronouns.cc/@pancakes", "href": "https://pronouns.cc/@pancakes",
"icon": "pronouns_cc.png", "icon": "pronouns_cc.png",

134
src/data/pages/bookmarks.md Normal file
View file

@ -0,0 +1,134 @@
---
title: Bookmarks
description: Here are a few groups of links to things I think are cool.
footer: The contents of these links fall under many different licenses and therefore this page is unlicensed.
---
## Blogs
Good reads
- [astrid dot tech](https://astrid.tech/)
- [Adventures in Linux and KDE](https://pointieststick.com)
- [Drew DeVault's blog](https://drewdevault.com/)
## Podcasts
Good to listen to
- [The Yascast](https://podcasters.spotify.com/pod/show/yscst)
## SCP Foundation
These are some articles from the SCP Foundation that I like.
***The SCP Foundation is licensed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)***
| Item # | Title | Object Class |
| - | - | - |
| [Item-001](https://scp-wiki.wikidot.com/ouroboros) | Ouroboros: The Cycle Proposal | Thaumiel |
| [SCP-001-EX](https://scp-wiki.wikidot.com/scp-001-ex) | A Good Boy | Explained |
| [SCP-2384](https://scp-wiki.wikidot.com/scp-2384) | The Biggest Duck of All | Euclid |
| [SCP-2440](https://scp-wiki.wikidot.com/scp-2440) | The Sealed King | Keter |
| [SCP-2718](https://scp-wiki.wikidot.com/scp-2718) | What Happens After | `HANDLE_NOT_FOUND` |
| [SCP-2758](https://scp-wiki.wikidot.com/scp-2758) | Self-Containment Process | Safe |
| [SCP-3001](https://scp-wiki.wikidot.com/scp-3001) | Red Reality | Euclid |
| [SCP-3460](https://scp-wiki.wikidot.com/scp-3460) | I'm Going to Change Your Life | ~~Safe~~ Thaumiel |
| [SCP-3823](https://scp-wiki.wikidot.com/scp-3823) | Put On Your Red Shoes | Euclid |
| [SCP-3832](https://scp-wiki.wikidot.com/scp-3832) | Surprise Pillow Fight | Euclid/None/Dark/Notice |
| [SCP-4010](https://scp-wiki.wikidot.com/scp-4010) | Attempt to look at what we accomplished | Keter |
| [SCP-4162](https://scp-wiki.wikidot.com/scp-4162) | An Egg That Kills You For No Reason | Euclid |
| [SCP-5000](https://scp-wiki.wikidot.com/scp-5000) | Why? | Safe |
| [SCP-5141](https://scp-wiki.wikidot.com/scp-5141) | Studebaker Special Six | Euclid/None/Vlam/Notice |
| [SCP-5160](https://scp-wiki.wikidot.com/scp-5160) | Grandma Sheep believes in you | Keter |
| [SCP-5236](https://scp-wiki.wikidot.com/scp-5236) | Ethics Committee Inquest | Safe |
| [SCP-5426](https://scp-wiki.wikidot.com/scp-5426) | I hate my hate blog | Neutralized |
| [SCP-5544](https://scp-wiki.wikidot.com/scp-5544) | Are You Sick of All the Stares? | Safe |
| [SCP-5563](https://scp-wiki.wikidot.com/scp-5563) | A Free Trial of Knowledge Hoard | Safe/None/Vlam/notice |
| [SCP-5956](https://scp-wiki.wikidot.com/scp-5956) | **THEREISNOCANNON** <!--rehype:style=color: red--> | Antithesis/None/Amida/Caution |
| [SCP-6000](https://scp-wiki.wikidot.com/scp-6000) | The Serpent, the Moose, and the Wanderer's Library | Keter |
| [SCP-6140](https://scp-wiki.wikidot.com/scp-6140) | The True Empire | Keter/None/Amida/Critical |
| [SCP-6205](https://scp-wiki.wikidot.com/scp-6205) | Time to do a fraud | Esoteric/Archon/Vlam/Warning |
| [SCP-6468](https://scp-wiki.wikidot.com/scp-6468) | pvp potion by dado | Safe |
| [SCP-6500](https://scp-wiki.wikidot.com/scp-6500) | Inevitable | Finis/Amida |
| [SCP-6572](https://scp-wiki.wikidot.com/scp-6572) | Sword That Cuts Everything | Neutralized |
| [SCP-6610](https://scp-wiki.wikidot.com/scp-6610) | Dial-Up Drama | ~~Safe~~ ~~Euclid~~ Uncontained |
| [SCP-6654](https://scp-wiki.wikidot.com/scp-6654) | What? | Euclid/None/Vlam/Warning |
| [SCP-6673](https://scp-wiki.wikidot.com/scp-6673) | The One Lonely Eleventh | Pagnum/None/Vlam/Notice |
| [SCP-6687](https://scp-wiki.wikidot.com/scp-6687) | 【S H A T T E R F A C E】 | Keter |
| [SCP-6747](https://scp-wiki.wikidot.com/scp-6747) | **CHAOS THEORY** <!--rehype:style=color: #97b--> | Thaumiel/Gödel/Vlam/Caution |
| [SCP-6789](https://scp-wiki.wikidot.com/scp-6789) | Return. Return. **Return.** | Safe |
| [SCP-6820](https://scp-wiki.wikidot.com/scp-6820) | **TERMINATION ATTEMPT** <!--rehype:style=color: #e12--> | Thaumiel/Drygioni/Ekhi/Caution |
| [SCP-7034](https://scp-wiki.wikidot.com/scp-7034) | Æ is for Aerials | Keter/None/Ekhi/Danger |
| [SCP-7179](https://scp-wiki.wikidot.com/scp-7179) | E is for Eternity | Safe |
| [SCP-7376](https://scp-wiki.wikidot.com/scp-7376) | Qayin and Hevel | Esoteric/Multiplex/Multiple/Multiple |
| [SCP-7551](https://scp-wiki.wikidot.com/scp-7551) | Self Insert | Euclid/None/Ekhi/Notice |
| [SCP-7558](https://scp-wiki.wikidot.com/scp-7558) | Always Test Your Backups | ~~Thaumiel~~ Decommissioned |
| [SCP-7570](https://scp-wiki.wikidot.com/scp-7570) | Sow the Wind… | Safe/None/Dark/Notice |
| [SCP-7579](https://scp-wiki.wikidot.com/scp-7579) | Ø IS FOR ØRKESLØS | Euclid |
| [SCP-7680](https://scp-wiki.wikidot.com/scp-7680) | The History of Site-77 Speedrunning | Pending/None/None/None |
| [SCP-7708](https://scp-wiki.wikidot.com/scp-7708) | Autopilot | Safe |
| [SCP-7777](https://scp-wiki.wikidot.com/scp-7777) | Heptaphobia | Keter |
| [SCP-7819](https://scp-wiki.wikidot.com/scp-7819) | no vacancy | Keter/Uncontained |
| [SCP-7896](https://scp-wiki.wikidot.com/scp-7896) | The Elysian Mirror | ~~Safe~~ Neutralized |
| [SCP-7999](https://scp-wiki.wikidot.com/scp-7999) | Meet Me in the Stars | Euclid/Integrated/Dark/Notice |
| [SCP-8001](https://scp-wiki.wikidot.com/scp-8001) | The Edge of the World | Euclid/None/Ekhi/Caution |
| [SCP-8002](https://scp-wiki.wikidot.com/scp-8002) | Maslov's Fire | Thaumiel |
| [SCP-8140](https://scp-wiki.wikidot.com/scp-8140) | **Burial Goods** <!--rehype:style=color: red--> | Safe |
| [SCP-8887](https://scp-wiki.wikidot.com/scp-8887) | I Wish I Could Stay In My Dreams | Uncontained |
| [SCP-8888](https://scp-wiki.wikidot.com/scp-8888) | Eight-Ball | Radix/Vault/Amida/Warning |
## Software
Software that I use or think is cool
### Chat
- [SchildiChat](https://schildi.chat): Matrix client for Android, Linux, macOS, and Windows
- [Vencord](https://vencord.dev): Discord client mod
- [Vesktop](https://github.com/Vencord/Vesktop): Custom Discord client with Vencord
### Fediverse
- [Moshidon](https://lucasggamerm.github.io/moshidon/): The Material You Mastodon client
- [Iceshrimp](https://iceshrimp.dev/iceshrimp/iceshrimp): Fediverse server based on Misskey v12
- [Iceshrimp.NET](https://iceshrimp.dev/iceshrimp/Iceshrimp.NET): Full rewrite of Iceshrimp (WIP)
### Gaming
- [asciiquarium](https://github.com/cmatsuoka/asciiquarium): Fish!
- [MangoHud](https://github.com/flightlessmango/MangoHud): OpenGL and Vulkan performance overlay
- [Prism Launcher](https://prismlauncher.org): Minecraft launcher with multi instance support
- [ProtonUp-Qt](https://davidotek.github.io/protonup-qt): Install and manage Proton-GE for Steam and Wine-GE for Lutris
### Media
- [Auxio](https://github.com/OxygenCobalt/Auxio): A simple, rational music player for Android
- [Feeder](https://github.com/spacecowboy/feeder): RSS/Atom/JSON feed reader for Android
- [Jellyfin](https://jellyfin.org/): Free media server and player
- [mpv](https://mpv.io/): The good media player
- [Seal](https://github.com/JunkFood02/Seal): Video/audio downloader for Android
### Monitoring
- [BTOP++](https://github.com/aristocratos/btop): Resource monitor
- [NVTOP](https://github.com/Syllo/nvtop): GPU monitor for AMD, Apple, Huawei, Intel, NVIDIA, and Qualcomm
### Repositories
- [Codeberg](https://codeberg.org): ~~[GitHub, but for lesbians!](https://web.archive.org/web/20240401124115/https://codeberg.org/)~~ Software development, but free!
- [F-Droid](https://f-droid.org/): Free and Open Source app repository
- [Flathub](https://flathub.org/): Apps for Linux
### Terminal
- [HyFetch](https://github.com/hykilpikonna/hyfetch): Updated neofetch with pride flags :heart:
- [kitty](https://sw.kovidgoyal.net/kitty/): The fast, feature-rich, GPU based terminal emulator
- [lf](https://github.com/gokcehan/lf): File manager for Android, *BSD, Linux, and macOS
### Wayland
- [Fuzzel](https://codeberg.org/dnkl/fuzzel): Application launcher for wlroots compositors
- [river](https://codeberg.org/river/river): Wayland tiling window manager
- [swww](https://github.com/LGFae/swww): Animated wallpaper daemon for Wayland
- [Waybar](https://github.com/Alexays/Waybar): Bar for wlroots compositors

View file

@ -59,6 +59,5 @@
img.header { img.header {
width: 100%; width: 100%;
border-radius: var(--radius);
} }
</style> </style>

View file

@ -1,31 +1,34 @@
<script> <script>
import { page } from "$app/state";
import links from "../../data/links.json"; import links from "../../data/links.json";
</script> </script>
<a href="#main-content" class="skip-to-main">Skip to main content</a> <a href="#main-content" class="skip-to-main">Skip to main content</a>
<nav> <nav>
<span class="brand icon-link"> <span class="brand icon-link">
<img src="/favicon.png" alt="a black cat with large eyes"/> <img src="/favicon.png" alt="a black cat with large eyes" />
<a href="/">pancakes</a> <a href="/">pancakes</a>
</span> </span>
<ul class="links"> {#if page.url.pathname !== "/"}
{#each links as link} <ul class="links">
{#if link.href && !link.mainOnly} {#each links as link}
<li> {#if link.href && !link.mainOnly}
<div class="icon-link"> <li>
<img <div class="icon-link">
<img
class={link.iconInvert ? "invert" : ""} class={link.iconInvert ? "invert" : ""}
src={"/assets/icons/" + link.icon} src={"/assets/icons/" + link.icon}
alt={link.name} alt={link.name}
/> />
<a href={link.href} target="_blank"> <a href={link.href} target="_blank">
{link.name} {link.name}
</a> </a>
</div> </div>
</li> </li>
{/if} {/if}
{/each} {/each}
</ul> </ul>
{/if}
</nav> </nav>
<style> <style>
@ -61,17 +64,8 @@
list-style: none; list-style: none;
} }
.icon-link > a { a {
padding-left: 0.15rem; color: var(--text);
line-height: 2em;
}
.icon-link > img {
display: inline-block;
width: 2em;
max-height: 2em;
vertical-align: middle;
margin-right: 0.25rem;
} }
.brand { .brand {

View file

@ -1,5 +1,5 @@
<script> <script>
import {page} from "$app/state"; import { page } from "$app/state";
import Footer from "$lib/components/Footer.svelte"; import Footer from "$lib/components/Footer.svelte";
import Navbar from "$lib/components/Navbar.svelte"; import Navbar from "$lib/components/Navbar.svelte";
import "./inter.css"; import "./inter.css";
@ -10,33 +10,31 @@
*/ */
/** @type {Props} */ /** @type {Props} */
let {children} = $props(); let { children } = $props();
</script> </script>
<svelte:head> <svelte:head>
<title> <title>
{page.data.title ? page.data.title + " | pancakes" : "pancakes"} {page.data.title ? page.data.title + " | pancakes" : "pancakes"}
</title> </title>
<meta name="description" content={page.data.description || "🐈‍⬛"}/> <meta name="description" content={page.data.description || "🐈‍⬛"} />
<meta property="og:site_name" content="pancakes"/> <meta property="og:site_name" content="pancakes" />
<meta <meta
property="og:url" property="og:url"
content={"https://pancakes.gay" + page.url.pathname} content={"https://pancakes.gay" + page.url.pathname}
/> />
<meta property="og:title" content={page.data.title || "pancakes"}/> <meta property="og:title" content={page.data.title || "pancakes"} />
{#if page.data.header} {#if page.data.header}
<meta property="og:type" content="article"/> <meta property="og:type" content="article" />
{:else} {:else}
<meta property="og:type" content="website"/> <meta property="og:type" content="website" />
<meta property="og:image" content="/favicon.png"/> <meta property="og:image" content="/favicon.png" />
<meta property="og:image:alt" content="a black cat with large eyes"/> <meta property="og:image:alt" content="a black cat with large eyes" />
{/if} {/if}
</svelte:head> </svelte:head>
{#if page.url.pathname !== "/"} <Navbar />
<Navbar/>
{/if}
{@render children?.()} {@render children?.()}
<Footer/> <Footer />

View file

@ -26,10 +26,7 @@
Tags: "black_cat", Tags: "black_cat",
}, },
}); });
if (resp.ok) { if (resp.ok) alert(`Sent: ${message}`);
document.getElementById("ntfy-message").value = "";
alert(`Sent: ${message}`);
}
ntfyLock = false; ntfyLock = false;
} }
@ -45,42 +42,40 @@
} }
</script> </script>
<header>
<img src="/favicon.png" alt="a black cat with large eyes"/>
<h1>pancakes</h1>
</header>
<main id="main-content"> <main id="main-content">
<p> <header>
I'm a cat <abbr title="non-binary">enby</abbr> (<abbr <h1 id="about-me">About Me</h1>
title="they/them/their/theirs/themself or it/it/its/its/itself in English">they/it</abbr>) from Australia <p>
that likes cats, Linux, and programming. You can find my I'm a 22 year old enby (<em>they/it</em>) from Australia (it's
links, projects, and other pages here. <DateTime display="time" timeZone="Australia/Brisbane"/>
</p> ). I like
cats, Linux, and programming in C# and Python (for now). You can
find my links, projects, and other pages here.
</p>
</header>
<h2 id="accounts">Accounts</h2> <h2 id="accounts">Accounts</h2>
<p>Other places you can find me</p> <p>Other places you can find me</p>
<ul class="account-links"> {#each links as link}
{#each links as link} <div class="icon-link">
<li class="foreground card"> <img
<img class={link.iconInvert ? "invert" : ""} src={"/assets/icons/" + link.icon} alt={link.name}/> class={link.iconInvert ? "invert" : ""}
<span class="account-details"> src={"/assets/icons/" + link.icon}
{#if link.href} alt={link.name}
<a href={link.href} rel="me" target="_blank"> />
{link.name} {#if link.href}
</a> <a href={link.href} rel="me" target="_blank">
{:else} {link.name}: {link.username}
<span> </a>
{link.name} {:else}
</span> <span>
{/if} {link.name}: {link.username}
<span class="account-username">{link.username}</span>
</span> </span>
</li> {/if}
{/each} </div>
</ul> {/each}
<h2 id="projects">Projects</h2> <h2 id="projects">Projects</h2>
@ -327,26 +322,26 @@
/> />
</a> </a>
</li> </li>
<li> <!-- <li>-->
<a <!-- <a-->
href="https://blueb.pages.gay" <!-- href="https://blueb.pages.gay"-->
target="_blank" <!-- target="_blank"-->
title="blueb's website" <!-- title="blueb's website"-->
> <!-- >-->
<img <!-- <img-->
src="/assets/buttons/kattgutte.png" <!-- src="https://blueb.pages.gay/_nuxt/kattgutte.D3vLs2tl.png"-->
alt="kattgutte er ikke ekte" <!-- alt="kattgutte er ikke ekte"-->
/> <!-- />-->
</a> <!-- </a>-->
</li> <!-- </li>-->
<li> <!-- <li>-->
<a href="https://elke.cafe/" target="_blank" title="elke.cafe"> <!-- <a href="https://elke.cafe/" target="_blank" title="elke.cafe">-->
<img <!-- <img-->
src="https://elke.cafe/assets/images/buttons/elke.cafe.gif" <!-- src="https://elke.cafe/assets/images/buttons/elke.cafe.gif"-->
alt="elke dot cafe" <!-- alt="elke dot cafe"-->
/> <!-- />-->
</a> <!-- </a>-->
</li> <!-- </li>-->
<li> <li>
<a <a
href="https://eris.meows.gay/" href="https://eris.meows.gay/"
@ -416,18 +411,18 @@
/> />
</a> </a>
</li> </li>
<li> <!-- <li>-->
<a <!-- <a-->
href="https://floof.gay/" <!-- href="https://floof.gay/"-->
target="_blank" <!-- target="_blank"-->
title="olivia" <!-- title="home - olivia"-->
> <!-- >-->
<img <!-- <img-->
src="https://floof.gay/img/badges/olivia.png" <!-- src="https://floof.gay/img/badges/oli.svg"-->
alt="oli" <!-- alt="oli"-->
/> <!-- />-->
</a> <!-- </a>-->
</li> <!-- </li>-->
<li> <li>
<a <a
href="https://synth.download" href="https://synth.download"
@ -501,48 +496,6 @@
</main> </main>
<style> <style>
header {
padding-top: 4rem;
text-align: center;
}
header img {
height: 8rem;
border-radius: var(--radius);
}
.account-links {
display: flex;
flex-direction: row;
flex-wrap: wrap;
gap: 1rem;
padding-left: 0;
list-style: none;
}
.account-links li {
display: flex;
flex-direction: row;
align-items: center;
gap: 1rem;
margin-top: 0;
}
.account-links img {
width: 2em;
height: 2em;
object-fit: contain;
}
.account-details {
display: flex;
flex-direction: column;
}
.account-username {
font-size: 0.9em;
}
.page-links { .page-links {
padding-left: 0; padding-left: 0;
list-style: none; list-style: none;
@ -568,14 +521,4 @@
width: 88px; width: 88px;
height: 31px; height: 31px;
} }
@media screen and (max-width: 768px) {
.account-links {
flex-direction: column;
}
.account-username {
font-size: inherit;
}
}
</style> </style>

View file

@ -103,19 +103,16 @@ video {
} }
code { code {
padding-left: 0.3em; padding-left: 0.15em;
padding-right: 0.3em; padding-right: 0.15em;
background-color: var(--foreground);
border: 2px dotted color-mix(in srgb, var(--foreground) 60%, var(--accent));
border-radius: var(--radius);
font-family: "Fira Code VF", monospace; font-family: "Fira Code VF", monospace;
} }
pre code { pre code {
display: block; display: block;
padding: 1rem; width: 100%;
padding: 0.5rem;
overflow-x: scroll; overflow-x: scroll;
background-color: var(--foreground);
} }
details[open] { details[open] {
@ -148,10 +145,7 @@ mark {
} }
button, button,
.button,
input[type="submit"] { input[type="submit"] {
display: inline-block;
margin: 0.5em;
padding: 0.5em 1em; padding: 0.5em 1em;
background-color: color-mix(in srgb, var(--foreground) 70%, var(--accent)); background-color: color-mix(in srgb, var(--foreground) 70%, var(--accent));
@ -164,7 +158,6 @@ input[type="submit"] {
} }
button:hover, button:hover,
.button:hover,
input[type="submit"]:hover { input[type="submit"]:hover {
background-color: color-mix(in srgb, var(--foreground) 40%, var(--accent)); background-color: color-mix(in srgb, var(--foreground) 40%, var(--accent));
} }
@ -174,15 +167,6 @@ input[type="submit"][disabled] {
opacity: 0.6; opacity: 0.6;
} }
a.button {
color: inherit;
text-decoration: none;
}
abbr[title] {
cursor: help;
}
input[type="text"] { input[type="text"] {
padding: 0.5em; padding: 0.5em;
@ -217,6 +201,20 @@ table.rows tbody tr:nth-child(2n) {
background-color: transparent; background-color: transparent;
} }
.icon-link > a,
.icon-link > span {
padding-left: 0.15rem;
line-height: 2em;
}
.icon-link > img {
display: inline-block;
width: 2em;
max-height: 2em;
vertical-align: middle;
margin-right: 0.25rem;
}
.upper { .upper {
text-transform: uppercase; text-transform: uppercase;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB