- From: Frederick Hirsch via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 14 Jul 2011 15:56:43 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2009/dap/ReSpec.js/js In directory hutz:/tmp/cvs-serv27453/js Modified Files: respec.js Log Message: revision of best practices processing to (1) autodetect likely need for best practices processing, (2) generate summary of best practices if section with class id bp-summary is present Index: respec.js =================================================================== RCS file: /sources/public/2009/dap/ReSpec.js/js/respec.js,v retrieving revision 1.154 retrieving revision 1.155 diff -u -d -r1.154 -r1.155 --- respec.js 4 Jul 2011 10:14:16 -0000 1.154 +++ respec.js 14 Jul 2011 15:56:41 -0000 1.155 @@ -194,8 +194,18 @@ this.webIDL(); this.examples(); + // only process best practices if element with class + // practicelab found, do not slow down non best-practice + // docs. + // doBestPractices must be called before makeTOC, fjh + // this might not work with old browsers like IE 8 + + var bpnode = document.getElementsByClassName("practicelab"); + if(bpnode.length > 0) this.doBestPractices(); + this.informative(); this.fixHeaders(); + this.makeTOC(); this.idHeaders(); @@ -205,8 +215,6 @@ // if (this.doMicroData) this.makeMicroData(); if (this.doRDFa) this.makeRDFa(); - if( this.practiceNum) this.doBestPractices(); // do not - // slow down those who do not need it , fjh this.makeSectionRefs(); // allow references to sections using name for text, fjh this.unHTML5(); this.removeRespec(); @@ -1349,12 +1357,38 @@ doBestPractices: function () { this.practiceNum = 1; var spans = document.querySelectorAll("span.practicelab"); + var contents = "<h2>Best Practices Summary</h2><ul>" + // scan all the best practices to number them and add handle + // at same time generate summary section contents if section + // is provided in source, using links if possible + // + // probably not the most efficient here but only used rarely, only + // for best practices documents that request it by putting + // practiceNum in config for (var i = 0; i < spans.length; i++) { var span = spans[i]; var label = span.innerHTML; - span.innerHTML = "Best Practice " + this.practiceNum + ": " + label; + var ref = span.getAttribute("id"); + var handle = "Best Practice " + this.practiceNum; + var content = ": " + label; + var item = handle + content; + if(!ref) { + contents += "<li>" + handle + content + "</li>"; + } else { + contents += "<li><a href='#" + ref + "'>" + handle + + "</a>" + content + "</li>"; + } + span.innerHTML = item; this.practiceNum++; } + contents += "</ul>"; + + var sec = document.getElementById("bp-summary"); + if(!sec) { +// alert("no bp-summary section"); + return; + } + sec.innerHTML = contents; }, // <link href="section id" class="sectionRef" />
Received on Thursday, 14 July 2011 15:56:44 UTC