internal/testing/sample,etc.: add package source

Add encoded source to the sample Documentation value, and render it to
get the documentation HTML.  Use the package in
internal/godoc/testdata.

I had hoped to use the godoc package in an init function to create the
needed values, but that caused an import cycle between sample and the
godoc test package. So instead, a small program invoked with `go
generate` uses godoc to generate the values and embed them in a Go
file.

This change required a few other changes:

internal/postgres:  Always insert source when comparing Documentation.

internal/frontend: Change the strings we look for in doc to match the
one in the sample package.

internal/frontend: Remove the check on HTML ids. This was added when I
was doing safehtml, when I was being strict about HTML ids. The
safehtml package wants ids to conform to some strict rules to avoid
certain attacks, and I tried to follow those rules. But in the end I
had to be more forgiving, or I would have broken anchor tags to Go
symbols, like pkg.go.dev/fmt#Println. (safehtml does not consider
"Println" a safe identifier unless it is a constant string.)

The checkIDs function was added somewhere in the middle of that
process, and it worked until now because the value of
sample.DocumentationHTML was an ordinary text string with no ids, not
real HTML doc.  It was actually only checking the ids for license
files, and those do contain a hyphen. I don't think its loss is
important.

Change-Id: I4019c56b216aaf1a4e92a6167c2af1eef4cfbf89
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/265297
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: kokoro <noreply+kokoro@google.com>
Reviewed-by: Jamal Carvalho <jamal@golang.org>
8 files changed
tree: 6e0598e0edd84ec260416941575f3593c1763095
  1. cmd/
  2. content/
  3. devtools/
  4. doc/
  5. internal/
  6. migrations/
  7. third_party/
  8. .dockerignore
  9. .gitignore
  10. .prettierignore
  11. .prettierrc.yaml
  12. all.bash
  13. cloudbuild.yaml
  14. CONTRIBUTING.md
  15. go.mod
  16. go.sum
  17. LICENSE
  18. PATENTS
  19. README.md
README.md

Pkg.go.dev

A site for discovering Go packages

Pkg.go.dev is a website for discovering and evaluating Go packages and modules.

You can check it out at https://pkg.go.dev.

Roadmap

Pkg.go.dev launched in November 2019, and is currently under active development by the Go team.

Here's what we are currently working on:

  • Design updates: We have some design changes planned for pkg.go.dev, to address UX feedback that we have received. You can expect a more cohesive search and navigation experience coming soon. We plan to share these designs for feedback once they are ready.

  • Godoc.org redirect: Longer term, we are working towards redirecting godoc.org traffic to pkg.go.dev. We know that there are features available on godoc.org that users want to see on pkg.go.dev, and we want to ensure that we address these. We’ve been keeping track of issues related to redirecting godoc.org traffic on Go issue #39144. These issues will be prioritized in the next few months. We also plan to continue improving our license detection algorithm.

  • Search improvements: We’ll be improving our search experience based on feedback in Go issue #37810, to make it easier for users to find the dependencies they are looking for and make better decisions around which ones to import.

We encourage everyone to begin using pkg.go.dev today for all of their needs and to file feedback! You can redirect all of your requests from godoc.org to pkg.go.dev, by clicking Always use pkg.go.dev at the top of any page on godoc.org.

Issues

If you want to report a bug or have a feature suggestion, please first check the known issues to see if your issue is already being discussed. If an issue does not already exist, feel free to file an issue.

For answers to frequently asked questions, see go.dev/about.

You can also chat with us on the #tools slack channel on the Gophers slack.

Contributing

We would love your help!

Our canonical Git repository is located at go.googlesource.com/pkgsite. There is a mirror of the repository at github.com/golang/pkgsite.

To contribute, please read our contributing guide.

License

Unless otherwise noted, the Go source files are distributed under the BSD-style license found in the LICENSE file.