lewisdale.dev/downloadPosts.js

36 lines
1.1 KiB
JavaScript
Raw Normal View History

2023-12-30 21:55:36 +00:00
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);
}
})();