diff options
Diffstat (limited to 'lib/godoc/package.html')
-rw-r--r-- | lib/godoc/package.html | 125 |
1 files changed, 88 insertions, 37 deletions
diff --git a/lib/godoc/package.html b/lib/godoc/package.html index 5b7fce8d7..1df1f9151 100644 --- a/lib/godoc/package.html +++ b/lib/godoc/package.html @@ -3,25 +3,31 @@ Use of this source code is governed by a BSD-style license that can be found in the LICENSE file. --> +<!-- + Note: Static (i.e., not template-generated) href and id + attributes start with "pkg-" to make it impossible for + them to conflict with generated attributes (some of which + correspond to Go identifiers). +--> {{with .PDoc}} - {{if $.IsPkg}} + {{if not $.IsMain}} <div id="short-nav"> <dl> <dd><code>import "{{html .ImportPath}}"</code></dd> </dl> <dl> - <dd><a href="#overview" class="overviewLink">Overview</a></dd> - <dd><a href="#index">Index</a></dd> + <dd><a href="#pkg-overview" class="overviewLink">Overview</a></dd> + <dd><a href="#pkg-index" class="indexLink">Index</a></dd> {{if $.Examples}} - <dd><a href="#examples">Examples</a></dd> + <dd><a href="#pkg-examples" class="examplesLink">Examples</a></dd> {{end}} {{if $.Dirs}} - <dd><a href="#subdirectories">Subdirectories</a></dd> + <dd><a href="#pkg-subdirectories">Subdirectories</a></dd> {{end}} </dl> </div> <!-- The package's Name is printed as title by the top-level template --> - <div id="overview" class="toggleVisible"> + <div id="pkg-overview" class="toggleVisible"> <div class="collapsed"> <h2 class="toggleButton" title="Click to show Overview section">Overview ▹</h2> </div> @@ -31,16 +37,22 @@ </div> </div> {{example_html "" $.Examples $.FSet}} - - <h2 id="index">Index</h2> + + <div id="pkg-index" class="toggleVisible"> + <div class="collapsed"> + <h2 class="toggleButton" title="Click to show Index section">Index ▹</h2> + </div> + <div class="expanded"> + <h2 class="toggleButton" title="Click to hide Index section">Index ▾</h2> + <!-- Table of contents for API; must be named manual-nav to turn off auto nav. --> - <div id="manual-nav"> + <div id="manual-nav"> <dl> {{if .Consts}} - <dd><a href="#constants">Constants</a></dd> + <dd><a href="#pkg-constants">Constants</a></dd> {{end}} {{if .Vars}} - <dd><a href="#variables">Variables</a></dd> + <dd><a href="#pkg-variables">Variables</a></dd> {{end}} {{range .Funcs}} {{$name_html := html .Name}} @@ -58,20 +70,25 @@ <dd> <a href="#{{$tname_html}}.{{$name_html}}">{{node_html .Decl $.FSet}}</a></dd> {{end}} {{end}} - {{if .Bugs}} - <dd><a href="#bugs">Bugs</a></dd> + {{if $.Notes}} + {{range $marker, $item := $.Notes}} + <dd><a href="#pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</a></dd> + {{end}} {{end}} - </dl> + </dl> + </div><!-- #manual-nav --> {{if $.Examples}} - <h4 id="examples">Examples</h4> + <div id="pkg-examples"> + <h4>Examples</h4> <dl> {{range $.Examples}} <dd><a class="exampleLink" href="#example_{{.Name}}">{{example_name .Name}}</a></dd> {{end}} </dl> + </div> {{end}} - + {{with .Filenames}} <h4>Package files</h4> <p> @@ -82,16 +99,18 @@ </span> </p> {{end}} + </div><!-- .expanded --> + </div><!-- #pkg-index --> {{with .Consts}} - <h2 id="constants">Constants</h2> + <h2 id="pkg-constants">Constants</h2> {{range .}} <pre>{{node_html .Decl $.FSet}}</pre> {{comment_html .Doc}} {{end}} {{end}} {{with .Vars}} - <h2 id="variables">Variables</h2> + <h2 id="pkg-variables">Variables</h2> {{range .}} <pre>{{node_html .Decl $.FSet}}</pre> {{comment_html .Doc}} @@ -141,15 +160,16 @@ {{example_html $name $.Examples $.FSet}} {{end}} {{end}} - </div> {{else}} {{/* not a package; is a command */}} {{comment_html .Doc}} {{end}} - {{with .Bugs}} - <h2 id="bugs">Bugs</h2> - {{range .}} - {{comment_html .}} + {{with $.Notes}} + {{range $marker, $content := .}} + <h2 id="pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</h2> + {{range .}} + {{comment_html .}} + {{end}} {{end}} {{end}} {{end}} @@ -158,20 +178,10 @@ <pre>{{node_html . $.FSet}}</pre> {{end}} -{{with .PList}} - <h2>Other packages</h2> - <p> - {{/* PList entries are strings - no need for FSet */}} - {{range .}} - <a href="?p={{urlquery .}}">{{html .}}</a><br /> - {{end}} - </p> -{{end}} - {{with .Dirs}} {{/* DirList entries are numbers and strings - no need for FSet */}} {{if $.PDoc}} - <h2 id="subdirectories">Subdirectories</h2> + <h2 id="pkg-subdirectories">Subdirectories</h2> {{else}} <div class="pkgGopher"> <img class="gopher" src="/doc/gopher/pkg.png"/> @@ -192,14 +202,14 @@ {{if $.DirFlat}} {{if .HasPkg}} <tr> - <td class="name"><a href="{{html .Path}}">{{html .Path}}</a></td> + <td class="name"><a href="{{html .Path}}/">{{html .Path}}</a></td> <td> </td> <td style="width: auto">{{html .Synopsis}}</td> </tr> {{end}} {{else}} <tr> - <td class="name">{{repeat ` ` .Depth}}<a href="{{html .Path}}">{{html .Name}}</a></td> + <td class="name">{{repeat ` ` .Depth}}<a href="{{html .Path}}/">{{html .Name}}</a></td> <td> </td> <td style="width: auto">{{html .Synopsis}}</td> </tr> @@ -207,6 +217,47 @@ {{end}} </table> {{if $.PDoc}}{{else}} - <p>Need more packages? Take a look at the <a href="http://godashboard.appspot.com/">Go Project Dashboard</a>.</p> + <p>Need more packages? Take a look at the <a href="http://code.google.com/p/go-wiki/wiki/Projects">Go Projects wiki page</a>.</p> {{end}} {{end}} + +{{if $.Examples}} +<script> +$(document).ready(function() { + 'use strict'; + // Set up playground when each element is toggled. + $('div.play').each(function (i, el) { + var built = false; + $(el).closest('.toggle').click(function() { + // Only set up playground once. + if (built) { + return; + } + built = true; + + // Set up playground. + var code = $('.code', el); + playground({ + 'codeEl': code, + 'outputEl': $('.output', el), + 'runEl': $('.run', el), + 'fmtEl': $('.fmt', el), + 'shareEl': $('.share', el), + 'shareRedirect': 'http://play.golang.org/p/' + }); + + // Make the code textarea resize to fit content. + var resize = function() { + code.height(0); + var h = code[0].scrollHeight; + code.height(h+20); // minimize bouncing + code.closest('.input').height(h); + }; + code.on('keydown', resize); + code.on('keyup', resize); + code.keyup(); // resize now. + }); + }); +}); +</script> +{{end}} |