jingrow/data/presentation.js

38 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文件路径 - 只使用最后一个slug作为文件名
const fileName = slugArr[slugArr.length - 1] + '.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) {
return { data: null };
}
}