diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
new file mode 100644
index 0000000000..fa749aa3fd
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE.md
@@ -0,0 +1,7 @@
+**Please do not add issues or pull requests to this repo.**
+We are no longer making changes to documentation in this repository.
+We will no longer process new issues or PRs and we will close them automatically.
+
+**Please post new [issues](https://github.com/angular/angular/issues) and [pull requests](https://github.com/angular/angular/pulls) to the content folder in [https://github.com/angular/angular/tree/master/aio/content](https://github.com/angular/angular/tree/master/aio/content)**.
+
+Be sure to prefix your issue/PR title with "**docs(aio):**"
diff --git a/.github/PULL_REQUEST_TEMPLATE.MD b/.github/PULL_REQUEST_TEMPLATE.MD
new file mode 100644
index 0000000000..c4e15a1d58
--- /dev/null
+++ b/.github/PULL_REQUEST_TEMPLATE.MD
@@ -0,0 +1,7 @@
+**Please do not add issues or pull requests to this repo.**
+We are no longer making changes to documentation in this repository.
+We will no longer process new issues or PRs and we will close them automatically.
+
+**Please post new [issues](https://github.com/angular/angular/issues) and [pull requests](https://github.com/angular/angular/pulls) to the content folder in [https://github.com/angular/angular/tree/master/aio/content](https://github.com/angular/angular/tree/master/aio/content)**.
+
+Be sure to prefix your issue/PR title with "**docs(aio):**"
diff --git a/.travis.yml b/.travis.yml
index 13ea225958..edba3b37d8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,8 +10,9 @@ env:
- DBUS_SESSION_BUS_ADDRESS=/dev/null
- DISPLAY=:99.0
- CHROME_BIN=chromium-browser
- - LATEST_RELEASE=2.4.0
- - LATEST_RELEASE_BRANCH=2.4.x
+ - LATEST_RELEASE=4.0.0
+ # Temporarily disabled until there is a new release branch for 4.0.0
+ # - LATEST_RELEASE_BRANCH=2.4.x
- TASK_FLAGS="--dgeni-log=warn"
matrix:
# current angular release jobs
@@ -19,8 +20,8 @@ env:
- TASK="run-e2e-tests --fast" SCRIPT=examples-install.sh
- TASK=build-compile SCRIPT=deploy-install.sh WAIT="travis_wait 50" POST_SCRIPT="check-docs.sh -v"
# current angular release branch jobs
- - TASK="run-e2e-tests --fast" SCRIPT=examples-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH
- - TASK=build-compile SCRIPT=deploy-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH WAIT="travis_wait 50" POST_SCRIPT="check-docs.sh -v"
+ # - TASK="run-e2e-tests --fast" SCRIPT=examples-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH
+ # - TASK=build-compile SCRIPT=deploy-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH WAIT="travis_wait 50" POST_SCRIPT="check-docs.sh -v"
# angular master jobs
- TASK="run-e2e-tests --fast" SCRIPT=examples-install-preview.sh PREVIEW_BRANCH=master
- TASK=build-compile SCRIPT=deploy-install-preview.sh PREVIEW_BRANCH=master WAIT="travis_wait 50" POST_SCRIPT="check-docs.sh -v"
@@ -29,8 +30,8 @@ matrix:
allow_failures:
# allow current angular release branch and master to fail
# these should be moved to a daily task instead of being ran on every PR
- - env: TASK="run-e2e-tests --fast" SCRIPT=examples-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH
- - env: TASK=build-compile SCRIPT=deploy-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH WAIT="travis_wait 50" POST_SCRIPT="check-docs.sh -v"
+ # - env: TASK="run-e2e-tests --fast" SCRIPT=examples-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH
+ # - env: TASK=build-compile SCRIPT=deploy-install-preview.sh PREVIEW_BRANCH=$LATEST_RELEASE_BRANCH WAIT="travis_wait 50" POST_SCRIPT="check-docs.sh -v"
- env: TASK="run-e2e-tests --fast" SCRIPT=examples-install-preview.sh PREVIEW_BRANCH=master
- env: TASK=build-compile SCRIPT=deploy-install-preview.sh PREVIEW_BRANCH=master WAIT="travis_wait 50" POST_SCRIPT="check-docs.sh -v"
before_install:
diff --git a/firebase.json b/firebase.json
index 9a03643e39..4f6e69080f 100644
--- a/firebase.json
+++ b/firebase.json
@@ -46,6 +46,11 @@
"source": "/**/dart/**",
"destination": "https://webdev.dartlang.org/angular?utm_campaign=dart_migration&utm_medium=redirect&utm_source=angular.io",
"type": 301
+ },
+ {
+ "source": "/docs",
+ "destination": "https://angular.io/docs/ts/latest/",
+ "type": 301
}
],
"rewrites": [
diff --git a/gulpfile.js b/gulpfile.js
index fb332c68d9..b13de3e006 100644
--- a/gulpfile.js
+++ b/gulpfile.js
@@ -46,7 +46,7 @@ var LIVE_EXAMPLES_PATH = path.join(RESOURCES_PATH, 'live-examples');
var STYLES_SOURCE_PATH = path.join(TOOLS_PATH, 'styles-builder/less');
var docShredder = require(path.resolve(TOOLS_PATH, 'doc-shredder/doc-shredder'));
-var exampleZipper = require(path.resolve(TOOLS_PATH, '_example-zipper/exampleZipper'));
+var ExampleZipper = require(path.resolve(TOOLS_PATH, 'example-zipper/exampleZipper'));
var regularPlunker = require(path.resolve(TOOLS_PATH, 'plunker-builder/regularPlunker'));
var embeddedPlunker = require(path.resolve(TOOLS_PATH, 'plunker-builder/embeddedPlunker'));
var fsUtils = require(path.resolve(TOOLS_PATH, 'fs-utils/fsUtils'));
@@ -71,13 +71,13 @@ var _devguideShredJadeOptions = {
var _apiShredOptions = {
lang: 'ts',
- examplesDir: path.join(ANGULAR_PROJECT_PATH, 'modules/@angular/examples'),
+ examplesDir: path.join(ANGULAR_PROJECT_PATH, 'packages/examples'),
fragmentsDir: path.join(DOCS_PATH, '_fragments/_api'),
zipDir: path.join(RESOURCES_PATH, 'zips/api'),
logLevel: _dgeniLogLevel
};
-var _excludePatterns = ['**/node_modules/**', '**/packages/**'];
+var _excludePatterns = ['**/node_modules/**'];
var _excludeMatchers = _excludePatterns.map(function(excludePattern){
return new Minimatch(excludePattern)
@@ -86,6 +86,7 @@ var _excludeMatchers = _excludePatterns.map(function(excludePattern){
var _exampleBoilerplateFiles = [
'src/styles.css',
'src/systemjs.config.js',
+ 'src/systemjs-angular-loader.js',
'src/tsconfig.json',
'bs-config.json',
'bs-config.e2e.json',
@@ -501,7 +502,7 @@ function installExampleAngular() {
var template;
var libs = [
'core', 'common', 'compiler', 'compiler-cli',
- 'platform-browser', 'platform-browser-dynamic',
+ 'platform-browser', 'platform-browser-dynamic', 'platform-server',
'forms', 'http', 'router', 'upgrade'];
var build = argv.build;
@@ -521,13 +522,16 @@ function installExampleAngular() {
: `git+https://github.com/angular/${lib}-builds${build}`;
});
- if (argv.build) { sources.push('@angular/tsc-wrapped');} // tsc-wrapped needed for builds
+ if (argv.build) {
+ sources.push('@angular/tsc-wrapped'); // tsc-wrapped needed for builds
+ sources.push('typescript@2.2.1'); // recent builds need recent TypeScript
+ }
sources.push('@angular/router-deprecated');
gutil.log(`Installing Angular packages from ${build === 'npm' ? 'NPM' : 'BUILD ' + build}`);
- var spawnInfo = spawnExt('rm', ['-rf', 'node_modules/@angular'], { cwd: EXAMPLES_PATH});
+ var spawnInfo = spawnExt('node', ['node_modules/rimraf/bin.js', 'node_modules/@angular'], { cwd: EXAMPLES_PATH});
return spawnInfo.promise
.then(() => {
spawnInfo = spawnExt('npm', ['install', ...sources], {cwd: EXAMPLES_PATH});
@@ -572,9 +576,7 @@ gulp.task('build-and-serve', ['build-docs'], function (cb) {
watchAndSync({localFiles: true}, cb);
});
-gulp.task('build-docs', ['build-devguide-docs', 'build-api-docs', 'build-plunkers']);
-// Stop zipping examples Feb 28, 2016
-//gulp.task('build-docs', ['build-devguide-docs', 'build-api-docs', 'build-plunkers', '_zip-examples']);
+gulp.task('build-docs', ['build-devguide-docs', 'build-api-docs', 'build-plunkers', '_zip-examples']);
gulp.task('build-api-docs', ['build-js-api-docs', 'build-ts-api-docs']);
@@ -787,8 +789,8 @@ gulp.task('_shred-clean-api', function(cb) {
});
gulp.task('_zip-examples', function() {
- exampleZipper.zipExamples(_devguideShredOptions.examplesDir, _devguideShredOptions.zipDir);
- exampleZipper.zipExamples(_apiShredOptions.examplesDir, _apiShredOptions.zipDir);
+ new ExampleZipper(_devguideShredOptions.examplesDir, _devguideShredOptions.zipDir);
+ // exampleZipper.zipExamples(_apiShredOptions.examplesDir, _apiShredOptions.zipDir);
});
@@ -1202,7 +1204,7 @@ function devGuideExamplesWatch(shredOptions, postShredAction, focus) {
// var excludePattern = '!' + path.join(shredOptions.examplesDir, '**/node_modules/**/*.*');
// gulp.watch([includePattern, excludePattern], {readDelay: 500}, function (event, done) {
var ignoreThese = [ '**/node_modules/**', '**/_fragments/**', '**/dist/**',
- '**/dart/.pub/**', '**/dart/build/**', '**/dart/packages/**'];
+ '**/dart/.pub/**', '**/dart/build/**'];
ignoreThese = ignoreThese.concat(_exampleBoilerplateFiles.map((file) => `public/docs/_examples/*/*/${file}`));
var files = globby.sync( [includePattern], { ignore: ignoreThese });
gulp.watch([files], {readDelay: 500}, function (event, done) {
diff --git a/harp.json b/harp.json
index 0c1bdaa2bd..f24fd86c42 100644
--- a/harp.json
+++ b/harp.json
@@ -355,6 +355,7 @@
"name": "Ward Bell",
"picture": "/resources/images/bios/wardbell.jpg",
"website": "https://github.com/wardbell",
+ "twitter": "wardbell",
"bio": "Ward is an all-around developer with JavaScript, node, and .net chops. He's a frequent conference speaker and podcaster, trainer, Google Developer Expert for Angular, Microsoft MVP, and PluralSight author. He is also president of IdeaBlade, an enterprise software consulting firm and the makers of breeze.js. He would like to get more sleep and spend more time in the mountains.",
"type": "Community"
},
@@ -503,7 +504,8 @@
"name": "Kapunahele Wong",
"picture": "/resources/images/bios/kapunahelewong.jpg",
"website": " https://github.com/kapunahelewong",
- "bio": "Kapunahele is a front-end developer at Capital One. She loves just about anything to do with JavaScript, Angular and electronics. She enjoys mapping Hawaiian star names and constellations to Western ones and loves dancing native Hawaiian hula.",
+ "twitter": "kapunahele",
+ "bio": "Kapunahele is a front-end developer and contributor to angular.io. She loves just about anything to do with JavaScript, Angular and electronics. She enjoys mapping Hawaiian star names and constellations to Western ones and loves dancing native Hawaiian hula.",
"type": "Community"
},
@@ -512,7 +514,7 @@
"picture": "/resources/images/bios/devversion.jpg",
"website": "http://github.com/DevVersion/",
"twitter": "DevVersion",
- "bio": "Paul is an aspiring 16-year-old developer living in Germany. While attending school, Paul works as a core team member on the Angular Material projects. He is a prolific contributor to all aspects of AngularJS and Angular and hopes to work at Google during his college studies!",
+ "bio": "Paul is a 16-year-old developer living in Germany. While he attends school, Paul works as a core team member on Angular Material. Paul focuses on tooling and building components for Angular.",
"type": "Community"
},
@@ -521,6 +523,13 @@
"picture": "/resources/images/bios/mmalerba.jpg",
"bio": "Miles is a software engineer on the Angular Material team at Google. In addition to Javascripting he enjoys eating food and ogling cute puppies.",
"type": "Google"
+ },
+
+ "jasonaden": {
+ "name": "Jason Aden",
+ "picture": "/resources/images/bios/jasonaden.jpg",
+ "bio": "Jason is a software engineer at Google on the Angular Core team. He is enthusiastic about Angular and application development in the modern age. In his free time Jason enjoys spending time with his wife and four children and doing outdoor activities (hiking, fishing, snowboarding, etc.).",
+ "type": "Google"
}
}
}
diff --git a/public/_data.json b/public/_data.json
index 216d1c7183..987d3e6b4a 100644
--- a/public/_data.json
+++ b/public/_data.json
@@ -15,13 +15,7 @@
"subtitle": "帮我们构建面向未来的框架",
"autoformat": "true"
},
- "resources": {
- "title": "资源库",
- "subtitle": "Angular的资源库"
- },
- "news": {
- "title": "新闻"
- },
+
"events": {
"title": "开发者会议",
"subtitle": "我们将在哪里开会"
diff --git a/public/_includes/_footer.jade b/public/_includes/_footer.jade
index 40f13bb4c7..95b75dfe62 100644
--- a/public/_includes/_footer.jade
+++ b/public/_includes/_footer.jade
@@ -60,7 +60,7 @@ div(class="main-footer" data-swiftype-index="false")
p Events
p 会议
li Meetups
- li Twitter
+ li Twitter
li GitHub
li
p Contribute
diff --git a/public/_includes/_hero-home.jade b/public/_includes/_hero-home.jade
index ac2e35f25a..fed2fb18e7 100644
--- a/public/_includes/_hero-home.jade
+++ b/public/_includes/_hero-home.jade
@@ -1,13 +1,13 @@
header(class="background-sky l-relative")
.hero.background-superhero-paper.is-large
- img(class="hero-logo" src='/resources/images/logos/angular2/angular.svg')
+ img(class="hero-logo" src='/resources/images/logos/angular/angular.svg')
h1.text-headline #{title}
#{subtitle}
a(href="/docs/ts/latest/quickstart.html" class="hero-cta md-raised button button-large button-plain" md-button) 开始吧!
announcement-bar
.announcement-bar-slide.clearfix
- img(src="/resources/images/logos/angular2/angular-banner-logo-grey.png" width="64")
- p Test-drive @angular/material: 22个组件进入beta阶段啦!
- a(href="https://material.angular.io/" target="_blank" class="button md-button") 试试看!
+ img(src="/resources/images/logos/angular/angular-banner-logo-grey.png" width="64")
+ p Angular v4.0 发布啦!更小,更快,改动少
+ a(href="http://angularjs.blogspot.com/2017/03/angular-400-now-available.html" target="_blank" class="button md-button") 了解更多
diff --git a/public/_includes/_hero.jade b/public/_includes/_hero.jade
index 46ac3b2ce5..bdd1161a62 100644
--- a/public/_includes/_hero.jade
+++ b/public/_includes/_hero.jade
@@ -15,7 +15,7 @@ if current.path[4] && current.path[3] == 'api'
if current.path.indexOf('cheatsheet') > 0 || current.path[current.path.length-2] === 'api'
- var base = current.path[4] ? '../guide' : './guide';
- - var ngVersion = '(v
Highlight me!
- +Highlighted in yellow
Highlighted in orange
-Highlighted with parent component's color
- - -I am green with envy!
- diff --git a/public/docs/_examples/attribute-directives/ts/src/app/app.component.1.ts b/public/docs/_examples/attribute-directives/ts/src/app/app.component.1.ts index d65cb57850..d9b98ef3fd 100644 --- a/public/docs/_examples/attribute-directives/ts/src/app/app.component.1.ts +++ b/public/docs/_examples/attribute-directives/ts/src/app/app.component.1.ts @@ -1,7 +1,6 @@ import { Component } from '@angular/core'; @Component({ - moduleId: module.id, selector: 'my-app', templateUrl: './app.component.1.html' }) @@ -9,4 +8,3 @@ import { Component } from '@angular/core'; export class AppComponent { color = 'yellow'; } -// #enddocregion class diff --git a/public/docs/_examples/attribute-directives/ts/src/app/app.component.html b/public/docs/_examples/attribute-directives/ts/src/app/app.component.html index 0ef41b925d..3adb52bc1e 100644 --- a/public/docs/_examples/attribute-directives/ts/src/app/app.component.html +++ b/public/docs/_examples/attribute-directives/ts/src/app/app.component.html @@ -1,5 +1,4 @@ - - +Highlight me!
- - +Highlight me too!
- - +Mouse over the following lines to see fixed highlights
diff --git a/public/docs/_examples/attribute-directives/ts/src/app/app.component.ts b/public/docs/_examples/attribute-directives/ts/src/app/app.component.ts index a88e8e49a3..693918d8d6 100644 --- a/public/docs/_examples/attribute-directives/ts/src/app/app.component.ts +++ b/public/docs/_examples/attribute-directives/ts/src/app/app.component.ts @@ -2,7 +2,6 @@ import { Component } from '@angular/core'; @Component({ - moduleId: module.id, selector: 'my-app', templateUrl: './app.component.html' }) @@ -10,5 +9,3 @@ import { Component } from '@angular/core'; export class AppComponent { color: string; } -// #enddocregion class -// #enddocregion diff --git a/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.2.ts b/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.2.ts index 156fabaaa8..4696132f64 100644 --- a/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.2.ts +++ b/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.2.ts @@ -10,17 +10,6 @@ export class HighlightDirective { // #docregion ctor constructor(private el: ElementRef) { } // #enddocregion ctor - // #enddocregion - - // #docregion color - @Input() highlightColor: string; - // #enddocregion color - - // #docregion color-2 - @Input() myHighlight: string; - // #enddocregion color-2 - - // #docregion // #docregion mouse-methods, host @HostListener('mouseenter') onMouseEnter() { @@ -39,7 +28,14 @@ export class HighlightDirective { private highlight(color: string) { this.el.nativeElement.style.backgroundColor = color; } - // #enddocregion mouse-methods + // #enddocregion mouse-methods, + // #docregion color + @Input() highlightColor: string; + // #enddocregion color + + // #docregion color-2 + @Input() myHighlight: string; + // #enddocregion color-2 } -// #enddocregion + diff --git a/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.ts b/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.ts index 68c9f0cc73..97b1497013 100644 --- a/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.ts +++ b/public/docs/_examples/attribute-directives/ts/src/app/highlight.directive.ts @@ -1,7 +1,5 @@ /* tslint:disable:member-ordering */ -// #docplaster -// #docregion -// #docregion imports +// #docregion imports, import { Directive, ElementRef, HostListener, Input } from '@angular/core'; // #enddocregion imports diff --git a/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/app.component.ts b/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/app.component.ts index 4d708509a1..e1b71e37dc 100644 --- a/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/app.component.ts +++ b/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/app.component.ts @@ -4,7 +4,6 @@ import { MovieService } from './movie.service'; import { IMovie } from './movie'; @Component({ - moduleId: module.id, selector: 'my-app', templateUrl: './app.component.html', styleUrls: [ './app.component.css' ], diff --git a/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/movie-list.component.ts b/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/movie-list.component.ts index 2481710bb1..b0b57f018c 100644 --- a/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/movie-list.component.ts +++ b/public/docs/_examples/cb-ajs-quick-reference/ts/src/app/movie-list.component.ts @@ -8,10 +8,8 @@ import { MovieService } from './movie.service'; // #docregion component @Component({ - moduleId: module.id, selector: 'movie-list', templateUrl: './movie-list.component.html', -// #enddocregion component // #docregion style-url styleUrls: [ './movie-list.component.css' ], // #enddocregion style-url diff --git a/public/docs/_examples/cb-aot-compiler/e2e-spec.ts b/public/docs/_examples/cb-aot-compiler/e2e-spec.ts index ab91490604..4744f06e50 100644 --- a/public/docs/_examples/cb-aot-compiler/e2e-spec.ts +++ b/public/docs/_examples/cb-aot-compiler/e2e-spec.ts @@ -9,7 +9,7 @@ describe('AOT Compilation', function () { browser.get(''); }); - it('should load page and click button', function (done) { + it('should load page and click button', function (done: any) { let headingSelector = element.all(by.css('h1')).get(0); expect(headingSelector.getText()).toEqual('Hello Angular'); diff --git a/public/docs/_examples/cb-aot-compiler/ts/rollup-config.js b/public/docs/_examples/cb-aot-compiler/ts/rollup-config.js index 0c9088fe54..1cd25515ba 100644 --- a/public/docs/_examples/cb-aot-compiler/ts/rollup-config.js +++ b/public/docs/_examples/cb-aot-compiler/ts/rollup-config.js @@ -15,8 +15,6 @@ export default { // should intercept ... but doesn't in some rollup versions if ( warning.code === 'THIS_IS_UNDEFINED' ) { return; } - // intercepts in some rollup versions - if ( warning.indexOf("The 'this' keyword is equivalent to 'undefined'") > -1 ) { return; } // console.warn everything else console.warn( warning.message ); diff --git a/public/docs/_examples/cb-aot-compiler/ts/src/app/app.component.ts b/public/docs/_examples/cb-aot-compiler/ts/src/app/app.component.ts index 680c07d682..879f7f663c 100644 --- a/public/docs/_examples/cb-aot-compiler/ts/src/app/app.component.ts +++ b/public/docs/_examples/cb-aot-compiler/ts/src/app/app.component.ts @@ -2,7 +2,6 @@ import { Component } from '@angular/core'; @Component({ - moduleId: module.id, selector: 'my-app', templateUrl: './app.component.html' }) diff --git a/public/docs/_examples/cb-aot-compiler/ts/src/index.html b/public/docs/_examples/cb-aot-compiler/ts/src/index.html index 9016f3cbe1..09e5f0de0e 100644 --- a/public/docs/_examples/cb-aot-compiler/ts/src/index.html +++ b/public/docs/_examples/cb-aot-compiler/ts/src/index.html @@ -10,9 +10,6 @@ - - -Logs:
+Logs:
-+ | Load Time | +Time Allocation | +
---|---|---|
JIT | +1.01s | ++ |
AOT | +0.29s | ++ |
Universal | +0.04s | ++ |
+ | Load Time | +Time Allocation | +
---|---|---|
JIT | +37.3s | ++ |
AOT | +5.5s | ++ |
Universal | +0.4s | ++ |