|
|
|
|
| import fs from "fs"
|
| import path from "path"
|
|
|
| function getDate() {
|
| const today = new Date()
|
| const year = today.getFullYear()
|
| const month = String(today.getMonth() + 1).padStart(2, "0")
|
| const day = String(today.getDate()).padStart(2, "0")
|
|
|
| return `${year}-${month}-${day}`
|
| }
|
|
|
| const args = process.argv.slice(2)
|
|
|
| if (args.length === 0) {
|
| console.error(`Error: No filename argument provided
|
| Usage: npm run new-post -- <filename>`)
|
| process.exit(1)
|
| }
|
|
|
| let fileName = args[0]
|
|
|
|
|
| const fileExtensionRegex = /\.(md|mdx)$/i
|
| if (!fileExtensionRegex.test(fileName)) {
|
| fileName += ".md"
|
| }
|
|
|
| const targetDir = "./src/content/posts/"
|
| const fullPath = path.join(targetDir, fileName)
|
|
|
| if (fs.existsSync(fullPath)) {
|
| console.error(`Error: File ${fullPath} already exists `)
|
| process.exit(1)
|
| }
|
|
|
|
|
| const dirPath = path.dirname(fullPath)
|
| if (!fs.existsSync(dirPath)) {
|
| fs.mkdirSync(dirPath, { recursive: true })
|
| }
|
|
|
| const content = `---
|
| title: ${args[0]}
|
| published: ${getDate()}
|
| description: ''
|
| image: ''
|
| tags: []
|
| category: ''
|
| draft: false
|
| lang: ''
|
| ---
|
| `
|
|
|
| fs.writeFileSync(path.join(targetDir, fileName), content)
|
|
|
| console.log(`Post ${fullPath} created`)
|
|
|