<!--
	Copyright 2018 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).
-->
{{define "layout"}}
{{$pkg := .pkg}}

{{with $pkg.Dirs}}
	{{/* DirList entries are numbers and strings - no need for FSet */}}
	{{if $pkg.PDoc}}
		<h2 id="pkg-subdirectories">Subdirectories</h2>
	{{end}}
		<div id="manual-nav">
			<dl>
				<dt><a href="#stdlib">Standard library</a></dt>
				<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"/>
				<div class="pkg-dir">
					<table>
						<tr>
							<th class="pkg-name">Name</th>
							<th class="pkg-synopsis">Synopsis</th>
						</tr>

						{{range .}}
							<tr>
							{{if $pkg.DirFlat}}
								{{if .HasPkg}}
										<td class="pkg-name">
											<a href="{{.Path}}/{{$pkg.ModeQuery}}">{{.Path}}</a>
										</td>
								{{end}}
							{{else}}
									<td class="pkg-name" style="padding-left: {{mul .Depth 20}}px;">
										<a href="{{.Path}}/{{$pkg.ModeQuery}}">{{.Name}}</a>
									</td>
							{{end}}
							<td class="pkg-synopsis">
								{{.Synopsis}}
							</td>
							</tr>
						{{end}}
					</table>
				</div> <!-- .pkg-dir -->
			</div> <!-- .expanded -->
		</div> <!-- #stdlib .toggleVisible -->

	<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="//pkg.go.dev/golang.org/x/benchmarks">benchmarks</a> — benchmarks to measure Go as it is developed.</li>
		<li><a href="//pkg.go.dev/golang.org/x/blog">blog</a> — <a href="//blog.golang.org">blog.golang.org</a>'s implementation.</li>
		<li><a href="//pkg.go.dev/golang.org/x/build">build</a> — <a href="//build.golang.org">build.golang.org</a>'s implementation.</li>
		<li><a href="//pkg.go.dev/golang.org/x/crypto">crypto</a> — additional cryptography packages.</li>
		<li><a href="//pkg.go.dev/golang.org/x/debug">debug</a> — an experimental debugger for Go.</li>
		<li><a href="//pkg.go.dev/golang.org/x/image">image</a> — additional imaging packages.</li>
		<li><a href="//pkg.go.dev/golang.org/x/mobile">mobile</a> — experimental support for Go on mobile platforms.</li>
		<li><a href="//pkg.go.dev/golang.org/x/net">net</a> — additional networking packages.</li>
		<li><a href="//pkg.go.dev/golang.org/x/perf">perf</a> — packages and tools for performance measurement, storage, and analysis.</li>
		<li><a href="//pkg.go.dev/golang.org/x/pkgsite">pkgsite</a> — home of the pkg.go.dev website.</li>
		<li><a href="//pkg.go.dev/golang.org/x/review">review</a> — a tool for working with Gerrit code reviews.</li>
		<li><a href="//pkg.go.dev/golang.org/x/sync">sync</a> — additional concurrency primitives.</li>
		<li><a href="//pkg.go.dev/golang.org/x/sys">sys</a> — packages for making system calls.</li>
		<li><a href="//pkg.go.dev/golang.org/x/text">text</a> — packages for working with text.</li>
		<li><a href="//pkg.go.dev/golang.org/x/time">time</a> — additional time packages.</li>
		<li><a href="//pkg.go.dev/golang.org/x/tools">tools</a> — godoc, goimports, gorename, and other tools.</li>
		<li><a href="//pkg.go.dev/golang.org/x/tour">tour</a> — <a href="//tour.golang.org">tour.golang.org</a>'s implementation.</li>
		<li><a href="//pkg.go.dev/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="//pkg.go.dev">Pkg.go.dev</a> - the Go package discovery site.</li>
		<li><a href="/wiki/Projects">Projects at the Go Wiki</a> - a curated list of Go projects.</li>
	</ul>
{{end}}
{{end}}
