Index: utils/apidoc/mdn/prettyPrint.dart |
diff --git a/utils/apidoc/mdn/prettyPrint.dart b/utils/apidoc/mdn/prettyPrint.dart |
deleted file mode 100644 |
index 3e5c12a0eaff14658926f7380aa0db26303546e7..0000000000000000000000000000000000000000 |
--- a/utils/apidoc/mdn/prettyPrint.dart |
+++ /dev/null |
@@ -1,430 +0,0 @@ |
-/** |
- * Creates database.html, examples.html, and obsolete.html. |
- */ |
- |
-library prettyPrint; |
- |
-import 'dart:convert'; |
-import 'dart:io'; |
-import 'util.dart'; |
- |
-String orEmpty(String str) { |
- return str == null ? "" : str; |
-} |
- |
-List<String> sortStringCollection(Iterable<String> collection) { |
- final out = <String>[]; |
- out.addAll(collection); |
- out.sort((String a, String b) => a.compareTo(b)); |
- return out; |
-} |
- |
-int addMissing(StringBuffer sb, String type, Map members) { |
- int total = 0; |
- /** |
- * Add all missing members to the string output and return the number of |
- * missing members. |
- */ |
- void addMissingHelper(String propType) { |
- Map expected = allProps[type][propType]; |
- if (expected != null) { |
- for(final name in sortStringCollection(expected.keys)) { |
- if (!members.containsKey(name)) { |
- total++; |
- sb.write(""" |
- <tr class="missing"> |
- <td>$name</td> |
- <td></td> |
- <td>Could not find documentation for $propType</td> |
- </tr> |
- """); |
- } |
- } |
- } |
- } |
- |
- addMissingHelper('properties'); |
- addMissingHelper('methods'); |
- addMissingHelper('constants'); |
- return total; |
-} |
- |
-void main() { |
- // Database of code documentation. |
- final Map<String, Map> database = JSON.decode( |
- new File('output/database.filtered.json').readAsStringSync()); |
- |
- // Types we have documentation for. |
- matchedTypes = new Set<String>(); |
- int numMissingMethods = 0; |
- int numFoundMethods = 0; |
- int numExtraMethods = 0; |
- int numGen = 0; |
- int numSkipped = 0; |
- final sbSkipped = new StringBuffer(); |
- final sbAllExamples = new StringBuffer(); |
- |
- // Table rows for all obsolete members. |
- final sbObsolete = new StringBuffer(); |
- // Main documentation file. |
- final sb = new StringBuffer(); |
- |
- // TODO(jacobr): switch to using a real template system instead of string |
- // interpolation combined with StringBuffers. |
- sb.write(""" |
-<html> |
- <head> |
- <style type="text/css"> |
- body { |
- background-color: #eee; |
- margin: 10px; |
- font: 14px/1.428 "Lucida Grande", "Lucida Sans Unicode", Lucida, |
- Arial, Helvetica, sans-serif; |
- } |
- |
- .debug { |
- color: #888; |
- } |
- |
- .compatibility, .links, .see-also, .summary, .members, .example { |
- border: 1px solid #CCC; |
- margin: 5px; |
- padding: 5px; |
- } |
- |
- .type, #dart_summary { |
- border: 1px solid; |
- margin-top: 10px; |
- margin-bottom: 10px; |
- padding: 10px; |
- overflow: hidden; |
- background-color: white; |
- -moz-box-shadow: 5px 5px 5px #888; |
- -webkit-box-shadow: 5px 5px 5px #888; |
- box-shadow: 5px 5px 5px #888; |
- } |
- |
- #dart_summary { |
- border: 2px solid #00F; |
- margin: 5px; |
- padding: 5px; |
- } |
- |
- th { |
- background-color:#ccc; |
- font-weight: bold; |
- } |
- |
- tr:nth-child(odd) { |
- background-color:#eee; |
- } |
- tr:nth-child(even) { |
- background-color:#fff; |
- } |
- |
- tr:nth-child(odd).unknown { |
- background-color:#dd0; |
- } |
- tr:nth-child(even).unknown { |
- background-color:#ff0; |
- } |
- |
- tr:nth-child(odd).missing { |
- background-color:#d88; |
- } |
- tr:nth-child(even).missing { |
- background-color:#faa; |
- } |
- |
- li.unknown { |
- color: #f00; |
- } |
- |
- td, th { |
- vertical-align: top; |
- } |
- </style> |
- <title>Doc Dump</title> |
- </head> |
- <body> |
- <h1>Doc Dump</h1> |
- <ul> |
- <li><a href="#dart_summary">Summary</a></li> |
- </li> |
-"""); |
- for (String type in sortStringCollection(database.keys)) { |
- final entry = database[type]; |
- if (entry == null || entry.containsKey('skipped')) { |
- numSkipped++; |
- sbSkipped.write(""" |
- <li id="$type"> |
- <a target="_blank" href="http://www.google.com/cse?cx=017193972565947830266%3Awpqsk6dy6ee&ie=UTF-8&q=$type"> |
- $type |
- </a> |
- -- |
- Title: ${entry == null ? "???" : entry["title"]} -- Issue: |
- ${entry == null ? "???" : entry['cause']} |
- -- |
- <a target="_blank" href="${entry == null ? "???" : entry["srcUrl"]}"> |
- scraped url |
- </a> |
- </li>"""); |
- continue; |
- } |
- matchedTypes.add(type); |
- numGen++; |
- StringBuffer sbSections = new StringBuffer(); |
- StringBuffer sbMembers = new StringBuffer(); |
- StringBuffer sbExamples = new StringBuffer(); |
- if (entry.containsKey("members")) { |
- Map members = getMembersMap(entry); |
- sbMembers.write(""" |
- <div class="members"> |
- <h3><span class="debug">[dart]</span> Members</h3> |
- <table> |
- <tbody> |
- <tr> |
- <th>Name</th><th>Description</th><th>IDL</th><th>Status</th> |
- </tr> |
-"""); |
- for (String name in sortStringCollection(members.keys)) { |
- Map memberData = members[name]; |
- bool unknown = !hasAny(type, name); |
- StringBuffer classes = new StringBuffer(); |
- if (unknown) classes.write("unknown "); |
- if (unknown) { |
- numExtraMethods++; |
- } else { |
- numFoundMethods++; |
- } |
- |
- final sbMember = new StringBuffer(); |
- |
- if (memberData.containsKey('url')) { |
- sbMember.write(""" |
- <td><a href="${memberData['url']}">$name</a></td> |
-"""); |
- } else { |
- sbMember.write(""" |
- <td>$name</td> |
-"""); |
- } |
- sbMember.write(""" |
- <td>${memberData['help']}</td> |
- <td> |
- <pre>${orEmpty(memberData['idl'])}</pre> |
- </td> |
- <td>${memberData['obsolete'] == true ? "Obsolete" : ""}</td> |
-"""); |
- if (memberData['obsolete'] == true) { |
- sbObsolete.write("<tr class='$classes'><td>$type</td>$sbMember</tr>"); |
- } |
- sbMembers.write("<tr class='$classes'>$sbMember</tr>"); |
- } |
- |
- numMissingMethods += addMissing(sbMembers, type, members); |
- |
- sbMembers.write(""" |
- </tbody> |
- </table> |
- </div> |
-"""); |
- } |
- for (String sectionName in |
- ["summary", "constructor", "compatibility", "specification", |
- "seeAlso"]) { |
- if (entry.containsKey(sectionName)) { |
- sbSections.write(""" |
- <div class="$sectionName"> |
- <h3><span class="debug">[Dart]</span> $sectionName</h3> |
- ${entry[sectionName]} |
- </div> |
-"""); |
- } |
- } |
- if (entry.containsKey("links")) { |
- sbSections.write(""" |
- <div class="links"> |
- <h3><span class="debug">[Dart]</span> Specification</h3> |
- <ul> |
-"""); |
- List links = entry["links"]; |
- for (Map link in links) { |
- sbSections.write(""" |
- <li><a href="${link['href']}">${link['title']}</a></li> |
-"""); |
- } |
- sbSections.write(""" |
- </ul> |
- </div> |
-"""); |
- } |
- if (entry.containsKey("examples")) { |
- for (String example in entry["examples"]) { |
- sbExamples.write(""" |
- <div class="example"> |
- <h3><span class="debug">[Dart]</span> Example</h3> |
- $example |
- </div> |
-"""); |
- } |
- } |
- |
- String title = entry['title']; |
- if (title != type) { |
- title = '<h4>Dart type: $type</h4><h2>$title</h2>'; |
- } else { |
- title = '<h2>$title</h2>'; |
- } |
- sb.write(""" |
- <div class='type' id="$type"> |
- <a href='${entry['srcUrl']}'>$title</a> |
-$sbSections |
-$sbExamples |
-$sbMembers |
- </div> |
-"""); |
- if (sbExamples.length > 0) { |
- sbAllExamples.write(""" |
- <div class='type' id="$type"> |
- <a href='${entry['srcUrl']}'>$title</a> |
- $sbExamples |
- </div> |
-"""); |
- } |
- } |
- |
- for (String type in sortStringCollection(allProps.keys)) { |
- if (!matchedTypes.contains(type) && |
- !database.containsKey(type)) { |
- numSkipped++; |
- sbSkipped.write(""" |
- <li class="unknown" id="$type"> |
- <a target="_blank" href="http://www.google.com/cse?cx=017193972565947830266%3Awpqsk6dy6ee&ie=UTF-8&q=$type"> |
- $type |
- </a> |
- </li> |
-"""); |
- } |
- } |
- |
- sb.write(""" |
-<div id="#dart_summary"> |
- <h2>Summary</h2> |
- <h3> |
- Generated docs for $numGen classes out of a possible |
- ${allProps.keys.length} |
- </h3> |
- <h3>Found documentation for $numFoundMethods methods listed in WebKit</h3> |
- <h3> |
- Found documentation for $numExtraMethods methods not listed in WebKit |
- </h3> |
- <h3> |
- Unable to find documentation for $numMissingMethods methods present in |
- WebKit |
- </h3> |
- <h3> |
- Skipped generating documentation for $numSkipped classes due to no |
- plausible matching files |
- </h3> |
- <ul> |
-$sbSkipped |
- </ul> |
-</div> |
-"""); |
- sb.write(""" |
- </body> |
-</html> |
-"""); |
- |
- writeFileSync("output/database.html", sb.toString()); |
- |
- writeFileSync("output/examples.html", """ |
-<html> |
- <head> |
- <style type="text/css"> |
- body { |
- background-color: #eee; |
- margin: 10px; |
- font: 14px/1.428 "Lucida Grande", "Lucida Sans Unicode", Lucida, Arial, |
- Helvetica, sans-serif; |
- } |
- |
- .debug { |
- color: #888; |
- } |
- |
- .example { |
- border: 1px solid #CCC; |
- margin: 5px; |
- padding: 5px; |
- } |
- |
- .type { |
- border: 1px solid; |
- margin-top: 10px; |
- margin-bottom: 10px; |
- padding: 10px; |
- overflow: hidden; |
- background-color: white; |
- -moz-box-shadow: 5px 5px 5px #888; |
- -webkit-box-shadow: 5px 5px 5px #888; |
- box-shadow: 5px 5px 5px #888; |
- } |
- </style> |
- <title>All examples</title> |
- </head> |
- <body> |
- <h1>All examples</h1> |
-$sbAllExamples |
- </body> |
- </html> |
-"""); |
- |
- writeFileSync("output/obsolete.html", """ |
-<html> |
- <head> |
- <style type="text/css"> |
- body { |
- background-color: #eee; |
- margin: 10px; |
- font: 14px/1.428 "Lucida Grande", "Lucida Sans Unicode", Lucida, |
- Arial, Helvetica, sans-serif; |
- } |
- |
- .debug { |
- color: #888; |
- } |
- |
- .type { |
- border: 1px solid; |
- margin-top: 10px; |
- margin-bottom: 10px; |
- padding: 10px; |
- overflow: hidden; |
- background-color: white; |
- -moz-box-shadow: 5px 5px 5px #888; |
- -webkit-box-shadow: 5px 5px 5px #888; |
- box-shadow: 5px 5px 5px #888; |
- } |
- </style> |
- <title>Methods marked as obsolete</title> |
- </head> |
- <body> |
- <h1>Methods marked as obsolete</h1> |
- <table> |
- <tbody> |
- <tr> |
- <th>Type</th> |
- <th>Name</th> |
- <th>Description</th> |
- <th>IDL</th> |
- <th>Status</th> |
- </tr> |
-$sbObsolete |
- </tbody> |
- </table> |
- </body> |
- </html> |
- """); |
-} |