From 8c8c795059b1d9b2703b8e402e69249febf7685d Mon Sep 17 00:00:00 2001 From: Yannick Debree Date: Tue, 3 Feb 2026 19:02:30 +1300 Subject: [PATCH] Talks section implemented --- src/pages/talks/index.astro | 17 +++++++++++++++-- src/pages/talks/peaks-2025.md | 6 ++++++ src/pages/talks/solid-2023.md | 6 ++++++ src/shared/astro.ts | 4 ++++ src/shared/talks.ts | 10 ++++++++++ src/styles/bootstrap.scss | 1 + src/styles/layout/_list.scss | 7 +++++++ 7 files changed, 49 insertions(+), 2 deletions(-) create mode 100644 src/pages/talks/peaks-2025.md create mode 100644 src/pages/talks/solid-2023.md create mode 100644 src/shared/astro.ts create mode 100644 src/shared/talks.ts create mode 100644 src/styles/layout/_list.scss diff --git a/src/pages/talks/index.astro b/src/pages/talks/index.astro index 1f7deac..b71bb4b 100644 --- a/src/pages/talks/index.astro +++ b/src/pages/talks/index.astro @@ -1,11 +1,24 @@ --- -import WipAlert from "../../components/wip-alert.astro"; import BaseLayout from "../../layouts/base.layout.astro"; +import type { MarkdownResource } from "../../shared/astro"; +import type { Talk } from "../../shared/talks"; const title = "Talks"; +const talks = Object.values>( + import.meta.glob("./*.md", { eager: true }), +); ---
- +
    + { + talks.map(({ frontmatter: talk }) => ( +
  • + [{new Date(talk.date).toLocaleDateString()} ] + {talk.title} ({talk.lang}) +
  • + )) + } +
diff --git a/src/pages/talks/peaks-2025.md b/src/pages/talks/peaks-2025.md new file mode 100644 index 0000000..66c58d5 --- /dev/null +++ b/src/pages/talks/peaks-2025.md @@ -0,0 +1,6 @@ +--- +title: Programmation fonctionnelle & Guide pour créer une appli PHP +date: 2025-02-20 +lang: fr +url: https://www.youtube.com/watch?v=MtVA-NEi0PE +--- \ No newline at end of file diff --git a/src/pages/talks/solid-2023.md b/src/pages/talks/solid-2023.md new file mode 100644 index 0000000..19ba0f2 --- /dev/null +++ b/src/pages/talks/solid-2023.md @@ -0,0 +1,6 @@ +--- +title: Principes SOLID épisode 1 - "Single Responsibility" (ou Responsabilité Unique) +date: 2023-09-14 +lang: fr +url: https://www.youtube.com/watch?v=rEbsyedOrXE +--- \ No newline at end of file diff --git a/src/shared/astro.ts b/src/shared/astro.ts new file mode 100644 index 0000000..640a788 --- /dev/null +++ b/src/shared/astro.ts @@ -0,0 +1,4 @@ +export type MarkdownResource = { + url: string; + frontmatter: T; +} \ No newline at end of file diff --git a/src/shared/talks.ts b/src/shared/talks.ts new file mode 100644 index 0000000..9b3d878 --- /dev/null +++ b/src/shared/talks.ts @@ -0,0 +1,10 @@ +export enum TalkLangage { + FR = 'fr' +} + +export type Talk = { + title: string; + date: Date; + lang: TalkLangage; + url: string; +} \ No newline at end of file diff --git a/src/styles/bootstrap.scss b/src/styles/bootstrap.scss index e5fd0be..7db9d28 100644 --- a/src/styles/bootstrap.scss +++ b/src/styles/bootstrap.scss @@ -10,6 +10,7 @@ @import "./components/navbar/navbar"; @import "./layout/footer"; @import "./layout/header"; +@import "./layout/list"; @import "./layout/main"; @import "./theming/themes/default"; @import "./vendors/google-fonts"; \ No newline at end of file diff --git a/src/styles/layout/_list.scss b/src/styles/layout/_list.scss new file mode 100644 index 0000000..ecfd4aa --- /dev/null +++ b/src/styles/layout/_list.scss @@ -0,0 +1,7 @@ +ul { + list-style: none; + margin-bottom: 2rem; + li { + margin-bottom: 1rem; + } +} \ No newline at end of file