]> Cypherpunks repositories - gostls13.git/commitdiff
godoc: list examples in index
authorAndrew Gerrand <adg@golang.org>
Tue, 14 Feb 2012 03:52:00 +0000 (14:52 +1100)
committerAndrew Gerrand <adg@golang.org>
Tue, 14 Feb 2012 03:52:00 +0000 (14:52 +1100)
Fixes #2897.

R=golang-dev, r
CC=golang-dev
https://golang.org/cl/5658047

doc/godocs.js
lib/godoc/example.html
lib/godoc/package.html
src/cmd/godoc/godoc.go

index 5320de6bcc133cdf2667147743937e083f40808f..cc96cf6743ed41457819377bd97943443ddb078f 100644 (file)
@@ -23,7 +23,7 @@ bindEvent(window, 'load', godocs_onload);
 function godocs_onload() {
   godocs_bindSearchEvents();
   godocs_generateTOC();
-  godocs_bindExampleToggles();
+  godocs_bindExamples();
 }
 
 function godocs_bindSearchEvents() {
@@ -158,11 +158,14 @@ function godocs_nodeToText(node) {
   return text;
 }
 
-function godocs_bindExampleToggles() {
+function godocs_bindExamples() {
   var examples = document.getElementsByClassName("example");
   for (var i = 0; i < examples.length; i++) {
-    var eg = examples[i];
-    godocs_bindExampleToggle(eg);
+    godocs_bindExampleToggle(examples[i]);
+  }
+  var links = document.getElementsByClassName("exampleLink");
+  for (var i = 0; i < links.length; i++) {
+    godocs_bindExampleLink(links[i]);
   }
 }
 function godocs_bindExampleToggle(eg) {
@@ -177,3 +180,14 @@ function godocs_bindExampleToggle(eg) {
     });
   }
 }
+function godocs_bindExampleLink(l) {
+  var prefix = "example_";
+  bindEvent(l, "click", function() {
+    var i = l.href.indexOf("#"+prefix);
+    if (i < 0)
+      return;
+    var id = prefix + l.href.slice(i+1+prefix.length);
+    var eg = document.getElementById(id);
+    eg.className = "exampleVisible";
+  });
+}
index 7af943172b4a8ade74fc59c53bba647d26eaaabf..d31e204a2f4f36f146b329fdfd512cb070bf4fce 100644 (file)
@@ -1,4 +1,4 @@
-<div class="example">
+<div id="example_{{.Name}}" class="example">
        <div class="collapsed">
                <p class="exampleHeading">▹ Example</p>
        </div>
index f4b6a0b7e36a224b25a748b675e303423d46167e..2722ff0e9ac431f8681b36e6ee6055c960c1b598 100644 (file)
                        {{end}}
                </dl>
 
+               {{if $.Examples}}
+                       <h4>Examples</h4>
+                       <dl>
+                       {{range $.Examples}}
+                       <dd><a class="exampleLink" href="#example_{{.Name}}">{{.Name}}</a></dd>
+                       {{end}}
+                       </dl>
+               {{end}}
+
                {{with .Filenames}}
                        <h4>Package files</h4>
                        <p>
index 613475a592f22167e149e9098d7fbeb0eeefc663..3945039299fb1677eb57a9dca1902a8821e27ca2 100644 (file)
@@ -522,8 +522,8 @@ func example_htmlFunc(funcName string, examples []*doc.Example, fset *token.File
                code = code[2 : len(code)-2]
 
                err := exampleHTML.Execute(&buf, struct {
-                       Code, Output string
-               }{code, eg.Output})
+                       Name, Code, Output string
+               }{name, code, eg.Output})
                if err != nil {
                        log.Print(err)
                }