Skip to content

Commit 08049ce

Browse files
committed
[Feature] add for new
1 parent d888aca commit 08049ce

File tree

3 files changed

+5338
-35
lines changed

3 files changed

+5338
-35
lines changed

src/.vuepress/public/leetcode/index/generate-leetcode-index.js renamed to src/.vuepress/public/leetcode/index/generate-leetcode-index.cjs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
// Node.js 脚本:自动扫描 leetcode md 文件,生成 leetcode-index.js
22
const fs = require('fs');
33
const path = require('path');
4-
const mdDir = path.join(__dirname, 'leetcode');
4+
// 修正为项目 src/posts/leetcode 目录
5+
const mdDir = path.resolve(__dirname, '../../../../posts/leetcode');
56
const outFile = path.join(__dirname, 'leetcode-index.js');
67

78
function getMeta(content) {
@@ -11,9 +12,18 @@ function getMeta(content) {
1112
match[1].split('\n').forEach(line => {
1213
if (/^title:/.test(line)) meta.title = line.replace('title:', '').trim();
1314
if (/^date:/.test(line)) meta.date = line.replace('date:', '').trim();
14-
if (/^categories:/.test(line)) meta.categories = JSON.parse(line.replace('categories:', '').replace(/'/g, '"').trim());
15-
if (/^tags:/.test(line)) meta.tags = JSON.parse(line.replace('tags:', '').replace(/'/g, '"').trim());
15+
if (/^categories:/.test(line)) {
16+
meta.categories = line.replace('categories:', '')
17+
.replace('[', '').replace(']', '')
18+
.split(',').map(s => s.trim()).filter(Boolean);
19+
}
20+
if (/^tags:/.test(line)) {
21+
meta.tags = line.replace('tags:', '')
22+
.replace('[', '').replace(']', '')
23+
.split(',').map(s => s.trim()).filter(Boolean);
24+
}
1625
});
26+
1727
// 简要描述,取 # 题目 下第一段
1828
const descMatch = content.match(/# [\u4e00-\u9fa5\w]+\n+([\s\S]*?)(\n{2,}|$)/);
1929
meta.desc = descMatch ? descMatch[1].replace(/\r/g, '').trim() : '';
@@ -30,7 +40,9 @@ function scanMdFiles(dir) {
3040
const content = fs.readFileSync(fullPath, 'utf-8');
3141
const meta = getMeta(content);
3242
if (meta) {
33-
meta.url = path.relative(mdDir, fullPath).replace(/\\/g, '/');
43+
// 生成 html 路径
44+
const relPath = path.relative(mdDir, fullPath).replace(/\\/g, '/');
45+
meta.url = relPath.replace(/\.md$/, '.html');
3446
result.push(meta);
3547
}
3648
}

0 commit comments

Comments
 (0)