diff --git a/src/services/MarkdownRenderer.ts b/src/services/MarkdownRenderer.ts index f551f84c..9276a096 100644 --- a/src/services/MarkdownRenderer.ts +++ b/src/services/MarkdownRenderer.ts @@ -46,7 +46,7 @@ export class MarkdownRenderer { } static getTextBeforeHading(md: string, heading: string): string { - const headingLinePos = md.search(new RegExp(`^##?\s+${heading}`, 'm')); + const headingLinePos = md.search(new RegExp(`^##?\\s+${heading}`, 'm')); if (headingLinePos > -1) { return md.substring(0, headingLinePos); } diff --git a/src/services/MenuBuilder.ts b/src/services/MenuBuilder.ts index c5305d58..f61f6189 100644 --- a/src/services/MenuBuilder.ts +++ b/src/services/MenuBuilder.ts @@ -66,6 +66,13 @@ export class MenuBuilder { const renderer = new MarkdownRenderer(options); const headings = renderer.extractHeadings(description || ''); + if (headings.length && parent && parent.description) { + parent.description = MarkdownRenderer.getTextBeforeHading( + parent.description, + headings[0].name, + ); + } + const mapHeadingsDeep = (_parent, items, depth = 1) => items.map(heading => { const group = new GroupModel('section', heading, _parent);