3e7aa9e599
Currently, we generate the TOC for a page dynamically after page load through javascript. This is fine for pages with static content. But for pages with dynamic output like /search, sometimes this causes a noticeable page jump due to extensive DOM traversal. Also, the heuristics to calculate the no. of columns is very rudimentary and fills the entire above-the-fold area if the no. of results is very large. Therefore, we generate the TOC from server side itself. And improve the no. of columns heuristic further to accomodate up to 4 columns. This improves page performance and utilizes real estate appropriately according to the input. Some screenshots at laptop (1366x768) resolution. https://snag.gy/AXz2rP.jpg https://snag.gy/th3Nn8.jpg More can be found in the CL comments. Fixes golang/go#21685 Updates golang/go#21686 Change-Id: Ia9b6dd1e67231d992709e4ba10ebdbedfe38b564 Reviewed-on: https://go-review.googlesource.com/c/129135 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Bryan C. Mills <bcmills@google.com> |
||
---|---|---|
.. | ||
analysis | ||
dl | ||
env | ||
proxy | ||
redirect | ||
short | ||
static | ||
util | ||
vfs | ||
corpus.go | ||
dirtrees_test.go | ||
dirtrees.go | ||
format.go | ||
godoc17_test.go | ||
godoc_test.go | ||
godoc.go | ||
index_test.go | ||
index.go | ||
linkify.go | ||
meta.go | ||
page.go | ||
parser.go | ||
pres.go | ||
README.md | ||
search.go | ||
server_test.go | ||
server.go | ||
snippet.go | ||
spec_test.go | ||
spec.go | ||
spot.go | ||
tab.go | ||
template.go | ||
versions_test.go | ||
versions.go |
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:
-
Make changes to e.g.
static/style.css
. -
Run
go generate golang.org/x/tools/godoc/static
sostatic/static.go
picks up the change. -
Run
go install golang.org/x/tools/cmd/godoc
so the compiledgodoc
binary picks up the change. -
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.