@wonderwhy-er/desktop-commander
Version:
MCP server for terminal operations and file editing
17 lines (16 loc) • 624 B
JavaScript
import { createMarkdownIt, prepareMarkdownSource, readHeadingProjection } from './parser.js';
import { createSlugTracker } from './slugify.js';
const outlineParser = createMarkdownIt();
export function extractMarkdownOutline(source) {
const tokens = outlineParser.parse(prepareMarkdownSource(source), {});
const nextSlug = createSlugTracker();
const outline = [];
for (let index = 0; index < tokens.length; index += 1) {
const heading = readHeadingProjection(tokens, index, nextSlug);
if (!heading) {
continue;
}
outline.push(heading);
}
return outline;
}