From 5e5f68209b3b023fce260c9da1625844ca4d3c22 Mon Sep 17 00:00:00 2001 From: catvayor Date: Mon, 16 Dec 2024 00:11:47 +0100 Subject: [PATCH 1/2] revert: don't parse md in js --- static/js/script.js | 106 +------------------------------------------- 1 file changed, 2 insertions(+), 104 deletions(-) diff --git a/static/js/script.js b/static/js/script.js index 04234d7..d3ec223 100644 --- a/static/js/script.js +++ b/static/js/script.js @@ -27,97 +27,6 @@ function encodeAttr(str) { return (str+'').replace(/"/g, '"').replace(//g, '>'); } -/** Parse Markdown into an HTML String. */ -function parseMD(md, prevLinks) { - let tokenizer = /((?:^|\n+)(?:\n---+|\* \*(?: \*)+)\n)|(?:^``` *(\w*)\n([\s\S]*?)\n```$)|((?:(?:^|\n+)(?:\t| {2,}).+)+\n*)|((?:(?:^|\n)([>*+-]|\d+\.)\s+.*)+)|(?:!\[([^\]]*?)\]\(([^)]+?)\))|(\[)|(\](?:\(([^)]+?)\))?)|(?:(?:^|\n+)([^\s].*)\n(-{3,}|={3,})(?:\n+|$))|(?:(?:^|\n+)(#{1,6})\s*(.+)(?:\n+|$))|(?:`([^`].*?)`)|( \n\n*|\n{2,}|__|\*\*|[_*]|~~)/gm, - context = [], - out = '', - links = prevLinks || {}, - last = 0, - chunk, prev, token, inner, t; - - function tag(token) { - let desc = TAGS[token[1] || '']; - let end = context[context.length-1] == token; - if (!desc) return token; - if (!desc[1]) return desc[0]; - if (end) context.pop(); - else context.push(token); - return desc[end|0]; - } - - function flush() { - let str = ''; - while (context.length) str += tag(context[context.length-1]); - return str; - } - - md = md.replace(/^\[(.+?)\]:\s*(.+)$/gm, (s, name, url) => { - links[name.toLowerCase()] = url; - return ''; - }).replace(/^\n+|\n+$/g, ''); - - while ( (token=tokenizer.exec(md)) ) { - prev = md.substring(last, token.index); - last = tokenizer.lastIndex; - chunk = token[0]; - if (prev.match(/[^\\](\\\\)*\\$/)) { - // escaped - } - // Code/Indent blocks: - else if (t = (token[3] || token[4])) { - chunk = '
'+outdent(encodeAttr(t).replace(/^\n+|\n+$/g, ''))+'
'; - } - // > Quotes, -* lists: - else if (t = token[6]) { - if (t.match(/\./)) { - token[5] = token[5].replace(/^\d+/gm, ''); - } - inner = parse(outdent(token[5].replace(/^\s*[>*+.-]/gm, ''))); - if (t=='>') t = 'blockquote'; - else { - t = t.match(/\./) ? 'ol' : 'ul'; - inner = inner.replace(/^(.*)(\n|$)/gm, '
  • $1
  • '); - } - chunk = '<'+t+'>' + inner + ''; - } - // Images: - else if (token[8]) { - chunk = `${encodeAttr(token[7])}`; - } - // Links: - else if (token[10]) { - out = out.replace('', ``); - chunk = flush() + ''; - } - else if (token[9]) { - chunk = ''; - } - // Headings: - else if (token[12] || token[14]) { - t = 'h' + (token[14] ? token[14].length : (token[13]>'=' ? 1 : 2)); - chunk = '<'+t+'>' + parse(token[12] || token[15], links) + ''; - } - // `code`: - else if (token[16]) { - chunk = ''+encodeAttr(token[16])+''; - } - // Inline formatting: *em*, **strong** & friends - else if (token[17] || token[1]) { - chunk = tag(token[17] || '--'); - } - out += prev; - out += chunk; - } - - return (out + md.substring(last) + flush()).replace(/^\n+|\n+$/g, ''); -} - - -/************************* - * END MARKDOWN PARSER - */ - var search, results, allOptions, currentSet = []; var lastUpdate = "?"; @@ -254,22 +163,11 @@ var updateOptionsTable = function(options) { -function parseDescription(text){ - - text = text.replace(/]*))/gi ,'<https$1'); - text = text.replace(/\[\]\(#opt-(\s*([^)]*))/gi ,'$1').replace(/\)/gi,''); - //[](#opt-wayland.windowManager.hyprland.plugins) - text = text.replace(/\{var\}(\s*([^\n]*))/gi ,'$1').replace(/`/gi,'') - text = text.replace(/:::\ \{\.note\}(\s*([^:::]*))/gi ,'').replace(/:::/,'').replace(/\n/g, '
    ') - return text; -} - var expandOptionMD = function(el){ modalTitle.innerHTML = currentSet[el].title; - let dhtml = parseMD(currentSet[el].doc); - var elDesc = "
    Description
    " + dhtml + "
    "; + var elDesc = "
    Description
    " + currentSet[el].doc + "
    "; var elArgs = "
    Args
    " + currentSet[el].args.join(', ') + "
    "; // var elNote = ( currentSet[el].note == "" ? "": "
    Note
    " + currentSet[el].note + "
    "); // var elDefault = "
    Default
    " + currentSet[el].default + "
    "; @@ -290,7 +188,7 @@ var expandOption = function(el){ //console.log(currentSet[el].description.replace(/:::\ \{\.note\}(\s*([^:::]*))/gi ,'').replace(/:::/,'')); - var elDesc = "
    Description
    " + parseDescription(currentSet[el].description) + "
    "; + var elDesc = "
    Description
    " + currentSet[el].description + "
    "; var elType = "
    Type
    " + currentSet[el].type + "
    "; //var elNote = ( currentSet[el].note == "" ? "": "
    Note
    " + currentSet[el].note + "
    "); var elDefault = ( currentSet[el].default == "" ? "" : "
    Default
    " + currentSet[el].default + "
    "); -- 2.47.0