Browse Source

Code cleanup

pull/14/head
Vitaly Puzrin 10 years ago
parent
commit
9b1df74176
  1. 11
      lib/helpers.js
  2. 44
      lib/lexer_inline/entity.js
  3. 1
      lib/renderer.js

11
lib/helpers.js

@ -91,16 +91,6 @@ function escapeHtml(str) {
return str; return str;
} }
function escapeHtmlKeepEntities(str) {
if (str.indexOf('&') >= 0) {
str = str.replace(/[&](?![#](x[a-f0-9]{1,8}|[0-9]{1,8});|[a-z][a-z0-9]{1,31};)/gi,'&');
}
if (str.indexOf('<') >= 0) { str = str.replace(/</g, '&lt;'); }
if (str.indexOf('>') >= 0) { str = str.replace(/>/g, '&gt;'); }
if (str.indexOf('"') >= 0) { str = str.replace(/"/g, '&quot;'); }
return str;
}
var UNESCAPE_MD_RE = /\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g; var UNESCAPE_MD_RE = /\\([\\!"#$%&'()*+,.\/:;<=>?@[\]^_`{|}~-])/g;
function unescapeMd(str) { function unescapeMd(str) {
@ -160,7 +150,6 @@ exports.getLines = getLines;
exports.skipCharsBack = skipCharsBack; exports.skipCharsBack = skipCharsBack;
exports.escapeHtml = escapeHtml; exports.escapeHtml = escapeHtml;
exports.unescapeMd = unescapeMd; exports.unescapeMd = unescapeMd;
exports.escapeHtmlKeepEntities = escapeHtmlKeepEntities;
exports.isValidEntityCode = isValidEntityCode; exports.isValidEntityCode = isValidEntityCode;
exports.fromCodePoint = fromCodePoint; exports.fromCodePoint = fromCodePoint;
exports.replaceEntities = replaceEntities; exports.replaceEntities = replaceEntities;

44
lib/lexer_inline/entity.js

@ -8,8 +8,8 @@ var isValidEntityCode = require('../helpers').isValidEntityCode;
var fromCodePoint = require('../helpers').fromCodePoint; var fromCodePoint = require('../helpers').fromCodePoint;
var DIGITAL_RE = /^(?:x[a-f0-9]{1,8}|[0-9]{1,8});/i; var DIGITAL_RE = /^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i;
var NAMED_RE = /^([a-z][a-z0-9]{1,31});/i; var NAMED_RE = /^&([a-z][a-z0-9]{1,31});/i;
module.exports = function entity(state) { module.exports = function entity(state) {
@ -17,32 +17,26 @@ module.exports = function entity(state) {
if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; } if (state.src.charCodeAt(pos) !== 0x26/* & */) { return false; }
pos++; if (pos + 1 < max) {
ch = state.src.charCodeAt(pos + 1);
if (pos >= max) { if (ch === 0x23 /* # */) {
state.pending += '&amp;'; match = state.src.slice(pos).match(DIGITAL_RE);
state.pos++; if (match) {
return true; code = match[1][0].toLowerCase() === 'x' ? parseInt(match[1].slice(1), 16) : parseInt(match[1], 10);
} state.pending += isValidEntityCode(code) ? escapeHtml(fromCodePoint(code)) : fromCodePoint(0xFFFD);
state.pos += match[0].length;
ch = state.src.charCodeAt(pos);
if (ch === 0x23 /* # */) {
match = state.src.slice(pos + 1).match(DIGITAL_RE);
if (match) {
code = match[0][0].toLowerCase() === 'x' ? parseInt(match[0].slice(1), 16) : parseInt(match[0], 10);
state.pending += isValidEntityCode(code) ? escapeHtml(fromCodePoint(code)) : fromCodePoint(0xFFFD);
state.pos += match[0].length + 2;
return true;
}
} else {
match = state.src.slice(pos).match(NAMED_RE);
if (match) {
if (entities.hasOwnProperty(match[1])) {
state.pending += escapeHtml(entities[match[1]]);
state.pos += match[0].length + 1;
return true; return true;
} }
} else {
match = state.src.slice(pos).match(NAMED_RE);
if (match) {
if (entities.hasOwnProperty(match[1])) {
state.pending += escapeHtml(entities[match[1]]);
state.pos += match[0].length;
return true;
}
}
} }
} }

1
lib/renderer.js

@ -5,7 +5,6 @@ var assign = require('object-assign');
var escapeHtml = require('./helpers').escapeHtml; var escapeHtml = require('./helpers').escapeHtml;
var unescapeMd = require('./helpers').unescapeMd; var unescapeMd = require('./helpers').unescapeMd;
var replaceEntities = require('./helpers').replaceEntities; var replaceEntities = require('./helpers').replaceEntities;
//var escapeHtmlKeepEntities = require('./helpers').escapeHtmlKeepEntities;
function escapeUrl(str) { function escapeUrl(str) {

Loading…
Cancel
Save