Comparing version 0.1.3 to 0.1.4
21
md.js
@@ -21,2 +21,5 @@ /*! | ||
}(function () { | ||
var XSSFilterRegExp = /<script>([^]+?)<\/script>/gm; | ||
var XSSFilterTemplate = '<script>$1</script>'; | ||
var removeWhiteSpaceRegExp = /^[\t ]+|[\t ]$/gm; | ||
@@ -40,6 +43,6 @@ | ||
var headingsCommonh2RegExp = /^[^\n\t ](.*)\n-+/gm; | ||
var headingsCommonh1RegExp = /^[^\n\t ](.*)\n=+/gm; | ||
var headingsCommonh1Template = '<h1>$1</h1>'; | ||
var headingsCommonh2Template = '<h2>$1</h2>'; | ||
var headingsCommonh2RegExp = /^([^\n\t ])(.*)\n----+/gm; | ||
var headingsCommonh1RegExp = /^([^\n\t ])(.*)\n====+/gm; | ||
var headingsCommonh1Template = '<h1>$1$2</h1>'; | ||
var headingsCommonh2Template = '<h2>$1$2</h2>'; | ||
@@ -64,7 +67,7 @@ var paragraphsRegExp = /^([^-><#\d\+\_\*\t\n\[\! \{])(.*)/gm; | ||
var listUlRegExp1 = /^.*?(?:-|\+|\*) (.*)/gm; | ||
var listUlRegExp1 = /^[\t ]*?(?:-|\+|\*) (.*)/gm; | ||
var listUlRegExp2 = /(\<\/ul\>\n(.*)\<ul\>*)+/g; | ||
var listUlTemplate = '<ul><li>$1</li></ul>'; | ||
var listOlRegExp1 = /^.*?(?:\d(?:\)|\.)) (.*)/gm; | ||
var listOlRegExp1 = /^[\t ]*?(?:\d(?:\)|\.)) (.*)/gm; | ||
var listOlRegExp2 = /(\<\/ol\>\n(.*)\<ol\>*)+/g; | ||
@@ -89,5 +92,7 @@ var listOlTemplate = '<ol><li>$1</li></ol>'; | ||
markdown = ( | ||
// collect code blocks and replace with placeholder | ||
// we do this to avoid code blocks matching the paragraph regexp | ||
markdown | ||
// convert <script> tags | ||
.replace(XSSFilterRegExp, XSSFilterTemplate) | ||
// collect code blocks and replace with placeholder | ||
// we do this to avoid code blocks matching the paragraph regexp | ||
.replace(blockCodeRegExp, function (match, lang, block) { | ||
@@ -94,0 +99,0 @@ var placeholder = '{code-block-'+index+'}'; |
@@ -1,1 +0,1 @@ | ||
!function(e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e()):window.md=e()}(function(){var e=/^[\t ]+|[\t ]$/gm,r=/^.*?> (.*)/gm,l="<blockquote>$1</blockquote>",c=/`([^`]+?)`/g,n="<code>$1</code>",a=/```(.*)\n([^]+)```(?!```)/gm,o=/!\[(.*)\]\((.*)\)/gm,g='<img src="$2" alt="$1">',t=/(#+) +(.*)/gm,p=function(e,r,l){var c=r.length;return"<h"+c+">"+l+"</h"+c+">"},m=/^[^\n\t ](.*)\n-+/gm,u=/^[^\n\t ](.*)\n=+/gm,d="<h1>$1</h1>",i="<h2>$1</h2>",$=/^([^-><#\d\+\_\*\t\n\[\! \{])(.*)/gm,f="<p>$1$2</p>",h=/^.*?(?:---|\*\*\*)/gm,_="<hr>",b=/(?:\*\*|\_\_)([^\*_]+?)(?:\*\*|\_\_)/gm,s="<strong>$1</strong>",k=/(?:\*|\_)([^\*_]+?)(?:\*|\_)/gm,v="<em>$1</em>",x=/\[(.*?)\]\((.*?) "(.*)"\)/gm,w='<a href="$2" title="$3">$1</a>',y=/\[(.*?)\]\((.*?)\)/gm,q='<a href="$2">$1</a>',j=/^.*?(?:-|\+|\*) (.*)/gm,E=/(\<\/ul\>\n(.*)\<ul\>*)+/g,R="<ul><li>$1</li></ul>",z=/^.*?(?:\d(?:\)|\.)) (.*)/gm,A=/(\<\/ol\>\n(.*)\<ol\>*)+/g,B="<ol><li>$1</li></ol>",C=/^\n\n+/gm,D="<br>";return function(F){var G=[],H=0;F=F.replace(a,function(e,r,l){var c="{code-block-"+H+"}",n=new RegExp("{code-block-"+H+"}","g");return G[H++]={lang:r,block:l,regex:n},c}).replace(e,"").replace(r,l).replace(c,n).replace(o,g).replace(t,p).replace(u,d).replace(m,i).replace(j,R).replace(E,"").replace(z,B).replace(A,"").replace(h,_).replace($,f).replace(x,w).replace(y,q).replace(b,s).replace(k,v).replace(C,D);for(var I=0;I<H;I++){var J=G[I],K=J.lang,L=J.block;F=F.replace(J.regex,function(e){return'<pre><code class="language-'+K+'">'+L+"</code></pre>"})}return F}}); | ||
!function(e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e()):window.md=e()}(function(){var e=/<script>([^]+?)<\/script>/gm,r="<script>$1</script>",l=/^[\t ]+|[\t ]$/gm,c=/^.*?> (.*)/gm,n="<blockquote>$1</blockquote>",t=/`([^`]+?)`/g,a="<code>$1</code>",o=/```(.*)\n([^]+)```(?!```)/gm,p=/!\[(.*)\]\((.*)\)/gm,g='<img src="$2" alt="$1">',m=/(#+) +(.*)/gm,i=function(e,r,l){var c=r.length;return"<h"+c+">"+l+"</h"+c+">"},u=/^([^\n\t ])(.*)\n----+/gm,$=/^([^\n\t ])(.*)\n====+/gm,d="<h1>$1$2</h1>",f="<h2>$1$2</h2>",s=/^([^-><#\d\+\_\*\t\n\[\! \{])(.*)/gm,h="<p>$1$2</p>",_=/^.*?(?:---|\*\*\*)/gm,b="<hr>",k=/(?:\*\*|\_\_)([^\*_]+?)(?:\*\*|\_\_)/gm,v="<strong>$1</strong>",x=/(?:\*|\_)([^\*_]+?)(?:\*|\_)/gm,w="<em>$1</em>",y=/\[(.*?)\]\((.*?) "(.*)"\)/gm,q='<a href="$2" title="$3">$1</a>',j=/\[(.*?)\]\((.*?)\)/gm,E='<a href="$2">$1</a>',R=/^[\t ]*?(?:-|\+|\*) (.*)/gm,z=/(\<\/ul\>\n(.*)\<ul\>*)+/g,A="<ul><li>$1</li></ul>",B=/^[\t ]*?(?:\d(?:\)|\.)) (.*)/gm,C=/(\<\/ol\>\n(.*)\<ol\>*)+/g,D="<ol><li>$1</li></ol>",F=/^\n\n+/gm,G="<br>";return function(H){var I=[],J=0;H=H.replace(e,r).replace(o,function(e,r,l){var c="{code-block-"+J+"}",n=new RegExp("{code-block-"+J+"}","g");return I[J++]={lang:r,block:l,regex:n},c}).replace(l,"").replace(c,n).replace(t,a).replace(p,g).replace(m,i).replace($,d).replace(u,f).replace(R,A).replace(z,"").replace(B,D).replace(C,"").replace(_,b).replace(s,h).replace(y,q).replace(j,E).replace(k,v).replace(x,w).replace(F,G);for(var K=0;K<J;K++){var L=I[K],M=L.lang,N=L.block;H=H.replace(L.regex,function(e){return'<pre><code class="language-'+M+'">'+N+"</code></pre>"})}return H}}); |
@@ -5,3 +5,3 @@ { | ||
"description": "a lightweight markdown parser", | ||
"version": "0.1.3", | ||
"version": "0.1.4", | ||
"homepage": "https://github.com/thysultan/md.js", | ||
@@ -8,0 +8,0 @@ "license": "MIT", |
@@ -25,2 +25,4 @@ # MD.js | ||
and `<script>alert(1);</script>` will be converted to `<script>alert(1)</script>` | ||
## Browser Support | ||
@@ -27,0 +29,0 @@ |
8821
126
57