diff --git a/src/markdown/markdown-render.css b/src/markdown/markdown-render.css index b4bb50e..4bc0423 100644 --- a/src/markdown/markdown-render.css +++ b/src/markdown/markdown-render.css @@ -141,13 +141,6 @@ overflow-wrap: anywhere; } -.md-codeblock__label { - margin: 0 0 1rem; - font-family: var(--md-code-font); - font-size: 11px; - color: var(--subtle); -} - .md-inline-code { padding: 0.1em 0.24em; border-radius: 4px; diff --git a/src/markdown/markdown.ts b/src/markdown/markdown.ts index 2410f3a..52c7599 100644 --- a/src/markdown/markdown.ts +++ b/src/markdown/markdown.ts @@ -29,6 +29,7 @@ const alignmentClassFromToken = (token: any) => { const safeLink = (hrefRaw: string) => { const href = (hrefRaw || "").trim(); if (!href) return ""; + if (href.startsWith("//")) return ""; if (/^(https?|mailto|tel):/i.test(href)) return href; if (/^[./#]/.test(href)) return href; if (!/^[a-z][a-z0-9+.-]*:/i.test(href)) return href; @@ -255,11 +256,11 @@ markdown.renderer.rules.code_inline = (tokens: any[], idx: number) => markdown.renderer.rules.fence = (tokens: any[], idx: number) => { const info = tokens[idx].info.trim(); - const language = info || "code"; - return `
${escapeHtml(tokens[idx].content).replace(
+ const languageClass = info.toLowerCase().replace(/[^a-z0-9_-]/g, "") || "code";
+ return `${escapeHtml(tokens[idx].content).replace(
/\n$/,
""
- )}
${escapeHtml(language)}`;
+ )}`;
};
markdown.renderer.rules.code_block = (tokens: any[], idx: number) =>