| Index: packages/polymer/tool/create_message_details_page.dart
|
| diff --git a/packages/polymer/tool/create_message_details_page.dart b/packages/polymer/tool/create_message_details_page.dart
|
| deleted file mode 100644
|
| index d3db18616c0dfe347cec3494cc1e2cac965f1141..0000000000000000000000000000000000000000
|
| --- a/packages/polymer/tool/create_message_details_page.dart
|
| +++ /dev/null
|
| @@ -1,286 +0,0 @@
|
| -// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
|
| -// for details. All rights reserved. Use of this source code is governed by a
|
| -// BSD-style license that can be found in the LICENSE file.
|
| -
|
| -/// Simple script to generate a page summarizing all error messages produces by
|
| -/// the polymer compiler code. The generated code will be placed directly under
|
| -/// the `polymer/lib/src/generated` folder. This script should be invoked from
|
| -/// the root of the polymer package either by doing:
|
| -///
|
| -/// dart tool/create_message_details_page.dart
|
| -///
|
| -/// or
|
| -///
|
| -/// pub run tool/create_message_details_page
|
| -library polymer.tool.create_message_details_page;
|
| -
|
| -import 'dart:io';
|
| -import 'dart:mirrors';
|
| -
|
| -import 'package:code_transformers/messages/messages.dart';
|
| -import 'package:code_transformers/src/messages.dart' as m1; // used via mirrors
|
| -import 'package:observe/src/messages.dart' as m2; // used via mirrors
|
| -import 'package:polymer/src/build/messages.dart' as m3; // used via mirrors
|
| -import 'package:web_components/build/messages.dart' as m4; // used via mirrors
|
| -import 'package:markdown/markdown.dart';
|
| -import 'package:path/path.dart' as path;
|
| -import 'package:args/args.dart';
|
| -
|
| -main(args) {
|
| - var options = _parseOptions(args);
|
| - var seen = {};
|
| - var templates = [];
|
| - _getMessagesFrom(#polymer.src.build.messages, seen, templates);
|
| - _getMessagesFrom(#code_transformers.src.messages, seen, templates);
|
| - _getMessagesFrom(#observe.src.messages, seen, templates);
|
| - _getMessagesFrom(#web_components.build.messages, seen, templates);
|
| -
|
| - templates.sort((a, b) => a.id.compareTo(b.id));
|
| - var sb = new StringBuffer();
|
| - bool forSite = options['site'];
|
| - var out = path.join(path.current, options['out']);
|
| - var ext = forSite ? '.markdown' : '.html';
|
| - if (!out.endsWith(ext)) {
|
| - print('error: expected to have a $ext extension.');
|
| - exit(1);
|
| - }
|
| -
|
| - sb.write(forSite ? _SITE_HEADER : _LOCAL_HEADER);
|
| -
|
| - var lastPackage = '';
|
| - for (var t in templates) {
|
| - if (lastPackage != t.id.package) {
|
| - lastPackage = t.id.package;
|
| - var sectionTitle = '## Messages from package `$lastPackage`\n\n----\n\n';
|
| - sb.write(forSite ? sectionTitle : markdownToHtml(sectionTitle));
|
| - }
|
| - _generateMessage(t, forSite, sb);
|
| - }
|
| - sb.write(forSite ? '' : _LOCAL_FOOTER);
|
| - new File(out).writeAsStringSync(sb.toString());
|
| - print('updated: ${options["out"]}');
|
| -}
|
| -
|
| -final _mirrors = currentMirrorSystem();
|
| -
|
| -_getMessagesFrom(Symbol libName, Map seen, List templates) {
|
| - var lib = _mirrors.findLibrary(libName);
|
| - lib.declarations.forEach((symbol, decl) {
|
| - if (decl is! VariableMirror) return;
|
| - var template = lib.getField(symbol).reflectee;
|
| - var name = MirrorSystem.getName(symbol);
|
| - if (template is! MessageTemplate) return;
|
| - var id = template.id;
|
| - if (seen.containsKey(id)) {
|
| - print('error: duplicate id `$id`. '
|
| - 'Currently set for both `$name` and `${seen[id]}`.');
|
| - }
|
| - seen[id] = name;
|
| - templates.add(template);
|
| - });
|
| -}
|
| -
|
| -_generateMessage(MessageTemplate template, bool forSite, StringBuffer sb) {
|
| - var details =
|
| - template.details == null ? 'No details available' : template.details;
|
| - if (forSite) details = '{% raw %}$details{% endraw %}';
|
| - var id = template.id;
|
| - var hashTag = '${id.package}_${id.id}';
|
| - var title = '### ${template.description} [#${id.id}](#$hashTag)';
|
| - var body = '\n$details\n\n----\n\n';
|
| - // We add the anchor inside the <h3> title, otherwise the link doesn't work.
|
| - if (forSite) {
|
| - sb
|
| - ..write(title)
|
| - ..write('\n{: #$hashTag}\n')
|
| - ..write(body);
|
| - } else {
|
| - var html = markdownToHtml('$title$body').replaceFirst('<hr', '</div><hr');
|
| - sb.write('\n\n<div id="$hashTag">$html');
|
| - }
|
| -}
|
| -
|
| -_parseOptions(args) {
|
| - var parser = new ArgParser(allowTrailingOptions: true)
|
| - ..addOption('out',
|
| - abbr: 'o',
|
| - defaultsTo: 'lib/src/build/generated/messages.html',
|
| - help: 'the output file path')
|
| - ..addFlag('site',
|
| - abbr: 's',
|
| - negatable: false,
|
| - help: 'generate contents for the dartlang.org site')
|
| - ..addFlag('help', abbr: 'h', negatable: false);
|
| -
|
| - var options = parser.parse(args);
|
| - if (options['help']) {
|
| - var command = Platform.script.path;
|
| - var relPath = path.relative(command, from: path.current);
|
| - if (!relPath.startsWith('../')) command = relPath;
|
| - print('usage: dart $command [-o path_to_output_file] [-s]');
|
| - print(parser.getUsage());
|
| - exit(0);
|
| - }
|
| - return options;
|
| -}
|
| -
|
| -const _SITE_HEADER = '''
|
| ----
|
| -# WARNING: GENERATED FILE. DO NOT EDIT.
|
| -#
|
| -# This file was generated automatically from the polymer package.
|
| -# To regenerate this file, from the top directory of the polymer package run:
|
| -#
|
| -# dart tool/create_message_details_page.dart -s -o path_to_this_file
|
| -layout: default
|
| -title: "Error Messages"
|
| -subsite: "Polymer.dart"
|
| -description: "Details about error messages from polymer and related packages."
|
| ----
|
| -
|
| -{% include breadcrumbs.html %}
|
| -
|
| -# {{ page.title }}
|
| -
|
| -<style>
|
| -h3 > a {
|
| - display: none;
|
| -}
|
| -
|
| -h3:hover > a {
|
| - display: inline;
|
| -}
|
| -
|
| -</style>
|
| -
|
| -
|
| -This page contains a list of error messages produced during `pub build` and `pub
|
| -serve` by transformers in polymer and its related packages. You can find here
|
| -additional details that can often help you figure out how to fix the underlying
|
| -problem.
|
| -
|
| -
|
| -''';
|
| -
|
| -const _LOCAL_HEADER = '''
|
| -<!doctype html>
|
| -<!--
|
| - This file is autogenerated with polymer/tool/create_message_details_page.dart
|
| --->
|
| -<html>
|
| -<style>
|
| -@font-face {
|
| - font-family: 'Montserrat';
|
| - font-style: normal;
|
| - font-weight: 400;
|
| - src: url(https://themes.googleusercontent.com/static/fonts/montserrat/v4/zhcz-_WihjSQC0oHJ9TCYL3hpw3pgy2gAi-Ip7WPMi0.woff) format('woff');
|
| -}
|
| -@font-face {
|
| - font-family: 'Montserrat';
|
| - font-style: normal;
|
| - font-weight: 700;
|
| - src: url(https://themes.googleusercontent.com/static/fonts/montserrat/v4/IQHow_FEYlDC4Gzy_m8fcnbFhgvWbfSbdVg11QabG8w.woff) format('woff');
|
| -}
|
| -@font-face {
|
| - font-family: 'Roboto';
|
| - font-style: normal;
|
| - font-weight: 300;
|
| - src: url(https://themes.googleusercontent.com/static/fonts/roboto/v10/Hgo13k-tfSpn0qi1SFdUfbO3LdcAZYWl9Si6vvxL-qU.woff) format('woff');
|
| -}
|
| -@font-face {
|
| - font-family: 'Roboto';
|
| - font-style: normal;
|
| - font-weight: 400;
|
| - src: url(https://themes.googleusercontent.com/static/fonts/roboto/v10/CrYjSnGjrRCn0pd9VQsnFOvvDin1pK8aKteLpeZ5c0A.woff) format('woff');
|
| -}
|
| -
|
| -body {
|
| - width: 80vw;
|
| - margin: 20px;
|
| - font-family: Roboto, sans-serif;
|
| - background-color: #f0f0f0;
|
| -}
|
| -
|
| -h2 {
|
| - font-family: Montserrat, sans-serif;
|
| - box-sizing: border-box;
|
| - color: rgb(72, 72, 72);
|
| - display: block;
|
| - font-style: normal;
|
| - font-variant: normal;
|
| - font-weight: normal;
|
| -}
|
| -
|
| -div:target {
|
| - background-color: #fff;
|
| - border: 1px solid #888;
|
| - border-radius: 5px;
|
| - padding: 0px 10px 2px 10px;
|
| - box-shadow: 7px 7px 5px #888888;
|
| - margin-bottom: 15px;
|
| -}
|
| -
|
| -
|
| -h3 {
|
| - font-family: Montserrat, sans-serif;
|
| - box-sizing: border-box;
|
| - color: rgb(72, 72, 72);
|
| - display: block;
|
| - font-style: normal;
|
| - font-variant: normal;
|
| - font-weight: normal;
|
| -}
|
| -
|
| -div:target > h3 {
|
| - font-weight: bold;
|
| -}
|
| -
|
| -pre {
|
| - display: block;
|
| - padding: 9.5px;
|
| - margin: 0 0 10px;
|
| - color: #333;
|
| - word-break: break-all;
|
| - word-wrap: break-word;
|
| - background-color: #f5f5f5;
|
| - border: 1px solid #ccc;
|
| - border-radius: 4px;
|
| -}
|
| -
|
| -code {
|
| - font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
|
| - box-sizing: border-box;
|
| - padding: 0;
|
| - font-size: 90%;
|
| - color: #0084c5;
|
| - white-space: nowrap;
|
| - border-radius: 4px;
|
| - background-color: #f9f2f4;
|
| -}
|
| -
|
| -pre code {
|
| - white-space: inherit;
|
| - color: inherit;
|
| - background-color: inherit;
|
| -}
|
| -
|
| -a {
|
| - color: rgb(42, 100, 150);
|
| -}
|
| -
|
| -h3 > a {
|
| - display: none;
|
| - font-size: 0.8em;
|
| -}
|
| -
|
| -h3:hover > a {
|
| - display: inline;
|
| -}
|
| -</style>
|
| -<body>
|
| -''';
|
| -
|
| -const _LOCAL_FOOTER = '''
|
| -</body>
|
| -</html>
|
| -''';
|
|
|