From f4f63c5c39ad9bcf9e9d860bf2841162afb671da Mon Sep 17 00:00:00 2001 From: Estevao Soares dos Santos Date: Thu, 23 Nov 2017 05:18:20 +0000 Subject: [PATCH] fix(spanGamut): code spans are hashed after parsing Code spans are now hashed after parsing which means extensions that listen to spanGamut events no longer need to worry about escaping "custom" magic chars inside code spans. Closes #464 --- dist/showdown.js | Bin 167924 -> 168070 bytes dist/showdown.js.map | Bin 417031 -> 417412 bytes dist/showdown.min.js | Bin 96540 -> 96637 bytes dist/showdown.min.js.map | Bin 73606 -> 73696 bytes src/subParsers/codeSpans.js | 4 +++- src/subParsers/hashHTMLSpans.js | 1 + test/cases/inline-code.html | 1 + test/cases/inline-code.md | 2 ++ 8 files changed, 7 insertions(+), 1 deletion(-) diff --git a/dist/showdown.js b/dist/showdown.js index 5a3d53bce39dafe8b54a8eff58f0672eb22e8e3d..5b3ca7462beab7546afa2f93c2501dc3c81670e7 100644 GIT binary patch delta 136 zcmew|pQ~*l*8~YBBjZM?tx}A~FEb}A*iL_bnNfvVK_Pj1V-}M-WAgOC1SV;rqSTVo zqCACUYc2&Ks0EVK8&5K7ZMVF_xZcDfIX|yBKPOc$wWuh+NJBk0u_80KG*=-nwYVfR mFI^!&O~KGWp|~J1uUMfdH8D9OHAPWTQC-t|`+W{3(RKhfMxuw~q+|_l8&&7BBz+ diff --git a/dist/showdown.js.map b/dist/showdown.js.map index 85c063d9b7a7d83bba5408e3439abd28c38e9331..e22d7469c76b61a9c097798b985a76b6a37bf653 100644 GIT binary patch delta 350 zcmV-k0iphfx*3GM8GwWVv;s^~m-nFo7?bcK5SPH<0R@+DQ35{!c$eXK0~?oM=>Zg% zZ)^hvlj0>5lkigym#|L*6_-o=0t%NN%mN9MAQ}V#W|y#00>}X`mq0!OCX*m}3YVY^ z0u+}(?g0do@J0l;#Zm$pUK3A2K~F40K|w<-OF={CAtxz2TyB?fNCh9abI=8pjQF8;iU0rr delta 196 zcmV;#06YJLy%~qP8GwWVv;s^~m$nN69+x0%0}7WAmIDftuvZ0_ppOC>li(Evm%V@j z2?aYrK|?c_v1*@P-0t0XLUGJ_06_AbARxpbP>O zmq6|T1e5Sa1h-OC0vTSn#<2o?0RlNhmq9)P8vmw;9R y2AAO30ScF}hXO>0>9Ycd>9Yg3>9Yhj=9i9|1qYWSngt}cotg#uHn-W)1*?o;+(_2| diff --git a/dist/showdown.min.js b/dist/showdown.min.js index 3fb980418222e394cae4054862c8b12c6ef61b5d..66635207e099ee058a719b3186a57052e6e50495 100644 GIT binary patch delta 133 zcmbR9iS_R%)(PTFM#hbjTO}E%Xi6p8rfMtMB{woc;o59y3@jEU13 z)fg4G-`8Y(D`sDvoS#>mpOdPWT2z!@q@k3XSdp1qnyZkPT3nKum#&bXreJ8GP+X9h fSFBK!nwXrCnxd$vsHAC~1mtDcZolNf=w$%_w9zd7 delta 59 zcmV-B0L1_O@&%mo1&|j4F*ku3wHX1FDVMJ)0Tuy$m(e`|8<*WE0ScGHAORh>E-C@W R76xK+WnpVOw=+QjN;rFa6QckC diff --git a/dist/showdown.min.js.map b/dist/showdown.min.js.map index c10bd28c71538cc997ff2d900999f7f8ac1a36da..292ceee5256863281590b8163b6fd645009ce60d 100644 GIT binary patch delta 181 zcmZqM&+=eD%Z9$w0{KpkI+2bUPK8c7-i~fXPLm5R%TBgAEjjt}>1a0JART{4pUEa? zN*uCW%3X9^9UVP044grX@wK?C6}~lvm}f6X@s|SmL7N>*(mKV*nIQ R0gAXfRvI~P?tAjX3IHv|>jXPGhNl~VIi5hhp88If<&zr^OK+AxyF{Gd*-ajyow& diff --git a/src/subParsers/codeSpans.js b/src/subParsers/codeSpans.js index 495b4a7..090234d 100644 --- a/src/subParsers/codeSpans.js +++ b/src/subParsers/codeSpans.js @@ -37,7 +37,9 @@ showdown.subParser('codeSpans', function (text, options, globals) { c = c.replace(/^([ \t]*)/g, ''); // leading whitespace c = c.replace(/[ \t]*$/g, ''); // trailing whitespace c = showdown.subParser('encodeCode')(c, options, globals); - return m1 + '' + c + ''; + c = m1 + '' + c + ''; + c = showdown.subParser('hashHTMLSpans')(c, options, globals); + return c; } ); diff --git a/src/subParsers/hashHTMLSpans.js b/src/subParsers/hashHTMLSpans.js index a56224f..545aa92 100644 --- a/src/subParsers/hashHTMLSpans.js +++ b/src/subParsers/hashHTMLSpans.js @@ -51,6 +51,7 @@ showdown.subParser('unhashHTMLSpans', function (text, options, globals) { var num = RegExp.$1; repText = repText.replace('¨C' + num + 'C', globals.gHtmlSpans[num]); if (limit === 10) { + console.error('maximum nesting of 10 spans reached!!!'); break; } ++limit; diff --git a/test/cases/inline-code.html b/test/cases/inline-code.html index cf94c31..9f316ca 100644 --- a/test/cases/inline-code.html +++ b/test/cases/inline-code.html @@ -4,3 +4,4 @@

A backtick-delimited string in a code span: `foo`

Please don't use any <blink> tags.

&#8212; is the decimal-encoded equivalent of &mdash;.

+

this inline **code** has ___magic___ chars

diff --git a/test/cases/inline-code.md b/test/cases/inline-code.md index 0e6c3cd..4817a6f 100644 --- a/test/cases/inline-code.md +++ b/test/cases/inline-code.md @@ -10,3 +10,5 @@ A backtick-delimited string in a code span: `` `foo` `` Please don't use any `` tags. `—` is the decimal-encoded equivalent of `—`. + +this `inline **code** has ___magic___` chars