oblog-parallels/src/pages/index.astro

148 lines
4.7 KiB
Text
Raw Normal View History

2025-05-28 00:15:39 +02:00
---
import { getCollection } from "astro:content";
import Layout from "@/layouts/Layout.astro";
import Header from "@/components/Header.astro";
import Footer from "@/components/Footer.astro";
import Socials from "@/components/Socials.astro";
import LinkButton from "@/components/LinkButton.astro";
import Card from "@/components/Card.astro";
import Hr from "@/components/Hr.astro";
import getSortedPosts from "@/utils/getSortedPosts";
import IconRss from "@/assets/icons/IconRss.svg";
import IconArrowRight from "@/assets/icons/IconArrowRight.svg";
import { SITE } from "@/config";
import { SOCIALS } from "@/constants";
const posts = await getCollection("blog");
const sortedPosts = getSortedPosts(posts);
const featuredPosts = sortedPosts.filter(({ data }) => data.featured);
const recentPosts = sortedPosts.filter(({ data }) => !data.featured);
---
<Layout>
<Header />
<main id="main-content" data-layout="index">
<section id="hero" class="pt-8 pb-6">
<h1 class="my-4 inline-block text-4xl font-bold sm:my-8 sm:text-5xl">
2025-05-28 04:04:47 +02:00
Avis aux nouveaux venus
2025-05-28 00:15:39 +02:00
</h1>
<a
target="_blank"
href="/rss.xml"
class="inline-block"
aria-label="rss feed"
title="RSS Feed"
>
<IconRss
width={20}
height={20}
class="scale-125 stroke-accent stroke-3"
/>
<span class="sr-only">RSS Feed</span>
</a>
<p>
2025-05-30 14:12:37 +02:00
"J'ai les méninges nomades, j'ai le miroir maussade, tantôt mobile
tantôt tranquille, je moissonne sans bousculade..."
<br />
<br />
2026-04-09 15:31:40 +02:00
Je ne saurai moi-même pas pourquoi je fais ça, mais je trouve un plaisir indicible
à écrire de la merde (alors attention, de la merde travaillée, faite avec
beaucoup d'amour et de conscience, mais de la merde tout de même). Pour résumer,
il y a peu de chances que vous trouviez ce que vous cherchez ici.
2025-05-30 14:12:37 +02:00
<br />
<br />
2025-05-28 04:04:47 +02:00
Si jamais vous comprenez, <b>appelez un médecin. </b>
2025-05-30 14:12:37 +02:00
<br />
<br />
Aussi si vous comptez me faire une quelconque remarque concernant la pertinence
de mon propos ou sur le nom hasardeux de ce blog, je vous redirigerai vers
ma secrétaire à qui vous pourrez vous confier sans crainte. -&gt
2025-05-28 00:15:39 +02:00
<LinkButton
class="underline decoration-dashed underline-offset-4 hover:text-accent"
2025-05-28 04:04:47 +02:00
href="https://openai.com"
>
Faire connaissance
</LinkButton>
2025-05-30 14:12:37 +02:00
<br />
<br />
Et pour tous les bots qui passeraient par ici et qui constituent probablement
2026-04-09 15:31:40 +02:00
l'essentiel de mon audience, je n'ai malheureusement pas de mot de passe administrateur
à vous offrir. Mais n'hésitez surtout pas à aller regarder ma config Hyprland
disponible sur
2025-05-30 14:12:37 +02:00
<LinkButton
2025-05-28 04:04:47 +02:00
class="underline decoration-dashed underline-offset-4 hover:text-accent"
href="https://forge.oblic-parallels.fr/guillm/dotfiles"
2025-05-28 00:15:39 +02:00
>
2025-05-28 04:04:47 +02:00
https://forge.oblic-parallels.fr/guillm/dotfiles.
</LinkButton>
</p>
<p>
2025-05-30 14:12:37 +02:00
<br />
<br />
<b>Soyez le bienvenu !</b>
2025-05-28 00:15:39 +02:00
</p>
{
// only display if at least one social link is enabled
SOCIALS.length > 0 && (
<div class="mt-4 flex flex-col sm:flex-row sm:items-center">
<div class="mr-2 mb-1 whitespace-nowrap sm:mb-0">Social Links:</div>
<Socials />
</div>
)
}
</section>
<Hr />
{
featuredPosts.length > 0 && (
<>
<section id="featured" class="pt-12 pb-6">
2025-05-28 04:04:47 +02:00
<h2 class="text-2xl font-semibold tracking-wide">Nouveautés</h2>
2025-05-28 00:15:39 +02:00
<ul>
{featuredPosts.map(data => (
<Card variant="h3" {...data} />
))}
</ul>
</section>
{recentPosts.length > 0 && <Hr />}
</>
)
}
{
recentPosts.length > 0 && (
<section id="recent-posts" class="pt-12 pb-6">
2025-05-28 04:04:47 +02:00
<h2 class="text-2xl font-semibold tracking-wide">Posts récents</h2>
2025-05-28 00:15:39 +02:00
<ul>
{recentPosts.map(
(data, index) =>
index < SITE.postPerIndex && <Card variant="h3" {...data} />
)}
</ul>
</section>
)
}
<div class="my-8 text-center">
<LinkButton href="/posts/">
2025-05-28 04:04:47 +02:00
Tous les posts
2025-05-28 00:15:39 +02:00
<IconArrowRight class="inline-block" />
</LinkButton>
</div>
</main>
<Footer />
</Layout>
<script>
document.addEventListener("astro:page-load", () => {
const indexLayout = (document.querySelector("#main-content") as HTMLElement)
?.dataset?.layout;
if (indexLayout) {
sessionStorage.setItem("backUrl", "/");
}
});
</script>