ttrpg-tools/src/data-loader/index.ts

24 lines
793 B
TypeScript
Raw Normal View History

2026-02-26 14:24:48 +08:00
import { buildFileTree, extractHeadings, extractSection, type TocNode, type FileNode } from "./toc";
import {getIndexedData, getPathsByExtension} from "./file-index";
2026-02-26 14:24:48 +08:00
export { TocNode, FileNode, extractHeadings, buildFileTree, extractSection };
/**
* +
* .md
2026-02-26 14:24:48 +08:00
*/
2026-02-26 14:30:09 +08:00
export async function generateToc(): Promise<{ fileTree: FileNode[]; pathHeadings: Record<string, TocNode[]> }> {
const mdPaths = await getPathsByExtension("md");
const fileTree = buildFileTree(mdPaths);
2026-02-26 14:24:48 +08:00
const pathHeadings: Record<string, TocNode[]> = {};
for (const path of mdPaths) {
const content = await getIndexedData(path);
2026-02-26 14:24:48 +08:00
if (content) {
pathHeadings[path] = extractHeadings(content);
}
}
return { fileTree, pathHeadings };
}