aboutsummaryrefslogtreecommitdiff
path: root/blog/blog.go
diff options
context:
space:
mode:
Diffstat (limited to 'blog/blog.go')
-rw-r--r--blog/blog.go51
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))
+}