why deal with wikipedia links when you can just add a space 4Head, not like this worked properly to begin with

jschan
Thomas Lynch 3 years ago
parent c084b5960a
commit ca43e94baf
  1. 32
      helpers/posting/linkmatch.js
  2. 4
      helpers/posting/markdown.js
  3. 2
      views/custompages/faq.pug

@ -1,34 +1,20 @@
'use strict'; 'use strict';
const parenPairRegex = /\((?:[^)(]+|\((?:[^)(]+|\([^)(]\))*\))*\)/g
// , config = require(__dirname+'/../../config.js');
module.exports = (permLevel, match, p1, p2, p3, offset, string, groups) => { module.exports = (permLevel, match, p1, p2, p3, offset, string, groups) => {
let { url, label, urlOnly } = groups
, excess = ''; let { url, label, urlOnly } = groups;
console.log(url, label, urlOnly)
url = url || urlOnly; url = url || urlOnly;
if (urlOnly) {
const parensPairs = url.match(parenPairRegex);
let trimmedMatch = url;
//naive solution to conflict with detected markdown
if (parensPairs) {
const lastMatch = parensPairs[parensPairs.length-1];
const lastIndex = url.lastIndexOf(lastMatch);
trimmedMatch = url.substring(0, lastIndex+lastMatch.length);
excess = url.substring(lastIndex+lastMatch.length);
} else if (url.indexOf(')') !== -1){
trimmedMatch = url.substring(0, url.indexOf(')'));
excess = url.substring(url.indexOf(')'));
}
url = trimmedMatch;
}
if (permLevel >= 4) { if (permLevel >= 4) {
label = url label = url
.replace(/\(/g, '(') .replace(/\(/g, '(')
.replace(/\)/g, ')'); .replace(/\)/g, ')');
} }
url = url.replace(/\(/g, '%28') url = url.replace(/\(/g, '%28')
.replace(/\)/g, '%29'); .replace(/\)/g, '%29');
/* /*
//todo: Something to revisit later //todo: Something to revisit later
const href = url; const href = url;
@ -41,5 +27,7 @@ module.exports = (permLevel, match, p1, p2, p3, offset, string, groups) => {
} catch (e) { } } catch (e) { }
} }
*/ */
return `<a rel='nofollow' referrerpolicy='same-origin' target='_blank' href='${url}'>${label || url}</a>${excess}`;
return `<a rel='nofollow' referrerpolicy='same-origin' target='_blank' href='${url}'>${label || url}</a>`;
}; };

@ -9,7 +9,7 @@ const greentextRegex = /^&gt;((?!&gt;\d+|&gt;&gt;&#x2F;\w+(&#x2F;\d*)?|&gt;&gt;#
, strikeRegex = /~~(.+?)~~/gm , strikeRegex = /~~(.+?)~~/gm
, italicRegex = /\*\*(.+?)\*\*/gm , italicRegex = /\*\*(.+?)\*\*/gm
, spoilerRegex = /\|\|([\s\S]+?)\|\|/gm , spoilerRegex = /\|\|([\s\S]+?)\|\|/gm
, detectedRegex = /(\(\(\(.+?\)\)\))/gm , detectedRegex = /\(\(\((.+?)\)\)\)/gm
, linkRegex = /\[(?<label>[^\[][^\]]*?)\]\((?<url>(?:&#x2F;[^\s<>\[\]{}|\\^)]+|https?\:&#x2F;&#x2F;[^\s<>\[\]{}|\\^)]+))\)|(?<urlOnly>https?\:&#x2F;&#x2F;[^\s<>\[\]{}|\\^]+)/g , linkRegex = /\[(?<label>[^\[][^\]]*?)\]\((?<url>(?:&#x2F;[^\s<>\[\]{}|\\^)]+|https?\:&#x2F;&#x2F;[^\s<>\[\]{}|\\^)]+))\)|(?<urlOnly>https?\:&#x2F;&#x2F;[^\s<>\[\]{}|\\^]+)/g
, codeRegex = /(?:(?<language>[a-z+]{1,14})\r?\n)?(?<code>[\s\S]+)/i , codeRegex = /(?:(?<language>[a-z+]{1,14})\r?\n)?(?<code>[\s\S]+)/i
, includeSplitRegex = /(\[code\][\s\S]+?\[\/code\])/gm , includeSplitRegex = /(\[code\][\s\S]+?\[\/code\])/gm
@ -38,8 +38,8 @@ const updateMarkdownPerms = () => {
{ permLevel: markdownPermLevels.italic, regex: italicRegex, cb: (permLevel, match, italic) => `<span class='em'>${italic}</span>` }, { permLevel: markdownPermLevels.italic, regex: italicRegex, cb: (permLevel, match, italic) => `<span class='em'>${italic}</span>` },
{ permLevel: markdownPermLevels.spoiler, regex: spoilerRegex, cb: (permLevel, match, spoiler) => `<span class='spoiler'>${spoiler}</span>` }, { permLevel: markdownPermLevels.spoiler, regex: spoilerRegex, cb: (permLevel, match, spoiler) => `<span class='spoiler'>${spoiler}</span>` },
{ permLevel: markdownPermLevels.mono, regex: monoRegex, cb: (permLevel, match, mono) => `<span class='mono'>${mono}</span>` }, { permLevel: markdownPermLevels.mono, regex: monoRegex, cb: (permLevel, match, mono) => `<span class='mono'>${mono}</span>` },
{ permLevel: markdownPermLevels.detected, regex: detectedRegex, cb: (permLevel, match, detected) => `<span class='detected'>&lpar;&lpar;&lpar; ${detected} &rpar;&rpar;&rpar;</span>` },
{ permLevel: markdownPermLevels.link, regex: linkRegex, cb: linkmatch }, { permLevel: markdownPermLevels.link, regex: linkRegex, cb: linkmatch },
{ permLevel: markdownPermLevels.detected, regex: detectedRegex, cb: (permLevel, match, detected) => `<span class='detected'>${detected}</span>` },
{ permLevel: markdownPermLevels.dice, regex: diceroll.regexMarkdown, cb: diceroll.markdown }, { permLevel: markdownPermLevels.dice, regex: diceroll.regexMarkdown, cb: diceroll.markdown },
{ permLevel: markdownPermLevels.fortune, regex: fortune.regex, cb: fortune.markdown }, { permLevel: markdownPermLevels.fortune, regex: fortune.regex, cb: fortune.markdown },
]; ];

@ -156,7 +156,7 @@ block content
tr tr
td (((detected))) td (((detected)))
td td
span.detected (((detected))) span.detected ((( detected )))
tr tr
td ##2d9+3 td ##2d9+3
td td

Loading…
Cancel
Save