diff --git a/CHANGELOG.md b/CHANGELOG.md index e324010e..b46fabd2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ ## 1.0.21 -- Prefer using `analysis_options.yaml` files over `.analysis_options`. -- Added <base href="/"> to index.html in `web-angular` +- Changed the names of all `.analysis_options` files to `analysis_options.yaml`. +- In an effort to forestall routing issues during development, added code in + `web-angular*/web/index.html` to generate a base href. +- Renamed `web-angular-quickstart` to `web-angular-simple`. ## 1.0.20 - Updated `web-angular` to use `angular2_components` and to follow diff --git a/README.md b/README.md index 2f20ad79..c4334c81 100644 --- a/README.md +++ b/README.md @@ -17,8 +17,8 @@ Kit and Yeoman. * `console-simple` - A simple command-line application. * `package-simple` - A starting point for Dart libraries or applications. * `server-shelf` - A web server built using the shelf package. -* `web-angular` - A web app built using the latest version of Angular. -* `web-angular-quickstart` - A minimalist example app used in docs. +* `web-angular` - A web app built using the latest stable version of Angular. +* `web-angular-simple` - A minimalist example app used in docs. * `web-simple` - An absolute bare-bones web app. ## Installation diff --git a/lib/generators/web_angular.dart b/lib/generators/web_angular.dart index 7f1ba46d..56a4a5a4 100644 --- a/lib/generators/web_angular.dart +++ b/lib/generators/web_angular.dart @@ -12,7 +12,7 @@ import 'web_angular_data.dart'; class WebAngularGenerator extends DefaultGenerator { WebAngularGenerator() : super('web-angular', 'Angular Web Application', - 'A web app built using the latest version of Angular.', + 'A web app built using the latest stable version of Angular.', categories: const ['dart', 'web']) { for (TemplateFile file in decodeConcatenatedData(data)) { addTemplateFile(file); diff --git a/lib/generators/web_angular_data.dart b/lib/generators/web_angular_data.dart index 446676e4..b44ade6b 100644 --- a/lib/generators/web_angular_data.dart +++ b/lib/generators/web_angular_data.dart @@ -90,20 +90,26 @@ czoKICAgIC0gJ3BhY2thZ2U6YW5ndWxhcjIvY29tbW9uLmRhcnQjQ09NTU9OX1BJUEVTJwogICAg ZW50cnlfcG9pbnRzOiB3ZWIvbWFpbi5kYXJ0Ci0gZGFydF90b19qc19zY3JpcHRfcmV3cml0ZXIK""", "web/index.html", "text", - """PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPGJhc2UgaHJlZj0iLyI+CiAgICA8 -IS0tIEZvciB0ZXN0aW5nIGluIFdlYlN0b3JtIHVzZTogLS0+CiAgICA8IS0tIGJhc2UgaHJlZj0i -L2RhcnQvd2ViLyIgLS0+CiAgICA8dGl0bGU+X19wcm9qZWN0TmFtZV9fPC90aXRsZT4KICAgIDxt -ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3 -aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+CgogICAgPHNjcmlwdCBkZWZlciBz -cmM9Im1haW4uZGFydCIgdHlwZT0iYXBwbGljYXRpb24vZGFydCI+PC9zY3JpcHQ+CiAgICA8c2Ny -aXB0IGRlZmVyIHNyYz0icGFja2FnZXMvYnJvd3Nlci9kYXJ0LmpzIj48L3NjcmlwdD4KICAgIDxs -aW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Imh0dHBzOi8vZm9udHMu -Z29vZ2xlYXBpcy5jb20vaWNvbj9mYW1pbHk9TWF0ZXJpYWwrSWNvbnMiPgogICAgPHN0eWxlPgog -ICAgICBib2R5IHsKICAgICAgICBtYXgtd2lkdGg6IDYwMHB4OwogICAgICAgIG1hcmdpbjogMCBh -dXRvOwogICAgICAgIHBhZGRpbmc6IDV2dzsKICAgICAgICBmb250LWZhbWlseTogUm9ib3RvLCBI -ZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOwogICAgICB9CiAgICA8L3N0eWxlPgogIDwvaGVh -ZD4KICA8Ym9keT4KICAgIDxteS1hcHA+TG9hZGluZy4uLjwvbXktYXBwPgogIDwvYm9keT4KPC9o -dG1sPgo=""", + """PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHNjcmlwdD4KICAgICAgICAvLyBX +QVJOSU5HOiBETyBOT1Qgc2V0IHRoZSA8YmFzZSBocmVmPiBsaWtlIHRoaXMgaW4gcHJvZHVjdGlv +biEKICAgICAgICAvLyBEZXRhaWxzOiBodHRwczovL3dlYmRldi5kYXJ0bGFuZy5vcmcvYW5ndWxh +ci9ndWlkZS9yb3V0ZXIKICAgICAgICAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAvLyBBcHAg +YmVpbmcgc2VydmVkIG91dCBvZiB3ZWIgZm9sZGVyIChsaWtlIFdlYlN0b3JtIGRvZXMpPwogICAg +ICAgICAgICB2YXIgbWF0Y2ggPSBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCgvXlwv +W19cd10rXC93ZWJcLy8pOwogICAgICAgICAgICB2YXIgaHJlZiA9IG1hdGNoID8gbWF0Y2hbMF0g +OiAnLyc7CiAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCc8YmFzZSBocmVmPSInICsgaHJlZiAr +ICciIC8+Jyk7CiAgICAgICAgfSgpKTsKICAgIDwvc2NyaXB0PgoKICAgIDx0aXRsZT5fX3Byb2pl +Y3ROYW1lX188L3RpdGxlPgogICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgogICAgPG1ldGEgbmFt +ZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0x +Ij4KCiAgICA8c2NyaXB0IGRlZmVyIHNyYz0ibWFpbi5kYXJ0IiB0eXBlPSJhcHBsaWNhdGlvbi9k +YXJ0Ij48L3NjcmlwdD4KICAgIDxzY3JpcHQgZGVmZXIgc3JjPSJwYWNrYWdlcy9icm93c2VyL2Rh +cnQuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2Nz +cyIgaHJlZj0iaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9pY29uP2ZhbWlseT1NYXRlcmlh +bCtJY29ucyI+CiAgICA8c3R5bGU+CiAgICAgIGJvZHkgewogICAgICAgIG1heC13aWR0aDogNjAw +cHg7CiAgICAgICAgbWFyZ2luOiAwIGF1dG87CiAgICAgICAgcGFkZGluZzogNXZ3OwogICAgICAg +IGZvbnQtZmFtaWx5OiBSb2JvdG8sIEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICAg +IH0KICAgIDwvc3R5bGU+CiAgPC9oZWFkPgogIDxib2R5PgogICAgPG15LWFwcD5Mb2FkaW5nLi4u +PC9teS1hcHA+CiAgPC9ib2R5Pgo8L2h0bWw+Cg==""", "web/main.dart", "text", """Ly8gQ29weXJpZ2h0IChjKSBfX3llYXJfXywgX19hdXRob3JfXy4gQWxsIHJpZ2h0cyByZXNlcnZl diff --git a/lib/generators/web_angular_quickstart.dart b/lib/generators/web_angular_simple.dart similarity index 70% rename from lib/generators/web_angular_quickstart.dart rename to lib/generators/web_angular_simple.dart index d3ae7584..ef320e56 100644 --- a/lib/generators/web_angular_quickstart.dart +++ b/lib/generators/web_angular_simple.dart @@ -4,14 +4,14 @@ import '../stagehand.dart'; import '../src/common.dart'; -import 'web_angular_quickstart_data.dart'; +import 'web_angular_simple_data.dart'; /** - * The QuickStart example used in AngularDart docs. + * The simple starter example used in AngularDart docs. */ -class WebAngularQuickstartGenerator extends DefaultGenerator { - WebAngularQuickstartGenerator() - : super('web-angular-quickstart', 'Angular QuickStart Example', +class WebAngularSimpleGenerator extends DefaultGenerator { + WebAngularSimpleGenerator() + : super('web-angular-simple', 'Simple Angular Example', 'A minimalist example app used in docs.', categories: const ['dart', 'web']) { for (TemplateFile file in decodeConcatenatedData(data)) { diff --git a/lib/generators/web_angular_quickstart_data.dart b/lib/generators/web_angular_simple_data.dart similarity index 79% rename from lib/generators/web_angular_quickstart_data.dart rename to lib/generators/web_angular_simple_data.dart index d273b915..dd93ac41 100644 --- a/lib/generators/web_angular_quickstart_data.dart +++ b/lib/generators/web_angular_simple_data.dart @@ -37,14 +37,22 @@ a2FnZTphbmd1bGFyMi9jb21tb24uZGFydCNDT01NT05fUElQRVMnCiAgICBlbnRyeV9wb2ludHM6 IHdlYi9tYWluLmRhcnQKLSBkYXJ0X3RvX2pzX3NjcmlwdF9yZXdyaXRlcgo=""", "web/index.html", "text", - """PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHRpdGxlPkhlbGxvIEFuZ3VsYXI8 -L3RpdGxlPgogICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgogICAgPG1ldGEgbmFtZT0idmlld3Bv -cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xIj4KICAgIDxs -aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0ic3R5bGVzLmNzcyI+CgogICAgPHNjcmlwdCBkZWZl -ciBzcmM9Im1haW4uZGFydCIgdHlwZT0iYXBwbGljYXRpb24vZGFydCI+PC9zY3JpcHQ+CiAgICA8 -c2NyaXB0IGRlZmVyIHNyYz0icGFja2FnZXMvYnJvd3Nlci9kYXJ0LmpzIj48L3NjcmlwdD4KICA8 -L2hlYWQ+CiAgPGJvZHk+CiAgICA8bXktYXBwPkxvYWRpbmcgQXBwQ29tcG9uZW50IGNvbnRlbnQg -aGVyZSAuLi48L215LWFwcD4KICA8L2JvZHk+CjwvaHRtbD4K""", + """PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxoZWFkPgogICAgPHNjcmlwdD4KICAgICAgICAvLyBX +QVJOSU5HOiBETyBOT1Qgc2V0IHRoZSA8YmFzZSBocmVmPiBsaWtlIHRoaXMgaW4gcHJvZHVjdGlv +biEKICAgICAgICAvLyBEZXRhaWxzOiBodHRwczovL3dlYmRldi5kYXJ0bGFuZy5vcmcvYW5ndWxh +ci9ndWlkZS9yb3V0ZXIKICAgICAgICAoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAvLyBBcHAg +YmVpbmcgc2VydmVkIG91dCBvZiB3ZWIgZm9sZGVyIChsaWtlIFdlYlN0b3JtIGRvZXMpPwogICAg +ICAgICAgICB2YXIgbWF0Y2ggPSBkb2N1bWVudC5sb2NhdGlvbi5wYXRobmFtZS5tYXRjaCgvXlwv +W19cd10rXC93ZWJcLy8pOwogICAgICAgICAgICB2YXIgaHJlZiA9IG1hdGNoID8gbWF0Y2hbMF0g +OiAnLyc7CiAgICAgICAgICAgIGRvY3VtZW50LndyaXRlKCc8YmFzZSBocmVmPSInICsgaHJlZiAr +ICciIC8+Jyk7CiAgICAgICAgfSgpKTsKICAgIDwvc2NyaXB0PgoKICAgIDx0aXRsZT5IZWxsbyBB +bmd1bGFyPC90aXRsZT4KICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KICAgIDxtZXRhIG5hbWU9 +InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgsIGluaXRpYWwtc2NhbGU9MSI+ +CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJzdHlsZXMu +Y3NzIj4KCiAgICA8c2NyaXB0IGRlZmVyIHNyYz0ibWFpbi5kYXJ0IiB0eXBlPSJhcHBsaWNhdGlv +bi9kYXJ0Ij48L3NjcmlwdD4KICAgIDxzY3JpcHQgZGVmZXIgc3JjPSJwYWNrYWdlcy9icm93c2Vy +L2RhcnQuanMiPjwvc2NyaXB0PgogIDwvaGVhZD4KICA8Ym9keT4KICAgIDxteS1hcHA+TG9hZGlu +Zy4uLjwvbXktYXBwPgogIDwvYm9keT4KPC9odG1sPgo=""", "web/main.dart", "text", """aW1wb3J0ICdwYWNrYWdlOmFuZ3VsYXIyL3BsYXRmb3JtL2Jyb3dzZXIuZGFydCc7CgppbXBvcnQg diff --git a/lib/stagehand.dart b/lib/stagehand.dart index e52cbb8c..9322f12f 100644 --- a/lib/stagehand.dart +++ b/lib/stagehand.dart @@ -30,7 +30,7 @@ import 'generators/console_simple.dart'; import 'generators/package_simple.dart'; import 'generators/server_shelf.dart'; import 'generators/web_angular.dart'; -import 'generators/web_angular_quickstart.dart'; +import 'generators/web_angular_simple.dart'; import 'generators/web_simple.dart'; import 'src/common.dart'; @@ -41,7 +41,7 @@ final List<Generator> generators = [ new PackageSimpleGenerator(), new ServerShelfGenerator(), new WebAngularGenerator(), - new WebAngularQuickstartGenerator(), + new WebAngularSimpleGenerator(), new WebSimpleGenerator() ]..sort(); diff --git a/site/index.html b/site/index.html index a2679ac2..42750450 100644 --- a/site/index.html +++ b/site/index.html @@ -89,8 +89,8 @@ <h1 id="usage">Usage</h1> <li>console-simple - <em>A simple command-line application.</em></li> <li>package-simple - <em>A starting point for Dart libraries or applications.</em></li> <li>server-shelf - <em>A web server built using the shelf package.</em></li> - <li>web-angular - <em>A web app built using the latest version of Angular.</em></li> - <li>web-angular-quickstart - <em>A minimalist example app used in docs.</em></li> + <li>web-angular - <em>A web app built using the latest stable version of Angular.</em></li> + <li>web-angular-simple - <em>A minimalist example app used in docs.</em></li> <li>web-simple - <em>An absolute bare-bones web app.</em></li> </ul> diff --git a/templates/web-angular-quickstart/web/index.html b/templates/web-angular-quickstart/web/index.html deleted file mode 100644 index 43c096d6..00000000 --- a/templates/web-angular-quickstart/web/index.html +++ /dev/null @@ -1,15 +0,0 @@ -<!DOCTYPE html> -<html> - <head> - <title>Hello Angular</title> - <meta charset="UTF-8"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="stylesheet" href="styles.css"> - - <script defer src="main.dart" type="application/dart"></script> - <script defer src="packages/browser/dart.js"></script> - </head> - <body> - <my-app>Loading AppComponent content here ...</my-app> - </body> -</html> diff --git a/templates/web-angular-quickstart/.gitignore b/templates/web-angular-simple/.gitignore similarity index 100% rename from templates/web-angular-quickstart/.gitignore rename to templates/web-angular-simple/.gitignore diff --git a/templates/web-angular-quickstart/analysis_options.yaml b/templates/web-angular-simple/analysis_options.yaml similarity index 100% rename from templates/web-angular-quickstart/analysis_options.yaml rename to templates/web-angular-simple/analysis_options.yaml diff --git a/templates/web-angular-quickstart/lib/app_component.dart b/templates/web-angular-simple/lib/app_component.dart similarity index 100% rename from templates/web-angular-quickstart/lib/app_component.dart rename to templates/web-angular-simple/lib/app_component.dart diff --git a/templates/web-angular-quickstart/pubspec.yaml b/templates/web-angular-simple/pubspec.yaml similarity index 100% rename from templates/web-angular-quickstart/pubspec.yaml rename to templates/web-angular-simple/pubspec.yaml diff --git a/templates/web-angular-simple/web/index.html b/templates/web-angular-simple/web/index.html new file mode 100644 index 00000000..118c7cb6 --- /dev/null +++ b/templates/web-angular-simple/web/index.html @@ -0,0 +1,26 @@ +<!DOCTYPE html> +<html> + <head> + <script> + // WARNING: DO NOT set the <base href> like this in production! + // Details: https://webdev.dartlang.org/angular/guide/router + (function () { + // App being served out of web folder (like WebStorm does)? + var match = document.location.pathname.match(/^\/[_\w]+\/web\//); + var href = match ? match[0] : '/'; + document.write('<base href="' + href + '" />'); + }()); + </script> + + <title>Hello Angular</title> + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width, initial-scale=1"> + <link rel="stylesheet" type="text/css" href="styles.css"> + + <script defer src="main.dart" type="application/dart"></script> + <script defer src="packages/browser/dart.js"></script> + </head> + <body> + <my-app>Loading...</my-app> + </body> +</html> diff --git a/templates/web-angular-quickstart/web/main.dart b/templates/web-angular-simple/web/main.dart similarity index 100% rename from templates/web-angular-quickstart/web/main.dart rename to templates/web-angular-simple/web/main.dart diff --git a/templates/web-angular-quickstart/web/styles.css b/templates/web-angular-simple/web/styles.css similarity index 100% rename from templates/web-angular-quickstart/web/styles.css rename to templates/web-angular-simple/web/styles.css diff --git a/templates/web-angular/web/index.html b/templates/web-angular/web/index.html index 8417be17..5e0bd47f 100644 --- a/templates/web-angular/web/index.html +++ b/templates/web-angular/web/index.html @@ -1,9 +1,17 @@ <!DOCTYPE html> <html> <head> - <base href="/"> - <!-- For testing in WebStorm use: --> - <!-- base href="/dart/web/" --> + <script> + // WARNING: DO NOT set the <base href> like this in production! + // Details: https://webdev.dartlang.org/angular/guide/router + (function () { + // App being served out of web folder (like WebStorm does)? + var match = document.location.pathname.match(/^\/[_\w]+\/web\//); + var href = match ? match[0] : '/'; + document.write('<base href="' + href + '" />'); + }()); + </script> + <title>__projectName__</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1">