diff --git a/README.md b/README.md
index 34fd70c..b43b0dc 100644
--- a/README.md
+++ b/README.md
@@ -15,9 +15,11 @@
 pflag is available using the standard `go get` command.
 
 Install by running:
+
     go get github.com/ogier/pflag
 
 Run tests by running:
+
     go test github.com/ogier/pflag
 
 ## Usage
@@ -26,7 +28,9 @@
 pflag under the name "flag" then all code should continue to function
 with no changes.
 
-    import flag "github.com/ogier/pflag"
+``` go
+import flag "github.com/ogier/pflag"
+```
 
 There is one exception to this: if you directly instantiate the Flag struct
 there is one more field "Shorthand" that you will need to set.
@@ -35,25 +39,44 @@
 unaffected.
 
 Define flags using flag.String(), Bool(), Int(), etc. Example:
-    var ip *int = flag.Int("flagname", 1234, "help message for flagname")
+
+``` go
+var ip *int = flag.Int("flagname", 1234, "help message for flagname")
+```
+
 If you like, you can bind the flag to a variable using the Var() functions.
-    var flagvar int
-    func init() {
-        flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
-    }
+
+``` go
+var flagvar int
+func init() {
+    flag.IntVar(&flagvar, "flagname", 1234, "help message for flagname")
+}
+```
+
 Or you can create custom flags that satisfy the Value interface (with
 pointer receivers) and couple them to flag parsing by
-    flag.Var(&flagVal, "name", "help message for flagname")
+
+``` go
+flag.Var(&flagVal, "name", "help message for flagname")
+```
+
 For such flags, the default value is just the initial value of the variable.
 
 After all flags are defined, call
-    flag.Parse()
+
+``` go
+flag.Parse()
+```
+
 to parse the command line into the defined flags.
 
 Flags may then be used directly. If you're using the flags themselves,
 they are all pointers; if you bind to variables, they're values.
-    fmt.Println("ip has value ", *ip);
-    fmt.Println("flagvar has value ", flagvar);
+
+``` go
+fmt.Println("ip has value ", *ip);
+fmt.Println("flagvar has value ", flagvar);
+```
 
 After parsing, the arguments after the flag are available as the
 slice flag.Args() or individually as flag.Arg(i).
@@ -62,34 +85,49 @@
 The pflag package also defines some new functions that are not in flag,
 that give one-letter shorthands for flags. You can use these by appending
 'P' to the name of any function that defines a flag.
-    var ip = flag.IntP("flagname", "f", 1234, "help message")
-    var flagvar bool
-    func init() {
-        flag.BoolVarP("boolname", "b", true, "help message")
-    }
-    flag.VarP(&flagVar, "varname", "v", 1234, "help message")
+
+``` go
+var ip = flag.IntP("flagname", "f", 1234, "help message")
+var flagvar bool
+func init() {
+    flag.BoolVarP("boolname", "b", true, "help message")
+}
+flag.VarP(&flagVar, "varname", "v", 1234, "help message")
+```
+
 Shorthand letters can be used with single dashes on the command line.
 Boolean shorthand flags can be combined with other shorthand flags.
 
 Command line flag syntax:
-    --flag    // boolean flags only
-    --flag=x
-    --flag x  // non-boolean flags only
+
+``` go
+--flag    // boolean flags only
+--flag=x
+--flag x  // non-boolean flags only
+```
+
 The last form is not permitted for boolean flags because the
 meaning of the command
-    cmd --flag *
+
+``` go
+cmd --flag *
+```
+
 will change if there is a file called 0, false, etc.  You must
 use the --flag=false form to turn off a boolean flag.
 
 Unlike the flag package, a single dash before an option means something
 different than a double dash. Single dashes signify a series of shorthand
 letters for flags. All but the last shorthand letter must be boolean flags.
-    -f          // f must be boolean
-    -abc        // all flags must be boolean
-    -abcn=1234
-    -abcn 1234  // n must be non-boolean
-    -abcn1234   // n must be non-boolean
-    -Ifile      // I must be non-boolean
+
+``` go
+-f          // f must be boolean
+-abc        // all flags must be boolean
+-abcn=1234
+-abcn 1234  // n must be non-boolean
+-abcn1234   // n must be non-boolean
+-Ifile      // I must be non-boolean
+```
 
 Flag parsing stops after the terminator "--". Unlike the flag package,
 flags can be interspersed with arguments anywhere on the command line
