19 lines
640 B
TypeScript
19 lines
640 B
TypeScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import matter from 'gray-matter';
|
|
|
|
type PostData = { slug: string[]; frontmatter: Record<string, any> };
|
|
const CONTENT_DIR = path.join(process.cwd(), 'content');
|
|
|
|
export function getAllPosts(lang: string): PostData[] {
|
|
const dir = path.join(CONTENT_DIR, lang);
|
|
if (!fs.existsSync(dir)) return [];
|
|
return fs.readdirSync(dir)
|
|
.filter(f => f.endsWith('.md'))
|
|
.map(file => {
|
|
const full = path.join(dir, file);
|
|
const { data } = matter(fs.readFileSync(full, 'utf-8'));
|
|
const slug = file.replace(/\.md$/, '');
|
|
return { slug: [slug], frontmatter: data };
|
|
});
|
|
} |