Compare commits
10 commits
5529f3bff1
...
279135e079
Author | SHA1 | Date | |
---|---|---|---|
279135e079 | |||
5e214cfd26 | |||
7f73a0dd7e | |||
bbd329ea4c | |||
9aca888d2a | |||
f3e92b7b64 | |||
e1c2565db2 | |||
6043dece34 | |||
89ffe5f033 | |||
1727b4a378 |
15 changed files with 1908 additions and 1484 deletions
8
.idea/.gitignore
generated
vendored
Normal file
8
.idea/.gitignore
generated
vendored
Normal 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
4
.idea/encodings.xml
generated
Normal 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>
|
6
.idea/inspectionProfiles/Project_Default.xml
generated
Normal file
6
.idea/inspectionProfiles/Project_Default.xml
generated
Normal 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
8
.idea/modules.xml
generated
Normal 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
12
.idea/trypancakes.com.iml
generated
Normal 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
6
.idea/vcs.xml
generated
Normal 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
3166
package-lock.json
generated
File diff suppressed because it is too large
Load diff
29
package.json
29
package.json
|
@ -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"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sveltejs/adapter-auto": "^3.0.0",
|
||||
"@sveltejs/adapter-static": "^3.0.1",
|
||||
"@sveltejs/kit": "^2.0.0",
|
||||
"@sveltejs/vite-plugin-svelte": "^3.0.0",
|
||||
"@types/eslint": "^8.56.0",
|
||||
"eslint": "^8.56.0",
|
||||
"eslint-plugin-svelte": "^2.35.1",
|
||||
"mdsvex": "^0.11.0",
|
||||
"@sveltejs/adapter-static": "^3.0.8",
|
||||
"@sveltejs/kit": "^2.20.2",
|
||||
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
||||
"@types/eslint": "^9.6.1",
|
||||
"eslint": "^9.23.0",
|
||||
"eslint-plugin-svelte": "^2.46.1",
|
||||
"mdsvex": "^0.11.2",
|
||||
"rehype-attr": "^3.0.3",
|
||||
"rehype-external-links": "^3.0.0",
|
||||
"remark-emoji": "^4.0.1",
|
||||
"remark-gfm": "^4.0.0",
|
||||
"svelte": "^4.2.7",
|
||||
"svelte-check": "^3.6.0",
|
||||
"tslib": "^2.4.1",
|
||||
"typescript": "^5.0.0",
|
||||
"vite": "^5.0.3"
|
||||
"remark-gfm": "^4.0.1",
|
||||
"svelte": "^5.25.3",
|
||||
"svelte-check": "^4.1.5",
|
||||
"tslib": "^2.8.1",
|
||||
"typescript": "^5.8.2",
|
||||
"vite": "^6.2.3"
|
||||
},
|
||||
"type": "module"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,8 +22,7 @@ Good to listen to
|
|||
|
||||
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 |
|
||||
| - | - | - |
|
||||
|
|
|
@ -1,45 +1,45 @@
|
|||
<script>
|
||||
import DateTime from "./DateTime.svelte";
|
||||
import { page } from "$app/stores";
|
||||
import { page } from "$app/state";
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
{#if $page.data.header}
|
||||
<meta property="og:image" content={$page.data.header} />
|
||||
{#if $page.data.header_alt}
|
||||
<meta property="og:image:alt" content={$page.data.header_alt} />
|
||||
{#if page.data.header}
|
||||
<meta property="og:image" content={page.data.header} />
|
||||
{#if page.data.header_alt}
|
||||
<meta property="og:image:alt" content={page.data.header_alt} />
|
||||
{/if}
|
||||
<meta property="og:description" content={$page.data.description} />
|
||||
<meta property="og:description" content={page.data.description} />
|
||||
{/if}
|
||||
</svelte:head>
|
||||
|
||||
<header id="main-content">
|
||||
{#if $page.data.header}
|
||||
{#if page.data.header}
|
||||
<figure>
|
||||
<img
|
||||
src={$page.data.header}
|
||||
alt={$page.data.header_alt || "header"}
|
||||
src={page.data.header}
|
||||
alt={page.data.header_alt || "header"}
|
||||
class="header"
|
||||
/>
|
||||
{#if $page.data.header_caption}
|
||||
<figcaption>{$page.data.header_caption}</figcaption>
|
||||
{#if page.data.header_caption}
|
||||
<figcaption>{page.data.header_caption}</figcaption>
|
||||
{/if}
|
||||
</figure>
|
||||
{/if}
|
||||
|
||||
<hgroup>
|
||||
<h1>{$page.data.title}</h1>
|
||||
<p>{$page.data.description}</p>
|
||||
<h1>{page.data.title}</h1>
|
||||
<p>{page.data.description}</p>
|
||||
</hgroup>
|
||||
|
||||
{#if $page.data.published}
|
||||
{#if page.data.published}
|
||||
<p>
|
||||
<small>
|
||||
Published:
|
||||
<DateTime datetime={$page.data.published} display="date" />
|
||||
{#if $page.data.edited}
|
||||
<DateTime datetime={page.data.published} display="date" />
|
||||
{#if page.data.edited}
|
||||
• Last edited:
|
||||
<DateTime datetime={$page.data.edited} display="dateTime" />
|
||||
<DateTime datetime={page.data.edited} display="dateTime" />
|
||||
{/if}
|
||||
</small>
|
||||
</p>
|
||||
|
|
|
@ -1,12 +1,18 @@
|
|||
<script>
|
||||
import { browser } from "$app/environment";
|
||||
|
||||
/** @type string | undefined */
|
||||
export let datetime = undefined;
|
||||
/** @type "date" | "dateTime" | "time" */
|
||||
export let display = "date";
|
||||
/** @type string | undefined */
|
||||
export let timeZone = undefined;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @typedef {Object} Props
|
||||
* @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();
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<script>
|
||||
import { page } from "$app/stores";
|
||||
import { page } from "$app/state";
|
||||
import links from "../../data/links.json";
|
||||
</script>
|
||||
|
||||
|
@ -9,7 +9,7 @@
|
|||
<img src="/favicon.png" alt="a black cat with large eyes" />
|
||||
<a href="/">pancakes</a>
|
||||
</span>
|
||||
{#if $page.url.pathname !== "/"}
|
||||
{#if page.url.pathname !== "/"}
|
||||
<ul class="links">
|
||||
{#each links as link}
|
||||
{#if link.href && !link.mainOnly}
|
||||
|
|
|
@ -1,30 +1,29 @@
|
|||
<script>
|
||||
import { browser } from "$app/environment";
|
||||
import { page } from "$app/stores";
|
||||
import { page } from "$app/state";
|
||||
import Footer from "$lib/components/Footer.svelte";
|
||||
import Navbar from "$lib/components/Navbar.svelte";
|
||||
import "./style.css";
|
||||
/**
|
||||
* @typedef {Object} Props
|
||||
* @property {import('svelte').Snippet} [children]
|
||||
*/
|
||||
|
||||
const green = browser
|
||||
? window.localStorage.getItem("green") === "true"
|
||||
: false;
|
||||
/** @type {Props} */
|
||||
let { children } = $props();
|
||||
</script>
|
||||
|
||||
<svelte:head>
|
||||
{#if green}
|
||||
<link rel="stylesheet" href="/assets/green.css" />
|
||||
{/if}
|
||||
<title>
|
||||
{$page.data.title ? $page.data.title + " | pancakes" : "pancakes"}
|
||||
{page.data.title ? page.data.title + " | pancakes" : "pancakes"}
|
||||
</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:url"
|
||||
content={"https://pancakes.gay" + $page.url.pathname}
|
||||
content={"https://pancakes.gay" + page.url.pathname}
|
||||
/>
|
||||
<meta property="og:title" content={$page.data.title || "pancakes"} />
|
||||
{#if $page.data.header}
|
||||
<meta property="og:title" content={page.data.title || "pancakes"} />
|
||||
{#if page.data.header}
|
||||
<meta property="og:type" content="article" />
|
||||
{:else}
|
||||
<meta property="og:type" content="website" />
|
||||
|
@ -35,6 +34,6 @@
|
|||
|
||||
<Navbar />
|
||||
|
||||
<slot />
|
||||
{@render children?.()}
|
||||
|
||||
<Footer />
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
const pages = getPages();
|
||||
|
||||
let ntfyLock = false;
|
||||
let ntfyLock = $state(false);
|
||||
async function sendNtfyMessage() {
|
||||
if (ntfyLock) return;
|
||||
ntfyLock = true;
|
||||
|
@ -123,7 +123,7 @@
|
|||
|
||||
<h3 id="buttons">Buttons</h3>
|
||||
|
||||
<p>Other people and entities</p>
|
||||
<p>pancakes (me)</p>
|
||||
|
||||
<ul class="buttons">
|
||||
<li>
|
||||
|
@ -131,16 +131,19 @@
|
|||
<img src="/assets/88x31.png" alt="pancakes" />
|
||||
</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="https://meow.company" target="_blank" title="meow.company">
|
||||
<img
|
||||
src="https://meow.company/88x31.png"
|
||||
alt="meow dot company"
|
||||
src="https://meow.company/88x31.png"
|
||||
alt="meow dot company"
|
||||
/>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>Other people and entities</p>
|
||||
|
||||
<ul class="buttons">
|
||||
<li>
|
||||
<a href="https://aagaming.me/" target="_blank" title="aagaming">
|
||||
<img
|
||||
|
@ -161,18 +164,18 @@
|
|||
/>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://blueb.pages.gay"
|
||||
target="_blank"
|
||||
title="blueb's website"
|
||||
>
|
||||
<img
|
||||
src="https://blueb.pages.gay/_nuxt/kattgutte.D3vLs2tl.png"
|
||||
alt="kattgutte er ikke ekte"
|
||||
/>
|
||||
</a>
|
||||
</li>
|
||||
<!-- <li>-->
|
||||
<!-- <a-->
|
||||
<!-- href="https://blueb.pages.gay"-->
|
||||
<!-- target="_blank"-->
|
||||
<!-- title="blueb's website"-->
|
||||
<!-- >-->
|
||||
<!-- <img-->
|
||||
<!-- src="https://blueb.pages.gay/_nuxt/kattgutte.D3vLs2tl.png"-->
|
||||
<!-- alt="kattgutte er ikke ekte"-->
|
||||
<!-- />-->
|
||||
<!-- </a>-->
|
||||
<!-- </li>-->
|
||||
<li>
|
||||
<a href="https://elke.cafe/" target="_blank" title="elke.cafe">
|
||||
<img
|
||||
|
@ -233,20 +236,20 @@
|
|||
title="nelle.observer"
|
||||
>
|
||||
<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"
|
||||
/>
|
||||
</a>
|
||||
</li>
|
||||
<li>
|
||||
<a
|
||||
href="https://sneexy.pages.gay/"
|
||||
href="https://synth.download"
|
||||
target="_blank"
|
||||
title="sneexy dot pages dot gay"
|
||||
title="synth download!"
|
||||
>
|
||||
<img
|
||||
src="https://sneexy.pages.gay/assets/buttons/sneexy.png"
|
||||
alt="Sneexy"
|
||||
src="https://synth.download/assets/buttons/synth.download.svg"
|
||||
alt="Synth.Download!"
|
||||
/>
|
||||
</a>
|
||||
</li>
|
||||
|
@ -396,7 +399,7 @@
|
|||
</p>
|
||||
|
||||
<input
|
||||
on:input={updateNtfyCharCount}
|
||||
oninput={updateNtfyCharCount}
|
||||
type="text"
|
||||
id="ntfy-message"
|
||||
name="ntfy-message"
|
||||
|
@ -408,7 +411,7 @@
|
|||
128
|
||||
</label>
|
||||
<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>
|
||||
|
||||
<style>
|
||||
|
@ -448,10 +451,6 @@
|
|||
list-style: none;
|
||||
}
|
||||
|
||||
ul.buttons + ul.buttons {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
ul.buttons img {
|
||||
image-rendering: pixelated;
|
||||
width: 88px;
|
||||
|
|
|
@ -2,8 +2,14 @@
|
|||
import ArticleHeader from "$lib/components/ArticleHeader.svelte";
|
||||
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
|
||||
if (!data.title) error(500, "there is no title dumbass");
|
||||
|
@ -13,5 +19,5 @@
|
|||
<article id="main-content">
|
||||
<ArticleHeader />
|
||||
|
||||
<svelte:component this={data.content} />
|
||||
<data.content />
|
||||
</article>
|
||||
|
|
Loading…
Add table
Reference in a new issue