aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIgor Minar2011-01-19 13:02:50 -0800
committerMisko Hevery2011-01-19 15:53:58 -0800
commit2c0f7ffe3af2b2c7c84cea49456728d1ac9b3bfe (patch)
treed0cbca4126763df189c25234334490690aa41b60
parenta5eb3ed107034cce5b7de3ec3f8a43ff3a379fa1 (diff)
downloadangular.js-2c0f7ffe3af2b2c7c84cea49456728d1ac9b3bfe.tar.bz2
ngdoc should escape content of pre in markdown
-rw-r--r--docs/spec/ngdocSpec.js6
-rw-r--r--docs/src/ngdoc.js8
2 files changed, 8 insertions, 6 deletions
diff --git a/docs/spec/ngdocSpec.js b/docs/spec/ngdocSpec.js
index cf469063..4abaf0c4 100644
--- a/docs/spec/ngdocSpec.js
+++ b/docs/spec/ngdocSpec.js
@@ -62,12 +62,12 @@ describe('ngdoc', function(){
toEqual('<p><tt>&lt;angular/&gt;</tt></p>');
});
- it('should not replace anything in <pre>', function(){
- expect(markdown('bah x\n<pre>\nangular.k\n</pre>\n asdf x')).
+ it('should not replace anything in <pre>, but escape the html escape the content', function(){
+ expect(markdown('bah x\n<pre>\n<b>angular</b>.k\n</pre>\n asdf x')).
toEqual(
'<p>bah x</p>' +
'<div ng:non-bindable><pre class="brush: js; html-script: true;">\n' +
- 'angular.k\n' +
+ '&lt;b&gt;angular&lt;/b&gt;.k\n' +
'</pre></div>' +
'<p>asdf x</p>');
});
diff --git a/docs/src/ngdoc.js b/docs/src/ngdoc.js
index f1ca8d7e..038dda06 100644
--- a/docs/src/ngdoc.js
+++ b/docs/src/ngdoc.js
@@ -421,9 +421,11 @@ function markdown (text) {
parts.forEach(function(text, i){
if (text.match(/^<pre>/)) {
- text = text.
- replace(/^<pre>/, '<div ng:non-bindable><pre class="brush: js; html-script: true;">').
- replace(/<\/pre>/, '</pre></div>');
+ text = text.replace(/^<pre>([\s\S]*)<\/pre>/mi, function(_, content){
+ return '<div ng:non-bindable><pre class="brush: js; html-script: true;">' +
+ content.replace(/</g, '&lt;').replace(/>/g, '&gt;') +
+ '</pre></div>';
+ });
} else {
text = text.replace(/<angular\/>/gm, '<tt>&lt;angular/&gt;</tt>');
text = new Showdown.converter().makeHtml(text.replace(/^#/gm, '###'));