summaryrefslogtreecommitdiff
path: root/src/cmd/godoc/godoc.go
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2009-09-03 09:58:13 -0700
committerRobert Griesemer <gri@golang.org>2009-09-03 09:58:13 -0700
commit43699f220df53ee4e3d72b4ed829055303dba5eb (patch)
tree7f7eea70d5c9d7de7e2d74966fccfc0210cee9fd /src/cmd/godoc/godoc.go
parent5f07a19c6ce6ab2b73e58527c55735e4c43ca1c5 (diff)
downloadgolang-43699f220df53ee4e3d72b4ed829055303dba5eb.tar.gz
linkify EBNF sections in spec when served via godoc
R=rsc DELTA=217 (216 added, 0 deleted, 1 changed) OCL=34279 CL=34306
Diffstat (limited to 'src/cmd/godoc/godoc.go')
-rw-r--r--src/cmd/godoc/godoc.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/cmd/godoc/godoc.go b/src/cmd/godoc/godoc.go
index c8d4941f7..d3a4bc342 100644
--- a/src/cmd/godoc/godoc.go
+++ b/src/cmd/godoc/godoc.go
@@ -52,7 +52,10 @@ import (
)
-const Pkg = "/pkg/" // name for auto-generated package documentation tree
+const (
+ Pkg = "/pkg/"; // name for auto-generated package documentation tree
+ Spec = "/doc/go_spec.html";
+)
type delayTime struct {
@@ -399,6 +402,16 @@ func serveGoSource(c *http.Conn, name string) {
}
+func serveGoSpec(c *http.Conn, r *http.Request) {
+ src, err := io.ReadFile(pathutil.Join(goroot, Spec));
+ if err != nil {
+ http.NotFound(c, r);
+ return;
+ }
+ linkify(c, src);
+}
+
+
var fileServer = http.FileServer(".", "");
func serveFile(c *http.Conn, req *http.Request) {
@@ -654,6 +667,7 @@ func main() {
handler = loggingHandler(handler);
}
+ http.Handle(Spec, http.HandlerFunc(serveGoSpec));
http.Handle(Pkg, http.HandlerFunc(servePkg));
if *syncCmd != "" {
http.Handle("/debug/sync", http.HandlerFunc(dosync));