fix doc urls (#120)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index a8e723c..b5d2622 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,7 +12,7 @@
   `shelf_io.serve`.
 * Correctly pass `encoding` in `Response` constructors `forbidden`, `notFound`,
   and `internalServerError`.
-* Update `README.md` to point to latest docs on `pub.dartlang.org`.
+* Update `README.md` to point to latest docs.
 
 ## 0.7.3+3
 
@@ -200,8 +200,8 @@
 current handler to the requested. The new semantics are easier to describe and
 to understand.
 
-[url]: http://www.dartdocs.org/documentation/shelf/latest/index.html#shelf/shelf.Request@id_url
-[handlerPath]: http://www.dartdocs.org/documentation/shelf/latest/index.html#shelf/shelf.Request@id_handlerPath
+[url]: https://pub.dev/documentation/shelf/latest/shelf/Request/url.html
+[handlerPath]: https://pub.dev/documentation/shelf/latest/shelf/Request/handlerPath.html
 
 Practically speaking, the main difference is that the `/` at the beginning of
 `url`'s path has been moved to the end of `handlerPath`. This makes `url`'s path
@@ -214,7 +214,7 @@
 `handlerPath` to the next one, and sets both `handlerPath` and `url` on the new
 `Request` accordingly.
 
-[change]: http://www.dartdocs.org/documentation/shelf/latest/index.html#shelf/shelf.Request@id_change
+[change]: https://pub.dev/documentation/shelf/latest/shelf/Request/change.html
 
 ## 0.5.7
 
@@ -239,7 +239,7 @@
 
 * Clarified documentation on a number of `Response` constructors.
 
-* Updated `README` links to point to latest docs on `www.dartdocs.org`.
+* Updated `README` links to point to latest docs.
 
 ## 0.5.4+3
 
diff --git a/README.md b/README.md
index 6e37f42..10db7c4 100644
--- a/README.md
+++ b/README.md
@@ -44,11 +44,11 @@
 do some processing and forward it to another handler--for example, a logger that
 prints information about requests and responses to the command line.
 
-[handler]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Handler.html
+[handler]: https://pub.dev/documentation/shelf/latest/shelf/Handler.html
 
-[shelf.Request]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Request-class.html
+[shelf.Request]: https://pub.dev/documentation/shelf/latest/shelf/Request-class.html
 
-[shelf.Response]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Response-class.html
+[shelf.Response]: https://pub.dev/documentation/shelf/latest/shelf/Response-class.html
 
 The latter kind of handler is called "[middleware][]", since it sits in the
 middle of the server stack. Middleware can be thought of as a function that
@@ -57,9 +57,9 @@
 middleware with one or more handlers at the very center; the [shelf.Pipeline][]
 class makes this sort of application easy to construct.
 
-[middleware]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Middleware.html
+[middleware]: https://pub.dev/documentation/shelf/latest/shelf/Middleware.html
 
-[shelf.Pipeline]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Pipeline-class.html
+[shelf.Pipeline]: https://pub.dev/documentation/shelf/latest/shelf/Pipeline-class.html
 
 Some middleware can also take multiple handlers and call one or more of them for
 each request. For example, a routing middleware might choose which handler to
@@ -72,9 +72,9 @@
 routing correctly. This can be easily accomplished using
 [`Request.change()`][change]:
 
-[handlerPath]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Request/handlerPath.html
-[url]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Request/url.html
-[change]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Request/change.html
+[handlerPath]: https://pub.dev/documentation/shelf/latest/shelf/Request/handlerPath.html
+[url]: https://pub.dev/documentation/shelf/latest/shelf/Request/url.html
+[change]: https://pub.dev/documentation/shelf/latest/shelf/Request/change.html
 
 ```dart
 // In an imaginary routing middleware...
@@ -96,7 +96,7 @@
 HTTP requests within the browser using `window.location` and `window.history`,
 or it might pipe requests directly from an HTTP client to a Shelf handler.
 
-[shelf_io.serve]: https://pub.dartlang.org/documentation/shelf/latest/shelf_io/serve.html
+[shelf_io.serve]: https://pub.dev/documentation/shelf/latest/shelf_io/serve.html
 
 ### API Requirements
 
@@ -134,7 +134,7 @@
 An adapter that knows its own URL should provide an implementation of the
 [`Server`][server] interface.
 
-[server]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Server-class.html
+[server]: https://pub.dev/documentation/shelf/latest/shelf/Server-class.html
 
 ### Request Requirements
 
@@ -145,7 +145,7 @@
 with the same name are received, the adapter must collapse them into a single
 header separated by commas as per [RFC 2616 section 4.2][].
 
-[new shelf.Request]: https://pub.dartlang.org/documentation/shelf/latest/shelf/Request/Request.html
+[new shelf.Request]: https://pub.dev/documentation/shelf/latest/shelf/Request/Request.html
 
 [RFC 2616 section 4.2]: http://www.w3.org/Protocols/rfc2616/rfc2616-sec4.html
 
diff --git a/lib/shelf_io.dart b/lib/shelf_io.dart
index 94a1889..aa0c130 100644
--- a/lib/shelf_io.dart
+++ b/lib/shelf_io.dart
@@ -12,7 +12,7 @@
 /// property is `true` (the default), streamed responses will be buffered to
 /// improve performance; if it's `false`, all chunks will be pushed over the
 /// wire as they're received. See
-/// [`HttpResponse.bufferOutput`](https://api.dartlang.org/stable/dart-io/HttpResponse/bufferOutput.html)
+/// [`HttpResponse.bufferOutput`](https://api.dart.dev/stable/dart-io/HttpResponse/bufferOutput.html)
 /// for more information.
 ///
 /// `Request`s passed to a `Handler` will contain the