From d5e8e61b6b0e02a4cb5059df74f4c3a6517638e1 Mon Sep 17 00:00:00 2001 From: Alex Kocharin Date: Wed, 29 Oct 2014 07:55:01 +0300 Subject: [PATCH] Check validation flag instead of hardcoding rules --- lib/parser_inline.js | 5 ----- lib/rules_inline/del.js | 1 + lib/rules_inline/emphasis.js | 1 + lib/rules_inline/ins.js | 1 + lib/rules_inline/mark.js | 1 + lib/rules_inline/sub.js | 1 + lib/rules_inline/sup.js | 1 + 7 files changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/parser_inline.js b/lib/parser_inline.js index 889cb62..6e61b1d 100644 --- a/lib/parser_inline.js +++ b/lib/parser_inline.js @@ -83,11 +83,6 @@ ParserInline.prototype.skipToken = function (state) { } for (i = 0; i < len; i++) { - // TODO: change it to rule chains somehow - if ([ 'autolink', 'backticks', 'escape', 'htmltag', 'links', 'text' ].indexOf(this._rules[i].name) === -1) { - continue; - } - if (this._rules[i](state, true)) { state.cacheSet(pos, state.pos); return; diff --git a/lib/rules_inline/del.js b/lib/rules_inline/del.js index 3891a65..c34e4dd 100644 --- a/lib/rules_inline/del.js +++ b/lib/rules_inline/del.js @@ -12,6 +12,7 @@ module.exports = function del(state, silent) { nextChar; if (state.src.charCodeAt(start) !== 0x7E/* ~ */) { return false; } + if (silent) { return false; } // don't run any pairs in validation mode if (start + 4 >= max) { return false; } if (state.src.charCodeAt(start + 1) !== 0x7E/* ~ */) { return false; } if (state.level >= state.options.maxNesting) { return false; } diff --git a/lib/rules_inline/emphasis.js b/lib/rules_inline/emphasis.js index 4b7d27c..1bfb6fb 100644 --- a/lib/rules_inline/emphasis.js +++ b/lib/rules_inline/emphasis.js @@ -61,6 +61,7 @@ module.exports = function emphasis(state, silent) { marker = state.src.charCodeAt(start); if (marker !== 0x5F/* _ */ && marker !== 0x2A /* * */) { return false; } + if (silent) { return false; } // don't run any pairs in validation mode res = scanDelims(state, start); startCount = res.delims; diff --git a/lib/rules_inline/ins.js b/lib/rules_inline/ins.js index f40a875..46bc888 100644 --- a/lib/rules_inline/ins.js +++ b/lib/rules_inline/ins.js @@ -12,6 +12,7 @@ module.exports = function ins(state, silent) { nextChar; if (state.src.charCodeAt(start) !== 0x2B/* + */) { return false; } + if (silent) { return false; } // don't run any pairs in validation mode if (start + 4 >= max) { return false; } if (state.src.charCodeAt(start + 1) !== 0x2B/* + */) { return false; } if (state.level >= state.options.maxNesting) { return false; } diff --git a/lib/rules_inline/mark.js b/lib/rules_inline/mark.js index ede557f..c367229 100644 --- a/lib/rules_inline/mark.js +++ b/lib/rules_inline/mark.js @@ -12,6 +12,7 @@ module.exports = function del(state, silent) { nextChar; if (state.src.charCodeAt(start) !== 0x3D/* = */) { return false; } + if (silent) { return false; } // don't run any pairs in validation mode if (start + 4 >= max) { return false; } if (state.src.charCodeAt(start + 1) !== 0x3D/* = */) { return false; } if (state.level >= state.options.maxNesting) { return false; } diff --git a/lib/rules_inline/sub.js b/lib/rules_inline/sub.js index f89eb7b..dd5d8fd 100644 --- a/lib/rules_inline/sub.js +++ b/lib/rules_inline/sub.js @@ -11,6 +11,7 @@ module.exports = function sub(state, silent) { nextChar; if (state.src.charCodeAt(start) !== 0x7E/* ~ */) { return false; } + if (silent) { return false; } // don't run any pairs in validation mode if (start + 2 >= max) { return false; } if (state.level >= state.options.maxNesting) { return false; } diff --git a/lib/rules_inline/sup.js b/lib/rules_inline/sup.js index 414e7cd..79287ae 100644 --- a/lib/rules_inline/sup.js +++ b/lib/rules_inline/sup.js @@ -11,6 +11,7 @@ module.exports = function sup(state, silent) { nextChar; if (state.src.charCodeAt(start) !== 0x5E/* ^ */) { return false; } + if (silent) { return false; } // don't run any pairs in validation mode if (start + 2 >= max) { return false; } if (state.level >= state.options.maxNesting) { return false; }