diff options
| author | Matias Niemelä | 2013-07-09 18:08:23 -0400 | 
|---|---|---|
| committer | Pete Bacon Darwin | 2013-07-12 22:43:24 +0100 | 
| commit | 77c715d7caedf9dd56b07b451dc47480cac5aaff (patch) | |
| tree | b4109eca61df9d193b18a017f756c06447d4366a /docs | |
| parent | 5a294c8646452d6e49339d145faeae4f31dcd0fc (diff) | |
| download | angular.js-77c715d7caedf9dd56b07b451dc47480cac5aaff.tar.bz2 | |
chore(ngdoc): wrap all pages inside of a container tag for easy styling
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/content/tutorial/index.ngdoc | 214 | ||||
| -rw-r--r-- | docs/content/tutorial/the_end.ngdoc | 26 | ||||
| -rw-r--r-- | docs/spec/ngdocSpec.js | 64 | ||||
| -rw-r--r-- | docs/src/ngdoc.js | 20 | ||||
| -rw-r--r-- | docs/src/templates/css/docs.css | 11 | 
5 files changed, 184 insertions, 151 deletions
| diff --git a/docs/content/tutorial/index.ngdoc b/docs/content/tutorial/index.ngdoc index 25390621..3c0eebf8 100644 --- a/docs/content/tutorial/index.ngdoc +++ b/docs/content/tutorial/index.ngdoc @@ -1,117 +1,115 @@  @ngdoc overview -@name Tutorial +@name Tutorial: Index  @description -<div class="tutorial-page tutorial-page-no-nav"> -  A great way to get introduced to AngularJS is to work through this tutorial, which walks you through -  the construction of an AngularJS web app. The app you will build is a catalog that displays a list -  of Android devices, lets you filter the list to see only devices that interest you, and then view -  details for any device. - -  <img class="diagram" src="img/tutorial/catalog_screen.png" width="488" height="413"> - -  Work through the tutorial to see how Angular makes browsers smarter — without the use of extensions -  or plug-ins. As you work through the tutorial, you will: - -  * See examples of how to use client-side data binding and dependency injection to build dynamic -  views of data that change immediately in response to user actions. -  * See how Angular creates listeners on your data without the need for DOM manipulation. -  * Learn a better, easier way to test your web apps. -  * Learn how to use Angular services to make common web tasks, such as getting data into your app, -  easier. - -  And all of this works in any browser without modification to the browser! - -  When you finish the tutorial you will be able to: - -  * Create a dynamic application that works in any browser. -  * Define the differences between Angular and common JavaScript frameworks. -  * Understand how data binding works in AngularJS. -  * Use the angular-seed project to quickly boot-strap your own projects. -  * Create and run tests. -  * Identify resources for learning more about AngularJS. - -  The tutorial guides you through the entire process of building a simple application, including -  writing and running unit and end-to-end tests. Experiments at the end of each step provide -  suggestions for you to learn more about AngularJS and the application you are building. - -  You can go through the whole tutorial in a couple of hours or you may want to spend a pleasant day -  really digging into it. If you're looking for a shorter introduction to AngularJS, check out the -  {@link misc/started Getting Started} document. - - - - - - - -  # Working with the code - -  You can follow this tutorial and hack on the code in either the Mac/Linux or the Windows -  environment. The tutorial relies on the use of Git versioning system for source code management. -  You don't need to know anything about Git to follow the tutorial. Select one of the tabs below -  and follow the instructions for setting up your computer. - -  <div class="tabbable" show="true"> -    <div class="tab-pane well" id="git-mac" title="Git on Mac/Linux"> -      <ol> -        <li><p>You will need Node.js and Karma to run unit tests, so please verify that you have +A great way to get introduced to AngularJS is to work through this tutorial, which walks you through +the construction of an AngularJS web app. The app you will build is a catalog that displays a list +of Android devices, lets you filter the list to see only devices that interest you, and then view +details for any device. + +<img class="diagram" src="img/tutorial/catalog_screen.png" width="488" height="413"> + +Work through the tutorial to see how Angular makes browsers smarter — without the use of extensions +or plug-ins. As you work through the tutorial, you will: + +* See examples of how to use client-side data binding and dependency injection to build dynamic +views of data that change immediately in response to user actions. +* See how Angular creates listeners on your data without the need for DOM manipulation. +* Learn a better, easier way to test your web apps. +* Learn how to use Angular services to make common web tasks, such as getting data into your app, +easier. + +And all of this works in any browser without modification to the browser! + +When you finish the tutorial you will be able to: + +* Create a dynamic application that works in any browser. +* Define the differences between Angular and common JavaScript frameworks. +* Understand how data binding works in AngularJS. +* Use the angular-seed project to quickly boot-strap your own projects. +* Create and run tests. +* Identify resources for learning more about AngularJS. + +The tutorial guides you through the entire process of building a simple application, including +writing and running unit and end-to-end tests. Experiments at the end of each step provide +suggestions for you to learn more about AngularJS and the application you are building. + +You can go through the whole tutorial in a couple of hours or you may want to spend a pleasant day +really digging into it. If you're looking for a shorter introduction to AngularJS, check out the +{@link misc/started Getting Started} document. + + + + + + + +# Working with the code + +You can follow this tutorial and hack on the code in either the Mac/Linux or the Windows +environment. The tutorial relies on the use of Git versioning system for source code management. +You don't need to know anything about Git to follow the tutorial. Select one of the tabs below +and follow the instructions for setting up your computer. + +<div class="tabbable" show="true"> +  <div class="tab-pane well" id="git-mac" title="Git on Mac/Linux"> +    <ol> +      <li><p>You will need Node.js and Karma to run unit tests, so please verify that you have +      <a href="http://nodejs.org/">Node.js</a> v0.8 or better installed +      and that the <code>node</code> executable is on your <code>PATH</code> by running the following +      command in a terminal window:</p> +      <pre>node --version</pre> +      <p>Additionally install <a href="http://karma-runner.github.io/">Karma</a> if you +      don't have it already:</p> +      <pre>npm install -g karma</pre> +      <li><p>You'll also need Git, which you can get from +         <a href="http://git-scm.com/download">the Git site</a>.</p></li> +      <li><p>Clone the angular-phonecat repository located at <a +href="https://github.com/angular/angular-phonecat">Github</a> by running the following command:</p> +      <pre>git clone git://github.com/angular/angular-phonecat.git</pre> +      <p>This command creates the <code>angular-phonecat</code> directory in your current +directory.</p></li> +      <li><p>Change your current directory to <code>angular-phonecat</code>:</p> +      <pre>cd angular-phonecat</pre> +      <p>The tutorial instructions assume you are running all commands from the <code>angular-phonecat</code> +directory.</p></li> +      <li><p>You will need an http server running on your system. Mac and Linux machines typically +have Apache pre-installed, but If you don't already have one installed, you can use <code>node</code> +to run <code>scripts/web-server.js</code>,  a simple bundled http server.</p></li> +    </ol> +  </div> + +  <div class="tab-pane well" id="git-win" title="Git on Windows"> +    <ol> +      <li><p>You will need Node.js and Karma to run unit tests, so please verify that you have          <a href="http://nodejs.org/">Node.js</a> v0.8 or better installed          and that the <code>node</code> executable is on your <code>PATH</code> by running the following          command in a terminal window:</p>          <pre>node --version</pre>          <p>Additionally install <a href="http://karma-runner.github.io/">Karma</a> if you -        don't have it already:</p> +           don't have it already:</p>          <pre>npm install -g karma</pre> -        <li><p>You'll also need Git, which you can get from -           <a href="http://git-scm.com/download">the Git site</a>.</p></li> -        <li><p>Clone the angular-phonecat repository located at <a -  href="https://github.com/angular/angular-phonecat">Github</a> by running the following command:</p> -        <pre>git clone git://github.com/angular/angular-phonecat.git</pre> -        <p>This command creates the <code>angular-phonecat</code> directory in your current -  directory.</p></li> -        <li><p>Change your current directory to <code>angular-phonecat</code>:</p> -        <pre>cd angular-phonecat</pre> -        <p>The tutorial instructions assume you are running all commands from the <code>angular-phonecat</code> -  directory.</p></li> -        <li><p>You will need an http server running on your system. Mac and Linux machines typically -  have Apache pre-installed, but If you don't already have one installed, you can use <code>node</code> -  to run <code>scripts/web-server.js</code>,  a simple bundled http server.</p></li> -      </ol> -    </div> - -    <div class="tab-pane well" id="git-win" title="Git on Windows"> -      <ol> -        <li><p>You will need Node.js and Karma to run unit tests, so please verify that you have -          <a href="http://nodejs.org/">Node.js</a> v0.8 or better installed -          and that the <code>node</code> executable is on your <code>PATH</code> by running the following -          command in a terminal window:</p> -          <pre>node --version</pre> -          <p>Additionally install <a href="http://karma-runner.github.io/">Karma</a> if you -             don't have it already:</p> -          <pre>npm install -g karma</pre> -        </li> -        <li><p>You'll also need Git, which you can get from -                 <a href="http://git-scm.com/download">the Git site</a>.</p></li> -        <li><p>Clone the angular-phonecat repository located at <a -        href="https://github.com/angular/angular-phonecat">Github</a> by running the following command:</p> -        <pre>git clone git://github.com/angular/angular-phonecat.git</pre> -        <p>This command creates the <code>angular-phonecat</code> directory in your current directory.</p></li> -        <li><p>Change your current directory to <code>angular-phonecat</code>:</p> -        <pre>cd angular-phonecat</pre> -        <p>The tutorial instructions assume you are running all commands from the <code>angular-phonecat</code> -  directory.</p> -        <p>You should run all <code>git</code> commands from Git bash.</p> -        <p>Other commands like <code>test.bat</code> or <code>e2e-test.bat</code> should be -  executed from the Windows command line.</li> -        <li><p>You need an http server running on your system, but if you don't already have one -  already installed, you can use <code>node</code> to run <code>scripts\web-server.js</code>, a simple -  bundled http server.</p></li> -      </ol> -    </div> - -  The last thing to do is to make sure your computer has a web browser and a good text editor -  installed. Now, let's get some cool stuff done! - -  {@link step_00 <span class="btn btn-primary">Get Started!</span>} -</div> +      </li> +      <li><p>You'll also need Git, which you can get from +               <a href="http://git-scm.com/download">the Git site</a>.</p></li> +      <li><p>Clone the angular-phonecat repository located at <a +      href="https://github.com/angular/angular-phonecat">Github</a> by running the following command:</p> +      <pre>git clone git://github.com/angular/angular-phonecat.git</pre> +      <p>This command creates the <code>angular-phonecat</code> directory in your current directory.</p></li> +      <li><p>Change your current directory to <code>angular-phonecat</code>:</p> +      <pre>cd angular-phonecat</pre> +      <p>The tutorial instructions assume you are running all commands from the <code>angular-phonecat</code> +directory.</p> +      <p>You should run all <code>git</code> commands from Git bash.</p> +      <p>Other commands like <code>test.bat</code> or <code>e2e-test.bat</code> should be +executed from the Windows command line.</li> +      <li><p>You need an http server running on your system, but if you don't already have one +already installed, you can use <code>node</code> to run <code>scripts\web-server.js</code>, a simple +bundled http server.</p></li> +    </ol> +  </div> + +The last thing to do is to make sure your computer has a web browser and a good text editor +installed. Now, let's get some cool stuff done! + +{@link step_00 <span class="btn btn-primary">Get Started!</span>} diff --git a/docs/content/tutorial/the_end.ngdoc b/docs/content/tutorial/the_end.ngdoc index 142fb2b8..a4fd72a3 100644 --- a/docs/content/tutorial/the_end.ngdoc +++ b/docs/content/tutorial/the_end.ngdoc @@ -2,22 +2,20 @@  @name Tutorial: The End  @description -<div class="tutorial-page tutorial-page-no-nav"> -  Our application is now complete. Feel free to experiment with the code further, and jump back to -  previous steps using the `git checkout` command. +Our application is now complete. Feel free to experiment with the code further, and jump back to +previous steps using the `git checkout` command. -  For more details and examples of the Angular concepts we touched on in this tutorial, see the -  {@link guide/ Developer Guide}. +For more details and examples of the Angular concepts we touched on in this tutorial, see the +{@link guide/ Developer Guide}. -  For several more examples of code, see the {@link cookbook/ Cookbook}. +For several more examples of code, see the {@link cookbook/ Cookbook}. -  When you are ready to start developing a project using Angular, we recommend that you bootstrap -  your development with the {@link https://github.com/angular/angular-seed angular-seed} project. +When you are ready to start developing a project using Angular, we recommend that you bootstrap +your development with the {@link https://github.com/angular/angular-seed angular-seed} project. -  We hope this tutorial was useful to you and that you learned enough about Angular to make you want -  to learn more. We especially hope you are inspired to go out and develop Angular web apps of your -  own, and that you might be interested in {@link misc/contribute contributing} to Angular. +We hope this tutorial was useful to you and that you learned enough about Angular to make you want +to learn more. We especially hope you are inspired to go out and develop Angular web apps of your +own, and that you might be interested in {@link misc/contribute contributing} to Angular. -  If you have questions or feedback or just want to say "hi", please post a message at {@link -  https://groups.google.com/forum/#!forum/angular}. -</div> +If you have questions or feedback or just want to say "hi", please post a message at {@link +https://groups.google.com/forum/#!forum/angular}. diff --git a/docs/spec/ngdocSpec.js b/docs/spec/ngdocSpec.js index 7a038e89..128e0106 100644 --- a/docs/spec/ngdocSpec.js +++ b/docs/spec/ngdocSpec.js @@ -59,10 +59,10 @@ describe('ngdoc', function() {              '@param {function(number, string=)} d fn with optional arguments');          doc.parse();          expect(doc.param).toEqual([ -           {name:'a', description:'<p>short</p>', type:'*', optional:false, 'default':undefined}, -           {name:'b', description:'<p>med</p>', type:'Type', optional:false, 'default':undefined}, -           {name:'c', description:'<p>long\nline</p>', type:'Class', optional:true, 'default':'2'}, -           {name:'d', description:'<p>fn with optional arguments</p>', +           {name:'a', description:'<div class="a-page"><p>short</p></div>', type:'*', optional:false, 'default':undefined}, +           {name:'b', description:'<div class="a-page"><p>med</p></div>', type:'Type', optional:false, 'default':undefined}, +           {name:'c', description:'<div class="a-page"><p>long\nline</p></div>', type:'Class', optional:true, 'default':'2'}, +           {name:'d', description:'<div class="a-page"><p>fn with optional arguments</p></div>',               type: 'function(number, string=)', optional: false, 'default':undefined}           ]);        }); @@ -72,7 +72,7 @@ describe('ngdoc', function() {          doc.parse();          expect(doc.returns).toEqual({            type: 'Type', -          description: '<p>text <em>bold</em>.</p>' +          description: '<div class="a-page"><p>text <em>bold</em>.</p></div>'          });        }); @@ -138,11 +138,25 @@ describe('ngdoc', function() {      it('should not replace anything in <pre>, but escape the html escape the content', function() {        expect(new Doc().markdown('bah x\n<pre>\n<b>angular</b>.k\n</pre>\n asdf x')).          toEqual( -            '<p>bah x\n' + +            '<div class="docs-page"><p>bah x\n' +              '<pre class="prettyprint linenums">\n' +              '<b>angular</b>.k\n' +              '</pre>\n' + -            ' asdf x</p>'); +            ' asdf x</p></div>'); +    }); + +    it('should wrap everything inside a container tag', function() { +      var doc = new Doc('@name superman').parse(); +      var content = doc.markdown('hello'); + +      expect(content).toMatch('<div class="superman-page"><p>hello</p></div>'); +    }); + +    it('should use the content before a colon as the name prefix for the className of the tag container', function() { +      var doc = new Doc('@name super: man').parse(); +      var content = doc.markdown('hello'); + +      expect(content).toMatch('<div class="super-page super-man-page"><p>hello</p></div>');      });      it('should replace text between two <pre></pre> tags', function() { @@ -162,11 +176,11 @@ describe('ngdoc', function() {            '\ngit bla bla\n</doc:tutorial-instruction>\n' +          '</doc:tutorial-instructions>')).toEqual( -        '<p>before<div class="tabbable">\n' + +        '<div class="docs-page"><p>before<div class="tabbable">\n' +            '<div class="tab-pane well" id="git-mac" ng:model="Git on Mac/Linux">\n' +            'git bla bla\n' +            '</doc:tutorial-instruction>\n' + -        '</doc:tutorial-instructions></p>'); +        '</doc:tutorial-instructions></p></div>');        });      it('should unindent text before processing based on the second line', function() { @@ -290,7 +304,7 @@ describe('ngdoc', function() {            name : 'number',            optional: false,            'default' : undefined, -          description : '<p>Number \nto format.</p>' }]); +          description : '<div class="a-page"><p>Number \nto format.</p></div>' }]);        });        it('should parse with default and optional', function() { @@ -301,7 +315,7 @@ describe('ngdoc', function() {            name : 'fractionSize',            optional: true,            'default' : '2', -          description : '<p>desc</p>' }]); +          description : '<div class="a-page"><p>desc</p></div>' }]);        });      }); @@ -311,8 +325,8 @@ describe('ngdoc', function() {          doc.ngdoc = 'service';          doc.parse();          expect(doc.requires).toEqual([ -          {name:'$service', text:'<p>for \n<code>A</code></p>'}, -          {name:'$another', text:'<p>for <code>B</code></p>'}]); +          {name:'$service', text:'<div class="a-page"><p>for \n<code>A</code></p></div>'}, +          {name:'$another', text:'<div class="a-page"><p>for <code>B</code></p></div>'}]);          expect(doc.html()).toContain('<a href="api/ng.$service">$service</a>');          expect(doc.html()).toContain('<a href="api/ng.$another">$another</a>');          expect(doc.html()).toContain('<p>for \n<code>A</code></p>'); @@ -364,7 +378,7 @@ describe('ngdoc', function() {          var doc = new Doc("@name a\n@property {string} name desc rip tion");          doc.parse();          expect(doc.properties[0].name).toEqual('name'); -        expect(doc.properties[0].description).toEqual('<p>desc rip tion</p>'); +        expect(doc.properties[0].description).toEqual('<div class="a-page"><p>desc rip tion</p></div>');        });        it('should parse @property with type and description both', function() { @@ -372,7 +386,7 @@ describe('ngdoc', function() {          doc.parse();          expect(doc.properties[0].name).toEqual('name');          expect(doc.properties[0].type).toEqual('bool'); -        expect(doc.properties[0].description).toEqual('<p>desc rip tion</p>'); +        expect(doc.properties[0].description).toEqual('<div class="a-page"><p>desc rip tion</p></div>');        });      }); @@ -395,26 +409,26 @@ describe('ngdoc', function() {        it('should parse @returns with type and description', function() {          var doc = new Doc("@name a\n@returns {string} descrip tion");          doc.parse(); -        expect(doc.returns).toEqual({type: 'string', description: '<p>descrip tion</p>'}); +        expect(doc.returns).toEqual({type: 'string', description: '<div class="a-page"><p>descrip tion</p></div>'});        });        it('should parse @returns with complex type and description', function() {          var doc = new Doc("@name a\n@returns {function(string, number=)} description");          doc.parse(); -        expect(doc.returns).toEqual({type: 'function(string, number=)', description: '<p>description</p>'}); +        expect(doc.returns).toEqual({type: 'function(string, number=)', description: '<div class="a-page"><p>description</p></div>'});        });        it('should transform description of @returns with markdown', function() {          var doc = new Doc("@name a\n@returns {string} descrip *tion*");          doc.parse(); -        expect(doc.returns).toEqual({type: 'string', description: '<p>descrip <em>tion</em></p>'}); +        expect(doc.returns).toEqual({type: 'string', description: '<div class="a-page"><p>descrip <em>tion</em></p></div>'});        });        it('should support multiline content', function() {          var doc = new Doc("@name a\n@returns {string} description\n new line\n another line");          doc.parse();          expect(doc.returns). -          toEqual({type: 'string', description: '<p>description\nnew line\nanother line</p>'}); +          toEqual({type: 'string', description: '<div class="a-page"><p>description\nnew line\nanother line</p></div>'});        });      }); @@ -423,18 +437,18 @@ describe('ngdoc', function() {          var doc = new Doc("@name a\n@description <pre><b>abc</b></pre>");          doc.parse();          expect(doc.description). -          toBe('<pre class="prettyprint linenums"><b>abc</b></pre>'); +          toBe('<div class="a-page"><pre class="prettyprint linenums"><b>abc</b></pre></div>');        });        it('should support multiple pre blocks', function() {          var doc = new Doc("@name a\n@description foo \n<pre>abc</pre>\n#bah\nfoo \n<pre>cba</pre>");          doc.parse();          expect(doc.description). -          toBe('<p>foo \n' + +          toBe('<div class="a-page"><p>foo \n' +                 '<pre class="prettyprint linenums">abc</pre>\n\n' +                 '<h1 id="bah">bah</h1>\n\n' +                 '<p>foo \n' + -               '<pre class="prettyprint linenums">cba</pre>'); +               '<pre class="prettyprint linenums">cba</pre></div>');        }); @@ -477,7 +491,7 @@ describe('ngdoc', function() {        it('should not remove {{}}', function() {          var doc = new Doc('@name a\n@example text {{ abc }}');          doc.parse(); -        expect(doc.example).toEqual('<p>text {{ abc }}</p>'); +        expect(doc.example).toEqual('<div class="a-page"><p>text {{ abc }}</p></div>');        });      }); @@ -496,10 +510,12 @@ describe('ngdoc', function() {          doc.parse();          expect(doc.html()).toContain('<h3>Method\'s <code>this</code></h3>\n' +              '<div>' + +            '<div class="a-page">' +              '<p>I am self.</p>' + +            '</div>' +              '</div>\n');          expect(doc.html()).toContain('<h3>Method\'s <code>this</code></h3>\n' + -            '<div><p>I am self.</p></div>'); +            '<div><div class="a-page"><p>I am self.</p></div></div>');        });      }); diff --git a/docs/src/ngdoc.js b/docs/src/ngdoc.js index dc75d5cb..f5f22ee8 100644 --- a/docs/src/ngdoc.js +++ b/docs/src/ngdoc.js @@ -240,7 +240,25 @@ Doc.prototype = {          });      });      text = parts.join(''); -    text = markdown.makeHtml(text); + +    function prepareClassName(text) { +      return text.toLowerCase().replace(/[_\W]+/g, '-'); +    }; + +    var pageClassName, suffix = '-page'; +    if(this.name) { +      var split = this.name.match(/^\s*(.+?)\s*:\s*(.+)/); +      if(split && split.length > 1) { +        var before = prepareClassName(split[1]); +        var after = prepareClassName(split[2]); +        pageClassName = before + suffix + ' ' + before + '-' + after + suffix; +      } +    } +    pageClassName = pageClassName || prepareClassName(this.name || 'docs') + suffix; + +    text = '<div class="' + pageClassName + '">' +  +             markdown.makeHtml(text) + +           '</div>';      text = text.replace(/(?:<p>)?(REPLACEME\d+)(?:<\/p>)?/g, function(_, id) {        return placeholderMap[id];      }); diff --git a/docs/src/templates/css/docs.css b/docs/src/templates/css/docs.css index 01aa2376..a34a197f 100644 --- a/docs/src/templates/css/docs.css +++ b/docs/src/templates/css/docs.css @@ -293,13 +293,16 @@ ul.events > li > h3 {    z-index:1031;  } +.tutorial-index-page, +.tutorial-the-end-page { +  padding-top:50px; +} +  .tutorial-page {    position:relative;  } -.tutorial-page-no-nav { -  padding-top:50px; -} -.tutorial-page-no-nav .improve-docs { + +.tutorial-page .improve-docs {    position:absolute;    top:0;    right:0; | 
