1
0
mirror of https://github.com/golang/go synced 2024-11-18 10:54:40 -07:00
go/godoc
Agniva De Sarker 16d1af8d88 godoc: group package home page list by root
This CL groups the package list into two groups - standard library(GOROOT),
and third-party code(GOPATH).

It also wraps the list with a collapsible div header used in the package
documentation page. This makes the entire page easy to view and manage, and also
makes it consistent with the rest of the pages.

To implement this, a new function was added to the filesystem interface
which returns the root type of the filesystem. In most cases, it is either GOROOT
or GOPATH. There are other kinds of filesystems which are not used in the home page,
so additional values have been added to satisfy the interface.

A side effect of this is that the html template code has become a bit spaghetti-like
with if conditions all over. This is because the same template is used to render
a package directory as well as the package home page. A better way is to use
two separate templates for the different tasks. This cleans out a lot of the
if conditions and make for a much cleaner code. This has been taken care in CL 101295.

Fixes golang/go#3305
Fixes golang/go#15020

Change-Id: I876357dc76280a7df2ed08d7c6bc53d9a41e69ab
Reviewed-on: https://go-review.googlesource.com/95835
Run-TryBot: Andrew Bonventre <andybons@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Andrew Bonventre <andybons@golang.org>
2018-04-10 16:41:40 +00:00
..
analysis godoc: fix crash in -analysis 2017-06-13 17:41:52 +00:00
dl godoc/dl: provide JSON feed of releases 2018-02-23 16:36:39 +00:00
proxy godoc/proxy: remove unused cacheKey function 2018-01-05 02:11:35 +00:00
redirect x/tools/godoc: fix redirect to Gerrit 2017-07-31 16:24:22 +00:00
short godoc: hide appengine dependencies behind build tags 2016-01-04 23:08:03 +00:00
static godoc: group package home page list by root 2018-04-10 16:41:40 +00:00
util tools: add import comments. 2014-12-09 22:42:16 +00:00
vfs godoc: group package home page list by root 2018-04-10 16:41:40 +00:00
appengine.go godoc: proxy /compile requests to play.golang.org 2018-01-04 23:58:58 +00:00
cmdline_test.go cmd/godoc: provide -all flag to output unexported identifiers 2018-03-16 16:52:36 +00:00
cmdline.go cmd/godoc: provide -all flag to output unexported identifiers 2018-03-16 16:52:36 +00:00
corpus.go godoc: init corpus in a separate goroutine in http mode 2018-02-13 20:23:58 +00:00
dirtrees_test.go godoc: sort package listing 2018-04-01 16:57:15 +00:00
dirtrees.go godoc: group package home page list by root 2018-04-10 16:41:40 +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: fix out-of-bounds panic when serving top-level files 2017-08-04 00:32:20 +00:00
godoc.go godoc: group package home page list by root 2018-04-10 16:41:40 +00:00
index_test.go x/tools/godoc: gofmt -s -w 2017-02-15 21:42:32 +00:00
index.go godoc: remove some unused code 2017-01-09 19:59:23 +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: add GoogleCN property to pages 2017-08-02 21:09:52 +00:00
parser.go go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11:00
pres.go cmd/godoc: provide -all flag to output unexported identifiers 2018-03-16 16:52:36 +00:00
README.md godoc: add GoogleCN property to pages 2017-08-02 21:09:52 +00:00
search.go godoc: add GoogleCN property to pages 2017-08-02 21:09:52 +00:00
server.go godoc: show synopses for subdirectories in package view 2018-02-23 18:19:23 +00:00
snippet.go godoc: revert support for Go 1.8 aliases 2016-11-04 21:17:32 +00:00
spec.go godoc: move bulk of the code to the package 2013-07-17 17:09:54 +10: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 go.tools: use golang.org/x/... import paths 2014-11-10 08:50:40 +11: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.