mirror of
https://github.com/golang/go
synced 2024-11-20 09:44:45 -07:00
af1ae438b9
This CL introduces the go.Example type and go.Examples functions that are used to represent and extract code samples from Go source. They should be of the form: // Output of this function. func ExampleFoo() { fmt.Println("Output of this function.") } It also modifies godoc to read example code from _test.go files, and include them in the HTML output with JavaScript-driven toggles. It also implements testing of example functions with gotest. The stdout/stderr is compared against the output comment on the function. This CL includes examples for the sort.Ints function and the sort.SortInts type. After patching this CL in and re-building go/doc and godoc, try godoc -http=localhost:6060 and visit http://localhost:6060/pkg/sort/ R=gri, r, rsc CC=golang-dev https://golang.org/cl/5137041
129 lines
3.5 KiB
HTML
129 lines
3.5 KiB
HTML
<!--
|
|
Copyright 2009 The Go Authors. All rights reserved.
|
|
Use of this source code is governed by a BSD-style
|
|
license that can be found in the LICENSE file.
|
|
-->
|
|
{{with .PAst}}
|
|
<pre>{{node_html . $.FSet}}</pre>
|
|
{{end}}
|
|
{{with .PDoc}}
|
|
<!-- PackageName is printed as title by the top-level template -->
|
|
{{if $.IsPkg}}
|
|
<p><code>import "{{html .ImportPath}}"</code></p>
|
|
{{end}}
|
|
{{comment_html .Doc}}
|
|
{{if $.IsPkg}}
|
|
{{with .Filenames}}
|
|
<p>
|
|
<h4>Package files</h4>
|
|
<span style="font-size:90%">
|
|
{{range .}}
|
|
<a href="/{{.|srcLink}}">{{.|filename|html}}</a>
|
|
{{end}}
|
|
</span>
|
|
</p>
|
|
{{end}}
|
|
{{end}}
|
|
{{with .Consts}}
|
|
<h2 id="Constants">Constants</h2>
|
|
{{range .}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html .Decl $.FSet}}</pre>
|
|
{{end}}
|
|
{{end}}
|
|
{{with .Vars}}
|
|
<h2 id="Variables">Variables</h2>
|
|
{{range .}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html .Decl $.FSet}}</pre>
|
|
{{end}}
|
|
{{end}}
|
|
{{with .Funcs}}
|
|
{{range .}}
|
|
{{/* Name is a string - no need for FSet */}}
|
|
{{$name_html := html .Name}}
|
|
<h2 id="{{$name_html}}">func <a href="/{{posLink_url .Decl $.FSet}}">{{$name_html}}</a></h2>
|
|
<p><code>{{node_html .Decl $.FSet}}</code></p>
|
|
{{comment_html .Doc}}
|
|
{{example_html .Name $.Examples $.FSet}}
|
|
{{end}}
|
|
{{end}}
|
|
{{with .Types}}
|
|
{{range .}}
|
|
{{$tname := printf "%s" .Type.Name}}
|
|
{{$tname_html := node_html .Type.Name $.FSet}}
|
|
<h2 id="{{$tname_html}}">type <a href="/{{posLink_url .Decl $.FSet}}">{{$tname_html}}</a></h2>
|
|
{{comment_html .Doc}}
|
|
<p><pre>{{node_html .Decl $.FSet}}</pre></p>
|
|
{{example_html $tname $.Examples $.FSet}}
|
|
{{range .Consts}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html .Decl $.FSet}}</pre>
|
|
{{end}}
|
|
{{range .Vars}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html .Decl $.FSet}}</pre>
|
|
{{end}}
|
|
{{range .Factories}}
|
|
{{$name_html := html .Name}}
|
|
<h3 id="{{$name_html}}">func <a href="/{{posLink_url .Decl $.FSet}}">{{$name_html}}</a></h3>
|
|
<p><code>{{node_html .Decl $.FSet}}</code></p>
|
|
{{comment_html .Doc}}
|
|
{{example_html .Name $.Examples $.FSet}}
|
|
{{end}}
|
|
{{range .Methods}}
|
|
{{$name_html := html .Name}}
|
|
<h3 id="{{$tname_html}}.{{$name_html}}">func ({{node_html .Recv $.FSet}}) <a href="/{{posLink_url .Decl $.FSet}}">{{$name_html}}</a></h3>
|
|
<p><code>{{node_html .Decl $.FSet}}</code></p>
|
|
{{comment_html .Doc}}
|
|
{{$name := printf "%s_%s" $tname .Name}}
|
|
{{example_html $name $.Examples $.FSet}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
{{with .Bugs}}
|
|
<h2 id="Bugs">Bugs</h2>
|
|
{{range .}}
|
|
{{comment_html .}}
|
|
{{end}}
|
|
{{end}}
|
|
{{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}}
|
|
<p class="detail">
|
|
Need more packages? The
|
|
<a href="http://godashboard.appspot.com/package">Package Dashboard</a>
|
|
provides a list of <a href="/cmd/goinstall/">goinstallable</a> packages.
|
|
</p>
|
|
{{/* DirList entries are numbers and strings - no need for FSet */}}
|
|
<h2 id="Subdirectories">Subdirectories</h2>
|
|
<p>
|
|
<table class="layout">
|
|
<tr>
|
|
<th align="left" colspan="{{html .MaxHeight}}">Name</th>
|
|
<td width="25"> </td>
|
|
<th align="left">Synopsis</th>
|
|
</tr>
|
|
<tr>
|
|
<th align="left"><a href="..">..</a></th>
|
|
</tr>
|
|
{{range .List}}
|
|
<tr>
|
|
{{repeat `<td width="25"></td>` .Depth}}
|
|
<td align="left" colspan="{{html .Height}}"><a href="{{html .Path}}">{{html .Name}}</a></td>
|
|
<td></td>
|
|
<td align="left">{{html .Synopsis}}</td>
|
|
</tr>
|
|
{{end}}
|
|
</table>
|
|
</p>
|
|
{{end}}
|