diff --git a/package.json b/package.json index 9052a6f5716..c457ba813ed 100644 --- a/package.json +++ b/package.json @@ -139,7 +139,7 @@ "@types/jsurl": "^1.2.28", "@types/lodash": "4.14.191", "@types/logfmt": "^1.2.3", - "@types/marked": "^4", + "@types/marked": "5.0.1", "@types/mousetrap": "1.6.11", "@types/node": "18.16.16", "@types/node-forge": "^1", @@ -351,7 +351,8 @@ "logfmt": "^1.3.2", "lru-cache": "10.0.0", "lru-memoize": "^1.1.0", - "marked": "^4.3.0", + "marked": "5.1.1", + "marked-mangle": "1.1.0", "memoize-one": "6.0.0", "moment": "2.29.4", "moment-timezone": "0.5.41", diff --git a/packages/grafana-data/package.json b/packages/grafana-data/package.json index f9afc4726d3..f1e107ae0e3 100644 --- a/packages/grafana-data/package.json +++ b/packages/grafana-data/package.json @@ -46,7 +46,8 @@ "fast_array_intersect": "1.1.0", "history": "4.10.1", "lodash": "4.17.21", - "marked": "4.2.12", + "marked": "5.1.1", + "marked-mangle": "1.1.0", "moment": "2.29.4", "moment-timezone": "0.5.41", "ol": "7.4.0", @@ -74,7 +75,7 @@ "@types/jest": "29.2.3", "@types/jquery": "3.5.16", "@types/lodash": "4.14.191", - "@types/marked": "4.0.8", + "@types/marked": "5.0.1", "@types/node": "18.16.16", "@types/papaparse": "5.3.7", "@types/react": "18.2.15", diff --git a/packages/grafana-data/src/text/markdown.ts b/packages/grafana-data/src/text/markdown.ts index 8c997dc438a..3ddfd83b4df 100644 --- a/packages/grafana-data/src/text/markdown.ts +++ b/packages/grafana-data/src/text/markdown.ts @@ -1,4 +1,5 @@ import { marked } from 'marked'; +import { mangle } from 'marked-mangle'; import { sanitizeTextPanelContent } from './sanitize'; @@ -10,6 +11,7 @@ export interface RenderMarkdownOptions { } const markdownOptions = { + headerIds: false, pedantic: false, gfm: true, smartLists: true, @@ -20,6 +22,7 @@ const markdownOptions = { export function renderMarkdown(str?: string, options?: RenderMarkdownOptions): string { if (!hasInitialized) { + marked.use(mangle()); marked.setOptions({ ...markdownOptions }); hasInitialized = true; } @@ -42,6 +45,7 @@ export function renderMarkdown(str?: string, options?: RenderMarkdownOptions): s export function renderTextPanelMarkdown(str?: string, options?: RenderMarkdownOptions): string { if (!hasInitialized) { + marked.use(mangle()); marked.setOptions({ ...markdownOptions }); hasInitialized = true; } diff --git a/yarn.lock b/yarn.lock index ed13b39dae5..5fd13ae6300 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3736,7 +3736,7 @@ __metadata: "@types/jest": 29.2.3 "@types/jquery": 3.5.16 "@types/lodash": 4.14.191 - "@types/marked": 4.0.8 + "@types/marked": 5.0.1 "@types/node": 18.16.16 "@types/papaparse": 5.3.7 "@types/react": 18.2.15 @@ -3753,7 +3753,8 @@ __metadata: fast_array_intersect: 1.1.0 history: 4.10.1 lodash: 4.17.21 - marked: 4.2.12 + marked: 5.1.1 + marked-mangle: 1.1.0 moment: 2.29.4 moment-timezone: 0.5.41 ol: 7.4.0 @@ -10210,10 +10211,10 @@ __metadata: languageName: node linkType: hard -"@types/marked@npm:4.0.8, @types/marked@npm:^4": - version: 4.0.8 - resolution: "@types/marked@npm:4.0.8" - checksum: 68278fa7acaa5d920cdc239d675b5daf842e0ad4779e4848cd617d9baf2ac1afccb5a264c331e37d80031d647e1640cb983cd31e73d45b28552670b4853fad8e +"@types/marked@npm:5.0.1": + version: 5.0.1 + resolution: "@types/marked@npm:5.0.1" + checksum: 84323058e0a5127aeb67d709e1dcb0cc0024b190c337ca68813fcd1f271e7c7351ed14ea83e5e21a7a264fb87ba8767c0a98fb26d05a06181a7edd49299ef437 languageName: node linkType: hard @@ -19351,7 +19352,7 @@ __metadata: "@types/jsurl": ^1.2.28 "@types/lodash": 4.14.191 "@types/logfmt": ^1.2.3 - "@types/marked": ^4 + "@types/marked": 5.0.1 "@types/mousetrap": 1.6.11 "@types/node": 18.16.16 "@types/node-forge": ^1 @@ -19479,7 +19480,8 @@ __metadata: logfmt: ^1.3.2 lru-cache: 10.0.0 lru-memoize: ^1.1.0 - marked: ^4.3.0 + marked: 5.1.1 + marked-mangle: 1.1.0 memoize-one: 6.0.0 mini-css-extract-plugin: 2.7.2 moment: 2.29.4 @@ -23414,21 +23416,21 @@ __metadata: languageName: node linkType: hard -"marked@npm:4.2.12": - version: 4.2.12 - resolution: "marked@npm:4.2.12" - bin: - marked: bin/marked.js - checksum: bd551cd61028ee639d4ca2ccdfcc5a6ba4227c1b143c4538f3cde27f569dcb57df8e6313560394645b418b84a7336c07ab1e438b89b6324c29d7d8cdd3102d63 +"marked-mangle@npm:1.1.0": + version: 1.1.0 + resolution: "marked-mangle@npm:1.1.0" + peerDependencies: + marked: ^4 || ^5 + checksum: 3897cb6b0ed580e9be029bf78f8b3b22534ca3e0c061fd9e45d0f256263c01f9667122d68235c767583c7109347bd1cc823dca5f428b95460123ba4b212cdb11 languageName: node linkType: hard -"marked@npm:^4.3.0": - version: 4.3.0 - resolution: "marked@npm:4.3.0" +"marked@npm:5.1.1": + version: 5.1.1 + resolution: "marked@npm:5.1.1" bin: marked: bin/marked.js - checksum: 0db6817893952c3ec710eb9ceafb8468bf5ae38cb0f92b7b083baa13d70b19774674be04db5b817681fa7c5c6a088f61300815e4dd75a59696f4716ad69f6260 + checksum: e0c6d3a63d01c3b47f7758c3add02abdb3747701b6fce60c4b5602cc3b33122439c5c0a95ac1e8b5fcbb0f7d3aa7af2126aa56074c3d41e207bf9a9ed9948026 languageName: node linkType: hard