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();
 |