<!--
	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.
-->

{.section PAst}
	<pre>{@ FSet|html-esc}</pre>
{.end}
{.section PDoc}
	<!-- PackageName is printed as title by the top-level template -->
	{.section IsPkg}
		{# ImportPath is a string - no need for FSet}
		<p><code>import "{ImportPath|html-esc}"</code></p>
	{.end}
	{Doc|html-comment}
	{.section IsPkg}
		{.section Filenames}
			{# Filenames are strings - no need for FSet}
			<p>
			<h4>Package files</h4>
			<span style="font-size:90%">
			{.repeated section @}
				<a href="/{@|url-src}">{@|localname}</a>
			{.end}
			</span>
			</p>
		{.end}
	{.end}
	{.section Consts}
		<h2 id="Constants">Constants</h2>
		{.repeated section @}
			{Doc|html-comment}
			<pre>{Decl FSet|html-esc}</pre>
		{.end}
	{.end}
	{.section Vars}
		<h2 id="Variables">Variables</h2>
		{.repeated section @}
			{Doc|html-comment}
			<pre>{Decl FSet|html-esc}</pre>
		{.end}
	{.end}
	{.section Funcs}
		{.repeated section @}
			{# Name is a string - no need for FSet}
			<h2 id="{Name|html-esc}">func <a href="/{Decl FSet|url-pos}">{Name|html-esc}</a></h2>
			<p><code>{Decl FSet|html-esc}</code></p>
			{Doc|html-comment}
		{.end}
	{.end}
	{.section Types}
		{.repeated section @}
			<h2 id="{Type.Name FSet|html-esc}">type <a href="/{Decl FSet|url-pos}">{Type.Name FSet|html-esc}</a></h2>
			{Doc|html-comment}
			<p><pre>{Decl FSet|html-esc}</pre></p>
			{.repeated section Consts}
				{Doc|html-comment}
				<pre>{Decl FSet|html-esc}</pre>
			{.end}
			{.repeated section Vars}
				{Doc|html-comment}
				<pre>{Decl FSet|html-esc}</pre>
			{.end}
			{.repeated section Factories}
				<h3 id="{Type.Name FSet|html-esc}.{Name|html-esc}">func <a href="/{Decl FSet|url-pos}">{Name|html-esc}</a></h3>
				<p><code>{Decl FSet|html-esc}</code></p>
				{Doc|html-comment}
			{.end}
			{.repeated section Methods}
				<h3 id="{Type.Name FSet|html-esc}.{Name|html-esc}">func ({Recv FSet|html-esc}) <a href="/{Decl FSet|url-pos}">{Name|html-esc}</a></h3>
				<p><code>{Decl FSet|html-esc}</code></p>
				{Doc|html-comment}
			{.end}
		{.end}
	{.end}
	{.section Bugs}
		<h2 id="Bugs">Bugs</h2>
		{.repeated section @}
		{@|html-comment}
		{.end}
	{.end}
{.end}
{.section PList}
	<h2>Other packages</h2>
	<p>
	{# PLIst entries are strings - no need for FSet}
	{.repeated section @}
	<a href="?p={@|html-esc}">{@|html-esc}</a><br />
	{.end}
	</p>
{.end}
{.section Dirs}
	{# DirList entries are numbers and strings - no need for FSet}
	<h2 id="Subdirectories">Subdirectories</h2>
	<p>
	<table class="layout">
	<tr>
	<th align="left" colspan="{MaxHeight|html-esc}">Name</th>
	<td width="25">&nbsp;</td>
	<th align="left">Synopsis</th>
	</tr>
	<tr>
	<th align="left"><a href="..">..</a></th>
	</tr>
	{.repeated section List}
		<tr>
		{Depth|padding}
		<td align="left" colspan="{Height|html-esc}"><a href="{Path|html-esc}">{Name|html-esc}</a></td>
		<td></td>
		<td align="left">{Synopsis|html-esc}</td>
		</tr>
	{.end}
	</table>
	</p>
{.end}
