@@ -194,11 +194,13 @@ var Parser = (function () {
194194
195195 /**
196196 * @param text
197+ * @param clearHolders
197198 * @return string
198199 */
199200 } , {
200201 key : 'releaseHolder' ,
201202 value : function releaseHolder ( text ) {
203+ var clearHolders = arguments . length <= 1 || arguments [ 1 ] === undefined ? true : arguments [ 1 ] ;
202204
203205 var deep = 0 ;
204206 while ( text . indexOf ( "|\r" ) !== - 1 && deep < 10 ) {
@@ -208,9 +210,9 @@ var Parser = (function () {
208210 }
209211 deep ++ ;
210212 }
211-
212- this . holders . clear ( ) ;
213-
213+ if ( clearHolders ) {
214+ this . holders . clear ( ) ;
215+ }
214216 return text ;
215217 }
216218
@@ -219,6 +221,7 @@ var Parser = (function () {
219221 *
220222 * @param string text
221223 * @param string whiteList
224+ * @param bool clearHolders
222225 * @return string
223226 */
224227 } , {
@@ -227,6 +230,7 @@ var Parser = (function () {
227230 var _this3 = this ;
228231
229232 var whiteList = arguments . length <= 1 || arguments [ 1 ] === undefined ? '' : arguments [ 1 ] ;
233+ var clearHolders = arguments . length <= 2 || arguments [ 2 ] === undefined ? true : arguments [ 2 ] ;
230234
231235 text = this . call ( 'beforeParseInline' , text ) ;
232236 var _this = this ;
@@ -261,7 +265,7 @@ var Parser = (function () {
261265
262266 if ( id === - 1 ) {
263267 id = _this . footnotes . length + 1 ;
264- _this . footnotes [ id ] = _this3 . parseInline ( p1 ) ;
268+ _this . footnotes [ id ] = _this3 . parseInline ( p1 , '' , false ) ;
265269 }
266270
267271 return _this . makeHolder ( '<sup id="fnref-' + id + '"><a href="#fn-' + id + '" class="footnote-ref">' + id + '</a></sup>' ) ;
@@ -290,14 +294,14 @@ var Parser = (function () {
290294 // link
291295 var linkPattern1 = / \[ ( (?: [ ^ \] ] | \] | \[ ) + ?) \] \( ( (?: [ ^ \) ] | \) | \( ) + ?) \) / ;
292296 text = text . replace ( linkPattern1 , function ( match , p1 , p2 ) {
293- var escaped = _this . parseInline ( _this . escapeBracket ( p1 ) ) ;
297+ var escaped = _this . parseInline ( _this . escapeBracket ( p1 ) , '' , false ) ;
294298 var url = _this . escapeBracket ( p2 ) ;
295299 return _this . makeHolder ( '<a href="' + url + '">' + escaped + '</a>' ) ;
296300 } ) ;
297301
298302 var linkPattern2 = / \[ ( (?: [ ^ \] ] | \] | \[ ) + ?) \] \[ ( (?: [ ^ \] ] | \] | \[ ) + ?) \] / ;
299303 text = text . replace ( linkPattern2 , function ( match , p1 , p2 ) {
300- var escaped = _this . parseInline ( _this . escapeBracket ( p1 ) ) ;
304+ var escaped = _this . parseInline ( _this . escapeBracket ( p1 ) , '' , false ) ;
301305
302306 var result = _this . definitions [ p2 ] ? '<a href="' + _this . definitions [ p2 ] + '">' + escaped + '</a>' : escaped ;
303307
@@ -325,7 +329,7 @@ var Parser = (function () {
325329 text = this . call ( 'afterParseInlineBeforeRelease' , text ) ;
326330
327331 // release
328- text = this . releaseHolder ( text ) ;
332+ text = this . releaseHolder ( text , clearHolders ) ;
329333
330334 text = this . call ( 'afterParseInline' , text ) ;
331335
0 commit comments