<!--
	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 .PDoc}}
	{{if $.IsPkg}}
		<div id="short-nav">
			<dl>
			<dd><code>import "{{html .ImportPath}}"</code></dd>
			</dl>
			<dl>
			<dd><a href="#overview">Overview</a></dd>
			<dd><a href="#index">Index</a></dd>
			{{if $.Dirs}}
				<dd><a href="#subdirectories">Subdirectories</a></dd>
			{{end}}
			</dl>
		</div>
		<h2 id="overview">Overview</h2>
		<!-- The package's Name is printed as title by the top-level template -->
		{{comment_html .Doc}}
		{{example_html "" $.Examples $.FSet}}
	
		<h2 id="index">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="#constants">Constants</a></dd>
			{{end}}
			{{if .Vars}}
				<dd><a href="#variables">Variables</a></dd>
			{{end}}
			{{range .Funcs}}
				{{$name_html := html .Name}}
				<dd><a href="#{{$name_html}}">{{node_html .Decl $.FSet}}</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>&nbsp; &nbsp; <a href="#{{$name_html}}">{{node_html .Decl $.FSet}}</a></dd>
				{{end}}
				{{range .Methods}}
					{{$name_html := html .Name}}
					<dd>&nbsp; &nbsp; <a href="#{{$tname_html}}.{{$name_html}}">{{node_html .Decl $.FSet}}</a></dd>
				{{end}}
			{{end}}
			{{if .Bugs}}
				<dd><a href="#bugs">Bugs</a></dd>
			{{end}}
		</dl>

		{{if $.Examples}}
			<h4>Examples</h4>
			<dl>
			{{range $.Examples}}
			<dd><a class="exampleLink" href="#example_{{.Name}}">{{example_name .Name}}</a></dd>
			{{end}}
			</dl>
		{{end}}

		{{with .Filenames}}
			<h4>Package files</h4>
			<p>
			<span style="font-size:90%">
			{{range .}}
				<a href="/{{.|srcLink}}">{{.|filename|html}}</a>
			{{end}}
			</span>
			</p>
		{{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}}
		{{range .Funcs}}
			{{/* 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}}
		{{range .Types}}
			{{$tname := .Name}}
			{{$tname_html := html .Name}}
			<h2 id="{{$tname_html}}">type <a href="/{{posLink_url .Decl $.FSet}}">{{$tname_html}}</a></h2>
			{{comment_html .Doc}}
			<pre>{{node_html .Decl $.FSet}}</pre>
			{{range .Consts}}
				{{comment_html .Doc}}
				<pre>{{node_html .Decl $.FSet}}</pre>
			{{end}}
			{{range .Vars}}
				{{comment_html .Doc}}
				<pre>{{node_html .Decl $.FSet}}</pre>
			{{end}}
			{{example_html $tname $.Examples $.FSet}}
			{{range .Funcs}}
				{{$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 ({{html .Recv}}) <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}}
		</div>
	{{else}}  {{/* not a package; is a command */}}
		{{comment_html .Doc}}
	{{end}}

	{{with .Bugs}}
		<h2 id="bugs">Bugs</h2>
		{{range .}}
		{{comment_html .}}
		{{end}}
	{{end}}
{{end}}

{{with .PAst}}
	<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 */}}
	<h2 id="subdirectories">Subdirectories</h2>
	<table class="dir">
	<tr>
	<th>Name</th>
	<th>&nbsp;&nbsp;&nbsp;&nbsp;</th>
	<th style="text-align: left; width: auto">Synopsis</th>
	</tr>
	<tr>
	<td><a href="..">..</a></td>
	</tr>
	{{range .List}}
	<tr>
		<td>
		{{if $.DirFlat}}
			<a href="{{html .Path}}">{{html .Path}}</a>
		{{else}}
			{{repeat `&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;` .Depth}}<a href="{{html .Path}}">{{html .Name}}</a>
		{{end}}
		</td>
		<td>&nbsp;&nbsp;&nbsp;&nbsp;</td>
		<td style="width: auto">{{html .Synopsis}}</td>
	</tr>
	{{end}}
	</table>
{{end}}
