tools/godoc
Chris Broadfoot 147f5680bc [release-branch.go1.11] godoc/proxy: remove use of httputil.ReverseProxy for /share
ReverseProxy doesn't re-set the Request's Host field, only
Request.URL.Host.
The HTTP/2 client prefers Request.Host over Request.URL.Host, so this
results in the request being sent back to the host that originally
accepted the request.
This results in an infinite redirect (and consumption of many connections to
itself).
See Issue golang/go#28168 for details.

Replace it with a simple proxy that drops all the headers (except
Content-Type).

I tried setting the proxy.Director, but it still didn't work. Could do
with some more investigation.

Fixes golang/go#28134.

Change-Id: I5051ce72a379dcacfbe8484f58f8cf7d9385024d
Reviewed-on: https://go-review.googlesource.com/c/141718
Run-TryBot: Chris Broadfoot <cbro@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
(cherry picked from commit 837e80568c)
Reviewed-on: https://go-review.googlesource.com/c/153858
Run-TryBot: Andrew Bonventre <andybons@golang.org>
2018-12-12 20:15:45 +00:00
..
analysis all: fix typos in comments 2018-08-10 18:15:57 +00:00
dl [release-branch.go1.11] godoc: move third-party godoc deps behind build tag 2018-11-21 00:03:50 +00:00
env [release-branch.go1.11] godoc: migrate to App Engine flexible 2018-11-20 23:23:52 +00:00
proxy [release-branch.go1.11] godoc/proxy: remove use of httputil.ReverseProxy for /share 2018-12-12 20:15:45 +00:00
redirect [release-branch.go1.11] godoc/redirect: improve Rietveld CL heuristic 2018-11-21 16:45:19 +00:00
short [release-branch.go1.11] godoc: move third-party godoc deps behind build tag 2018-11-21 00:03:50 +00:00
static [release-branch.go1.11] godoc/static: regenerate 2018-11-21 00:03:35 +00:00
util tools: add import comments. 2014-12-09 22:42:16 +00:00
vfs [release-branch.go1.11] godoc: update to use new goroot finding logic 2018-08-23 19:32:48 +00:00
README.md godoc: add GoogleCN property to pages 2017-08-02 21:09:52 +00:00
cmdline.go godoc: correct abspath when looking for cmds 2018-06-13 15:42:59 +00:00
cmdline_test.go godoc: correct abspath when looking for cmds 2018-06-13 15:42:59 +00:00
corpus.go godoc: show version information for stdlib 2018-07-17 18:09:30 +00:00
dirtrees.go godoc/vfs: improve implementation of RootType 2018-04-11 20:41:25 +00:00
dirtrees_test.go godoc: add benchmark for directory scan 2018-04-15 15:36:21 +00:00
format.go go.tools/godoc: Fix jump-to-line in source view. 2013-08-01 11:52:25 +10:00
godoc.go godoc: skip build tag annotations when displaying examples 2018-07-31 18:38:43 +00:00
godoc17_test.go x/tools/cmd/godoc: fix broken links in composite literals 2017-02-17 22:21:49 +00:00
godoc_test.go godoc: skip build tag annotations when displaying examples 2018-07-31 18:38:43 +00:00
index.go all: fix typos in comments 2018-08-10 18:15:57 +00:00
index_test.go x/tools/godoc: gofmt -s -w 2017-02-15 21:42:32 +00:00
linkify.go godoc: use "IsPredeclared" of go/doc 2017-11-15 18:22:28 +00:00
meta.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
page.go [release-branch.go1.11] godoc: migrate to App Engine flexible 2018-11-20 23:23:52 +00:00
parser.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
pres.go [release-branch.go1.11] godoc: migrate to App Engine flexible 2018-11-20 23:23:52 +00:00
search.go godoc: add GoogleCN property to pages 2017-08-02 21:09:52 +00:00
server.go godoc: default to GOOS/GOARCH js/wasm when rendering syscall/js docs 2018-06-28 16:39:57 +00:00
server_test.go godoc: fix counting of package files in GetPageInfo 2018-04-16 18:17:07 +00:00
snippet.go godoc: add version info for struct fields 2018-07-17 23:22:00 +00:00
spec.go godoc: accept scanner.RawString too during EBNF parsing 2018-06-25 04:25:21 +00:00
spec_test.go godoc: accept scanner.RawString too during EBNF parsing 2018-06-25 04:25:21 +00:00
spot.go godoc: add search results that point to documentation instead of source. 2013-11-21 11:55:42 -05:00
tab.go godoc: add missing copyright 2015-04-27 04:29:37 +00:00
template.go godoc: fix test failure 2018-06-13 15:25:43 +00:00
versions.go godoc: correctly parse packages with digits in the package name 2018-07-22 15:00:05 +00:00
versions_test.go godoc: fix tests on Go 1.9 2018-07-25 19:11:30 +00:00

README.md

godoc

This directory contains most of the code for running a godoc server. The executable lives at golang.org/x/tools/cmd/godoc.

Development mode

In production, CSS/JS/template assets need to be compiled into the godoc binary. It can be tedious to recompile assets every time, but you can pass a flag to load CSS/JS/templates from disk every time a page loads:

godoc -templates=$GOPATH/src/golang.org/x/tools/godoc/static -http=:6060

Recompiling static assets

The files that live at static/style.css, static/jquery.js and so on are not present in the final binary. They are placed into static/static.go by running go generate. So to compile a change and test it in your browser:

  1. Make changes to e.g. static/style.css.

  2. Run go generate golang.org/x/tools/godoc/static so static/static.go picks up the change.

  3. Run go install golang.org/x/tools/cmd/godoc so the compiled godoc binary picks up the change.

  4. Run godoc -http=:6060 and view your changes in the browser. You may need to disable your browser's cache to avoid reloading a stale file.