{{define "Head"}}<title>{{.pdoc.PageName}} tools - GoDoc</title><meta name="robots" content="NOINDEX, NOFOLLOW">{{end}}

{{define "Body"}}
  {{template "ProjectNav" $}}
  <h2>Tools for {{$.pdoc.PageName}}</h2>

  <h3>Badge</h3>

  <p><a href="{{.uri}}"><img src="{{.uri}}?status.svg" alt="GoDoc"></a>

  <p>Use one of the snippets below to add a link to GoDoc from your project
  website or README file:</a>

  <h5>HTML</h5>
  <input type="text" value='<a href="{{.uri}}"><img src="{{.uri}}?status.svg" alt="GoDoc"></a>' class="click-select form-control">

  <h5>Markdown</h5>
  <input type="text" value="[![GoDoc]({{.uri}}?status.svg)]({{.uri}})" class="click-select form-control">

  {{if .pdoc.Name}}
    <h3>Lint</h3>
    <form name="x-lint" method="POST" action="https://go-lint.appspot.com/-/refresh"><input name="importPath" type="hidden" value="{{.pdoc.ImportPath}}"></form>
    <p><a href="javascript:document.getElementsByName('x-lint')[0].submit();">Run lint</a> on {{.pdoc.PageName}}.

    {{if and (not .pdoc.IsCmd) (not .pdoc.Doc)}}
      <p>The {{.pdoc.Name}} package does not have a package declaration
      comment.  See the <a
        href="https://blog.golang.org/godoc-documenting-go-code">Go
        documentation guidelines</a> for information on how to write a package
      comment. It's important to write a good summary of the package in the
      first sentence of the package comment. GoDoc indexes the first sentence
      and displays the first sentence in package lists.
    {{end}}
  {{end}}
  <p>&nbsp;
{{end}}
