markdown

tcmts.vscode.pages_panel.markdown · #k5pzbbzr · term · runs anywhere

Markdown to HTML with VS Code's renderer (the markdown preview's), falling back to escaped text.

import * as vscode from "vscode";

export async function markdown(md: string): Promise<string> {
  try {
    return await vscode.commands.executeCommand<string>("markdown.api.render", md);
  } catch {
    return `<pre>${md.replace(/[&<>]/g, (c) => ({ "&": "&amp;", "<": "&lt;", ">": "&gt;" })[c]!)}</pre>`;
  }
}

used by