43 lines
1.3 KiB
JavaScript
43 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 KNIEPUNKT_DIR = path.join(CONTENT_DIR, 'kniepunkt')
|
|
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 allFiles = [...getFiles(KNIEPUNKT_DIR), ...getFiles(POSTS_DIR)]
|
|
|
|
allFiles.forEach(file => {
|
|
if (fs.existsSync(file)) {
|
|
let raw = fs.readFileSync(file, 'utf8')
|
|
let data = matter(raw)
|
|
let content = data.content
|
|
|
|
// Clean up quotes
|
|
let newContent = content
|
|
.replace(/ "\n/g, '\n')
|
|
.replace(/\n"\n/g, '\n')
|
|
.replace(/\n"/g, '\n')
|
|
.replace(/^"/g, '')
|
|
.replace(/"$/g, '')
|
|
.replace(/ "\r\n/g, '\r\n')
|
|
.replace(/\r\n"\r\n/g, '\r\n')
|
|
.replace(/\r\n"/g, '\r\n')
|
|
.replace(/ +/g, ' ') // Optional: remove double spaces if any
|
|
|
|
// Some files have `KI-Quiz, Teil 1: einfache Fragen"` at the very top
|
|
newContent = newContent.replace(/"\n/g, '\n');
|
|
|
|
if (newContent !== data.content) {
|
|
data.content = newContent
|
|
fs.writeFileSync(file, matter.stringify(data.content, data.data))
|
|
console.log(`Cleaned up quotes in ${path.basename(file)}`)
|
|
}
|
|
}
|
|
})
|