<!--
	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.
-->
<!-- Table of contents; must be named manual-nav to turn off auto nav. -->
<div id="manual-nav">
{{with .PDoc}}
	<dl>
	<dd><a href="#Overview">Overview</a></dd>
	{{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 := printf "%s" .Type.Name}}
		{{$tname_html := node_html .Type.Name $.FSet}}
		<dd><a href="#{{$tname_html}}">type {{$tname_html}}</a></dd>
		{{range .Factories}}
			{{$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>
{{end}}
</div>

<!-- Main page -->		
{{with .PAst}}
	<pre>{{node_html . $.FSet}}</pre>
{{end}}
{{with .PDoc}}
	<h2 id="Overview">Overview</h2>
	<!-- 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}}
	{{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 := 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}}
	{{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">&nbsp;</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}}
