première publication
This commit is contained in:
24
src/pages/journal/[slug].astro
Normal file
24
src/pages/journal/[slug].astro
Normal file
@@ -0,0 +1,24 @@
|
||||
---
|
||||
import { getCollection } from 'astro:content';
|
||||
import Layout from '../../layouts/Layout.astro';
|
||||
|
||||
// 1. Génère une page pour chaque entrée de la collection 'journal'
|
||||
export async function getStaticPaths() {
|
||||
const journalEntries = await getCollection('journal');
|
||||
return journalEntries.map(entry => ({
|
||||
params: { slug: entry.slug },
|
||||
props: { entry },
|
||||
}));
|
||||
}
|
||||
|
||||
// 2. Récupère les props pour la page actuelle
|
||||
const { entry } = Astro.props;
|
||||
const { Content } = await entry.render();
|
||||
---
|
||||
|
||||
<Layout title={entry.data.title}>
|
||||
<h1>{entry.data.title}</h1>
|
||||
<p>Par {entry.data.author}, le {entry.data.publishDate.toLocaleDateString('fr-FR')}</p>
|
||||
<hr>
|
||||
<Content />
|
||||
</Layout>
|
||||
18
src/pages/journal/index.astro
Normal file
18
src/pages/journal/index.astro
Normal file
@@ -0,0 +1,18 @@
|
||||
---
|
||||
import { getCollection } from 'astro:content';
|
||||
import Layout from '../../layouts/Layout.astro';
|
||||
|
||||
const allJournalEntries = await getCollection('journal');
|
||||
---
|
||||
|
||||
<Layout title="Journal d'Aventure">
|
||||
<h1>Journal d'Aventure</h1>
|
||||
<ul>
|
||||
{allJournalEntries.map(entry => (
|
||||
<li>
|
||||
<a href={`/journal/${entry.slug}`}>{entry.data.title}</a>
|
||||
<p>Publié le: {entry.data.publishDate.toLocaleDateString('fr-FR')}</p>
|
||||
</li>
|
||||
))}
|
||||
</ul>
|
||||
</Layout>
|
||||
Reference in New Issue
Block a user