forked from ourworld_web/www_engage_os
54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
import { promises as fs } from 'fs';
|
|
import path from 'path';
|
|
import matter from 'gray-matter';
|
|
|
|
const peopleDirectory = path.join(process.cwd(), 'public/images/people');
|
|
|
|
async function updatePeopleFiles() {
|
|
try {
|
|
const peopleFolders = await fs.readdir(peopleDirectory, { withFileTypes: true });
|
|
|
|
for (const dirent of peopleFolders) {
|
|
if (dirent.isDirectory()) {
|
|
const personDir = path.join(peopleDirectory, dirent.name);
|
|
const files = await fs.readdir(personDir);
|
|
const markdownFile = files.find(file => file.endsWith('.md') || file.endsWith('.mdx'));
|
|
|
|
if (markdownFile) {
|
|
const markdownFilePath = path.join(personDir, markdownFile);
|
|
const fileContents = await fs.readFile(markdownFilePath, 'utf8');
|
|
const { data, content } = matter(fileContents);
|
|
|
|
if (!data.title) {
|
|
let title = data.excerpt || data.description || '';
|
|
if (title.endsWith('.')) {
|
|
title = title.slice(0, -1);
|
|
}
|
|
|
|
if (data.title !== undefined) continue;
|
|
|
|
if (data.description) {
|
|
data.name = data.title;
|
|
data.excerpt = data.description;
|
|
}
|
|
data.title = title;
|
|
|
|
if(data.extra && data.extra.imgPath) {
|
|
data.image = `./${data.extra.imgPath}`;
|
|
delete data.extra.imgPath;
|
|
}
|
|
|
|
const newContent = matter.stringify(content, data);
|
|
await fs.writeFile(markdownFilePath, newContent);
|
|
console.log(`Updated ${markdownFilePath}`);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error('Error updating people files:', error);
|
|
}
|
|
}
|
|
|
|
updatePeopleFiles();
|