Syntax highlighting
diff --git a/README.md b/README.md
index 963ea7a..e393101 100644
--- a/README.md
+++ b/README.md
@@ -10,7 +10,6 @@
 
 None of the other middleware chaining solutions
 behaves exactly like Alice.
-
 Alice is as minimal as a chaining solution gets.
 In its essence, it's just a for loop that does the wrapping for you.
 
@@ -18,43 +17,49 @@
 
 Your middleware constructors should have the form of
 
-    func (http.Handler) http.Handler
+```go
+func (http.Handler) http.Handler
+`
 
 Some middleware provide this out of the box.
 For ones that don't, it's trivial to write one yourself.
 
-    func myStripPrefix(h http.Handler) http.Handler {
-        return http.StripPrefix("/old", h)
-    }
+```go
+func myStripPrefix(h http.Handler) http.Handler {
+    return http.StripPrefix("/old", h)
+}
+`
 
 This complete example shows the full power of Alice.
 
-	package main
+```go
+package main
 
-	import (
-		"net/http"
-		"time"
+import (
+    "net/http"
+    "time"
 
-		"github.com/PuerkitoBio/throttled"
-		"github.com/justinas/alice"
-		"github.com/justinas/nosurf"
-	)
+    "github.com/PuerkitoBio/throttled"
+    "github.com/justinas/alice"
+    "github.com/justinas/nosurf"
+)
 
-	func timeoutHandler(h http.Handler) http.Handler {
-		return http.TimeoutHandler(h, 1*time.Second, "timed out")
-	}
+func timeoutHandler(h http.Handler) http.Handler {
+    return http.TimeoutHandler(h, 1*time.Second, "timed out")
+}
 
-	func myApp(w http.ResponseWriter, r *http.Request) {
-		w.Write([]byte("Hello world!"))
-	}
+func myApp(w http.ResponseWriter, r *http.Request) {
+    w.Write([]byte("Hello world!"))
+}
 
-	func main() {
-		th := throttled.Interval(throttled.PerSec(10), 1, &throttled.VaryBy{Path: true}, 50)
-		myHandler := http.HandlerFunc(myApp)
+func main() {
+    th := throttled.Interval(throttled.PerSec(10), 1, &throttled.VaryBy{Path: true}, 50)
+    myHandler := http.HandlerFunc(myApp)
 
-		chain := alice.New(th.Throttle, timeoutHandler, nosurf.NewPure).Then(myHandler)
-		http.ListenAndServe(":8000", chain)
-	}
+    chain := alice.New(th.Throttle, timeoutHandler, nosurf.NewPure).Then(myHandler)
+    http.ListenAndServe(":8000", chain)
+}
+`
 
 Here, the request will pass [throttled](https://github.com/PuerkitoBio/throttled) first
 then an http.TimeoutHandler we've set up,