style: auto-format codebase with Prettier

Applied formatting to 1487+ files using pnpm format:write
  - TypeScript/JavaScript files
  - Svelte components
  - Astro pages
  - JSON configs
  - Markdown docs

  13 files still need manual review (Astro JSX comments)
This commit is contained in:
Wuesteon 2025-11-27 18:33:16 +01:00
parent 0241f5554c
commit d36b321d9d
3952 changed files with 661498 additions and 739751 deletions

View file

@ -14,16 +14,16 @@ import type { ContentItem, ContentAuthor } from '../types';
* Format author/creator name
*/
export function formatAuthorName(author: ContentAuthor): string {
return author.name;
return author.name;
}
/**
* Get author/creator lifespan string
*/
export function getAuthorLifespan(author: ContentAuthor): string {
if (!author.lifespan) return '';
const { birth, death } = author.lifespan;
return death ? `${birth} - ${death}` : `${birth} - Present`;
if (!author.lifespan) return '';
const { birth, death } = author.lifespan;
return death ? `${birth} - ${death}` : `${birth} - Present`;
}
// ============================================================================
@ -33,124 +33,98 @@ export function getAuthorLifespan(author: ContentAuthor): string {
/**
* Filter content items by category
*/
export function filterContentByCategory<T extends ContentItem>(
items: T[],
category: string
): T[] {
return items.filter(item =>
item.category === category ||
item.categories?.includes(category)
);
export function filterContentByCategory<T extends ContentItem>(items: T[], category: string): T[] {
return items.filter((item) => item.category === category || item.categories?.includes(category));
}
/**
* Filter content items by tag
*/
export function filterContentByTag<T extends ContentItem>(
items: T[],
tag: string
): T[] {
return items.filter(item => item.tags?.includes(tag));
export function filterContentByTag<T extends ContentItem>(items: T[], tag: string): T[] {
return items.filter((item) => item.tags?.includes(tag));
}
/**
* Filter content items by author
*/
export function filterContentByAuthor<T extends ContentItem>(
items: T[],
authorId: string
): T[] {
return items.filter(item => item.authorId === authorId);
export function filterContentByAuthor<T extends ContentItem>(items: T[], authorId: string): T[] {
return items.filter((item) => item.authorId === authorId);
}
/**
* Get random content item from array
*/
export function getRandomContent<T extends ContentItem>(
items: T[]
): T | undefined {
if (items.length === 0) return undefined;
return items[Math.floor(Math.random() * items.length)];
export function getRandomContent<T extends ContentItem>(items: T[]): T | undefined {
if (items.length === 0) return undefined;
return items[Math.floor(Math.random() * items.length)];
}
/**
* Search content items by text
*/
export function searchContent<T extends ContentItem>(
items: T[],
searchTerm: string
): T[] {
const term = searchTerm.toLowerCase();
return items.filter(item =>
item.text.toLowerCase().includes(term) ||
item.tags?.some(tag => tag.toLowerCase().includes(term))
);
export function searchContent<T extends ContentItem>(items: T[], searchTerm: string): T[] {
const term = searchTerm.toLowerCase();
return items.filter(
(item) =>
item.text.toLowerCase().includes(term) ||
item.tags?.some((tag) => tag.toLowerCase().includes(term))
);
}
/**
* Get unique categories from content items
*/
export function getUniqueCategories<T extends ContentItem>(
items: T[]
): string[] {
const categories = new Set<string>();
items.forEach(item => {
if (item.category) categories.add(item.category);
item.categories?.forEach(cat => categories.add(cat));
});
return Array.from(categories).sort();
export function getUniqueCategories<T extends ContentItem>(items: T[]): string[] {
const categories = new Set<string>();
items.forEach((item) => {
if (item.category) categories.add(item.category);
item.categories?.forEach((cat) => categories.add(cat));
});
return Array.from(categories).sort();
}
/**
* Get unique tags from content items
*/
export function getUniqueTags<T extends ContentItem>(
items: T[]
): string[] {
const tags = new Set<string>();
items.forEach(item => {
item.tags?.forEach(tag => tags.add(tag));
});
return Array.from(tags).sort();
export function getUniqueTags<T extends ContentItem>(items: T[]): string[] {
const tags = new Set<string>();
items.forEach((item) => {
item.tags?.forEach((tag) => tags.add(tag));
});
return Array.from(tags).sort();
}
/**
* Group content items by category
*/
export function groupContentByCategory<T extends ContentItem>(
items: T[]
): Record<string, T[]> {
const grouped: Record<string, T[]> = {};
export function groupContentByCategory<T extends ContentItem>(items: T[]): Record<string, T[]> {
const grouped: Record<string, T[]> = {};
items.forEach(item => {
const categories = item.categories || (item.category ? [item.category] : ['uncategorized']);
categories.forEach(category => {
if (!grouped[category]) {
grouped[category] = [];
}
grouped[category].push(item);
});
});
items.forEach((item) => {
const categories = item.categories || (item.category ? [item.category] : ['uncategorized']);
categories.forEach((category) => {
if (!grouped[category]) {
grouped[category] = [];
}
grouped[category].push(item);
});
});
return grouped;
return grouped;
}
/**
* Get featured content items
*/
export function getFeaturedContent<T extends ContentItem>(
items: T[]
): T[] {
return items.filter(item => item.featured === true);
export function getFeaturedContent<T extends ContentItem>(items: T[]): T[] {
return items.filter((item) => item.featured === true);
}
/**
* Get favorite content items
*/
export function getFavoriteContent<T extends ContentItem>(
items: T[]
): T[] {
return items.filter(item => item.isFavorite === true);
export function getFavoriteContent<T extends ContentItem>(items: T[]): T[] {
return items.filter((item) => item.isFavorite === true);
}
// ============================================================================