From 7baf789eef4bd40e0230401d47194c1e5b3673a2 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Mon, 9 Jan 2017 15:04:47 -0800 Subject: [PATCH] Generate Line Number in Markdown Output HTML Adds basic line number data to the output html of the markdown renderer --- extensions/markdown/src/extension.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/extensions/markdown/src/extension.ts b/extensions/markdown/src/extension.ts index d5302e0dccd..8dad9e2ec24 100644 --- a/extensions/markdown/src/extension.ts +++ b/extensions/markdown/src/extension.ts @@ -180,6 +180,18 @@ class MDDocumentContentProvider implements vscode.TextDocumentContentProvider { return `
${md.utils.escapeHtml(str)}
`; } }).use(mdnh, {}); + + function addLineNumberRenderer(tokens: any, idx: number, options: any, env: any, self: any) { + const token = tokens[idx]; + if (token.level === 0 && token.map && token.map.length) { + token.attrSet('data-line', token.map[0]); + } + return self.renderToken(tokens, idx, options, env, self); + } + + md.renderer.rules.paragraph_open = addLineNumberRenderer; + md.renderer.rules.heading_open = addLineNumberRenderer; + return md; }