diff --git a/_content/doc/debugging_with_gdb.html b/_content/doc/debugging_with_gdb.html
index e1fb292..98b70fb 100644
--- a/_content/doc/debugging_with_gdb.html
+++ b/_content/doc/debugging_with_gdb.html
@@ -17,7 +17,7 @@
 Gccgo has native gdb support.
 </p>
 <p>
-Note that 
+Note that
 <a href="https://github.com/go-delve/delve">Delve</a> is a better
 alternative to GDB when debugging Go programs built with the standard
 toolchain. It understands the Go runtime, data structures, and
@@ -220,7 +220,7 @@
 Reading symbols from  /home/user/go/src/regexp/regexp.test...
 done.
 Loading Go Runtime support.
-(gdb) 
+(gdb)
 </pre>
 
 <p>
@@ -282,7 +282,7 @@
 <p>
 Variable and function names must be qualified with the name of the packages
 they belong to. The <code>Compile</code> function from the <code>regexp</code>
-package is known to GDB as <code>'regexp.Compile'</code>. 
+package is known to GDB as <code>'regexp.Compile'</code>.
 </p>
 
 <p>
@@ -362,7 +362,7 @@
 #2  0x0000000000403299 in runtime.chanrecv1 (t=void, c=void) at/home/user/go/src/runtime/chan.c:423
 #3  0x000000000043075b in testing.RunTests (matchString={void (struct string, struct string, bool *, error *)}
  0x7ffff7f9ef60, tests=  []testing.InternalTest = {...}) at /home/user/go/src/testing/testing.go:201
-#4  0x00000000004302b1 in testing.Main (matchString={void (struct string, struct string, bool *, error *)} 
+#4  0x00000000004302b1 in testing.Main (matchString={void (struct string, struct string, bool *, error *)}
  0x7ffff7f9ef80, tests= []testing.InternalTest = {...}, benchmarks= []testing.InternalBenchmark = {...})
 at /home/user/go/src/testing/testing.go:168
 #5  0x0000000000400dc1 in main.main () at /home/user/go/src/regexp/_testmain.go:98
@@ -378,7 +378,7 @@
 <pre>
 (gdb) <b>info frame</b>
 Stack level 0, frame at 0x7ffff7f9ff88:
- rip = 0x425530 in regexp.TestFind (/home/user/go/src/regexp/find_test.go:148); 
+ rip = 0x425530 in regexp.TestFind (/home/user/go/src/regexp/find_test.go:148);
     saved rip 0x430233
  called by frame at 0x7ffff7f9ffa8
  source language minimal.
@@ -441,12 +441,12 @@
 (gdb) <b>p re</b>
 $5 = (struct regexp.Regexp *) 0xf84068d070
 (gdb) <b>p *re</b>
-$6 = {expr = "", prog = 0xf840688b80, prefix = "", prefixBytes =  []uint8, prefixComplete = true, 
-  prefixRune = 0, cond = 0 '\000', numSubexp = 0, longest = false, mu = {state = 0, sema = 0}, 
+$6 = {expr = "", prog = 0xf840688b80, prefix = "", prefixBytes =  []uint8, prefixComplete = true,
+  prefixRune = 0, cond = 0 '\000', numSubexp = 0, longest = false, mu = {state = 0, sema = 0},
   machine =  []*regexp.machine}
 (gdb) <b>p *re->prog</b>
-$7 = {Inst =  []regexp/syntax.Inst = {{Op = 5 '\005', Out = 0, Arg = 0, Rune =  []int}, {Op = 
-    6 '\006', Out = 2, Arg = 0, Rune =  []int}, {Op = 4 '\004', Out = 0, Arg = 0, Rune =  []int}}, 
+$7 = {Inst =  []regexp/syntax.Inst = {{Op = 5 '\005', Out = 0, Arg = 0, Rune =  []int}, {Op =
+    6 '\006', Out = 2, Arg = 0, Rune =  []int}, {Op = 4 '\004', Out = 0, Arg = 0, Rune =  []int}},
   Start = 1, NumCap = 2}
 </pre>
 
@@ -515,7 +515,7 @@
 (gdb) <b>p slc</b>
 $11 =  []int = {0, 0}
 (gdb) <b>p slc-&gt;</b><i>&lt;TAB&gt;</i>
-array  slc    len    
+array  slc    len
 (gdb) <b>p slc->array</b>
 $12 = (int *) 0xf84057af00
 (gdb) <b>p slc->array[1]</b>
diff --git a/_content/doc/devel/pre_go1.html b/_content/doc/devel/pre_go1.html
index 813e23c..7f1ad7b 100644
--- a/_content/doc/devel/pre_go1.html
+++ b/_content/doc/devel/pre_go1.html
@@ -10,7 +10,7 @@
 <h2 id="r60">r60 (released 2011/09/07)</h2>
 
 <p>
-The r60 release corresponds to 
+The r60 release corresponds to
 <code><a href="weekly.html#2011-08-17">weekly.2011-08-17</a></code>.
 This section highlights the most significant changes in this release.
 For a more detailed summary, see the
@@ -49,7 +49,7 @@
 <a href="/pkg/image/draw/">image/draw</a>, and then encode the result using
 <a href="/pkg/img/png">image/png</a>, then your code should still work as
 before.
-If your code <i>does</i> refer to <code>Pix</code> fields see the 
+If your code <i>does</i> refer to <code>Pix</code> fields see the
 <a href="/doc/devel/weekly.html#2011-07-19">weekly.2011-07-19</a>
 snapshot notes for how to update your code.
 </p>
@@ -85,7 +85,7 @@
 <h3 id="r60.minor">Minor revisions</h3>
 
 <p>
-r60.1 includes a 
+r60.1 includes a
 <a href="//golang.org/change/1824581bf62d">linker
 fix</a>, a pair of
 <a href="//golang.org/change/9ef4429c2c64">goplay</a>
@@ -111,7 +111,7 @@
 <h2 id="r59">r59 (released 2011/08/01)</h2>
 
 <p>
-The r59 release corresponds to 
+The r59 release corresponds to
 <code><a href="weekly.html#2011-07-07">weekly.2011-07-07</a></code>.
 This section highlights the most significant changes in this release.
 For a more detailed summary, see the
@@ -218,7 +218,7 @@
 <h2 id="r58">r58 (released 2011/06/29)</h2>
 
 <p>
-The r58 release corresponds to 
+The r58 release corresponds to
 <code><a href="weekly.html#2011-06-09">weekly.2011-06-09</a></code>
 with additional bug fixes.
 This section highlights the most significant changes in this release.
@@ -262,12 +262,12 @@
 Previously Quote would escape all non-ASCII characters.
 This also affects the <a href="/pkg/fmt/">fmt</a> package's <code>"%q"</code>
 formatting directive. The previous quoting behavior is still available via
-strconv's new <a href="/pkg/strconv/#QuoteToASCII">QuoteToASCII</a> function.   
+strconv's new <a href="/pkg/strconv/#QuoteToASCII">QuoteToASCII</a> function.
 </p>
 
 <p>
 <a href="/pkg/os/signal/">Package os/signal</a>'s
-<a href="/pkg/os/#Signal">Signal</a> and 
+<a href="/pkg/os/#Signal">Signal</a> and
 <a href="/pkg/os/#UnixSignal">UnixSignal</a> types have been moved to the
 <a href="/pkg/os/">os</a> package.
 </p>
@@ -289,7 +289,7 @@
 
 <h3 id="r58.minor">Minor revisions</h3>
 
-<p>r58.1 adds 
+<p>r58.1 adds
 <a href="//golang.org/change/293c25943586">build</a> and
 <a href="//golang.org/change/bf17e96b6582">runtime</a>
 changes to make Go run on OS X 10.7 Lion.
@@ -298,7 +298,7 @@
 <h2 id="r57">r57 (released 2011/05/03)</h2>
 
 <p>
-The r57 release corresponds to 
+The r57 release corresponds to
 <code><a href="weekly.html#2011-04-27">weekly.2011-04-27</a></code>
 with additional bug fixes.
 This section highlights the most significant changes in this release.
@@ -312,7 +312,7 @@
 newer ones.  After you update to a new Go release, gofix helps make the
 necessary changes to your programs. Gofix will handle the http, os, and syscall
 package changes described below, and we will update the program to keep up with
-future changes to the libraries. 
+future changes to the libraries.
 Gofix can’t
 handle all situations perfectly, so read and test the changes it makes before
 committing them.
@@ -352,7 +352,7 @@
 <a href="/pkg/gob/">Package gob</a> will now encode and decode values of types that implement the
 <a href="/pkg/gob/#GobEncoder">GobEncoder</a> and
 <a href="/pkg/gob/#GobDecoder">GobDecoder</a> interfaces. This allows types with unexported
-fields to transmit self-consistent descriptions; examples include 
+fields to transmit self-consistent descriptions; examples include
 <a href="/pkg/big/#Int.GobDecode">big.Int</a> and <a href="/pkg/big/#Rat.GobDecode">big.Rat</a>.
 </p>
 
@@ -383,7 +383,7 @@
 The implementation now uses <a href="/cmd/cgo/">cgo</a> to implement
 network name lookups using the C library getaddrinfo(3)
 function when possible.  This ensures that Go and C programs
-resolve names the same way and also avoids the OS X 
+resolve names the same way and also avoids the OS X
 application-level firewall.
 </p>
 
@@ -431,7 +431,7 @@
 
 <p>
 The run-time support now implements CPU and memory profiling.
-Gotest's new 
+Gotest's new
 <a href="/cmd/gotest/"><code>-test.cpuprofile</code> and
 <code>-test.memprofile</code> flags</a> make it easy to
 profile tests.
diff --git a/_content/doc/devel/weekly.html b/_content/doc/devel/weekly.html
index e17461d..cf3ea59 100644
--- a/_content/doc/devel/weekly.html
+++ b/_content/doc/devel/weekly.html
@@ -850,10 +850,10 @@
 be present in the Go 1 distribution, but will be installable from source.
 
 Error variables in the archive/tar, archive/zip, compress/gzip, compress/zlib,
-and crypto/bcrypt packages have been renamed from FooError to ErrFoo. 
+and crypto/bcrypt packages have been renamed from FooError to ErrFoo.
 There is no gofix, but the compiler will flag code that needs updating.
 
-This weekly snapshot relocates many packages to sub-repositories of the main 
+This weekly snapshot relocates many packages to sub-repositories of the main
 Go repository. These are the old and new import paths:
 
 	crypto/bcrypt          code.google.com/p/go.crypto/bcrypt
@@ -1315,7 +1315,7 @@
 	http://weekly.golang.org/doc/go1.html#equality
 
 The rune type is now an alias for int32 and character literals have the default
-type of rune. Code that uses int where it should use rune will break. 
+type of rune. Code that uses int where it should use rune will break.
 See the Go 1 release notes for the details:
 	http://weekly.golang.org/doc/go1.html#rune
 
@@ -2948,7 +2948,7 @@
 not classified as printable by unicode.IsPrint. Previously Quote would escape
 all non-ASCII characters. This also affects the fmt package's "%q" formatting
 directive. The previous quoting behavior is still available via strconv's new
-QuoteToASCII function.   
+QuoteToASCII function.
 
 Most instances of the type map[string][]string in the http package have been
 replaced with the new Values type. The http.Values type has the Get, Set, Add,
@@ -4079,7 +4079,7 @@
 
 The log package's Exit, Exitf, and Exitln functions have been renamed Fatal,
 Fatalf, and Fatalln respectively. This brings them in line with the naming of
-the testing package. 
+the testing package.
 
 The port to the "tiny" operating system has been removed. It is unmaintained
 and untested. It was a toy to show that Go can run on raw hardware and it
@@ -4087,7 +4087,7 @@
 history, so it could be brought back if needed later.
 
 This release also changes some of the internal structure of the memory
-allocator in preparation for other garbage collector changes. 
+allocator in preparation for other garbage collector changes.
 If you run into problems, please let us know.
 There is one known issue that we are aware of but have not debugged yet:
 	http://code.google.com/p/go/issues/detail?id=1464&amp;.
@@ -4322,7 +4322,7 @@
 <h2 id="2010-12-22">2010-12-22</h2>
 
 <pre>
-A small release this week. The most significant change is that some 
+A small release this week. The most significant change is that some
 outstanding cgo issues were resolved.
 
 * cgo: handle references to symbols in shared libraries.
@@ -4585,7 +4585,7 @@
 few bugs, mostly around conversions between unsigned integer and floating-point
 values, but it's stabilizing.
 
-In addition, there have been many smaller fixes and updates: 
+In addition, there have been many smaller fixes and updates:
 
 * 6l: generate dwarf variable names with disambiguating suffix.
 * container/list: make Remove return Value of removed element.
@@ -4643,7 +4643,7 @@
 <h2 id="2010-10-27">2010-10-27</h2>
 
 <pre>
-*** This release changes the encoding used by package gob. 
+*** This release changes the encoding used by package gob.
     If you store gobs on disk, see below. ***
 
 The ARM port (5g) now passes all tests. The optimizer is not yet enabled, and
@@ -4659,11 +4659,11 @@
 can be simplified to:
 	[][]int{{1, 2, 3}, {4, 5}}
 	map[string]Point{"x": {1.5, -3.5}, "y": {0, 0}}
-Gofmt can make these simplifications mechanically when invoked with the 
+Gofmt can make these simplifications mechanically when invoked with the
 new -s flag.
 
 The built-in copy function can now copy bytes from a string value to a []byte.
-Code like this (for []byte b and string s): 
+Code like this (for []byte b and string s):
 	for i := 0; i &lt; len(s); i++ {
 		b[i] = s[i]
 	}
@@ -4674,7 +4674,7 @@
 registered ahead of time with the new Register function. These changes required
 a backwards-incompatible change to the wire format.  Data written with the old
 version of the package will not be readable with the new one, and vice versa.
-(Steps were made in this change to make sure this doesn't happen again.) 
+(Steps were made in this change to make sure this doesn't happen again.)
 We don't know of anyone using gobs to create permanent data, but if you do this
 and need help converting, please let us know, and do not update to this release
 yet.  We will help you convert your data.
@@ -4717,7 +4717,7 @@
 See the previous release notes for details:
 	http://golang.org/doc/devel/release.html#2010-10-13
 
-Also included are major improvements to the linker. It is now faster, 
+Also included are major improvements to the linker. It is now faster,
 uses less memory, and more parallelizable (but not yet parallel).
 
 The nntp package has been removed from the standard library.
@@ -4840,7 +4840,7 @@
 If you want the promotion to ...,  append ... to the argument:
         func message(f string, s ...interface{}) { fmt.Printf(f, s...) }
 Without the ..., s would be passed to Printf as a single argument of type
-[]interface{}.  The bad news is you might need to fix up some of your code, 
+[]interface{}.  The bad news is you might need to fix up some of your code,
 but the compiler will detect the situation and warn you.
 
 Also, the http.Handler and http.HandlerFunc types have changed. Where http
@@ -4850,8 +4850,8 @@
 of your handler function's first parameter. See:
   http://golang.org/pkg/http/#Handler
 
-The utf8 package has a new type, String, that provides efficient indexing 
-into utf8 strings by rune (previously an expensive conversion to []int 
+The utf8 package has a new type, String, that provides efficient indexing
+into utf8 strings by rune (previously an expensive conversion to []int
 was required). See:
   http://golang.org/pkg/utf8/#String
 
@@ -5045,7 +5045,7 @@
 
 <pre>
 This release includes the syntactic modernization of more than 100 files in /test,
-and these additions, changes, and fixes: 
+and these additions, changes, and fixes:
 * 6l/8l: emit DWARF in macho.
 * 8g: use FCHS, not FMUL, for minus float.
 * 8l: emit DWARF in ELF,
@@ -5118,7 +5118,7 @@
 to make changes to your environment variables and Makefiles.
 
 All environment variables are now optional:
- - $GOOS and $GOARCH are now optional; their values should now be inferred 
+ - $GOOS and $GOARCH are now optional; their values should now be inferred
    automatically by the build system,
  - $GOROOT is now optional, but if you choose not to set it you must run
    'gomake' instead of 'make' or 'gmake' when developing Go programs
@@ -5133,7 +5133,7 @@
 to this:
     include ../../Make.inc
 
-This release also removes the deprecated functions in regexp and the 
+This release also removes the deprecated functions in regexp and the
 once package. Any code that still uses them will break.
 See the notes from the last release for details:
     http://golang.org/doc/devel/release.html#2010-08-11
@@ -5191,13 +5191,13 @@
 the once package after this release. See:
     http://golang.org/pkg/sync/#Once
 All instances of once in the standard library have been replaced with
-sync.Once. Reviewing these changes may help you modify your existing code. 
+sync.Once. Reviewing these changes may help you modify your existing code.
 The relevant changeset:
     http://code.google.com/p/go/source/detail?r=fa2c43595119
 
 A new set of methods has been added to the regular expression package, regexp.
 These provide a uniformly named approach to discovering the matches of an
-expression within a piece of text; see the package documentation for details: 
+expression within a piece of text; see the package documentation for details:
     http://golang.org/pkg/regexp/
 These new methods will, in a later release, replace the old methods for
 matching substrings.  The following methods are deprecated:
@@ -5207,10 +5207,10 @@
     MatchSlices (use FindSubmatch)
     AllMatches (use FindAll; note that n&lt;0 means 'all matches'; was n&lt;=0)
     AllMatchesString (use FindAllString; note that n&lt;0 means 'all matches'; was n&lt;=0)
-(Plus there are ten new methods you didn't know you wanted.) 
+(Plus there are ten new methods you didn't know you wanted.)
 Please update your code to use the new routines before the next release.
 
-An image.Image now has a Bounds rectangle, where previously it ranged 
+An image.Image now has a Bounds rectangle, where previously it ranged
 from (0, 0) to (Width, Height). Loops that previously looked like:
     for y := 0; y &lt; img.Height(); y++ {
         for x := 0; x &lt; img.Width(); x++ {
@@ -5283,7 +5283,7 @@
 * syscall: make go errors not clash with windows errors (thanks Alex Brainman).
 * test/run: diff old new,
 * websocket: correct challenge response (thanks Tarmigan Casebolt),
-        fix bug involving spaces in header keys (thanks Bill Neubauer). 
+        fix bug involving spaces in header keys (thanks Bill Neubauer).
 </pre>
 
 <h2 id="2010-07-29">2010-07-29</h2>
@@ -5379,12 +5379,12 @@
 <h2 id="2010-07-01">2010-07-01</h2>
 
 <pre>
-This release includes some package changes that may require changes to 
+This release includes some package changes that may require changes to
 client code.
 
 The Split function in the bytes and strings packages has been changed.
 The count argument, which limits the size of the return, previously treated
-zero as unbounded. It now treats 0 as 0, and will return an empty slice.  
+zero as unbounded. It now treats 0 as 0, and will return an empty slice.
 To request unbounded results, use -1 (or some other negative value).
 The new Replace functions in bytes and strings share this behavior.
 This may require you change your existing code.
@@ -5397,7 +5397,7 @@
 It describes an idiomatic Go program that uses goroutines and channels:
 	http://golang.org/doc/codewalk/sharemem/
 
-There is now a Projects page on the Go Dashboard that lists Go programs, 
+There is now a Projects page on the Go Dashboard that lists Go programs,
 tools, and libraries:
 	http://godashboard.appspot.com/project
 
@@ -5431,7 +5431,7 @@
 * syscall: add syscall_bsd.go to zsycall_freebsd_386.go (thanks Peter Mundy),
         add socketpair (thanks Ivan Krasin).
 * time: implement time zones for Windows (thanks Alex Brainman).
-* x509: support non-self-signed certs. 
+* x509: support non-self-signed certs.
 </pre>
 
 <h2 id="2010-06-21">2010-06-21</h2>
@@ -5445,7 +5445,7 @@
 code. For details, see:
         https://groups.google.com/group/golang-nuts/msg/6fffba90a3e3dc06
 
-The reflect package has been changed. If you have code that uses reflect, 
+The reflect package has been changed. If you have code that uses reflect,
 it will need to be updated. For details, see:
         https://groups.google.com/group/golang-nuts/msg/7a93d07c590e7beb
 
@@ -5477,7 +5477,7 @@
         fix 386 signal handler bug.
 * strconv: add AtofN, FtoaN.
 * string: add IndexFunc and LastIndexFunc (thanks Roger Peppe).
-* syslog: use local network for tests. 
+* syslog: use local network for tests.
 </pre>
 
 <h2 id="2010-06-09">2010-06-09</h2>
@@ -5491,7 +5491,7 @@
 (write x[0:] instead of &amp;x), and conversions can no longer change the names of
 types inside composite types.
 
-The fmt package now includes flexible type-driven (fmt.Scan) and 
+The fmt package now includes flexible type-driven (fmt.Scan) and
 format-driven (fmt.Scanf) scanners for all basic types.
 
 * big: bug fix for Quo aliasing problem.
@@ -5524,7 +5524,7 @@
 * spec: clean-ups and consolidation.
 * syscall: additional Windows compatibility fixes (thanks Alex Brainman).
 * test/bench: added regex-dna-parallel.go (thanks Kyle Consalus).
-* vector: type-specific Do functions now take f(type) (thanks Michael Hoisie). 
+* vector: type-specific Do functions now take f(type) (thanks Michael Hoisie).
 </pre>
 
 <h2 id="2010-05-27">2010-05-27</h2>
@@ -5532,7 +5532,7 @@
 <pre>
 A sizeable release, including standard library improvements and a slew of
 compiler bug fixes. The three-week interval was largely caused by the team
-preparing for Google I/O. 
+preparing for Google I/O.
 
 * big: add Rat type (thanks Evan Shaw),
         new features, much performance tuning, cleanups, and more tests.
@@ -5627,7 +5627,7 @@
 
 <pre>
 This release includes a new Codelab that illustrates the construction of a
-simple wiki web application: 
+simple wiki web application:
 	http://golang.org/doc/codelab/wiki/
 
 It also includes a Codewalk framework for documenting code. See:
@@ -5707,7 +5707,7 @@
 * io/ioutil: fix bug in ReadFile when Open succeeds but Stat fails.
 * kate: update for recent language changes (thanks Evan Shaw).
 * libcgo: initial mingw port work - builds but untested (thanks Joe Poirier).
-* math: new functions and special cases (thanks Charles L. Dorian) 
+* math: new functions and special cases (thanks Charles L. Dorian)
 * net: use chan bool instead of chan *netFD to avoid cycle.
 * netchan: allow client to send as well as receive.
 * nntp: new package, NNTP client (thanks Conrad Meyer).
@@ -5727,17 +5727,17 @@
 <pre>
 This release contains three language changes:
 
-1. Accessing a non-existent key in a map is no longer a run-time error.  
+1. Accessing a non-existent key in a map is no longer a run-time error.
 It now evaluates to the zero value for that type.  For example:
         x := myMap[i]   is now equivalent to:   x, _ := myMap[i]
 
-2. It is now legal to take the address of a function's return value.  
+2. It is now legal to take the address of a function's return value.
 The return values are copied back to the caller only after deferred
 functions have run.
 
 3. The functions panic and recover, intended for reporting and recovering from
 failure, have been added to the spec:
-	http://golang.org/doc/go_spec.html#Handling_panics 
+	http://golang.org/doc/go_spec.html#Handling_panics
 In a related change, panicln is gone, and panic is now a single-argument
 function.  Panic and recover are recognized by the gc compilers but the new
 behavior is not yet implemented.
@@ -5781,7 +5781,7 @@
 * xgb: fix request length and request size (thanks Firmansyah Adiputra).
 * xml: add CopyToken (thanks Kyle Consalus),
         add line numbers to syntax errors (thanks Kyle Consalus),
-        use io.ReadByter in place of local readByter (thanks Raif S. Naffah). 
+        use io.ReadByter in place of local readByter (thanks Raif S. Naffah).
 </pre>
 
 <h2 id="2010-03-22">2010-03-22</h2>
@@ -5827,7 +5827,7 @@
 	http://golang.org/doc/go_spec.html#Complex_numbers
 There is no library support as yet.
 
-This release also includes the goinstall command-line tool. 
+This release also includes the goinstall command-line tool.
 	http://golang.org/cmd/goinstall/
 	http://groups.google.com/group/golang-nuts/t/f091704771128e32
 
@@ -5849,7 +5849,7 @@
 * hash: add Sum64 interface.
 * hash/crc32: add Update function.
 * hash/crc64: new package implementing 64-bit CRC.
-* math: add ilogb, logb, remainder. (thanks Charles L. Dorian) 
+* math: add ilogb, logb, remainder. (thanks Charles L. Dorian)
 * regexp: add ReplaceAllFunc, ReplaceAllStringFunc.
 * runtime: clock garbage collection on bytes allocated, not pages in use.
 * strings: make Split(s, "", n) faster. (thanks Spring Mc)
@@ -5860,12 +5860,12 @@
 <h2 id="2010-03-04">2010-03-04</h2>
 
 <pre>
-There is one language change: the ability to convert a string to []byte or 
+There is one language change: the ability to convert a string to []byte or
 []int.  This deprecates the strings.Bytes and strings.Runes functions.
 You can convert your existing sources using these gofmt commands:
 	gofmt -r 'strings.Bytes(x) -&gt; []byte(x)' -w file-or-directory-list
 	gofmt -r 'strings.Runes(x) -&gt; []int(x)' -w file-or-directory-list
-After running these you might need to delete unused imports of the "strings" 
+After running these you might need to delete unused imports of the "strings"
 package.
 
 Other changes and fixes:
@@ -5883,7 +5883,7 @@
 * path: add Match,
 	fix bug in Match with non-greedy stars (thanks Kevin Ballard)
 * strings: delete Bytes, Runes (see above)
-* tests: an Eratosthenesque concurrent prime sieve (thanks Anh Hai Trinh) 
+* tests: an Eratosthenesque concurrent prime sieve (thanks Anh Hai Trinh)
 </pre>
 
 <h2 id="2010-02-23">2010-02-23</h2>
@@ -5908,7 +5908,7 @@
 sync: fix to work on armv5 (thanks Dean Prichard)
 websocket: fix binary frame size decoding (thanks Timo Savola)
 xml: allow unquoted attribute values in non-Strict mode (thanks Amrut Joshi)
-	treat bool as value in Unmarshal (thanks Michael Hoisie) 
+	treat bool as value in Unmarshal (thanks Michael Hoisie)
 </pre>
 
 <h2 id="2010-02-17">2010-02-17</h2>
@@ -5948,7 +5948,7 @@
 There is one language change: support for ...T parameters:
 	http://golang.org/doc/go_spec.html#Function_types
 
-You can now check build status on various platforms at the Go Dashboard: 
+You can now check build status on various platforms at the Go Dashboard:
 	http://godashboard.appspot.com
 
 * 5l/6l/8l: several minor fixes
@@ -5980,7 +5980,7 @@
 
 <pre>
 There are two small language changes: the meaning of chan &lt;- chan int
-is now defined, and functions returning functions do not need to 
+is now defined, and functions returning functions do not need to
 parenthesize the result type.
 
 There is one significant implementation change: the compilers can
@@ -6136,65 +6136,65 @@
 <h2 id="2009-12-09">2009-12-09</h2>
 
 <pre>
-Since the last release there are two changes to the language: 
+Since the last release there are two changes to the language:
 
-* new builtin copy(dst, src) copies n = min(len(dst), len(src)) 
-  elements to dst from src and returns n.  It works correctly 
-  even if dst and src overlap.  bytes.Copy is gone. 
-  Convert your programs using: 
-      gofmt -w -r 'bytes.Copy(d, s) -&gt; copy(d, s)' *.go 
+* new builtin copy(dst, src) copies n = min(len(dst), len(src))
+  elements to dst from src and returns n.  It works correctly
+  even if dst and src overlap.  bytes.Copy is gone.
+  Convert your programs using:
+      gofmt -w -r 'bytes.Copy(d, s) -&gt; copy(d, s)' *.go
 
-* new syntax x[lo:] is shorthand for x[lo:len(x)]. 
-  Convert your programs using: 
-      gofmt -w -r 'a[b:len(a)] -&gt; a[b:]' *.go 
+* new syntax x[lo:] is shorthand for x[lo:len(x)].
+  Convert your programs using:
+      gofmt -w -r 'a[b:len(a)] -&gt; a[b:]' *.go
 
-In addition, there have been many smaller fixes and updates: 
+In addition, there have been many smaller fixes and updates:
 
-* 6g/8g/5g: many bug fixes 
-* 8g: fix 386 floating point stack bug (thanks Charles Dorian) 
-* all.bash: now works even when $GOROOT has spaces (thanks Sergio Luis O. B. Correia), 
-    starting to make build work with mingw (thanks Hector Chu), 
-    FreeBSD support (thanks Devon O'Dell) 
-* big: much faster on 386. 
-* bytes: new function IndexByte, implemented in assembly 
-    new function Runes (thanks Peter Froehlich), 
-    performance tuning in bytes.Buffer. 
-* codereview: various bugs fixed 
-* container/vector: New is gone; just declare a Vector instead. 
-    call Resize to set len and cap. 
-* cgo: many bug fixes (thanks Eden Li) 
-* crypto: added MD4 (thanks Chris Lennert), 
-    added XTEA (thanks Adrian O'Grady). 
-* crypto/tls: basic client 
-* exp/iterable: new functions (thanks Michael Elkins) 
-* exp/nacl: native client tree builds again 
-* fmt: preliminary performance tuning 
-* go/ast: more powerful Visitor (thanks Roger Peppe) 
-* gob: a few bug fixes 
-* gofmt: better handling of standard input, error reporting (thanks Fazlul Shahriar) 
-    new -r flag for rewriting programs 
-* gotest: support for Benchmark functions (thanks Trevor Strohman) 
-* io: ReadFile, WriteFile, ReadDir now in separate package io/ioutil. 
-* json: new Marshal function (thanks Michael Hoisie), 
-    better white space handling (thanks Andrew Skiba), 
-    decoding into native data structures (thanks Sergey Gromov), 
-    handling of nil interface values (thanks Ross Light). 
-* math: correct handling of sin/cos of large angles 
-* net: better handling of Close (thanks Devon O'Dell and Christopher Wedgwood) 
-    support for UDP broadcast (thanks Jonathan Wills), 
-    support for empty packets 
-* rand: top-level functions now safe to call from multiple goroutines 
-(thanks Roger Peppe). 
-* regexp: a few easy optimizations 
-* rpc: better error handling, a few bug fixes 
-* runtime: better signal handling on OS X, malloc fixes, 
-    global channel lock is gone. 
-* sync: RWMutex now allows concurrent readers (thanks Péter Szabó) 
-* template: can use maps as data (thanks James Meneghello) 
-* unicode: updated to Unicode 5.2. 
-* websocket: new package (thanks Fumitoshi Ukai) 
-* xgb: preliminary X Go Bindings (thanks Tor Andersson) 
-* xml: fixed crash (thanks Vish Subramanian) 
-* misc: bbedit config (thanks Anthony Starks), 
-    kate config (thanks Evan Shaw) 
+* 6g/8g/5g: many bug fixes
+* 8g: fix 386 floating point stack bug (thanks Charles Dorian)
+* all.bash: now works even when $GOROOT has spaces (thanks Sergio Luis O. B. Correia),
+    starting to make build work with mingw (thanks Hector Chu),
+    FreeBSD support (thanks Devon O'Dell)
+* big: much faster on 386.
+* bytes: new function IndexByte, implemented in assembly
+    new function Runes (thanks Peter Froehlich),
+    performance tuning in bytes.Buffer.
+* codereview: various bugs fixed
+* container/vector: New is gone; just declare a Vector instead.
+    call Resize to set len and cap.
+* cgo: many bug fixes (thanks Eden Li)
+* crypto: added MD4 (thanks Chris Lennert),
+    added XTEA (thanks Adrian O'Grady).
+* crypto/tls: basic client
+* exp/iterable: new functions (thanks Michael Elkins)
+* exp/nacl: native client tree builds again
+* fmt: preliminary performance tuning
+* go/ast: more powerful Visitor (thanks Roger Peppe)
+* gob: a few bug fixes
+* gofmt: better handling of standard input, error reporting (thanks Fazlul Shahriar)
+    new -r flag for rewriting programs
+* gotest: support for Benchmark functions (thanks Trevor Strohman)
+* io: ReadFile, WriteFile, ReadDir now in separate package io/ioutil.
+* json: new Marshal function (thanks Michael Hoisie),
+    better white space handling (thanks Andrew Skiba),
+    decoding into native data structures (thanks Sergey Gromov),
+    handling of nil interface values (thanks Ross Light).
+* math: correct handling of sin/cos of large angles
+* net: better handling of Close (thanks Devon O'Dell and Christopher Wedgwood)
+    support for UDP broadcast (thanks Jonathan Wills),
+    support for empty packets
+* rand: top-level functions now safe to call from multiple goroutines
+(thanks Roger Peppe).
+* regexp: a few easy optimizations
+* rpc: better error handling, a few bug fixes
+* runtime: better signal handling on OS X, malloc fixes,
+    global channel lock is gone.
+* sync: RWMutex now allows concurrent readers (thanks Péter Szabó)
+* template: can use maps as data (thanks James Meneghello)
+* unicode: updated to Unicode 5.2.
+* websocket: new package (thanks Fumitoshi Ukai)
+* xgb: preliminary X Go Bindings (thanks Tor Andersson)
+* xml: fixed crash (thanks Vish Subramanian)
+* misc: bbedit config (thanks Anthony Starks),
+    kate config (thanks Evan Shaw)
 </pre>
diff --git a/_content/doc/go1.2.html b/_content/doc/go1.2.html
index 1f60514..ee5b8f9 100644
--- a/_content/doc/go1.2.html
+++ b/_content/doc/go1.2.html
@@ -307,7 +307,7 @@
 
 <p>
 The cover tool does two things.
-First, when "go test" is given the <code>-cover</code> flag, it is run automatically 
+First, when "go test" is given the <code>-cover</code> flag, it is run automatically
 to rewrite the source for the package and insert instrumentation statements.
 The test is then compiled and run as usual, and basic coverage statistics are reported:
 </p>
@@ -375,7 +375,7 @@
 There are a number of significant performance improvements in the standard library; here are a few of them.
 </p>
 
-<ul> 
+<ul>
 
 <li>
 The <a href="/pkg/compress/bzip2/"><code>compress/bzip2</code></a>
@@ -568,7 +568,7 @@
 </p>
 
 <pre>
-{{"{{"}}if eq .A 1{{"}}"}} X {{"{{"}}else{{"}}"}} {{"{{"}}if eq .A 2{{"}}"}} Y {{"{{"}}end{{"}}"}} {{"{{"}}end{{"}}"}} 
+{{"{{"}}if eq .A 1{{"}}"}} X {{"{{"}}else{{"}}"}} {{"{{"}}if eq .A 2{{"}}"}} Y {{"{{"}}end{{"}}"}} {{"{{"}}end{{"}}"}}
 </pre>
 
 <p>
@@ -632,7 +632,7 @@
 These methods allow the <a href="/pkg/io/#Reader"><code>Readers</code></a>
 and <a href="/pkg/io/#Writer"><code>Writers</code></a>
 to be re-used on new input and output readers and writers, saving
-allocation overhead. 
+allocation overhead.
 </li>
 
 <li>
@@ -642,7 +642,7 @@
 
 <li>
 The <a href="/pkg/compress/flate/"><code>compress/flate</code></a>
-package adds a <a href="/pkg/compress/flate/#Writer.Reset"><code>Reset</code></a> 
+package adds a <a href="/pkg/compress/flate/#Writer.Reset"><code>Reset</code></a>
 method on the <a href="/pkg/compress/flate/#Writer"><code>Writer</code></a>,
 to make it possible to reduce allocation when, for instance, constructing an
 archive to hold multiple compressed files.
@@ -683,14 +683,14 @@
 </li>
 
 <li>
-The 
+The
 <a href="/pkg/crypto/md5/"><code>crypto/md5</code></a> package
 adds a new <a href="/pkg/crypto/md5/#Sum"><code>Sum</code></a> function
 to simplify hashing without sacrificing performance.
 </li>
 
 <li>
-Similarly, the 
+Similarly, the
 <a href="/pkg/crypto/md5/"><code>crypto/sha1</code></a> package
 adds a new <a href="/pkg/crypto/sha1/#Sum"><code>Sum</code></a> function.
 </li>
@@ -826,7 +826,7 @@
 functions.
 Their options argument allows specification of an image
 <a href="/pkg/image/draw/#Quantizer"><code>Quantizer</code></a> to use;
-if it is <code>nil</code>, the generated GIF will use the 
+if it is <code>nil</code>, the generated GIF will use the
 <a href="/pkg/image/color/palette/#Plan9"><code>Plan9</code></a>
 color map (palette) defined in the new
 <a href="/pkg/image/color/palette/"><code>image/color/palette</code></a> package.
@@ -875,7 +875,7 @@
 whereupon it assumes a GET request.
 Finally, an HTTP server will now serve HEAD
 requests transparently, without the need for special casing in handler code.
-While serving a HEAD request, writes to a 
+While serving a HEAD request, writes to a
 <a href="/pkg/net/http/#Handler"><code>Handler</code></a>'s
 <a href="/pkg/net/http/#ResponseWriter"><code>ResponseWriter</code></a>
 are absorbed by the
@@ -884,8 +884,8 @@
 </li>
 
 <li>
-The <a href="/pkg/os/exec/"><code>os/exec</code></a> package's 
-<a href="/pkg/os/exec/#Cmd.StdinPipe"><code>Cmd.StdinPipe</code></a> method 
+The <a href="/pkg/os/exec/"><code>os/exec</code></a> package's
+<a href="/pkg/os/exec/#Cmd.StdinPipe"><code>Cmd.StdinPipe</code></a> method
 returns an <code>io.WriteCloser</code>, but has changed its concrete
 implementation from <code>*os.File</code> to an unexported type that embeds
 <code>*os.File</code>, and it is now safe to close the returned value.
@@ -946,7 +946,7 @@
 <a href="/pkg/testing/#AllocsPerRun"><code>AllocsPerRun</code></a>
 function now quantizes the return value to an integer (although it
 still has type <code>float64</code>), to round off any error caused by
-initialization and make the result more repeatable. 
+initialization and make the result more repeatable.
 </li>
 
 <li>
diff --git a/_content/doc/go1.3.html b/_content/doc/go1.3.html
index 18b3ec6..42bc589 100644
--- a/_content/doc/go1.3.html
+++ b/_content/doc/go1.3.html
@@ -9,7 +9,7 @@
 <p>
 The latest Go release, version 1.3, arrives six months after 1.2,
 and contains no language changes.
-It focuses primarily on implementation work, providing 
+It focuses primarily on implementation work, providing
 precise garbage collection,
 a major refactoring of the compiler toolchain that results in
 faster builds, especially for large projects,
@@ -18,7 +18,7 @@
 It also has an important refinement to the memory model regarding synchronization.
 As always, Go 1.3 keeps the <a href="/doc/go1compat.html">promise
 of compatibility</a>,
-and almost everything 
+and almost everything
 will continue to compile and run without change when moved to 1.3.
 </p>
 
@@ -297,13 +297,13 @@
 
 <h3 id="godoc">Changes to godoc</h3>
 <p>
-When invoked with the <code>-analysis</code> flag, 
+When invoked with the <code>-analysis</code> flag,
 <a href="//godoc.org/golang.org/x/tools/cmd/godoc">godoc</a>
 now performs sophisticated <a href="/lib/godoc/analysis/help.html">static
-analysis</a> of the code it indexes.  
+analysis</a> of the code it indexes.
 The results of analysis are presented in both the source view and the
 package documentation view, and include the call graph of each package
-and the relationships between 
+and the relationships between
 definitions and references,
 types and their methods,
 interfaces and their implementations,
@@ -334,7 +334,7 @@
 Significant instances include:
 </p>
 
-<ul> 
+<ul>
 
 <li>
 The runtime handles defers more efficiently, reducing the memory footprint by about two kilobytes
@@ -536,7 +536,7 @@
 </li>
 
 <li>
-The <a href="/pkg/net/http/"><code>net/http</code></a> package's 
+The <a href="/pkg/net/http/"><code>net/http</code></a> package's
 <a href="/pkg/net/http/#Transport"><code>Transport</code></a>
 now closes <a href="/pkg/net/http/#Request"><code>Request.Body</code></a>
 consistently, even on error.
@@ -556,7 +556,7 @@
 </li>
 
 <li>
-If the main goroutine calls 
+If the main goroutine calls
 <a href="/pkg/runtime/#Goexit"><code>runtime.Goexit</code></a>
 and all other goroutines finish execution, the program now always crashes,
 reporting a detected deadlock.
diff --git a/_content/doc/go1.4.html b/_content/doc/go1.4.html
index c8f7c9c..5d12a10 100644
--- a/_content/doc/go1.4.html
+++ b/_content/doc/go1.4.html
@@ -32,7 +32,7 @@
 <p>
 As always, Go 1.4 keeps the <a href="/doc/go1compat.html">promise
 of compatibility</a>,
-and almost everything 
+and almost everything
 will continue to compile and run without change when moved to 1.4.
 </p>
 
@@ -169,7 +169,7 @@
 docs for the <a href="/pkg/unsafe/"><code>unsafe</code></a> package
 are now explicit that unsafe code is not guaranteed to remain compatible.
 </p>
-  
+
 <p>
 <em>Updating</em>: Nothing technical has changed; this is just a clarification
 of the documentation.
@@ -369,7 +369,7 @@
 <p>
 With this in place,
 the <code>go</code> command will
-refuse to compile a package that imports <code>github.com/rsc/pdf</code>, 
+refuse to compile a package that imports <code>github.com/rsc/pdf</code>,
 ensuring that the code can be moved without breaking users.
 </p>
 
@@ -425,7 +425,7 @@
 </p>
 
 <p>
-For more information, see the 
+For more information, see the
 <a href="https://golang.org/s/go1.4-generate">design document</a>.
 </p>
 
@@ -486,7 +486,7 @@
 <li>
 The <a href="/cmd/go/#hdr-Test_packages"><code>go</code> <code>test</code></a>
 subcommand will compile and link all <code>*_test.go</code> files in the package,
-even when there are no <code>Test</code> functions in them. 
+even when there are no <code>Test</code> functions in them.
 It previously ignored such files.
 </li>
 
@@ -588,7 +588,7 @@
 The <a href="/pkg/bufio/#Scanner"><code>Scanner</code></a> type in the
 <a href="/pkg/bufio/"><code>bufio</code></a> package
 has had a bug fixed that may require changes to custom
-<a href="/pkg/bufio/#SplitFunc"><code>split functions</code></a>. 
+<a href="/pkg/bufio/#SplitFunc"><code>split functions</code></a>.
 The bug made it impossible to generate an empty token at EOF; the fix
 changes the end conditions seen by the split function.
 Previously, scanning stopped at EOF if there was no more data.
@@ -681,7 +681,7 @@
 </li>
 
 <li>
-Also in the crypto/tls package, the server now supports 
+Also in the crypto/tls package, the server now supports
 <a href="https://tools.ietf.org/html/draft-ietf-tls-downgrade-scsv-00">TLS_FALLBACK_SCSV</a>
 to help clients detect fallback attacks.
 (The Go client does not support fallback at all, so it is not vulnerable to
@@ -852,7 +852,7 @@
 has a new facility to provide more control over running a set of tests.
 If the test code contains a function
 <pre>
-func TestMain(m *<a href="/pkg/testing/#M"><code>testing.M</code></a>) 
+func TestMain(m *<a href="/pkg/testing/#M"><code>testing.M</code></a>)
 </pre>
 
 that function will be called instead of running the tests directly.
diff --git a/_content/doc/go1.6.html b/_content/doc/go1.6.html
index c8ec7e7..81be89a 100644
--- a/_content/doc/go1.6.html
+++ b/_content/doc/go1.6.html
@@ -720,10 +720,10 @@
 Second, the
 <a href="/pkg/net/http/#ServeFile"><code>ServeFile</code></a> function now refuses to serve a result
 if the request's URL path contains &ldquo;..&rdquo; (dot-dot) as a path element.
-Programs should typically use <code>FileServer</code> and 
+Programs should typically use <code>FileServer</code> and
 <a href="/pkg/net/http/#Dir"><code>Dir</code></a>
 instead of calling <code>ServeFile</code> directly.
-Programs that need to serve file content in response to requests for URLs containing dot-dot can 
+Programs that need to serve file content in response to requests for URLs containing dot-dot can
 still call <a href="/pkg/net/http/#ServeContent"><code>ServeContent</code></a>.
 Third, the
 <a href="/pkg/net/http/#Client"><code>Client</code></a> now allows user code to set the
diff --git a/_content/doc/go1.8.html b/_content/doc/go1.8.html
index 2a47fac..3b7982c 100644
--- a/_content/doc/go1.8.html
+++ b/_content/doc/go1.8.html
@@ -639,7 +639,7 @@
 <p>
   A known limitation for Go 1.8 is that the profile only reports contention for
   <a href="/pkg/sync/#Mutex"><code>sync.Mutex</code></a>,
-  not 
+  not
   <a href="/pkg/sync/#RWMutex"><code>sync.RWMutex</code></a>.
 </p>
 
diff --git a/_content/doc/mod.md b/_content/doc/mod.md
index 83c147e..e0d058e 100644
--- a/_content/doc/mod.md
+++ b/_content/doc/mod.md
@@ -3567,7 +3567,7 @@
         <code>GONOSUMDB</code>. See
         <a href="#private-module-privacy">Privacy</a>. <code>GOPRIVATE</code>
         also determines whether a module is considered private for
-        <code>GOVCS</code>. 
+        <code>GOVCS</code>.
       </td>
     </tr>
     <tr>
diff --git a/_content/doc/modules/gomod-ref.md b/_content/doc/modules/gomod-ref.md
index ba75ca3..4642884 100644
--- a/_content/doc/modules/gomod-ref.md
+++ b/_content/doc/modules/gomod-ref.md
@@ -36,7 +36,7 @@
 
 For reference on `go` commands, see [Command go](/cmd/go/).
 You can get help from the command line by typing `go help` _command-name_, as
-with `go help mod tidy`. 
+with `go help mod tidy`.
 
 **See also**
 
@@ -232,7 +232,7 @@
 ### Examples {#replace-examples}
 
 * Replacing with a fork of the module repository
-  
+
   In the following example, any version of example.com/othermodule is replaced
   with the specified fork of its code.
 
diff --git a/_content/doc/modules/major-version.md b/_content/doc/modules/major-version.md
index 9143634..0c4fa40 100644
--- a/_content/doc/modules/major-version.md
+++ b/_content/doc/modules/major-version.md
@@ -31,10 +31,10 @@
 
 * Be clear with your users about what releasing the new major version means
   for your support of previous major versions.
-  
+
   Are previous versions deprecated? Supported as they were before? Will you be
   maintaining previous versions, including with bug fixes?
-  
+
 * Be ready to take on the maintenance of two versions: the old and the new.
   For example, if you fix bugs in one, you'll often be porting those fixes into
   the other.
diff --git a/_content/doc/modules/managing-dependencies.md b/_content/doc/modules/managing-dependencies.md
index 1385a6f..b11547a 100644
--- a/_content/doc/modules/managing-dependencies.md
+++ b/_content/doc/modules/managing-dependencies.md
@@ -1,6 +1,6 @@
 <!--{
   "Title": "Managing dependencies",
-  "Path": "/doc/modules/managing-dependencies" 
+  "Path": "/doc/modules/managing-dependencies"
 }-->
 
 When your code uses external packages, those packages (distributed as modules)
@@ -70,7 +70,7 @@
 ## Locating and importing useful packages {#locating_packages}
 
 You can search [pkg.go.dev](https://pkg.go.dev) to find packages with functions
-you might find useful. 
+you might find useful.
 
 When you've found a package you want to use in your code, locate the package
 path at the top of the page and click the Copy path button to copy the path to
@@ -108,7 +108,7 @@
 directory.
 
 As you use Go tools to manage dependencies, the tools update the go.mod file so
-that it maintains a current list of your dependencies. 
+that it maintains a current list of your dependencies.
 
 When you add dependencies, Go tools also create a go.sum file that contains
 checksums of modules you depend on. Go uses this to verify the integrity of
@@ -267,7 +267,7 @@
 You might want to do this when:
 
 *   You want to make your own changes to an external module's code, such as
-    after forking and/or cloning it. For example, you might want to prepare a 
+    after forking and/or cloning it. For example, you might want to prepare a
     fix to the module, then send it as a pull request to the module's developer.
 *   You're building a new module and haven't yet published it, so it's
     unavailable on a repository where the `go get` command can reach it.
@@ -445,7 +445,7 @@
 reference](https://golang.org/cmd/go/#hdr-Module_downloading_and_verification).
 
 You can set the variable to URLs for other module proxy servers, separating URLs
-with either a comma or a pipe. 
+with either a comma or a pipe.
 
 *   When you use a comma, Go tools will try the next URL in the list only if the
     current URL returns an HTTP 404 or 410.
diff --git a/_content/doc/modules/managing-source.md b/_content/doc/modules/managing-source.md
index cb41dce..7c28fb2 100644
--- a/_content/doc/modules/managing-source.md
+++ b/_content/doc/modules/managing-source.md
@@ -52,7 +52,7 @@
 into a repository is generally as simple as with other code.
 
 The following diagram illustrates a source hierarchy for a simple module with
-two packages. 
+two packages.
 
 <img src="images/source-hierarchy.png"
      alt="Diagram illustrating a module source code hierarchy"
@@ -117,7 +117,7 @@
 ## Choosing repository scope {#repository-scope}
 
 You publish code in a module when the code should be versioned independently
-from code in other modules. 
+from code in other modules.
 
 Designing your repository so that it hosts a single module at its root directory
 will help keep maintenance simpler, particularly over time as you publish new
diff --git a/_content/doc/modules/publishing.md b/_content/doc/modules/publishing.md
index f98f07c..737ecd1 100644
--- a/_content/doc/modules/publishing.md
+++ b/_content/doc/modules/publishing.md
@@ -19,9 +19,9 @@
 * For an overview of module development, see [Developing and publishing
   modules](developing)
 * For a high-level module development workflow -- which includes publishing --
-  see [Module release and versioning workflow](/doc/modules/release-workflow).
+  see [Module release and versioning workflow](release-workflow).
 
-## Publishing steps {#steps}
+## Publishing steps
 
 Use the following steps to publish a module.
 
@@ -62,9 +62,9 @@
     ```
 
 1.  Make the module available by running the [`go list`
-  command](/cmd/go/#hdr-List_packages_or_modules) to prompt
-  Go to update its index of modules with information about the module you're
-  publishing. 
+  command](https://golang.org/cmd/go/#hdr-List_packages_or_modules) to prompt
+  Go to update its index of modules with 1nformation about the module you're
+  publishing.
 
     Precede the command with a statement to set the `GOPROXY` environment
     variable to a Go proxy. This will ensure that your request reaches the
@@ -74,12 +74,10 @@
     $ GOPROXY=proxy.golang.org go list -m example.com/mymodule@v0.1.0
     ```
 
-Developers interested in your module import a package from it and run the
-[`go get` command](/ref/mod#go-get)
-just as they would with any other module. They can run the
-[`go get` command](/ref/mod#go-get)
-for latest versions or they can specify a particular version, as in the
-following example:
+Developers interested in your module import a package from it and run the [`go
+get` command]() just as they would with any other module. They can run the [`go
+get` command]() for latest versions or they can specify a particular version, as
+in the following example:
 
 ```
 $ go get example.com/mymodule@v0.1.0
diff --git a/_content/doc/modules/release-workflow.md b/_content/doc/modules/release-workflow.md
index 097a57a..e09af4b 100644
--- a/_content/doc/modules/release-workflow.md
+++ b/_content/doc/modules/release-workflow.md
@@ -5,7 +5,7 @@
 
 When you develop modules for use by other developers, you can follow a workflow
 that helps ensure a reliable, consistent experience for developers using the
-module. This topic describes the high-level steps in that workflow. 
+module. This topic describes the high-level steps in that workflow.
 
 For an overview of module development, see [Developing and publishing
 modules](developing).
@@ -50,7 +50,7 @@
     out. For more, see [Publishing the first (unstable) version](#first-unstable).
 
 1.  After your v0 version is published, you can (and should!) continue to
-    **release new versions** of it. 
+    **release new versions** of it.
 
     These new versions might include bug fixes (patch releases), additions to
     the module's public API (minor releases), and even breaking changes. Because
@@ -99,7 +99,7 @@
 
 You can publish pre-release versions to make a module available for others to
 try it out and give you feedback. A pre-release version includes no guarantee of
-stability. 
+stability.
 
 Pre-release version numbers are appended with a pre-release identifier. For more
 on version numbers, see [Module version numbering](/doc/modules/version-numbers).
diff --git a/_content/doc/modules/version-numbers.md b/_content/doc/modules/version-numbers.md
index 70ec30b..7ad9d97 100644
--- a/_content/doc/modules/version-numbers.md
+++ b/_content/doc/modules/version-numbers.md
@@ -10,23 +10,18 @@
 
 When you're developing code that uses external modules, you can use the version
 numbers to understand an external module's stability when you're considering an
-upgrade. For more on managing versions, see
-[Managing dependencies](/doc/modules/managing-dependencies).
-
-When you're developing your own modules, your version numbers will
+upgrade. When you're developing your own modules, your version numbers will
 signal your modules' stability and backward compatibility to other developers.
-For more about versioning in the module development workflow, see
-[Module release and versioning workflow](/doc/modules/release-workflow).
 
 This topic describes what module version numbers mean.
 
 **See also**
 
 * When you're using external packages in your code, you can manage those
-  dependencies with Go tools. For more, see [Managing dependencies](/doc/modules/managing-dependencies).
+  dependencies with Go tools. For more, see [Managingdependencies](managing-dependencies).
 * If you're developing modules for others to use, you apply a version number
   when you publish the module, tagging the module in its repository. For more,
-  see [Publishing a module](/doc/modules/publishing).
+  see [Publishing a module](publishing).
 
 A released module is published with a version number in the semantic versioning
 model, as in the following illustration:
@@ -86,7 +81,8 @@
   </tbody>
 </table>
 
-## In development {#in-development}
+<a id="in-development" ></a>
+## In development
 
 Signals that the module is still in development and **unstable**. This release
 carries no backward compatibility or stability guarantees.
@@ -95,17 +91,14 @@
 
 **Pseudo-version number**
 
-```
-v0.0.0-20170915032832-14c0d48ead0c
-```
+> v0.0.0-20170915032832-14c0d48ead0c
 
 **v0 number**
 
-```
-v0.x.x
-```
+> v0.x.x
 
-### Pseudo-version number {#pseudo}
+<a id="pseudo" ></a>
+### Pseudo-version number
 
 When a module has not been tagged in its repository, Go tools will generate a
 pseudo-version number for use in the go.mod file of code that calls functions in
@@ -121,11 +114,11 @@
 A pseudo-version number has three parts separated by dashes, as shown in the
 following form:
 
-#### Syntax {#pseudo-syntax}
+#### Syntax
 
 _baseVersionPrefix_-_timestamp_-_revisionIdentifier_
 
-#### Parts {#pseudo-parts}
+#### Parts
 
 * **baseVersionPrefix** (vX.0.0 or vX.Y.Z-0) is a value derived either from a
   semantic version tag that precedes the revision or from vX.0.0 if there is no
@@ -137,7 +130,8 @@
 * **revisionIdentifier** (abcdefabcdef) is a 12-character prefix of the commit
   hash, or in Subversion, a zero-padded revision number.
 
-### v0 number {#v0}
+<a id="v0" ></a>
+### v0 number
 
 A module published with a v0 number will have a formal semantic version number
 with a major, minor, and patch part, as well as an optional pre-release
@@ -149,12 +143,13 @@
 developer with code consuming functions in a v0 module is responsible for
 adapting to incompatible changes until v1 is released.
 
-## Pre-release version {#pre-release}
+<a id="pre-release" ></a>
+## Pre-release version
 
 Signals that this is a pre-release milestone, such as an alpha or beta. This
 release carries no stability guarantees.
 
-#### Example {#pre-release-example}
+#### Example
 
 ```
 vx.x.x-beta.2
@@ -163,12 +158,13 @@
 A module's developer can use a pre-release identifier with any major.minor.patch
 combination by appending a hyphen and the pre-release identifier.
 
-## Minor version {#minor}
+<a id="minor" ></a>
+## Minor version
 
 Signals backward-compatible changes to the module’s public API. This release
 guarantees backward compatibility and stability.
 
-#### Example {#minor-example}
+#### Example
 
 ```
 vx.4.x
@@ -182,12 +178,13 @@
 that another developer might want to use. However, a developer using previous
 minor versions needn’t change their code otherwise.
 
-## Patch version {#patch}
+<a id="patch" ></a>
+## Patch version
 
 Signals changes that don't affect the module's public API or its dependencies.
 This release guarantees backward compatibility and stability.
 
-#### Example {#patch-example}
+#### Example
 
 ```
 vx.x.1
@@ -197,17 +194,16 @@
 fixes. Developers of consuming code can upgrade to this version safely without
 needing to change their code.
 
-## Major version {#major}
+<a id="major" ></a>
+## Major version
 
 Signals backward-incompatible changes in a module’s public API. This release
 carries no guarantee that it will be backward compatible with preceding major
 versions.
 
-#### Example {#major-example}
+#### Example
 
-```
 v1.x.x
-```
 
 A v1 or above version number signals that the module is stable for use (with
 exceptions for its pre-release versions).
@@ -234,6 +230,6 @@
 A major version update makes this a new module with a separate history from the
 module's previous version. If you're developing modules to publish for others,
 see "Publishing breaking API changes" in [Module release and versioning
-workflow](/doc/modules/release-workflow). 
+workflow](release-workflow).
 
-For more on the module directive, see [go.mod reference](/doc/modules/gomod-ref).
+For more on the module directive, see [go.mod reference](gomod-ref).
diff --git a/_content/doc/tutorial/add-a-test.html b/_content/doc/tutorial/add-a-test.html
index 65756cb..d14ddf4 100644
--- a/_content/doc/tutorial/add-a-test.html
+++ b/_content/doc/tutorial/add-a-test.html
@@ -42,7 +42,7 @@
     "regexp"
 )
 
-// TestHelloName calls greetings.Hello with a name, checking 
+// TestHelloName calls greetings.Hello with a name, checking
 // for a valid return value.
 func TestHelloName(t *testing.T) {
     name := "Gladys"
@@ -53,7 +53,7 @@
     }
 }
 
-// TestHelloEmpty calls greetings.Hello with an empty string, 
+// TestHelloEmpty calls greetings.Hello with an empty string,
 // checking for an error.
 func TestHelloEmpty(t *testing.T) {
     msg, err := Hello("")
diff --git a/_content/doc/tutorial/greetings-multiple-people.html b/_content/doc/tutorial/greetings-multiple-people.html
index 1d83192..1e53217 100644
--- a/_content/doc/tutorial/greetings-multiple-people.html
+++ b/_content/doc/tutorial/greetings-multiple-people.html
@@ -66,7 +66,7 @@
         if err != nil {
             return nil, err
         }
-        // In the map, associate the retrieved message with 
+        // In the map, associate the retrieved message with
         // the name.
         messages[name] = message
     }
diff --git a/_content/doc/tutorial/handle-errors.html b/_content/doc/tutorial/handle-errors.html
index 76f7a4f..4ffadbc 100644
--- a/_content/doc/tutorial/handle-errors.html
+++ b/_content/doc/tutorial/handle-errors.html
@@ -39,7 +39,7 @@
         return "", errors.New("empty name")
     }</ins>
 
-    // If a name was received, return a value that embeds the name 
+    // If a name was received, return a value that embeds the name
     // in a greeting message.
     message := fmt.Sprintf("Hi, %v. Welcome!", name)
     return message<ins>, nil</ins>
