1
0
mirror of https://github.com/golang/go synced 2024-11-18 10:54:40 -07:00
go/godoc
Agniva De Sarker 3e7aa9e599 godoc: generate TOC from server-side for search page
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>
2018-10-19 20:12:13 +00:00
..
analysis all: fix typos in comments 2018-08-10 18:15:57 +00:00
dl godoc: move third-party godoc deps behind build tag 2018-10-02 22:38:33 +00:00
env godoc: migrate to App Engine flexible 2018-10-02 04:34:10 +00:00
proxy godoc: migrate to App Engine flexible 2018-10-02 04:34:10 +00:00
redirect godoc/redirect: redirect design docs to Gerrit, not GitHub 2018-08-08 21:07:32 +00:00
short godoc: move third-party godoc deps behind build tag 2018-10-02 22:38:33 +00:00
static godoc: generate TOC from server-side for search page 2018-10-19 20:12:13 +00:00
util tools: add import comments. 2014-12-09 22:42:16 +00:00
vfs godoc/vfs/zipfs: join paths to get correct RootType 2018-09-28 16:24:37 +00:00
corpus.go godoc: show version information for stdlib 2018-07-17 18:09:30 +00:00
dirtrees_test.go godoc: add benchmark for directory scan 2018-04-15 15:36:21 +00:00
dirtrees.go godoc/vfs: improve implementation of RootType 2018-04-11 20:41:25 +00:00
format.go go.tools/godoc: Fix jump-to-line in source view. 2013-08-01 11:52:25 +10: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
godoc.go godoc: generate TOC from server-side for search page 2018-10-19 20:12:13 +00:00
index_test.go x/tools/godoc: gofmt -s -w 2017-02-15 21:42:32 +00:00
index.go all: fix typos in comments 2018-08-10 18:15:57 +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 godoc: inject treeview content only when needed 2018-10-11 02:39:00 +00:00
parser.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
pres.go godoc, cmd/godoc: remove CLI support 2018-10-11 02:31:40 +00:00
README.md godoc: add GoogleCN property to pages 2017-08-02 21:09:52 +00:00
search.go godoc: generate TOC from server-side for search page 2018-10-19 20:12:13 +00:00
server_test.go godoc: fix counting of package files in GetPageInfo 2018-04-16 18:17:07 +00:00
server.go cmd/godoc: cleanup documentation for CLI mode 2018-10-18 18:24:39 +00:00
snippet.go godoc: add version info for struct fields 2018-07-17 23:22:00 +00:00
spec_test.go godoc: accept scanner.RawString too during EBNF parsing 2018-06-25 04:25:21 +00:00
spec.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_test.go godoc: fix tests on Go 1.9 2018-07-25 19:11:30 +00:00
versions.go godoc: correctly parse packages with digits in the package name 2018-07-22 15:00:05 +00:00

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.