mirror of
https://github.com/golang/go
synced 2024-11-19 00:54:42 -07:00
16d1af8d88
This CL groups the package list into two groups - standard library(GOROOT), and third-party code(GOPATH). It also wraps the list with a collapsible div header used in the package documentation page. This makes the entire page easy to view and manage, and also makes it consistent with the rest of the pages. To implement this, a new function was added to the filesystem interface which returns the root type of the filesystem. In most cases, it is either GOROOT or GOPATH. There are other kinds of filesystems which are not used in the home page, so additional values have been added to satisfy the interface. A side effect of this is that the html template code has become a bit spaghetti-like with if conditions all over. This is because the same template is used to render a package directory as well as the package home page. A better way is to use two separate templates for the different tasks. This cleans out a lot of the if conditions and make for a much cleaner code. This has been taken care in CL 101295. Fixes golang/go#3305 Fixes golang/go#15020 Change-Id: I876357dc76280a7df2ed08d7c6bc53d9a41e69ab Reviewed-on: https://go-review.googlesource.com/95835 Run-TryBot: Andrew Bonventre <andybons@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Andrew Bonventre <andybons@golang.org>
407 lines
13 KiB
HTML
407 lines
13 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.
|
|
-->
|
|
<!--
|
|
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}}
|
|
<script type='text/javascript'>
|
|
document.ANALYSIS_DATA = {{$.AnalysisData}};
|
|
document.CALLGRAPH = {{$.CallGraph}};
|
|
</script>
|
|
|
|
{{if $.IsMain}}
|
|
{{/* command documentation */}}
|
|
{{comment_html .Doc}}
|
|
{{else}}
|
|
{{/* package documentation */}}
|
|
<div id="short-nav">
|
|
<dl>
|
|
<dd><code>import "{{html .ImportPath}}"</code></dd>
|
|
</dl>
|
|
<dl>
|
|
<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="#pkg-examples" class="examplesLink">Examples</a></dd>
|
|
{{end}}
|
|
{{if $.Dirs}}
|
|
<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="pkg-overview" class="toggleVisible">
|
|
<div class="collapsed">
|
|
<h2 class="toggleButton" title="Click to show Overview section">Overview ▹</h2>
|
|
</div>
|
|
<div class="expanded">
|
|
<h2 class="toggleButton" title="Click to hide Overview section">Overview ▾</h2>
|
|
{{comment_html .Doc}}
|
|
{{example_html $ ""}}
|
|
</div>
|
|
</div>
|
|
|
|
<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">
|
|
<dl>
|
|
{{if .Consts}}
|
|
<dd><a href="#pkg-constants">Constants</a></dd>
|
|
{{end}}
|
|
{{if .Vars}}
|
|
<dd><a href="#pkg-variables">Variables</a></dd>
|
|
{{end}}
|
|
{{range .Funcs}}
|
|
{{$name_html := html .Name}}
|
|
<dd><a href="#{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd>
|
|
{{end}}
|
|
{{range .Types}}
|
|
{{$tname_html := html .Name}}
|
|
<dd><a href="#{{$tname_html}}">type {{$tname_html}}</a></dd>
|
|
{{range .Funcs}}
|
|
{{$name_html := html .Name}}
|
|
<dd> <a href="#{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd>
|
|
{{end}}
|
|
{{range .Methods}}
|
|
{{$name_html := html .Name}}
|
|
<dd> <a href="#{{$tname_html}}.{{$name_html}}">{{node_html $ .Decl false | sanitize}}</a></dd>
|
|
{{end}}
|
|
{{end}}
|
|
{{if $.Notes}}
|
|
{{range $marker, $item := $.Notes}}
|
|
<dd><a href="#pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</a></dd>
|
|
{{end}}
|
|
{{end}}
|
|
</dl>
|
|
</div><!-- #manual-nav -->
|
|
|
|
{{if $.Examples}}
|
|
<div id="pkg-examples">
|
|
<h3>Examples</h3>
|
|
<dl>
|
|
{{range $.Examples}}
|
|
<dd><a class="exampleLink" href="#example_{{.Name}}">{{example_name .Name}}</a></dd>
|
|
{{end}}
|
|
</dl>
|
|
</div>
|
|
{{end}}
|
|
|
|
{{with .Filenames}}
|
|
<h3>Package files</h3>
|
|
<p>
|
|
<span style="font-size:90%">
|
|
{{range .}}
|
|
<a href="{{.|srcLink|html}}">{{.|filename|html}}</a>
|
|
{{end}}
|
|
</span>
|
|
</p>
|
|
{{end}}
|
|
</div><!-- .expanded -->
|
|
</div><!-- #pkg-index -->
|
|
|
|
<div id="pkg-callgraph" class="toggle" style="display: none">
|
|
<div class="collapsed">
|
|
<h2 class="toggleButton" title="Click to show Internal Call Graph section">Internal call graph ▹</h2>
|
|
</div> <!-- .expanded -->
|
|
<div class="expanded">
|
|
<h2 class="toggleButton" title="Click to hide Internal Call Graph section">Internal call graph ▾</h2>
|
|
<p>
|
|
In the call graph viewer below, each node
|
|
is a function belonging to this package
|
|
and its children are the functions it
|
|
calls—perhaps dynamically.
|
|
</p>
|
|
<p>
|
|
The root nodes are the entry points of the
|
|
package: functions that may be called from
|
|
outside the package.
|
|
There may be non-exported or anonymous
|
|
functions among them if they are called
|
|
dynamically from another package.
|
|
</p>
|
|
<p>
|
|
Click a node to visit that function's source code.
|
|
From there you can visit its callers by
|
|
clicking its declaring <code>func</code>
|
|
token.
|
|
</p>
|
|
<p>
|
|
Functions may be omitted if they were
|
|
determined to be unreachable in the
|
|
particular programs or tests that were
|
|
analyzed.
|
|
</p>
|
|
<!-- Zero means show all package entry points. -->
|
|
<ul style="margin-left: 0.5in" id="callgraph-0" class="treeview"></ul>
|
|
</div>
|
|
</div> <!-- #pkg-callgraph -->
|
|
|
|
{{with .Consts}}
|
|
<h2 id="pkg-constants">Constants</h2>
|
|
{{range .}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
{{end}}
|
|
{{end}}
|
|
{{with .Vars}}
|
|
<h2 id="pkg-variables">Variables</h2>
|
|
{{range .}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
{{end}}
|
|
{{end}}
|
|
{{range .Funcs}}
|
|
{{/* Name is a string - no need for FSet */}}
|
|
{{$name_html := html .Name}}
|
|
<h2 id="{{$name_html}}">func <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a>
|
|
<a class="permalink" href="#{{$name_html}}">¶</a>
|
|
</h2>
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
{{comment_html .Doc}}
|
|
{{example_html $ .Name}}
|
|
{{callgraph_html $ "" .Name}}
|
|
|
|
{{end}}
|
|
{{range .Types}}
|
|
{{$tname := .Name}}
|
|
{{$tname_html := html .Name}}
|
|
<h2 id="{{$tname_html}}">type <a href="{{posLink_url $ .Decl}}">{{$tname_html}}</a>
|
|
<a class="permalink" href="#{{$tname_html}}">¶</a>
|
|
</h2>
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
|
|
{{range .Consts}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
{{end}}
|
|
|
|
{{range .Vars}}
|
|
{{comment_html .Doc}}
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
{{end}}
|
|
|
|
{{example_html $ $tname}}
|
|
{{implements_html $ $tname}}
|
|
{{methodset_html $ $tname}}
|
|
|
|
{{range .Funcs}}
|
|
{{$name_html := html .Name}}
|
|
<h3 id="{{$name_html}}">func <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a>
|
|
<a class="permalink" href="#{{$name_html}}">¶</a>
|
|
</h3>
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
{{comment_html .Doc}}
|
|
{{example_html $ .Name}}
|
|
{{callgraph_html $ "" .Name}}
|
|
{{end}}
|
|
|
|
{{range .Methods}}
|
|
{{$name_html := html .Name}}
|
|
<h3 id="{{$tname_html}}.{{$name_html}}">func ({{html .Recv}}) <a href="{{posLink_url $ .Decl}}">{{$name_html}}</a>
|
|
<a class="permalink" href="#{{$tname_html}}.{{$name_html}}">¶</a>
|
|
</h3>
|
|
<pre>{{node_html $ .Decl true}}</pre>
|
|
{{comment_html .Doc}}
|
|
{{$name := printf "%s_%s" $tname .Name}}
|
|
{{example_html $ $name}}
|
|
{{callgraph_html $ .Recv .Name}}
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
|
|
{{with $.Notes}}
|
|
{{range $marker, $content := .}}
|
|
<h2 id="pkg-note-{{$marker}}">{{noteTitle $marker | html}}s</h2>
|
|
<ul style="list-style: none; padding: 0;">
|
|
{{range .}}
|
|
<li><a href="{{posLink_url $ .}}" style="float: left;">☞</a> {{comment_html .Body}}</li>
|
|
{{end}}
|
|
</ul>
|
|
{{end}}
|
|
{{end}}
|
|
{{end}}
|
|
|
|
{{with .PAst}}
|
|
{{range $filename, $ast := .}}
|
|
<a href="{{$filename|srcLink|html}}">{{$filename|filename|html}}</a>:<pre>{{node_html $ $ast false}}</pre>
|
|
{{end}}
|
|
{{end}}
|
|
|
|
{{with .Dirs}}
|
|
{{/* DirList entries are numbers and strings - no need for FSet */}}
|
|
{{if $.PDoc}}
|
|
<h2 id="pkg-subdirectories">Subdirectories</h2>
|
|
{{end}}
|
|
{{if eq $.Dirname "/src"}}
|
|
<div id="manual-nav">
|
|
<dl>
|
|
<dt><a href="#stdlib">Standard library</a></dt>
|
|
{{if hasThirdParty .List }}
|
|
<dt><a href="#thirdparty">Third party</a></dt>
|
|
{{end}}
|
|
<dt><a href="#other">Other packages</a></dt>
|
|
<dd><a href="#subrepo">Sub-repositories</a></dd>
|
|
<dd><a href="#community">Community</a></dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<div id="stdlib" class="toggleVisible">
|
|
<div class="collapsed">
|
|
<h2 class="toggleButton" title="Click to show Standard library section">Standard library ▹</h2>
|
|
</div>
|
|
<div class="expanded">
|
|
<h2 class="toggleButton" title="Click to hide Standard library section">Standard library ▾</h2>
|
|
<img alt="" class="gopher" src="/doc/gopher/pkg.png"/>
|
|
{{end}}
|
|
<div class="pkg-dir">
|
|
<table>
|
|
<tr>
|
|
<th class="pkg-name">Name</th>
|
|
<th class="pkg-synopsis">Synopsis</th>
|
|
</tr>
|
|
|
|
{{if not (or (eq $.Dirname "/src") (eq $.Dirname "/src/cmd") $.DirFlat)}}
|
|
<tr>
|
|
<td colspan="2"><a href="..">..</a></td>
|
|
</tr>
|
|
{{end}}
|
|
|
|
{{if eq $.Dirname "/src"}}
|
|
{{range .List}}
|
|
<tr>
|
|
{{if eq .FsRootType "GOROOT"}}
|
|
{{if $.DirFlat}}
|
|
{{if .HasPkg}}
|
|
<td class="pkg-name">
|
|
<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Path}}</a>
|
|
</td>
|
|
{{end}}
|
|
{{else}}
|
|
<td class="pkg-name" style="padding-left: {{multiply .Depth 20}}px;">
|
|
<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Name}}</a>
|
|
</td>
|
|
{{end}}
|
|
<td class="pkg-synopsis">
|
|
{{html .Synopsis}}
|
|
</td>
|
|
{{end}}
|
|
</tr>
|
|
{{end}}
|
|
{{else}}
|
|
{{range .List}}
|
|
<tr>
|
|
{{if $.DirFlat}}
|
|
{{if .HasPkg}}
|
|
<td class="pkg-name">
|
|
<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Path}}</a>
|
|
</td>
|
|
{{end}}
|
|
{{else}}
|
|
<td class="pkg-name" style="padding-left: {{multiply .Depth 20}}px;">
|
|
<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Name}}</a>
|
|
</td>
|
|
{{end}}
|
|
<td class="pkg-synopsis">
|
|
{{html .Synopsis}}
|
|
</td>
|
|
</tr>
|
|
{{end}}
|
|
{{end}}
|
|
</table>
|
|
</div>
|
|
{{if eq $.Dirname "/src"}}
|
|
</div>
|
|
</div>
|
|
|
|
{{if hasThirdParty .List }}
|
|
<div id="thirdparty" class="toggleVisible">
|
|
<div class="collapsed">
|
|
<h2 class="toggleButton" title="Click to show Third party section">Third party ▹</h2>
|
|
</div>
|
|
<div class="expanded">
|
|
<h2 class="toggleButton" title="Click to hide Third party section">Third party ▾</h2>
|
|
<div class="pkg-dir">
|
|
<table>
|
|
<tr>
|
|
<th class="pkg-name">Name</th>
|
|
<th class="pkg-synopsis">Synopsis</th>
|
|
</tr>
|
|
|
|
{{range .List}}
|
|
<tr>
|
|
{{if eq .FsRootType "GOPATH"}}
|
|
{{if $.DirFlat}}
|
|
{{if .HasPkg}}
|
|
<td class="pkg-name">
|
|
<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Path}}</a>
|
|
</td>
|
|
{{end}}
|
|
{{else}}
|
|
<td class="pkg-name" style="padding-left: {{multiply .Depth 20}}px;">
|
|
<a href="{{html .Path}}/{{modeQueryString $.Mode | html}}">{{html .Name}}</a>
|
|
</td>
|
|
{{end}}
|
|
<td class="pkg-synopsis">
|
|
{{html .Synopsis}}
|
|
</td>
|
|
{{end}}
|
|
</tr>
|
|
{{end}}
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{end}}
|
|
|
|
<h2 id="other">Other packages</h2>
|
|
<h3 id="subrepo">Sub-repositories</h3>
|
|
<p>
|
|
These packages are part of the Go Project but outside the main Go tree.
|
|
They are developed under looser <a href="/doc/go1compat">compatibility requirements</a> than the Go core.
|
|
Install them with "<a href="/cmd/go/#hdr-Download_and_install_packages_and_dependencies">go get</a>".
|
|
</p>
|
|
<ul>
|
|
<li><a href="//godoc.org/golang.org/x/benchmarks">benchmarks</a> — benchmarks to measure Go as it is developed.</li>
|
|
<li><a href="//godoc.org/golang.org/x/blog">blog</a> — <a href="//blog.golang.org">blog.golang.org</a>'s implementation.</li>
|
|
<li><a href="//godoc.org/golang.org/x/build">build</a> — <a href="//build.golang.org">build.golang.org</a>'s implementation.</li>
|
|
<li><a href="//godoc.org/golang.org/x/crypto">crypto</a> — additional cryptography packages.</li>
|
|
<li><a href="//godoc.org/golang.org/x/debug">debug</a> — an experimental debugger for Go.</li>
|
|
<li><a href="//godoc.org/golang.org/x/image">image</a> — additional imaging packages.</li>
|
|
<li><a href="//godoc.org/golang.org/x/mobile">mobile</a> — experimental support for Go on mobile platforms.</li>
|
|
<li><a href="//godoc.org/golang.org/x/net">net</a> — additional networking packages.</li>
|
|
<li><a href="//godoc.org/golang.org/x/perf">perf</a> — packages and tools for performance measurement, storage, and analysis.</li>
|
|
<li><a href="//godoc.org/golang.org/x/review">review</a> — a tool for working with Gerrit code reviews.</li>
|
|
<li><a href="//godoc.org/golang.org/x/sync">sync</a> — additional concurrency primitives.</li>
|
|
<li><a href="//godoc.org/golang.org/x/sys">sys</a> — packages for making system calls.</li>
|
|
<li><a href="//godoc.org/golang.org/x/text">text</a> — packages for working with text.</li>
|
|
<li><a href="//godoc.org/golang.org/x/time">time</a> — additional time packages.</li>
|
|
<li><a href="//godoc.org/golang.org/x/tools">tools</a> — godoc, goimports, gorename, and other tools.</li>
|
|
<li><a href="//godoc.org/golang.org/x/tour">tour</a> — <a href="//tour.golang.org">tour.golang.org</a>'s implementation.</li>
|
|
<li><a href="//godoc.org/golang.org/x/exp">exp</a> — experimental and deprecated packages (handle with care; may change without warning).</li>
|
|
</ul>
|
|
|
|
<h3 id="community">Community</h3>
|
|
<p>
|
|
These services can help you find Open Source packages provided by the community.
|
|
</p>
|
|
<ul>
|
|
<li><a href="//godoc.org">GoDoc</a> - a package index and search engine.</li>
|
|
<li><a href="http://go-search.org">Go Search</a> - a code search engine.</li>
|
|
<li><a href="/wiki/Projects">Projects at the Go Wiki</a> - a curated list of Go projects.</li>
|
|
</ul>
|
|
{{end}}
|
|
{{end}}
|