internal/godoc: fix some bugs in example rendering

First, don't try to render an example if we can't convert the AST to a
string. (This was causing a panic.) Instead, render a message saying
that we failed to produce an example. In practice, this is only going
to happen for playable exammples, because we synthesize the AST for
those and that is a tricky proposition. We will log an error if that
happens, so occasional error sweeps of the logs will find these, but
absent those we will have to rely on user reports.

Second, fix the bug that caused the panic in the first place, which
was that the code for trimming unused global declarations could
convert a valid const group like
```
const (
	a = iota
	b
)
```
to merely
```
const b
```
which isn't valid Go. The fix is to keep an entire iota const group if
any of it is used.

Change-Id: I33637aa1e88d9c8731bb2ccc58e6991b84eba6b6
Reviewed-on: https://go-review.googlesource.com/c/pkgsite/+/286914
Trust: Jonathan Amsterdam <jba@google.com>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
Reviewed-by: Julie Qiu <julie@golang.org>
6 files changed
tree: 67494e1977c5d6d389170f9715520cc60b4e3758
  1. cmd/
  2. content/
  3. devtools/
  4. doc/
  5. e2e/
  6. internal/
  7. migrations/
  8. third_party/
  9. .dockerignore
  10. .eslintignore
  11. .eslintrc.yaml
  12. .gitignore
  13. .prettierignore
  14. .prettierrc.yaml
  15. .stylelintignore
  16. .stylelintrc.yaml
  17. all.bash
  18. cloudbuild.yaml
  19. CONTRIBUTING.md
  20. go.mod
  21. go.sum
  22. LICENSE
  23. package-lock.json
  24. package.json
  25. PATENTS
  26. README.md
  27. tsconfig.json
README.md

Pkg.go.dev

Go Reference

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.

Links