added file for transparent phone case feed post; added images for that post; added images and imagesAlt attributes to feed posts
@@ -38,21 +38,28 @@
|
|||||||
subtitle="subtitle missing"
|
subtitle="subtitle missing"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
{@render pageButtons(data.currentPage)}
|
|
||||||
|
|
||||||
<p>Welcome to my (new) art feed! It is heavily inspired by <a href="https://deathsurplus.com/">DeathSurplus' art blog</a> – definitely go check out his page!</p>
|
<p>Welcome to my (new) art feed! It is heavily inspired by <a href="https://deathsurplus.com/">DeathSurplus' art blog</a> – definitely go check out his page!</p>
|
||||||
|
|
||||||
<p>This page is intended to be a contrasting companion to the <a href="/projects"><code>projects</code> page</a>; I'll use this page for smaller things that don't fit the dedicated-page-format.</p>
|
<p>This page is intended to be a contrasting companion to the <a href="/projects"><code>projects</code> page</a>; I'll use this page for smaller things that don't fit the dedicated-page-format.</p>
|
||||||
|
|
||||||
<!-- <TableOfContents /> -->
|
<!-- <TableOfContents /> -->
|
||||||
|
|
||||||
|
{@render pageButtons(data.currentPage)}
|
||||||
|
|
||||||
{#each data.feedEntries as entry}
|
{#each data.feedEntries as entry}
|
||||||
<h2>{entry.title}</h2>
|
<h2>{entry.title}</h2>
|
||||||
<p class="subtitle">{entry.subtitle}</p>
|
<p class="subtitle">{entry.subtitle}</p>
|
||||||
<p class="subtitle">{entry.date}</p>
|
<p class="subtitle">{entry.date}</p>
|
||||||
<svelte:component this={entry.content} />
|
<svelte:component this={entry.content} />
|
||||||
|
{#if entry.images && entry.images.length > 0}
|
||||||
|
{#each entry.images as i, index}
|
||||||
|
<img src="{entry.path}/{i}" alt={entry.imageAlts[index]}>
|
||||||
|
{/each}
|
||||||
|
{/if}
|
||||||
{/each}
|
{/each}
|
||||||
|
|
||||||
|
{@render pageButtons(data.currentPage)}
|
||||||
|
|
||||||
</Content>
|
</Content>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
|
|||||||
@@ -1,10 +1,13 @@
|
|||||||
import { entries } from './feed';
|
import { entries } from './feed';
|
||||||
|
|
||||||
interface FeedEntry {
|
interface FeedEntry {
|
||||||
|
path: string;
|
||||||
content: any;
|
content: any;
|
||||||
title: string;
|
title: string;
|
||||||
subtitle: string;
|
subtitle: string;
|
||||||
date: string;
|
date: string;
|
||||||
|
images: string[];
|
||||||
|
imageAlts: string[];
|
||||||
}
|
}
|
||||||
|
|
||||||
let entriesPerPage = 8;
|
let entriesPerPage = 8;
|
||||||
@@ -26,16 +29,20 @@ export async function load({ params, url }) {
|
|||||||
if (i >= entries.length) {
|
if (i >= entries.length) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
let pathArray = entries[i].split("/");
|
||||||
|
let path = `./${pathArray[0]}/${pathArray[1]}`;
|
||||||
// Vite complains if I don't do this even though it's stupid
|
// Vite complains if I don't do this even though it's stupid
|
||||||
const path = entries[i].split("/");
|
let page = await import(`./${pathArray[0]}/${pathArray[1]}.md`);
|
||||||
const page = await import(`./${path[0]}/${path[1]}.md`);
|
let md = page.metadata;
|
||||||
const md = page.metadata;
|
|
||||||
|
|
||||||
feedEntries.push({
|
feedEntries.push({
|
||||||
|
path,
|
||||||
content: page.default,
|
content: page.default,
|
||||||
title: md.title,
|
title: md.title,
|
||||||
subtitle: md.subtitle,
|
subtitle: md.subtitle,
|
||||||
date: md.date,
|
date: md.date,
|
||||||
|
images: md.images,
|
||||||
|
imageAlts: md.imageAlts,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -2,4 +2,6 @@
|
|||||||
title: asdf
|
title: asdf
|
||||||
subtitle: asd
|
subtitle: asd
|
||||||
date: aaa
|
date: aaa
|
||||||
|
images:
|
||||||
|
imageAlts:
|
||||||
---
|
---
|
||||||
@@ -2,4 +2,6 @@
|
|||||||
title: asdf
|
title: asdf
|
||||||
subtitle: asd
|
subtitle: asd
|
||||||
date: aaa
|
date: aaa
|
||||||
|
images:
|
||||||
|
imageAlts:
|
||||||
---
|
---
|
||||||
15
src/routes/feed/electronics/trans-phone.md
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: Transparent Phone Back
|
||||||
|
subtitle: asd
|
||||||
|
date: aaa
|
||||||
|
images:
|
||||||
|
- scratching.webp
|
||||||
|
- halfway.webp
|
||||||
|
- clear.webp
|
||||||
|
- final.webp
|
||||||
|
imageAlts:
|
||||||
|
- The back of a Samsung Galaxy S20 FE lying face-down on a deskmat. Toothpicks, cotton pads, and a metal spudger are lying nearby.
|
||||||
|
- A white phone back that's half-scratched off to reveal the clear plastic.
|
||||||
|
- An entirely clear phone back.
|
||||||
|
- A Samsung Galaxy S20 FE with a clear back inside a clear phone case. The phone has a sticker in the middle of the back that shows a lantern with leaves around it.
|
||||||
|
---
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
export let entries: string[] = [
|
export let entries: string[] = [
|
||||||
// 2026
|
// 2026
|
||||||
// "misc/lightyears-font",
|
// "misc/lightyears-font",
|
||||||
|
"electronics/trans-phone",
|
||||||
"drawings/mossig-gender",
|
"drawings/mossig-gender",
|
||||||
"drawings/2026-march",
|
"drawings/2026-march",
|
||||||
// 2024
|
// 2024
|
||||||
|
|||||||
BIN
static/feed/electronics/trans-phone/clear.webp
Normal file
|
After Width: | Height: | Size: 158 KiB |
BIN
static/feed/electronics/trans-phone/final.webp
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
static/feed/electronics/trans-phone/halfway.webp
Normal file
|
After Width: | Height: | Size: 140 KiB |
BIN
static/feed/electronics/trans-phone/scratching.webp
Normal file
|
After Width: | Height: | Size: 564 KiB |
@@ -1 +0,0 @@
|
|||||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Bluesky</title><path d="M12 10.8c-1.087-2.114-4.046-6.053-6.798-7.995C2.566.944 1.561 1.266.902 1.565.139 1.908 0 3.08 0 3.768c0 .69.378 5.65.624 6.479.815 2.736 3.713 3.66 6.383 3.364.136-.02.275-.039.415-.056-.138.022-.276.04-.415.056-3.912.58-7.387 2.005-2.83 7.078 5.013 5.19 6.87-1.113 7.823-4.308.953 3.195 2.05 9.271 7.733 4.308 4.267-4.308 1.172-6.498-2.74-7.078a8.741 8.741 0 0 1-.415-.056c.14.017.279.036.415.056 2.67.297 5.568-.628 6.383-3.364.246-.828.624-5.79.624-6.478 0-.69-.139-1.861-.902-2.206-.659-.298-1.664-.62-4.3 1.24C16.046 4.748 13.087 8.687 12 10.8Z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 661 B |
@@ -1 +0,0 @@
|
|||||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Codeberg</title><path d="M11.955.49A12 12 0 0 0 0 12.49a12 12 0 0 0 1.832 6.373L11.838 5.928a.187.14 0 0 1 .324 0l10.006 12.935A12 12 0 0 0 24 12.49a12 12 0 0 0-12-12 12 12 0 0 0-.045 0zm.375 6.467l4.416 16.553a12 12 0 0 0 5.137-4.213z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 322 B |
@@ -1 +0,0 @@
|
|||||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 822 B |
@@ -1 +0,0 @@
|
|||||||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>mailbox.org</title><path d="M2.229 22.844H24V10.501l-8.628 5.882c-.613.419-1.226-.003-1.226-.003L0 6.646v13.969s0 2.229 2.229 2.229m12.558-9.273L24 7.261V1.156H2.229S0 1.156 0 3.384v.06l14.787 10.127Z"/></svg>
|
|
||||||
|
Before Width: | Height: | Size: 287 B |