Compare commits

...

10 commits

Author SHA1 Message Date
279135e079
Fix broken notice 2025-03-26 17:16:53 +10:00
5e214cfd26
Remove sveltejs/adapter-auto 2025-03-26 17:12:44 +10:00
7f73a0dd7e
Update Vite 2025-03-26 17:05:09 +10:00
bbd329ea4c
Update buttons 2025-03-26 16:47:24 +10:00
9aca888d2a
Removed unused CSS style 2025-03-26 16:38:15 +10:00
f3e92b7b64
Remove green leftovers 2025-03-26 16:36:56 +10:00
e1c2565db2
Migrate from Svelte 4 to Svelte 5 2025-03-26 16:34:07 +10:00
6043dece34
Add .idea 2025-03-26 16:24:47 +10:00
89ffe5f033
Update eslint 2025-03-26 16:22:30 +10:00
1727b4a378
Update dependencies 2025-03-26 16:01:05 +10:00
15 changed files with 1908 additions and 1484 deletions

8
.idea/.gitignore generated vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

4
.idea/encodings.xml generated Normal file
View file

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding" addBOMForNewFiles="with BOM under Windows, with no BOM otherwise" />
</project>

View file

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
</profile>
</component>

8
.idea/modules.xml generated Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/trypancakes.com.iml" filepath="$PROJECT_DIR$/.idea/trypancakes.com.iml" />
</modules>
</component>
</project>

12
.idea/trypancakes.com.iml generated Normal file
View file

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<excludeFolder url="file://$MODULE_DIR$/.tmp" />
<excludeFolder url="file://$MODULE_DIR$/temp" />
<excludeFolder url="file://$MODULE_DIR$/tmp" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

6
.idea/vcs.xml generated Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

3166
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -12,23 +12,22 @@
"deploy": "git pull; npm ci; vite build; sudo rm -r /srv/website; sudo cp --no-preserve=ownership -r build /srv/website" "deploy": "git pull; npm ci; vite build; sudo rm -r /srv/website; sudo cp --no-preserve=ownership -r build /srv/website"
}, },
"devDependencies": { "devDependencies": {
"@sveltejs/adapter-auto": "^3.0.0", "@sveltejs/adapter-static": "^3.0.8",
"@sveltejs/adapter-static": "^3.0.1", "@sveltejs/kit": "^2.20.2",
"@sveltejs/kit": "^2.0.0", "@sveltejs/vite-plugin-svelte": "^5.0.3",
"@sveltejs/vite-plugin-svelte": "^3.0.0", "@types/eslint": "^9.6.1",
"@types/eslint": "^8.56.0", "eslint": "^9.23.0",
"eslint": "^8.56.0", "eslint-plugin-svelte": "^2.46.1",
"eslint-plugin-svelte": "^2.35.1", "mdsvex": "^0.11.2",
"mdsvex": "^0.11.0",
"rehype-attr": "^3.0.3", "rehype-attr": "^3.0.3",
"rehype-external-links": "^3.0.0", "rehype-external-links": "^3.0.0",
"remark-emoji": "^4.0.1", "remark-emoji": "^4.0.1",
"remark-gfm": "^4.0.0", "remark-gfm": "^4.0.1",
"svelte": "^4.2.7", "svelte": "^5.25.3",
"svelte-check": "^3.6.0", "svelte-check": "^4.1.5",
"tslib": "^2.4.1", "tslib": "^2.8.1",
"typescript": "^5.0.0", "typescript": "^5.8.2",
"vite": "^5.0.3" "vite": "^6.2.3"
}, },
"type": "module" "type": "module"
} }

View file

@ -22,8 +22,7 @@ Good to listen to
These are some articles from the SCP Foundation that I like. These are some articles from the SCP Foundation that I like.
> [!NOTE] ***The SCP Foundation is licensed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)***
> The SCP Foundation is licensed under [CC BY-SA 3.0](https://creativecommons.org/licenses/by-sa/3.0/)
| Item # | Title | Object Class | | Item # | Title | Object Class |
| - | - | - | | - | - | - |

View file

@ -1,45 +1,45 @@
<script> <script>
import DateTime from "./DateTime.svelte"; import DateTime from "./DateTime.svelte";
import { page } from "$app/stores"; import { page } from "$app/state";
</script> </script>
<svelte:head> <svelte:head>
{#if $page.data.header} {#if page.data.header}
<meta property="og:image" content={$page.data.header} /> <meta property="og:image" content={page.data.header} />
{#if $page.data.header_alt} {#if page.data.header_alt}
<meta property="og:image:alt" content={$page.data.header_alt} /> <meta property="og:image:alt" content={page.data.header_alt} />
{/if} {/if}
<meta property="og:description" content={$page.data.description} /> <meta property="og:description" content={page.data.description} />
{/if} {/if}
</svelte:head> </svelte:head>
<header id="main-content"> <header id="main-content">
{#if $page.data.header} {#if page.data.header}
<figure> <figure>
<img <img
src={$page.data.header} src={page.data.header}
alt={$page.data.header_alt || "header"} alt={page.data.header_alt || "header"}
class="header" class="header"
/> />
{#if $page.data.header_caption} {#if page.data.header_caption}
<figcaption>{$page.data.header_caption}</figcaption> <figcaption>{page.data.header_caption}</figcaption>
{/if} {/if}
</figure> </figure>
{/if} {/if}
<hgroup> <hgroup>
<h1>{$page.data.title}</h1> <h1>{page.data.title}</h1>
<p>{$page.data.description}</p> <p>{page.data.description}</p>
</hgroup> </hgroup>
{#if $page.data.published} {#if page.data.published}
<p> <p>
<small> <small>
Published: Published:
<DateTime datetime={$page.data.published} display="date" /> <DateTime datetime={page.data.published} display="date" />
{#if $page.data.edited} {#if page.data.edited}
&bull; Last edited: &bull; Last edited:
<DateTime datetime={$page.data.edited} display="dateTime" /> <DateTime datetime={page.data.edited} display="dateTime" />
{/if} {/if}
</small> </small>
</p> </p>

View file

@ -1,12 +1,18 @@
<script> <script>
import { browser } from "$app/environment"; import { browser } from "$app/environment";
/** @type string | undefined */
export let datetime = undefined;
/** @type "date" | "dateTime" | "time" */
export let display = "date"; /**
/** @type string | undefined */ * @typedef {Object} Props
export let timeZone = undefined; * @property {any} [datetime]
* @property {string} [display]
* @property {any} [timeZone]
*/
/** @type {Props} */
let { datetime = undefined, display = "date", timeZone = undefined } = $props();
const date = datetime ? Date.parse(datetime) : Date.now(); const date = datetime ? Date.parse(datetime) : Date.now();

View file

@ -1,5 +1,5 @@
<script> <script>
import { page } from "$app/stores"; import { page } from "$app/state";
import links from "../../data/links.json"; import links from "../../data/links.json";
</script> </script>
@ -9,7 +9,7 @@
<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>
{#if $page.url.pathname !== "/"} {#if page.url.pathname !== "/"}
<ul class="links"> <ul class="links">
{#each links as link} {#each links as link}
{#if link.href && !link.mainOnly} {#if link.href && !link.mainOnly}

View file

@ -1,30 +1,29 @@
<script> <script>
import { browser } from "$app/environment"; import { page } from "$app/state";
import { page } from "$app/stores";
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 "./style.css"; import "./style.css";
/**
* @typedef {Object} Props
* @property {import('svelte').Snippet} [children]
*/
const green = browser /** @type {Props} */
? window.localStorage.getItem("green") === "true" let { children } = $props();
: false;
</script> </script>
<svelte:head> <svelte:head>
{#if green}
<link rel="stylesheet" href="/assets/green.css" />
{/if}
<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" />
@ -35,6 +34,6 @@
<Navbar /> <Navbar />
<slot /> {@render children?.()}
<Footer /> <Footer />

View file

@ -5,7 +5,7 @@
const pages = getPages(); const pages = getPages();
let ntfyLock = false; let ntfyLock = $state(false);
async function sendNtfyMessage() { async function sendNtfyMessage() {
if (ntfyLock) return; if (ntfyLock) return;
ntfyLock = true; ntfyLock = true;
@ -123,7 +123,7 @@
<h3 id="buttons">Buttons</h3> <h3 id="buttons">Buttons</h3>
<p>Other people and entities</p> <p>pancakes (me)</p>
<ul class="buttons"> <ul class="buttons">
<li> <li>
@ -131,16 +131,19 @@
<img src="/assets/88x31.png" alt="pancakes" /> <img src="/assets/88x31.png" alt="pancakes" />
</a> </a>
</li> </li>
<li> <li>
<a href="https://meow.company" target="_blank" title="meow.company"> <a href="https://meow.company" target="_blank" title="meow.company">
<img <img
src="https://meow.company/88x31.png" src="https://meow.company/88x31.png"
alt="meow dot company" alt="meow dot company"
/> />
</a> </a>
</li> </li>
</ul>
<p>Other people and entities</p>
<ul class="buttons">
<li> <li>
<a href="https://aagaming.me/" target="_blank" title="aagaming"> <a href="https://aagaming.me/" target="_blank" title="aagaming">
<img <img
@ -161,18 +164,18 @@
/> />
</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="https://blueb.pages.gay/_nuxt/kattgutte.D3vLs2tl.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
@ -233,20 +236,20 @@
title="nelle.observer" title="nelle.observer"
> >
<img <img
src="https://nelle.observer/assets/images/badges/mine/nelleobserver.gif" src="https://nelle.observer/assets/images/badges/mine/nelleobserver-gray.gif"
alt="nelle observer" alt="nelle observer"
/> />
</a> </a>
</li> </li>
<li> <li>
<a <a
href="https://sneexy.pages.gay/" href="https://synth.download"
target="_blank" target="_blank"
title="sneexy dot pages dot gay" title="synth download!"
> >
<img <img
src="https://sneexy.pages.gay/assets/buttons/sneexy.png" src="https://synth.download/assets/buttons/synth.download.svg"
alt="Sneexy" alt="Synth.Download!"
/> />
</a> </a>
</li> </li>
@ -396,7 +399,7 @@
</p> </p>
<input <input
on:input={updateNtfyCharCount} oninput={updateNtfyCharCount}
type="text" type="text"
id="ntfy-message" id="ntfy-message"
name="ntfy-message" name="ntfy-message"
@ -408,7 +411,7 @@
128 128
</label> </label>
<br /> <br />
<button on:click={sendNtfyMessage} style="margin-top: 1rem;" disabled={ntfyLock}> Send </button> <button onclick={sendNtfyMessage} style="margin-top: 1rem;" disabled={ntfyLock}> Send </button>
</main> </main>
<style> <style>
@ -448,10 +451,6 @@
list-style: none; list-style: none;
} }
ul.buttons + ul.buttons {
margin-top: 1rem;
}
ul.buttons img { ul.buttons img {
image-rendering: pixelated; image-rendering: pixelated;
width: 88px; width: 88px;

View file

@ -2,8 +2,14 @@
import ArticleHeader from "$lib/components/ArticleHeader.svelte"; import ArticleHeader from "$lib/components/ArticleHeader.svelte";
import { error } from "@sveltejs/kit"; import { error } from "@sveltejs/kit";
/** @type {import("./$types").PageData} */
export let data; /**
* @typedef {Object} Props
* @property {import("./$types").PageData} data
*/
/** @type {Props} */
let { data } = $props();
// hopefully this will get my attention // hopefully this will get my attention
if (!data.title) error(500, "there is no title dumbass"); if (!data.title) error(500, "there is no title dumbass");
@ -13,5 +19,5 @@
<article id="main-content"> <article id="main-content">
<ArticleHeader /> <ArticleHeader />
<svelte:component this={data.content} /> <data.content />
</article> </article>