37 lines
1.3 KiB
JavaScript
37 lines
1.3 KiB
JavaScript
import fs from 'fs'
|
|
import path from 'path'
|
|
import matter from 'gray-matter'
|
|
|
|
const CONTENT_DIR = path.join(process.cwd(), 'content')
|
|
const POSTS_DIR = path.join(CONTENT_DIR, 'posts')
|
|
|
|
function getFiles(dir) {
|
|
return fs.readdirSync(dir).map(f => path.join(dir, f)).filter(f => f.endsWith('.md'))
|
|
}
|
|
|
|
const allPosts = getFiles(POSTS_DIR)
|
|
allPosts.forEach(post => {
|
|
if (fs.existsSync(post)) {
|
|
const pData = matter(fs.readFileSync(post, 'utf8'))
|
|
let dateStr = ''
|
|
if (pData.data.date instanceof Date) {
|
|
dateStr = pData.data.date.toISOString()
|
|
} else if (typeof pData.data.date === 'string') {
|
|
dateStr = pData.data.date
|
|
}
|
|
|
|
// If date is July 18, 2026 or July 17, 2026
|
|
if (dateStr.includes('2026-07-18') || dateStr.includes('2026-07-17')) {
|
|
// Try to get original date from filename
|
|
const match = path.basename(post).match(/^(\d{4}-\d{2}-\d{2})/)
|
|
if (match && !match[1].includes('2026-07-18') && !match[1].includes('2026-07-17')) {
|
|
pData.data.date = match[1] + 'T00:00:00.000Z'
|
|
fs.writeFileSync(post, matter.stringify(pData.content, pData.data))
|
|
console.log(`📅 Fixed date for ${path.basename(post)} to ${match[1]}`)
|
|
} else {
|
|
// Find it from the text if possible or leave it
|
|
}
|
|
}
|
|
}
|
|
})
|