diff --git a/content/6years.article b/content/6years.article
index 662ce74..a5d3ec1 100644
--- a/content/6years.article
+++ b/content/6years.article
@@ -36,7 +36,7 @@
 [[https://groups.google.com/forum/#!topic/Golang-nuts/8oCSjAiKXUQ][official Go plugin for Sublime Text]],
 with better support for other editors in the pipeline.
 
-Early next year we will release more improvements in Go 1.6, including 
+Early next year we will release more improvements in Go 1.6, including
 HTTP/2 support for [[https://golang.org/pkg/net/http/][net/http]] servers and
 clients, an official package vendoring mechanism, support for blocks in text
 and HTML templates, a memory sanitizer that checks both Go and C/C++ code, and
diff --git a/content/7years.article b/content/7years.article
index ffc43e7..0957e85 100644
--- a/content/7years.article
+++ b/content/7years.article
@@ -6,7 +6,6 @@
 
 * Seven years of Go
 
-
 .html gopherbelly.html
 
 Today marks seven years since we open-sourced our preliminary sketch of Go.
diff --git a/content/8years.article b/content/8years.article
index 78876ca..617193c 100644
--- a/content/8years.article
+++ b/content/8years.article
@@ -23,7 +23,7 @@
 ** Developers love Go
 
 Go has been embraced by developers all over the world with approximately one
-million users worldwide. In the [[https://octoverse.github.com/][freshly published 2017 Octoverse]] 
+million users worldwide. In the [[https://octoverse.github.com/][freshly published 2017 Octoverse]]
 by GitHub, *Go*has*become*the*#9*most*popular*language*, surpassing C.
 *Go*is*the*fastest*growing*language*on*GitHub*in*2017* in the top 10 with
 *52%*growth*over*the*previous*year*. In growth, Go swapped places with
@@ -34,20 +34,19 @@
 Source: [[https://octoverse.github.com/][octoverse.github.com]]
 
 In [[https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wanted][Stack Overflow's 2017 developer survey]]
-, Go was the only language that was both on the *top*5*most*loved*and*top*5*most*wanted* languages. 
+, Go was the only language that was both on the *top*5*most*loved*and*top*5*most*wanted* languages.
 People who use Go, love it, and the people who aren’t using Go, want to be.
 
 .image 8years/image3.png
-
 .image 8years/image4.png
 
 Source: [[https://insights.stackoverflow.com/survey/2017#most-loved-dreaded-and-wanted][insights.stackoverflow.com/survey/2017]]
 
 ** Go: The language of Cloud Infrastructure
 
-In 2014, analyst Donnie Berkholz called Go 
+In 2014, analyst Donnie Berkholz called Go
 [[http://redmonk.com/dberkholz/2014/03/18/go-the-emerging-language-of-cloud-infrastructure/][the emerging language of cloud infrastructure]].
-*By*2017,*Go*has*emerged*as*the*language*of*cloud*infrastructure*. 
+*By*2017,*Go*has*emerged*as*the*language*of*cloud*infrastructure*.
 Today, *every*single*cloud*company*has*critical*components*of*their*cloud*infrastructure*implemented*in*Go*
 including Google Cloud, AWS, Microsoft Azure, Digital Ocean, Heroku and many others. Go
 is a key part of cloud companies like Alibaba, Cloudflare, and Dropbox. Go is
@@ -74,14 +73,14 @@
 [[https://blog.golang.org/contributors-summit][contributor summit]] where
 people from across the Go community came together to
 discuss the needs and future of the Go project. Shortly after, we had the
-first [[https://blog.golang.org/contributor-workshop][Go contributor workshop]] 
+first [[https://blog.golang.org/contributor-workshop][Go contributor workshop]]
 where hundreds of people came to make their first Go contribution.
 
 .image 8years/photo.jpg
 
 Photo by Sameer Ajmani
 
-** Go’s impact on open source 
+** Go’s impact on open source
 
 Go has become a major force in the world of open source powering some of the
 most popular projects and enabling innovations across many industries. Find
@@ -113,7 +112,7 @@
   feature-rich metrics dashboard and graph editor for Graphite,
   Elasticsearch, OpenTSDB, Prometheus and InfluxDB.
 
-- [[https://getlantern.org/][Lantern]] delivers fast, reliable and secure access to blocked websites and apps. 
+- [[https://getlantern.org/][Lantern]] delivers fast, reliable and secure access to blocked websites and apps.
 
 - [[https://syncthing.net/][Syncthing]] is an open-source cross platform
   peer-to-peer continuous file synchronization application
@@ -155,6 +154,6 @@
 attending or speaking at events, helping others learn or improve, open
 sourcing Go packages you wrote, contributing artwork, introducing Go to
 someone, or being part of the Go community. Without you, Go would not be as
-complete, useful, or successful as it is today. 
+complete, useful, or successful as it is today.
 
 Thank you, and here’s to eight more years!
diff --git a/content/conduct-2018.article b/content/conduct-2018.article
index 64edcf2..7fbda8c 100644
--- a/content/conduct-2018.article
+++ b/content/conduct-2018.article
@@ -12,27 +12,27 @@
 I was fortunate to be one of the community members
 invited to participate in both drafting and then enforcing
 the Go Code of Conduct.
-Since then, we have learned two lessons about 
-limitations in our code of conduct that restricted us from 
+Since then, we have learned two lessons about
+limitations in our code of conduct that restricted us from
 being able to cultivate the safe culture
-essential to Go’s success. 
+essential to Go’s success.
 
 The first lesson we learned is that toxic behaviors by
-project participants in non-project spaces can have a 
+project participants in non-project spaces can have a
 negative impact on the project affecting the security and safety of
 community members. There were a few reported
 incidents where actions took place outside of project spaces
-but the impact was felt inside our community. The specific 
-language in our code of conduct restricted our ability to 
-respond only to actions happening “in the official 
-forums operated by the Go project”. We needed a way 
-to protect our community members wherever they are. 
+but the impact was felt inside our community. The specific
+language in our code of conduct restricted our ability to
+respond only to actions happening “in the official
+forums operated by the Go project”. We needed a way
+to protect our community members wherever they are.
 
-The second lesson we learned is that the demands required 
+The second lesson we learned is that the demands required
 to enforce the code
-of conduct place too heavy of a burden on volunteers. 
-The initial version of the code of conduct presented the 
-working group as disciplinarians. It was soon clear 
+of conduct place too heavy of a burden on volunteers.
+The initial version of the code of conduct presented the
+working group as disciplinarians. It was soon clear
 that this was too much, so in early 2017 [[https://golang.org/cl/37014][we changed the group’s role]]
 to that of advisors and mediators.
 Still, working group community members
@@ -40,14 +40,14 @@
 This well-intentioned shift left us without an enforcement mechanism
 without solving the issue with overburdened volunteers.
 
-In mid-2017, I represented the Go project in a meeting with 
-Google’s Open Source Programs Office and Open Source Strategy Team 
+In mid-2017, I represented the Go project in a meeting with
+Google’s Open Source Programs Office and Open Source Strategy Team
 to address the shortcomings in our respective
 codes of conduct, particularly in their enforcement.
 It quickly became clear that our problems had a lot in common,
 and that working together on a single code of conduct for all
-of Google’s open source projects made sense. 
-We started with the text from the  
+of Google’s open source projects made sense.
+We started with the text from the
 Contributor Covenant Code of Conduct v1.4
 and then made changes, influenced by
 our experiences in Go community and our collective experiences in open source.
@@ -55,26 +55,26 @@
 
 Today the Go project is adopting this new code of conduct,
 and we’ve updated [[https://golang.org/conduct][golang.org/conduct]].
-This revised code of conduct retains much of the intent, structure and 
-language of the original Go code of conduct while making two critical 
-changes that address the shortcomings identified above. 
+This revised code of conduct retains much of the intent, structure and
+language of the original Go code of conduct while making two critical
+changes that address the shortcomings identified above.
 
 First, [[https://golang.org/conduct/#scope][the new code of conduct makes clear]] that people who
 participate in any kind of harassment or inappropriate behavior,
-even outside our project spaces, are not welcome in our project spaces. 
-This means that the Code of Conduct applies outside 
-the project spaces when there is a reasonable belief that 
+even outside our project spaces, are not welcome in our project spaces.
+This means that the Code of Conduct applies outside
+the project spaces when there is a reasonable belief that
 an individual’s behavior may have a negative
 impact on the project or its community.
 
 Second, in the place of the working group,
-[[https://golang.org/conduct/#reporting][the new code of conduct introduces a single Project Steward]] 
+[[https://golang.org/conduct/#reporting][the new code of conduct introduces a single Project Steward]]
 who will have explicit training and support for this role.
 The Project Steward will receive reported violations
 and then work with a committee,
 consisting of representatives from the Open Source Programs Office
 and the Google Open Source Strategy team,
-to find a resolution. 
+to find a resolution.
 
 Our first Project Steward will be [[https://twitter.com/cassandraoid][Cassandra Salisbury]].
 She is well known to the Go community as a member of Go Bridge,
@@ -83,8 +83,8 @@
 Cassandra now works on the Go team at Google
 with a focus on advocating for and supporting the Go community.
 
-We are grateful to everyone who served on the original Code of 
-Conduct Working Group. Your efforts were essential in creating an 
+We are grateful to everyone who served on the original Code of
+Conduct Working Group. Your efforts were essential in creating an
 inclusive and safe community.
 
 We believe the code of conduct has contributed to the
diff --git a/content/constants.article b/content/constants.article
index 36c4edc..5148cf1 100644
--- a/content/constants.article
+++ b/content/constants.article
@@ -264,7 +264,7 @@
 Numeric constants live in an arbitrary-precision numeric space; they are just regular numbers.
 But when they are assigned to a variable the value must be able to fit in the destination.
 We can declare a constant with a very large value:
-	
+
 .code constants/float3.go /Huge/
 
 —that's just a number, after all—but we can't assign it or even print it. This statement won't even compile:
@@ -512,5 +512,3 @@
 and have the results mean what you expect.
 
 Because in Go, numeric constants work as you expect: like numbers.
-
-
diff --git a/content/contributors-summit-2019.article b/content/contributors-summit-2019.article
index 052e7ef..ae43178 100644
--- a/content/contributors-summit-2019.article
+++ b/content/contributors-summit-2019.article
@@ -390,5 +390,3 @@
 Thanks to all the attendees for the excellent discussions on contributor day,
 and thanks especially to Lynn, Paul, Daniel, Andy, and Ronna
 for taking the time to write these reports.
-
-
diff --git a/content/contributors-summit.article b/content/contributors-summit.article
index 815c090..a213674 100644
--- a/content/contributors-summit.article
+++ b/content/contributors-summit.article
@@ -42,7 +42,6 @@
 I learned a lot about the current state of the world, the problems, and where
 people want to go from here.
 
-
 ** Dependency management
 
 After a quick update from the [[https://github.com/golang/dep][dep]] team on the
diff --git a/content/cover.article b/content/cover.article
index 3abd67d..40ed1d9 100644
--- a/content/cover.article
+++ b/content/cover.article
@@ -113,7 +113,7 @@
 	PASS
 	coverage: 42.9% of statements
 	ok  	size	0.026s
-	% 
+	%
 
 Notice that the coverage is 42.9%, which isn't very good.
 Before we ask how to raise that number, let's see how that was computed.
@@ -142,11 +142,11 @@
 the collected statistics so we can study them in more detail.
 That's easy to do: use the `-coverprofile` flag to specify a file for the output:
 
-	% go test -coverprofile=coverage.out 
+	% go test -coverprofile=coverage.out
 	PASS
 	coverage: 42.9% of statements
 	ok  	size	0.030s
-	% 
+	%
 
 (The `-coverprofile` flag automatically sets `-cover` to enable coverage analysis.)
 The test runs just as before, but the results are saved in a file.
@@ -158,7 +158,7 @@
 	% go tool cover -func=coverage.out
 	size.go:	Size          42.9%
 	total:      (statements)  42.9%
-	% 
+	%
 
 A much more interesting way to see the data is to get an HTML presentation
 of the source code decorated with coverage information.
@@ -203,7 +203,7 @@
 We run the test and write out a coverage profile so we can present the information
 nicely afterwards.
 
-	% go test -covermode=count -coverprofile=count.out fmt 
+	% go test -covermode=count -coverprofile=count.out fmt
 	ok  	fmt	0.056s	coverage: 91.7% of statements
 	%
 
diff --git a/content/debugging-what-you-deploy.article b/content/debugging-what-you-deploy.article
index 9d1fde8..4685715 100644
--- a/content/debugging-what-you-deploy.article
+++ b/content/debugging-what-you-deploy.article
@@ -83,7 +83,6 @@
 	Values returned:
 		~r1: 8
 
-
 * The path forward
 
 Go 1.12 is a step toward a better debugging experience for optimized binaries
diff --git a/content/defer-panic-and-recover.article b/content/defer-panic-and-recover.article
index 8bea0ab..2c95aa3 100644
--- a/content/defer-panic-and-recover.article
+++ b/content/defer-panic-and-recover.article
@@ -12,15 +12,12 @@
 Here I'd like to discuss some of the less common ones:
 defer, panic, and recover.
 
- 
 A *defer*statement* pushes a function call onto a list.
 The list of saved calls is executed after the surrounding function returns.
 Defer is commonly used to simplify functions that perform various clean-up actions.
 
- 
 For example, let's look at a function that opens two files and copies the contents of one file to the other:
 
- 
 	func CopyFile(dstName, srcName string) (written int64, err error) {
 	    src, err := os.Open(srcName)
 	    if err != nil {
@@ -45,7 +42,6 @@
 noticed and resolved.
 By introducing defer statements we can ensure that the files are always closed:
 
- 
 	func CopyFile(dstName, srcName string) (written int64, err error) {
 	    src, err := os.Open(srcName)
 	    if err != nil {
@@ -67,13 +63,12 @@
 the files _will_ be closed.
 
 The behavior of defer statements is straightforward and predictable. There are three simple rules:
- 
+
 1. _A_deferred_function's_arguments_are_evaluated_when_the_defer_statement_is_evaluated._
- 
+
 In this example, the expression "i" is evaluated when the Println call is deferred.
 The deferred call will print "0" after the function returns.
 
- 
 	func a() {
 	    i := 0
 	    defer fmt.Println(i)
@@ -82,7 +77,7 @@
 	}
 
 2. _Deferred_function_calls_are_executed_in_Last_In_First_Out_order_after_the_surrounding_function_returns._
- 
+
 This function prints "3210":
 
 	func b() {
@@ -91,9 +86,8 @@
 	    }
 	}
 
- 
 3. _Deferred_functions_may_read_and_assign_to_the_returning_function's_named_return_values._
- 
+
 In this example, a deferred function increments the return value i _after_
 the surrounding function returns.
 Thus, this function returns 2:
@@ -103,10 +97,8 @@
 	    return 1
 	}
 
- 
 This is convenient for modifying the error return value of a function; we will see an example of this shortly.
 
- 
 *Panic* is a built-in function that stops the ordinary flow of control and begins _panicking_.
 When the function F calls panic, execution of F stops,
 any deferred functions in F are executed normally,
@@ -118,14 +110,12 @@
 They can also be caused by runtime errors,
 such as out-of-bounds array accesses.
 
- 
 *Recover* is a built-in function that regains control of a panicking goroutine.
 Recover is only useful inside deferred functions.
 During normal execution, a call to recover will return nil and have no other effect.
 If the current goroutine is panicking, a call to recover will capture the
 value given to panic and resume normal execution.
 
- 
 Here's an example program that demonstrates the mechanics of panic and defer:
 
 	package main
@@ -158,17 +148,14 @@
 	    g(i + 1)
 	}
 
- 
 The function g takes the int i, and panics if i is greater than 3,
 or else it calls itself with the argument i+1.
 The function f defers a function that calls recover and prints the recovered
 value (if it is non-nil).
 Try to picture what the output of this program might be before reading on.
 
- 
 The program will output:
 
- 
 	Calling g.
 	Printing in g 0
 	Printing in g 1
@@ -182,14 +169,11 @@
 	Recovered in f 4
 	Returned normally from f.
 
- 
-
 If we remove the deferred function from f the panic is not recovered and
 reaches the top of the goroutine's call stack,
 terminating the program.
 This modified program will output:
 
- 
 	Calling g.
 	Printing in g 0
 	Printing in g 1
@@ -201,12 +185,10 @@
 	Defer in g 1
 	Defer in g 0
 	panic: 4
-	 
+
 	panic PC=0x2a9cd8
 	[stack trace omitted]
 
- 
-
 For a real-world example of *panic* and *recover*,
 see the [[https://golang.org/pkg/encoding/json/][json package]] from the
 Go standard library.
@@ -219,25 +201,18 @@
 The convention in the Go libraries is that even when a package uses panic internally,
 its external API still presents explicit error return values.
 
- 
 Other uses of *defer* (beyond the file.Close example given earlier) include releasing a mutex:
 
 	mu.Lock()
 	defer mu.Unlock()
 
- 
-
 printing a footer:
 
- 
 	printHeader()
 	defer printFooter()
 
- 
-
 and more.
 
- 
 In summary, the defer statement (with or without panic and recover) provides
 an unusual and powerful mechanism for control flow.
 It can be used to model a number of features implemented by special-purpose
diff --git a/content/examples.article b/content/examples.article
index a8d5aba..dc24423 100644
--- a/content/examples.article
+++ b/content/examples.article
@@ -107,10 +107,9 @@
 	ok  	github.com/golang/example/stringutil	0.009s
 
 Examples without output comments are useful for demonstrating code that cannot
-run as unit tests, such as that which accesses the network, 
+run as unit tests, such as that which accesses the network,
 while guaranteeing the example at least compiles.
 
-
 * Example function names
 
 Godoc uses a naming convention to associate an example function with a
@@ -131,13 +130,12 @@
 	func ExampleReverse_second()
 	func ExampleReverse_third()
 
-
 * Larger examples
 
 Sometimes we need more than just a function to write a good example.
 
 For instance, to demonstrate the [[https://golang.org/pkg/sort/][`sort` package]]
-we should show an implementation of `sort.Interface`. 
+we should show an implementation of `sort.Interface`.
 Since methods cannot be declared inside a function body, the example must
 include some context in addition to the example function.
 
diff --git a/content/first-go-program.article b/content/first-go-program.article
index 59e46e8..7554e03 100644
--- a/content/first-go-program.article
+++ b/content/first-go-program.article
@@ -41,7 +41,6 @@
 	here's the code.
 	some ugly hackery to get around the lack of strings.
 
-
 (The `icounter` line in the program output is the number of executed
 statements, printed for debugging.)
 
@@ -50,7 +49,7 @@
 The program parses and prints an
 [[https://en.wikipedia.org/wiki/S-expression][S-expression]].
 It takes no user input and has no imports, relying only on the built-in
-`print` facility for output. 
+`print` facility for output.
 It was written literally the first day there was a
 [[https://golang.org/change/8b8615138da3][working but rudimentary compiler]].
 Much of the language wasn't implemented and some of it wasn't even specified.
@@ -117,7 +116,6 @@
 context-specific names. There are hundreds of more significant examples
 and to this day we're still discovering better ways to write Go code.
 (Check out the [[https://github.com/golang/glog][glog package]]'s clever trick for
-[[https://github.com/golang/glog/blob/c6f9652c7179652e2fd8ed7002330db089f4c9db/glog.go#L893][handling verbosity levels]].) 
+[[https://github.com/golang/glog/blob/c6f9652c7179652e2fd8ed7002330db089f4c9db/glog.go#L893][handling verbosity levels]].)
 
 I wonder what we'll learn tomorrow.
-
diff --git a/content/fosdem14.article b/content/fosdem14.article
index 107ce4e..dd73c87 100644
--- a/content/fosdem14.article
+++ b/content/fosdem14.article
@@ -21,7 +21,7 @@
 * Scaling with Go: YouTube's Vitess
 
 Google Engineer Sugu Sougoumarane described how he and his
-team built [[https://github.com/youtube/vitess][Vitess]] in Go to help scale 
+team built [[https://github.com/youtube/vitess][Vitess]] in Go to help scale
 [[https://youtube.com][YouTube]].
 
 Vitess is a set of servers and tools primarily developed in Go.
@@ -63,11 +63,10 @@
 
 * More
 
-There were many more great talks, so please check out the complete series 
+There were many more great talks, so please check out the complete series
 [[http://www.youtube.com/playlist?list=PLtLJO5JKE5YDKG4WcaNts3IVZqhDmmuBH][as a YouTube playlist]].
 In particular, the [[http://www.youtube.com/watch?v=cwpI5ONWGxc&list=PLtLJO5JKE5YDKG4WcaNts3IVZqhDmmuBH&index=7][lightning talks]] were a lot of fun.
 
 I would like to give my personal thanks to the excellent speakers, Mathieu
 Lonjaret for managing the video gear, and to the FOSDEM staff for making all
 this possible.
-
diff --git a/content/from-zero-to-go-launching-on-google.article b/content/from-zero-to-go-launching-on-google.article
index fc47fd9..c0ef417 100644
--- a/content/from-zero-to-go-launching-on-google.article
+++ b/content/from-zero-to-go-launching-on-google.article
@@ -132,7 +132,7 @@
 	    // backgroundImage contains the background image data.
 	    backgroundImage *image.RGBA
 
-	    // defaultImage is the image that is served if an error occurs. 
+	    // defaultImage is the image that is served if an error occurs.
 	    defaultImage *image.RGBA
 
 	    // loadOnce is used to call the load function only on the first request.
diff --git a/content/generate.article b/content/generate.article
index e848880..a1fa9fd 100644
--- a/content/generate.article
+++ b/content/generate.article
@@ -151,15 +151,15 @@
 	$ go generate
 	$ cat pill_string.go
 	// Code generated by stringer -type Pill pill.go; DO NOT EDIT.
-	
+
 	package painkiller
-	
+
 	import "fmt"
-	
+
 	const _Pill_name = "PlaceboAspirinIbuprofenParacetamol"
-	
+
 	var _Pill_index = [...]uint8{0, 7, 14, 23, 34}
-	
+
 	func (i Pill) String() string {
 		if i < 0 || i+1 >= Pill(len(_Pill_index)) {
 			return fmt.Sprintf("Pill(%d)", i)
@@ -210,7 +210,6 @@
 		return fmt.Sprintf("Power(%d)", i)
 	}
 
-
 In short, generating the method automatically allows us to do a better job than we would expect a human to do.
 
 There are lots of other uses of `go` `generate` already installed in the Go tree.
diff --git a/content/go-at-io-frequently-asked-questions.article b/content/go-at-io-frequently-asked-questions.article
index 9b7d009..37a09c3 100644
--- a/content/go-at-io-frequently-asked-questions.article
+++ b/content/go-at-io-frequently-asked-questions.article
@@ -33,7 +33,7 @@
 to write Go code ourselves),
 the less we feel the need for such a language feature.
 
-Do you have any plans to support GPU programming? 
+Do you have any plans to support GPU programming?
 We don't have any immediate plans to do this,
 but as Go is architecture-agnostic it's quite possible.
 The ability to launch a goroutine that runs on a different processor architecture,
diff --git a/content/go-fonts.article b/content/go-fonts.article
index 8996237..f5e0aca 100644
--- a/content/go-fonts.article
+++ b/content/go-fonts.article
@@ -14,7 +14,7 @@
 includes several text elements, but there is a problem with testing them:
 What font should be used?
 Answering this question led us to today's announcement,
-the release of a family of high-quality [[https://en.wikipedia.org/wiki/Windows_Glyph_List_4][WGL4]] TrueType fonts, 
+the release of a family of high-quality [[https://en.wikipedia.org/wiki/Windows_Glyph_List_4][WGL4]] TrueType fonts,
 created by the [[http://bigelowandholmes.typepad.com/][Bigelow & Holmes]] type foundry specifically for the Go project.
 
 The font family, called Go (naturally), includes proportional- and fixed-width faces in normal,
@@ -42,21 +42,18 @@
 If you just want the TTF files, run
 
 	git clone https://go.googlesource.com/image
-	
+
 and copy them from the subsequent `image/font/gofont/ttfs` directory.
 If you want to use Go (the fonts) with Go (the software), each font is provided by a separate package.
 To use the Go Regular font in a program, import `golang.org/x/image/font/gofont/goregular`, and write:
 
-
 	font, err := truetype.Parse(goregular.TTF)
 
-
 The [[https://godoc.org/github.com/golang/freetype/truetype][`github.com/golang/freetype/truetype`]]
 package provides the [[https://godoc.org/github.com/golang/freetype/truetype#Parse][`truetype.Parse`]] function today.
 There is also work underway to add a TrueType package under `golang.org/x`
 again licensed under the same open source license as the rest of the Go project's software.
 
-
 We leave it to you to find some of the other unusual properties the fonts have,
 but for an overview of the fonts' design we asked Chuck Bigelow to provide some background.
 The remainder of this blog post is his response.
@@ -66,49 +63,43 @@
 The Go fonts are divided into two sets, Go proportional, which is
 sans-serif, and Go Mono, which is slab-serif.
 
-
 * Go proportional fonts
 
-
 ** Sans-serif
 
 Go proportional fonts are sans-serif, like several popular fonts
-for screen displays. There is some evidence that some sans-serif 
-faces at small sizes and low resolutions on screens are slightly 
-more legible than their seriffed counterparts, while at large sizes, 
-there is not a significant difference in legibility between sans and 
+for screen displays. There is some evidence that some sans-serif
+faces at small sizes and low resolutions on screens are slightly
+more legible than their seriffed counterparts, while at large sizes,
+there is not a significant difference in legibility between sans and
 seriffed faces, at least in the pair tested. [1] (The bracketed numbers
 refer to the references listed at the end of this article.)
 
-
 ** Style
 
 Go sans-serif fonts are "humanist" rather than "grotesque" in
-style. This is an historical distinction, not an aesthetic judgment. 
-Widely used sans-serif fonts like Helvetica and Arial are called 
-grotesque because an early 19th century sans-serif typeface 
-was named "Grotesque," and the name became generic. 
+style. This is an historical distinction, not an aesthetic judgment.
+Widely used sans-serif fonts like Helvetica and Arial are called
+grotesque because an early 19th century sans-serif typeface
+was named "Grotesque," and the name became generic.
 
+The shapes of modern grotesque fonts like Helvetica are sculpted,
+with smooth, assimilated forms.
 
-The shapes of modern grotesque fonts like Helvetica are sculpted, 
-with smooth, assimilated forms. 
-
-
-Humanist sans-serifs are derived from Humanist handwriting 
-and early fonts of the Italian Renaissance and still show subtle 
+Humanist sans-serifs are derived from Humanist handwriting
+and early fonts of the Italian Renaissance and still show subtle
 traces of pen-written calligraphy. There is some evidence that
-humanist fonts are more legible than grotesque fonts. [2] 
-
+humanist fonts are more legible than grotesque fonts. [2]
 
 ** Italics
 
-Go proportional italics have the same width metrics as the roman 
+Go proportional italics have the same width metrics as the roman
 fonts. Go italics are oblique versions of the romans, with one
-noticeable exception: the italic lowercase 'a' is redesigned as a 
-cursive single-story form to harmonize with the bowl shapes of 
+noticeable exception: the italic lowercase 'a' is redesigned as a
+cursive single-story form to harmonize with the bowl shapes of
 the b d g p q set, in which the upright forms also adapt well to
-slanting, The addition of cursive 'a' makes the italics appear more 
-lively than a simply slanted roman. Some typographers believe that 
+slanting, The addition of cursive 'a' makes the italics appear more
+lively than a simply slanted roman. Some typographers believe that
 slanted roman sans-serif italics are preferable to truly "cursive" sans
 Italics, in part because of history and design. [3]
 
@@ -116,101 +107,92 @@
 
 ** The x-height
 
-The x-height of a typeface is the height of the lowercase 'x' relative 
+The x-height of a typeface is the height of the lowercase 'x' relative
 to the body size. The x-height of Go fonts is 53.0% of body size, a
 bit larger than the x-heights of Helvetica (52.3%) or Arial (51.9%),
-but the difference is usually unnoticeable at normal reading sizes. 
-Typographers believe that larger x-heights contribute to greater 
+but the difference is usually unnoticeable at normal reading sizes.
+Typographers believe that larger x-heights contribute to greater
 legibility in small sizes and on screens. A study of "print size"
-(particularly x-height) and reading noted that types for reading on 
+(particularly x-height) and reading noted that types for reading on
 screens and for small sizes tend to have large x-heights. [4]
 
-
 ** DIN Legibility Standard
 
 The recent German DIN 1450 legibility standard recommends
 several features for font legibility, including differentiation of
-letter shapes to reduce confusion. The Go fonts conform to the 
+letter shapes to reduce confusion. The Go fonts conform to the
 1450 standard by carefully differentiating zero from capital O;
-numeral 1 from capital I (eye) and lowercase l (ell); numeral 5 from 
+numeral 1 from capital I (eye) and lowercase l (ell); numeral 5 from
 capital S; and numeral 8 from capital B. The shapes of bowls of
-b d p q follow the natural asymmetries of legible Renaissance 
+b d p q follow the natural asymmetries of legible Renaissance
 handwriting, aiding differentiation to reduce confusion. [5]
 
-
 ** Weights
 
-The Go proportional fonts come in three weights: Normal, Medium, 
-and Bold. The Normal weight is strong enough that it maintains 
-clarity on backlit screens, which often tend to erode letter features 
-and thickness. The Medium weight has stem thickness 1.25 times 
+The Go proportional fonts come in three weights: Normal, Medium,
+and Bold. The Normal weight is strong enough that it maintains
+clarity on backlit screens, which often tend to erode letter features
+and thickness. The Medium weight has stem thickness 1.25 times
 the Normal, for greater sturdiness on bright screens or for users
-who prefer a sturdy font. The Bold weight has stem thickness 
+who prefer a sturdy font. The Bold weight has stem thickness
 1.5 times the Normal, bold enough to be distinct from the normal
-weight. These Go fonts have CSS numerical weights of 400, 500, 
-and 600. Although CSS specifies "Bold" as a 700 weight and 600 
-as Semibold or Demibold, the Go numerical weights match the 
-actual progression of the ratios of stem thicknesses: 
+weight. These Go fonts have CSS numerical weights of 400, 500,
+and 600. Although CSS specifies "Bold" as a 700 weight and 600
+as Semibold or Demibold, the Go numerical weights match the
+actual progression of the ratios of stem thicknesses:
 Normal:Medium = 400:500; Normal:Bold = 400:600. The Bold
 weight name matches the use of “Bold” as the usual corresponding
 bold weight of a normal font. More discussion of the relationship of
 stem thicknesses, weight names, and CSS numbering is in [6].
 
-
 ** WGL4 character set
 
 The WGL4 character set, originally developed by Microsoft, is often
-used as an informal standard character set. WGL4 includes Western 
-and Eastern European Latin characters plus Modern Greek and 
+used as an informal standard character set. WGL4 includes Western
+and Eastern European Latin characters plus Modern Greek and
 Cyrillic, with additional symbols, signs, and graphical characters,
-totalling more than 650 characters in all. The Go WGL4 fonts can 
+totalling more than 650 characters in all. The Go WGL4 fonts can
 be used to compose a wide range of languages. [7]
 
-
 ** Metric compatibility with Arial and Helvetica
 
-The Go sans-serif fonts are nearly metrically compatible with 
+The Go sans-serif fonts are nearly metrically compatible with
 standard Helvetica or Arial characters. Texts set in Go occupy
-nearly the same space as texts in Helvetica or Arial (at the same 
+nearly the same space as texts in Helvetica or Arial (at the same
 size), but Go has a different look and texture because of its
-humanist style. Some Go letters with DIN legibility features are 
-wider than corresponding letters in Helvetica or Arial, so some 
-texts set in Go may take slightly more space. 
-
+humanist style. Some Go letters with DIN legibility features are
+wider than corresponding letters in Helvetica or Arial, so some
+texts set in Go may take slightly more space.
 
 * Go Mono fonts
 
-
 ** Monospaced
 
 Go Mono fonts are monospaced—each letter has the same width as
-the other letters. Monospaced fonts have been used in programming 
+the other letters. Monospaced fonts have been used in programming
 since the beginning of computing and are still widely used because the
-typewriter regularity of their spacing makes text align in columns and 
-rows, a style also found in Greek inscriptions of the 5th century BC. 
-(The ancient Greeks didn't have typewriters or computer keyboards, 
+typewriter regularity of their spacing makes text align in columns and
+rows, a style also found in Greek inscriptions of the 5th century BC.
+(The ancient Greeks didn't have typewriters or computer keyboards,
 but they did have great mathematicians and a great sense of symmetry
 and pattern that shaped their alphabet.)
 
-
 ** Slab-serif
 
-The Go Mono fonts have slab-shaped serifs, giving them a sturdy 
-appearance. 
-
+The Go Mono fonts have slab-shaped serifs, giving them a sturdy
+appearance.
 
 ** Style
 
-The underlying letter shapes of Go Mono are, like the Go sans-serif fonts, 
-derived from humanist handwriting, but the monospacing and slab serifs 
-tend to obscure the historical and stylistic connections. 
-
+The underlying letter shapes of Go Mono are, like the Go sans-serif fonts,
+derived from humanist handwriting, but the monospacing and slab serifs
+tend to obscure the historical and stylistic connections.
 
 ** Italics
 
 Go Mono Italics are oblique versions of the romans, with the exception
-that the italic lowercase 'a' is redesigned as a cursive single-story form 
-to harmonize with the bowl shapes of the b d g p q. The cursive 'a' makes 
+that the italic lowercase 'a' is redesigned as a cursive single-story form
+to harmonize with the bowl shapes of the b d g p q. The cursive 'a' makes
 the italics appear more lively than a simply slanted roman. As with many
 sans-serif fonts, it is believed that slanted roman slab-serifs fonts may
 be more legible than truly "cursive" italics.
@@ -220,88 +202,74 @@
 ** The x-height
 
 Go Mono fonts have the same x-height as Go sans-serif fonts, 53% of
-the body size. Go Mono looks almost 18% bigger than Courier, which 
+the body size. Go Mono looks almost 18% bigger than Courier, which
 has an x-height 45% of body size. Yet Go Mono has the same width
 as Courier, so the bigger look is gained with no loss of economy in
-characters per line. 
-
+characters per line.
 
 ** DIN Legibility Standard
 
-Go Mono fonts conform to the DIN 1450 standard by differentiating 
-zero from capital O; numeral 1 from capital I (eye) and lowercase l (ell); 
-numeral 5 from capital S; and numeral 8 from capital B. The shapes of 
-bowls of b d p q follow the natural asymmetries of legible Renaissance 
-handwriting, aiding differentiation and reducing confusion.  
-
+Go Mono fonts conform to the DIN 1450 standard by differentiating
+zero from capital O; numeral 1 from capital I (eye) and lowercase l (ell);
+numeral 5 from capital S; and numeral 8 from capital B. The shapes of
+bowls of b d p q follow the natural asymmetries of legible Renaissance
+handwriting, aiding differentiation and reducing confusion.
 
 ** Weights
 
-Go Mono fonts have two weights: Normal and Bold. The normal weight 
-stem is the same as in Go Normal and thus maintains clarity on backlit 
+Go Mono fonts have two weights: Normal and Bold. The normal weight
+stem is the same as in Go Normal and thus maintains clarity on backlit
 screens, which tend to erode letter features and stem thickness. The
 bold stem thickness is 1.5 times thicker than the normal weight, hence
-the Bold Mono has the same stem thickness as Bold Go proportional. 
-Because the letter width of monospaced bold is identical to the width of 
-monospaced normal, the bold Mono appears slightly bolder than the 
+the Bold Mono has the same stem thickness as Bold Go proportional.
+Because the letter width of monospaced bold is identical to the width of
+monospaced normal, the bold Mono appears slightly bolder than the
 proportional Go Bold, as more black pixels are put into the same area.)
 
-
 ** Metric compatibility with popular monospaced fonts
 
 Go Mono is metrically compatible with Courier and other monospaced
-fonts that match the "Pica" typewriter type widths of 10 characters per 
-linear inch at 12 point. At 10 point, Go Mono fonts set 12 characters 
+fonts that match the "Pica" typewriter type widths of 10 characters per
+linear inch at 12 point. At 10 point, Go Mono fonts set 12 characters
 per inch. The TrueType fonts are scalable, of course, so Go Mono can
-be set at any size. 
-
+be set at any size.
 
 ** WGL4 character set
 
 The Go Mono fonts offer the WGL4 character set often used as an
-informal standard character set. WGL4 includes Western and Eastern 
-European Latin characters plus Modern Greek and Cyrillic, with 
-additional symbols, signs, and graphical characters. The 650+ characters 
+informal standard character set. WGL4 includes Western and Eastern
+European Latin characters plus Modern Greek and Cyrillic, with
+additional symbols, signs, and graphical characters. The 650+ characters
 of the Go WGL4 sets can be used for a wide range of languages.
 
-
-
-
 * References
 
-
 [1] Morris, R. A., Aquilante, K., Yager, D., & Bigelow, C.
 (2002, May). P‐13: Serifs Slow RSVP Reading at Very Small Sizes,
 but Don't Matter at Larger Sizes.
 In SID Symposium Digest of Technical Papers (Vol.
 33, No. 1, pp. 244-247). Blackwell Publishing Ltd.
 
-
 [2] Bryan Reimer et al. (2014) “Assessing the impact of typeface design
 in a text-rich automotive user interface”,
 Ergonomics, 57:11, 1643-1658.
 http://www.tandfonline.com/doi/abs/10.1080/00140139.2014.940000
 
-
 [3] Adrian Frutiger - Typefaces: The Complete Works.
 H. Osterer and P. Stamm, editors. Birkhäuser,
 Basel, 2009, page 257.
 
-
 [4] Legge, G. E., & Bigelow, C. A. (2011).
 Does print size matter for reading? A review of findings from vision science and typography.
 Journal of Vision, 11(5), 8-8. http://jov.arvojournals.org/article.aspx?articleid=2191906
 
-
-[5] Charles Bigelow. "Oh, oh, zero!" TUGboat, Volume 34 (2013), No. 2. 
+[5] Charles Bigelow. "Oh, oh, zero!" TUGboat, Volume 34 (2013), No. 2.
 https://tug.org/TUGboat/tb34-2/tb107bigelow-zero.pdf
 https://tug.org/TUGboat/tb34-2/tb107bigelow-wang.pdf
 
-
 [6] "Lucida Basic Font Weights" Bigelow & Holmes.
 http://lucidafonts.com/pages/facts
 
-
 [7] WGL4 language coverage: Afrikaans, Albanian, Asu, Basque,
 Belarusian, Bemba, Bena, Bosnian, Bulgarian, Catalan, Chiga,
 Colognian, Cornish, Croatian, Czech, Danish, Embu, English, Esperanto,
diff --git a/content/go-imagedraw-package.article b/content/go-imagedraw-package.article
index 2e9dade..a28bc5d 100644
--- a/content/go-imagedraw-package.article
+++ b/content/go-imagedraw-package.article
@@ -77,7 +77,6 @@
 	    Set(x, y int, c color.Color)
 	}
 
-  
 * Filling a Rectangle
 
 To fill a rectangle with a solid color, use an `image.Uniform` source.
@@ -102,10 +101,8 @@
 
 	    draw.Draw(m, m.Bounds(), image.Transparent, image.ZP, draw.Src)
 
-  
 .image go-imagedraw-package_2a.png
 
- 
 * Copying an Image
 
 To copy from a rectangle `sr` in the source image to a rectangle starting
@@ -115,19 +112,15 @@
 	    r := image.Rectangle{dp, dp.Add(sr.Size())}
 	    draw.Draw(dst, r, src, sr.Min, draw.Src)
 
-  
 Alternatively:
 
 	    r := sr.Sub(sr.Min).Add(dp)
 	    draw.Draw(dst, r, src, sr.Min, draw.Src)
 
-  
 To copy the entire source image, use `sr`=`src.Bounds()`.
 
-  
 .image go-imagedraw-package_2b.png
 
- 
 * Scrolling an Image
 
 Scrolling an image is just copying an image to itself,
@@ -143,10 +136,8 @@
 	    draw.Draw(m, b, m, b.Min.Add(p), draw.Src)
 	    dirtyRect := b.Intersect(image.Rect(b.Min.X, b.Max.Y-20, b.Max.X, b.Max.Y))
 
-  
 .image go-imagedraw-package_2c.png
 
- 
 * Converting an Image to RGBA
 
 The result of decoding an image format might not be an `image.RGBA`:
@@ -159,7 +150,6 @@
 	    m := image.NewRGBA(image.Rect(0, 0, b.Dx(), b.Dy()))
 	    draw.Draw(m, m.Bounds(), src, b.Min, draw.Src)
 
-  
 .image go-imagedraw-package_2d.png
 
 * Drawing Through a Mask
@@ -189,7 +179,6 @@
 
 	    draw.DrawMask(dst, dst.Bounds(), src, image.ZP, &circle{p, r}, image.ZP, draw.Over)
 
-  
 .image go-imagedraw-package_2e.png
 
 * Drawing Font Glyphs
@@ -206,7 +195,6 @@
 
 .image go-imagedraw-package_2f.png
 
-  
 * Performance
 
 The image/draw package implementation demonstrates how to provide an image
diff --git a/content/go-maps-in-action.article b/content/go-maps-in-action.article
index 70fbb8d..9298c0d 100644
--- a/content/go-maps-in-action.article
+++ b/content/go-maps-in-action.article
@@ -211,7 +211,6 @@
 
 To read from the counter, take the read lock:
 
-
 	counter.RLock()
 	n := counter.m["some_key"]
 	counter.RUnlock()
diff --git a/content/go-one-year-ago-today.article b/content/go-one-year-ago-today.article
index 9391919..5282a5c 100644
--- a/content/go-one-year-ago-today.article
+++ b/content/go-one-year-ago-today.article
@@ -129,7 +129,7 @@
   [[https://golang.org/doc/go_spec.html#Function_Types][spec]],
   [[https://golang.org/doc/go_spec.html#Passing_arguments_to_..._parameters][ spec]],
   [[https://golang.org/doc/devel/release.html#2010-09-29][release.2010-09-29]]
- 
+
 Go is certainly ready for production use,
 but there is still room for improvement.
 Our focus for the immediate future is making Go programs faster and more
diff --git a/content/go-slices-usage-and-internals.article b/content/go-slices-usage-and-internals.article
index 5a9b890..f200f54 100644
--- a/content/go-slices-usage-and-internals.article
+++ b/content/go-slices-usage-and-internals.article
@@ -148,7 +148,7 @@
 modifies the elements of the original slice:
 
 	d := []byte{'r', 'o', 'a', 'd'}
-	e := d[2:] 
+	e := d[2:]
 	// e == []byte{'a', 'd'}
 	e[1] = 'm'
 	// e == []byte{'a', 'm'}
@@ -233,7 +233,7 @@
 so Go provides a built-in `append` function that's good for most purposes;
 it has the signature
 
-	func append(s []T, x ...T) []T 
+	func append(s []T, x ...T) []T
 
 The `append` function appends the elements `x` to the end of the slice `s`,
 and grows the slice if a greater capacity is needed.
diff --git a/content/go-version-1-is-released.article b/content/go-version-1-is-released.article
index c415f87..7267bf3 100644
--- a/content/go-version-1-is-released.article
+++ b/content/go-version-1-is-released.article
@@ -7,6 +7,7 @@
 * Introduction
 
 .image go-version-1-is-released_gophermega.jpg
+
 Today marks a major milestone in the development of the Go programming language.
 We're announcing Go version 1, or Go 1 for short,
 which defines a language and a set of core libraries to provide a stable
diff --git a/content/go-whats-new-in-march-2010.article b/content/go-whats-new-in-march-2010.article
index 572a58f..ad019e5 100644
--- a/content/go-whats-new-in-march-2010.article
+++ b/content/go-whats-new-in-march-2010.article
@@ -8,10 +8,10 @@
 Welcome to the official Go Blog. We, the Go team,
 hope to use this blog to keep the world up-to-date on the development of
 the Go programming language and the growing ecosystem of libraries and applications surrounding it.
- 
+
 It's been a few months since we launched (November last year),
 so let's talk about what's been happening in Go World since then.
- 
+
 The core team at Google has continued to develop the language,
 compilers, packages, tools, and documentation.
 The compilers now produce code that is in some cases between 2x and an order
@@ -19,7 +19,7 @@
 We have put together some graphs of a selection of [[http://godashboard.appspot.com/benchmarks][Benchmarks]],
 and the [[http://godashboard.appspot.com/][Build Status]] page tracks the
 reliability of each changeset submitted to the repository.
- 
+
 We have made syntax changes to make the language more concise,
 regular, and flexible.
 Semicolons have been [[http://groups.google.com/group/golang-nuts/t/5ee32b588d10f2e9][almost entirely removed]] from the language.
@@ -28,7 +28,7 @@
 The syntax x[lo:] is now shorthand for x[lo:len(x)].
 Go also now natively supports complex numbers.
 See the [[https://golang.org/doc/devel/release.html][release notes]] for more.
- 
+
 [[https://golang.org/cmd/godoc/][Godoc]] now provides better support for
 third-party libraries,
 and a new tool - [[https://golang.org/cmd/goinstall][goinstall]] - has been
@@ -36,10 +36,10 @@
 Additionally, we've started working on a package tracking system to make
 it easier to find what you need.
 You can view the beginnings of this on the [[http://godashboard.appspot.com/package][Packages page]].
- 
+
 More than 40,000 lines of code have been added to [[https://golang.org/pkg/][the standard library]],
 including many entirely new packages, a sizable portion written by external contributors.
- 
+
 Speaking of third parties, since launch a vibrant community has flourished
 on our [[http://groups.google.com/group/golang-nuts/][mailing list]] and
 irc channel (#go-nuts on freenode).
@@ -48,7 +48,7 @@
 core packages and support for additional operating systems (Go is now supported under FreeBSD,
 and a [[http://code.google.com/p/go/wiki/WindowsPort][Windows port]] is underway).
 We regard these community contributions our greatest success so far.
- 
+
 We've received some good reviews, too.  This [[http://www.pcworld.idg.com.au/article/337773/google_go_captures_developers_imaginations/][recent article in PC World]]
 summarized the enthusiasm surrounding the project.
 Several bloggers have begun documenting their experiences in the language
@@ -57,7 +57,7 @@
 and [[http://freecella.blogspot.com/2010/01/gospecify-basic-setup-of-projects.html][here]]
 for example)  The general reaction of our users has been very positive;
 one first-timer remarked [[https://groups.google.com/group/golang-nuts/browse_thread/thread/5fabdd59f8562ed2]["I came away extremely impressed. Go walks an elegant line between simplicity and power."]]
- 
+
 As to the future: we have listened to the myriad voices telling us what they need,
 and are now focused on getting Go ready for the prime time.
 We are improving the garbage collector, runtime scheduler,
diff --git a/content/go1.13-errors.article b/content/go1.13-errors.article
index 8c8c029..a3aa755 100644
--- a/content/go1.13-errors.article
+++ b/content/go1.13-errors.article
@@ -13,7 +13,6 @@
 allows Go programmers to add whatever information they desire. All it requires
 is a type that implements an `Error` method:
 
-
 	type QueryError struct {
 		Query string
 		Err   error
@@ -68,7 +67,6 @@
 		// e.Name wasn't found
 	}
 
-
 ** Adding information
 
 Frequently a function passes an error up the call stack while adding information
@@ -85,7 +83,6 @@
 to define a new error type that contains the underlying error, preserving it for
 inspection by code. Here is `QueryError` again:
 
-
 	type QueryError struct {
 		Query string
 		Err   error
@@ -99,7 +96,6 @@
 		// query failed because of a permission problem
 	}
 
-
 The `os.PathError` type in the standard library is another example of one error which contains another.
 
 * Errors in Go 1.13
@@ -123,7 +119,7 @@
 
 ** Examining errors with Is and As
 
-The Go 1.13 `errors` package includes two new functions for examining errors: `Is` and `As`. 
+The Go 1.13 `errors` package includes two new functions for examining errors: `Is` and `As`.
 
 The `errors.Is` function compares an error to a value.
 
@@ -158,7 +154,6 @@
 		// err, or some error that it wraps, is a permission problem
 	}
 
-
 The `errors` package also includes a new `Unwrap` function which returns the
 result of calling an error's `Unwrap` method, or `nil` when the error has no
 `Unwrap` method. It is usually better to use `errors.Is` or `errors.As`,
@@ -188,7 +183,6 @@
 	...
 	if errors.Is(err, ErrPermission) ...
 
-
 ** Whether to Wrap
 
 When adding additional context to an error, either with `fmt.Errorf` or by
diff --git a/content/go2draft.article b/content/go2draft.article
index 97ace9a..e1e4715 100644
--- a/content/go2draft.article
+++ b/content/go2draft.article
@@ -15,4 +15,4 @@
 
 We invite everyone in the Go community to
 [[https://go.googlesource.com/proposal/+/master/design/go2draft.md][learn more about the designs]]
-and help us improve them. 
+and help us improve them.
diff --git a/content/gopherchina.article b/content/gopherchina.article
index 31587c8..bae456e 100644
--- a/content/gopherchina.article
+++ b/content/gopherchina.article
@@ -152,4 +152,3 @@
 It appears that we have found the Go users in China: They are everywhere!
 
 _Some_of_the_GopherChina_materials,_including_videos,_are_now_available_alongside_Go_coursework_on_a_ [[http://www.imooc.com/view/407][_3rd_party_site_]].
-
diff --git a/content/gophercon2015.article b/content/gophercon2015.article
index 9dae87b..e41bd70 100644
--- a/content/gophercon2015.article
+++ b/content/gophercon2015.article
@@ -12,7 +12,6 @@
 talks presented by Go community members.
 
 .image gophercon2015.jpg _ 550
-
 .html gophercon2015.caption
 
 Today the organizers have posted the videos online so you can now enjoy the
diff --git a/content/gouk15.article b/content/gouk15.article
index 513c500..a780e45 100644
--- a/content/gouk15.article
+++ b/content/gouk15.article
@@ -10,7 +10,7 @@
 [[https://golanguk.com][Golang UK]]. The conference featured two parallel
 tracks and nearly 400 gophers attended.
 
-.image gouk15/gouk.jpg 300 _ 
+.image gouk15/gouk.jpg 300 _
 
 The conference started with the opening keynote by [[https://twitter.com/calavera][David Calavera]]
 called Crossing the Language Chasm ([[https://www.youtube.com/watch?v=JPVRnEZ4v_w&list=PLDWZ5uzn69ezRJYeWxYNRMYebvf8DerHd][video]])
diff --git a/content/h2push.article b/content/h2push.article
index 519eb92..87e3649 100644
--- a/content/h2push.article
+++ b/content/h2push.article
@@ -60,7 +60,6 @@
 
 	$ go get golang.org/x/blog/content/h2push/server
 
-
 If you run the server and load [[https://localhost:8080][https://localhost:8080]],
 your browser's developer tools should show that `app.js` and
 `style.css` were pushed by the server.
@@ -74,12 +73,10 @@
 duplicate responses. For example, suppose you write part of an HTML
 response:
 
-
 	<html>
 	<head>
 		<link rel="stylesheet" href="a.css">...
 
-
 Then you call Push("a.css", nil). The browser may parse this fragment
 of HTML before it receives your PUSH_PROMISE, in which case the browser
 will send a request for `a.css` in addition to receiving your
diff --git a/content/introducing-go-playground.article b/content/introducing-go-playground.article
index 34fdcca..41087da 100644
--- a/content/introducing-go-playground.article
+++ b/content/introducing-go-playground.article
@@ -12,6 +12,7 @@
 These changes are also reflected in the web interface of [[https://golang.org/cmd/godoc/][godoc]],
 the Go documentation tool.
 But the real news is a prominent new feature: the [[https://golang.org/][Go Playground]].
+
 .image introducing-go-playground_Untitled.png
 
 The Playground allows anyone with a web browser to write Go code that we
diff --git a/content/introducing-gofix.article b/content/introducing-gofix.article
index ebe4e55..93c6853 100644
--- a/content/introducing-gofix.article
+++ b/content/introducing-gofix.article
@@ -70,7 +70,7 @@
 	    // Byte slices are special.
 	    if f.Type().(reflect.ArrayOrSliceType).Elem().Kind() == reflect.Uint8 {
 	        // ...
-	    }   
+	    }
 	// ...
 	}
 
@@ -86,7 +86,7 @@
 	    // Byte slices are special.
 	    if f.Type().Elem().Kind() == reflect.Uint8 {
 	        // ...
-	    }   
+	    }
 	// ...
 	}
 
diff --git a/content/io2014.article b/content/io2014.article
index c0b945d..d3dded7 100644
--- a/content/io2014.article
+++ b/content/io2014.article
@@ -60,7 +60,6 @@
 - SourceGraph: a Code Search Engine in Go,
   by Quinn Slack. ([[https://youtu.be/-DpKaoPz8l8][video]] and [[https://go-talks.appspot.com/github.com/sourcegraph/talks/google-io-2014/gio2014.slide#1][slides]])
 
-
 We also organized Q&A sessions and lightning talks by members of the Go
 community:
 
@@ -84,4 +83,4 @@
 * Conclusion
 
 Thanks to the organizers, speakers, and attendees who helped make these events a
-great success. See you next year. (Or at [[http://dotgo.eu][dotGo]] this week!)
\ No newline at end of file
+great success. See you next year. (Or at [[http://dotgo.eu][dotGo]] this week!)
diff --git a/content/ismmkeynote.article b/content/ismmkeynote.article
index 2e1f91d..33b2227 100644
--- a/content/ismmkeynote.article
+++ b/content/ismmkeynote.article
@@ -5,6 +5,7 @@
 rlh@golang.org
 
 * Abstract
+
 This is the transcript from the keynote I gave at the International Symposium
 on Memory Management (ISMM) on June 18, 2018.
 For the past 25 years ISMM has been the premier venue for publishing memory
@@ -12,6 +13,7 @@
 invited to give the keynote.
 
 ** Abstract
+
 The Go language features, goals, and use cases have forced us to rethink
 the entire garbage collection stack and have led us to a surprising place.
 The journey has been exhilarating. This talk describes our journey.
@@ -21,6 +23,7 @@
 where we are in 2018, and Go's preparation for the next part of the journey.
 
 ** Bio
+
 Richard L. Hudson (Rick) is best known for his work in memory management
 including the invention of the Train,
 Sapphire, and Mississippi Delta algorithms as well as GC stack maps which
@@ -546,6 +549,7 @@
 to something marked with a 0 then you promote the referent simply by setting that zero to a one.
 
 .image ismmkeynote/image49.png
+
 You have to do a transitive walk to make sure all reachable objects are promoted.
 
 .image ismmkeynote/image69.png
@@ -734,7 +738,6 @@
 
 Put another way, we think that doubling memory is going to be a better value than doubling cores.
 
-
 [[http://www.kurzweilai.net/ask-ray-the-future-of-moores-law][Original graph]]
 at www.kurzweilai.net/ask-ray-the-future-of-moores-law.
 
@@ -749,8 +752,6 @@
 together so this graph has been going on for a long time,
 certainly longer than probably anybody in this room has been alive.
 
-
-
 If we compare this graph to CPU frequency or the various Moore's-law-is-dead graphs,
 we are led to the conclusion that memory,
 or at least chip capacity, will follow Moore's law longer than CPUs.
diff --git a/content/normalization.article b/content/normalization.article
index fd80e9c..636eac8 100644
--- a/content/normalization.article
+++ b/content/normalization.article
@@ -280,4 +280,3 @@
 as multilingual text processing and it may have raised more questions than it
 has given answers. The discussion of these topics, however, will have to wait
 until another day.
-
diff --git a/content/open-source.article b/content/open-source.article
index 2fa797a..9ee5324 100644
--- a/content/open-source.article
+++ b/content/open-source.article
@@ -95,7 +95,7 @@
 Other people have made similar observations.
 Here are two.
 Last year, on RedMonk.com, Donnie Berkholz
-wrote about 
+wrote about
 “[[http://redmonk.com/dberkholz/2014/03/18/go-the-emerging-language-of-cloud-infrastructure/][Go as the emerging language of cloud infrastructure]],”
 observing that
 “[Go's] marquee projects ... are cloud-centric or otherwise
@@ -125,7 +125,7 @@
 
 I think of that idea as Go's balance.
 There are competing concerns in any software design,
-and there is a very natural tendency to try to solve 
+and there is a very natural tendency to try to solve
 all the problems you foresee.
 In Go, we have explicitly tried not to solve everything.
 Instead, we've tried to do just enough that you can build
@@ -141,7 +141,7 @@
 Go can probably do
 a few things well.
 If we select those things carefully,
-we can lay a foundation 
+we can lay a foundation
 on which developers can _easily_ build
 the solutions and tools they need,
 and ideally can interoperate with
@@ -275,7 +275,7 @@
 But we knew one thing that we had to do.
 In our experience attempting
 automated program changes in other settings,
-the most significant barrier we hit 
+the most significant barrier we hit
 was actually writing the modified program out
 in a format that developers can accept.
 
@@ -307,7 +307,7 @@
 Even more can be done.
 
 Last, building and sharing software.
-In the run up to Go 1, we built goinstall, 
+In the run up to Go 1, we built goinstall,
 which became what we all know as "go get".
 That tool defined a standard zero-configuration way
 to resolve import paths on sites like github.com,
@@ -375,7 +375,7 @@
 and we naturally wanted Go
 to be part of that open source world.
 But our preferences are not a business justification.
-The business justification is that 
+The business justification is that
 Go is open source
 because that's the only way
 that Go can succeed.
@@ -445,7 +445,7 @@
 since announcing Go,
 we've done all our development in public,
 on public mailing lists open to all.
-We accept and review 
+We accept and review
 source code contributions from anyone.
 The process is the same
 whether you work for Google or not.
@@ -515,7 +515,7 @@
 before Go was known to the public,
 the Go team at Google
 was obviously working by itself.
-We wrote the first draft of everything: 
+We wrote the first draft of everything:
 the specification,
 the compiler,
 the runtime,
@@ -633,7 +633,7 @@
 I want to share some evidence for this claim
 that, over time,
 the original Go team at Google
-is focusing more on 
+is focusing more on
 coordination than direct development.
 
 First, the sources of funding
@@ -739,7 +739,7 @@
 we left it to users outside Google to develop solutions.
 Over the past five years,
 people have built a series of tools.
-The main ones in use today are 
+The main ones in use today are
 Keith Rarick's godep,
 Owen Ou's nut,
 and the gb-vendor plugin for Dave Cheney's gb,
@@ -816,7 +816,7 @@
 we should have broad interoperability
 between vendoring tools and the go command,
 and the design to make that happen
-was done entirely by contributors 
+was done entirely by contributors
 outside the original Go team.
 
 Not only that,
@@ -845,7 +845,7 @@
 is important for Go.
 You, the broader Go community,
 know what is working
-and what is not 
+and what is not
 in the environments where you use Go.
 We at Google don't.
 More and more,
@@ -903,7 +903,7 @@
 this kind of spec
 cannot be as precise as a language spec.
 We must start with the assumption
-that we will all be reasonable in applying it. 
+that we will all be reasonable in applying it.
 
 This kind of spec
 is often referred to as
diff --git a/content/playground.article b/content/playground.article
index c1eb6e5..657624d 100644
--- a/content/playground.article
+++ b/content/playground.article
@@ -27,7 +27,6 @@
 and our description here assumes you have some familiarity with systems
 programming using Go.
 
-
 * Overview
 
 .image playground/overview.png
@@ -43,7 +42,6 @@
   It also does some caching.
 - A JavaScript client that implements the user interface and makes HTTP requests to the front end.
 
-
 * The back end
 
 The back end program itself is trivial, so we won't discuss its implementation
@@ -82,7 +80,6 @@
 Go tool chain.
 These facilities are described in the following sections.
 
-
 ** Faking time
 
 Playground programs are limited in the amount of CPU time and memory they can
@@ -182,7 +179,6 @@
 events using the provided delay intervals.
 To the user it appears that the program is running in real time.
 
-
 ** Faking the file system
 
 Programs built with the Go's NaCl tool chain cannot access the local machine's
@@ -245,7 +241,6 @@
   program's only way to interact with the outside world),
 - network sockets have their own implementation, discussed in the next section.
 
-
 ** Faking the network
 
 Like the file system, the playground's network stack is an in-process fake
@@ -268,7 +263,6 @@
 A good place to start reading is [[https://github.com/golang/go/blob/master/src/syscall/net_nacl.go#L461][`netFile`]],
 the network socket implementation of the `fileImpl` interface.
 
-
 * The front end
 
 The playground front end is another simple program (shorter than 100 lines).
@@ -290,7 +284,6 @@
 end, stores the response in memcache, parses the playback events, and returns
 a JSON object to the client as the HTTP response (as described above).
 
-
 * The client
 
 The various sites that use the playground each share some common JavaScript
@@ -324,7 +317,6 @@
 The common [[https://godoc.org/golang.org/x/tools/playground][`golang.org/x/tools/playground`]]
 package does this proxying.
 
-
 * Playing offline
 
 Both the [[https://tour.golang.org][Go Tour]] and the
@@ -342,7 +334,6 @@
 [[https://godoc.org/golang.org/x/tools/playground/socket][`golang.org/x/tools/playground/socket`]] package.
 The [[https://talks.golang.org/2012/insidepresent.slide#1][Inside Present]] talk discusses this code in detail.
 
-
 * Other clients
 
 The playground service is used by more than just the official Go project
@@ -352,7 +343,6 @@
 use a unique user agent in your requests (so we can identify you), and that
 your service is of benefit to the Go community.
 
-
 * Conclusion
 
 From godoc to the tour to this very blog, the playground has become an
diff --git a/content/profiling-go-programs.article b/content/profiling-go-programs.article
index e7c90a7..9959076 100644
--- a/content/profiling-go-programs.article
+++ b/content/profiling-go-programs.article
@@ -263,7 +263,7 @@
 	$ ./xtime ./havlak2
 	# of loops: 76000 (including 1 artificial root node)
 	16.55u 0.11s 16.69r 1321008kB ./havlak2
-	$ 
+	$
 
 (See the [[https://github.com/rsc/benchgraffiti/commit/58ac27bcac3ffb553c29d0b3fb64745c91c95948][diff between `havlak1` and `havlak2`]])
 
@@ -315,7 +315,8 @@
 	$ make havlak3.mprof
 	go build havlak3.go
 	./havlak3 -memprofile=havlak3.mprof
-	$ 
+	$
+
 (See the [[https://github.com/rsc/benchgraffiti/commit/b78dac106bea1eb3be6bb3ca5dba57c130268232][diff from havlak2]])
 
 We use `go tool pprof` exactly the same way. Now the samples we are examining are
@@ -372,7 +373,6 @@
 As an aside, if we run `go tool pprof` with the `--inuse_objects` flag, it will
 report allocation counts instead of sizes:
 
-
 	$ go tool pprof --inuse_objects havlak3 havlak3.mprof
 	Adjusting heap profiles for 1-in-524288 sampling rate
 	Welcome to pprof!  For help, type 'help'.
@@ -424,7 +424,8 @@
 	$ ./xtime ./havlak4
 	# of loops: 76000 (including 1 artificial root node)
 	11.84u 0.08s 11.94r 810416kB ./havlak4
-	$ 
+	$
+
 (See the [[https://github.com/rsc/benchgraffiti/commit/245d899f7b1a33b0c8148a4cd147cb3de5228c8a][diff from havlak3]])
 
 We're now at 2.11x faster than when we started. Let's look at a CPU profile again.
@@ -566,6 +567,7 @@
 	# of loops: 76000 (including 1 artificial root node)
 	8.03u 0.06s 8.11r 770352kB ./havlak5
 	$
+
 (See the [[https://github.com/rsc/benchgraffiti/commit/2d41d6d16286b8146a3f697dd4074deac60d12a4][diff from havlak4]])
 
 There's more we can do to clean up the program and make it faster, but none of
@@ -587,7 +589,7 @@
 	$ ./xtime ./havlak6
 	# of loops: 76000 (including 1 artificial root node)
 	2.26u 0.02s 2.29r 360224kB ./havlak6
-	$ 
+	$
 
 That's 11 times faster than the program we started with.
 Even if we disable reuse of the generated loop graph, so that the only cached memory
@@ -620,6 +622,7 @@
 	 401 1220 9040 havlak6.cc
 	 461 1441 9467 havlak6.go
 	$
+
 (See [[https://github.com/rsc/benchgraffiti/blob/master/havlak/havlak6.cc][havlak6.cc]]
 and [[https://github.com/rsc/benchgraffiti/blob/master/havlak/havlak6.go][havlak6.go]])
 
diff --git a/content/qihoo.article b/content/qihoo.article
index ccd16bc..7f90ed8 100644
--- a/content/qihoo.article
+++ b/content/qihoo.article
@@ -89,7 +89,6 @@
 in action:
 
 .image qihoo/image02.png
-
 .image qihoo/image03.png
 
 The great thing about this platform is that we can actually simulate the
diff --git a/content/race-detector.article b/content/race-detector.article
index ef61a5c..1a284f2 100644
--- a/content/race-detector.article
+++ b/content/race-detector.article
@@ -139,7 +139,7 @@
 The second example is more subtle.
 
 The `ioutil` package's
-[[https://golang.org/pkg/io/ioutil/#Discard][`Discard`]] object implements 
+[[https://golang.org/pkg/io/ioutil/#Discard][`Discard`]] object implements
 [[https://golang.org/pkg/io/#Writer][`io.Writer`]],
 but discards all the data written to it.
 Think of it like `/dev/null`: a place to send data that you need to read but
diff --git a/content/spotlight-on-external-go-libraries.article b/content/spotlight-on-external-go-libraries.article
index ef7c810..75500cc 100644
--- a/content/spotlight-on-external-go-libraries.article
+++ b/content/spotlight-on-external-go-libraries.article
@@ -9,7 +9,7 @@
 While the Go authors have been working hard at improving Go's standard library,
 the greater community has created a growing ecosystem of external libraries.
 In this post we look at some popular Go libraries and how they can be used.
- 
+
 [[http://labix.org/mgo][Mgo]] (pronounced "mango") is a MongoDB database driver.
 [[http://www.mongodb.org/][MongoDB]] is a [[http://en.wikipedia.org/wiki/Document-oriented_database][document-oriented database]]
 with a long list of features suitable for [[http://www.mongodb.org/display/DOCS/Use%2BCases][a broad range of uses]].
@@ -22,7 +22,7 @@
 details and example code.
 For working with large data sets Go, MongoDB,
 and mgo are a powerful combination.
- 
+
 [[https://github.com/dchest/authcookie][Authcookie]] is a web library for
 generating and verifying user authentication cookies.
 It allows web servers to hand out cryptographically secure tokens tied to
@@ -31,14 +31,14 @@
 to existing web applications.
 See the [[https://github.com/dchest/authcookie/blob/master/README.md][README file]]
 for details and example code.
- 
+
 [[http://code.google.com/p/go-charset][Go-charset]] provides support for
 converting between Go's standard UTF-8 encoding and a variety of character sets.
 The go-charset package implements a translating io.Reader and io.Writer
 so you can wrap existing Readers and Writers (such as network connections
 or file descriptors),
 making it easy to communicate with systems that use other character encodings.
- 
+
 [[https://github.com/madari/go-socket.io][Go-socket.io]] is a Go implementation
 of [[http://socket.io/][Socket.IO]],
 a client/server API that allows web servers to push messages to web browsers.
@@ -49,19 +49,18 @@
 Go-socket.io bridges the gap between Go servers and rich JavaScript clients
 for a wide range of browsers.
 To get a feel for go-socket.io see the [[https://github.com/madari/go-socket.io/blob/master/example/example.go][chat server example]].
- 
+
 It's worth mentioning that these packages are [[https://golang.org/cmd/goinstall/][goinstallable]].
 With an up-to-date Go [[https://golang.org/doc/install.html][installation]]
 you can install them all with a single command:
-	 
+
 	goinstall launchpad.net/mgo \
 	    github.com/dchest/authcookie \
 	    go-charset.googlecode.com/hg/charset \
 	    github.com/madari/go-socket.io
 
- 
 Once goinstalled, the packages can be imported using those same paths:
-	 
+
 	import (
 	    "launchpad.net/mgo"
 	    "github.com/dchest/authcookie"
@@ -69,12 +68,11 @@
 	    "github.com/madari/go-socket.io"
 	)
 
- 
 Also, as they are now a part of the local Go system,
 we can inspect their documentation with [[https://golang.org/cmd/godoc/][godoc]]:
-	 
+
 	godoc launchpad.net/mgo Database # see docs for Database type
- 
+
 Of course, this is just the tip of the iceberg;
 there are more great Go libraries listed on the [[http://godashboard.appspot.com/package][package dashboard]]
 and many more to come.
diff --git a/content/store.article b/content/store.article
index 2138079..f295fa4 100644
--- a/content/store.article
+++ b/content/store.article
@@ -23,4 +23,3 @@
 Follow the [[https://twitter.com/golang][Twitter account]] for updates, we plan on adding new goodies for all our Go fans out there, so keep an eye out!
 
 Happy shopping!
-
diff --git a/content/strings.article b/content/strings.article
index be58013..0a9bd8f 100644
--- a/content/strings.article
+++ b/content/strings.article
@@ -72,7 +72,7 @@
 stick with just the bytes.
 This is the output from the byte-by-byte loop:
 
-	bd b2 3d bc 20 e2 8c 98 
+	bd b2 3d bc 20 e2 8c 98
 
 Notice how the individual bytes match the
 hexadecimal escapes that defined the string.
@@ -166,7 +166,7 @@
 
 	plain string: ⌘
 	quoted string: "\u2318"
-	hex bytes: e2 8c 98 
+	hex bytes: e2 8c 98
 
 which reminds us that the Unicode character value U+2318, the "Place
 of Interest" symbol ⌘, is represented by the bytes `e2` `8c` `98`, and
@@ -262,7 +262,6 @@
 - Those sequences represent Unicode code points, called runes.
 - No guarantee is made in Go that characters in strings are normalized.
 
-
 * Range loops
 
 Besides the axiomatic detail that Go source code is UTF-8,
diff --git a/content/subtests.article b/content/subtests.article
index 7edbc78..e3c212d 100644
--- a/content/subtests.article
+++ b/content/subtests.article
@@ -111,8 +111,6 @@
 Moreover, common setup code is now shared between runs while eliminating the
 need to reset the timer.
 
-
-
 * Table-driven tests using subtests
 
 Go 1.7 also introduces a `Run` method for creating subtests.
@@ -169,7 +167,6 @@
 There are several other benefits to using subtests or sub-benchmarks,
 as clarified by the following sections.
 
-
 * Running specific tests or benchmarks
 
 Both subtests and sub-benchmarks can be singled out on the command line using
@@ -306,7 +303,6 @@
 Note that we need to capture the range variable to ensure that `tc` gets bound to
 the correct instance.
 
-
 ** Cleaning up after a group of parallel tests
 
 In the previous example we used the semantics to wait on a group of parallel
diff --git a/content/survey2016-results.article b/content/survey2016-results.article
index b4092c4..b5756cf 100644
--- a/content/survey2016-results.article
+++ b/content/survey2016-results.article
@@ -24,7 +24,6 @@
 Like in the previous question, most made multiple choices,
 with 85% choosing two or more and 72% choosing three or more.
 
-
 We asked about people’s expertise and preference among programming languages.
 Unsurprisingly, Go ranked highest among respondents’ first choices in both expertise (26%) and preference (62%).
 With Go excluded, the top five first choices for language expertise were
@@ -33,7 +32,6 @@
 Python (22%), JavaScript (10%), C (9%), Java (9%), and Ruby (7%).
 Go is clearly attracting many programmers from dynamic languages.
 
-
 .html survey2016/background.html
 
 * Go usage
@@ -76,10 +74,8 @@
 The 51% of responses choosing a single system split into
 29% on Linux, 17% on MacOS, 5% on Windows, and 0.2% on other systems.
 
-
 Go deployment is roughly evenly split between privately managed servers and hosted cloud servers.
 
-
 .html survey2016/dev.html
 
 * Working Effectively
@@ -91,7 +87,6 @@
 On the other hand, users least agreed that they are able to effectively
 debug uses of Go’s concurrency features (2.7:1).
 
-
 Users mostly agreed that they were able to quickly find libraries they need (7.5:1).
 When asked what libraries are still missing, the most common request by far was a library for writing GUIs.
 Another popular topic was requests around data processing, analytics, and numerical and scientific computing.
@@ -121,7 +116,7 @@
 and they agree even less that they feel comfortable approaching project leadership with questions and feedback (2.2:1).
 In fact, these were the only questions in the survey for which more than half of respondents
 did not mark “somewhat agree”, “agree”, or “strongly agree” (many were neutral or did not answer).
- 
+
 We hope that the survey and this blog post convey to those of you
 who are aren’t comfortable reaching out that the Go project leadership is listening.
 Throughout 2017 we will be exploring new ways to engage with users to better understand their needs.
diff --git a/content/survey2017-results.article b/content/survey2017-results.article
index c64cf07..59ebc9a 100644
--- a/content/survey2017-results.article
+++ b/content/survey2017-results.article
@@ -74,7 +74,6 @@
 a decreased percentage who identified "Go not being an appropriate fit". Other
 than these changes, the list remains consistent with last year.
 
-
 .html survey2017/usage.html
 
 * Development and deployment
@@ -189,4 +188,4 @@
 
 Finally, on behalf of the entire Go project, we are grateful for everyone who
 has contributed to our project, whether by being a part of our great community,
-by taking this survey or by taking an interest in Go.
\ No newline at end of file
+by taking this survey or by taking an interest in Go.
diff --git a/content/survey2018-results.article b/content/survey2018-results.article
index 5ba4a1f..f8ff4f5 100644
--- a/content/survey2018-results.article
+++ b/content/survey2018-results.article
@@ -6,6 +6,7 @@
 tkulesza@google.com, spf@golang.org
 
 * Thank you
+
 .html survey2018/style.html
 
 This post summarizes the results of our 2018 user survey and draws comparisons
@@ -54,18 +55,8 @@
 software development at a consistent pace,
 and that Go's general popularity with developers remains strong.
 
-#This year we saw an 8-point increase in the number of respondents who program in other languages at work. The majority of these developers (55%) still program in Go as part of their daily routine, and an additional 31% program in Go weekly. This suggests there is a sizable (and growing) audience of Go developers whose work involves switching between multiple languages; , and may be dealing with a difficult mental context switch due to syntactic and semantic language differences. Indeed, participants reported that one of their challenges to using Go was "differences from familiar languages/ecosystems", as we'll discuss in the _Attitudes_towards_Go_ section below.
-
-#.html survey2018/fig1-3.html
-
 .image survey2018/fig1.svg _ 600
-#.caption Figure 1
-
 .image survey2018/fig2.svg _ 600
-#.caption Figure 2
-
-#.image survey2018/fig3.svg _ 600
-#.caption Figure 3
 
 To better understand where developers use Go,
 we broke responses down into three groups:
@@ -85,7 +76,6 @@
 prefer to use for these non-work-related projects.
 
 .image survey2018/fig4.svg _ 600
-#.caption Figure 4
 
 When asked how long they've been using Go,
 participants' answers are strongly trending upward over time,
@@ -98,7 +88,6 @@
 initially learning the language.
 
 .image survey2018/fig5.svg _ 600
-#.caption Figure 5
 
 As in prior years, Go ranks at the top of respondents' preferred languages
 and languages in which they have expertise.
@@ -130,10 +119,7 @@
   which also found Rust, Kotlin, and Go to be among the most-preferred programming languages.
 
 .image survey2018/fig6.svg _ 600
-#.caption Figure 6
-
 .image survey2018/fig7.svg _ 600
-#.caption Figure 7
 .html survey2018/reading.html
 
 * Development domains
@@ -151,7 +137,6 @@
 rather than shifting usage from one domain to another.
 
 .image survey2018/fig8.svg _ 600
-#.caption Figure 8
 
 Since 2016, the top two uses of Go have been writing API/RPC services and
 developing CLI applications.
@@ -167,7 +152,6 @@
 with 38% of respondents now using Go for scripts and automation tasks (up from 31% in 2016).
 
 .image survey2018/fig9.svg _ 600
-#.caption Figure 9
 
 To better understand the contexts in which developers are using Go,
 we added a question about Go adoption across different industries.
@@ -182,7 +166,6 @@
 of technology companies.
 
 .image survey2018/fig10.svg _ 600
-#.caption Figure 10
 
 * Attitudes towards Go
 
@@ -196,7 +179,6 @@
 baseline to help us gauge community sentiment towards the Go ecosystem over time.
 
 .image survey2018/fig11.svg _ 600
-#.caption Figure 11
 
 In addition to NPS, we asked several questions about developer satisfaction with Go.
 Overall, survey respondents indicated a high level of satisfaction,
@@ -211,10 +193,7 @@
 to "_Overall,_I'm_happy_with_Go_",
 so those results are not directly comparable.)
 
-#We also looked at only the respondents who _strongly_ agreed with each statement and found the same pattern: increases in 2017, stabilizing in 2018.
-
 .image survey2018/fig12.svg _ 600
-#.caption Figure 12
 
 Given the strong sentiment towards preferring Go for future development,
 we want to understand what prevents developers from doing so.
@@ -242,10 +221,7 @@
   "Hard to build richer abstractions (want generics)")
 
 .image survey2018/fig13.svg _ 600
-#.caption Figure 13
-
 .image survey2018/fig14.svg _ 600
-#.caption Figure 14
 
 This year we added several questions about developer satisfaction with different aspects of Go.
 Survey respondents were very satisfied with Go applications' CPU performance (46:1,
@@ -274,10 +250,7 @@
 with a goal of improving the overall debugging experience for Go developers.
 
 .image survey2018/fig15.svg _ 600
-#.caption Figure 15
-
 .image survey2018/fig29.svg _ 600
-#.caption Figure 29
 
 * Development environments
 
@@ -292,7 +265,6 @@
 highlighting the cross-platform nature of Go.
 
 .image survey2018/fig16.svg _ 600
-#.caption Figure 16
 
 Last year, VS Code edged out Vim as the most popular Go editor among survey respondents.
 This year it significantly expanded its lead to become the preferred editor
@@ -319,10 +291,7 @@
 better support for modules/packages, and general performance improvements.
 
 .image survey2018/fig17.svg _ 600
-#.caption Figure 17
-
 .image survey2018/fig18.svg _ 600
-#.caption Figure 18
 
 This year we also added a question asking which deployment architectures
 are most important to Go developers.
@@ -336,7 +305,6 @@
 WebAssembly (30%), and ARM (22%), but very little interest in other platforms.
 
 .image survey2018/fig19.svg _ 600
-#.caption Figure 19
 
 * Deployments and services
 
@@ -358,7 +326,6 @@
 increasing from 12% → 19% of respondents.
 
 .image survey2018/fig20.svg _ 600
-#.caption Figure 20
 
 Perhaps correlated with the decrease in on-prem deployments,
 this year we saw cloud storage become the second-most used service by survey respondents,
@@ -370,7 +337,6 @@
 As the below chart shows, service usage increased across the board.
 
 .image survey2018/fig21.svg _ 600
-#.caption Figure 21
 
 * Go community
 
@@ -388,10 +354,7 @@
 respondents into the "Other" category.
 
 .image survey2018/fig24.svg _ 600
-#.caption Figure 24
-
 .image survey2018/fig25.svg _ 600
-#.caption Figure 25
 
 This year, 55% of survey respondents said they have or are interested in
 contributing to the Go community,
@@ -404,10 +367,7 @@
 in the leadership of Go (54% → 46%).
 
 .image survey2018/fig26.svg _ 600
-#.caption Figure 26
-
 .image survey2018/fig27.svg _ 600
-#.caption Figure 27
 
 An important aspect of community is helping everyone feel welcome,
 especially people from traditionally under-represented demographics.
@@ -425,7 +385,6 @@
 and may even be increasing.
 
 .image survey2018/fig28.svg _ 600
-#.caption Figure 28
 
 Maintaining a healthy community is extremely important to the Go project,
 so for the past three years we've been measuring the extent to which developers
@@ -447,7 +406,6 @@
 "What changes would make the Go community more welcoming?".
 Respondents' comments can be broadly grouped into four categories:
 
-
 - Reduce a perception of elitism, especially for newcomers to Go (e.g.,
   "less dismissiveness", "Less defensiveness and hubris")
 - Increase transparency at the leadership level (e.g.,
@@ -464,10 +422,7 @@
 we take this feedback very seriously and are working on improving each area.
 
 .image survey2018/fig22.svg _ 600
-#.caption Figure 22
-
 .image survey2018/fig23.svg _ 600
-#.caption Figure 23
 
 * Conclusion
 
diff --git a/content/the-app-engine-sdk-and-workspaces-gopath.article b/content/the-app-engine-sdk-and-workspaces-gopath.article
index 0bf3fbf..73ae7d9 100644
--- a/content/the-app-engine-sdk-and-workspaces-gopath.article
+++ b/content/the-app-engine-sdk-and-workspaces-gopath.article
@@ -88,17 +88,17 @@
 Let's take a simple Go web server and turn it into a hybrid app. This is main.go:
 
 	    package main
-	    
+
 	    import (
 	        "fmt"
 	        "net/http"
 	    )
-	    
+
 	    func main() {
 	        http.HandleFunc("/", handler)
 	        http.ListenAndServe("localhost:8080", nil)
 	    }
-	    
+
 	    func handler(w http.ResponseWriter, r *http.Request) {
 	        fmt.Fprint(w, "Hello!")
 	    }
@@ -111,16 +111,16 @@
 and register the handler in an init function (which runs before main). This is app.go:
 
 	    package main
-	    
+
 	    import (
 	        "fmt"
 	        "net/http"
 	    )
-	    
+
 	    func init() {
 	        http.HandleFunc("/", handler)
 	    }
-	    
+
 	    func handler(w http.ResponseWriter, r *http.Request) {
 	        fmt.Fprint(w, "Hello!")
 	    }
@@ -138,13 +138,13 @@
 as it must only included when building the stand-alone binary.
 
 	    // +build !appengine
-	    
+
 	    package main
-	    
+
 	    import "net/http"
-	    
+
 	    func main() {
-	        http.ListenAndServe("localhost:8080", nil)        
+	        http.ListenAndServe("localhost:8080", nil)
 	    }
 
 To see a more complex hybrid app, take a look at the [[https://godoc.org/golang.org/x/tools/present][present tool]].
diff --git a/content/third-party-libraries-goprotobuf-and.article b/content/third-party-libraries-goprotobuf-and.article
index afdd586..b356e81 100644
--- a/content/third-party-libraries-goprotobuf-and.article
+++ b/content/third-party-libraries-goprotobuf-and.article
@@ -28,7 +28,7 @@
 And then install the protobuf compiler plugin:
 
 	 cd $GOROOT/src/pkg/goprotobuf.googlecode.com/hg/compiler
-	 make install 
+	 make install
 
 For more detail see the project's [[http://code.google.com/p/goprotobuf/source/browse/README][README]] file.
 
diff --git a/content/toward-go2.article b/content/toward-go2.article
index e98f083..584883e 100644
--- a/content/toward-go2.article
+++ b/content/toward-go2.article
@@ -276,7 +276,7 @@
 	start := time.Now()       // 3:04:05.000
 	event()
 	end := time.Now()         // 3:04:05.010
-	
+
 	elapsed := end.Sub(start) // 10 ms
 
 This obvious procedure can fail during a [[https://en.wikipedia.org/wiki/Leap_second][leap second]]. When our clocks
@@ -294,7 +294,7 @@
 	start := time.Now()       // 11:59:59.995
 	event()
 	end := time.Now()         // 11:59:59.005 (really 11:59:60.005)
-	
+
 	elapsed := end.Sub(start) // –990 ms
 
 Because the time-of-day clock is inaccurate for timing events across
@@ -398,7 +398,7 @@
 convey to the broader Go community the significance of handling
 gradual code migration and repair during large-scale changes.
 
-In the fall we started over. I gave a [[https://www.youtube.com/watch?v=h6Cw9iCDVcU][talk]] and wrote 
+In the fall we started over. I gave a [[https://www.youtube.com/watch?v=h6Cw9iCDVcU][talk]] and wrote
 [[https://talks.golang.org/2016/refactor.article][an article presenting the problem]]
 using multiple concrete examples drawn from
 open source codebases, showing how this problem arises everywhere, not
@@ -415,7 +415,7 @@
 community, we will need to pay particular attention to describing the
 significance of any problem we want to solve. The clearest way to do
 that is by showing how the problem affects real programs and real
-production systems, like in 
+production systems, like in
 [[https://blog.cloudflare.com/how-and-why-the-leap-second-affected-cloudflare-dns/][Cloudflare's blog post]] and in
 [[https://talks.golang.org/2016/refactor.article][my refactoring article]].
 
@@ -481,7 +481,7 @@
 contains various bit manipulation functions:
 
 	package bits // import "math/bits"
-	
+
 	func LeadingZeros32(x uint32) int
 	func Len32(x uint32) int
 	func OnesCount32(x uint32) int
diff --git a/content/using-go-modules.article b/content/using-go-modules.article
index ea13545..8d2774a 100644
--- a/content/using-go-modules.article
+++ b/content/using-go-modules.article
@@ -48,7 +48,6 @@
 This post walks through a sequence of common operations
 that arise when developing Go code with modules:
 
-
 - Creating a new module.
 - Adding a dependency.
 - Upgrading dependencies.
@@ -161,7 +160,6 @@
 	ok  	example.com/hello	0.023s
 	$
 
-
 The `go` command resolves imports by using the specific
 dependency module versions listed in `go.mod`.
 When it encounters an `import` of a package not provided
@@ -195,7 +193,6 @@
 	ok  	example.com/hello	0.020s
 	$
 
-
 Note that while the `go` command makes adding a new dependency
 quick and easy, it is not without cost.
 Your module now literally _depends_ on the new dependency
@@ -377,7 +374,6 @@
 	ok  	example.com/hello	0.024s
 	$
 
-
 Note that our module now depends on both `rsc.io/quote` and `rsc.io/quote/v3`:
 
 	$ go list -m rsc.io/q...
@@ -468,7 +464,6 @@
 		return quote.Concurrency()
 	}
 
-
 Let's re-run the tests to make sure everything is working:
 
 	$ go test
diff --git a/content/v2-go-modules.article b/content/v2-go-modules.article
index 54b7e5a..cb8b7be 100644
--- a/content/v2-go-modules.article
+++ b/content/v2-go-modules.article
@@ -96,9 +96,9 @@
 	header.go
 	$ cat go.mod
 	module github.com/googleapis/gax-go
-	
+
 	go 1.9
-	
+
 	require (
 		github.com/golang/protobuf v1.3.1
 		golang.org/x/exp v0.0.0-20190221220918-438050ddec5e
@@ -120,7 +120,7 @@
 	header.go
 	invoke.go
 	tools.go
-	
+
 	sent 10588 bytes  received 130 bytes  21436.00 bytes/sec
 	total size is 10208  speedup is 0.95
 	$
diff --git a/content/versioning-proposal.article b/content/versioning-proposal.article
index 0b95a77..92c8f54 100644
--- a/content/versioning-proposal.article
+++ b/content/versioning-proposal.article
@@ -38,11 +38,11 @@
 [[https://blog.golang.org/preview-of-go-version-1][Go 1]]
 was not a language feature.
 It was Go 1’s emphasis on backwards compatibility.
-Until that point we’d issued stable release 
+Until that point we’d issued stable release
 snapshots approximately monthly,
 each with significant incompatible changes.
 We observed significant acceleration in interest and adoption
-immediately after the release of Go 1. 
+immediately after the release of Go 1.
 We believe that the
 [[https://golang.org/doc/go1compat.html][promise of compatibility]]
 made developers feel much more comfortable relying on
@@ -84,7 +84,7 @@
 When I realized this, the logical necessity surprised me.
 
 I was also surprised to realize that
-there is a second, independent logical route to 
+there is a second, independent logical route to
 semantic import versioning:
 [[https://talks.golang.org/2016/refactor.article][gradual code repair]]
 or partial code upgrades.
@@ -130,7 +130,7 @@
 import compatibility simplifies version selection,
 which is the problem of deciding which package versions to use for a given build.
 The constraints of Cargo and Dep make version selection
-equivalent to 
+equivalent to
 [[https://research.swtch.com/version-sat][solving Boolean satisfiability]],
 meaning it can be very expensive to determine whether
 a valid version configuration even exists.
@@ -140,7 +140,7 @@
 a trivial, linear-time algorithm
 to find the single best configuration, which always exists.
 This algorithm,
-which I call 
+which I call
 [[https://research.swtch.com/vgo-mvs][_minimal_version_selection_]],
 in turn eliminates the need for separate lock and manifest files.
 It replaces them with a single, short configuration file,
@@ -227,7 +227,7 @@
 wrapper into a full versioned `go` command, `vgo`;
 writing drafts of a
 [[https://research.swtch.com/vgo][blog post series introducing `vgo`]];
-and discussing them with 
+and discussing them with
 Sam Boyer, the package management working group,
 and the Go team.
 And then I spent the last week of February finally
@@ -275,7 +275,7 @@
 For this proposal to succeed, the Go ecosystem as a
 whole—and in particular today’s major Go projects—will need to
 adopt the import compatibility rule and semantic import versioning.
-To make sure that can happen smoothly, 
+To make sure that can happen smoothly,
 we will also be conducting user feedback sessions
 by video conference with projects that have questions about
 how to incorporate the new versioning proposal into their code bases
diff --git a/content/why-generics.article b/content/why-generics.article
index c972550..44e9e1e 100644
--- a/content/why-generics.article
+++ b/content/why-generics.article
@@ -642,7 +642,6 @@
 		return pn
 	}
 
-
 The details here don't really matter, especially since I haven't
 tested this code.
 I'm just trying to show what it looks like to write a simple generic
