Page MenuHomePhorge

index.tsx
No OneTemporary

Authored By
Unknown
Size
2 KB
Referenced Files
None
Subscribers
None

index.tsx

import { GitForkIcon, LinkedinLogo, MastodonLogo } from "@phosphor-icons/react";
import type { Article } from "#/types.ts";
import { asset } from "#/assets.ts";
import { intersperse } from "#/utils.ts";
import Document from "#src/layouts/document.tsx";
type Props = {
articles: Article[];
};
const reindeer = await asset("#src/images/reindev-full.avif");
const descriptionItems = ["Software developer", "Rust, Ruby, TypeScript, Linux", "Strasbourg, France"];
const bullet = " \u2022 ";
function Link({ title, href }: { title: string; href: string }) {
return <a href={href} target="_blank" rel="noopener">{title}</a>;
}
export default function Index({ articles }: Props) {
return (
<Document class="home" path="/" meta={{ description: descriptionItems.join(bullet) }}>
<header>
<div>
<h1>Adædra</h1>
{intersperse(descriptionItems, <br />)}
</div>
<img src={reindeer} alt="Reindeer and cat mascots" title="Hi." />
</header>
<h2>Latest articles</h2>
<div class="articleList">
{articles.map((article: Article) => (
<div>
<span>
{article.data.date ? article.data.date.toISODate() : "0000-00-00"}&nbsp;
</span>
<a href={`/${article.data.slug}/`}>{article.data.title}</a>
</div>
))}
</div>
<h2>Find me elsewhere</h2>
<div class="socials">
<a href="https://phorge.adaedra.eu" target="_blank" rel="noopener">
<GitForkIcon />Phorge
</a>
<br />
<a href="https://nerdculture.de/@adaedra" target="_blank" rel="noopener">
<MastodonLogo />Mastodon
</a>
<br />
<a href="https://www.linkedin.com/in/thibault-hamel/" target="_blank" rel="noopener">
<LinkedinLogo />LinkedIn
</a>
</div>
<footer>
<hr />
Mascot drawn by <Link href="https://linktr.ee/cutepencilcase" title="CutePencilCase" />
<br />
Font <Link href="https://github.com/be5invis/Iosevka" title="Iosevka" />
{bullet}
Color theme <Link href="https://github.com/morhetz/gruvbox-contrib" title="Gruvbox" />
{bullet}
Icons <Link href="https://phosphoricons.com/" title="Phosphor" />
<br />
<Link href="https://phorge.adaedra.eu/source/blog/" title="Source code" />
</footer>
</Document>
);
}

File Metadata

Mime Type
application/javascript
Expires
Sun, Oct 25, 04:06 (1 d, 4 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
56
Default Alt Text
index.tsx (2 KB)

Event Timeline