From c33f98884b402108e98d5318e6bfca21656730bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Estev=C3=A3o=20Soares=20dos=20Santos?= Date: Sat, 11 Jul 2015 20:33:11 +0100 Subject: [PATCH] feat(ghCodeBlocks): add option to disable GH codeblocks GFM support fenced codeblocks. Showdown, since very early, adopted this too. It is now possible to disable GFM codeblocks with the option "ghCodeBlocks" set to false. It is enabled by default --- dist/showdown.js | Bin 60957 -> 61125 bytes dist/showdown.js.map | Bin 192080 -> 192260 bytes dist/showdown.min.js | Bin 20675 -> 20710 bytes dist/showdown.min.js.map | Bin 23606 -> 23655 bytes src/showdown.js | 3 ++- src/subParsers/githubCodeBlocks.js | 5 +++++ test/features/disable_gh_codeblocks.html | 9 +++++++++ test/features/disable_gh_codeblocks.md | 9 +++++++++ test/node/showdown.js | 3 ++- test/node/testsuite.features.js | 2 ++ 10 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 test/features/disable_gh_codeblocks.html create mode 100644 test/features/disable_gh_codeblocks.md diff --git a/dist/showdown.js b/dist/showdown.js index a3a24da2e7c2c577ecdd516e5da62a9cd0139dac..e4240a359e32bb3c2822d446a6ea8635830c6c65 100644 GIT binary patch delta 166 zcmbPxhxzDT<_&I4lj|5coYFI#^HWlta`Kb2i>(w;KuJ+)s)B;Pz5=jRn~c4Jbmb_Oa-O)Sc(R7kDJEK$fzQ^+qU$;{7F$ShXK%P&z# l%}Y$mNloEW07+>mLL`gzkZsqTtoK@C^7m^RoBL|}3jpADItu^* delta 27 jcmX?lmwE0T<_&I4nsMgqH)7}yOHSqar2(% zob#OLIrq)}SbX|k@l{>~R)eLikMllv2j?B`Am>4xI7+M-GZO{ch7`!ZufW;7qIfy? zwuqXvXQ8ubzIIbx&whCPj{}yPOyFJ7!|a0b+#TIQ%Zt};!}-ltFt7H)SF4o}D^eiq z(}B0%05kWL=_``=ln%|W5d&t=5(Q_ciK6&8_euK3eQXO-Q6y86`22?=-`6U0)G8w@(Sdw4w$^8hqW~y=KF{q z<}(hc->S!pbEFu@GD5}DUkcuIh>z?}1^pqxacD?H=4D-BW*Vmcu7rcXEBM_pV#1Pn zV#WbGsY1su!~(UUVmR=D0#9z(3Oe9JZwY*KxdP0$O?akX@T@)=D@-=*cXxB%4P5WQ zwt7-ZvocqDDMItO7@40DG}6v-@I7b8qedZ-{VK4@ zThA6GHsT>8seXznP!m84lrdJNF$o(gqyY|BaB~Wkj<39pUd0f%v}W^^^&cSvy?4n z3?%gca}SBJeJIos9aP(gqro?ld)WVumPo0L)zz`W$DjzbC<}#?S~L+328LNe4J4zH zqy|pnM4Uc@GjZxDm#92yWbkPP z-v5$T;~#PQ67IM|EBA@HY9KLulBwyi#=^&0G^T~45f)CeNK_M@fq`LFcFWxMZR^=& z?SK8au;DjaT`p@hHLbCot*qu$eN9V$1ef2Tc1$K{7hX?Ln~=P5f?^p1av7|ZjqGyc z;{>fD5iCv8=eKMW3C$u|BWYyQxL~{3BfRH&XfswHrU&HZ#P<$UN6Cp$SW}a+Ku{G` zCp0=HxO}~|8>3xRuOD|wDZUilhF?!m8|Hhdf=x@b0k4iy9p0FvhQ%LJG?o4rjZS*4 delta 749 zcmYjNT}V@580P!j+1i;?nMbV^c$yIYp+?MHQrrAPC~7U~!bUsOEmkde+>cKBS%H;V zk?e(DsECQ+?FNQIT1-tZ3S$fktk8kvMHG3{U2113<$Lo!@Ap2>!}GoUORD4-RotwQ z*PG3afkrg1kb}a0PJ%N%osTEZ0I2Gt`dxc3fRA@#o`2EBZUmahS|up5~4?CRNnxO zjXf}LD1h{onpj}?a~V`_o|bgkkRPu@lSv9;PaMjC68xzrEWW)>I7lC0ajk~rLy}XW zrBpK3Gbp|$xe%YOK)IP{-~_{gFrb0#fnAWA`HN|&0pf#N6vri{I8zAXnh3#L^Te`k?zs(&RIY ztB4ZQvt$ILeNyxmB&-P9QN z*}C|0zB%N$B6?g$Y+Ius2)FeKFwji;hkg pu3PDDeAz}-cs@w&_@j-UM9V3OxVcCLj2fv9mxGj@c+^9Kp+BDu4hH}L diff --git a/dist/showdown.min.js b/dist/showdown.min.js index 230391ba6185b7bd94f03f57924acf1bce59247f..2a4788fa4f3acaa298a8f549d6e7726c2508ff78 100644 GIT binary patch delta 66 zcmX@Skn!0<#tlc=1a#6fobyvsopSP%vx}`14K^QTd!j6mq=zhQud#WhRuUt#rd8tP MJVmL^syg#j08Ww@z5oCK delta 32 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 AHUIzs delta 8571 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 is some text

+ +

php +function thisThing() { +echo "some weird formatted code!"; +} +

+ +

some other text

diff --git a/test/features/disable_gh_codeblocks.md b/test/features/disable_gh_codeblocks.md new file mode 100644 index 0000000..8d307ff --- /dev/null +++ b/test/features/disable_gh_codeblocks.md @@ -0,0 +1,9 @@ +this is some text + +```php +function thisThing() { + echo "some weird formatted code!"; +} +``` + +some other text \ No newline at end of file diff --git a/test/node/showdown.js b/test/node/showdown.js index bc65a30..e72849b 100644 --- a/test/node/showdown.js +++ b/test/node/showdown.js @@ -27,7 +27,8 @@ describe('showdown.options', function () { literalMidWordUnderscores: false, strikethrough: false, tables: false, - tablesHeaderId: false + tablesHeaderId: false, + ghCodeBlocks: true }; expect(showdown.getDefaultOptions()).to.be.eql(opts); }); diff --git a/test/node/testsuite.features.js b/test/node/testsuite.features.js index 8de4923..e6d60de 100644 --- a/test/node/testsuite.features.js +++ b/test/node/testsuite.features.js @@ -21,6 +21,8 @@ describe('makeHtml() features testsuite', function () { converter = new showdown.Converter({literalMidWordUnderscores: true}); } else if (testsuite[i].name === '#164.3.strikethrough') { converter = new showdown.Converter({strikethrough: true}); + } else if (testsuite[i].name === 'disable_gh_codeblocks') { + converter = new showdown.Converter({ghCodeBlocks: false}); } else { converter = new showdown.Converter(); }