From 399ddd2dabead11a0a0de903a6288f9abcffd603 Mon Sep 17 00:00:00 2001 From: Marc Hartmayer Date: Wed, 3 Jun 2020 23:04:14 +0200 Subject: Update `markedjs` package Update `markedjs` to commit https://github.com/markedjs/marked/commit/7b3036f8c0440cfd003ce47dd6e1a92af0f5e822. This fixes the issue https://github.com/wekan/wekan/issues/3148. --- packages/markdown/marked/docs/demo/worker.js | 60 ++++++++++++++++++---------- 1 file changed, 39 insertions(+), 21 deletions(-) (limited to 'packages/markdown/marked/docs/demo/worker.js') diff --git a/packages/markdown/marked/docs/demo/worker.js b/packages/markdown/marked/docs/demo/worker.js index 6a0fa032..5fb5fd86 100644 --- a/packages/markdown/marked/docs/demo/worker.js +++ b/packages/markdown/marked/docs/demo/worker.js @@ -1,4 +1,5 @@ /* globals marked, unfetch, ES6Promise, Promise */ // eslint-disable-line no-redeclare + if (!self.Promise) { self.importScripts('https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.js'); self.Promise = ES6Promise; @@ -48,38 +49,55 @@ function parse(e) { case 'parse': var startTime = new Date(); var lexed = marked.lexer(e.data.markdown, e.data.options); - var lexedList = []; - for (var i = 0; i < lexed.length; i++) { - var lexedLine = []; - for (var j in lexed[i]) { - lexedLine.push(j + ':' + jsonString(lexed[i][j])); - } - lexedList.push('{' + lexedLine.join(', ') + '}'); - } + var lexedList = jsonString(lexed); var parsed = marked.parser(lexed, e.data.options); var endTime = new Date(); - // setTimeout(function () { postMessage({ task: e.data.task, - lexed: lexedList.join('\n'), + lexed: lexedList, parsed: parsed, time: endTime - startTime }); - // }, 10000); break; } } -function jsonString(input) { - var output = (input + '') - .replace(/\n/g, '\\n') - .replace(/\r/g, '\\r') - .replace(/\t/g, '\\t') - .replace(/\f/g, '\\f') - .replace(/[\\"']/g, '\\$&') - .replace(/\u0000/g, '\\0'); - return '"' + output + '"'; -}; +function stringRepeat(char, times) { + var s = ''; + for (var i = 0; i < times; i++) { + s += char; + } + return s; +} + +function jsonString(input, level) { + level = level || 0; + if (Array.isArray(input)) { + if (input.length === 0) { + return '[]'; + } + var items = [], + i; + if (!Array.isArray(input[0]) && typeof input[0] === 'object' && input[0] !== null) { + for (i = 0; i < input.length; i++) { + items.push(stringRepeat(' ', 2 * level) + jsonString(input[i], level + 1)); + } + return '[\n' + items.join('\n') + '\n]'; + } + for (i = 0; i < input.length; i++) { + items.push(jsonString(input[i], level)); + } + return '[' + items.join(', ') + ']'; + } else if (typeof input === 'object' && input !== null) { + var props = []; + for (var prop in input) { + props.push(prop + ':' + jsonString(input[prop], level)); + } + return '{' + props.join(', ') + '}'; + } else { + return JSON.stringify(input); + } +} function loadVersion(ver) { var promise; -- cgit v1.2.3-1-g7c22