Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(62)

Side by Side Diff: utils/apidoc/mdn/extract.dart

Issue 12473003: Remove deprecated StringBuffer.add, addAll and addCharCode. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 import 'dart:html'; 1 import 'dart:html';
2 import 'dart:json' as json; 2 import 'dart:json' as json;
3 3
4 // Workaround for HTML lib missing feature. 4 // Workaround for HTML lib missing feature.
5 Range newRange() { 5 Range newRange() {
6 return document.createRange(); 6 return document.createRange();
7 } 7 }
8 8
9 // Temporary range object to optimize performance computing client rects 9 // Temporary range object to optimize performance computing client rects
10 // from text nodes. 10 // from text nodes.
(...skipping 593 matching lines...) Expand 10 before | Expand all | Expand 10 after
604 // Strip tags we don't want 604 // Strip tags we don't want
605 for (Element e in fragment.queryAll("script, object, style")) { 605 for (Element e in fragment.queryAll("script, object, style")) {
606 e.remove(); 606 e.remove();
607 } 607 }
608 608
609 // Extract idl 609 // Extract idl
610 final idl = new StringBuffer(); 610 final idl = new StringBuffer();
611 if (prop != null && prop.length > 0) { 611 if (prop != null && prop.length > 0) {
612 // Only expect properties to have HTML. 612 // Only expect properties to have HTML.
613 for(Element e in fragment.queryAll(IDL_SELECTOR)) { 613 for(Element e in fragment.queryAll(IDL_SELECTOR)) {
614 idl.add(e.outerHTML); 614 idl.write(e.outerHTML);
615 e.remove(); 615 e.remove();
616 } 616 }
617 // TODO(jacobr) this is a very basic regex to see if text looks like IDL 617 // TODO(jacobr) this is a very basic regex to see if text looks like IDL
618 RegExp likelyIdl = new RegExp(" $prop\\w*\\("); 618 RegExp likelyIdl = new RegExp(" $prop\\w*\\(");
619 619
620 for (Element e in fragment.queryAll("pre")) { 620 for (Element e in fragment.queryAll("pre")) {
621 // Check if it looks like idl... 621 // Check if it looks like idl...
622 String txt = e.text.trim(); 622 String txt = e.text.trim();
623 if (likelyIdl.hasMatch(txt) && txt.contains("\n") && txt.contains(")")) { 623 if (likelyIdl.hasMatch(txt) && txt.contains("\n") && txt.contains(")")) {
624 idl.add(e.outerHTML); 624 idl.write(e.outerHTML);
625 e.remove(); 625 e.remove();
626 } 626 }
627 } 627 }
628 } 628 }
629 return new SectionParseResult(genCleanHtml(fragment), url, idl.toString()); 629 return new SectionParseResult(genCleanHtml(fragment), url, idl.toString());
630 } 630 }
631 631
632 /** 632 /**
633 * Find the best child element of [root] that appears to be an API definition 633 * Find the best child element of [root] that appears to be an API definition
634 * for [prop]. [allText] is a list of all text nodes under root computed by 634 * for [prop]. [allText] is a list of all text nodes under root computed by
(...skipping 631 matching lines...) Expand 10 before | Expand all | Expand 10 after
1266 } 1266 }
1267 if (exampleHtml.length > 0) { 1267 if (exampleHtml.length > 0) {
1268 dbEntry['examples'] = exampleHtml; 1268 dbEntry['examples'] = exampleHtml;
1269 } 1269 }
1270 1270
1271 // Extract the class summary. 1271 // Extract the class summary.
1272 // Basically everything left over after the #Summary or #Description tag is 1272 // Basically everything left over after the #Summary or #Description tag is
1273 // safe to include in the summary. 1273 // safe to include in the summary.
1274 StringBuffer summary = new StringBuffer(); 1274 StringBuffer summary = new StringBuffer();
1275 for (Element e in root.queryAll("#Summary, #Description")) { 1275 for (Element e in root.queryAll("#Summary, #Description")) {
1276 summary.add(filteredHtml(root, e, null, removeHeaders).html); 1276 summary.write(filteredHtml(root, e, null, removeHeaders).html);
1277 } 1277 }
1278 1278
1279 if (summary.length == 0) { 1279 if (summary.length == 0) {
1280 // Remove the "Gecko DOM Reference text" 1280 // Remove the "Gecko DOM Reference text"
1281 Element ref = root.query(".lang.lang-en"); 1281 Element ref = root.query(".lang.lang-en");
1282 if (ref != null) { 1282 if (ref != null) {
1283 ref = ref.parent; 1283 ref = ref.parent;
1284 String refText = ref.text.trim(); 1284 String refText = ref.text.trim();
1285 if (refText == "Gecko DOM Reference" || 1285 if (refText == "Gecko DOM Reference" ||
1286 refText == "« Gecko DOM Reference") { 1286 refText == "« Gecko DOM Reference") {
1287 ref.remove(); 1287 ref.remove();
1288 } 1288 }
1289 } 1289 }
1290 // Risky... this might add stuff we shouldn't. 1290 // Risky... this might add stuff we shouldn't.
1291 summary.add(filteredHtml(root, root, null, removeHeaders).html); 1291 summary.write(filteredHtml(root, root, null, removeHeaders).html);
1292 } 1292 }
1293 1293
1294 if (summary.length > 0) { 1294 if (summary.length > 0) {
1295 dbEntry['summary'] = summary.toString(); 1295 dbEntry['summary'] = summary.toString();
1296 } 1296 }
1297 1297
1298 // Inject CSS to aid debugging in the browser. 1298 // Inject CSS to aid debugging in the browser.
1299 // We could avoid doing this if we know we are not running in a browser.. 1299 // We could avoid doing this if we know we are not running in a browser..
1300 document.head.nodes.add(new Element.html(DEBUG_CSS)); 1300 document.head.nodes.add(new Element.html(DEBUG_CSS));
1301 1301
1302 onEnd(); 1302 onEnd();
1303 } 1303 }
1304 1304
1305 void main() { 1305 void main() {
1306 window.on.load.add(documentLoaded); 1306 window.on.load.add(documentLoaded);
1307 } 1307 }
1308 1308
1309 void documentLoaded(event) { 1309 void documentLoaded(event) {
1310 // Load the database of expected methods and properties with an HttpRequest. 1310 // Load the database of expected methods and properties with an HttpRequest.
1311 new HttpRequest.get('${window.location}.json', (req) { 1311 new HttpRequest.get('${window.location}.json', (req) {
1312 data = json.parse(req.responseText); 1312 data = json.parse(req.responseText);
1313 dbEntry = {'members': [], 'srcUrl': pageUrl}; 1313 dbEntry = {'members': [], 'srcUrl': pageUrl};
1314 run(); 1314 run();
1315 }); 1315 });
1316 } 1316 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698