testMarkdownHighlightsCode
tcmts.content.test.testMarkdownHighlightsCode · #dg2hcuqj · function
import { markdown, shiki } from "#codebase/tcmts/content";
import type { Highlight } from "#codebase/tcmts/content";
import assert from "node:assert/strict";
export const testMarkdownHighlightsCode = async () => {
const upper: Highlight = (code, lang) =>
lang === "ts" ? `<pre class="hl">${code.toUpperCase()}</pre>` : undefined;
assert.equal(
markdown("```ts x\nlet a\n```", { highlight: upper }),
'<pre class="hl">LET A</pre>\n',
);
assert.equal(
markdown("```sh\nls\n```", { highlight: upper }),
'<pre><code class="language-sh">ls\n</code></pre>\n',
);
assert.equal(markdown("```\nls\n```", { highlight: upper }), "<pre><code>ls\n</code></pre>\n");
const hl = await shiki({ langs: ["ts"] });
const html = markdown("```ts\nconst a = 1\n```", { highlight: hl });
assert.match(html, /^<pre class="shiki shiki-themes github-light github-dark"/);
assert.match(html, /style="color:#[0-9A-F]{6};--shiki-dark:#[0-9A-F]{6}"/i);
assert.equal(hl("x", "lua"), undefined);
const vars = await shiki({ langs: ["ts"], defaultColor: false });
assert.match(
vars("const a = 1", "ts")!,
/style="--shiki-light:#[0-9A-F]{6};--shiki-dark:#[0-9A-F]{6}"/i,
);
}
uses