rename escape to simpleEscape to prevent ever accidentally colliding with global escape

indiachan-spamvector
Thomas Lynch 2 years ago
parent f4f88d697a
commit b67232fc3f
Signed by: fatchan
GPG Key ID: A7E5E8B7E11EE92D
  1. 6
      lib/post/markdown/escape.test.js
  2. 8
      lib/post/markdown/markdown.js

@ -1,6 +1,6 @@
const escape = require('./escape.js'); const simpleEscape = require('./escape.js');
describe('escape() - convert some characters to html entities', () => { describe('simpleEscape() - convert some characters to html entities', () => {
const cases = [ const cases = [
{ in: '\'', out: ''' }, { in: '\'', out: ''' },
{ in: '/', out: '/' }, { in: '/', out: '/' },
@ -13,7 +13,7 @@ describe('escape() - convert some characters to html entities', () => {
]; ];
for(let i in cases) { for(let i in cases) {
test(`should output ${cases[i].out} for an input of ${cases[i].in}`, () => { test(`should output ${cases[i].out} for an input of ${cases[i].in}`, () => {
expect(escape(cases[i].in)).toBe(cases[i].out); expect(simpleEscape(cases[i].in)).toBe(cases[i].out);
}); });
} }
}); });

@ -16,7 +16,7 @@ const greentextRegex = /^>((?!>\d+|>>/\w+(/\d*)?|>>#
, includeSplitRegex = /(\[code\][\s\S]+?\[\/code\])/gm , includeSplitRegex = /(\[code\][\s\S]+?\[\/code\])/gm
, splitRegex = /\[code\]([\s\S]+?)\[\/code\]/gm , splitRegex = /\[code\]([\s\S]+?)\[\/code\]/gm
, trimNewlineRegex = /^(\s*\r?\n)*/g , trimNewlineRegex = /^(\s*\r?\n)*/g
, escape = require(__dirname+'/escape.js') , simpleEscape = require(__dirname+'/escape.js')
, { highlight, highlightAuto, listLanguages } = require('highlight.js') , { highlight, highlightAuto, listLanguages } = require('highlight.js')
, validLanguages = listLanguages() //precompute , validLanguages = listLanguages() //precompute
, { addCallback } = require(__dirname+'/../../redis/redis.js') , { addCallback } = require(__dirname+'/../../redis/redis.js')
@ -72,7 +72,7 @@ module.exports = {
for (let i = 0; i < chunks.length; i++) { for (let i = 0; i < chunks.length; i++) {
//every other chunk will be a code block //every other chunk will be a code block
if (i % 2 === 0) { if (i % 2 === 0) {
const escaped = escape(chunks[i]); const escaped = simpleEscape(chunks[i]);
const newlineFix = escaped.replace(/^\r?\n/,''); //fix ending newline because of codeblock const newlineFix = escaped.replace(/^\r?\n/,''); //fix ending newline because of codeblock
chunks[i] = module.exports.processRegularChunk(newlineFix, permissions); chunks[i] = module.exports.processRegularChunk(newlineFix, permissions);
} else if (permissions.get(Permissions.USE_MARKDOWN_CODE)){ } else if (permissions.get(Permissions.USE_MARKDOWN_CODE)){
@ -96,13 +96,13 @@ module.exports = {
return `<span class='code hljs'><small>possible language: ${language}, relevance: ${relevance}</small>\n${value}</span>`; return `<span class='code hljs'><small>possible language: ${language}, relevance: ${relevance}</small>\n${value}</span>`;
} }
} else if (lang === 'aa') { } else if (lang === 'aa') {
return `<span class='aa'>${escape(matches.groups.code)}</span>`; return `<span class='aa'>${simpleEscape(matches.groups.code)}</span>`;
} else if (validLanguages.includes(lang)) { } else if (validLanguages.includes(lang)) {
const { value } = highlight(trimFix, { language: lang, ignoreIllegals: true }); const { value } = highlight(trimFix, { language: lang, ignoreIllegals: true });
return `<span class='code hljs'><small>language: ${lang}</small>\n${value}</span>`; return `<span class='code hljs'><small>language: ${lang}</small>\n${value}</span>`;
} }
//else, auto highlight relevance threshold was too low, lang was not a valid language, or lang was 'plain' //else, auto highlight relevance threshold was too low, lang was not a valid language, or lang was 'plain'
return `<span class='code'>${escape(trimFix)}</span>`; return `<span class='code'>${simpleEscape(trimFix)}</span>`;
}, },
processRegularChunk: (text, permissions) => { processRegularChunk: (text, permissions) => {

Loading…
Cancel
Save