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.jpghttps://snag.gy/th3Nn8.jpg
More can be found in the CL comments.
Fixesgolang/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>