aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/blog/Post.svelte53
-rw-r--r--src/lib/blog/Post.ts1
-rw-r--r--src/lib/console.ts3
-rw-r--r--src/lib/storage.ts2
m---------src/lib/vendor/storage0
5 files changed, 52 insertions, 7 deletions
diff --git a/src/lib/blog/Post.svelte b/src/lib/blog/Post.svelte
index 057f62b..9fcc319 100644
--- a/src/lib/blog/Post.svelte
+++ b/src/lib/blog/Post.svelte
@@ -3,6 +3,9 @@
</script>
<script lang="ts">
+ import { building, dev } from '$app/environment';
+ import { page } from '$app/state';
+
import { parsePostMetadata, type Post } from './Post';
let {
@@ -16,6 +19,10 @@
let meta = $derived(parsePostMetadata(post.metadata));
let PostComp = $derived(post.default);
+
+ let ignorePublishedStatus = $derived(
+ !building && page.url.searchParams.has('ignore-unpublished'),
+ );
</script>
<svelte:head>
@@ -23,14 +30,41 @@
<meta name="description" content={meta.blurb} />
</svelte:head>
+{#snippet unpublished()}
+ <div
+ class="p-4 rounded-lg bg-neutral-950 border-accent-primary border-[1.8px] my-4 sticky top-4 z-50"
+ >
+ <h1 class="text-xl mb-2">Unpublished</h1>
+ <p class="my-1.5 leading-5">
+ This article has either not yet been published or has been retracted.<br
+ />
+ This could be due to being unfinished, factual errors, bad formulations, pending
+ significant corrections, or any number of other reasons.
+ </p>
+ {#if !ignorePublishedStatus && dev}
+ <p class="mt-1 5">
+ <a
+ href={new URL('?ignore-unpublished=+', page.url).href}
+ class="quicklink">Ignore and read anyway</a
+ >
+ </p>
+ {:else if ignorePublishedStatus}
+ <p class="mt-1.5">Here be dragons.</p>
+ {/if}
+ </div>
+{/snippet}
+
<div class="flex justify-center">
<div class="max-w-2xl w-full">
<h1 class="font-space-grotesk text-5xl mt-8 mb-4">
- <span class="text-accent-primary select-none">:&nbsp;</span
- >{meta.title}<span class="text-accent-primary select-none">;</span>
+ <span class="select-none"
+ ><span class="text-red-400">❯ </span> less
+ <span class="text-red-400">'</span></span
+ >{meta.title}<span class="text-accent-primary select-none">';</span>
</h1>
<p class="my-4 font-genericmono flex gap-1 md:gap-2 flex-wrap">
- <a href={encodeURI(`../`)} class="quicklink">../</a>{#if filename}<span
+ <a href={encodeURI(`../`)} class="quicklink">../</a
+ >{#if filename && (meta.published || ignorePublishedStatus || dev)}<span
class="select-none">▒</span
><a
href={encodeURI(
@@ -45,8 +79,15 @@
.toISOString()
.split('T')[0]}
</p>
- <article id="postmd">
- <PostComp />
- </article>
+ {#if meta.published || ignorePublishedStatus}
+ {#if !meta.published}
+ {@render unpublished()}
+ {/if}
+ <article id="postmd">
+ <PostComp />
+ </article>
+ {:else}
+ {@render unpublished()}
+ {/if}
</div>
</div>
diff --git a/src/lib/blog/Post.ts b/src/lib/blog/Post.ts
index 440dffa..aa4c422 100644
--- a/src/lib/blog/Post.ts
+++ b/src/lib/blog/Post.ts
@@ -9,6 +9,7 @@ export type PostMetadata<Parsed extends boolean = false> = {
id: string | number;
created: Parsed extends true ? Date : string;
updated: Parsed extends true ? Date : string;
+ published: boolean | 'unlisted';
};
export type Post<MetadataParsed extends boolean = false> = {
metadata: PostMetadata<MetadataParsed>;
diff --git a/src/lib/console.ts b/src/lib/console.ts
index 82562cd..3e44e4b 100644
--- a/src/lib/console.ts
+++ b/src/lib/console.ts
@@ -115,6 +115,9 @@ margin-right: 4px;
[`WARNING, NUKING IS NOW LEGAL... WORLDWIDE!!! >~<`],
[`Welcome back, Anon`],
[`when you suckin on her nuts`],
+ [`catboys,,,`],
+ [`\${MESSAGE_OF_THE_DAY}`],
+ [`i will mo your td`],
[`wait.. nuking's actually kinda hot......`],
[`you know what happens after a nuke? smoke %c#3`, "color: #ff0000;"],
[`Fucking the industry's transfems since 20xx`],
diff --git a/src/lib/storage.ts b/src/lib/storage.ts
index 60ecfa3..0a5334d 100644
--- a/src/lib/storage.ts
+++ b/src/lib/storage.ts
@@ -1,4 +1,4 @@
-import { StorageManager } from '@dmpmem/storage'
+import { StorageManager } from '$/lib/vendor/storage'
export const localStorage = new StorageManager('local', 'mem.estrogen.zone:');
export const sessionStorage = new StorageManager('session', 'mem.estrogen.zone:');
diff --git a/src/lib/vendor/storage b/src/lib/vendor/storage
new file mode 160000
+Subproject 21e62b1642b299bf6b60d956045e1848486a70d