UNPKG

@wonderwhy-er/desktop-commander

Version:

MCP server for terminal operations and file editing

17 lines (16 loc) 624 B
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; }