Display categories

This commit is contained in:
kbe
2025-08-19 16:06:28 +02:00
parent c84ca1d538
commit ac76ba32f6
6 changed files with 191 additions and 21 deletions

View File

@@ -161,22 +161,47 @@ function generateAuthorDirectories(posts) {
fs.mkdirSync(AUTHORS_DIR, { recursive: true });
}
// Group posts by author
// Group posts by author using proper author data
const postsByAuthor = {};
posts.forEach(post => {
const authorName = post._embedded?.author?.[0]?.name || 'Unknown';
const authorSlug = authorName.toLowerCase().replace(/\s+/g, '-').replace(/[^\w-]/g, '');
if (!postsByAuthor[authorSlug]) {
postsByAuthor[authorSlug] = {
name: authorName,
slug: authorSlug,
posts: []
};
const author = post._embedded?.author?.[0];
if (author) {
const authorSlug = author.slug;
const authorName = author.name;
if (!postsByAuthor[authorSlug]) {
postsByAuthor[authorSlug] = {
id: author.id,
name: authorName,
slug: authorSlug,
description: author.description || '',
avatar: author.avatar_urls || {},
link: author.link,
posts: []
};
}
postsByAuthor[authorSlug].posts.push(post);
} else {
// Handle unknown author
const unknownSlug = 'unknown';
const unknownName = 'Unknown';
if (!postsByAuthor[unknownSlug]) {
postsByAuthor[unknownSlug] = {
id: 0,
name: unknownName,
slug: unknownSlug,
description: '',
avatar: {},
link: '',
posts: []
};
}
postsByAuthor[unknownSlug].posts.push(post);
}
postsByAuthor[authorSlug].posts.push(post);
});
// Create author directories and index pages
@@ -187,13 +212,17 @@ function generateAuthorDirectories(posts) {
fs.mkdirSync(authorDir, { recursive: true });
}
// Generate author index page
// Generate author index page with proper metadata
const frontmatter = {
title: `Lise des articles de ${author.name}`,
title: `Articles de ${author.name}`,
type: 'authors',
layout: 'list',
author: author.name,
author_slug: author.slug
author_slug: author.slug,
description: author.description,
avatar: author.avatar,
link: author.link,
post_count: author.posts.length
};
const content = `---
@@ -209,4 +238,4 @@ ${Object.entries(frontmatter)
});
}
generateContent();
generateContent();