diff options
| -rw-r--r-- | docs/spec/domSpec.js | 18 | ||||
| -rw-r--r-- | docs/spec/ngdocSpec.js | 19 | ||||
| -rw-r--r-- | docs/src/dom.js | 5 | ||||
| -rw-r--r-- | docs/src/ignore.words | 1 | ||||
| -rw-r--r-- | docs/src/ngdoc.js | 3 | 
5 files changed, 33 insertions, 13 deletions
| diff --git a/docs/spec/domSpec.js b/docs/spec/domSpec.js index 5175b91a..7bc6a7f4 100644 --- a/docs/spec/domSpec.js +++ b/docs/spec/domSpec.js @@ -28,6 +28,24 @@ describe('dom', function() {        expect(dom.toString()).toContain('<h2>sub-heading</h2>');      }); +    it('should properly number nested headings', function() { +      dom.h('heading', function() { +        dom.h('heading2', function() { +          this.html('<h1>heading3</h1>'); +        }); +      }); +      dom.h('other1', function() { +        this.html('<h1>other2</h1>'); +      }); + +      expect(dom.toString()).toContain('<h1 id="heading">heading</h1>'); +      expect(dom.toString()).toContain('<h2 id="heading2">heading2</h2>'); +      expect(dom.toString()).toContain('<h3>heading3</h3>'); + +      expect(dom.toString()).toContain('<h1 id="other1">other1</h1>'); +      expect(dom.toString()).toContain('<h2>other2</h2>'); +    }); +    });  }); diff --git a/docs/spec/ngdocSpec.js b/docs/spec/ngdocSpec.js index b1bbbd61..3cd9834b 100644 --- a/docs/spec/ngdocSpec.js +++ b/docs/spec/ngdocSpec.js @@ -18,9 +18,9 @@ describe('ngdoc', function() {    describe('Doc', function() {      describe('metadata', function() { -      it('should find keywords', function() { +      it('should find keywords and filter ignored words', function() {          expect(new Doc('\nHello: World! @ignore. $abc').keywords()).toEqual('$abc hello world'); -        expect(new Doc('The `ng:class-odd` and').keywords()).toEqual('and ng:class-odd the'); +        expect(new Doc('The `ng:class-odd` and').keywords()).toEqual('ng:class-odd');        });        it('should get property and methods', function() { @@ -147,7 +147,7 @@ describe('ngdoc', function() {      it('should replace text between two <pre></pre> tags', function() {        expect(new Doc().markdown('<pre>x</pre>\n# One\n<pre>b</pre>')). -        toMatch('</pre>\n\n<h1>One</h1>\n\n<pre'); +        toMatch('</pre>\n\n<h1 id="one">One</h1>\n\n<pre');      });      it('should ignore nested doc widgets', function() { @@ -405,7 +405,7 @@ describe('ngdoc', function() {          expect(doc.description).            toBe('<p>foo \n' +                 '<pre class="prettyprint linenums">abc</pre>\n\n' + -               '<h1>bah</h1>\n\n' + +               '<h1 id="bah">bah</h1>\n\n' +                 '<p>foo \n' +                 '<pre class="prettyprint linenums">cba</pre>'); @@ -499,7 +499,7 @@ describe('ngdoc', function() {          var doc = new Doc('@ngdoc overview\n@name angular\n@description\n#heading\ntext');          doc.parse();          expect(doc.html()).toContain('text'); -        expect(doc.html()).toContain('<h2>heading</h2>'); +        expect(doc.html()).toContain('<h2 id="heading">heading</h2>');          expect(doc.html()).not.toContain('Description');        });      }); @@ -511,7 +511,7 @@ describe('ngdoc', function() {            ngdoc:'function',            name:'some.name',            param: [ -            {name:'a', optional: true}, +            {name:'a', type: 'string', optional: true},              {name:'b', type: 'someType', optional: true, 'default': '"xxx"'},              {name:'c', type: 'string', description: 'param desc'}            ], @@ -520,7 +520,7 @@ describe('ngdoc', function() {          doc.html_usage_function(dom);          expect(dom).toContain('name([a][, b], c)'); //TODO(i) the comma position here is lame          expect(dom).toContain('param desc'); -        expect(dom).toContain('(optional="xxx")'); +        expect(dom).toContain('(optional)');          expect(dom).toContain('return desc');        });      }); @@ -531,8 +531,8 @@ describe('ngdoc', function() {            ngdoc:'formatter',            shortName:'myFilter',            param: [ -            {name:'a'}, -            {name:'b'} +            {name:'a', type:'string'}, +            {name:'b', type:'string'}            ]          });          doc.html_usage_filter(dom); @@ -546,6 +546,7 @@ describe('ngdoc', function() {          var doc = new Doc({            ngdoc:'property',            name:'myProp', +          type:'string',            returns:{type: 'type', description: 'description'}          });          doc.html_usage_property(dom); diff --git a/docs/src/dom.js b/docs/src/dom.js index 1bb9578e..94048120 100644 --- a/docs/src/dom.js +++ b/docs/src/dom.js @@ -43,8 +43,9 @@ DOM.prototype = {        var headingDepth = this.headingDepth;        for ( var i = 10; i > 0; --i) {          html = html -          .replace(new RegExp('(<\/?h)' + i + '(>)', 'gm'), function(all, start, end){ -            return start + (i + headingDepth) + end; +          .replace(new RegExp('<h' + i + '(.*?)>([\\s\\S]+)<\/h' + i +'>', 'gm'), function(_, attrs, content){ +            var tag = 'h' + (i + headingDepth); +            return '<' + tag + attrs + '>' + content + '</' + tag + '>';            });        }        this.out.push(html); diff --git a/docs/src/ignore.words b/docs/src/ignore.words index d3af04b0..82b9f2fc 100644 --- a/docs/src/ignore.words +++ b/docs/src/ignore.words @@ -678,7 +678,6 @@ without  won't  wont  words -world  would  wouldn't  wouldnt diff --git a/docs/src/ngdoc.js b/docs/src/ngdoc.js index 0b0bb340..7c07f00f 100644 --- a/docs/src/ngdoc.js +++ b/docs/src/ngdoc.js @@ -10,6 +10,7 @@ var NEW_LINE = /\n\r?/;  var globalID = 0;  var fs = require('fs');  var fspath = require('path'); +var markdown = new Showdown.converter({ extensions : ['table'] });  exports.trim = trim;  exports.metadata = metadata; @@ -216,7 +217,7 @@ Doc.prototype = {          });      });      text = parts.join(''); -    text = new Showdown.converter({ extensions : ['table'] }).makeHtml(text); +    text = markdown.makeHtml(text);      text = text.replace(/(?:<p>)?(REPLACEME\d+)(?:<\/p>)?/g, function(_, id) {        return placeholderMap[id];      }); | 
