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,