diff --git a/package.json b/package.json index aa6a39099e..e1e5dbcb82 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "dependencies": { "colors": "1.4.0", "finalhandler": "^2.1.1", - "marked": "^12.0.2", + "marked": "^16.4.0", "puppeteer": "^24.37.5", "sade": "^1.8.1", "serve-static": "^2.2.1" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f75760e72b..16a2c832ec 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -15,8 +15,8 @@ importers: specifier: ^2.1.1 version: 2.1.1 marked: - specifier: ^12.0.2 - version: 12.0.2 + specifier: ^16.4.0 + version: 16.4.0 puppeteer: specifier: ^24.37.5 version: 24.37.5(typescript@5.9.3) @@ -1768,9 +1768,9 @@ packages: resolution: {integrity: sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==} engines: {node: '>=12'} - marked@12.0.2: - resolution: {integrity: sha512-qXUm7e/YKFoqFPYPa3Ukg9xlI5cyAtGmyEIzMfW//m6kXwCy2Ps9DYf5ioijFKQ8qyuscrHoY04iJGctu2Kg0Q==} - engines: {node: '>= 18'} + marked@16.4.0: + resolution: {integrity: sha512-CTPAcRBq57cn3R8n3hwc2REddc28hjR7RzDXQ+lXLmMJYqn20BaI2cGw6QjgZGIgVfp2Wdfw4aMzgNteQ6qJgQ==} + engines: {node: '>= 20'} hasBin: true math-intrinsics@1.1.0: @@ -4397,7 +4397,7 @@ snapshots: dependencies: '@jridgewell/sourcemap-codec': 1.4.15 - marked@12.0.2: {} + marked@16.4.0: {} math-intrinsics@1.1.0: {} diff --git a/src/core/markdown.js b/src/core/markdown.js index 89d750dbcf..69a2dc44bc 100644 --- a/src/core/markdown.js +++ b/src/core/markdown.js @@ -20,16 +20,16 @@ const gtEntity = />/gm; const ampEntity = /&/gm; class Renderer extends marked.Renderer { - code(code, infoString, isEscaped) { - const { language, ...metaData } = Renderer.parseInfoString(infoString); + code({ text, lang, escaped }) { + const { language, ...metaData } = Renderer.parseInfoString(lang || ""); // regex to check whether the language is webidl if (/(^webidl$)/i.test(language)) { - return `
${code}`;
+ return `${text}`;
}
const html = super
- .code(code, language, isEscaped)
+ .code({ text, lang: language, escaped })
.replace(`class="language-`, `class="`);
const { example, illegalExample } = metaData;
@@ -40,9 +40,9 @@ class Renderer extends marked.Renderer {
return html.replace("", ``);
}
- image(href, title, text) {
+ image({ href, title, text, tokens }) {
if (!title) {
- return super.image(href, title, text);
+ return super.image({ href, title, text, tokens });
}
const html = String.raw;
return html`
@@ -76,20 +76,20 @@ class Renderer extends marked.Renderer {
return { language, ...metaData };
}
- heading(text, level, raw) {
+ heading({ tokens, depth, text }) {
const headingWithIdRegex = /(.+)\s+{#([\w-]+)}$/;
if (headingWithIdRegex.test(text)) {
const [, textContent, id] = text.match(headingWithIdRegex);
- return `${textContent} `;
+ return `${textContent} `;
}
- return super.heading(text, level, raw);
+ return super.heading({ tokens, depth });
}
}
/** @type {import('marked').MarkedOptions} */
const config = {
gfm: true,
- renderer: new Renderer(),
+ renderer: /** @type {any} */ (new Renderer()),
};
/**