diff options
Diffstat (limited to 'blog/blog.go')
-rw-r--r-- | blog/blog.go | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/blog/blog.go b/blog/blog.go new file mode 100644 index 0000000..551fb48 --- /dev/null +++ b/blog/blog.go @@ -0,0 +1,51 @@ +// Copyright 2013 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// Command blog is a web server for the Go blog that can run on App Engine or +// as a stand-alone HTTP server. +package main + +import ( + "net/http" + "strings" + "time" + + "code.google.com/p/go.tools/blog" + "code.google.com/p/go.tools/godoc/static" + + _ "code.google.com/p/go.tools/playground" +) + +const hostname = "blog.golang.org" // default hostname for blog server + +var config = blog.Config{ + Hostname: hostname, + BaseURL: "http://" + hostname, + GodocURL: "http://golang.org", + HomeArticles: 5, // articles to display on the home page + FeedArticles: 10, // articles to include in Atom and JSON feeds + PlayEnabled: true, +} + +func init() { + // Redirect "/blog/" to "/", because the menu bar link is to "/blog/" + // but we're serving from the root. + redirect := func(w http.ResponseWriter, r *http.Request) { + http.Redirect(w, r, "/", http.StatusFound) + } + http.HandleFunc("/blog", redirect) + http.HandleFunc("/blog/", redirect) + + http.Handle("/lib/godoc/", http.StripPrefix("/lib/godoc/", http.HandlerFunc(staticHandler))) +} + +func staticHandler(w http.ResponseWriter, r *http.Request) { + name := r.URL.Path + b, ok := static.Files[name] + if !ok { + http.NotFound(w, r) + return + } + http.ServeContent(w, r, name, time.Time{}, strings.NewReader(b)) +} |