<!--
	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.
-->
{{if .IsPkg}}
<!-- 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 .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>
{{end}}
</div>
{{end}}

<!-- Main page -->		
{{with .PAst}}
	<pre>{{node_html . $.FSet}}</pre>
{{end}}
{{with .PDoc}}
	<h2 id="Overview">Overview</h2>
	<!-- The package's Name 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}}
			<h4>Package files</h4>
			<p>
			<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}}
		<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 ({{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}}
	{{/* DirList entries are numbers and strings - no need for FSet */}}
	<h2 id="Subdirectories">Subdirectories</h2>
	<p>
	<table class="layout">
	<tr>
	{{if $.DirFlat}}
		<th align="left">Name</th>
	{{else}}
		<th align="left" colspan="{{html .MaxHeight}}">Name</th>
	{{end}}
	<th width="25"></th>
	<th align="left">Synopsis</th>
	</tr>
	<tr>
	<td align="left"><a href="..">..</a></td>
	</tr>
	{{range .List}}
		<tr>
		{{if $.DirFlat}}
			<td align="left"><a href="{{html .Path}}">{{html .Path}}</a></td>
		{{else}}
			{{repeat `<td width="20"></td>` .Depth}}
			<td align="left" colspan="{{html .Height}}"><a href="{{html .Path}}">{{html .Name}}</a></td>
		{{end}}
		<td></td>
		<td align="left">{{html .Synopsis}}</td>
		</tr>
	{{end}}
	</table>
	</p>
{{end}}
