Files
11ty-blog/fix-dates.js
Tommy Parnell 53074f3174 stop
2023-11-04 15:17:48 -04:00

63 lines
2.0 KiB
JavaScript

const fs = require('fs/promises');
async function renamemarkdown() {
const files = await fs.readdir('./content/blog');
await Promise.all(files
.filter(file => file.toLowerCase().endsWith('.md'))
.map(async (file) => {
const computedDirectory = file.replace('.md', '').replace('.MD', '')
await fs.rename(`./content/blog/${file}`, `./content/blog/${file}-bkp`)
await fs.mkdir(`./content/blog/${computedDirectory}`)
await fs.rename(`./content/blog/${file}-bkp`, `./content/blog/${computedDirectory}/${file}`)
}));
}
async function MoveImages() {
const dirs = await fs.readdir('./content/img');
const blogDirs = await fs.readdir('./content/blog');
dirs
.filter(dir => blogDirs.includes(dir))
.map(async dir => {
// get all files in dir
const files = await fs.readdir(`./content/img/${dir}`);
await Promise.all(
files.map(async subfile => {
await fs.rename(`./content/img/${dir}/${subfile}`, `./content/blog/${dir}/${subfile}`)
})
)
const hasFiles = (await fs.readdir(`./content/img/${dir}`)).length > 0;
if(!hasFiles) {
await fs.rmdir(`./content/img/${dir}`)
}
})
}
async function fixDateInFrontMatter() {
const dirs = await fs.readdir('./content/blog');
await Promise.all(dirs.filter(dir => !dir.includes('.')).map(async dir => {
const blogFile = (await fs.readdir(`./content/blog/${dir}`)).find(file => file.toLowerCase().endsWith('.md'));
if(!blogFile) {
return;
}
const content = await fs.readFile(`./content/blog/${dir}/${blogFile}`, 'utf8');
if(content.trimStart().startsWith('---')) {
return;
}
const newContent = `---\n${content.trimStart()}\n---`;
await fs.writeFile(`./content/blog/${dir}/${blogFile}`, newContent);
// console.log(file);
// const content = await fs.readFile(`./content/blog/${file}`, 'utf8');
// const date = content.match(/date: (.*)/)[1];
// const newContent = content.replace(date, newDate);
// await fs.writeFile(`./content/blog/${file}`, newContent);
}))
}
// renamemarkdown();
// MoveImages();
fixDateInFrontMatter()