39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
import fs from 'fs';
|
|
import path from 'path';
|
|
import matter from 'gray-matter';
|
|
|
|
// 从本地markdown文件获取页面数据
|
|
export async function getLocalPageData(slugArr) {
|
|
try {
|
|
if (!Array.isArray(slugArr) || slugArr.length === 0) {
|
|
return { data: null };
|
|
}
|
|
|
|
// 构建markdown文件路径
|
|
const fileName = slugArr.join('-') + '.md';
|
|
const filePath = path.join(process.cwd(), 'data', 'presentation', fileName);
|
|
|
|
// 检查文件是否存在
|
|
if (!fs.existsSync(filePath)) {
|
|
return { data: null };
|
|
}
|
|
|
|
// 读取markdown文件内容
|
|
const fileContent = fs.readFileSync(filePath, 'utf-8');
|
|
const { data: frontMatter, content } = matter(fileContent);
|
|
|
|
// 构建页面数据结构
|
|
const pageData = {
|
|
content: content,
|
|
slug: '/' + slugArr.join('/'),
|
|
slug_list: slugArr,
|
|
...frontMatter // 添加 frontmatter 数据
|
|
};
|
|
|
|
return { data: pageData };
|
|
} catch (error) {
|
|
console.error("Error reading local markdown file:", error);
|
|
return { data: null };
|
|
}
|
|
}
|