-
Notifications
You must be signed in to change notification settings - Fork 0
/
createPost.js
45 lines (36 loc) · 1.32 KB
/
createPost.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
const fs = require('fs');
const path = require('path');
const glob = require('glob');
// 오늘 날짜를 가져옵니다.
const today = new Date();
const year = today.getFullYear();
const month = (today.getMonth() + 1).toString().padStart(2, '0'); // 월은 0부터 시작하므로 1을 더해줍니다.
const day = today.getDate().toString().padStart(2, '0');
// 디렉토리 경로를 설정합니다.
const dirPath = path.join(__dirname, `./blog/${year}/${month}`);
// 디렉토리가 존재하지 않는 경우, 디렉토리를 생성합니다.
if (!fs.existsSync(dirPath)) {
fs.mkdirSync(dirPath, { recursive: true });
}
// blog 디렉토리 내의 .mdx 파일 수를 가져옵니다.
// _draft 디렉토리를 제외합니다.
const mdxFiles = glob.sync(path.join(__dirname, './blog/**/*.mdx'), {
ignore: path.join(__dirname, './blog/**/_draft/**/*.mdx'),
});
const count = mdxFiles.length;
// 파일 이름을 설정합니다.
const fileName = `${day}-${count + 1}.mdx`;
// 파일 경로를 설정합니다.
const filePath = path.join(dirPath, fileName);
// 파일 내용을 설정합니다.
const content = `---
slug: ${count + 1}
title: TITLE
authors: seokjae
tags: [hola, docusaurus]
enableComments: true
keywords: [INPUT_SOME_KEYWORDS]
---
Hello world!`;
// 파일을 생성합니다.
fs.writeFileSync(filePath, content);