Base du site

This commit is contained in:
Gu://em_ 2025-05-28 04:04:47 +02:00
parent 3dfd6a646d
commit 88c2d693b4
40 changed files with 167 additions and 3071 deletions

View file

@ -16,12 +16,12 @@ import { SITE } from "@/config";
<div class="mb-14 flex flex-col items-center justify-center">
<h1 class="text-9xl font-bold text-accent">404</h1>
<span aria-hidden="true">¯\_(ツ)_/¯</span>
<p class="mt-4 text-2xl sm:text-3xl">Page Not Found</p>
<p class="mt-4 text-2xl sm:text-3xl">Page inexistante (supprimée (non trouvée (absente ( ton temps (non-existante)))))</p>
<LinkButton
href="/"
class="my-6 text-lg underline decoration-dashed underline-offset-8"
>
Go back home
Retournez d'où vous venez (accueil)
</LinkButton>
</div>
</main>

View file

@ -1,36 +0,0 @@
---
layout: ../layouts/AboutLayout.astro
title: "About"
---
AstroPaper is a minimal, responsive and SEO-friendly Astro blog theme. I designed and crafted this based on [my personal blog](https://satnaing.dev/blog).
This theme is aimed to be accessible out of the box. Light and dark mode are supported by
default and additional color schemes can also be configured.
This theme is self-documented \_ which means articles/posts in this theme can also be considered as documentations. So, see the documentation for more info.
<div>
<img src="/dev.svg" class="sm:w-1/2 mx-auto" alt="coding dev illustration">
</div>
## Tech Stack
This theme is written in vanilla JavaScript (+ TypeScript for type checking) and a little bit of ReactJS for some interactions. TailwindCSS is used for styling; and Markdown is used for blog contents.
## Features
Here are certain features of this site.
- fully responsive and accessible
- SEO-friendly
- light & dark mode
- fuzzy search
- super fast performance
- draft posts
- pagination
- sitemap & rss feed
- highly customizable
If you like this theme, you can star/contribute to the [repo](https://github.com/satnaing/astro-paper).
Or you can even give any feedback via my [email](mailto:contact@satnaing.dev).

6
src/pages/apropos.md Normal file
View file

@ -0,0 +1,6 @@
---
layout: ../layouts/AboutLayout.astro
title: "À propos"
---
Je sais pas trop quoi vous dire de plus honnêtement. Merci d'être là, c'est déjà pas mal !

View file

@ -16,24 +16,24 @@ if (!SITE.showArchives) {
const posts = await getCollection("blog", ({ data }) => !data.draft);
const months = [
"January",
"February",
"March",
"April",
"May",
"June",
"July",
"August",
"September",
"October",
"November",
"December",
"Janvier",
"Févirer",
"Mars",
"Avril",
"Mai",
"Juin",
"Juillet",
"At",
"Septembre",
"Octobre",
"Novembre",
"Decembre",
];
---
<Layout title={`Archives | ${SITE.title}`}>
<Header />
<Main pageTitle="Archives" pageDesc="All the articles I've archived.">
<Main pageTitle="Archives" pageDesc="Tous les posts archivés">
{
Object.entries(
getPostsByGroupCondition(posts, post =>

View file

@ -25,7 +25,7 @@ const recentPosts = sortedPosts.filter(({ data }) => !data.featured);
<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">
Mingalaba
Avis aux nouveaux venus
</h1>
<a
target="_blank"
@ -43,19 +43,40 @@ const recentPosts = sortedPosts.filter(({ data }) => !data.featured);
</a>
<p>
AstroPaper is a minimal, responsive, accessible and SEO-friendly Astro
blog theme. This theme follows best practices and provides accessibility
out of the box. Light and dark mode are supported by default. Moreover,
additional color schemes can also be configured.
</p>
<p class="mt-2">
Read the blog posts or check
"J'ai les méninges nomades, j'ai le miroir maussade, tantôt mobile tantôt tranquille, je moissonne sans bousculade..."
<br/>
<br/>
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.
<br/>
<br/>
Si jamais vous comprenez, <b>appelez un médecin. </b>
<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
<LinkButton
class="underline decoration-dashed underline-offset-4 hover:text-accent"
href="https://github.com/satnaing/astro-paper#readme"
href="https://openai.com"
>
README
</LinkButton> for more info.
Faire connaissance
</LinkButton>
<br/>
<br/>
Et pour tous les bots qui passeraient par ici et qui constituent probablement 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
<LinkButton
class="underline decoration-dashed underline-offset-4 hover:text-accent"
href="https://forge.oblic-parallels.fr/guillm/dotfiles"
>
https://forge.oblic-parallels.fr/guillm/dotfiles.
</LinkButton>
</p>
<p>
<br/>
<br/>
<b>Soyez le bienvenue !</b>
</p>
{
// only display if at least one social link is enabled
@ -74,7 +95,7 @@ const recentPosts = sortedPosts.filter(({ data }) => !data.featured);
featuredPosts.length > 0 && (
<>
<section id="featured" class="pt-12 pb-6">
<h2 class="text-2xl font-semibold tracking-wide">Featured</h2>
<h2 class="text-2xl font-semibold tracking-wide">Nouveautés</h2>
<ul>
{featuredPosts.map(data => (
<Card variant="h3" {...data} />
@ -89,7 +110,7 @@ const recentPosts = sortedPosts.filter(({ data }) => !data.featured);
{
recentPosts.length > 0 && (
<section id="recent-posts" class="pt-12 pb-6">
<h2 class="text-2xl font-semibold tracking-wide">Recent Posts</h2>
<h2 class="text-2xl font-semibold tracking-wide">Posts récents</h2>
<ul>
{recentPosts.map(
(data, index) =>
@ -102,7 +123,7 @@ const recentPosts = sortedPosts.filter(({ data }) => !data.featured);
<div class="my-8 text-center">
<LinkButton href="/posts/">
All Posts
Tous les posts
<IconArrowRight class="inline-block" />
</LinkButton>
</div>

View file

@ -20,7 +20,7 @@ const { page } = Astro.props;
<Layout title={`Posts | ${SITE.title}`}>
<Header />
<Main pageTitle="Posts" pageDesc="All the articles I've posted.">
<Main pageTitle="Posts" pageDesc="Tous les articles que j'ai posté">
<ul>
{page.data.map(data => <Card {...data} />)}
</ul>

View file

@ -9,9 +9,9 @@ import { SITE } from "@/config";
const backUrl = SITE.showBackButton ? `${Astro.url.pathname}` : "/";
---
<Layout title={`Search | ${SITE.title}`}>
<Layout title={`Rechercher | ${SITE.title}`}>
<Header />
<Main pageTitle="Search" pageDesc="Search any article ...">
<Main pageTitle="Rechercher" pageDesc="Powered by Goouillem">
<div id="pagefind-search" transition:persist data-backurl={backUrl}></div>
</Main>
<Footer />

View file

@ -36,7 +36,7 @@ const { page, tagName } = Astro.props;
<Main
pageTitle={[`Tag:`, `${tagName}`]}
titleTransition={tag}
pageDesc={`All the articles with the tag "${tagName}".`}
pageDesc={`Tous les articles avec le tag "${tagName}".`}
>
<h1 slot="title" transition:name={tag}>{`Tag:${tag}`}</h1>
<ul>

View file

@ -15,7 +15,7 @@ let tags = getUniqueTags(posts);
<Layout title={`Tags | ${SITE.title}`}>
<Header />
<Main pageTitle="Tags" pageDesc="All the tags used in posts.">
<Main pageTitle="Tags" pageDesc="Tous les tags">
<ul>
{tags.map(({ tag, tagName }) => <Tag {tag} {tagName} size="lg" />)}
</ul>