36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const fs = require('fs');
 | 
						|
const path = require('path');
 | 
						|
const posts = require('./src/_data/old_posts');
 | 
						|
 | 
						|
const htmlDecode = (input) => {
 | 
						|
    const doc = new DOMParser().parseFromString(input, "text/html");
 | 
						|
    return doc.documentElement.textContent;
 | 
						|
  }
 | 
						|
 | 
						|
  
 | 
						|
(async () => {
 | 
						|
    const postList = await posts();
 | 
						|
 | 
						|
    const postsDirectory = path.join(__dirname, 'src', 'blog', 'posts');
 | 
						|
    if (!fs.existsSync(postsDirectory)) {
 | 
						|
        fs.mkdirSync(postsDirectory, { recursive: true });
 | 
						|
    }
 | 
						|
 | 
						|
    for (const post of postList) {
 | 
						|
        const date = new Date(post.date);
 | 
						|
        const dir = path.join(__dirname, 'src', 'blog', 'posts', date.getFullYear().toString(), (date.getMonth() + 1).toString());
 | 
						|
        if (!fs.existsSync(dir)) {
 | 
						|
            fs.mkdirSync(dir, { recursive: true });
 | 
						|
        }
 | 
						|
        const postPath = path.join(dir, `${post.slug}.md`);
 | 
						|
        const postContent = `---
 | 
						|
title: "${post.title.rendered}"
 | 
						|
date: ${post.date}
 | 
						|
slug: ${post.slug}
 | 
						|
${post.tags.length ? `tags: [${post.tags.map(tag => tag.slug).join(', ')}]` : ''}
 | 
						|
---
 | 
						|
${post.markdown.replaceAll('\\\'','\'')}
 | 
						|
`;
 | 
						|
        fs.writeFileSync(postPath, postContent);
 | 
						|
    }
 | 
						|
})(); |