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
|
2026-04-10 02:00:00 +02:00
|
|
|
le service plaintes qui saura être à votre écoute. ->
|
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"
|
|
|
|
|
>
|
2026-04-10 02:00:00 +02:00
|
|
|
Se plaindre
|
2025-05-28 04:04:47 +02:00
|
|
|
</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
|
|
|
>
|
2026-04-10 02:00:00 +02:00
|
|
|
https://forge.oblic-parallels.fr/guillm/dotfiles
|
2025-05-28 04:04:47 +02:00
|
|
|
</LinkButton>
|
|
|
|
|
</p>
|
|
|
|
|
<p>
|
2025-05-30 14:12:37 +02:00
|
|
|
<br />
|
|
|
|
|
<br />
|
2026-04-10 02:00:00 +02:00
|
|
|
<b>Soyez le·a bienvenu·e !</b>
|
2025-05-28 00:15:39 +02:00
|
|
|
</p>
|
|
|
|
|
{
|
2026-04-10 02:00:00 +02:00
|
|
|
// only display if at lenvenueast one social link is enabled
|
2025-05-28 00:15:39 +02:00
|
|
|
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>
|