chore(docs): revise makeExcerpt mixin, add makeProjExample mixin
Be more DRY when referencing examples and excerpts. E.g., ```jade +makeExcerpt('quickstart/ts/app/app.component.ts', 'import', 'app/app.component.ts (import)') ``` can now be just ```jade +makeExcerpt('app/app.component.ts', 'import') ``` Defined new mixin for examples named `makeProjExample` using this new scheme. The original `makeExample` has been left untouched. Applied new mixins to quickstart. closes #1420
This commit is contained in:
parent
d152ea293e
commit
5b1a84be4c
@ -68,13 +68,43 @@ mixin makeExample(_filePath, region, _title, stylePatterns)
|
|||||||
.example-title #{title}
|
.example-title #{title}
|
||||||
code-example(language="#{language}" format="#{format}")
|
code-example(language="#{language}" format="#{format}")
|
||||||
!= styleString(frag, stylePatterns)
|
!= styleString(frag, stylePatterns)
|
||||||
|
|
||||||
//- Like makeExample, but doesn't show line numbers and
|
//- Like makeExample, but the first argument is a path that is
|
||||||
//- title is appened with `(excerpt)` if it doesn't already
|
//- relative to the project root. Unless title is defined,
|
||||||
//- end with a parenthetical remark.
|
//- the project relative path will be used.
|
||||||
mixin makeExcerpt(_filePath, region, _title, stylePatterns)
|
mixin makeProjExample(projRootRelativePath, region, title, stylePatterns)
|
||||||
- if (_title && !_title.match(/\([\w ]+\)$/)) _title = _title + ' (excerpt)';
|
- var relPath = projRootRelativePath.trim();
|
||||||
+makeExample(_filePath, region, _title, stylePatterns)(format='.')
|
- var filePath = getExampleName() + '/ts/' + relPath;
|
||||||
|
- if (!title) {
|
||||||
|
- // Is path like styles.1.css? Then drop the '.1' qualifier:
|
||||||
|
- var matches = relPath.match(/^(.*)\.\d(\.\w+)$/);
|
||||||
|
- title = matches ? matches[1] + matches[2] : relPath;
|
||||||
|
- }
|
||||||
|
+makeExample(filePath, region, title, stylePatterns)
|
||||||
|
|
||||||
|
//- Like makeExample, but doesn't show line numbers, and the first
|
||||||
|
//- argument is a path that is relative to the example project root.
|
||||||
|
//- Unless title is defined, the project relative path will be used.
|
||||||
|
//- Title will always end with a phrase in parentheses; if no such
|
||||||
|
//- ending is given, then the title will be suffixed with
|
||||||
|
//- either "(excerpt)", or "(#{region})" when region is defined.
|
||||||
|
mixin makeExcerpt(projRootRelativePath, region, title, stylePatterns)
|
||||||
|
- var relPath = projRootRelativePath.trim();
|
||||||
|
- var filePath = getExampleName() + '/ts/' + relPath;
|
||||||
|
- if (!title) {
|
||||||
|
- // Is path like styles.1.css? Then drop the '.1' qualifier:
|
||||||
|
- var matches = relPath.match(/^(.*)\.\d(\.\w+)$/);
|
||||||
|
- title = matches ? matches[1] + matches[2] : relPath;
|
||||||
|
- }
|
||||||
|
- var excerpt = region || 'excerpt';
|
||||||
|
- if (title && !title.match(/\([\w ]+\)$/)) title = title + ' (' + excerpt + ')';
|
||||||
|
+makeExample(filePath, region, title, stylePatterns)(format='.')
|
||||||
|
|
||||||
|
//- Extract the doc example name from `current`.
|
||||||
|
- var getExampleName = function() {
|
||||||
|
- var dir = current.path[current.path.length - 1];
|
||||||
|
- return dir == 'latest' ? current.source : dir;
|
||||||
|
- };
|
||||||
|
|
||||||
mixin makeTabs(filePaths, regions, tabNames, stylePatterns)
|
mixin makeTabs(filePaths, regions, tabNames, stylePatterns)
|
||||||
- filePaths = strSplit(filePaths);
|
- filePaths = strSplit(filePaths);
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
// #docregion
|
// #docregion
|
||||||
import { bootstrap } from '@angular/platform-browser-dynamic';
|
import { bootstrap } from '@angular/platform-browser-dynamic';
|
||||||
|
|
||||||
// #docregion app-component
|
// #docregion import
|
||||||
import { AppComponent } from './app.component';
|
import { AppComponent } from './app.component';
|
||||||
// #enddocregion app-component
|
// #enddocregion import
|
||||||
|
|
||||||
bootstrap(AppComponent);
|
bootstrap(AppComponent);
|
||||||
|
@ -208,7 +208,7 @@ p.
|
|||||||
#[b Create the component file]
|
#[b Create the component file]
|
||||||
#[code #[+adjExPath('app/app.component.ts')]] (in this newly created directory) with the following content:
|
#[code #[+adjExPath('app/app.component.ts')]] (in this newly created directory) with the following content:
|
||||||
|
|
||||||
+makeExample('quickstart/ts/app/app.component.ts', '', 'app/app.component.ts')(format='.')
|
+makeProjExample('app/app.component.ts')
|
||||||
|
|
||||||
.l-verbose-section
|
.l-verbose-section
|
||||||
:marked
|
:marked
|
||||||
@ -241,7 +241,7 @@ p.
|
|||||||
Here we import the Angular 2 core so that our component code can have access to
|
Here we import the Angular 2 core so that our component code can have access to
|
||||||
the `@Component` #{_decorator}.
|
the `@Component` #{_decorator}.
|
||||||
|
|
||||||
+makeExcerpt('quickstart/ts/app/app.component.ts', 'import', 'app/app.component.ts (import)')
|
+makeExcerpt('app/app.component.ts', 'import')
|
||||||
|
|
||||||
h3#component-decorator @Component #{_decorator}
|
h3#component-decorator @Component #{_decorator}
|
||||||
+ifDocsFor('ts')
|
+ifDocsFor('ts')
|
||||||
@ -254,7 +254,7 @@ p.
|
|||||||
component class.
|
component class.
|
||||||
The metadata tells Angular how to create and use this component.
|
The metadata tells Angular how to create and use this component.
|
||||||
|
|
||||||
+makeExcerpt('quickstart/ts/app/app.component.ts', 'metadata', 'app/app.component.ts (metadata)')(format='.')
|
+makeExcerpt('app/app.component.ts', 'metadata')
|
||||||
|
|
||||||
block annotation-fields
|
block annotation-fields
|
||||||
:marked
|
:marked
|
||||||
@ -279,7 +279,7 @@ p.
|
|||||||
:marked
|
:marked
|
||||||
### Component class
|
### Component class
|
||||||
At the bottom of the file is an empty, do-nothing class named `AppComponent`.
|
At the bottom of the file is an empty, do-nothing class named `AppComponent`.
|
||||||
+makeExcerpt('quickstart/ts/app/app.component.ts', 'class', 'app/app.component.ts (class)')
|
+makeExcerpt('app/app.component.ts', 'class')
|
||||||
:marked
|
:marked
|
||||||
When we're ready to build a substantive application,
|
When we're ready to build a substantive application,
|
||||||
we can expand this class with properties and application logic.
|
we can expand this class with properties and application logic.
|
||||||
@ -297,7 +297,7 @@ block create-main
|
|||||||
Now we need something to tell Angular to load the root component.
|
Now we need something to tell Angular to load the root component.
|
||||||
Create the file #[code #[+adjExPath('app/main.ts')]] with the following content:
|
Create the file #[code #[+adjExPath('app/main.ts')]] with the following content:
|
||||||
|
|
||||||
+makeExample('quickstart/ts/app/main.ts', '', 'app/main.ts')(format='.')
|
+makeProjExample('app/main.ts')
|
||||||
|
|
||||||
.l-verbose-section
|
.l-verbose-section
|
||||||
:marked
|
:marked
|
||||||
@ -342,7 +342,7 @@ h2#index Step 4: Add #[code index.html]
|
|||||||
In the *#{_indexHtmlDir}* folder
|
In the *#{_indexHtmlDir}* folder
|
||||||
create an `index.html` file and paste the following lines into it:
|
create an `index.html` file and paste the following lines into it:
|
||||||
|
|
||||||
+makeExample('quickstart/ts/index.html', '', 'index.html')(format='.')
|
+makeProjExample('index.html')
|
||||||
|
|
||||||
.l-verbose-section
|
.l-verbose-section
|
||||||
:marked
|
:marked
|
||||||
@ -360,7 +360,7 @@ h2#index Step 4: Add #[code index.html]
|
|||||||
:marked
|
:marked
|
||||||
### Libraries
|
### Libraries
|
||||||
We loaded the following scripts
|
We loaded the following scripts
|
||||||
+makeExcerpt('quickstart/ts/index.html', 'libraries', 'index.html')
|
+makeExcerpt('index.html', 'libraries')
|
||||||
:marked
|
:marked
|
||||||
We begin with es6-shim which monkey patches the global context (window) with essential features of ES2015 (ES6).
|
We begin with es6-shim which monkey patches the global context (window) with essential features of ES2015 (ES6).
|
||||||
Next are the polyfills for Angular2, `zone.js` and `reflect-metadata`.
|
Next are the polyfills for Angular2, `zone.js` and `reflect-metadata`.
|
||||||
@ -407,7 +407,7 @@ h2#index Step 4: Add #[code index.html]
|
|||||||
|
|
||||||
Our QuickStart makes such requests when one of its
|
Our QuickStart makes such requests when one of its
|
||||||
application TypeScript files has an import statement like this:
|
application TypeScript files has an import statement like this:
|
||||||
+makeExcerpt('quickstart/ts/app/main.ts', 'app-component', 'main.ts (excerpt)')
|
+makeExcerpt('app/main.ts', 'import')
|
||||||
:marked
|
:marked
|
||||||
Notice that the module name (after `from`) does not mention a filename extension.
|
Notice that the module name (after `from`) does not mention a filename extension.
|
||||||
In the configuration we tell SystemJS to default the extension to `js`, a JavaScript file.
|
In the configuration we tell SystemJS to default the extension to `js`, a JavaScript file.
|
||||||
@ -463,7 +463,7 @@ h2#index Step 4: Add #[code index.html]
|
|||||||
Create a `styles.css` file in the *#{_indexHtmlDir}* folder and start styling, perhaps with the minimal
|
Create a `styles.css` file in the *#{_indexHtmlDir}* folder and start styling, perhaps with the minimal
|
||||||
styles shown below. For the full set of master styles used by the documentation samples,
|
styles shown below. For the full set of master styles used by the documentation samples,
|
||||||
see [styles.css](https://github.com/angular/angular.io/blob/master/public/docs/_examples/styles.css).
|
see [styles.css](https://github.com/angular/angular.io/blob/master/public/docs/_examples/styles.css).
|
||||||
+makeExcerpt('quickstart/ts/styles.1.css', '', 'styles.css')
|
+makeExcerpt('styles.1.css')
|
||||||
|
|
||||||
.l-main-section
|
.l-main-section
|
||||||
h2#build-and-run Step 5: Build and run the app!
|
h2#build-and-run Step 5: Build and run the app!
|
||||||
|
Loading…
x
Reference in New Issue
Block a user