_content/doc: change relnote definition lists to headings

Since 1.7, the "Minor changes to the library" second has used
a definition list to describe the changes to each package.

Use level 4 headings instead. This removes one feature
that is not CommonMark-compliant. It paves the way for
using a CommonMark-compliant Markdown parser and renderer
for both display and generation of release notes.

For golang/go#64169.

Change-Id: I2327499971a2db4eee06ef35e3e41cd0d2f953b3
Reviewed-on: https://go-review.googlesource.com/c/website/+/541976
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
Run-TryBot: Jonathan Amsterdam <jba@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
diff --git a/_content/doc/go1.10.md b/_content/doc/go1.10.md
index 1967dcc..6fc1ebf 100644
--- a/_content/doc/go1.10.md
+++ b/_content/doc/go1.10.md
@@ -521,603 +521,603 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[archive/tar](/pkg/archive/tar/)
+#### [archive/tar](/pkg/archive/tar/)
 
-:   In general, the handling of special header formats is significantly improved and expanded.
+In general, the handling of special header formats is significantly improved and expanded.
 
-    [`FileInfoHeader`](/pkg/archive/tar/#FileInfoHeader) has always
-    recorded the Unix UID and GID numbers from its [`os.FileInfo`](/pkg/os/#FileInfo) argument
-    (specifically, from the system-dependent information returned by the `FileInfo`'s `Sys` method)
-    in the returned [`Header`](/pkg/archive/tar/#Header).
-    Now it also records the user and group names corresponding to those IDs,
-    as well as the major and minor device numbers for device files.
+[`FileInfoHeader`](/pkg/archive/tar/#FileInfoHeader) has always
+recorded the Unix UID and GID numbers from its [`os.FileInfo`](/pkg/os/#FileInfo) argument
+(specifically, from the system-dependent information returned by the `FileInfo`'s `Sys` method)
+in the returned [`Header`](/pkg/archive/tar/#Header).
+Now it also records the user and group names corresponding to those IDs,
+as well as the major and minor device numbers for device files.
 
-    The new [`Header.Format`](/pkg/archive/tar/#Header) field
-    of type [`Format`](/pkg/archive/tar/#Format)
-    controls which tar header format the [`Writer`](/pkg/archive/tar/#Writer) uses.
-    The default, as before, is to select the most widely-supported header type
-    that can encode the fields needed by the header (USTAR if possible, or else PAX if possible, or else GNU).
-    The [`Reader`](/pkg/archive/tar/#Reader) sets `Header.Format` for each header it reads.
+The new [`Header.Format`](/pkg/archive/tar/#Header) field
+of type [`Format`](/pkg/archive/tar/#Format)
+controls which tar header format the [`Writer`](/pkg/archive/tar/#Writer) uses.
+The default, as before, is to select the most widely-supported header type
+that can encode the fields needed by the header (USTAR if possible, or else PAX if possible, or else GNU).
+The [`Reader`](/pkg/archive/tar/#Reader) sets `Header.Format` for each header it reads.
 
-    `Reader` and the `Writer` now support arbitrary PAX records,
-    using the new [`Header.PAXRecords`](/pkg/archive/tar/#Header) field,
-    a generalization of the existing `Xattrs` field.
+`Reader` and the `Writer` now support arbitrary PAX records,
+using the new [`Header.PAXRecords`](/pkg/archive/tar/#Header) field,
+a generalization of the existing `Xattrs` field.
 
-    The `Reader` no longer insists that the file name or link name in GNU headers
-    be valid UTF-8.
+The `Reader` no longer insists that the file name or link name in GNU headers
+be valid UTF-8.
 
-    When writing PAX- or GNU-format headers, the `Writer` now includes
-    the `Header.AccessTime` and `Header.ChangeTime` fields (if set).
-    When writing PAX-format headers, the times include sub-second precision.
+When writing PAX- or GNU-format headers, the `Writer` now includes
+the `Header.AccessTime` and `Header.ChangeTime` fields (if set).
+When writing PAX-format headers, the times include sub-second precision.
 
-[archive/zip](/pkg/archive/zip/)
+#### [archive/zip](/pkg/archive/zip/)
 
-:   Go 1.10 adds more complete support for times and character set encodings in ZIP archives.
+Go 1.10 adds more complete support for times and character set encodings in ZIP archives.
 
-    The original ZIP format used the standard MS-DOS encoding of year, month, day, hour, minute, and second into fields in two 16-bit values.
-    That encoding cannot represent time zones or odd seconds, so multiple extensions have been
-    introduced to allow richer encodings.
-    In Go 1.10, the [`Reader`](/pkg/archive/zip/#Reader) and [`Writer`](/pkg/archive/zip/#Writer)
-    now support the widely-understood Info-Zip extension that encodes the time separately in the 32-bit Unix “seconds since epoch” form.
-    The [`FileHeader`](/pkg/archive/zip/#FileHeader)'s new `Modified` field of type [`time.Time`](/pkg/time/#Time)
-    obsoletes the `ModifiedTime` and `ModifiedDate` fields, which continue to hold the MS-DOS encoding.
-    The `Reader` and `Writer` now adopt the common
-    convention that a ZIP archive storing a time zone-independent Unix time
-    also stores the local time in the MS-DOS field,
-    so that the time zone offset can be inferred.
-    For compatibility, the [`ModTime`](/pkg/archive/zip/#FileHeader.ModTime) and
-    [`SetModTime`](/pkg/archive/zip/#FileHeader.SetModTime) methods
-    behave the same as in earlier releases; new code should use `Modified` directly.
+The original ZIP format used the standard MS-DOS encoding of year, month, day, hour, minute, and second into fields in two 16-bit values.
+That encoding cannot represent time zones or odd seconds, so multiple extensions have been
+introduced to allow richer encodings.
+In Go 1.10, the [`Reader`](/pkg/archive/zip/#Reader) and [`Writer`](/pkg/archive/zip/#Writer)
+now support the widely-understood Info-Zip extension that encodes the time separately in the 32-bit Unix “seconds since epoch” form.
+The [`FileHeader`](/pkg/archive/zip/#FileHeader)'s new `Modified` field of type [`time.Time`](/pkg/time/#Time)
+obsoletes the `ModifiedTime` and `ModifiedDate` fields, which continue to hold the MS-DOS encoding.
+The `Reader` and `Writer` now adopt the common
+convention that a ZIP archive storing a time zone-independent Unix time
+also stores the local time in the MS-DOS field,
+so that the time zone offset can be inferred.
+For compatibility, the [`ModTime`](/pkg/archive/zip/#FileHeader.ModTime) and
+[`SetModTime`](/pkg/archive/zip/#FileHeader.SetModTime) methods
+behave the same as in earlier releases; new code should use `Modified` directly.
 
-    The header for each file in a ZIP archive has a flag bit indicating whether
-    the name and comment fields are encoded as UTF-8, as opposed to a system-specific default encoding.
-    In Go 1.8 and earlier, the `Writer` never set the UTF-8 bit.
-    In Go 1.9, the `Writer` changed to set the UTF-8 bit almost always.
-    This broke the creation of ZIP archives containing Shift-JIS file names.
-    In Go 1.10, the `Writer` now sets the UTF-8 bit only when
-    both the name and the comment field are valid UTF-8 and at least one is non-ASCII.
-    Because non-ASCII encodings very rarely look like valid UTF-8, the new
-    heuristic should be correct nearly all the time.
-    Setting a `FileHeader`'s new `NonUTF8` field to true
-    disables the heuristic entirely for that file.
+The header for each file in a ZIP archive has a flag bit indicating whether
+the name and comment fields are encoded as UTF-8, as opposed to a system-specific default encoding.
+In Go 1.8 and earlier, the `Writer` never set the UTF-8 bit.
+In Go 1.9, the `Writer` changed to set the UTF-8 bit almost always.
+This broke the creation of ZIP archives containing Shift-JIS file names.
+In Go 1.10, the `Writer` now sets the UTF-8 bit only when
+both the name and the comment field are valid UTF-8 and at least one is non-ASCII.
+Because non-ASCII encodings very rarely look like valid UTF-8, the new
+heuristic should be correct nearly all the time.
+Setting a `FileHeader`'s new `NonUTF8` field to true
+disables the heuristic entirely for that file.
 
-    The `Writer` also now supports setting the end-of-central-directory record's comment field,
-    by calling the `Writer`'s new [`SetComment`](/pkg/archive/zip/#Writer.SetComment) method.
+The `Writer` also now supports setting the end-of-central-directory record's comment field,
+by calling the `Writer`'s new [`SetComment`](/pkg/archive/zip/#Writer.SetComment) method.
 
-[bufio](/pkg/bufio/)
+#### [bufio](/pkg/bufio/)
 
-:   The new [`Reader.Size`](/pkg/bufio/#Reader.Size)
-    and [`Writer.Size`](/pkg/bufio/#Writer.Size)
-    methods report the `Reader` or `Writer`'s underlying buffer size.
+The new [`Reader.Size`](/pkg/bufio/#Reader.Size)
+and [`Writer.Size`](/pkg/bufio/#Writer.Size)
+methods report the `Reader` or `Writer`'s underlying buffer size.
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   The
-    [`Fields`](/pkg/bytes/#Fields),
-    [`FieldsFunc`](/pkg/bytes/#FieldsFunc),
-    [`Split`](/pkg/bytes/#Split),
-    and
-    [`SplitAfter`](/pkg/bytes/#SplitAfter)
-    functions have always returned subslices of their inputs.
-    Go 1.10 changes each returned subslice to have capacity equal to its length,
-    so that appending to one cannot overwrite adjacent data in the original input.
+The
+[`Fields`](/pkg/bytes/#Fields),
+[`FieldsFunc`](/pkg/bytes/#FieldsFunc),
+[`Split`](/pkg/bytes/#Split),
+and
+[`SplitAfter`](/pkg/bytes/#SplitAfter)
+functions have always returned subslices of their inputs.
+Go 1.10 changes each returned subslice to have capacity equal to its length,
+so that appending to one cannot overwrite adjacent data in the original input.
 
-[crypto/cipher](/pkg/crypto/cipher/)
+#### [crypto/cipher](/pkg/crypto/cipher/)
 
-:   [`NewOFB`](/pkg/crypto/cipher/#NewOFB) now panics if given
-    an initialization vector of incorrect length, like the other constructors in the
-    package always have.
-    (Previously it returned a nil `Stream` implementation.)
+[`NewOFB`](/pkg/crypto/cipher/#NewOFB) now panics if given
+an initialization vector of incorrect length, like the other constructors in the
+package always have.
+(Previously it returned a nil `Stream` implementation.)
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   The TLS server now advertises support for SHA-512 signatures when using TLS 1.2.
-    The server already supported the signatures, but some clients would not select
-    them unless explicitly advertised.
+The TLS server now advertises support for SHA-512 signatures when using TLS 1.2.
+The server already supported the signatures, but some clients would not select
+them unless explicitly advertised.
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   [`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
-    now enforces the name constraints for all
-    names contained in the certificate, not just the one name that a client has asked about.
-    Extended key usage restrictions are similarly now checked all at once.
-    As a result, after a certificate has been validated, now it can be trusted in its entirety.
-    It is no longer necessary to revalidate the certificate for each additional name
-    or key usage.
+[`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
+now enforces the name constraints for all
+names contained in the certificate, not just the one name that a client has asked about.
+Extended key usage restrictions are similarly now checked all at once.
+As a result, after a certificate has been validated, now it can be trusted in its entirety.
+It is no longer necessary to revalidate the certificate for each additional name
+or key usage.
 
-    Parsed certificates also now report URI names and IP, email, and URI constraints, using the new
-    [`Certificate`](/pkg/crypto/x509/#Certificate) fields
-    `URIs`, `PermittedIPRanges`, `ExcludedIPRanges`,
-    `PermittedEmailAddresses`, `ExcludedEmailAddresses`,
-    `PermittedURIDomains`, and `ExcludedURIDomains`. Certificates with
-    invalid values for those fields are now rejected.
+Parsed certificates also now report URI names and IP, email, and URI constraints, using the new
+[`Certificate`](/pkg/crypto/x509/#Certificate) fields
+`URIs`, `PermittedIPRanges`, `ExcludedIPRanges`,
+`PermittedEmailAddresses`, `ExcludedEmailAddresses`,
+`PermittedURIDomains`, and `ExcludedURIDomains`. Certificates with
+invalid values for those fields are now rejected.
 
-    The new [`MarshalPKCS1PublicKey`](/pkg/crypto/x509/#MarshalPKCS1PublicKey)
-    and [`ParsePKCS1PublicKey`](/pkg/crypto/x509/#ParsePKCS1PublicKey)
-    functions convert an RSA public key to and from PKCS#1-encoded form.
+The new [`MarshalPKCS1PublicKey`](/pkg/crypto/x509/#MarshalPKCS1PublicKey)
+and [`ParsePKCS1PublicKey`](/pkg/crypto/x509/#ParsePKCS1PublicKey)
+functions convert an RSA public key to and from PKCS#1-encoded form.
 
-    The new [`MarshalPKCS8PrivateKey`](/pkg/crypto/x509/#MarshalPKCS8PrivateKey)
-    function converts a private key to PKCS#8-encoded form.
-    ([`ParsePKCS8PrivateKey`](/pkg/crypto/x509/#ParsePKCS8PrivateKey)
-    has existed since Go 1.)
+The new [`MarshalPKCS8PrivateKey`](/pkg/crypto/x509/#MarshalPKCS8PrivateKey)
+function converts a private key to PKCS#8-encoded form.
+([`ParsePKCS8PrivateKey`](/pkg/crypto/x509/#ParsePKCS8PrivateKey)
+has existed since Go 1.)
 
-[crypto/x509/pkix](/pkg/crypto/x509/pkix/)
+#### [crypto/x509/pkix](/pkg/crypto/x509/pkix/)
 
-:   [`Name`](/pkg/crypto/x509/pkix/#Name) now implements a
-    [`String`](/pkg/crypto/x509/pkix/#Name.String) method that
-    formats the X.509 distinguished name in the standard RFC 2253 format.
+[`Name`](/pkg/crypto/x509/pkix/#Name) now implements a
+[`String`](/pkg/crypto/x509/pkix/#Name.String) method that
+formats the X.509 distinguished name in the standard RFC 2253 format.
 
-[database/sql/driver](/pkg/database/sql/driver/)
+#### [database/sql/driver](/pkg/database/sql/driver/)
 
-:   Drivers that currently hold on to the destination buffer provided by
-    [`driver.Rows.Next`](/pkg/database/sql/driver/#Rows.Next) should ensure they no longer
-    write to a buffer assigned to the destination array outside of that call.
-    Drivers must be careful that underlying buffers are not modified when closing
-    [`driver.Rows`](/pkg/database/sql/driver/#Rows).
+Drivers that currently hold on to the destination buffer provided by
+[`driver.Rows.Next`](/pkg/database/sql/driver/#Rows.Next) should ensure they no longer
+write to a buffer assigned to the destination array outside of that call.
+Drivers must be careful that underlying buffers are not modified when closing
+[`driver.Rows`](/pkg/database/sql/driver/#Rows).
 
-    Drivers that want to construct a [`sql.DB`](/pkg/database/sql/#DB) for
-    their clients can now implement the [`Connector`](/pkg/database/sql/driver/#Connector) interface
-    and call the new [`sql.OpenDB`](/pkg/database/sql/#OpenDB) function,
-    instead of needing to encode all configuration into a string
-    passed to [`sql.Open`](/pkg/database/sql/#Open).
+Drivers that want to construct a [`sql.DB`](/pkg/database/sql/#DB) for
+their clients can now implement the [`Connector`](/pkg/database/sql/driver/#Connector) interface
+and call the new [`sql.OpenDB`](/pkg/database/sql/#OpenDB) function,
+instead of needing to encode all configuration into a string
+passed to [`sql.Open`](/pkg/database/sql/#Open).
 
-    Drivers that want to parse the configuration string only once per `sql.DB`
-    instead of once per [`sql.Conn`](/pkg/database/sql/#Conn),
-    or that want access to each `sql.Conn`'s underlying context,
-    can make their [`Driver`](/pkg/database/sql/driver/#Driver)
-    implementations also implement [`DriverContext`](/pkg/database/sql/driver/#DriverContext)'s
-    new `OpenConnector` method.
+Drivers that want to parse the configuration string only once per `sql.DB`
+instead of once per [`sql.Conn`](/pkg/database/sql/#Conn),
+or that want access to each `sql.Conn`'s underlying context,
+can make their [`Driver`](/pkg/database/sql/driver/#Driver)
+implementations also implement [`DriverContext`](/pkg/database/sql/driver/#DriverContext)'s
+new `OpenConnector` method.
 
-    Drivers that implement [`ExecerContext`](/pkg/database/sql/driver/#ExecerContext)
-    no longer need to implement [`Execer`](/pkg/database/sql/driver/#Execer);
-    similarly, drivers that implement [`QueryerContext`](/pkg/database/sql/driver/#QueryerContext)
-    no longer need to implement [`Queryer`](/pkg/database/sql/driver/#Queryer).
-    Previously, even if the context-based interfaces were implemented they were ignored
-    unless the non-context-based interfaces were also implemented.
+Drivers that implement [`ExecerContext`](/pkg/database/sql/driver/#ExecerContext)
+no longer need to implement [`Execer`](/pkg/database/sql/driver/#Execer);
+similarly, drivers that implement [`QueryerContext`](/pkg/database/sql/driver/#QueryerContext)
+no longer need to implement [`Queryer`](/pkg/database/sql/driver/#Queryer).
+Previously, even if the context-based interfaces were implemented they were ignored
+unless the non-context-based interfaces were also implemented.
 
-    To allow drivers to better isolate different clients using a cached driver connection in succession,
-    if a [`Conn`](/pkg/database/sql/driver/#Conn) implements the new
-    [`SessionResetter`](/pkg/database/sql/driver/#SessionResetter) interface,
-    `database/sql` will now call `ResetSession` before
-    reusing the `Conn` for a new client.
+To allow drivers to better isolate different clients using a cached driver connection in succession,
+if a [`Conn`](/pkg/database/sql/driver/#Conn) implements the new
+[`SessionResetter`](/pkg/database/sql/driver/#SessionResetter) interface,
+`database/sql` will now call `ResetSession` before
+reusing the `Conn` for a new client.
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   This release adds 348 new relocation constants divided between the relocation types
-    [`R_386`](/pkg/debug/elf/#R_386),
-    [`R_AARCH64`](/pkg/debug/elf/#R_AARCH64),
-    [`R_ARM`](/pkg/debug/elf/#R_ARM),
-    [`R_PPC64`](/pkg/debug/elf/#R_PPC64),
-    and
-    [`R_X86_64`](/pkg/debug/elf/#R_X86_64).
+This release adds 348 new relocation constants divided between the relocation types
+[`R_386`](/pkg/debug/elf/#R_386),
+[`R_AARCH64`](/pkg/debug/elf/#R_AARCH64),
+[`R_ARM`](/pkg/debug/elf/#R_ARM),
+[`R_PPC64`](/pkg/debug/elf/#R_PPC64),
+and
+[`R_X86_64`](/pkg/debug/elf/#R_X86_64).
 
-[debug/macho](/pkg/debug/macho/)
+#### [debug/macho](/pkg/debug/macho/)
 
-:   Go 1.10 adds support for reading relocations from Mach-O sections,
-    using the [`Section`](/pkg/debug/macho#Section) struct's new `Relocs` field
-    and the new [`Reloc`](/pkg/debug/macho/#Reloc),
-    [`RelocTypeARM`](/pkg/debug/macho/#RelocTypeARM),
-    [`RelocTypeARM64`](/pkg/debug/macho/#RelocTypeARM64),
-    [`RelocTypeGeneric`](/pkg/debug/macho/#RelocTypeGeneric),
-    and
-    [`RelocTypeX86_64`](/pkg/debug/macho/#RelocTypeX86_64)
-    types and associated constants.
+Go 1.10 adds support for reading relocations from Mach-O sections,
+using the [`Section`](/pkg/debug/macho#Section) struct's new `Relocs` field
+and the new [`Reloc`](/pkg/debug/macho/#Reloc),
+[`RelocTypeARM`](/pkg/debug/macho/#RelocTypeARM),
+[`RelocTypeARM64`](/pkg/debug/macho/#RelocTypeARM64),
+[`RelocTypeGeneric`](/pkg/debug/macho/#RelocTypeGeneric),
+and
+[`RelocTypeX86_64`](/pkg/debug/macho/#RelocTypeX86_64)
+types and associated constants.
 
-    Go 1.10 also adds support for the `LC_RPATH` load command,
-    represented by the types
-    [`RpathCmd`](/pkg/debug/macho/#RpathCmd) and
-    [`Rpath`](/pkg/debug/macho/#Rpath),
-    and new [named constants](/pkg/debug/macho/#pkg-constants)
-    for the various flag bits found in headers.
+Go 1.10 also adds support for the `LC_RPATH` load command,
+represented by the types
+[`RpathCmd`](/pkg/debug/macho/#RpathCmd) and
+[`Rpath`](/pkg/debug/macho/#Rpath),
+and new [named constants](/pkg/debug/macho/#pkg-constants)
+for the various flag bits found in headers.
 
-[encoding/asn1](/pkg/encoding/asn1/)
+#### [encoding/asn1](/pkg/encoding/asn1/)
 
-:   [`Marshal`](/pkg/encoding/asn1/#Marshal) now correctly encodes
-    strings containing asterisks as type UTF8String instead of PrintableString,
-    unless the string is in a struct field with a tag forcing the use of PrintableString.
-    `Marshal` also now respects struct tags containing `application` directives.
+[`Marshal`](/pkg/encoding/asn1/#Marshal) now correctly encodes
+strings containing asterisks as type UTF8String instead of PrintableString,
+unless the string is in a struct field with a tag forcing the use of PrintableString.
+`Marshal` also now respects struct tags containing `application` directives.
 
-    The new [`MarshalWithParams`](/pkg/encoding/asn1/#MarshalWithParams)
-    function marshals its argument as if the additional params were its associated
-    struct field tag.
+The new [`MarshalWithParams`](/pkg/encoding/asn1/#MarshalWithParams)
+function marshals its argument as if the additional params were its associated
+struct field tag.
 
-    [`Unmarshal`](/pkg/encoding/asn1/#Unmarshal) now respects
-    struct field tags using the `explicit` and `tag`
-    directives.
+[`Unmarshal`](/pkg/encoding/asn1/#Unmarshal) now respects
+struct field tags using the `explicit` and `tag`
+directives.
 
-    Both `Marshal` and `Unmarshal` now support a new struct field tag
-    `numeric`, indicating an ASN.1 NumericString.
+Both `Marshal` and `Unmarshal` now support a new struct field tag
+`numeric`, indicating an ASN.1 NumericString.
 
-[encoding/csv](/pkg/encoding/csv/)
+#### [encoding/csv](/pkg/encoding/csv/)
 
-:   [`Reader`](/pkg/encoding/csv/#Reader) now disallows the use of
-    nonsensical `Comma` and `Comment` settings,
-    such as NUL, carriage return, newline, invalid runes, and the Unicode replacement character,
-    or setting `Comma` and `Comment` equal to each other.
+[`Reader`](/pkg/encoding/csv/#Reader) now disallows the use of
+nonsensical `Comma` and `Comment` settings,
+such as NUL, carriage return, newline, invalid runes, and the Unicode replacement character,
+or setting `Comma` and `Comment` equal to each other.
 
-    In the case of a syntax error in a CSV record that spans multiple input lines, `Reader`
-    now reports the line on which the record started in the [`ParseError`](/pkg/encoding/csv/#ParseError)'s new `StartLine` field.
+In the case of a syntax error in a CSV record that spans multiple input lines, `Reader`
+now reports the line on which the record started in the [`ParseError`](/pkg/encoding/csv/#ParseError)'s new `StartLine` field.
 
-[encoding/hex](/pkg/encoding/hex/)
+#### [encoding/hex](/pkg/encoding/hex/)
 
-:   The new functions
-    [`NewEncoder`](/pkg/encoding/hex/#NewEncoder)
-    and
-    [`NewDecoder`](/pkg/encoding/hex/#NewDecoder)
-    provide streaming conversions to and from hexadecimal,
-    analogous to equivalent functions already in
-    [encoding/base32](/pkg/encoding/base32/)
-    and
-    [encoding/base64](/pkg/encoding/base64/).
+The new functions
+[`NewEncoder`](/pkg/encoding/hex/#NewEncoder)
+and
+[`NewDecoder`](/pkg/encoding/hex/#NewDecoder)
+provide streaming conversions to and from hexadecimal,
+analogous to equivalent functions already in
+[encoding/base32](/pkg/encoding/base32/)
+and
+[encoding/base64](/pkg/encoding/base64/).
 
-    When the functions
-    [`Decode`](/pkg/encoding/hex/#Decode)
-    and
-    [`DecodeString`](/pkg/encoding/hex/#DecodeString)
-    encounter malformed input,
-    they now return the number of bytes already converted
-    along with the error.
-    Previously they always returned a count of 0 with any error.
+When the functions
+[`Decode`](/pkg/encoding/hex/#Decode)
+and
+[`DecodeString`](/pkg/encoding/hex/#DecodeString)
+encounter malformed input,
+they now return the number of bytes already converted
+along with the error.
+Previously they always returned a count of 0 with any error.
 
-[encoding/json](/pkg/encoding/json/)
+#### [encoding/json](/pkg/encoding/json/)
 
-:   The [`Decoder`](/pkg/encoding/json/#Decoder)
-    adds a new method
-    [`DisallowUnknownFields`](/pkg/encoding/json/#Decoder.DisallowUnknownFields)
-    that causes it to report inputs with unknown JSON fields as a decoding error.
-    (The default behavior has always been to discard unknown fields.)
+The [`Decoder`](/pkg/encoding/json/#Decoder)
+adds a new method
+[`DisallowUnknownFields`](/pkg/encoding/json/#Decoder.DisallowUnknownFields)
+that causes it to report inputs with unknown JSON fields as a decoding error.
+(The default behavior has always been to discard unknown fields.)
 
-    As a result of [fixing a reflect bug](#reflect),
-    [`Unmarshal`](/pkg/encoding/json/#Unmarshal)
-    can no longer decode into fields inside
-    embedded pointers to unexported struct types,
-    because it cannot initialize the unexported embedded pointer
-    to point at fresh storage.
-    `Unmarshal` now returns an error in this case.
+As a result of [fixing a reflect bug](#reflect),
+[`Unmarshal`](/pkg/encoding/json/#Unmarshal)
+can no longer decode into fields inside
+embedded pointers to unexported struct types,
+because it cannot initialize the unexported embedded pointer
+to point at fresh storage.
+`Unmarshal` now returns an error in this case.
 
-[encoding/pem](/pkg/encoding/pem/)
+#### [encoding/pem](/pkg/encoding/pem/)
 
-:   [`Encode`](/pkg/encoding/pem/#Encode)
-    and
-    [`EncodeToMemory`](/pkg/encoding/pem/#EncodeToMemory)
-    no longer generate partial output when presented with a
-    block that is impossible to encode as PEM data.
+[`Encode`](/pkg/encoding/pem/#Encode)
+and
+[`EncodeToMemory`](/pkg/encoding/pem/#EncodeToMemory)
+no longer generate partial output when presented with a
+block that is impossible to encode as PEM data.
 
-[encoding/xml](/pkg/encoding/xml/)
+#### [encoding/xml](/pkg/encoding/xml/)
 
-:   The new function
-    [`NewTokenDecoder`](/pkg/encoding/xml/#NewTokenDecoder)
-    is like
-    [`NewDecoder`](/pkg/encoding/xml/#NewDecoder)
-    but creates a decoder reading from a [`TokenReader`](/pkg/encoding/xml/#TokenReader)
-    instead of an XML-formatted byte stream.
-    This is meant to enable the construction of XML stream transformers in client libraries.
+The new function
+[`NewTokenDecoder`](/pkg/encoding/xml/#NewTokenDecoder)
+is like
+[`NewDecoder`](/pkg/encoding/xml/#NewDecoder)
+but creates a decoder reading from a [`TokenReader`](/pkg/encoding/xml/#TokenReader)
+instead of an XML-formatted byte stream.
+This is meant to enable the construction of XML stream transformers in client libraries.
 
-[flag](/pkg/flag/)
+#### [flag](/pkg/flag/)
 
-:   The default
-    [`Usage`](/pkg/flag/#Usage) function now prints
-    its first line of output to
-    `CommandLine.Output()`
-    instead of assuming `os.Stderr`,
-    so that the usage message is properly redirected for
-    clients using `CommandLine.SetOutput`.
+The default
+[`Usage`](/pkg/flag/#Usage) function now prints
+its first line of output to
+`CommandLine.Output()`
+instead of assuming `os.Stderr`,
+so that the usage message is properly redirected for
+clients using `CommandLine.SetOutput`.
 
-    [`PrintDefaults`](/pkg/flag/#PrintDefaults) now
-    adds appropriate indentation after newlines in flag usage strings,
-    so that multi-line usage strings display nicely.
+[`PrintDefaults`](/pkg/flag/#PrintDefaults) now
+adds appropriate indentation after newlines in flag usage strings,
+so that multi-line usage strings display nicely.
 
-    [`FlagSet`](/pkg/flag/#FlagSet) adds new methods
-    [`ErrorHandling`](/pkg/flag/#FlagSet.ErrorHandling),
-    [`Name`](/pkg/flag/#FlagSet.Name),
-    and
-    [`Output`](/pkg/flag/#FlagSet.Output),
-    to retrieve the settings passed to
-    [`NewFlagSet`](/pkg/flag/#NewFlagSet)
-    and
-    [`FlagSet.SetOutput`](/pkg/flag/#FlagSet.SetOutput).
+[`FlagSet`](/pkg/flag/#FlagSet) adds new methods
+[`ErrorHandling`](/pkg/flag/#FlagSet.ErrorHandling),
+[`Name`](/pkg/flag/#FlagSet.Name),
+and
+[`Output`](/pkg/flag/#FlagSet.Output),
+to retrieve the settings passed to
+[`NewFlagSet`](/pkg/flag/#NewFlagSet)
+and
+[`FlagSet.SetOutput`](/pkg/flag/#FlagSet.SetOutput).
 
-[go/doc](/pkg/go/doc/)
+#### [go/doc](/pkg/go/doc/)
 
-:   To support the [doc change](#doc) described above,
-    functions returning slices of `T`, `*T`, `**T`, and so on
-    are now reported in `T`'s [`Type`](/pkg/go/doc/#Type)'s `Funcs` list,
-    instead of in the [`Package`](/pkg/go/doc/#Package)'s `Funcs` list.
+To support the [doc change](#doc) described above,
+functions returning slices of `T`, `*T`, `**T`, and so on
+are now reported in `T`'s [`Type`](/pkg/go/doc/#Type)'s `Funcs` list,
+instead of in the [`Package`](/pkg/go/doc/#Package)'s `Funcs` list.
 
-[go/importer](/pkg/go/importer/)
+#### [go/importer](/pkg/go/importer/)
 
-:   The [`For`](/pkg/go/importer/#For) function now accepts a non-nil lookup argument.
+The [`For`](/pkg/go/importer/#For) function now accepts a non-nil lookup argument.
 
-[go/printer](/pkg/go/printer/)
+#### [go/printer](/pkg/go/printer/)
 
-:   The changes to the default formatting of Go source code
-    discussed in the [gofmt section](#gofmt) above
-    are implemented in the [go/printer](/pkg/go/printer/) package
-    and also affect the output of the higher-level [go/format](/pkg/go/format/) package.
+The changes to the default formatting of Go source code
+discussed in the [gofmt section](#gofmt) above
+are implemented in the [go/printer](/pkg/go/printer/) package
+and also affect the output of the higher-level [go/format](/pkg/go/format/) package.
 
-[hash](/pkg/hash/)
+#### [hash](/pkg/hash/)
 
-:   Implementations of the [`Hash`](/pkg/hash/#Hash) interface are now
-    encouraged to implement [`encoding.BinaryMarshaler`](/pkg/encoding/#BinaryMarshaler)
-    and [`encoding.BinaryUnmarshaler`](/pkg/encoding/#BinaryUnmarshaler)
-    to allow saving and recreating their internal state,
-    and all implementations in the standard library
-    ([hash/crc32](/pkg/hash/crc32/), [crypto/sha256](/pkg/crypto/sha256/), and so on)
-    now implement those interfaces.
+Implementations of the [`Hash`](/pkg/hash/#Hash) interface are now
+encouraged to implement [`encoding.BinaryMarshaler`](/pkg/encoding/#BinaryMarshaler)
+and [`encoding.BinaryUnmarshaler`](/pkg/encoding/#BinaryUnmarshaler)
+to allow saving and recreating their internal state,
+and all implementations in the standard library
+([hash/crc32](/pkg/hash/crc32/), [crypto/sha256](/pkg/crypto/sha256/), and so on)
+now implement those interfaces.
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   The new [`Srcset`](/pkg/html/template#Srcset) content
-    type allows for proper handling of values within the
-    [`srcset`](https://w3c.github.io/html/semantics-embedded-content.html#element-attrdef-img-srcset)
-    attribute of `img` tags.
+The new [`Srcset`](/pkg/html/template#Srcset) content
+type allows for proper handling of values within the
+[`srcset`](https://w3c.github.io/html/semantics-embedded-content.html#element-attrdef-img-srcset)
+attribute of `img` tags.
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   [`Int`](/pkg/math/big/#Int) now supports conversions to and from bases 2 through 62
-    in its [`SetString`](/pkg/math/big/#Int.SetString) and [`Text`](/pkg/math/big/#Text) methods.
-    (Previously it only allowed bases 2 through 36.)
-    The value of the constant `MaxBase` has been updated.
+[`Int`](/pkg/math/big/#Int) now supports conversions to and from bases 2 through 62
+in its [`SetString`](/pkg/math/big/#Int.SetString) and [`Text`](/pkg/math/big/#Text) methods.
+(Previously it only allowed bases 2 through 36.)
+The value of the constant `MaxBase` has been updated.
 
-    [`Int`](/pkg/math/big/#Int) adds a new
-    [`CmpAbs`](/pkg/math/big/#CmpAbs) method
-    that is like [`Cmp`](/pkg/math/big/#Cmp) but
-    compares only the absolute values (not the signs) of its arguments.
+[`Int`](/pkg/math/big/#Int) adds a new
+[`CmpAbs`](/pkg/math/big/#CmpAbs) method
+that is like [`Cmp`](/pkg/math/big/#Cmp) but
+compares only the absolute values (not the signs) of its arguments.
 
-    [`Float`](/pkg/math/big/#Float) adds a new
-    [`Sqrt`](/pkg/math/big/#Float.Sqrt) method to
-    compute square roots.
+[`Float`](/pkg/math/big/#Float) adds a new
+[`Sqrt`](/pkg/math/big/#Float.Sqrt) method to
+compute square roots.
 
-[math/cmplx](/pkg/math/cmplx/)
+#### [math/cmplx](/pkg/math/cmplx/)
 
-:   Branch cuts and other boundary cases in
-    [`Asin`](/pkg/math/cmplx/#Asin),
-    [`Asinh`](/pkg/math/cmplx/#Asinh),
-    [`Atan`](/pkg/math/cmplx/#Atan),
-    and
-    [`Sqrt`](/pkg/math/cmplx/#Sqrt)
-    have been corrected to match the definitions used in the C99 standard.
+Branch cuts and other boundary cases in
+[`Asin`](/pkg/math/cmplx/#Asin),
+[`Asinh`](/pkg/math/cmplx/#Asinh),
+[`Atan`](/pkg/math/cmplx/#Atan),
+and
+[`Sqrt`](/pkg/math/cmplx/#Sqrt)
+have been corrected to match the definitions used in the C99 standard.
 
-[math/rand](/pkg/math/rand/)
+#### [math/rand](/pkg/math/rand/)
 
-:   The new [`Shuffle`](/pkg/math/rand/#Shuffle) function and corresponding
-    [`Rand.Shuffle`](/pkg/math/rand/#Rand.Shuffle) method
-    shuffle an input sequence.
+The new [`Shuffle`](/pkg/math/rand/#Shuffle) function and corresponding
+[`Rand.Shuffle`](/pkg/math/rand/#Rand.Shuffle) method
+shuffle an input sequence.
 
-[math](/pkg/math/)
+#### [math](/pkg/math/)
 
-:   The new functions
-    [`Round`](/pkg/math/#Round)
-    and
-    [`RoundToEven`](/pkg/math/#RoundToEven)
-    round their arguments to the nearest floating-point integer;
-    `Round` rounds a half-integer to its larger integer neighbor (away from zero)
-    while `RoundToEven` rounds a half-integer to its even integer neighbor.
+The new functions
+[`Round`](/pkg/math/#Round)
+and
+[`RoundToEven`](/pkg/math/#RoundToEven)
+round their arguments to the nearest floating-point integer;
+`Round` rounds a half-integer to its larger integer neighbor (away from zero)
+while `RoundToEven` rounds a half-integer to its even integer neighbor.
 
-    The new functions
-    [`Erfinv`](/pkg/math/#Erfinv)
-    and
-    [`Erfcinv`](/pkg/math/#Erfcinv)
-    compute the inverse error function and the
-    inverse complementary error function.
+The new functions
+[`Erfinv`](/pkg/math/#Erfinv)
+and
+[`Erfcinv`](/pkg/math/#Erfcinv)
+compute the inverse error function and the
+inverse complementary error function.
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   [`Reader`](/pkg/mime/multipart/#Reader)
-    now accepts parts with empty filename attributes.
+[`Reader`](/pkg/mime/multipart/#Reader)
+now accepts parts with empty filename attributes.
 
-[mime](/pkg/mime/)
+#### [mime](/pkg/mime/)
 
-:   [`ParseMediaType`](/pkg/mime/#ParseMediaType) now discards
-    invalid attribute values; previously it returned those values as empty strings.
+[`ParseMediaType`](/pkg/mime/#ParseMediaType) now discards
+invalid attribute values; previously it returned those values as empty strings.
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   The [`Conn`](/pkg/net/#Conn) and
-    [`Listener`](/pkg/net/#Conn) implementations
-    in this package now guarantee that when `Close` returns,
-    the underlying file descriptor has been closed.
-    (In earlier releases, if the `Close` stopped pending I/O
-    in other goroutines, the closing of the file descriptor could happen in one of those
-    goroutines shortly after `Close` returned.)
+The [`Conn`](/pkg/net/#Conn) and
+[`Listener`](/pkg/net/#Conn) implementations
+in this package now guarantee that when `Close` returns,
+the underlying file descriptor has been closed.
+(In earlier releases, if the `Close` stopped pending I/O
+in other goroutines, the closing of the file descriptor could happen in one of those
+goroutines shortly after `Close` returned.)
 
-    [`TCPListener`](/pkg/net/#TCPListener) and
-    [`UnixListener`](/pkg/net/#UnixListener)
-    now implement
-    [`syscall.Conn`](/pkg/syscall/#Conn),
-    to allow setting options on the underlying file descriptor
-    using [`syscall.RawConn.Control`](/pkg/syscall/#RawConn).
+[`TCPListener`](/pkg/net/#TCPListener) and
+[`UnixListener`](/pkg/net/#UnixListener)
+now implement
+[`syscall.Conn`](/pkg/syscall/#Conn),
+to allow setting options on the underlying file descriptor
+using [`syscall.RawConn.Control`](/pkg/syscall/#RawConn).
 
-    The `Conn` implementations returned by [`Pipe`](/pkg/net/#Pipe)
-    now support setting read and write deadlines.
+The `Conn` implementations returned by [`Pipe`](/pkg/net/#Pipe)
+now support setting read and write deadlines.
 
-    The [`IPConn.ReadMsgIP`](/pkg/net/#IPConn.ReadMsgIP),
-    [`IPConn.WriteMsgIP`](/pkg/net/#IPConn.WriteMsgIP),
-    [`UDPConn.ReadMsgUDP`](/pkg/net/#UDPConn.ReadMsgUDP),
-    and
-    [`UDPConn.WriteMsgUDP`](/pkg/net/#UDPConn.WriteMsgUDP),
-    methods are now implemented on Windows.
+The [`IPConn.ReadMsgIP`](/pkg/net/#IPConn.ReadMsgIP),
+[`IPConn.WriteMsgIP`](/pkg/net/#IPConn.WriteMsgIP),
+[`UDPConn.ReadMsgUDP`](/pkg/net/#UDPConn.ReadMsgUDP),
+and
+[`UDPConn.WriteMsgUDP`](/pkg/net/#UDPConn.WriteMsgUDP),
+methods are now implemented on Windows.
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   On the client side, an HTTP proxy (most commonly configured by
-    [`ProxyFromEnvironment`](/pkg/net/http/#ProxyFromEnvironment))
-    can now be specified as an `https://` URL,
-    meaning that the client connects to the proxy over HTTPS before issuing a standard, proxied HTTP request.
-    (Previously, HTTP proxy URLs were required to begin with `http://` or `socks5://`.)
+On the client side, an HTTP proxy (most commonly configured by
+[`ProxyFromEnvironment`](/pkg/net/http/#ProxyFromEnvironment))
+can now be specified as an `https://` URL,
+meaning that the client connects to the proxy over HTTPS before issuing a standard, proxied HTTP request.
+(Previously, HTTP proxy URLs were required to begin with `http://` or `socks5://`.)
 
-    On the server side, [`FileServer`](/pkg/net/http/#FileServer) and its single-file equivalent [`ServeFile`](/pkg/net/http/#ServeFile)
-    now apply `If-Range` checks to `HEAD` requests.
-    `FileServer` also now reports directory read failures to the [`Server`](/pkg/net/http/#Server)'s `ErrorLog`.
-    The content-serving handlers also now omit the `Content-Type` header when serving zero-length content.
+On the server side, [`FileServer`](/pkg/net/http/#FileServer) and its single-file equivalent [`ServeFile`](/pkg/net/http/#ServeFile)
+now apply `If-Range` checks to `HEAD` requests.
+`FileServer` also now reports directory read failures to the [`Server`](/pkg/net/http/#Server)'s `ErrorLog`.
+The content-serving handlers also now omit the `Content-Type` header when serving zero-length content.
 
-    [`ResponseWriter`](/pkg/net/http/#ResponseWriter)'s `WriteHeader` method now panics
-    if passed an invalid (non-3-digit) status code.
+[`ResponseWriter`](/pkg/net/http/#ResponseWriter)'s `WriteHeader` method now panics
+if passed an invalid (non-3-digit) status code.
 
-    <!-- CL 46631 -->
-    The `Server` will no longer add an implicit Content-Type when a `Handler` does not write any output.
+<!-- CL 46631 -->
+The `Server` will no longer add an implicit Content-Type when a `Handler` does not write any output.
 
-    [`Redirect`](/pkg/net/http/#Redirect) now sets the `Content-Type` header before writing its HTTP response.
+[`Redirect`](/pkg/net/http/#Redirect) now sets the `Content-Type` header before writing its HTTP response.
 
-[net/mail](/pkg/net/mail/)
+#### [net/mail](/pkg/net/mail/)
 
-:   [`ParseAddress`](/pkg/net/mail/#ParseAddress) and
-    [`ParseAddressList`](/pkg/net/mail/#ParseAddressList)
-    now support a variety of obsolete address formats.
+[`ParseAddress`](/pkg/net/mail/#ParseAddress) and
+[`ParseAddressList`](/pkg/net/mail/#ParseAddressList)
+now support a variety of obsolete address formats.
 
-[net/smtp](/pkg/net/smtp/)
+#### [net/smtp](/pkg/net/smtp/)
 
-:   The [`Client`](/pkg/net/smtp/#Client) adds a new
-    [`Noop`](/pkg/net/smtp/#Client.Noop) method,
-    to test whether the server is still responding.
-    It also now defends against possible SMTP injection in the inputs
-    to the [`Hello`](/pkg/net/smtp/#Client.Hello)
-    and [`Verify`](/pkg/net/smtp/#Client.Verify) methods.
+The [`Client`](/pkg/net/smtp/#Client) adds a new
+[`Noop`](/pkg/net/smtp/#Client.Noop) method,
+to test whether the server is still responding.
+It also now defends against possible SMTP injection in the inputs
+to the [`Hello`](/pkg/net/smtp/#Client.Hello)
+and [`Verify`](/pkg/net/smtp/#Client.Verify) methods.
 
-[net/textproto](/pkg/net/textproto/)
+#### [net/textproto](/pkg/net/textproto/)
 
-:   [`ReadMIMEHeader`](/pkg/net/textproto/#ReadMIMEHeader)
-    now rejects any header that begins with a continuation (indented) header line.
-    Previously a header with an indented first line was treated as if the first line
-    were not indented.
+[`ReadMIMEHeader`](/pkg/net/textproto/#ReadMIMEHeader)
+now rejects any header that begins with a continuation (indented) header line.
+Previously a header with an indented first line was treated as if the first line
+were not indented.
 
-[net/url](/pkg/net/url/)
+#### [net/url](/pkg/net/url/)
 
-:   [`ResolveReference`](/pkg/net/url/#ResolveReference)
-    now preserves multiple leading slashes in the target URL.
-    Previously it rewrote multiple leading slashes to a single slash,
-    which resulted in the [`http.Client`](/pkg/net/http/#Client)
-    following certain redirects incorrectly.
+[`ResolveReference`](/pkg/net/url/#ResolveReference)
+now preserves multiple leading slashes in the target URL.
+Previously it rewrote multiple leading slashes to a single slash,
+which resulted in the [`http.Client`](/pkg/net/http/#Client)
+following certain redirects incorrectly.
 
-    For example, this code's output has changed:
+For example, this code's output has changed:
 
-    	base, _ := url.Parse("http://host//path//to/page1")
-    	target, _ := url.Parse("page2")
-    	fmt.Println(base.ResolveReference(target))
+	base, _ := url.Parse("http://host//path//to/page1")
+	target, _ := url.Parse("page2")
+	fmt.Println(base.ResolveReference(target))
 
-    Note the doubled slashes around `path`.
-    In Go 1.9 and earlier, the resolved URL was `http://host/path//to/page2`:
-    the doubled slash before `path` was incorrectly rewritten
-    to a single slash, while the doubled slash after `path` was
-    correctly preserved.
-    Go 1.10 preserves both doubled slashes, resolving to `http://host//path//to/page2`
-    as required by [RFC 3986](https://tools.ietf.org/html/rfc3986#section-5.2).
+Note the doubled slashes around `path`.
+In Go 1.9 and earlier, the resolved URL was `http://host/path//to/page2`:
+the doubled slash before `path` was incorrectly rewritten
+to a single slash, while the doubled slash after `path` was
+correctly preserved.
+Go 1.10 preserves both doubled slashes, resolving to `http://host//path//to/page2`
+as required by [RFC 3986](https://tools.ietf.org/html/rfc3986#section-5.2).
 
-    This change may break existing buggy programs that unintentionally
-    construct a base URL with a leading doubled slash in the path and inadvertently
-    depend on `ResolveReference` to correct that mistake.
-    For example, this can happen if code adds a host prefix
-    like `http://host/` to a path like `/my/api`,
-    resulting in a URL with a doubled slash: `http://host//my/api`.
+This change may break existing buggy programs that unintentionally
+construct a base URL with a leading doubled slash in the path and inadvertently
+depend on `ResolveReference` to correct that mistake.
+For example, this can happen if code adds a host prefix
+like `http://host/` to a path like `/my/api`,
+resulting in a URL with a doubled slash: `http://host//my/api`.
 
-    [`UserInfo`](/pkg/net/url/#UserInfo)'s methods
-    now treat a nil receiver as equivalent to a pointer to a zero `UserInfo`.
-    Previously, they panicked.
+[`UserInfo`](/pkg/net/url/#UserInfo)'s methods
+now treat a nil receiver as equivalent to a pointer to a zero `UserInfo`.
+Previously, they panicked.
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   [`File`](/pkg/os/#File) adds new methods
-    [`SetDeadline`](/pkg/os/#File.SetDeadline),
-    [`SetReadDeadline`](/pkg/os/#File.SetReadDeadline),
-    and
-    [`SetWriteDeadline`](/pkg/os/#File.SetWriteDeadline)
-    that allow setting I/O deadlines when the
-    underlying file descriptor supports non-blocking I/O operations.
-    The definition of these methods matches those in [`net.Conn`](/pkg/net/#Conn).
-    If an I/O method fails due to missing a deadline, it will return a
-    timeout error; the
-    new [`IsTimeout`](/pkg/os/#IsTimeout) function
-    reports whether an error represents a timeout.
+[`File`](/pkg/os/#File) adds new methods
+[`SetDeadline`](/pkg/os/#File.SetDeadline),
+[`SetReadDeadline`](/pkg/os/#File.SetReadDeadline),
+and
+[`SetWriteDeadline`](/pkg/os/#File.SetWriteDeadline)
+that allow setting I/O deadlines when the
+underlying file descriptor supports non-blocking I/O operations.
+The definition of these methods matches those in [`net.Conn`](/pkg/net/#Conn).
+If an I/O method fails due to missing a deadline, it will return a
+timeout error; the
+new [`IsTimeout`](/pkg/os/#IsTimeout) function
+reports whether an error represents a timeout.
 
-    Also matching `net.Conn`,
-    `File`'s
-    [`Close`](/pkg/os/#File.Close) method
-    now guarantee that when `Close` returns,
-    the underlying file descriptor has been closed.
-    (In earlier releases,
-    if the `Close` stopped pending I/O
-    in other goroutines, the closing of the file descriptor could happen in one of those
-    goroutines shortly after `Close` returned.)
+Also matching `net.Conn`,
+`File`'s
+[`Close`](/pkg/os/#File.Close) method
+now guarantee that when `Close` returns,
+the underlying file descriptor has been closed.
+(In earlier releases,
+if the `Close` stopped pending I/O
+in other goroutines, the closing of the file descriptor could happen in one of those
+goroutines shortly after `Close` returned.)
 
-    On BSD, macOS, and Solaris systems,
-    [`Chtimes`](/pkg/os/#Chtimes)
-    now supports setting file times with nanosecond precision
-    (assuming the underlying file system can represent them).
+On BSD, macOS, and Solaris systems,
+[`Chtimes`](/pkg/os/#Chtimes)
+now supports setting file times with nanosecond precision
+(assuming the underlying file system can represent them).
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   The [`Copy`](/pkg/reflect/#Copy) function now allows copying
-    from a string into a byte array or byte slice, to match the
-    [built-in copy function](/pkg/builtin/#copy).
+The [`Copy`](/pkg/reflect/#Copy) function now allows copying
+from a string into a byte array or byte slice, to match the
+[built-in copy function](/pkg/builtin/#copy).
 
-    In structs, embedded pointers to unexported struct types were
-    previously incorrectly reported with an empty `PkgPath`
-    in the corresponding [StructField](/pkg/reflect/#StructField),
-    with the result that for those fields,
-    and [`Value.CanSet`](/pkg/reflect/#Value.CanSet)
-    incorrectly returned true and
-    [`Value.Set`](/pkg/reflect/#Value.Set)
-    incorrectly succeeded.
-    The underlying metadata has been corrected;
-    for those fields,
-    `CanSet` now correctly returns false
-    and `Set` now correctly panics.
-    This may affect reflection-based unmarshalers
-    that could previously unmarshal into such fields
-    but no longer can.
-    For example, see the [`encoding/json` notes](#encoding/json).
+In structs, embedded pointers to unexported struct types were
+previously incorrectly reported with an empty `PkgPath`
+in the corresponding [StructField](/pkg/reflect/#StructField),
+with the result that for those fields,
+and [`Value.CanSet`](/pkg/reflect/#Value.CanSet)
+incorrectly returned true and
+[`Value.Set`](/pkg/reflect/#Value.Set)
+incorrectly succeeded.
+The underlying metadata has been corrected;
+for those fields,
+`CanSet` now correctly returns false
+and `Set` now correctly panics.
+This may affect reflection-based unmarshalers
+that could previously unmarshal into such fields
+but no longer can.
+For example, see the [`encoding/json` notes](#encoding/json).
 
-[runtime/pprof](/pkg/runtime/pprof/)
+#### [runtime/pprof](/pkg/runtime/pprof/)
 
-:   As [noted above](#pprof), the blocking and mutex profiles
-    now include symbol information so that they can be viewed without needing
-    the binary that generated them.
+As [noted above](#pprof), the blocking and mutex profiles
+now include symbol information so that they can be viewed without needing
+the binary that generated them.
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   [`ParseUint`](/pkg/strconv/#ParseUint) now returns
-    the maximum magnitude integer of the appropriate size
-    with any `ErrRange` error, as it was already documented to do.
-    Previously it returned 0 with `ErrRange` errors.
+[`ParseUint`](/pkg/strconv/#ParseUint) now returns
+the maximum magnitude integer of the appropriate size
+with any `ErrRange` error, as it was already documented to do.
+Previously it returned 0 with `ErrRange` errors.
 
-[strings](/pkg/strings/)
+#### [strings](/pkg/strings/)
 
-:   A new type
-    [`Builder`](/pkg/strings/#Builder) is a replacement for
-    [`bytes.Buffer`](/pkg/bytes/#Buffer) for the use case of
-    accumulating text into a `string` result.
-    The `Builder`'s API is a restricted subset of `bytes.Buffer`'s
-    that allows it to safely avoid making a duplicate copy of the data
-    during the [`String`](/pkg/strings/#Builder.String) method.
+A new type
+[`Builder`](/pkg/strings/#Builder) is a replacement for
+[`bytes.Buffer`](/pkg/bytes/#Buffer) for the use case of
+accumulating text into a `string` result.
+The `Builder`'s API is a restricted subset of `bytes.Buffer`'s
+that allows it to safely avoid making a duplicate copy of the data
+during the [`String`](/pkg/strings/#Builder.String) method.
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   On Windows,
-    the new [`SysProcAttr`](/pkg/syscall/#SysProcAttr) field `Token`,
-    of type [`Token`](/pkg/syscall/#Token) allows the creation of a process that
-    runs as another user during [`StartProcess`](/pkg/syscall/#StartProcess)
-    (and therefore also during [`os.StartProcess`](/pkg/os/#StartProcess) and
-    [`exec.Cmd.Start`](/pkg/os/exec/#Cmd.Start)).
-    The new function [`CreateProcessAsUser`](/pkg/syscall/#CreateProcessAsUser)
-    gives access to the underlying system call.
+On Windows,
+the new [`SysProcAttr`](/pkg/syscall/#SysProcAttr) field `Token`,
+of type [`Token`](/pkg/syscall/#Token) allows the creation of a process that
+runs as another user during [`StartProcess`](/pkg/syscall/#StartProcess)
+(and therefore also during [`os.StartProcess`](/pkg/os/#StartProcess) and
+[`exec.Cmd.Start`](/pkg/os/exec/#Cmd.Start)).
+The new function [`CreateProcessAsUser`](/pkg/syscall/#CreateProcessAsUser)
+gives access to the underlying system call.
 
-    On BSD, macOS, and Solaris systems, [`UtimesNano`](/pkg/syscall/#UtimesNano)
-    is now implemented.
+On BSD, macOS, and Solaris systems, [`UtimesNano`](/pkg/syscall/#UtimesNano)
+is now implemented.
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   [`LoadLocation`](/pkg/time/#LoadLocation) now uses the directory
-    or uncompressed zip file named by the `$ZONEINFO`
-    environment variable before looking in the default system-specific list of
-    known installation locations or in `$GOROOT/lib/time/zoneinfo.zip`.
+[`LoadLocation`](/pkg/time/#LoadLocation) now uses the directory
+or uncompressed zip file named by the `$ZONEINFO`
+environment variable before looking in the default system-specific list of
+known installation locations or in `$GOROOT/lib/time/zoneinfo.zip`.
 
-    The new function [`LoadLocationFromTZData`](/pkg/time/#LoadLocationFromTZData)
-    allows conversion of IANA time zone file data to a [`Location`](/pkg/time/#Location).
+The new function [`LoadLocationFromTZData`](/pkg/time/#LoadLocationFromTZData)
+allows conversion of IANA time zone file data to a [`Location`](/pkg/time/#Location).
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   The [`unicode`](/pkg/unicode/) package and associated
-    support throughout the system has been upgraded from Unicode 9.0 to
-    [Unicode 10.0](https://www.unicode.org/versions/Unicode10.0.0/),
-    which adds 8,518 new characters, including four new scripts, one new property,
-    a Bitcoin currency symbol, and 56 new emoji.
+The [`unicode`](/pkg/unicode/) package and associated
+support throughout the system has been upgraded from Unicode 9.0 to
+[Unicode 10.0](https://www.unicode.org/versions/Unicode10.0.0/),
+which adds 8,518 new characters, including four new scripts, one new property,
+a Bitcoin currency symbol, and 56 new emoji.
diff --git a/_content/doc/go1.11.md b/_content/doc/go1.11.md
index bddfa65..0995413 100644
--- a/_content/doc/go1.11.md
+++ b/_content/doc/go1.11.md
@@ -408,402 +408,402 @@
 <!-- CL 110395: https://golang.org/cl/110395: cmd/go, cmd/compile: use Windows response files to avoid arg length limits -->
 <!-- CL 112436: https://golang.org/cl/112436: cmd/pprof: add readline support similar to upstream -->
 
-[crypto](/pkg/crypto/)
+#### [crypto](/pkg/crypto/)
 
-:   <!-- CL 64451 -->
-    Certain crypto operations, including
-    [`ecdsa.Sign`](/pkg/crypto/ecdsa/#Sign),
-    [`rsa.EncryptPKCS1v15`](/pkg/crypto/rsa/#EncryptPKCS1v15) and
-    [`rsa.GenerateKey`](/pkg/crypto/rsa/#GenerateKey),
-    now randomly read an extra byte of randomness to ensure tests don't rely on internal behavior.
+<!-- CL 64451 -->
+Certain crypto operations, including
+[`ecdsa.Sign`](/pkg/crypto/ecdsa/#Sign),
+[`rsa.EncryptPKCS1v15`](/pkg/crypto/rsa/#EncryptPKCS1v15) and
+[`rsa.GenerateKey`](/pkg/crypto/rsa/#GenerateKey),
+now randomly read an extra byte of randomness to ensure tests don't rely on internal behavior.
 
 <!-- crypto -->
 
-[crypto/cipher](/pkg/crypto/cipher/)
+#### [crypto/cipher](/pkg/crypto/cipher/)
 
-:   <!-- CL 48510, CL 116435 -->
-    The new function [`NewGCMWithTagSize`](/pkg/crypto/cipher/#NewGCMWithTagSize)
-    implements Galois Counter Mode with non-standard tag lengths for compatibility with existing cryptosystems.
+<!-- CL 48510, CL 116435 -->
+The new function [`NewGCMWithTagSize`](/pkg/crypto/cipher/#NewGCMWithTagSize)
+implements Galois Counter Mode with non-standard tag lengths for compatibility with existing cryptosystems.
 
 <!-- crypto/cipher -->
 
-[crypto/rsa](/pkg/crypto/rsa/)
+#### [crypto/rsa](/pkg/crypto/rsa/)
 
-:   <!-- CL 103876 -->
-    [`PublicKey`](/pkg/crypto/rsa/#PublicKey) now implements a
-    [`Size`](/pkg/crypto/rsa/#PublicKey.Size) method that
-    returns the modulus size in bytes.
+<!-- CL 103876 -->
+[`PublicKey`](/pkg/crypto/rsa/#PublicKey) now implements a
+[`Size`](/pkg/crypto/rsa/#PublicKey.Size) method that
+returns the modulus size in bytes.
 
 <!-- crypto/rsa -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 85115 -->
-    [`ConnectionState`](/pkg/crypto/tls/#ConnectionState)'s new
-    [`ExportKeyingMaterial`](/pkg/crypto/tls/#ConnectionState.ExportKeyingMaterial)
-    method allows exporting keying material bound to the
-    connection according to RFC 5705.
+<!-- CL 85115 -->
+[`ConnectionState`](/pkg/crypto/tls/#ConnectionState)'s new
+[`ExportKeyingMaterial`](/pkg/crypto/tls/#ConnectionState.ExportKeyingMaterial)
+method allows exporting keying material bound to the
+connection according to RFC 5705.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 123355, CL 123695 -->
-    The deprecated, legacy behavior of treating the `CommonName` field as
-    a hostname when no Subject Alternative Names are present is now disabled when the CN is not a
-    valid hostname.
-    The `CommonName` can be completely ignored by adding the experimental value
-    `x509ignoreCN=1` to the `GODEBUG` environment variable.
-    When the CN is ignored, certificates without SANs validate under chains with name constraints
-    instead of returning `NameConstraintsWithoutSANs`.
+<!-- CL 123355, CL 123695 -->
+The deprecated, legacy behavior of treating the `CommonName` field as
+a hostname when no Subject Alternative Names are present is now disabled when the CN is not a
+valid hostname.
+The `CommonName` can be completely ignored by adding the experimental value
+`x509ignoreCN=1` to the `GODEBUG` environment variable.
+When the CN is ignored, certificates without SANs validate under chains with name constraints
+instead of returning `NameConstraintsWithoutSANs`.
 
-    <!-- CL 113475 -->
-    Extended key usage restrictions are again checked only if they appear in the `KeyUsages`
-    field of [`VerifyOptions`](/pkg/crypto/x509/#VerifyOptions), instead of always being checked.
-    This matches the behavior of Go 1.9 and earlier.
+<!-- CL 113475 -->
+Extended key usage restrictions are again checked only if they appear in the `KeyUsages`
+field of [`VerifyOptions`](/pkg/crypto/x509/#VerifyOptions), instead of always being checked.
+This matches the behavior of Go 1.9 and earlier.
 
-    <!-- CL 102699 -->
-    The value returned by [`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
-    is now cached and might not reflect system changes between invocations.
+<!-- CL 102699 -->
+The value returned by [`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
+is now cached and might not reflect system changes between invocations.
 
 <!-- crypto/x509 -->
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   <!-- CL 112115 -->
-    More [`ELFOSABI`](/pkg/debug/elf/#ELFOSABI_NONE)
-    and [`EM`](/pkg/debug/elf/#EM_NONE)
-    constants have been added.
+<!-- CL 112115 -->
+More [`ELFOSABI`](/pkg/debug/elf/#ELFOSABI_NONE)
+and [`EM`](/pkg/debug/elf/#EM_NONE)
+constants have been added.
 
 <!-- debug/elf -->
 
-[encoding/asn1](/pkg/encoding/asn1/)
+#### [encoding/asn1](/pkg/encoding/asn1/)
 
-:   <!-- CL 110561 -->
-    `Marshal` and [`Unmarshal`](/pkg/encoding/asn1/#Unmarshal)
-    now support "private" class annotations for fields.
+<!-- CL 110561 -->
+`Marshal` and [`Unmarshal`](/pkg/encoding/asn1/#Unmarshal)
+now support "private" class annotations for fields.
 
 <!-- encoding/asn1 -->
 
-[encoding/base32](/pkg/encoding/base32/)
+#### [encoding/base32](/pkg/encoding/base32/)
 
-:   <!-- CL 112516 -->
-    The decoder now consistently
-    returns `io.ErrUnexpectedEOF` for an incomplete
-    chunk. Previously it would return `io.EOF` in some
-    cases.
+<!-- CL 112516 -->
+The decoder now consistently
+returns `io.ErrUnexpectedEOF` for an incomplete
+chunk. Previously it would return `io.EOF` in some
+cases.
 
 <!-- encoding/base32 -->
 
-[encoding/csv](/pkg/encoding/csv/)
+#### [encoding/csv](/pkg/encoding/csv/)
 
-:   <!-- CL 99696 -->
-    The `Reader` now rejects attempts to set
-    the [`Comma`](/pkg/encoding/csv/#Reader.Comma)
-    field to a double-quote character, as double-quote characters
-    already have a special meaning in CSV.
+<!-- CL 99696 -->
+The `Reader` now rejects attempts to set
+the [`Comma`](/pkg/encoding/csv/#Reader.Comma)
+field to a double-quote character, as double-quote characters
+already have a special meaning in CSV.
 
 <!-- encoding/csv -->
 
 <!-- CL 100235 was reverted -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- CL 121815 -->
-    The package has changed its behavior when a typed interface
-    value is passed to an implicit escaper function. Previously such
-    a value was written out as (an escaped form)
-    of `<nil>`. Now such values are ignored, just
-    as an untyped `nil` value is (and always has been)
-    ignored.
+<!-- CL 121815 -->
+The package has changed its behavior when a typed interface
+value is passed to an implicit escaper function. Previously such
+a value was written out as (an escaped form)
+of `<nil>`. Now such values are ignored, just
+as an untyped `nil` value is (and always has been)
+ignored.
 
 <!-- html/template -->
 
-[image/gif](/pkg/image/gif/)
+#### [image/gif](/pkg/image/gif/)
 
-:   <!-- CL 93076 -->
-    Non-looping animated GIFs are now supported. They are denoted by having a
-    [`LoopCount`](/pkg/image/gif/#GIF.LoopCount) of -1.
+<!-- CL 93076 -->
+Non-looping animated GIFs are now supported. They are denoted by having a
+[`LoopCount`](/pkg/image/gif/#GIF.LoopCount) of -1.
 
 <!-- image/gif -->
 
-[io/ioutil](/pkg/io/ioutil/)
+#### [io/ioutil](/pkg/io/ioutil/)
 
-:   <!-- CL 105675 -->
-    The [`TempFile`](/pkg/io/ioutil/#TempFile)
-    function now supports specifying where the random characters in
-    the filename are placed. If the `prefix` argument
-    includes a "`*`", the random string replaces the
-    "`*`". For example, a `prefix` argument of "`myname.*.bat`" will
-    result in a random filename such as
-    "`myname.123456.bat`". If no "`*`" is
-    included the old behavior is retained, and the random digits are
-    appended to the end.
+<!-- CL 105675 -->
+The [`TempFile`](/pkg/io/ioutil/#TempFile)
+function now supports specifying where the random characters in
+the filename are placed. If the `prefix` argument
+includes a "`*`", the random string replaces the
+"`*`". For example, a `prefix` argument of "`myname.*.bat`" will
+result in a random filename such as
+"`myname.123456.bat`". If no "`*`" is
+included the old behavior is retained, and the random digits are
+appended to the end.
 
 <!-- io/ioutil -->
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   <!-- CL 108996 -->
-    [`ModInverse`](/pkg/math/big/#Int.ModInverse) now returns nil when g and n are not relatively prime. The result was previously undefined.
+<!-- CL 108996 -->
+[`ModInverse`](/pkg/math/big/#Int.ModInverse) now returns nil when g and n are not relatively prime. The result was previously undefined.
 
 <!-- math/big -->
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   <!-- CL 121055 -->
-    The handling of form-data with missing/empty file names has been
-    restored to the behavior in Go 1.9: in the
-    [`Form`](/pkg/mime/multipart/#Form) for
-    the form-data part the value is available in
-    the `Value` field rather than the `File`
-    field. In Go releases 1.10 through 1.10.3 a form-data part with
-    a missing/empty file name and a non-empty "Content-Type" field
-    was stored in the `File` field. This change was a
-    mistake in 1.10 and has been reverted to the 1.9 behavior.
+<!-- CL 121055 -->
+The handling of form-data with missing/empty file names has been
+restored to the behavior in Go 1.9: in the
+[`Form`](/pkg/mime/multipart/#Form) for
+the form-data part the value is available in
+the `Value` field rather than the `File`
+field. In Go releases 1.10 through 1.10.3 a form-data part with
+a missing/empty file name and a non-empty "Content-Type" field
+was stored in the `File` field. This change was a
+mistake in 1.10 and has been reverted to the 1.9 behavior.
 
 <!-- mime/multipart -->
 
-[mime/quotedprintable](/pkg/mime/quotedprintable/)
+#### [mime/quotedprintable](/pkg/mime/quotedprintable/)
 
-:   <!-- CL 121095 -->
-    To support invalid input found in the wild, the package now
-    permits non-ASCII bytes but does not validate their encoding.
+<!-- CL 121095 -->
+To support invalid input found in the wild, the package now
+permits non-ASCII bytes but does not validate their encoding.
 
 <!-- mime/quotedprintable -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 72810 -->
-    The new [`ListenConfig`](/pkg/net/#ListenConfig) type and the new
-    [`Dialer.Control`](/pkg/net/#Dialer.Control) field permit
-    setting socket options before accepting and creating connections, respectively.
+<!-- CL 72810 -->
+The new [`ListenConfig`](/pkg/net/#ListenConfig) type and the new
+[`Dialer.Control`](/pkg/net/#Dialer.Control) field permit
+setting socket options before accepting and creating connections, respectively.
 
-    <!-- CL 76391 -->
-    The [`syscall.RawConn`](/pkg/syscall/#RawConn) `Read`
-    and `Write` methods now work correctly on Windows.
+<!-- CL 76391 -->
+The [`syscall.RawConn`](/pkg/syscall/#RawConn) `Read`
+and `Write` methods now work correctly on Windows.
 
-    <!-- CL 107715 -->
-    The `net` package now automatically uses the
-    [`splice` system call](https://man7.org/linux/man-pages/man2/splice.2.html)
-    on Linux when copying data between TCP connections in
-    [`TCPConn.ReadFrom`](/pkg/net/#TCPConn.ReadFrom), as called by
-    [`io.Copy`](/pkg/io/#Copy). The result is faster, more efficient TCP proxying.
+<!-- CL 107715 -->
+The `net` package now automatically uses the
+[`splice` system call](https://man7.org/linux/man-pages/man2/splice.2.html)
+on Linux when copying data between TCP connections in
+[`TCPConn.ReadFrom`](/pkg/net/#TCPConn.ReadFrom), as called by
+[`io.Copy`](/pkg/io/#Copy). The result is faster, more efficient TCP proxying.
 
-    <!-- CL 108297 -->
-    The [`TCPConn.File`](/pkg/net/#TCPConn.File),
-    [`UDPConn.File`](/pkg/net/#UDPConn.File),
-    [`UnixConn.File`](/pkg/net/#UnixCOnn.File),
-    and [`IPConn.File`](/pkg/net/#IPConn.File)
-    methods no longer put the returned `*os.File` into
-    blocking mode.
+<!-- CL 108297 -->
+The [`TCPConn.File`](/pkg/net/#TCPConn.File),
+[`UDPConn.File`](/pkg/net/#UDPConn.File),
+[`UnixConn.File`](/pkg/net/#UnixCOnn.File),
+and [`IPConn.File`](/pkg/net/#IPConn.File)
+methods no longer put the returned `*os.File` into
+blocking mode.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 71272 -->
-    The [`Transport`](/pkg/net/http/#Transport) type has a
-    new [`MaxConnsPerHost`](/pkg/net/http/#Transport.MaxConnsPerHost)
-    option that permits limiting the maximum number of connections
-    per host.
+<!-- CL 71272 -->
+The [`Transport`](/pkg/net/http/#Transport) type has a
+new [`MaxConnsPerHost`](/pkg/net/http/#Transport.MaxConnsPerHost)
+option that permits limiting the maximum number of connections
+per host.
 
-    <!-- CL 79919 -->
-    The [`Cookie`](/pkg/net/http/#Cookie) type has a new
-    [`SameSite`](/pkg/net/http/#Cookie.SameSite) field
-    (of new type also named
-    [`SameSite`](/pkg/net/http/#SameSite)) to represent the new cookie attribute recently supported by most browsers.
-    The `net/http`'s `Transport` does not use the `SameSite`
-    attribute itself, but the package supports parsing and serializing the
-    attribute for browsers to use.
+<!-- CL 79919 -->
+The [`Cookie`](/pkg/net/http/#Cookie) type has a new
+[`SameSite`](/pkg/net/http/#Cookie.SameSite) field
+(of new type also named
+[`SameSite`](/pkg/net/http/#SameSite)) to represent the new cookie attribute recently supported by most browsers.
+The `net/http`'s `Transport` does not use the `SameSite`
+attribute itself, but the package supports parsing and serializing the
+attribute for browsers to use.
 
-    <!-- CL 81778 -->
-    It is no longer allowed to reuse a [`Server`](/pkg/net/http/#Server)
-    after a call to
-    [`Shutdown`](/pkg/net/http/#Server.Shutdown) or
-    [`Close`](/pkg/net/http/#Server.Close). It was never officially supported
-    in the past and had often surprising behavior. Now, all future calls to the server's `Serve`
-    methods will return errors after a shutdown or close.
+<!-- CL 81778 -->
+It is no longer allowed to reuse a [`Server`](/pkg/net/http/#Server)
+after a call to
+[`Shutdown`](/pkg/net/http/#Server.Shutdown) or
+[`Close`](/pkg/net/http/#Server.Close). It was never officially supported
+in the past and had often surprising behavior. Now, all future calls to the server's `Serve`
+methods will return errors after a shutdown or close.
 
-    <!-- CL 89275 was reverted before Go 1.11 -->
+<!-- CL 89275 was reverted before Go 1.11 -->
 
-    <!-- CL 93296 -->
-    The constant `StatusMisdirectedRequest` is now defined for HTTP status code 421.
+<!-- CL 93296 -->
+The constant `StatusMisdirectedRequest` is now defined for HTTP status code 421.
 
-    <!-- CL 123875 -->
-    The HTTP server will no longer cancel contexts or send on
-    [`CloseNotifier`](/pkg/net/http/#CloseNotifier)
-    channels upon receiving pipelined HTTP/1.1 requests. Browsers do
-    not use HTTP pipelining, but some clients (such as
-    Debian's `apt`) may be configured to do so.
+<!-- CL 123875 -->
+The HTTP server will no longer cancel contexts or send on
+[`CloseNotifier`](/pkg/net/http/#CloseNotifier)
+channels upon receiving pipelined HTTP/1.1 requests. Browsers do
+not use HTTP pipelining, but some clients (such as
+Debian's `apt`) may be configured to do so.
 
-    <!-- CL 115255 -->
-    [`ProxyFromEnvironment`](/pkg/net/http/#ProxyFromEnvironment), which is used by the
-    [`DefaultTransport`](/pkg/net/http/#DefaultTransport), now
-    supports CIDR notation and ports in the `NO_PROXY` environment variable.
+<!-- CL 115255 -->
+[`ProxyFromEnvironment`](/pkg/net/http/#ProxyFromEnvironment), which is used by the
+[`DefaultTransport`](/pkg/net/http/#DefaultTransport), now
+supports CIDR notation and ports in the `NO_PROXY` environment variable.
 
 <!-- net/http -->
 
-[net/http/httputil](/pkg/net/http/httputil/)
+#### [net/http/httputil](/pkg/net/http/httputil/)
 
-:   <!-- CL 77410 -->
-    The
-    [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
-    has a new
-    [`ErrorHandler`](/pkg/net/http/httputil/#ReverseProxy.ErrorHandler)
-    option to permit changing how errors are handled.
+<!-- CL 77410 -->
+The
+[`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
+has a new
+[`ErrorHandler`](/pkg/net/http/httputil/#ReverseProxy.ErrorHandler)
+option to permit changing how errors are handled.
 
-    <!-- CL 115135 -->
-    The `ReverseProxy` now also passes
-    "`TE:`&nbsp;`trailers`" request headers
-    through to the backend, as required by the gRPC protocol.
+<!-- CL 115135 -->
+The `ReverseProxy` now also passes
+"`TE:`&nbsp;`trailers`" request headers
+through to the backend, as required by the gRPC protocol.
 
 <!-- net/http/httputil -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL 78835 -->
-    The new [`UserCacheDir`](/pkg/os/#UserCacheDir) function
-    returns the default root directory to use for user-specific cached data.
+<!-- CL 78835 -->
+The new [`UserCacheDir`](/pkg/os/#UserCacheDir) function
+returns the default root directory to use for user-specific cached data.
 
-    <!-- CL 94856 -->
-    The new [`ModeIrregular`](/pkg/os/#ModeIrregular)
-    is a [`FileMode`](/pkg/os/#FileMode) bit to represent
-    that a file is not a regular file, but nothing else is known about it, or that
-    it's not a socket, device, named pipe, symlink, or other file type for which
-    Go has a defined mode bit.
+<!-- CL 94856 -->
+The new [`ModeIrregular`](/pkg/os/#ModeIrregular)
+is a [`FileMode`](/pkg/os/#FileMode) bit to represent
+that a file is not a regular file, but nothing else is known about it, or that
+it's not a socket, device, named pipe, symlink, or other file type for which
+Go has a defined mode bit.
 
-    <!-- CL 99337 -->
-    [`Symlink`](/pkg/os/#Symlink) now works
-    for unprivileged users on Windows 10 on machines with Developer
-    Mode enabled.
+<!-- CL 99337 -->
+[`Symlink`](/pkg/os/#Symlink) now works
+for unprivileged users on Windows 10 on machines with Developer
+Mode enabled.
 
-    <!-- CL 100077 -->
-    When a non-blocking descriptor is passed
-    to [`NewFile`](/pkg/os#NewFile), the
-    resulting `*File` will be kept in non-blocking
-    mode. This means that I/O for that `*File` will use
-    the runtime poller rather than a separate thread, and that
-    the [`SetDeadline`](/pkg/os/#File.SetDeadline)
-    methods will work.
+<!-- CL 100077 -->
+When a non-blocking descriptor is passed
+to [`NewFile`](/pkg/os#NewFile), the
+resulting `*File` will be kept in non-blocking
+mode. This means that I/O for that `*File` will use
+the runtime poller rather than a separate thread, and that
+the [`SetDeadline`](/pkg/os/#File.SetDeadline)
+methods will work.
 
 <!-- os -->
 
-[os/signal](/pkg/os/signal/)
+#### [os/signal](/pkg/os/signal/)
 
-:   <!-- CL 108376 -->
-    The new [`Ignored`](/pkg/os/signal/#Ignored) function reports
-    whether a signal is currently ignored.
+<!-- CL 108376 -->
+The new [`Ignored`](/pkg/os/signal/#Ignored) function reports
+whether a signal is currently ignored.
 
 <!-- os/signal -->
 
-[os/user](/pkg/os/user/)
+#### [os/user](/pkg/os/user/)
 
-:   <!-- CL 92456 -->
-    The `os/user` package can now be built in pure Go
-    mode using the build tag "`osusergo`",
-    independent of the use of the environment
-    variable `CGO_ENABLED=0`. Previously the only way to use
-    the package's pure Go implementation was to disable `cgo`
-    support across the entire program.
+<!-- CL 92456 -->
+The `os/user` package can now be built in pure Go
+mode using the build tag "`osusergo`",
+independent of the use of the environment
+variable `CGO_ENABLED=0`. Previously the only way to use
+the package's pure Go implementation was to disable `cgo`
+support across the entire program.
 
 <!-- os/user -->
 
 <!-- CL 101715 was reverted -->
 
-[runtime](/pkg/runtime/)
+#### [runtime](/pkg/runtime/)
 
-:   <!-- CL 70993 -->
-    Setting the <code>GODEBUG=tracebackancestors=_N_</code>
-    environment variable now extends tracebacks with the stacks at
-    which goroutines were created, where _N_ limits the
-    number of ancestor goroutines to report.
+<!-- CL 70993 -->
+Setting the <code>GODEBUG=tracebackancestors=_N_</code>
+environment variable now extends tracebacks with the stacks at
+which goroutines were created, where _N_ limits the
+number of ancestor goroutines to report.
 
 <!-- runtime -->
 
-[runtime/pprof](/pkg/runtime/pprof/)
+#### [runtime/pprof](/pkg/runtime/pprof/)
 
-:   <!-- CL 102696 -->
-    This release adds a new "allocs" profile type that profiles
-    total number of bytes allocated since the program began
-    (including garbage-collected bytes). This is identical to the
-    existing "heap" profile viewed in `-alloc_space` mode.
-    Now `go test -memprofile=...` reports an "allocs" profile
-    instead of "heap" profile.
+<!-- CL 102696 -->
+This release adds a new "allocs" profile type that profiles
+total number of bytes allocated since the program began
+(including garbage-collected bytes). This is identical to the
+existing "heap" profile viewed in `-alloc_space` mode.
+Now `go test -memprofile=...` reports an "allocs" profile
+instead of "heap" profile.
 
 <!-- runtime/pprof -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- CL 87095 -->
-    The mutex profile now includes reader/writer contention
-    for [`RWMutex`](/pkg/sync/#RWMutex).
-    Writer/writer contention was already included in the mutex
-    profile.
+<!-- CL 87095 -->
+The mutex profile now includes reader/writer contention
+for [`RWMutex`](/pkg/sync/#RWMutex).
+Writer/writer contention was already included in the mutex
+profile.
 
 <!-- sync -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 106275 -->
-    On Windows, several fields were changed from `uintptr` to a new
-    [`Pointer`](/pkg/syscall/?GOOS=windows&GOARCH=amd64#Pointer)
-    type to avoid problems with Go's garbage collector. The same change was made
-    to the [`golang.org/x/sys/windows`](https://godoc.org/golang.org/x/sys/windows)
-    package. For any code affected, users should first migrate away from the `syscall`
-    package to the `golang.org/x/sys/windows` package, and then change
-    to using the `Pointer`, while obeying the
-    [`unsafe.Pointer` conversion rules](/pkg/unsafe/#Pointer).
+<!-- CL 106275 -->
+On Windows, several fields were changed from `uintptr` to a new
+[`Pointer`](/pkg/syscall/?GOOS=windows&GOARCH=amd64#Pointer)
+type to avoid problems with Go's garbage collector. The same change was made
+to the [`golang.org/x/sys/windows`](https://godoc.org/golang.org/x/sys/windows)
+package. For any code affected, users should first migrate away from the `syscall`
+package to the `golang.org/x/sys/windows` package, and then change
+to using the `Pointer`, while obeying the
+[`unsafe.Pointer` conversion rules](/pkg/unsafe/#Pointer).
 
-    <!-- CL 118658 -->
-    On Linux, the `flags` parameter to
-    [`Faccessat`](/pkg/syscall/?GOOS=linux&GOARCH=amd64#Faccessat)
-    is now implemented just as in glibc. In earlier Go releases the
-    flags parameter was ignored.
+<!-- CL 118658 -->
+On Linux, the `flags` parameter to
+[`Faccessat`](/pkg/syscall/?GOOS=linux&GOARCH=amd64#Faccessat)
+is now implemented just as in glibc. In earlier Go releases the
+flags parameter was ignored.
 
-    <!-- CL 118658 -->
-    On Linux, the `flags` parameter to
-    [`Fchmodat`](/pkg/syscall/?GOOS=linux&GOARCH=amd64#Fchmodat)
-    is now validated. Linux's `fchmodat` doesn't support the `flags` parameter
-    so we now mimic glibc's behavior and return an error if it's non-zero.
+<!-- CL 118658 -->
+On Linux, the `flags` parameter to
+[`Fchmodat`](/pkg/syscall/?GOOS=linux&GOARCH=amd64#Fchmodat)
+is now validated. Linux's `fchmodat` doesn't support the `flags` parameter
+so we now mimic glibc's behavior and return an error if it's non-zero.
 
 <!-- syscall -->
 
-[text/scanner](/pkg/text/scanner/)
+#### [text/scanner](/pkg/text/scanner/)
 
-:   <!-- CL 112037 -->
-    The [`Scanner.Scan`](/pkg/text/scanner/#Scanner.Scan) method now returns
-    the [`RawString`](/pkg/text/scanner/#RawString) token
-    instead of [`String`](/pkg/text/scanner/#String)
-    for raw string literals.
+<!-- CL 112037 -->
+The [`Scanner.Scan`](/pkg/text/scanner/#Scanner.Scan) method now returns
+the [`RawString`](/pkg/text/scanner/#RawString) token
+instead of [`String`](/pkg/text/scanner/#String)
+for raw string literals.
 
 <!-- text/scanner -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 84480 -->
-    Modifying template variables via assignments is now permitted via the `=` token:
+<!-- CL 84480 -->
+Modifying template variables via assignments is now permitted via the `=` token:
 
-    	  {{ $v := "init" }}
-    	  {{ if true }}
-    	    {{ $v = "changed" }}
-    	  {{ end }}
-    	  v: {{ $v }} {{/* "changed" */}}
+	  {{ $v := "init" }}
+	  {{ if true }}
+	    {{ $v = "changed" }}
+	  {{ end }}
+	  v: {{ $v }} {{/* "changed" */}}
 
-    <!-- CL 95215 -->
-    In previous versions untyped `nil` values passed to
-    template functions were ignored. They are now passed as normal
-    arguments.
+<!-- CL 95215 -->
+In previous versions untyped `nil` values passed to
+template functions were ignored. They are now passed as normal
+arguments.
 
 <!-- text/template -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- CL 98157 -->
-    Parsing of timezones denoted by sign and offset is now
-    supported. In previous versions, numeric timezone names
-    (such as `+03`) were not considered valid, and only
-    three-letter abbreviations (such as `MST`) were accepted
-    when expecting a timezone name.
+<!-- CL 98157 -->
+Parsing of timezones denoted by sign and offset is now
+supported. In previous versions, numeric timezone names
+(such as `+03`) were not considered valid, and only
+three-letter abbreviations (such as `MST`) were accepted
+when expecting a timezone name.
 
 <!-- time -->
diff --git a/_content/doc/go1.12.md b/_content/doc/go1.12.md
index d3f3f93..4281d26 100644
--- a/_content/doc/go1.12.md
+++ b/_content/doc/go1.12.md
@@ -390,437 +390,437 @@
 
 <!-- TODO: CL 115677: https://golang.org/cl/115677: cmd/vet: check embedded field tags too -->
 
-[bufio](/pkg/bufio/)
+#### [bufio](/pkg/bufio/)
 
-:   <!-- CL 149297 -->
-    `Reader`'s [`UnreadRune`](/pkg/bufio/#Reader.UnreadRune) and
-    [`UnreadByte`](/pkg/bufio/#Reader.UnreadByte) methods will now return an error
-    if they are called after [`Peek`](/pkg/bufio/#Reader.Peek).
+<!-- CL 149297 -->
+`Reader`'s [`UnreadRune`](/pkg/bufio/#Reader.UnreadRune) and
+[`UnreadByte`](/pkg/bufio/#Reader.UnreadByte) methods will now return an error
+if they are called after [`Peek`](/pkg/bufio/#Reader.Peek).
 
 <!-- bufio -->
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   <!-- CL 137855 -->
-    The new function [`ReplaceAll`](/pkg/bytes/#ReplaceAll) returns a copy of
-    a byte slice with all non-overlapping instances of a value replaced by another.
+<!-- CL 137855 -->
+The new function [`ReplaceAll`](/pkg/bytes/#ReplaceAll) returns a copy of
+a byte slice with all non-overlapping instances of a value replaced by another.
 
-    <!-- CL 145098 -->
-    A pointer to a zero-value [`Reader`](/pkg/bytes/#Reader) is now
-    functionally equivalent to [`NewReader`](/pkg/bytes/#NewReader)`(nil)`.
-    Prior to Go 1.12, the former could not be used as a substitute for the latter in all cases.
+<!-- CL 145098 -->
+A pointer to a zero-value [`Reader`](/pkg/bytes/#Reader) is now
+functionally equivalent to [`NewReader`](/pkg/bytes/#NewReader)`(nil)`.
+Prior to Go 1.12, the former could not be used as a substitute for the latter in all cases.
 
 <!-- bytes -->
 
-[crypto/rand](/pkg/crypto/rand/)
+#### [crypto/rand](/pkg/crypto/rand/)
 
-:   <!-- CL 139419 -->
-    A warning will now be printed to standard error the first time
-    `Reader.Read` is blocked for more than 60 seconds waiting
-    to read entropy from the kernel.
+<!-- CL 139419 -->
+A warning will now be printed to standard error the first time
+`Reader.Read` is blocked for more than 60 seconds waiting
+to read entropy from the kernel.
 
-    <!-- CL 120055 -->
-    On FreeBSD, `Reader` now uses the `getrandom`
-    system call if available, `/dev/urandom` otherwise.
+<!-- CL 120055 -->
+On FreeBSD, `Reader` now uses the `getrandom`
+system call if available, `/dev/urandom` otherwise.
 
 <!-- crypto/rand -->
 
-[crypto/rc4](/pkg/crypto/rc4/)
+#### [crypto/rc4](/pkg/crypto/rc4/)
 
-:   <!-- CL 130397 -->
-    This release removes the assembly implementations, leaving only
-    the pure Go version. The Go compiler generates code that is
-    either slightly better or slightly worse, depending on the exact
-    CPU. RC4 is insecure and should only be used for compatibility
-    with legacy systems.
+<!-- CL 130397 -->
+This release removes the assembly implementations, leaving only
+the pure Go version. The Go compiler generates code that is
+either slightly better or slightly worse, depending on the exact
+CPU. RC4 is insecure and should only be used for compatibility
+with legacy systems.
 
 <!-- crypto/rc4 -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 143177 -->
-    If a client sends an initial message that does not look like TLS, the server
-    will no longer reply with an alert, and it will expose the underlying
-    `net.Conn` in the new field `Conn` of
-    [`RecordHeaderError`](/pkg/crypto/tls/#RecordHeaderError).
+<!-- CL 143177 -->
+If a client sends an initial message that does not look like TLS, the server
+will no longer reply with an alert, and it will expose the underlying
+`net.Conn` in the new field `Conn` of
+[`RecordHeaderError`](/pkg/crypto/tls/#RecordHeaderError).
 
 <!-- crypto/tls -->
 
-[database/sql](/pkg/database/sql/)
+#### [database/sql](/pkg/database/sql/)
 
-:   <!-- CL 145738 -->
-    A query cursor can now be obtained by passing a
-    [`*Rows`](/pkg/database/sql/#Rows)
-    value to the [`Row.Scan`](/pkg/database/sql/#Row.Scan) method.
+<!-- CL 145738 -->
+A query cursor can now be obtained by passing a
+[`*Rows`](/pkg/database/sql/#Rows)
+value to the [`Row.Scan`](/pkg/database/sql/#Row.Scan) method.
 
 <!-- database/sql -->
 
-[expvar](/pkg/expvar/)
+#### [expvar](/pkg/expvar/)
 
-:   <!-- CL 139537 -->
-    The new [`Delete`](/pkg/expvar/#Map.Delete) method allows
-    for deletion of key/value pairs from a [`Map`](/pkg/expvar/#Map).
+<!-- CL 139537 -->
+The new [`Delete`](/pkg/expvar/#Map.Delete) method allows
+for deletion of key/value pairs from a [`Map`](/pkg/expvar/#Map).
 
 <!-- expvar -->
 
-[fmt](/pkg/fmt/)
+#### [fmt](/pkg/fmt/)
 
-:   <!-- CL 142737 -->
-    Maps are now printed in key-sorted order to ease testing. The ordering rules are:
+<!-- CL 142737 -->
+Maps are now printed in key-sorted order to ease testing. The ordering rules are:
 
-      - When applicable, nil compares low
-      - ints, floats, and strings order by <
-      - NaN compares less than non-NaN floats
-      - bool compares false before true
-      - Complex compares real, then imaginary
-      - Pointers compare by machine address
-      - Channel values compare by machine address
-      - Structs compare each field in turn
-      - Arrays compare each element in turn
-      - Interface values compare first by `reflect.Type` describing the concrete type
-        and then by concrete value as described in the previous rules.
+  - When applicable, nil compares low
+  - ints, floats, and strings order by <
+  - NaN compares less than non-NaN floats
+  - bool compares false before true
+  - Complex compares real, then imaginary
+  - Pointers compare by machine address
+  - Channel values compare by machine address
+  - Structs compare each field in turn
+  - Arrays compare each element in turn
+  - Interface values compare first by `reflect.Type` describing the concrete type
+    and then by concrete value as described in the previous rules.
 
 
-    <!-- CL 129777 -->
-    When printing maps, non-reflexive key values like `NaN` were previously
-    displayed as `<nil>`. As of this release, the correct values are printed.
+<!-- CL 129777 -->
+When printing maps, non-reflexive key values like `NaN` were previously
+displayed as `<nil>`. As of this release, the correct values are printed.
 
 <!-- fmt -->
 
-[go/doc](/pkg/go/doc/)
+#### [go/doc](/pkg/go/doc/)
 
-:   <!-- CL 140958 -->
-    To address some outstanding issues in [`cmd/doc`](/cmd/doc/),
-    this package has a new [`Mode`](/pkg/go/doc/#Mode) bit,
-    `PreserveAST`, which controls whether AST data is cleared.
+<!-- CL 140958 -->
+To address some outstanding issues in [`cmd/doc`](/cmd/doc/),
+this package has a new [`Mode`](/pkg/go/doc/#Mode) bit,
+`PreserveAST`, which controls whether AST data is cleared.
 
 <!-- go/doc -->
 
-[go/token](/pkg/go/token/)
+#### [go/token](/pkg/go/token/)
 
-:   <!-- CL 134075 -->
-    The [`File`](/pkg/go/token#File) type has a new
-    [`LineStart`](/pkg/go/token#File.LineStart) field,
-    which returns the position of the start of a given line. This is especially useful
-    in programs that occasionally handle non-Go files, such as assembly, but wish to use
-    the `token.Pos` mechanism to identify file positions.
+<!-- CL 134075 -->
+The [`File`](/pkg/go/token#File) type has a new
+[`LineStart`](/pkg/go/token#File.LineStart) field,
+which returns the position of the start of a given line. This is especially useful
+in programs that occasionally handle non-Go files, such as assembly, but wish to use
+the `token.Pos` mechanism to identify file positions.
 
 <!-- go/token -->
 
-[image](/pkg/image/)
+#### [image](/pkg/image/)
 
-:   <!-- CL 118755 -->
-    The [`RegisterFormat`](/pkg/image/#RegisterFormat) function is now safe for concurrent use.
+<!-- CL 118755 -->
+The [`RegisterFormat`](/pkg/image/#RegisterFormat) function is now safe for concurrent use.
 
 <!-- image -->
 
-[image/png](/pkg/image/png/)
+#### [image/png](/pkg/image/png/)
 
-:   <!-- CL 134235 -->
-    Paletted images with fewer than 16 colors now encode to smaller outputs.
+<!-- CL 134235 -->
+Paletted images with fewer than 16 colors now encode to smaller outputs.
 
 <!-- image/png -->
 
-[io](/pkg/io/)
+#### [io](/pkg/io/)
 
-:   <!-- CL 139457 -->
-    The new [`StringWriter`](/pkg/io#StringWriter) interface wraps the
-    [`WriteString`](/pkg/io/#WriteString) function.
+<!-- CL 139457 -->
+The new [`StringWriter`](/pkg/io#StringWriter) interface wraps the
+[`WriteString`](/pkg/io/#WriteString) function.
 
 <!-- io -->
 
-[math](/pkg/math/)
+#### [math](/pkg/math/)
 
-:   <!-- CL 153059 -->
-    The functions
-    [`Sin`](/pkg/math/#Sin),
-    [`Cos`](/pkg/math/#Cos),
-    [`Tan`](/pkg/math/#Tan),
-    and [`Sincos`](/pkg/math/#Sincos) now
-    apply Payne-Hanek range reduction to huge arguments. This
-    produces more accurate answers, but they will not be bit-for-bit
-    identical with the results in earlier releases.
+<!-- CL 153059 -->
+The functions
+[`Sin`](/pkg/math/#Sin),
+[`Cos`](/pkg/math/#Cos),
+[`Tan`](/pkg/math/#Tan),
+and [`Sincos`](/pkg/math/#Sincos) now
+apply Payne-Hanek range reduction to huge arguments. This
+produces more accurate answers, but they will not be bit-for-bit
+identical with the results in earlier releases.
 
 <!-- math -->
 
-[math/bits](/pkg/math/bits/)
+#### [math/bits](/pkg/math/bits/)
 
-:   <!-- CL 123157 -->
-    New extended precision operations [`Add`](/pkg/math/bits/#Add), [`Sub`](/pkg/math/bits/#Sub), [`Mul`](/pkg/math/bits/#Mul), and [`Div`](/pkg/math/bits/#Div) are available in `uint`, `uint32`, and `uint64` versions.
+<!-- CL 123157 -->
+New extended precision operations [`Add`](/pkg/math/bits/#Add), [`Sub`](/pkg/math/bits/#Sub), [`Mul`](/pkg/math/bits/#Mul), and [`Div`](/pkg/math/bits/#Div) are available in `uint`, `uint32`, and `uint64` versions.
 
 <!-- math/bits -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 146659 -->
-    The
-    [`Dialer.DualStack`](/pkg/net/#Dialer.DualStack) setting is now ignored and deprecated;
-    RFC 6555 Fast Fallback ("Happy Eyeballs") is now enabled by default. To disable, set
-    [`Dialer.FallbackDelay`](/pkg/net/#Dialer.FallbackDelay) to a negative value.
+<!-- CL 146659 -->
+The
+[`Dialer.DualStack`](/pkg/net/#Dialer.DualStack) setting is now ignored and deprecated;
+RFC 6555 Fast Fallback ("Happy Eyeballs") is now enabled by default. To disable, set
+[`Dialer.FallbackDelay`](/pkg/net/#Dialer.FallbackDelay) to a negative value.
 
-    <!-- CL 107196 -->
-    Similarly, TCP keep-alives are now enabled by default if
-    [`Dialer.KeepAlive`](/pkg/net/#Dialer.KeepAlive) is zero.
-    To disable, set it to a negative value.
+<!-- CL 107196 -->
+Similarly, TCP keep-alives are now enabled by default if
+[`Dialer.KeepAlive`](/pkg/net/#Dialer.KeepAlive) is zero.
+To disable, set it to a negative value.
 
-    <!-- CL 113997 -->
-    On Linux, the [`splice` system call](https://man7.org/linux/man-pages/man2/splice.2.html) is now used when copying from a
-    [`UnixConn`](/pkg/net/#UnixConn) to a
-    [`TCPConn`](/pkg/net/#TCPConn).
+<!-- CL 113997 -->
+On Linux, the [`splice` system call](https://man7.org/linux/man-pages/man2/splice.2.html) is now used when copying from a
+[`UnixConn`](/pkg/net/#UnixConn) to a
+[`TCPConn`](/pkg/net/#TCPConn).
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 143177 -->
-    The HTTP server now rejects misdirected HTTP requests to HTTPS servers with a plaintext "400 Bad Request" response.
+<!-- CL 143177 -->
+The HTTP server now rejects misdirected HTTP requests to HTTPS servers with a plaintext "400 Bad Request" response.
 
-    <!-- CL 130115 -->
-    The new [`Client.CloseIdleConnections`](/pkg/net/http/#Client.CloseIdleConnections)
-    method calls the `Client`'s underlying `Transport`'s `CloseIdleConnections`
-    if it has one.
+<!-- CL 130115 -->
+The new [`Client.CloseIdleConnections`](/pkg/net/http/#Client.CloseIdleConnections)
+method calls the `Client`'s underlying `Transport`'s `CloseIdleConnections`
+if it has one.
 
-    <!-- CL 145398 -->
-    The [`Transport`](/pkg/net/http/#Transport) no longer rejects HTTP responses which declare
-    HTTP Trailers but don't use chunked encoding. Instead, the declared trailers are now just ignored.
+<!-- CL 145398 -->
+The [`Transport`](/pkg/net/http/#Transport) no longer rejects HTTP responses which declare
+HTTP Trailers but don't use chunked encoding. Instead, the declared trailers are now just ignored.
 
-    <!-- CL 152080 -->
-    <!-- CL 151857 -->
-    The [`Transport`](/pkg/net/http/#Transport) no longer handles `MAX_CONCURRENT_STREAMS` values
-    advertised from HTTP/2 servers as strictly as it did during Go 1.10 and Go 1.11. The default behavior is now back
-    to how it was in Go 1.9: each connection to a server can have up to `MAX_CONCURRENT_STREAMS` requests
-    active and then new TCP connections are created as needed. In Go 1.10 and Go 1.11 the `http2` package
-    would block and wait for requests to finish instead of creating new connections.
-    To get the stricter behavior back, import the
-    [`golang.org/x/net/http2`](https://godoc.org/golang.org/x/net/http2) package
-    directly and set
-    [`Transport.StrictMaxConcurrentStreams`](https://godoc.org/golang.org/x/net/http2#Transport.StrictMaxConcurrentStreams) to
-    `true`.
+<!-- CL 152080 -->
+<!-- CL 151857 -->
+The [`Transport`](/pkg/net/http/#Transport) no longer handles `MAX_CONCURRENT_STREAMS` values
+advertised from HTTP/2 servers as strictly as it did during Go 1.10 and Go 1.11. The default behavior is now back
+to how it was in Go 1.9: each connection to a server can have up to `MAX_CONCURRENT_STREAMS` requests
+active and then new TCP connections are created as needed. In Go 1.10 and Go 1.11 the `http2` package
+would block and wait for requests to finish instead of creating new connections.
+To get the stricter behavior back, import the
+[`golang.org/x/net/http2`](https://godoc.org/golang.org/x/net/http2) package
+directly and set
+[`Transport.StrictMaxConcurrentStreams`](https://godoc.org/golang.org/x/net/http2#Transport.StrictMaxConcurrentStreams) to
+`true`.
 
 <!-- net/http -->
 
-[net/url](/pkg/net/url/)
+#### [net/url](/pkg/net/url/)
 
-:   <!-- CL 159157, CL 160178 -->
-    [`Parse`](/pkg/net/url/#Parse),
-    [`ParseRequestURI`](/pkg/net/url/#ParseRequestURI),
-    and
-    [`URL.Parse`](/pkg/net/url/#URL.Parse)
-    now return an
-    error for URLs containing ASCII control characters, which includes NULL,
-    tab, and newlines.
+<!-- CL 159157, CL 160178 -->
+[`Parse`](/pkg/net/url/#Parse),
+[`ParseRequestURI`](/pkg/net/url/#ParseRequestURI),
+and
+[`URL.Parse`](/pkg/net/url/#URL.Parse)
+now return an
+error for URLs containing ASCII control characters, which includes NULL,
+tab, and newlines.
 
 <!-- net/url -->
 
-[net/http/httputil](/pkg/net/http/httputil/)
+#### [net/http/httputil](/pkg/net/http/httputil/)
 
-:   <!-- CL 146437 -->
-    The [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy) now automatically
-    proxies WebSocket requests.
+<!-- CL 146437 -->
+The [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy) now automatically
+proxies WebSocket requests.
 
 <!-- net/http/httputil -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL 125443 -->
-    The new [`ProcessState.ExitCode`](/pkg/os/#ProcessState.ExitCode) method
-    returns the process's exit code.
+<!-- CL 125443 -->
+The new [`ProcessState.ExitCode`](/pkg/os/#ProcessState.ExitCode) method
+returns the process's exit code.
 
-    <!-- CL 135075 -->
-    `ModeCharDevice` has been added to the `ModeType` bitmask, allowing for
-    `ModeDevice | ModeCharDevice` to be recovered when masking a
-    [`FileMode`](/pkg/os/#FileMode) with `ModeType`.
+<!-- CL 135075 -->
+`ModeCharDevice` has been added to the `ModeType` bitmask, allowing for
+`ModeDevice | ModeCharDevice` to be recovered when masking a
+[`FileMode`](/pkg/os/#FileMode) with `ModeType`.
 
-    <!-- CL 139418 -->
-    The new function [`UserHomeDir`](/pkg/os/#UserHomeDir) returns the
-    current user's home directory.
+<!-- CL 139418 -->
+The new function [`UserHomeDir`](/pkg/os/#UserHomeDir) returns the
+current user's home directory.
 
-    <!-- CL 146020 -->
-    [`RemoveAll`](/pkg/os/#RemoveAll) now supports paths longer than 4096 characters
-    on most Unix systems.
+<!-- CL 146020 -->
+[`RemoveAll`](/pkg/os/#RemoveAll) now supports paths longer than 4096 characters
+on most Unix systems.
 
-    <!-- CL 130676 -->
-    [`File.Sync`](/pkg/os/#File.Sync) now uses `F_FULLFSYNC` on macOS
-    to correctly flush the file contents to permanent storage.
-    This may cause the method to run more slowly than in previous releases.
+<!-- CL 130676 -->
+[`File.Sync`](/pkg/os/#File.Sync) now uses `F_FULLFSYNC` on macOS
+to correctly flush the file contents to permanent storage.
+This may cause the method to run more slowly than in previous releases.
 
-    <!--CL 155517 -->
-    [`File`](/pkg/os/#File) now supports
-    a [`SyscallConn`](/pkg/os/#File.SyscallConn)
-    method returning
-    a [`syscall.RawConn`](/pkg/syscall/#RawConn)
-    interface value. This may be used to invoke system-specific
-    operations on the underlying file descriptor.
+<!--CL 155517 -->
+[`File`](/pkg/os/#File) now supports
+a [`SyscallConn`](/pkg/os/#File.SyscallConn)
+method returning
+a [`syscall.RawConn`](/pkg/syscall/#RawConn)
+interface value. This may be used to invoke system-specific
+operations on the underlying file descriptor.
 
 <!-- os -->
 
-[path/filepath](/pkg/path/filepath/)
+#### [path/filepath](/pkg/path/filepath/)
 
-:   <!-- CL 145220 -->
-    The [`IsAbs`](/pkg/path/filepath/#IsAbs) function now returns true when passed
-    a reserved filename on Windows such as `NUL`.
-    [List of reserved names.](https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file#naming-conventions)
+<!-- CL 145220 -->
+The [`IsAbs`](/pkg/path/filepath/#IsAbs) function now returns true when passed
+a reserved filename on Windows such as `NUL`.
+[List of reserved names.](https://docs.microsoft.com/en-us/windows/desktop/fileio/naming-a-file#naming-conventions)
 
 <!-- path/filepath -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 33572 -->
-    A new [`MapIter`](/pkg/reflect#MapIter) type is
-    an iterator for ranging over a map. This type is exposed through the
-    [`Value`](/pkg/reflect#Value) type's new
-    [`MapRange`](/pkg/reflect#Value.MapRange) method.
-    This follows the same iteration semantics as a range statement, with `Next`
-    to advance the iterator, and `Key`/`Value` to access each entry.
+<!-- CL 33572 -->
+A new [`MapIter`](/pkg/reflect#MapIter) type is
+an iterator for ranging over a map. This type is exposed through the
+[`Value`](/pkg/reflect#Value) type's new
+[`MapRange`](/pkg/reflect#Value.MapRange) method.
+This follows the same iteration semantics as a range statement, with `Next`
+to advance the iterator, and `Key`/`Value` to access each entry.
 
 <!-- reflect -->
 
-[regexp](/pkg/regexp/)
+#### [regexp](/pkg/regexp/)
 
-:   <!-- CL 139784 -->
-    [`Copy`](/pkg/regexp/#Regexp.Copy) is no longer necessary
-    to avoid lock contention, so it has been given a partial deprecation comment.
-    [`Copy`](/pkg/regexp/#Regexp.Copy)
-    may still be appropriate if the reason for its use is to make two copies with
-    different [`Longest`](/pkg/regexp/#Regexp.Longest) settings.
+<!-- CL 139784 -->
+[`Copy`](/pkg/regexp/#Regexp.Copy) is no longer necessary
+to avoid lock contention, so it has been given a partial deprecation comment.
+[`Copy`](/pkg/regexp/#Regexp.Copy)
+may still be appropriate if the reason for its use is to make two copies with
+different [`Longest`](/pkg/regexp/#Regexp.Longest) settings.
 
 <!-- regexp -->
 
-[runtime/debug](/pkg/runtime/debug/)
+#### [runtime/debug](/pkg/runtime/debug/)
 
-:   <!-- CL 144220 -->
-    A new [`BuildInfo`](/pkg/runtime/debug/#BuildInfo) type
-    exposes the build information read from the running binary, available only in
-    binaries built with module support. This includes the main package path, main
-    module information, and the module dependencies. This type is given through the
-    [`ReadBuildInfo`](/pkg/runtime/debug/#ReadBuildInfo) function
-    on [`BuildInfo`](/pkg/runtime/debug/#BuildInfo).
+<!-- CL 144220 -->
+A new [`BuildInfo`](/pkg/runtime/debug/#BuildInfo) type
+exposes the build information read from the running binary, available only in
+binaries built with module support. This includes the main package path, main
+module information, and the module dependencies. This type is given through the
+[`ReadBuildInfo`](/pkg/runtime/debug/#ReadBuildInfo) function
+on [`BuildInfo`](/pkg/runtime/debug/#BuildInfo).
 
 <!-- runtime/debug -->
 
-[strings](/pkg/strings/)
+#### [strings](/pkg/strings/)
 
-:   <!-- CL 137855 -->
-    The new function [`ReplaceAll`](/pkg/strings/#ReplaceAll) returns a copy of
-    a string with all non-overlapping instances of a value replaced by another.
+<!-- CL 137855 -->
+The new function [`ReplaceAll`](/pkg/strings/#ReplaceAll) returns a copy of
+a string with all non-overlapping instances of a value replaced by another.
 
-    <!-- CL 145098 -->
-    A pointer to a zero-value [`Reader`](/pkg/strings/#Reader) is now
-    functionally equivalent to [`NewReader`](/pkg/strings/#NewReader)`(nil)`.
-    Prior to Go 1.12, the former could not be used as a substitute for the latter in all cases.
+<!-- CL 145098 -->
+A pointer to a zero-value [`Reader`](/pkg/strings/#Reader) is now
+functionally equivalent to [`NewReader`](/pkg/strings/#NewReader)`(nil)`.
+Prior to Go 1.12, the former could not be used as a substitute for the latter in all cases.
 
-    <!-- CL 122835 -->
-    The new [`Builder.Cap`](/pkg/strings/#Builder.Cap) method returns the capacity of the builder's underlying byte slice.
+<!-- CL 122835 -->
+The new [`Builder.Cap`](/pkg/strings/#Builder.Cap) method returns the capacity of the builder's underlying byte slice.
 
-    <!-- CL 131495 -->
-    The character mapping functions [`Map`](/pkg/strings/#Map),
-    [`Title`](/pkg/strings/#Title),
-    [`ToLower`](/pkg/strings/#ToLower),
-    [`ToLowerSpecial`](/pkg/strings/#ToLowerSpecial),
-    [`ToTitle`](/pkg/strings/#ToTitle),
-    [`ToTitleSpecial`](/pkg/strings/#ToTitleSpecial),
-    [`ToUpper`](/pkg/strings/#ToUpper), and
-    [`ToUpperSpecial`](/pkg/strings/#ToUpperSpecial)
-    now always guarantee to return valid UTF-8. In earlier releases, if the input was invalid UTF-8 but no character replacements
-    needed to be applied, these routines incorrectly returned the invalid UTF-8 unmodified.
+<!-- CL 131495 -->
+The character mapping functions [`Map`](/pkg/strings/#Map),
+[`Title`](/pkg/strings/#Title),
+[`ToLower`](/pkg/strings/#ToLower),
+[`ToLowerSpecial`](/pkg/strings/#ToLowerSpecial),
+[`ToTitle`](/pkg/strings/#ToTitle),
+[`ToTitleSpecial`](/pkg/strings/#ToTitleSpecial),
+[`ToUpper`](/pkg/strings/#ToUpper), and
+[`ToUpperSpecial`](/pkg/strings/#ToUpperSpecial)
+now always guarantee to return valid UTF-8. In earlier releases, if the input was invalid UTF-8 but no character replacements
+needed to be applied, these routines incorrectly returned the invalid UTF-8 unmodified.
 
 <!-- strings -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 138595 -->
-    64-bit inodes are now supported on FreeBSD 12. Some types have been adjusted accordingly.
+<!-- CL 138595 -->
+64-bit inodes are now supported on FreeBSD 12. Some types have been adjusted accordingly.
 
-    <!-- CL 125456 -->
-    The Unix socket
-    ([`AF_UNIX`](https://blogs.msdn.microsoft.com/commandline/2017/12/19/af_unix-comes-to-windows/))
-    address family is now supported for compatible versions of Windows.
+<!-- CL 125456 -->
+The Unix socket
+([`AF_UNIX`](https://blogs.msdn.microsoft.com/commandline/2017/12/19/af_unix-comes-to-windows/))
+address family is now supported for compatible versions of Windows.
 
-    <!-- CL 147117 -->
-    The new function [`Syscall18`](/pkg/syscall/?GOOS=windows&GOARCH=amd64#Syscall18)
-    has been introduced for Windows, allowing for calls with up to 18 arguments.
+<!-- CL 147117 -->
+The new function [`Syscall18`](/pkg/syscall/?GOOS=windows&GOARCH=amd64#Syscall18)
+has been introduced for Windows, allowing for calls with up to 18 arguments.
 
 <!-- syscall -->
 
-[syscall/js](/pkg/syscall/js/)
+#### [syscall/js](/pkg/syscall/js/)
 
-:   <!-- CL 153559 -->
+<!-- CL 153559 -->
 
-    The `Callback` type and `NewCallback` function have been renamed;
-    they are now called
-    [`Func`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Func) and
-    [`FuncOf`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#FuncOf), respectively.
-    This is a breaking change, but WebAssembly support is still experimental
-    and not yet subject to the
-    [Go 1 compatibility promise](/doc/go1compat). Any code using the
-    old names will need to be updated.
+The `Callback` type and `NewCallback` function have been renamed;
+they are now called
+[`Func`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Func) and
+[`FuncOf`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#FuncOf), respectively.
+This is a breaking change, but WebAssembly support is still experimental
+and not yet subject to the
+[Go 1 compatibility promise](/doc/go1compat). Any code using the
+old names will need to be updated.
 
-    <!-- CL 141644 -->
-    If a type implements the new
-    [`Wrapper`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Wrapper)
-    interface,
-    [`ValueOf`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#ValueOf)
-    will use it to return the JavaScript value for that type.
+<!-- CL 141644 -->
+If a type implements the new
+[`Wrapper`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Wrapper)
+interface,
+[`ValueOf`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#ValueOf)
+will use it to return the JavaScript value for that type.
 
-    <!-- CL 143137 -->
-    The meaning of the zero
-    [`Value`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Value)
-    has changed. It now represents the JavaScript `undefined` value
-    instead of the number zero.
-    This is a breaking change, but WebAssembly support is still experimental
-    and not yet subject to the
-    [Go 1 compatibility promise](/doc/go1compat). Any code relying on
-    the zero [`Value`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Value)
-    to mean the number zero will need to be updated.
+<!-- CL 143137 -->
+The meaning of the zero
+[`Value`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Value)
+has changed. It now represents the JavaScript `undefined` value
+instead of the number zero.
+This is a breaking change, but WebAssembly support is still experimental
+and not yet subject to the
+[Go 1 compatibility promise](/doc/go1compat). Any code relying on
+the zero [`Value`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Value)
+to mean the number zero will need to be updated.
 
-    <!-- CL 144384 -->
-    The new
-    [`Value.Truthy`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Value.Truthy)
-    method reports the
-    [JavaScript "truthiness"](https://developer.mozilla.org/en-US/docs/Glossary/Truthy)
-    of a given value.
+<!-- CL 144384 -->
+The new
+[`Value.Truthy`](/pkg/syscall/js/?GOOS=js&GOARCH=wasm#Value.Truthy)
+method reports the
+[JavaScript "truthiness"](https://developer.mozilla.org/en-US/docs/Glossary/Truthy)
+of a given value.
 
 <!-- syscall/js -->
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- CL 139258 -->
-    The [`-benchtime`](/cmd/go/#hdr-Testing_flags) flag now supports setting an explicit iteration count instead of a time when the value ends with an "`x`". For example, `-benchtime=100x` runs the benchmark 100 times.
+<!-- CL 139258 -->
+The [`-benchtime`](/cmd/go/#hdr-Testing_flags) flag now supports setting an explicit iteration count instead of a time when the value ends with an "`x`". For example, `-benchtime=100x` runs the benchmark 100 times.
 
 <!-- testing -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 142217 -->
-    When executing a template, long context values are no longer truncated in errors.
+<!-- CL 142217 -->
+When executing a template, long context values are no longer truncated in errors.
 
-    `executing "tmpl" at <.very.deep.context.v...>: map has no entry for key "notpresent"`
+`executing "tmpl" at <.very.deep.context.v...>: map has no entry for key "notpresent"`
 
-    is now
+is now
 
-    `executing "tmpl" at <.very.deep.context.value.notpresent>: map has no entry for key "notpresent"`
+`executing "tmpl" at <.very.deep.context.value.notpresent>: map has no entry for key "notpresent"`
 
-    <!-- CL 143097 -->
-    If a user-defined function called by a template panics, the
-    panic is now caught and returned as an error by
-    the `Execute` or `ExecuteTemplate` method.
+<!-- CL 143097 -->
+If a user-defined function called by a template panics, the
+panic is now caught and returned as an error by
+the `Execute` or `ExecuteTemplate` method.
 
 <!-- text/template -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- CL 151299 -->
-    The time zone database in `$GOROOT/lib/time/zoneinfo.zip`
-    has been updated to version 2018i. Note that this ZIP file is
-    only used if a time zone database is not provided by the operating
-    system.
+<!-- CL 151299 -->
+The time zone database in `$GOROOT/lib/time/zoneinfo.zip`
+has been updated to version 2018i. Note that this ZIP file is
+only used if a time zone database is not provided by the operating
+system.
 
 <!-- time -->
 
-[unsafe](/pkg/unsafe/)
+#### [unsafe](/pkg/unsafe/)
 
-:   <!-- CL 146058 -->
-    It is invalid to convert a nil `unsafe.Pointer` to `uintptr` and back with arithmetic.
-    (This was already invalid, but will now cause the compiler to misbehave.)
+<!-- CL 146058 -->
+It is invalid to convert a nil `unsafe.Pointer` to `uintptr` and back with arithmetic.
+(This was already invalid, but will now cause the compiler to misbehave.)
 
 <!-- unsafe -->
diff --git a/_content/doc/go1.13.md b/_content/doc/go1.13.md
index 1d37b78..e9e63bf 100644
--- a/_content/doc/go1.13.md
+++ b/_content/doc/go1.13.md
@@ -478,434 +478,434 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   The new [`ToValidUTF8`](/pkg/bytes/#ToValidUTF8) function returns a
-    copy of a given byte slice with each run of invalid UTF-8 byte sequences replaced by a given slice.
+The new [`ToValidUTF8`](/pkg/bytes/#ToValidUTF8) function returns a
+copy of a given byte slice with each run of invalid UTF-8 byte sequences replaced by a given slice.
 
 <!-- bytes -->
 
-[context](/pkg/context/)
+#### [context](/pkg/context/)
 
-:   <!-- CL 169080 -->
-    The formatting of contexts returned by [`WithValue`](/pkg/context/#WithValue) no longer depends on `fmt` and will not stringify in the same way. Code that depends on the exact previous stringification might be affected.
+<!-- CL 169080 -->
+The formatting of contexts returned by [`WithValue`](/pkg/context/#WithValue) no longer depends on `fmt` and will not stringify in the same way. Code that depends on the exact previous stringification might be affected.
 
 <!-- context -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   Support for SSL version 3.0 (SSLv3) [
-    is now deprecated and will be removed in Go 1.14](/issue/32716). Note that SSLv3 is the
-    [cryptographically broken](https://tools.ietf.org/html/rfc7568)
-    protocol predating TLS.
+Support for SSL version 3.0 (SSLv3) [
+is now deprecated and will be removed in Go 1.14](/issue/32716). Note that SSLv3 is the
+[cryptographically broken](https://tools.ietf.org/html/rfc7568)
+protocol predating TLS.
 
-    SSLv3 was always disabled by default, other than in Go 1.12, when it was
-    mistakenly enabled by default server-side. It is now again disabled by
-    default. (SSLv3 was never supported client-side.)
+SSLv3 was always disabled by default, other than in Go 1.12, when it was
+mistakenly enabled by default server-side. It is now again disabled by
+default. (SSLv3 was never supported client-side.)
 
-    <!-- CL 177698 -->
-    Ed25519 certificates are now supported in TLS versions 1.2 and 1.3.
+<!-- CL 177698 -->
+Ed25519 certificates are now supported in TLS versions 1.2 and 1.3.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 175478 -->
-    Ed25519 keys are now supported in certificates and certificate requests
-    according to [RFC 8410](https://www.rfc-editor.org/info/rfc8410), as well as by the
-    [`ParsePKCS8PrivateKey`](/pkg/crypto/x509/#ParsePKCS8PrivateKey),
-    [`MarshalPKCS8PrivateKey`](/pkg/crypto/x509/#MarshalPKCS8PrivateKey),
-    and [`ParsePKIXPublicKey`](/pkg/crypto/x509/#ParsePKIXPublicKey) functions.
+<!-- CL 175478 -->
+Ed25519 keys are now supported in certificates and certificate requests
+according to [RFC 8410](https://www.rfc-editor.org/info/rfc8410), as well as by the
+[`ParsePKCS8PrivateKey`](/pkg/crypto/x509/#ParsePKCS8PrivateKey),
+[`MarshalPKCS8PrivateKey`](/pkg/crypto/x509/#MarshalPKCS8PrivateKey),
+and [`ParsePKIXPublicKey`](/pkg/crypto/x509/#ParsePKIXPublicKey) functions.
 
-    <!-- CL 169238 -->
-    The paths searched for system roots now include `/etc/ssl/cert.pem`
-    to support the default location in Alpine Linux 3.7+.
+<!-- CL 169238 -->
+The paths searched for system roots now include `/etc/ssl/cert.pem`
+to support the default location in Alpine Linux 3.7+.
 
 <!-- crypto/x509 -->
 
-[database/sql](/pkg/database/sql/)
+#### [database/sql](/pkg/database/sql/)
 
-:   <!-- CL 170699 -->
-    The new [`NullTime`](/pkg/database/sql/#NullTime) type represents a `time.Time` that may be null.
+<!-- CL 170699 -->
+The new [`NullTime`](/pkg/database/sql/#NullTime) type represents a `time.Time` that may be null.
 
-    <!-- CL 174178 -->
-    The new [`NullInt32`](/pkg/database/sql/#NullInt32) type represents an `int32` that may be null.
+<!-- CL 174178 -->
+The new [`NullInt32`](/pkg/database/sql/#NullInt32) type represents an `int32` that may be null.
 
 <!-- database/sql -->
 
-[debug/dwarf](/pkg/debug/dwarf/)
+#### [debug/dwarf](/pkg/debug/dwarf/)
 
-:   <!-- CL 158797 -->
-    The [`Data.Type`](/pkg/debug/dwarf/#Data.Type)
-    method no longer panics if it encounters an unknown DWARF tag in
-    the type graph. Instead, it represents that component of the
-    type with
-    an [`UnsupportedType`](/pkg/debug/dwarf/#UnsupportedType)
-    object.
+<!-- CL 158797 -->
+The [`Data.Type`](/pkg/debug/dwarf/#Data.Type)
+method no longer panics if it encounters an unknown DWARF tag in
+the type graph. Instead, it represents that component of the
+type with
+an [`UnsupportedType`](/pkg/debug/dwarf/#UnsupportedType)
+object.
 
 <!-- debug/dwarf -->
 
-[errors](/pkg/errors/)
+#### [errors](/pkg/errors/)
 
-:   <!-- CL 163558 -->
+<!-- CL 163558 -->
 
-    The new function [`As`](/pkg/errors/#As) finds the first
-    error in a given error’s chain (sequence of wrapped errors)
-    that matches a given target’s type, and if so, sets the target to that error value.
+The new function [`As`](/pkg/errors/#As) finds the first
+error in a given error’s chain (sequence of wrapped errors)
+that matches a given target’s type, and if so, sets the target to that error value.
 
-    The new function [`Is`](/pkg/errors/#Is) reports whether a given error value matches an
-    error in another’s chain.
+The new function [`Is`](/pkg/errors/#Is) reports whether a given error value matches an
+error in another’s chain.
 
-    The new function [`Unwrap`](/pkg/errors/#Unwrap) returns the result of calling
-    `Unwrap` on a given error, if one exists.
+The new function [`Unwrap`](/pkg/errors/#Unwrap) returns the result of calling
+`Unwrap` on a given error, if one exists.
 
 <!-- errors -->
 
-[fmt](/pkg/fmt/)
+#### [fmt](/pkg/fmt/)
 
-:   <!-- CL 160245 -->
+<!-- CL 160245 -->
 
-    The printing verbs `%x` and `%X` now format floating-point and
-    complex numbers in hexadecimal notation, in lower-case and upper-case respectively.
+The printing verbs `%x` and `%X` now format floating-point and
+complex numbers in hexadecimal notation, in lower-case and upper-case respectively.
 
-    <!-- CL 160246 -->
+<!-- CL 160246 -->
 
-    The new printing verb `%O` formats integers in base 8, emitting the `0o` prefix.
+The new printing verb `%O` formats integers in base 8, emitting the `0o` prefix.
 
-    <!-- CL 160247 -->
+<!-- CL 160247 -->
 
-    The scanner now accepts hexadecimal floating-point values, digit-separating underscores
-    and leading `0b` and `0o` prefixes.
-    See the [Changes to the language](#language) for details.
+The scanner now accepts hexadecimal floating-point values, digit-separating underscores
+and leading `0b` and `0o` prefixes.
+See the [Changes to the language](#language) for details.
 
-    <!-- CL 176998 -->
+<!-- CL 176998 -->
 
-    The [`Errorf`](/pkg/fmt/#Errorf) function
-    has a new verb, `%w`, whose operand must be an error.
-    The error returned from `Errorf` will have an
-    `Unwrap` method which returns the operand of `%w`.
+The [`Errorf`](/pkg/fmt/#Errorf) function
+has a new verb, `%w`, whose operand must be an error.
+The error returned from `Errorf` will have an
+`Unwrap` method which returns the operand of `%w`.
 
 <!-- fmt -->
 
-[go/scanner](/pkg/go/scanner/)
+#### [go/scanner](/pkg/go/scanner/)
 
-:   <!-- CL 175218 -->
-    The scanner has been updated to recognize the new Go number literals, specifically
-    binary literals with `0b`/`0B` prefix, octal literals with `0o`/`0O` prefix,
-    and floating-point numbers with hexadecimal mantissa. The imaginary suffix `i` may now be used with any number
-    literal, and underscores may be used as digit separators for grouping.
-    See the [Changes to the language](#language) for details.
+<!-- CL 175218 -->
+The scanner has been updated to recognize the new Go number literals, specifically
+binary literals with `0b`/`0B` prefix, octal literals with `0o`/`0O` prefix,
+and floating-point numbers with hexadecimal mantissa. The imaginary suffix `i` may now be used with any number
+literal, and underscores may be used as digit separators for grouping.
+See the [Changes to the language](#language) for details.
 
 <!-- go/scanner -->
 
-[go/types](/pkg/go/types/)
+#### [go/types](/pkg/go/types/)
 
-:   The type-checker has been updated to follow the new rules for integer shifts.
-    See the [Changes to the language](#language) for details.
+The type-checker has been updated to follow the new rules for integer shifts.
+See the [Changes to the language](#language) for details.
 
 <!-- go/types -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- CL 175218 -->
-    When using a `<script>` tag with "module" set as the
-    type attribute, code will now be interpreted as [JavaScript module script](https://html.spec.whatwg.org/multipage/scripting.html#the-script-element:module-script-2).
+<!-- CL 175218 -->
+When using a `<script>` tag with "module" set as the
+type attribute, code will now be interpreted as [JavaScript module script](https://html.spec.whatwg.org/multipage/scripting.html#the-script-element:module-script-2).
 
 <!-- html/template -->
 
-[log](/pkg/log/)
+#### [log](/pkg/log/)
 
-:   <!-- CL 168920 -->
-    The new [`Writer`](/pkg/log/#Writer) function returns the output destination for the standard logger.
+<!-- CL 168920 -->
+The new [`Writer`](/pkg/log/#Writer) function returns the output destination for the standard logger.
 
 <!-- log -->
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   <!-- CL 160682 -->
-    The new [`Rat.SetUint64`](/pkg/math/big/#Rat.SetUint64) method sets the `Rat` to a `uint64` value.
+<!-- CL 160682 -->
+The new [`Rat.SetUint64`](/pkg/math/big/#Rat.SetUint64) method sets the `Rat` to a `uint64` value.
 
-    <!-- CL 166157 -->
-    For [`Float.Parse`](/pkg/math/big/#Float.Parse), if base is 0, underscores
-    may be used between digits for readability.
-    See the [Changes to the language](#language) for details.
+<!-- CL 166157 -->
+For [`Float.Parse`](/pkg/math/big/#Float.Parse), if base is 0, underscores
+may be used between digits for readability.
+See the [Changes to the language](#language) for details.
 
-    <!-- CL 166157 -->
-    For [`Int.SetString`](/pkg/math/big/#Int.SetString), if base is 0, underscores
-    may be used between digits for readability.
-    See the [Changes to the language](#language) for details.
+<!-- CL 166157 -->
+For [`Int.SetString`](/pkg/math/big/#Int.SetString), if base is 0, underscores
+may be used between digits for readability.
+See the [Changes to the language](#language) for details.
 
-    <!-- CL 168237 -->
-    [`Rat.SetString`](/pkg/math/big/#Rat.SetString) now accepts non-decimal floating point representations.
+<!-- CL 168237 -->
+[`Rat.SetString`](/pkg/math/big/#Rat.SetString) now accepts non-decimal floating point representations.
 
 <!-- math/big -->
 
-[math/bits](/pkg/math/bits/)
+#### [math/bits](/pkg/math/bits/)
 
-:   <!-- CL 178177 -->
-    The execution time of [`Add`](/pkg/math/bits/#Add),
-    [`Sub`](/pkg/math/bits/#Sub),
-    [`Mul`](/pkg/math/bits/#Mul),
-    [`RotateLeft`](/pkg/math/bits/#RotateLeft), and
-    [`ReverseBytes`](/pkg/math/bits/#ReverseBytes) is now
-    guaranteed to be independent of the inputs.
+<!-- CL 178177 -->
+The execution time of [`Add`](/pkg/math/bits/#Add),
+[`Sub`](/pkg/math/bits/#Sub),
+[`Mul`](/pkg/math/bits/#Mul),
+[`RotateLeft`](/pkg/math/bits/#RotateLeft), and
+[`ReverseBytes`](/pkg/math/bits/#ReverseBytes) is now
+guaranteed to be independent of the inputs.
 
 <!-- math/bits -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 156366 -->
-    On Unix systems where `use-vc` is set in `resolv.conf`, TCP is used for DNS resolution.
+<!-- CL 156366 -->
+On Unix systems where `use-vc` is set in `resolv.conf`, TCP is used for DNS resolution.
 
-    <!-- CL 170678 -->
-    The new field [`ListenConfig.KeepAlive`](/pkg/net/#ListenConfig.KeepAlive)
-    specifies the keep-alive period for network connections accepted by the listener.
-    If this field is 0 (the default) TCP keep-alives will be enabled.
-    To disable them, set it to a negative value.
+<!-- CL 170678 -->
+The new field [`ListenConfig.KeepAlive`](/pkg/net/#ListenConfig.KeepAlive)
+specifies the keep-alive period for network connections accepted by the listener.
+If this field is 0 (the default) TCP keep-alives will be enabled.
+To disable them, set it to a negative value.
 
-    Note that the error returned from I/O on a connection that was
-    closed by a keep-alive timeout will have a
-    `Timeout` method that returns `true` if called.
-    This can make a keep-alive error difficult to distinguish from
-    an error returned due to a missed deadline as set by the
-    [`SetDeadline`](/pkg/net/#Conn)
-    method and similar methods.
-    Code that uses deadlines and checks for them with
-    the `Timeout` method or
-    with [`os.IsTimeout`](/pkg/os/#IsTimeout)
-    may want to disable keep-alives, or
-    use `errors.Is(syscall.ETIMEDOUT)` (on Unix systems)
-    which will return true for a keep-alive timeout and false for a
-    deadline timeout.
+Note that the error returned from I/O on a connection that was
+closed by a keep-alive timeout will have a
+`Timeout` method that returns `true` if called.
+This can make a keep-alive error difficult to distinguish from
+an error returned due to a missed deadline as set by the
+[`SetDeadline`](/pkg/net/#Conn)
+method and similar methods.
+Code that uses deadlines and checks for them with
+the `Timeout` method or
+with [`os.IsTimeout`](/pkg/os/#IsTimeout)
+may want to disable keep-alives, or
+use `errors.Is(syscall.ETIMEDOUT)` (on Unix systems)
+which will return true for a keep-alive timeout and false for a
+deadline timeout.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 76410 -->
-    The new fields [`Transport.WriteBufferSize`](/pkg/net/http/#Transport.WriteBufferSize)
-    and [`Transport.ReadBufferSize`](/pkg/net/http/#Transport.ReadBufferSize)
-    allow one to specify the sizes of the write and read buffers for a [`Transport`](/pkg/net/http/#Transport).
-    If either field is zero, a default size of 4KB is used.
+<!-- CL 76410 -->
+The new fields [`Transport.WriteBufferSize`](/pkg/net/http/#Transport.WriteBufferSize)
+and [`Transport.ReadBufferSize`](/pkg/net/http/#Transport.ReadBufferSize)
+allow one to specify the sizes of the write and read buffers for a [`Transport`](/pkg/net/http/#Transport).
+If either field is zero, a default size of 4KB is used.
 
-    <!-- CL 130256 -->
-    The new field [`Transport.ForceAttemptHTTP2`](/pkg/net/http/#Transport.ForceAttemptHTTP2)
-    controls whether HTTP/2 is enabled when a non-zero `Dial`, `DialTLS`, or `DialContext`
-    func or `TLSClientConfig` is provided.
+<!-- CL 130256 -->
+The new field [`Transport.ForceAttemptHTTP2`](/pkg/net/http/#Transport.ForceAttemptHTTP2)
+controls whether HTTP/2 is enabled when a non-zero `Dial`, `DialTLS`, or `DialContext`
+func or `TLSClientConfig` is provided.
 
-    <!-- CL 140357 -->
-    [`Transport.MaxConnsPerHost`](/pkg/net/http/#Transport.MaxConnsPerHost) now works
-    properly with HTTP/2.
+<!-- CL 140357 -->
+[`Transport.MaxConnsPerHost`](/pkg/net/http/#Transport.MaxConnsPerHost) now works
+properly with HTTP/2.
 
-    <!-- CL 154383 -->
-    [`TimeoutHandler`](/pkg/net/http/#TimeoutHandler)'s
-    [`ResponseWriter`](/pkg/net/http/#ResponseWriter) now implements the
-    [`Pusher`](/pkg/net/http/#Pusher) interface.
+<!-- CL 154383 -->
+[`TimeoutHandler`](/pkg/net/http/#TimeoutHandler)'s
+[`ResponseWriter`](/pkg/net/http/#ResponseWriter) now implements the
+[`Pusher`](/pkg/net/http/#Pusher) interface.
 
-    <!-- CL 157339 -->
-    The `StatusCode` `103` `"Early Hints"` has been added.
+<!-- CL 157339 -->
+The `StatusCode` `103` `"Early Hints"` has been added.
 
-    <!-- CL 163599 -->
-    [`Transport`](/pkg/net/http/#Transport) now uses the [`Request.Body`](/pkg/net/http/#Request.Body)'s
-    [`io.ReaderFrom`](/pkg/io/#ReaderFrom) implementation if available, to optimize writing the body.
+<!-- CL 163599 -->
+[`Transport`](/pkg/net/http/#Transport) now uses the [`Request.Body`](/pkg/net/http/#Request.Body)'s
+[`io.ReaderFrom`](/pkg/io/#ReaderFrom) implementation if available, to optimize writing the body.
 
-    <!-- CL 167017 -->
-    On encountering unsupported transfer-encodings, [`http.Server`](/pkg/net/http/#Server) now
-    returns a "501 Unimplemented" status as mandated by the HTTP specification [RFC 7230 Section 3.3.1](https://tools.ietf.org/html/rfc7230#section-3.3.1).
+<!-- CL 167017 -->
+On encountering unsupported transfer-encodings, [`http.Server`](/pkg/net/http/#Server) now
+returns a "501 Unimplemented" status as mandated by the HTTP specification [RFC 7230 Section 3.3.1](https://tools.ietf.org/html/rfc7230#section-3.3.1).
 
-    <!-- CL 167681 -->
-    The new [`Server`](/pkg/net/http/#Server) fields
-    [`BaseContext`](/pkg/net/http/#Server.BaseContext) and
-    [`ConnContext`](/pkg/net/http/#Server.ConnContext)
-    allow finer control over the [`Context`](/pkg/context/#Context) values provided to requests and connections.
+<!-- CL 167681 -->
+The new [`Server`](/pkg/net/http/#Server) fields
+[`BaseContext`](/pkg/net/http/#Server.BaseContext) and
+[`ConnContext`](/pkg/net/http/#Server.ConnContext)
+allow finer control over the [`Context`](/pkg/context/#Context) values provided to requests and connections.
 
-    <!-- CL 167781 -->
-    [`http.DetectContentType`](/pkg/net/http/#DetectContentType) now correctly detects RAR signatures, and can now also detect RAR v5 signatures.
+<!-- CL 167781 -->
+[`http.DetectContentType`](/pkg/net/http/#DetectContentType) now correctly detects RAR signatures, and can now also detect RAR v5 signatures.
 
-    <!-- CL 173658 -->
-    The new [`Header`](/pkg/net/http/#Header) method
-    [`Clone`](/pkg/net/http/#Header.Clone) returns a copy of the receiver.
+<!-- CL 173658 -->
+The new [`Header`](/pkg/net/http/#Header) method
+[`Clone`](/pkg/net/http/#Header.Clone) returns a copy of the receiver.
 
-    <!-- CL 174324 -->
-    A new function [`NewRequestWithContext`](/pkg/net/http/#NewRequestWithContext) has been added and it
-    accepts a [`Context`](/pkg/context/#Context) that controls the entire lifetime of
-    the created outgoing [`Request`](/pkg/net/http/#Request), suitable for use with
-    [`Client.Do`](/pkg/net/http/#Client.Do) and [`Transport.RoundTrip`](/pkg/net/http/#Transport.RoundTrip).
+<!-- CL 174324 -->
+A new function [`NewRequestWithContext`](/pkg/net/http/#NewRequestWithContext) has been added and it
+accepts a [`Context`](/pkg/context/#Context) that controls the entire lifetime of
+the created outgoing [`Request`](/pkg/net/http/#Request), suitable for use with
+[`Client.Do`](/pkg/net/http/#Client.Do) and [`Transport.RoundTrip`](/pkg/net/http/#Transport.RoundTrip).
 
-    <!-- CL 179457 -->
-    The [`Transport`](/pkg/net/http/#Transport) no longer logs errors when servers
-    gracefully shut down idle connections using a `"408 Request Timeout"` response.
+<!-- CL 179457 -->
+The [`Transport`](/pkg/net/http/#Transport) no longer logs errors when servers
+gracefully shut down idle connections using a `"408 Request Timeout"` response.
 
 <!-- net/http -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL 160877 -->
-    The new [`UserConfigDir`](/pkg/os/#UserConfigDir) function
-    returns the default directory to use for user-specific configuration data.
+<!-- CL 160877 -->
+The new [`UserConfigDir`](/pkg/os/#UserConfigDir) function
+returns the default directory to use for user-specific configuration data.
 
-    <!-- CL 166578 -->
-    If a [`File`](/pkg/os/#File) is opened using the O\_APPEND flag, its
-    [`WriteAt`](/pkg/os/#File.WriteAt) method will always return an error.
+<!-- CL 166578 -->
+If a [`File`](/pkg/os/#File) is opened using the O\_APPEND flag, its
+[`WriteAt`](/pkg/os/#File.WriteAt) method will always return an error.
 
 <!-- os -->
 
-[os/exec](/pkg/os/exec/)
+#### [os/exec](/pkg/os/exec/)
 
-:   <!-- CL 174318 -->
-    On Windows, the environment for a [`Cmd`](/pkg/os/exec/#Cmd) always inherits the
-    `%SYSTEMROOT%` value of the parent process unless the
-    [`Cmd.Env`](/pkg/os/exec/#Cmd.Env) field includes an explicit value for it.
+<!-- CL 174318 -->
+On Windows, the environment for a [`Cmd`](/pkg/os/exec/#Cmd) always inherits the
+`%SYSTEMROOT%` value of the parent process unless the
+[`Cmd.Env`](/pkg/os/exec/#Cmd.Env) field includes an explicit value for it.
 
 <!-- os/exec -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 171337 -->
-    The new [`Value.IsZero`](/pkg/reflect/#Value.IsZero) method reports whether a `Value` is the zero value for its type.
+<!-- CL 171337 -->
+The new [`Value.IsZero`](/pkg/reflect/#Value.IsZero) method reports whether a `Value` is the zero value for its type.
 
-    <!-- CL 174531 -->
-    The [`MakeFunc`](/pkg/reflect/#MakeFunc) function now allows assignment conversions on returned values, instead of requiring exact type match. This is particularly useful when the type being returned is an interface type, but the value actually returned is a concrete value implementing that type.
+<!-- CL 174531 -->
+The [`MakeFunc`](/pkg/reflect/#MakeFunc) function now allows assignment conversions on returned values, instead of requiring exact type match. This is particularly useful when the type being returned is an interface type, but the value actually returned is a concrete value implementing that type.
 
 <!-- reflect -->
 
-[runtime](/pkg/runtime/)
+#### [runtime](/pkg/runtime/)
 
-:   <!-- CL 167780 -->
-    Tracebacks, [`runtime.Caller`](/pkg/runtime/#Caller),
-    and [`runtime.Callers`](/pkg/runtime/#Callers) now refer to the function that
-    initializes the global variables of `PKG`
-    as `PKG.init` instead of `PKG.init.ializers`.
+<!-- CL 167780 -->
+Tracebacks, [`runtime.Caller`](/pkg/runtime/#Caller),
+and [`runtime.Callers`](/pkg/runtime/#Callers) now refer to the function that
+initializes the global variables of `PKG`
+as `PKG.init` instead of `PKG.init.ializers`.
 
 <!-- runtime -->
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   <!-- CL 160243 -->
-    For [`strconv.ParseFloat`](/pkg/strconv/#ParseFloat),
-    [`strconv.ParseInt`](/pkg/strconv/#ParseInt)
-    and [`strconv.ParseUint`](/pkg/strconv/#ParseUint),
-    if base is 0, underscores may be used between digits for readability.
-    See the [Changes to the language](#language) for details.
+<!-- CL 160243 -->
+For [`strconv.ParseFloat`](/pkg/strconv/#ParseFloat),
+[`strconv.ParseInt`](/pkg/strconv/#ParseInt)
+and [`strconv.ParseUint`](/pkg/strconv/#ParseUint),
+if base is 0, underscores may be used between digits for readability.
+See the [Changes to the language](#language) for details.
 
 <!-- strconv -->
 
-[strings](/pkg/strings/)
+#### [strings](/pkg/strings/)
 
-:   <!-- CL 142003 -->
-    The new [`ToValidUTF8`](/pkg/strings/#ToValidUTF8) function returns a
-    copy of a given string with each run of invalid UTF-8 byte sequences replaced by a given string.
+<!-- CL 142003 -->
+The new [`ToValidUTF8`](/pkg/strings/#ToValidUTF8) function returns a
+copy of a given string with each run of invalid UTF-8 byte sequences replaced by a given string.
 
 <!-- strings -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- CL 148958, CL 148959, CL 152697, CL 152698 -->
-    The fast paths of [`Mutex.Lock`](/pkg/sync/#Mutex.Lock), [`Mutex.Unlock`](/pkg/sync/#Mutex.Unlock),
-    [`RWMutex.Lock`](/pkg/sync/#RWMutex.Lock), [`RWMutex.RUnlock`](/pkg/sync/#Mutex.RUnlock), and
-    [`Once.Do`](/pkg/sync/#Once.Do) are now inlined in their callers.
-    For the uncontended cases on amd64, these changes make [`Once.Do`](/pkg/sync/#Once.Do) twice as fast, and the
-    [`Mutex`](/pkg/sync/#Mutex)/[`RWMutex`](/pkg/sync/#RWMutex) methods up to 10% faster.
+<!-- CL 148958, CL 148959, CL 152697, CL 152698 -->
+The fast paths of [`Mutex.Lock`](/pkg/sync/#Mutex.Lock), [`Mutex.Unlock`](/pkg/sync/#Mutex.Unlock),
+[`RWMutex.Lock`](/pkg/sync/#RWMutex.Lock), [`RWMutex.RUnlock`](/pkg/sync/#Mutex.RUnlock), and
+[`Once.Do`](/pkg/sync/#Once.Do) are now inlined in their callers.
+For the uncontended cases on amd64, these changes make [`Once.Do`](/pkg/sync/#Once.Do) twice as fast, and the
+[`Mutex`](/pkg/sync/#Mutex)/[`RWMutex`](/pkg/sync/#RWMutex) methods up to 10% faster.
 
-    <!-- CL 166960 -->
-    Large [`Pool`](/pkg/sync/#Pool) no longer increase stop-the-world pause times.
+<!-- CL 166960 -->
+Large [`Pool`](/pkg/sync/#Pool) no longer increase stop-the-world pause times.
 
-    <!-- CL 166961 -->
-    `Pool` no longer needs to be completely repopulated after every GC. It now retains some objects across GCs,
-    as opposed to releasing all objects, reducing load spikes for heavy users of `Pool`.
+<!-- CL 166961 -->
+`Pool` no longer needs to be completely repopulated after every GC. It now retains some objects across GCs,
+as opposed to releasing all objects, reducing load spikes for heavy users of `Pool`.
 
 <!-- sync -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 168479 -->
-    Uses of `_getdirentries64` have been removed from
-    Darwin builds, to allow Go binaries to be uploaded to the macOS
-    App Store.
+<!-- CL 168479 -->
+Uses of `_getdirentries64` have been removed from
+Darwin builds, to allow Go binaries to be uploaded to the macOS
+App Store.
 
-    <!-- CL 174197 -->
-    The new `ProcessAttributes` and `ThreadAttributes` fields in
-    [`SysProcAttr`](/pkg/syscall/?GOOS=windows#SysProcAttr) have been introduced for Windows,
-    exposing security settings when creating new processes.
+<!-- CL 174197 -->
+The new `ProcessAttributes` and `ThreadAttributes` fields in
+[`SysProcAttr`](/pkg/syscall/?GOOS=windows#SysProcAttr) have been introduced for Windows,
+exposing security settings when creating new processes.
 
-    <!-- CL 174320 -->
-    `EINVAL` is no longer returned in zero
-    [`Chmod`](/pkg/syscall/?GOOS=windows#Chmod) mode on Windows.
+<!-- CL 174320 -->
+`EINVAL` is no longer returned in zero
+[`Chmod`](/pkg/syscall/?GOOS=windows#Chmod) mode on Windows.
 
-    <!-- CL 191337 -->
-    Values of type `Errno` can be tested against error values in
-    the `os` package,
-    like [`ErrExist`](/pkg/os/#ErrExist), using
-    [`errors.Is`](/pkg/errors/#Is).
+<!-- CL 191337 -->
+Values of type `Errno` can be tested against error values in
+the `os` package,
+like [`ErrExist`](/pkg/os/#ErrExist), using
+[`errors.Is`](/pkg/errors/#Is).
 
 <!-- syscall -->
 
-[syscall/js](/pkg/syscall/js/)
+#### [syscall/js](/pkg/syscall/js/)
 
-:   <!-- CL 177537 -->
-    `TypedArrayOf` has been replaced by
-    [`CopyBytesToGo`](/pkg/syscall/js/#CopyBytesToGo) and
-    [`CopyBytesToJS`](/pkg/syscall/js/#CopyBytesToJS) for copying bytes
-    between a byte slice and a `Uint8Array`.
+<!-- CL 177537 -->
+`TypedArrayOf` has been replaced by
+[`CopyBytesToGo`](/pkg/syscall/js/#CopyBytesToGo) and
+[`CopyBytesToJS`](/pkg/syscall/js/#CopyBytesToJS) for copying bytes
+between a byte slice and a `Uint8Array`.
 
 <!-- syscall/js -->
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- CL 112155 -->
-    When running benchmarks, [`B.N`](/pkg/testing/#B.N) is no longer rounded.
+<!-- CL 112155 -->
+When running benchmarks, [`B.N`](/pkg/testing/#B.N) is no longer rounded.
 
-    <!-- CL 166717 -->
-    The new method [`B.ReportMetric`](/pkg/testing/#B.ReportMetric) lets users report
-    custom benchmark metrics and override built-in metrics.
+<!-- CL 166717 -->
+The new method [`B.ReportMetric`](/pkg/testing/#B.ReportMetric) lets users report
+custom benchmark metrics and override built-in metrics.
 
-    <!-- CL 173722 -->
-    Testing flags are now registered in the new [`Init`](/pkg/testing/#Init) function,
-    which is invoked by the generated `main` function for the test.
-    As a result, testing flags are now only registered when running a test binary,
-    and packages that call `flag.Parse` during package initialization may cause tests to fail.
+<!-- CL 173722 -->
+Testing flags are now registered in the new [`Init`](/pkg/testing/#Init) function,
+which is invoked by the generated `main` function for the test.
+As a result, testing flags are now only registered when running a test binary,
+and packages that call `flag.Parse` during package initialization may cause tests to fail.
 
 <!-- testing -->
 
-[text/scanner](/pkg/text/scanner/)
+#### [text/scanner](/pkg/text/scanner/)
 
-:   <!-- CL 183077 -->
-    The scanner has been updated to recognize the new Go number literals, specifically
-    binary literals with `0b`/`0B` prefix, octal literals with `0o`/`0O` prefix,
-    and floating-point numbers with hexadecimal mantissa.
-    Also, the new [`AllowDigitSeparators`](/pkg/text/scanner/#AllowDigitSeparators)
-    mode allows number literals to contain underscores as digit separators (off by default for backwards-compatibility).
-    See the [Changes to the language](#language) for details.
+<!-- CL 183077 -->
+The scanner has been updated to recognize the new Go number literals, specifically
+binary literals with `0b`/`0B` prefix, octal literals with `0o`/`0O` prefix,
+and floating-point numbers with hexadecimal mantissa.
+Also, the new [`AllowDigitSeparators`](/pkg/text/scanner/#AllowDigitSeparators)
+mode allows number literals to contain underscores as digit separators (off by default for backwards-compatibility).
+See the [Changes to the language](#language) for details.
 
 <!-- text/scanner -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 161762 -->
-    The new [slice function](/pkg/text/template/#hdr-Functions)
-    returns the result of slicing its first argument by the following arguments.
+<!-- CL 161762 -->
+The new [slice function](/pkg/text/template/#hdr-Functions)
+returns the result of slicing its first argument by the following arguments.
 
 <!-- text/template -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- CL 122876 -->
-    Day-of-year is now supported by [`Format`](/pkg/time/#Time.Format)
-    and [`Parse`](/pkg/time/#Parse).
+<!-- CL 122876 -->
+Day-of-year is now supported by [`Format`](/pkg/time/#Time.Format)
+and [`Parse`](/pkg/time/#Parse).
 
-    <!-- CL 167387 -->
-    The new [`Duration`](/pkg/time/#Duration) methods
-    [`Microseconds`](/pkg/time/#Duration.Microseconds) and
-    [`Milliseconds`](/pkg/time/#Duration.Milliseconds) return
-    the duration as an integer count of their respectively named units.
+<!-- CL 167387 -->
+The new [`Duration`](/pkg/time/#Duration) methods
+[`Microseconds`](/pkg/time/#Duration.Microseconds) and
+[`Milliseconds`](/pkg/time/#Duration.Milliseconds) return
+the duration as an integer count of their respectively named units.
 
 <!-- time -->
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   The [`unicode`](/pkg/unicode/) package and associated
-    support throughout the system has been upgraded from Unicode 10.0 to
-    [Unicode 11.0](https://www.unicode.org/versions/Unicode11.0.0/),
-    which adds 684 new characters, including seven new scripts, and 66 new emoji.
+The [`unicode`](/pkg/unicode/) package and associated
+support throughout the system has been upgraded from Unicode 10.0 to
+[Unicode 11.0](https://www.unicode.org/versions/Unicode11.0.0/),
+which adds 684 new characters, including seven new scripts, and 66 new emoji.
 
 <!-- unicode -->
diff --git a/_content/doc/go1.14.md b/_content/doc/go1.14.md
index 1b2e154..0244f4c 100644
--- a/_content/doc/go1.14.md
+++ b/_content/doc/go1.14.md
@@ -375,433 +375,433 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 191976 -->
-    Support for SSL version 3.0 (SSLv3) has been removed. Note that SSLv3 is the
-    [cryptographically broken](https://tools.ietf.org/html/rfc7568)
-    protocol predating TLS.
+<!-- CL 191976 -->
+Support for SSL version 3.0 (SSLv3) has been removed. Note that SSLv3 is the
+[cryptographically broken](https://tools.ietf.org/html/rfc7568)
+protocol predating TLS.
 
-    <!-- CL 191999 -->
-    TLS 1.3 can't be disabled via the `GODEBUG` environment
-    variable anymore. Use the
-    [`Config.MaxVersion`](/pkg/crypto/tls/#Config.MaxVersion)
-    field to configure TLS versions.
+<!-- CL 191999 -->
+TLS 1.3 can't be disabled via the `GODEBUG` environment
+variable anymore. Use the
+[`Config.MaxVersion`](/pkg/crypto/tls/#Config.MaxVersion)
+field to configure TLS versions.
 
-    <!-- CL 205059 -->
-    When multiple certificate chains are provided through the
-    [`Config.Certificates`](/pkg/crypto/tls/#Config.Certificates)
-    field, the first one compatible with the peer is now automatically
-    selected. This allows for example providing an ECDSA and an RSA
-    certificate, and letting the package automatically select the best one.
-    Note that the performance of this selection is going to be poor unless the
-    [`Certificate.Leaf`](/pkg/crypto/tls/#Certificate.Leaf)
-    field is set. The
-    [`Config.NameToCertificate`](/pkg/crypto/tls/#Config.NameToCertificate)
-    field, which only supports associating a single certificate with
-    a give name, is now deprecated and should be left as `nil`.
-    Similarly the
-    [`Config.BuildNameToCertificate`](/pkg/crypto/tls/#Config.BuildNameToCertificate)
-    method, which builds the `NameToCertificate` field
-    from the leaf certificates, is now deprecated and should not be
-    called.
+<!-- CL 205059 -->
+When multiple certificate chains are provided through the
+[`Config.Certificates`](/pkg/crypto/tls/#Config.Certificates)
+field, the first one compatible with the peer is now automatically
+selected. This allows for example providing an ECDSA and an RSA
+certificate, and letting the package automatically select the best one.
+Note that the performance of this selection is going to be poor unless the
+[`Certificate.Leaf`](/pkg/crypto/tls/#Certificate.Leaf)
+field is set. The
+[`Config.NameToCertificate`](/pkg/crypto/tls/#Config.NameToCertificate)
+field, which only supports associating a single certificate with
+a give name, is now deprecated and should be left as `nil`.
+Similarly the
+[`Config.BuildNameToCertificate`](/pkg/crypto/tls/#Config.BuildNameToCertificate)
+method, which builds the `NameToCertificate` field
+from the leaf certificates, is now deprecated and should not be
+called.
 
-    <!-- CL 175517 -->
-    The new [`CipherSuites`](/pkg/crypto/tls/#CipherSuites)
-    and [`InsecureCipherSuites`](/pkg/crypto/tls/#InsecureCipherSuites)
-    functions return a list of currently implemented cipher suites.
-    The new [`CipherSuiteName`](/pkg/crypto/tls/#CipherSuiteName)
-    function returns a name for a cipher suite ID.
+<!-- CL 175517 -->
+The new [`CipherSuites`](/pkg/crypto/tls/#CipherSuites)
+and [`InsecureCipherSuites`](/pkg/crypto/tls/#InsecureCipherSuites)
+functions return a list of currently implemented cipher suites.
+The new [`CipherSuiteName`](/pkg/crypto/tls/#CipherSuiteName)
+function returns a name for a cipher suite ID.
 
-    <!-- CL 205058, 205057 -->
-    The new [
-    `(*ClientHelloInfo).SupportsCertificate`](/pkg/crypto/tls/#ClientHelloInfo.SupportsCertificate) and
-    [
-    `(*CertificateRequestInfo).SupportsCertificate`](/pkg/crypto/tls/#CertificateRequestInfo.SupportsCertificate)
-    methods expose whether a peer supports a certain certificate.
+<!-- CL 205058, 205057 -->
+The new [
+`(*ClientHelloInfo).SupportsCertificate`](/pkg/crypto/tls/#ClientHelloInfo.SupportsCertificate) and
+[
+`(*CertificateRequestInfo).SupportsCertificate`](/pkg/crypto/tls/#CertificateRequestInfo.SupportsCertificate)
+methods expose whether a peer supports a certain certificate.
 
-    <!-- CL 174329 -->
-    The `tls` package no longer supports the legacy Next Protocol
-    Negotiation (NPN) extension and now only supports ALPN. In previous
-    releases it supported both. There are no API changes and applications
-    should function identically as before. Most other clients and servers have
-    already removed NPN support in favor of the standardized ALPN.
+<!-- CL 174329 -->
+The `tls` package no longer supports the legacy Next Protocol
+Negotiation (NPN) extension and now only supports ALPN. In previous
+releases it supported both. There are no API changes and applications
+should function identically as before. Most other clients and servers have
+already removed NPN support in favor of the standardized ALPN.
 
-    <!-- CL 205063, 205062 -->
-    RSA-PSS signatures are now used when supported in TLS 1.2 handshakes. This
-    won't affect most applications, but custom
-    [`Certificate.PrivateKey`](/pkg/crypto/tls/#Certificate.PrivateKey)
-    implementations that don't support RSA-PSS signatures will need to use the new
-    [
-    `Certificate.SupportedSignatureAlgorithms`](/pkg/crypto/tls/#Certificate.SupportedSignatureAlgorithms)
-    field to disable them.
+<!-- CL 205063, 205062 -->
+RSA-PSS signatures are now used when supported in TLS 1.2 handshakes. This
+won't affect most applications, but custom
+[`Certificate.PrivateKey`](/pkg/crypto/tls/#Certificate.PrivateKey)
+implementations that don't support RSA-PSS signatures will need to use the new
+[
+`Certificate.SupportedSignatureAlgorithms`](/pkg/crypto/tls/#Certificate.SupportedSignatureAlgorithms)
+field to disable them.
 
-    <!-- CL 205059, 205059 -->
-    [`Config.Certificates`](/pkg/crypto/tls/#Config.Certificates) and
-    [`Config.GetCertificate`](/pkg/crypto/tls/#Config.GetCertificate)
-    can now both be nil if
-    [`Config.GetConfigForClient`](/pkg/crypto/tls/#Config.GetConfigForClient)
-    is set. If the callbacks return neither certificates nor an error, the
-    `unrecognized_name` is now sent.
+<!-- CL 205059, 205059 -->
+[`Config.Certificates`](/pkg/crypto/tls/#Config.Certificates) and
+[`Config.GetCertificate`](/pkg/crypto/tls/#Config.GetCertificate)
+can now both be nil if
+[`Config.GetConfigForClient`](/pkg/crypto/tls/#Config.GetConfigForClient)
+is set. If the callbacks return neither certificates nor an error, the
+`unrecognized_name` is now sent.
 
-    <!-- CL 205058 -->
-    The new [`CertificateRequestInfo.Version`](/pkg/crypto/tls/#CertificateRequestInfo.Version)
-    field provides the TLS version to client certificates callbacks.
+<!-- CL 205058 -->
+The new [`CertificateRequestInfo.Version`](/pkg/crypto/tls/#CertificateRequestInfo.Version)
+field provides the TLS version to client certificates callbacks.
 
-    <!-- CL 205068 -->
-    The new `TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256` and
-    `TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256` constants use
-    the final names for the cipher suites previously referred to as
-    `TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305` and
-    `TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305`.
+<!-- CL 205068 -->
+The new `TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256` and
+`TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256` constants use
+the final names for the cipher suites previously referred to as
+`TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305` and
+`TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305`.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 204046 -->
-    [`Certificate.CreateCRL`](/pkg/crypto/x509/#Certificate.CreateCRL)
-    now supports Ed25519 issuers.
+<!-- CL 204046 -->
+[`Certificate.CreateCRL`](/pkg/crypto/x509/#Certificate.CreateCRL)
+now supports Ed25519 issuers.
 
-[debug/dwarf](/pkg/debug/dwarf/)
+#### [debug/dwarf](/pkg/debug/dwarf/)
 
-:   <!-- CL 175138 -->
-    The `debug/dwarf` package now supports reading DWARF
-    version 5.
+<!-- CL 175138 -->
+The `debug/dwarf` package now supports reading DWARF
+version 5.
 
-    The new
-    method [`(*Data).AddSection`](/pkg/debug/dwarf/#Data.AddSection)
-    supports adding arbitrary new DWARF sections from the input file
-    to the DWARF `Data`.
+The new
+method [`(*Data).AddSection`](/pkg/debug/dwarf/#Data.AddSection)
+supports adding arbitrary new DWARF sections from the input file
+to the DWARF `Data`.
 
-    <!-- CL 192698 -->
-    The new
-    method [`(*Reader).ByteOrder`](/pkg/debug/dwarf/#Reader.ByteOrder)
-    returns the byte order of the current compilation unit.
-    This may be used to interpret attributes that are encoded in the
-    native ordering, such as location descriptions.
+<!-- CL 192698 -->
+The new
+method [`(*Reader).ByteOrder`](/pkg/debug/dwarf/#Reader.ByteOrder)
+returns the byte order of the current compilation unit.
+This may be used to interpret attributes that are encoded in the
+native ordering, such as location descriptions.
 
-    <!-- CL 192699 -->
-    The new
-    method [`(*LineReader).Files`](/pkg/debug/dwarf/#LineReader.Files)
-    returns the file name table from a line reader.
-    This may be used to interpret the value of DWARF attributes such
-    as `AttrDeclFile`.
+<!-- CL 192699 -->
+The new
+method [`(*LineReader).Files`](/pkg/debug/dwarf/#LineReader.Files)
+returns the file name table from a line reader.
+This may be used to interpret the value of DWARF attributes such
+as `AttrDeclFile`.
 
 <!-- debug/dwarf -->
 
-[encoding/asn1](/pkg/encoding/asn1/)
+#### [encoding/asn1](/pkg/encoding/asn1/)
 
-:   <!-- CL 126624 -->
-    [`Unmarshal`](/pkg/encoding/asn1/#Unmarshal)
-    now supports ASN.1 string type BMPString, represented by the new
-    [`TagBMPString`](/pkg/encoding/asn1/#TagBMPString)
-    constant.
+<!-- CL 126624 -->
+[`Unmarshal`](/pkg/encoding/asn1/#Unmarshal)
+now supports ASN.1 string type BMPString, represented by the new
+[`TagBMPString`](/pkg/encoding/asn1/#TagBMPString)
+constant.
 
 <!-- encoding/asn1 -->
 
-[encoding/json](/pkg/encoding/json/)
+#### [encoding/json](/pkg/encoding/json/)
 
-:   <!-- CL 200677 -->
-    The [`Decoder`](/pkg/encoding/json/#Decoder)
-    type supports a new
-    method [`InputOffset`](/pkg/encoding/json/#Decoder.InputOffset)
-    that returns the input stream byte offset of the current
-    decoder position.
+<!-- CL 200677 -->
+The [`Decoder`](/pkg/encoding/json/#Decoder)
+type supports a new
+method [`InputOffset`](/pkg/encoding/json/#Decoder.InputOffset)
+that returns the input stream byte offset of the current
+decoder position.
 
-    <!-- CL 200217 -->
-    [`Compact`](/pkg/encoding/json/#Compact) no longer
-    escapes the `U+2028` and `U+2029` characters, which
-    was never a documented feature. For proper escaping, see [`HTMLEscape`](/pkg/encoding/json/#HTMLEscape).
+<!-- CL 200217 -->
+[`Compact`](/pkg/encoding/json/#Compact) no longer
+escapes the `U+2028` and `U+2029` characters, which
+was never a documented feature. For proper escaping, see [`HTMLEscape`](/pkg/encoding/json/#HTMLEscape).
 
-    <!-- CL 195045 -->
-    [`Number`](/pkg/encoding/json/#Number) no longer
-    accepts invalid numbers, to follow the documented behavior more closely.
-    If a program needs to accept invalid numbers like the empty string,
-    consider wrapping the type with [`Unmarshaler`](/pkg/encoding/json/#Unmarshaler).
+<!-- CL 195045 -->
+[`Number`](/pkg/encoding/json/#Number) no longer
+accepts invalid numbers, to follow the documented behavior more closely.
+If a program needs to accept invalid numbers like the empty string,
+consider wrapping the type with [`Unmarshaler`](/pkg/encoding/json/#Unmarshaler).
 
-    <!-- CL 200237 -->
-    [`Unmarshal`](/pkg/encoding/json/#Unmarshal)
-    can now support map keys with string underlying type which implement
-    [`encoding.TextUnmarshaler`](/pkg/encoding/#TextUnmarshaler).
+<!-- CL 200237 -->
+[`Unmarshal`](/pkg/encoding/json/#Unmarshal)
+can now support map keys with string underlying type which implement
+[`encoding.TextUnmarshaler`](/pkg/encoding/#TextUnmarshaler).
 
 <!-- encoding/json -->
 
-[go/build](/pkg/go/build/)
+#### [go/build](/pkg/go/build/)
 
-:   <!-- CL 203820, 211657 -->
-    The [`Context`](/pkg/go/build/#Context)
-    type has a new field `Dir` which may be used to set
-    the working directory for the build.
-    The default is the current directory of the running process.
-    In module mode, this is used to locate the main module.
+<!-- CL 203820, 211657 -->
+The [`Context`](/pkg/go/build/#Context)
+type has a new field `Dir` which may be used to set
+the working directory for the build.
+The default is the current directory of the running process.
+In module mode, this is used to locate the main module.
 
 <!-- go/build -->
 
-[go/doc](/pkg/go/doc/)
+#### [go/doc](/pkg/go/doc/)
 
-:   <!-- CL 204830 -->
-    The new
-    function [`NewFromFiles`](/pkg/go/doc/#NewFromFiles)
-    computes package documentation from a list
-    of `*ast.File`'s and associates examples with the
-    appropriate package elements.
-    The new information is available in a new `Examples`
-    field
-    in the [`Package`](/pkg/go/doc/#Package), [`Type`](/pkg/go/doc/#Type),
-    and [`Func`](/pkg/go/doc/#Func) types, and a
-    new [`Suffix`](/pkg/go/doc/#Example.Suffix)
-    field in
-    the [`Example`](/pkg/go/doc/#Example)
-    type.
+<!-- CL 204830 -->
+The new
+function [`NewFromFiles`](/pkg/go/doc/#NewFromFiles)
+computes package documentation from a list
+of `*ast.File`'s and associates examples with the
+appropriate package elements.
+The new information is available in a new `Examples`
+field
+in the [`Package`](/pkg/go/doc/#Package), [`Type`](/pkg/go/doc/#Type),
+and [`Func`](/pkg/go/doc/#Func) types, and a
+new [`Suffix`](/pkg/go/doc/#Example.Suffix)
+field in
+the [`Example`](/pkg/go/doc/#Example)
+type.
 
 <!-- go/doc -->
 
-[io/ioutil](/pkg/io/ioutil/)
+#### [io/ioutil](/pkg/io/ioutil/)
 
-:   <!-- CL 198488 -->
-    [`TempDir`](/pkg/io/ioutil/#TempDir) can now create directories
-    whose names have predictable prefixes and suffixes.
-    As with [`TempFile`](/pkg/io/ioutil/#TempFile), if the pattern
-    contains a '\*', the random string replaces the last '\*'.
+<!-- CL 198488 -->
+[`TempDir`](/pkg/io/ioutil/#TempDir) can now create directories
+whose names have predictable prefixes and suffixes.
+As with [`TempFile`](/pkg/io/ioutil/#TempFile), if the pattern
+contains a '\*', the random string replaces the last '\*'.
 
-[log](/pkg/log/)
+#### [log](/pkg/log/)
 
-:   <!-- CL 186182 -->
-    The
-    new [`Lmsgprefix`](https://tip.golang.org/pkg/log/#pkg-constants)
-    flag may be used to tell the logging functions to emit the
-    optional output prefix immediately before the log message rather
-    than at the start of the line.
+<!-- CL 186182 -->
+The
+new [`Lmsgprefix`](https://tip.golang.org/pkg/log/#pkg-constants)
+flag may be used to tell the logging functions to emit the
+optional output prefix immediately before the log message rather
+than at the start of the line.
 
 <!-- log -->
 
-[math](/pkg/math/)
+#### [math](/pkg/math/)
 
-:   <!-- CL 127458 -->
-    The new [`FMA`](/pkg/math/#FMA) function
-    computes `x*y+z` in floating point with no
-    intermediate rounding of the `x*y`
-    computation. Several architectures implement this computation
-    using dedicated hardware instructions for additional performance.
+<!-- CL 127458 -->
+The new [`FMA`](/pkg/math/#FMA) function
+computes `x*y+z` in floating point with no
+intermediate rounding of the `x*y`
+computation. Several architectures implement this computation
+using dedicated hardware instructions for additional performance.
 
 <!-- math -->
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   <!-- CL 164972 -->
-    The [`GCD`](/pkg/math/big/#Int.GCD) method
-    now allows the inputs `a` and `b` to be
-    zero or negative.
+<!-- CL 164972 -->
+The [`GCD`](/pkg/math/big/#Int.GCD) method
+now allows the inputs `a` and `b` to be
+zero or negative.
 
 <!-- math/big -->
 
-[math/bits](/pkg/math/bits/)
+#### [math/bits](/pkg/math/bits/)
 
-:   <!-- CL 197838 -->
-    The new functions
-    [`Rem`](/pkg/math/bits/#Rem),
-    [`Rem32`](/pkg/math/bits/#Rem32), and
-    [`Rem64`](/pkg/math/bits/#Rem64)
-    support computing a remainder even when the quotient overflows.
+<!-- CL 197838 -->
+The new functions
+[`Rem`](/pkg/math/bits/#Rem),
+[`Rem32`](/pkg/math/bits/#Rem32), and
+[`Rem64`](/pkg/math/bits/#Rem64)
+support computing a remainder even when the quotient overflows.
 
 <!-- math/bits -->
 
-[mime](/pkg/mime/)
+#### [mime](/pkg/mime/)
 
-:   <!-- CL 186927 -->
-    The default type of `.js` and `.mjs` files
-    is now `text/javascript` rather
-    than `application/javascript`.
-    This is in accordance
-    with [an
-    IETF draft](https://datatracker.ietf.org/doc/draft-ietf-dispatch-javascript-mjs/) that treats `application/javascript` as obsolete.
+<!-- CL 186927 -->
+The default type of `.js` and `.mjs` files
+is now `text/javascript` rather
+than `application/javascript`.
+This is in accordance
+with [an
+IETF draft](https://datatracker.ietf.org/doc/draft-ietf-dispatch-javascript-mjs/) that treats `application/javascript` as obsolete.
 
 <!-- mime -->
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   The
-    new [`Reader`](/pkg/mime/multipart/#Reader)
-    method [`NextRawPart`](/pkg/mime/multipart/#Reader.NextRawPart)
-    supports fetching the next MIME part without transparently
-    decoding `quoted-printable` data.
+The
+new [`Reader`](/pkg/mime/multipart/#Reader)
+method [`NextRawPart`](/pkg/mime/multipart/#Reader.NextRawPart)
+supports fetching the next MIME part without transparently
+decoding `quoted-printable` data.
 
 <!-- mime/multipart -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 200760 -->
-    The new [`Header`](/pkg/net/http/#Header)
-    method [`Values`](/pkg/net/http/#Header.Values)
-    can be used to fetch all values associated with a
-    canonicalized key.
+<!-- CL 200760 -->
+The new [`Header`](/pkg/net/http/#Header)
+method [`Values`](/pkg/net/http/#Header.Values)
+can be used to fetch all values associated with a
+canonicalized key.
 
-    <!-- CL 61291 -->
-    The
-    new [`Transport`](/pkg/net/http/#Transport)
-    field [`DialTLSContext`](/pkg/net/http/#Transport.DialTLSContext)
-    can be used to specify an optional dial function for creating
-    TLS connections for non-proxied HTTPS requests.
-    This new field can be used instead
-    of [`DialTLS`](/pkg/net/http/#Transport.DialTLS),
-    which is now considered deprecated; `DialTLS` will
-    continue to work, but new code should
-    use `DialTLSContext`, which allows the transport to
-    cancel dials as soon as they are no longer needed.
+<!-- CL 61291 -->
+The
+new [`Transport`](/pkg/net/http/#Transport)
+field [`DialTLSContext`](/pkg/net/http/#Transport.DialTLSContext)
+can be used to specify an optional dial function for creating
+TLS connections for non-proxied HTTPS requests.
+This new field can be used instead
+of [`DialTLS`](/pkg/net/http/#Transport.DialTLS),
+which is now considered deprecated; `DialTLS` will
+continue to work, but new code should
+use `DialTLSContext`, which allows the transport to
+cancel dials as soon as they are no longer needed.
 
-    <!-- CL 192518, CL 194218 -->
-    On Windows, [`ServeFile`](/pkg/net/http/#ServeFile) now correctly
-    serves files larger than 2GB.
+<!-- CL 192518, CL 194218 -->
+On Windows, [`ServeFile`](/pkg/net/http/#ServeFile) now correctly
+serves files larger than 2GB.
 
 <!-- net/http -->
 
-[net/http/httptest](/pkg/net/http/httptest/)
+#### [net/http/httptest](/pkg/net/http/httptest/)
 
-:   <!-- CL 201557 -->
-    The
-    new [`Server`](/pkg/net/http/httptest/#Server)
-    field [`EnableHTTP2`](/pkg/net/http/httptest/#Server.EnableHTTP2)
-    supports enabling HTTP/2 on the test server.
+<!-- CL 201557 -->
+The
+new [`Server`](/pkg/net/http/httptest/#Server)
+field [`EnableHTTP2`](/pkg/net/http/httptest/#Server.EnableHTTP2)
+supports enabling HTTP/2 on the test server.
 
 <!-- net/http/httptest -->
 
-[net/textproto](/pkg/net/textproto/)
+#### [net/textproto](/pkg/net/textproto/)
 
-:   <!-- CL 200760 -->
-    The
-    new [`MIMEHeader`](/pkg/net/textproto/#MIMEHeader)
-    method [`Values`](/pkg/net/textproto/#MIMEHeader.Values)
-    can be used to fetch all values associated with a canonicalized
-    key.
+<!-- CL 200760 -->
+The
+new [`MIMEHeader`](/pkg/net/textproto/#MIMEHeader)
+method [`Values`](/pkg/net/textproto/#MIMEHeader.Values)
+can be used to fetch all values associated with a canonicalized
+key.
 
 <!-- net/textproto -->
 
-[net/url](/pkg/net/url/)
+#### [net/url](/pkg/net/url/)
 
-:   <!-- CL 185117 -->
-    When parsing of a URL fails
-    (for example by [`Parse`](/pkg/net/url/#Parse)
-    or [`ParseRequestURI`](/pkg/net/url/#ParseRequestURI)),
-    the resulting [`Error`](/pkg/net/url/#Error.Error) message
-    will now quote the unparsable URL.
-    This provides clearer structure and consistency with other parsing errors.
+<!-- CL 185117 -->
+When parsing of a URL fails
+(for example by [`Parse`](/pkg/net/url/#Parse)
+or [`ParseRequestURI`](/pkg/net/url/#ParseRequestURI)),
+the resulting [`Error`](/pkg/net/url/#Error.Error) message
+will now quote the unparsable URL.
+This provides clearer structure and consistency with other parsing errors.
 
 <!-- net/url -->
 
-[os/signal](/pkg/os/signal/)
+#### [os/signal](/pkg/os/signal/)
 
-:   <!-- CL 187739 -->
-    On Windows,
-    the `CTRL_CLOSE_EVENT`, `CTRL_LOGOFF_EVENT`,
-    and `CTRL_SHUTDOWN_EVENT` events now generate
-    a `syscall.SIGTERM` signal, similar to how Control-C
-    and Control-Break generate a `syscall.SIGINT` signal.
+<!-- CL 187739 -->
+On Windows,
+the `CTRL_CLOSE_EVENT`, `CTRL_LOGOFF_EVENT`,
+and `CTRL_SHUTDOWN_EVENT` events now generate
+a `syscall.SIGTERM` signal, similar to how Control-C
+and Control-Break generate a `syscall.SIGINT` signal.
 
 <!-- os/signal -->
 
-[plugin](/pkg/plugin/)
+#### [plugin](/pkg/plugin/)
 
-:   <!-- CL 191617 -->
-    The `plugin` package now supports `freebsd/amd64`.
+<!-- CL 191617 -->
+The `plugin` package now supports `freebsd/amd64`.
 
 <!-- plugin -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 85661 -->
-    [`StructOf`](/pkg/reflect#StructOf) now
-    supports creating struct types with unexported fields, by
-    setting the `PkgPath` field in
-    a `StructField` element.
+<!-- CL 85661 -->
+[`StructOf`](/pkg/reflect#StructOf) now
+supports creating struct types with unexported fields, by
+setting the `PkgPath` field in
+a `StructField` element.
 
 <!-- reflect -->
 
-[runtime](/pkg/runtime/)
+#### [runtime](/pkg/runtime/)
 
-:   <!-- CL 200081 -->
-    `runtime.Goexit` can no longer be aborted by a
-    recursive `panic`/`recover`.
+<!-- CL 200081 -->
+`runtime.Goexit` can no longer be aborted by a
+recursive `panic`/`recover`.
 
-    <!-- CL 188297, CL 191785 -->
-    On macOS, `SIGPIPE` is no longer forwarded to signal
-    handlers installed before the Go runtime is initialized.
-    This is necessary because macOS delivers `SIGPIPE`
-    [to the main thread](/issue/33384)
-    rather than the thread writing to the closed pipe.
+<!-- CL 188297, CL 191785 -->
+On macOS, `SIGPIPE` is no longer forwarded to signal
+handlers installed before the Go runtime is initialized.
+This is necessary because macOS delivers `SIGPIPE`
+[to the main thread](/issue/33384)
+rather than the thread writing to the closed pipe.
 
 <!-- runtime -->
 
-[runtime/pprof](/pkg/runtime/pprof/)
+#### [runtime/pprof](/pkg/runtime/pprof/)
 
-:   <!-- CL 204636, 205097 -->
-    The generated profile no longer includes the pseudo-PCs used for inline
-    marks. Symbol information of inlined functions is encoded in
-    [the format](https://github.com/google/pprof/blob/5e96527/proto/profile.proto#L177-L184)
-    the pprof tool expects. This is a fix for the regression introduced
-    during recent releases.
+<!-- CL 204636, 205097 -->
+The generated profile no longer includes the pseudo-PCs used for inline
+marks. Symbol information of inlined functions is encoded in
+[the format](https://github.com/google/pprof/blob/5e96527/proto/profile.proto#L177-L184)
+the pprof tool expects. This is a fix for the regression introduced
+during recent releases.
 
 <!-- runtime/pprof -->
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   The [`NumError`](/pkg/strconv/#NumError)
-    type now has
-    an [`Unwrap`](/pkg/strconv/#NumError.Unwrap)
-    method that may be used to retrieve the reason that a conversion
-    failed.
-    This supports using `NumError` values
-    with [`errors.Is`](/pkg/errors/#Is) to see
-    if the underlying error
-    is [`strconv.ErrRange`](/pkg/strconv/#pkg-variables)
-    or [`strconv.ErrSyntax`](/pkg/strconv/#pkg-variables).
+The [`NumError`](/pkg/strconv/#NumError)
+type now has
+an [`Unwrap`](/pkg/strconv/#NumError.Unwrap)
+method that may be used to retrieve the reason that a conversion
+failed.
+This supports using `NumError` values
+with [`errors.Is`](/pkg/errors/#Is) to see
+if the underlying error
+is [`strconv.ErrRange`](/pkg/strconv/#pkg-variables)
+or [`strconv.ErrSyntax`](/pkg/strconv/#pkg-variables).
 
 <!-- strconv -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- CL 200577 -->
-    Unlocking a highly contended `Mutex` now directly
-    yields the CPU to the next goroutine waiting for
-    that `Mutex`. This significantly improves the
-    performance of highly contended mutexes on high CPU count
-    machines.
+<!-- CL 200577 -->
+Unlocking a highly contended `Mutex` now directly
+yields the CPU to the next goroutine waiting for
+that `Mutex`. This significantly improves the
+performance of highly contended mutexes on high CPU count
+machines.
 
 <!-- sync -->
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- CL 201359 -->
-    The testing package now supports cleanup functions, called after
-    a test or benchmark has finished, by calling
-    [`T.Cleanup`](/pkg/testing#T.Cleanup) or
-    [`B.Cleanup`](/pkg/testing#B.Cleanup) respectively.
+<!-- CL 201359 -->
+The testing package now supports cleanup functions, called after
+a test or benchmark has finished, by calling
+[`T.Cleanup`](/pkg/testing#T.Cleanup) or
+[`B.Cleanup`](/pkg/testing#B.Cleanup) respectively.
 
 <!-- testing -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 206124 -->
-    The text/template package now correctly reports errors when a
-    parenthesized argument is used as a function.
-    This most commonly shows up in erroneous cases like
-    `{{if (eq .F "a") or (eq .F "b")}}`.
-    This should be written as `{{if or (eq .F "a") (eq .F "b")}}`.
-    The erroneous case never worked as expected, and will now be
-    reported with an error `can't give argument to non-function`.
+<!-- CL 206124 -->
+The text/template package now correctly reports errors when a
+parenthesized argument is used as a function.
+This most commonly shows up in erroneous cases like
+`{{if (eq .F "a") or (eq .F "b")}}`.
+This should be written as `{{if or (eq .F "a") (eq .F "b")}}`.
+The erroneous case never worked as expected, and will now be
+reported with an error `can't give argument to non-function`.
 
-    <!-- CL 207637 -->
-    [`JSEscape`](/pkg/text/template/#JSEscape) now
-    escapes the `&` and `=` characters to
-    mitigate the impact of its output being misused in HTML contexts.
+<!-- CL 207637 -->
+[`JSEscape`](/pkg/text/template/#JSEscape) now
+escapes the `&` and `=` characters to
+mitigate the impact of its output being misused in HTML contexts.
 
 <!-- text/template -->
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   The [`unicode`](/pkg/unicode/) package and associated
-    support throughout the system has been upgraded from Unicode 11.0 to
-    [Unicode 12.0](https://www.unicode.org/versions/Unicode12.0.0/),
-    which adds 554 new characters, including four new scripts, and 61 new emoji.
+The [`unicode`](/pkg/unicode/) package and associated
+support throughout the system has been upgraded from Unicode 11.0 to
+[Unicode 12.0](https://www.unicode.org/versions/Unicode12.0.0/),
+which adds 554 new characters, including four new scripts, and 61 new emoji.
 
 <!-- unicode -->
diff --git a/_content/doc/go1.15.md b/_content/doc/go1.15.md
index c3604e2..6ec380b 100644
--- a/_content/doc/go1.15.md
+++ b/_content/doc/go1.15.md
@@ -371,541 +371,541 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[bufio](/pkg/bufio/)
+#### [bufio](/pkg/bufio/)
 
-:   <!-- CL 225357, CL 225557 -->
-    When a [`Scanner`](/pkg/bufio/#Scanner) is
-    used with an invalid
-    [`io.Reader`](/pkg/io/#Reader) that
-    incorrectly returns a negative number from `Read`,
-    the `Scanner` will no longer panic, but will instead
-    return the new error
-    [`ErrBadReadCount`](/pkg/bufio/#ErrBadReadCount).
+<!-- CL 225357, CL 225557 -->
+When a [`Scanner`](/pkg/bufio/#Scanner) is
+used with an invalid
+[`io.Reader`](/pkg/io/#Reader) that
+incorrectly returns a negative number from `Read`,
+the `Scanner` will no longer panic, but will instead
+return the new error
+[`ErrBadReadCount`](/pkg/bufio/#ErrBadReadCount).
 
 <!-- bufio -->
 
-[context](/pkg/context/)
+#### [context](/pkg/context/)
 
-:   <!-- CL 223777 -->
-    Creating a derived `Context` using a nil parent is now explicitly
-    disallowed. Any attempt to do so with the
-    [`WithValue`](/pkg/context/#WithValue),
-    [`WithDeadline`](/pkg/context/#WithDeadline), or
-    [`WithCancel`](/pkg/context/#WithCancel) functions
-    will cause a panic.
+<!-- CL 223777 -->
+Creating a derived `Context` using a nil parent is now explicitly
+disallowed. Any attempt to do so with the
+[`WithValue`](/pkg/context/#WithValue),
+[`WithDeadline`](/pkg/context/#WithDeadline), or
+[`WithCancel`](/pkg/context/#WithCancel) functions
+will cause a panic.
 
 <!-- context -->
 
-[crypto](/pkg/crypto/)
+#### [crypto](/pkg/crypto/)
 
-:   <!-- CL 231417, CL 225460 -->
-    The `PrivateKey` and `PublicKey` types in the
-    [`crypto/rsa`](/pkg/crypto/rsa/),
-    [`crypto/ecdsa`](/pkg/crypto/ecdsa/), and
-    [`crypto/ed25519`](/pkg/crypto/ed25519/) packages
-    now have an `Equal` method to compare keys for equivalence
-    or to make type-safe interfaces for public keys. The method signature
-    is compatible with
-    [`go-cmp`'s
-    definition of equality](https://pkg.go.dev/github.com/google/go-cmp/cmp#Equal).
+<!-- CL 231417, CL 225460 -->
+The `PrivateKey` and `PublicKey` types in the
+[`crypto/rsa`](/pkg/crypto/rsa/),
+[`crypto/ecdsa`](/pkg/crypto/ecdsa/), and
+[`crypto/ed25519`](/pkg/crypto/ed25519/) packages
+now have an `Equal` method to compare keys for equivalence
+or to make type-safe interfaces for public keys. The method signature
+is compatible with
+[`go-cmp`'s
+definition of equality](https://pkg.go.dev/github.com/google/go-cmp/cmp#Equal).
 
-    <!-- CL 224937 -->
-    [`Hash`](/pkg/crypto/#Hash) now implements
-    [`fmt.Stringer`](/pkg/fmt/#Stringer).
+<!-- CL 224937 -->
+[`Hash`](/pkg/crypto/#Hash) now implements
+[`fmt.Stringer`](/pkg/fmt/#Stringer).
 
 <!-- crypto -->
 
-[crypto/ecdsa](/pkg/crypto/ecdsa/)
+#### [crypto/ecdsa](/pkg/crypto/ecdsa/)
 
-:   <!-- CL 217940 -->
-    The new [`SignASN1`](/pkg/crypto/ecdsa/#SignASN1)
-    and [`VerifyASN1`](/pkg/crypto/ecdsa/#VerifyASN1)
-    functions allow generating and verifying ECDSA signatures in the standard
-    ASN.1 DER encoding.
+<!-- CL 217940 -->
+The new [`SignASN1`](/pkg/crypto/ecdsa/#SignASN1)
+and [`VerifyASN1`](/pkg/crypto/ecdsa/#VerifyASN1)
+functions allow generating and verifying ECDSA signatures in the standard
+ASN.1 DER encoding.
 
 <!-- crypto/ecdsa -->
 
-[crypto/elliptic](/pkg/crypto/elliptic/)
+#### [crypto/elliptic](/pkg/crypto/elliptic/)
 
-:   <!-- CL 202819 -->
-    The new [`MarshalCompressed`](/pkg/crypto/elliptic/#MarshalCompressed)
-    and [`UnmarshalCompressed`](/pkg/crypto/elliptic/#UnmarshalCompressed)
-    functions allow encoding and decoding NIST elliptic curve points in compressed format.
+<!-- CL 202819 -->
+The new [`MarshalCompressed`](/pkg/crypto/elliptic/#MarshalCompressed)
+and [`UnmarshalCompressed`](/pkg/crypto/elliptic/#UnmarshalCompressed)
+functions allow encoding and decoding NIST elliptic curve points in compressed format.
 
 <!-- crypto/elliptic -->
 
-[crypto/rsa](/pkg/crypto/rsa/)
+#### [crypto/rsa](/pkg/crypto/rsa/)
 
-:   <!-- CL 226203 -->
-    [`VerifyPKCS1v15`](/pkg/crypto/rsa/#VerifyPKCS1v15)
-    now rejects invalid short signatures with missing leading zeroes, according to RFC 8017.
+<!-- CL 226203 -->
+[`VerifyPKCS1v15`](/pkg/crypto/rsa/#VerifyPKCS1v15)
+now rejects invalid short signatures with missing leading zeroes, according to RFC 8017.
 
 <!-- crypto/rsa -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 214977 -->
-    The new
-    [`Dialer`](/pkg/crypto/tls/#Dialer)
-    type and its
-    [`DialContext`](/pkg/crypto/tls/#Dialer.DialContext)
-    method permit using a context to both connect and handshake with a TLS server.
+<!-- CL 214977 -->
+The new
+[`Dialer`](/pkg/crypto/tls/#Dialer)
+type and its
+[`DialContext`](/pkg/crypto/tls/#Dialer.DialContext)
+method permit using a context to both connect and handshake with a TLS server.
 
-    <!-- CL 229122 -->
-    The new
-    [`VerifyConnection`](/pkg/crypto/tls/#Config.VerifyConnection)
-    callback on the [`Config`](/pkg/crypto/tls/#Config) type
-    allows custom verification logic for every connection. It has access to the
-    [`ConnectionState`](/pkg/crypto/tls/#ConnectionState)
-    which includes peer certificates, SCTs, and stapled OCSP responses.
+<!-- CL 229122 -->
+The new
+[`VerifyConnection`](/pkg/crypto/tls/#Config.VerifyConnection)
+callback on the [`Config`](/pkg/crypto/tls/#Config) type
+allows custom verification logic for every connection. It has access to the
+[`ConnectionState`](/pkg/crypto/tls/#ConnectionState)
+which includes peer certificates, SCTs, and stapled OCSP responses.
 
-    <!-- CL 230679 -->
-    Auto-generated session ticket keys are now automatically rotated every 24 hours,
-    with a lifetime of 7 days, to limit their impact on forward secrecy.
+<!-- CL 230679 -->
+Auto-generated session ticket keys are now automatically rotated every 24 hours,
+with a lifetime of 7 days, to limit their impact on forward secrecy.
 
-    <!-- CL 231317 -->
-    Session ticket lifetimes in TLS 1.2 and earlier, where the session keys
-    are reused for resumed connections, are now limited to 7 days, also to
-    limit their impact on forward secrecy.
+<!-- CL 231317 -->
+Session ticket lifetimes in TLS 1.2 and earlier, where the session keys
+are reused for resumed connections, are now limited to 7 days, also to
+limit their impact on forward secrecy.
 
-    <!-- CL 231038 -->
-    The client-side downgrade protection checks specified in RFC 8446 are now
-    enforced. This has the potential to cause connection errors for clients
-    encountering middleboxes that behave like unauthorized downgrade attacks.
+<!-- CL 231038 -->
+The client-side downgrade protection checks specified in RFC 8446 are now
+enforced. This has the potential to cause connection errors for clients
+encountering middleboxes that behave like unauthorized downgrade attacks.
 
-    <!-- CL 208226 -->
-    [`SignatureScheme`](/pkg/crypto/tls/#SignatureScheme),
-    [`CurveID`](/pkg/crypto/tls/#CurveID), and
-    [`ClientAuthType`](/pkg/crypto/tls/#ClientAuthType)
-    now implement [`fmt.Stringer`](/pkg/fmt/#Stringer).
+<!-- CL 208226 -->
+[`SignatureScheme`](/pkg/crypto/tls/#SignatureScheme),
+[`CurveID`](/pkg/crypto/tls/#CurveID), and
+[`ClientAuthType`](/pkg/crypto/tls/#ClientAuthType)
+now implement [`fmt.Stringer`](/pkg/fmt/#Stringer).
 
-    <!-- CL 236737 -->
-    The [`ConnectionState`](/pkg/crypto/tls/#ConnectionState)
-    fields `OCSPResponse` and `SignedCertificateTimestamps`
-    are now repopulated on client-side resumed connections.
+<!-- CL 236737 -->
+The [`ConnectionState`](/pkg/crypto/tls/#ConnectionState)
+fields `OCSPResponse` and `SignedCertificateTimestamps`
+are now repopulated on client-side resumed connections.
 
-    <!-- CL 227840 -->
-    [`tls.Conn`](/pkg/crypto/tls/#Conn)
-    now returns an opaque error on permanently broken connections, wrapping
-    the temporary
-    [`net.Error`](/pkg/net/http/#Error). To access the
-    original `net.Error`, use
-    [`errors.As`](/pkg/errors/#As) (or
-    [`errors.Unwrap`](/pkg/errors/#Unwrap)) instead of a
-    type assertion.
+<!-- CL 227840 -->
+[`tls.Conn`](/pkg/crypto/tls/#Conn)
+now returns an opaque error on permanently broken connections, wrapping
+the temporary
+[`net.Error`](/pkg/net/http/#Error). To access the
+original `net.Error`, use
+[`errors.As`](/pkg/errors/#As) (or
+[`errors.Unwrap`](/pkg/errors/#Unwrap)) instead of a
+type assertion.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 231378, CL 231380, CL 231381 -->
-    If either the name on the certificate or the name being verified (with
-    [`VerifyOptions.DNSName`](/pkg/crypto/x509/#VerifyOptions.DNSName)
-    or [`VerifyHostname`](/pkg/crypto/x509/#Certificate.VerifyHostname))
-    are invalid, they will now be compared case-insensitively without further
-    processing (without honoring wildcards or stripping trailing dots).
-    Invalid names include those with any characters other than letters,
-    digits, hyphens and underscores, those with empty labels, and names on
-    certificates with trailing dots.
+<!-- CL 231378, CL 231380, CL 231381 -->
+If either the name on the certificate or the name being verified (with
+[`VerifyOptions.DNSName`](/pkg/crypto/x509/#VerifyOptions.DNSName)
+or [`VerifyHostname`](/pkg/crypto/x509/#Certificate.VerifyHostname))
+are invalid, they will now be compared case-insensitively without further
+processing (without honoring wildcards or stripping trailing dots).
+Invalid names include those with any characters other than letters,
+digits, hyphens and underscores, those with empty labels, and names on
+certificates with trailing dots.
 
-    <!-- CL 217298 -->
-    The new [`CreateRevocationList`](/pkg/crypto/x509/#CreateRevocationList)
-    function and [`RevocationList`](/pkg/crypto/x509/#RevocationList) type
-    allow creating RFC 5280-compliant X.509 v2 Certificate Revocation Lists.
+<!-- CL 217298 -->
+The new [`CreateRevocationList`](/pkg/crypto/x509/#CreateRevocationList)
+function and [`RevocationList`](/pkg/crypto/x509/#RevocationList) type
+allow creating RFC 5280-compliant X.509 v2 Certificate Revocation Lists.
 
-    <!-- CL 227098 -->
-    [`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
-    now automatically generates the `SubjectKeyId` if the template
-    is a CA and doesn't explicitly specify one.
+<!-- CL 227098 -->
+[`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
+now automatically generates the `SubjectKeyId` if the template
+is a CA and doesn't explicitly specify one.
 
-    <!-- CL 228777 -->
-    [`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
-    now returns an error if the template specifies `MaxPathLen` but is not a CA.
+<!-- CL 228777 -->
+[`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
+now returns an error if the template specifies `MaxPathLen` but is not a CA.
 
-    <!-- CL 205237 -->
-    On Unix systems other than macOS, the `SSL_CERT_DIR`
-    environment variable can now be a colon-separated list.
+<!-- CL 205237 -->
+On Unix systems other than macOS, the `SSL_CERT_DIR`
+environment variable can now be a colon-separated list.
 
-    <!-- CL 227037 -->
-    On macOS, binaries are now always linked against
-    `Security.framework` to extract the system trust roots,
-    regardless of whether cgo is available. The resulting behavior should be
-    more consistent with the OS verifier.
+<!-- CL 227037 -->
+On macOS, binaries are now always linked against
+`Security.framework` to extract the system trust roots,
+regardless of whether cgo is available. The resulting behavior should be
+more consistent with the OS verifier.
 
 <!-- crypto/x509 -->
 
-[crypto/x509/pkix](/pkg/crypto/x509/pkix/)
+#### [crypto/x509/pkix](/pkg/crypto/x509/pkix/)
 
-:   <!-- CL 229864, CL 240543 -->
-    [`Name.String`](/pkg/crypto/x509/pkix/#Name.String)
-    now prints non-standard attributes from
-    [`Names`](/pkg/crypto/x509/pkix/#Name.Names) if
-    [`ExtraNames`](/pkg/crypto/x509/pkix/#Name.ExtraNames) is nil.
+<!-- CL 229864, CL 240543 -->
+[`Name.String`](/pkg/crypto/x509/pkix/#Name.String)
+now prints non-standard attributes from
+[`Names`](/pkg/crypto/x509/pkix/#Name.Names) if
+[`ExtraNames`](/pkg/crypto/x509/pkix/#Name.ExtraNames) is nil.
 
 <!-- crypto/x509/pkix -->
 
-[database/sql](/pkg/database/sql/)
+#### [database/sql](/pkg/database/sql/)
 
-:   <!-- CL 145758 -->
-    The new [`DB.SetConnMaxIdleTime`](/pkg/database/sql/#DB.SetConnMaxIdleTime)
-    method allows removing a connection from the connection pool after
-    it has been idle for a period of time, without regard to the total
-    lifespan of the connection. The [`DBStats.MaxIdleTimeClosed`](/pkg/database/sql/#DBStats.MaxIdleTimeClosed)
-    field shows the total number of connections closed due to
-    `DB.SetConnMaxIdleTime`.
+<!-- CL 145758 -->
+The new [`DB.SetConnMaxIdleTime`](/pkg/database/sql/#DB.SetConnMaxIdleTime)
+method allows removing a connection from the connection pool after
+it has been idle for a period of time, without regard to the total
+lifespan of the connection. The [`DBStats.MaxIdleTimeClosed`](/pkg/database/sql/#DBStats.MaxIdleTimeClosed)
+field shows the total number of connections closed due to
+`DB.SetConnMaxIdleTime`.
 
-    <!-- CL 214317 -->
-    The new [`Row.Err`](/pkg/database/sql/#Row.Err) getter
-    allows checking for query errors without calling
-    `Row.Scan`.
+<!-- CL 214317 -->
+The new [`Row.Err`](/pkg/database/sql/#Row.Err) getter
+allows checking for query errors without calling
+`Row.Scan`.
 
 <!-- database/sql -->
 
-[database/sql/driver](/pkg/database/sql/driver/)
+#### [database/sql/driver](/pkg/database/sql/driver/)
 
-:   <!-- CL 174122 -->
-    The new [`Validator`](/pkg/database/sql/driver/#Validator)
-    interface may be implemented by `Conn` to allow drivers
-    to signal if a connection is valid or if it should be discarded.
+<!-- CL 174122 -->
+The new [`Validator`](/pkg/database/sql/driver/#Validator)
+interface may be implemented by `Conn` to allow drivers
+to signal if a connection is valid or if it should be discarded.
 
 <!-- database/sql/driver -->
 
-[debug/pe](/pkg/debug/pe/)
+#### [debug/pe](/pkg/debug/pe/)
 
-:   <!-- CL 222637 -->
-    The package now defines the
-    `IMAGE_FILE`, `IMAGE_SUBSYSTEM`,
-    and `IMAGE_DLLCHARACTERISTICS` constants used by the
-    PE file format.
+<!-- CL 222637 -->
+The package now defines the
+`IMAGE_FILE`, `IMAGE_SUBSYSTEM`,
+and `IMAGE_DLLCHARACTERISTICS` constants used by the
+PE file format.
 
 <!-- debug/pe -->
 
-[encoding/asn1](/pkg/encoding/asn1/)
+#### [encoding/asn1](/pkg/encoding/asn1/)
 
-:   <!-- CL 226984 -->
-    [`Marshal`](/pkg/encoding/asn1/#Marshal) now sorts the components
-    of SET OF according to X.690 DER.
+<!-- CL 226984 -->
+[`Marshal`](/pkg/encoding/asn1/#Marshal) now sorts the components
+of SET OF according to X.690 DER.
 
-    <!-- CL 227320 -->
-    [`Unmarshal`](/pkg/encoding/asn1/#Unmarshal) now rejects tags and
-    Object Identifiers which are not minimally encoded according to X.690 DER.
+<!-- CL 227320 -->
+[`Unmarshal`](/pkg/encoding/asn1/#Unmarshal) now rejects tags and
+Object Identifiers which are not minimally encoded according to X.690 DER.
 
 <!-- encoding/asn1 -->
 
-[encoding/json](/pkg/encoding/json/)
+#### [encoding/json](/pkg/encoding/json/)
 
-:   <!-- CL 199837 -->
-    The package now has an internal limit to the maximum depth of
-    nesting when decoding. This reduces the possibility that a
-    deeply nested input could use large quantities of stack memory,
-    or even cause a "goroutine stack exceeds limit" panic.
+<!-- CL 199837 -->
+The package now has an internal limit to the maximum depth of
+nesting when decoding. This reduces the possibility that a
+deeply nested input could use large quantities of stack memory,
+or even cause a "goroutine stack exceeds limit" panic.
 
 <!-- encoding/json -->
 
-[flag](/pkg/flag/)
+#### [flag](/pkg/flag/)
 
-:   <!-- CL 221427 -->
-    When the `flag` package sees `-h` or `-help`,
-    and those flags are not defined, it now prints a usage message.
-    If the [`FlagSet`](/pkg/flag/#FlagSet) was created with
-    [`ExitOnError`](/pkg/flag/#ExitOnError),
-    [`FlagSet.Parse`](/pkg/flag/#FlagSet.Parse) would then
-    exit with a status of 2. In this release, the exit status for `-h`
-    or `-help` has been changed to 0. In particular, this applies to
-    the default handling of command line flags.
+<!-- CL 221427 -->
+When the `flag` package sees `-h` or `-help`,
+and those flags are not defined, it now prints a usage message.
+If the [`FlagSet`](/pkg/flag/#FlagSet) was created with
+[`ExitOnError`](/pkg/flag/#ExitOnError),
+[`FlagSet.Parse`](/pkg/flag/#FlagSet.Parse) would then
+exit with a status of 2. In this release, the exit status for `-h`
+or `-help` has been changed to 0. In particular, this applies to
+the default handling of command line flags.
 
-[fmt](/pkg/fmt/)
+#### [fmt](/pkg/fmt/)
 
-:   <!-- CL 215001 -->
-    The printing verbs `%#g` and `%#G` now preserve
-    trailing zeros for floating-point values.
+<!-- CL 215001 -->
+The printing verbs `%#g` and `%#G` now preserve
+trailing zeros for floating-point values.
 
 <!-- fmt -->
 
-[go/format](/pkg/go/format/)
+#### [go/format](/pkg/go/format/)
 
-:   <!-- golang.org/issue/37476, CL 231461, CL 240683 -->
-    The [`Source`](/pkg/go/format/#Source) and
-    [`Node`](/pkg/go/format/#Node) functions
-    now canonicalize number literal prefixes and exponents as part
-    of formatting Go source code. This matches the behavior of the
-    [`gofmt`](/pkg/cmd/gofmt/) command as it
-    was implemented [since Go 1.13](/doc/go1.13#gofmt).
+<!-- golang.org/issue/37476, CL 231461, CL 240683 -->
+The [`Source`](/pkg/go/format/#Source) and
+[`Node`](/pkg/go/format/#Node) functions
+now canonicalize number literal prefixes and exponents as part
+of formatting Go source code. This matches the behavior of the
+[`gofmt`](/pkg/cmd/gofmt/) command as it
+was implemented [since Go 1.13](/doc/go1.13#gofmt).
 
 <!-- go/format -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- CL 226097 -->
-    The package now uses Unicode escapes (`\uNNNN`) in all
-    JavaScript and JSON contexts. This fixes escaping errors in
-    `application/ld+json` and `application/json`
-    contexts.
+<!-- CL 226097 -->
+The package now uses Unicode escapes (`\uNNNN`) in all
+JavaScript and JSON contexts. This fixes escaping errors in
+`application/ld+json` and `application/json`
+contexts.
 
 <!-- html/template -->
 
-[io/ioutil](/pkg/io/ioutil/)
+#### [io/ioutil](/pkg/io/ioutil/)
 
-:   <!-- CL 212597 -->
-    [`TempDir`](/pkg/io/ioutil/#TempDir) and
-    [`TempFile`](/pkg/io/ioutil/#TempFile)
-    now reject patterns that contain path separators.
-    That is, calls such as `ioutil.TempFile("/tmp",` `"../base*")` will no longer succeed.
-    This prevents unintended directory traversal.
+<!-- CL 212597 -->
+[`TempDir`](/pkg/io/ioutil/#TempDir) and
+[`TempFile`](/pkg/io/ioutil/#TempFile)
+now reject patterns that contain path separators.
+That is, calls such as `ioutil.TempFile("/tmp",` `"../base*")` will no longer succeed.
+This prevents unintended directory traversal.
 
 <!-- io/ioutil -->
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   <!-- CL 230397 -->
-    The new [`Int.FillBytes`](/pkg/math/big/#Int.FillBytes)
-    method allows serializing to fixed-size pre-allocated byte slices.
+<!-- CL 230397 -->
+The new [`Int.FillBytes`](/pkg/math/big/#Int.FillBytes)
+method allows serializing to fixed-size pre-allocated byte slices.
 
 <!-- math/big -->
 
-[math/cmplx](/pkg/math/cmplx/)
+#### [math/cmplx](/pkg/math/cmplx/)
 
-:   <!-- CL 220689 -->
-    The functions in this package were updated to conform to the C99 standard
-    (Annex G IEC 60559-compatible complex arithmetic) with respect to handling
-    of special arguments such as infinity, NaN and signed zero.
+<!-- CL 220689 -->
+The functions in this package were updated to conform to the C99 standard
+(Annex G IEC 60559-compatible complex arithmetic) with respect to handling
+of special arguments such as infinity, NaN and signed zero.
 
 <!-- math/cmplx-->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 228645 -->
-    If an I/O operation exceeds a deadline set by
-    the [`Conn.SetDeadline`](/pkg/net/#Conn),
-    `Conn.SetReadDeadline`,
-    or `Conn.SetWriteDeadline` methods, it will now
-    return an error that is or wraps
-    [`os.ErrDeadlineExceeded`](/pkg/os/#ErrDeadlineExceeded).
-    This may be used to reliably detect whether an error is due to
-    an exceeded deadline.
-    Earlier releases recommended calling the `Timeout`
-    method on the error, but I/O operations can return errors for
-    which `Timeout` returns `true` although a
-    deadline has not been exceeded.
+<!-- CL 228645 -->
+If an I/O operation exceeds a deadline set by
+the [`Conn.SetDeadline`](/pkg/net/#Conn),
+`Conn.SetReadDeadline`,
+or `Conn.SetWriteDeadline` methods, it will now
+return an error that is or wraps
+[`os.ErrDeadlineExceeded`](/pkg/os/#ErrDeadlineExceeded).
+This may be used to reliably detect whether an error is due to
+an exceeded deadline.
+Earlier releases recommended calling the `Timeout`
+method on the error, but I/O operations can return errors for
+which `Timeout` returns `true` although a
+deadline has not been exceeded.
 
-    <!-- CL 228641 -->
-    The new [`Resolver.LookupIP`](/pkg/net/#Resolver.LookupIP)
-    method supports IP lookups that are both network-specific and accept a context.
+<!-- CL 228641 -->
+The new [`Resolver.LookupIP`](/pkg/net/#Resolver.LookupIP)
+method supports IP lookups that are both network-specific and accept a context.
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 231418, CL 231419 -->
-    Parsing is now stricter as a hardening measure against request smuggling attacks:
-    non-ASCII white space is no longer trimmed like SP and HTAB, and support for the
-    "`identity`" `Transfer-Encoding` was dropped.
+<!-- CL 231418, CL 231419 -->
+Parsing is now stricter as a hardening measure against request smuggling attacks:
+non-ASCII white space is no longer trimmed like SP and HTAB, and support for the
+"`identity`" `Transfer-Encoding` was dropped.
 
 <!-- net/http -->
 
-[net/http/httputil](/pkg/net/http/httputil/)
+#### [net/http/httputil](/pkg/net/http/httputil/)
 
-:   <!-- CL 230937 -->
-    [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
-    now supports not modifying the `X-Forwarded-For`
-    header when the incoming `Request.Header` map entry
-    for that field is `nil`.
+<!-- CL 230937 -->
+[`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
+now supports not modifying the `X-Forwarded-For`
+header when the incoming `Request.Header` map entry
+for that field is `nil`.
 
-    <!-- CL 224897 -->
-    When a Switching Protocol (like WebSocket) request handled by
-    [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
-    is canceled, the backend connection is now correctly closed.
+<!-- CL 224897 -->
+When a Switching Protocol (like WebSocket) request handled by
+[`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
+is canceled, the backend connection is now correctly closed.
 
-[net/http/pprof](/pkg/net/http/pprof/)
+#### [net/http/pprof](/pkg/net/http/pprof/)
 
-:   <!-- CL 147598, CL 229537 -->
-    All profile endpoints now support a "`seconds`" parameter. When present,
-    the endpoint profiles for the specified number of seconds and reports the difference.
-    The meaning of the "`seconds`" parameter in the `cpu` profile and
-    the trace endpoints is unchanged.
+<!-- CL 147598, CL 229537 -->
+All profile endpoints now support a "`seconds`" parameter. When present,
+the endpoint profiles for the specified number of seconds and reports the difference.
+The meaning of the "`seconds`" parameter in the `cpu` profile and
+the trace endpoints is unchanged.
 
-[net/url](/pkg/net/url/)
+#### [net/url](/pkg/net/url/)
 
-:   <!-- CL 227645 -->
-    The new [`URL`](/pkg/net/url/#URL) field
-    `RawFragment` and method [`EscapedFragment`](/pkg/net/url/#URL.EscapedFragment)
-    provide detail about and control over the exact encoding of a particular fragment.
-    These are analogous to
-    `RawPath` and [`EscapedPath`](/pkg/net/url/#URL.EscapedPath).
+<!-- CL 227645 -->
+The new [`URL`](/pkg/net/url/#URL) field
+`RawFragment` and method [`EscapedFragment`](/pkg/net/url/#URL.EscapedFragment)
+provide detail about and control over the exact encoding of a particular fragment.
+These are analogous to
+`RawPath` and [`EscapedPath`](/pkg/net/url/#URL.EscapedPath).
 
-    <!-- CL 207082 -->
-    The new [`URL`](/pkg/net/url/#URL)
-    method [`Redacted`](/pkg/net/url/#URL.Redacted)
-    returns the URL in string form with any password replaced with `xxxxx`.
+<!-- CL 207082 -->
+The new [`URL`](/pkg/net/url/#URL)
+method [`Redacted`](/pkg/net/url/#URL.Redacted)
+returns the URL in string form with any password replaced with `xxxxx`.
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL -->
-    If an I/O operation exceeds a deadline set by
-    the [`File.SetDeadline`](/pkg/os/#File.SetDeadline),
-    [`File.SetReadDeadline`](/pkg/os/#File.SetReadDeadline),
-    or [`File.SetWriteDeadline`](/pkg/os/#File.SetWriteDeadline)
-    methods, it will now return an error that is or wraps
-    [`os.ErrDeadlineExceeded`](/pkg/os/#ErrDeadlineExceeded).
-    This may be used to reliably detect whether an error is due to
-    an exceeded deadline.
-    Earlier releases recommended calling the `Timeout`
-    method on the error, but I/O operations can return errors for
-    which `Timeout` returns `true` although a
-    deadline has not been exceeded.
+<!-- CL -->
+If an I/O operation exceeds a deadline set by
+the [`File.SetDeadline`](/pkg/os/#File.SetDeadline),
+[`File.SetReadDeadline`](/pkg/os/#File.SetReadDeadline),
+or [`File.SetWriteDeadline`](/pkg/os/#File.SetWriteDeadline)
+methods, it will now return an error that is or wraps
+[`os.ErrDeadlineExceeded`](/pkg/os/#ErrDeadlineExceeded).
+This may be used to reliably detect whether an error is due to
+an exceeded deadline.
+Earlier releases recommended calling the `Timeout`
+method on the error, but I/O operations can return errors for
+which `Timeout` returns `true` although a
+deadline has not been exceeded.
 
-    <!-- CL 232862 -->
-    Packages `os` and `net` now automatically
-    retry system calls that fail with `EINTR`. Previously
-    this led to spurious failures, which became more common in Go
-    1.14 with the addition of asynchronous preemption. Now this is
-    handled transparently.
+<!-- CL 232862 -->
+Packages `os` and `net` now automatically
+retry system calls that fail with `EINTR`. Previously
+this led to spurious failures, which became more common in Go
+1.14 with the addition of asynchronous preemption. Now this is
+handled transparently.
 
-    <!-- CL 229101 -->
-    The [`os.File`](/pkg/os/#File) type now
-    supports a [`ReadFrom`](/pkg/os/#File.ReadFrom)
-    method. This permits the use of the `copy_file_range`
-    system call on some systems when using
-    [`io.Copy`](/pkg/io/#Copy) to copy data
-    from one `os.File` to another. A consequence is that
-    [`io.CopyBuffer`](/pkg/io/#CopyBuffer)
-    will not always use the provided buffer when copying to a
-    `os.File`. If a program wants to force the use of
-    the provided buffer, it can be done by writing
-    `io.CopyBuffer(struct{ io.Writer }{dst}, src, buf)`.
+<!-- CL 229101 -->
+The [`os.File`](/pkg/os/#File) type now
+supports a [`ReadFrom`](/pkg/os/#File.ReadFrom)
+method. This permits the use of the `copy_file_range`
+system call on some systems when using
+[`io.Copy`](/pkg/io/#Copy) to copy data
+from one `os.File` to another. A consequence is that
+[`io.CopyBuffer`](/pkg/io/#CopyBuffer)
+will not always use the provided buffer when copying to a
+`os.File`. If a program wants to force the use of
+the provided buffer, it can be done by writing
+`io.CopyBuffer(struct{ io.Writer }{dst}, src, buf)`.
 
-[plugin](/pkg/plugin/)
+#### [plugin](/pkg/plugin/)
 
-:   <!-- CL 182959 -->
-    DWARF generation is now supported (and enabled by default) for `-buildmode=plugin` on macOS.
+<!-- CL 182959 -->
+DWARF generation is now supported (and enabled by default) for `-buildmode=plugin` on macOS.
 
-    <!-- CL 191617 -->
-    Building with `-buildmode=plugin` is now supported on `freebsd/amd64`.
+<!-- CL 191617 -->
+Building with `-buildmode=plugin` is now supported on `freebsd/amd64`.
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 228902 -->
-    Package `reflect` now disallows accessing methods of all
-    non-exported fields, whereas previously it allowed accessing
-    those of non-exported, embedded fields. Code that relies on the
-    previous behavior should be updated to instead access the
-    corresponding promoted method of the enclosing variable.
+<!-- CL 228902 -->
+Package `reflect` now disallows accessing methods of all
+non-exported fields, whereas previously it allowed accessing
+those of non-exported, embedded fields. Code that relies on the
+previous behavior should be updated to instead access the
+corresponding promoted method of the enclosing variable.
 
-[regexp](/pkg/regexp/)
+#### [regexp](/pkg/regexp/)
 
-:   <!-- CL 187919 -->
-    The new [`Regexp.SubexpIndex`](/pkg/regexp/#Regexp.SubexpIndex)
-    method returns the index of the first subexpression with the given name
-    within the regular expression.
+<!-- CL 187919 -->
+The new [`Regexp.SubexpIndex`](/pkg/regexp/#Regexp.SubexpIndex)
+method returns the index of the first subexpression with the given name
+within the regular expression.
 
 <!-- regexp -->
 
-[runtime](/pkg/runtime/)
+#### [runtime](/pkg/runtime/)
 
-:   <!-- CL 216557 -->
-    Several functions, including
-    [`ReadMemStats`](/pkg/runtime/#ReadMemStats)
-    and
-    [`GoroutineProfile`](/pkg/runtime/#GoroutineProfile),
-    no longer block if a garbage collection is in progress.
+<!-- CL 216557 -->
+Several functions, including
+[`ReadMemStats`](/pkg/runtime/#ReadMemStats)
+and
+[`GoroutineProfile`](/pkg/runtime/#GoroutineProfile),
+no longer block if a garbage collection is in progress.
 
-[runtime/pprof](/pkg/runtime/pprof/)
+#### [runtime/pprof](/pkg/runtime/pprof/)
 
-:   <!-- CL 189318 -->
-    The goroutine profile now includes the profile labels associated with each
-    goroutine at the time of profiling. This feature is not yet implemented for
-    the profile reported with `debug=2`.
+<!-- CL 189318 -->
+The goroutine profile now includes the profile labels associated with each
+goroutine at the time of profiling. This feature is not yet implemented for
+the profile reported with `debug=2`.
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   <!-- CL 216617 -->
-    [`FormatComplex`](/pkg/strconv/#FormatComplex) and [`ParseComplex`](/pkg/strconv/#ParseComplex) are added for working with complex numbers.
+<!-- CL 216617 -->
+[`FormatComplex`](/pkg/strconv/#FormatComplex) and [`ParseComplex`](/pkg/strconv/#ParseComplex) are added for working with complex numbers.
 
-    [`FormatComplex`](/pkg/strconv/#FormatComplex) converts a complex number into a string of the form (a+bi), where a and b are the real and imaginary parts.
+[`FormatComplex`](/pkg/strconv/#FormatComplex) converts a complex number into a string of the form (a+bi), where a and b are the real and imaginary parts.
 
-    [`ParseComplex`](/pkg/strconv/#ParseComplex) converts a string into a complex number of a specified precision. `ParseComplex` accepts complex numbers in the format `N+Ni`.
+[`ParseComplex`](/pkg/strconv/#ParseComplex) converts a string into a complex number of a specified precision. `ParseComplex` accepts complex numbers in the format `N+Ni`.
 
 <!-- strconv -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- CL 205899, golang.org/issue/33762 -->
-    The new method
-    [`Map.LoadAndDelete`](/pkg/sync/#Map.LoadAndDelete)
-    atomically deletes a key and returns the previous value if present.
+<!-- CL 205899, golang.org/issue/33762 -->
+The new method
+[`Map.LoadAndDelete`](/pkg/sync/#Map.LoadAndDelete)
+atomically deletes a key and returns the previous value if present.
 
-    <!-- CL 205899 -->
-    The method
-    [`Map.Delete`](/pkg/sync/#Map.Delete)
-    is more efficient.
+<!-- CL 205899 -->
+The method
+[`Map.Delete`](/pkg/sync/#Map.Delete)
+is more efficient.
 
 <!-- sync -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 231638 -->
-    On Unix systems, functions that use
-    [`SysProcAttr`](/pkg/syscall/#SysProcAttr)
-    will now reject attempts to set both the `Setctty`
-    and `Foreground` fields, as they both use
-    the `Ctty` field but do so in incompatible ways.
-    We expect that few existing programs set both fields.
+<!-- CL 231638 -->
+On Unix systems, functions that use
+[`SysProcAttr`](/pkg/syscall/#SysProcAttr)
+will now reject attempts to set both the `Setctty`
+and `Foreground` fields, as they both use
+the `Ctty` field but do so in incompatible ways.
+We expect that few existing programs set both fields.
 
-    Setting the `Setctty` field now requires that the
-    `Ctty` field be set to a file descriptor number in the
-    child process, as determined by the `ProcAttr.Files` field.
-    Using a child descriptor always worked, but there were certain
-    cases where using a parent file descriptor also happened to work.
-    Some programs that set `Setctty` will need to change
-    the value of `Ctty` to use a child descriptor number.
+Setting the `Setctty` field now requires that the
+`Ctty` field be set to a file descriptor number in the
+child process, as determined by the `ProcAttr.Files` field.
+Using a child descriptor always worked, but there were certain
+cases where using a parent file descriptor also happened to work.
+Some programs that set `Setctty` will need to change
+the value of `Ctty` to use a child descriptor number.
 
-    <!-- CL 220578 -->
-    It is [now possible](/pkg/syscall/#Proc.Call) to call
-    system calls that return floating point values
-    on `windows/amd64`.
+<!-- CL 220578 -->
+It is [now possible](/pkg/syscall/#Proc.Call) to call
+system calls that return floating point values
+on `windows/amd64`.
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- golang.org/issue/28135 -->
-    The `testing.T` type now has a
-    [`Deadline`](/pkg/testing/#T.Deadline) method
-    that reports the time at which the test binary will have exceeded its
-    timeout.
+<!-- golang.org/issue/28135 -->
+The `testing.T` type now has a
+[`Deadline`](/pkg/testing/#T.Deadline) method
+that reports the time at which the test binary will have exceeded its
+timeout.
 
-    <!-- golang.org/issue/34129 -->
-    A `TestMain` function is no longer required to call
-    `os.Exit`. If a `TestMain` function returns,
-    the test binary will call `os.Exit` with the value returned
-    by `m.Run`.
+<!-- golang.org/issue/34129 -->
+A `TestMain` function is no longer required to call
+`os.Exit`. If a `TestMain` function returns,
+the test binary will call `os.Exit` with the value returned
+by `m.Run`.
 
-    <!-- CL 226877, golang.org/issue/35998 -->
-    The new methods
-    [`T.TempDir`](/pkg/testing/#T.TempDir) and
-    [`B.TempDir`](/pkg/testing/#B.TempDir)
-    return temporary directories that are automatically cleaned up
-    at the end of the test.
+<!-- CL 226877, golang.org/issue/35998 -->
+The new methods
+[`T.TempDir`](/pkg/testing/#T.TempDir) and
+[`B.TempDir`](/pkg/testing/#B.TempDir)
+return temporary directories that are automatically cleaned up
+at the end of the test.
 
-    <!-- CL 229085 -->
-    `go` `test` `-v` now groups output by
-    test name, rather than printing the test name on each line.
+<!-- CL 229085 -->
+`go` `test` `-v` now groups output by
+test name, rather than printing the test name on each line.
 
 <!-- testing -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 226097 -->
-    [`JSEscape`](/pkg/text/template/#JSEscape) now
-    consistently uses Unicode escapes (`\u00XX`), which are
-    compatible with JSON.
+<!-- CL 226097 -->
+[`JSEscape`](/pkg/text/template/#JSEscape) now
+consistently uses Unicode escapes (`\u00XX`), which are
+compatible with JSON.
 
 <!-- text/template -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- CL 220424, CL 217362, golang.org/issue/33184 -->
-    The new method
-    [`Ticker.Reset`](/pkg/time/#Ticker.Reset)
-    supports changing the duration of a ticker.
+<!-- CL 220424, CL 217362, golang.org/issue/33184 -->
+The new method
+[`Ticker.Reset`](/pkg/time/#Ticker.Reset)
+supports changing the duration of a ticker.
 
-    <!-- CL 227878 -->
-    When returning an error, [`ParseDuration`](/pkg/time/#ParseDuration) now quotes the original value.
+<!-- CL 227878 -->
+When returning an error, [`ParseDuration`](/pkg/time/#ParseDuration) now quotes the original value.
 
 <!-- time -->
diff --git a/_content/doc/go1.16.md b/_content/doc/go1.16.md
index 74e33b4..2779e0a 100644
--- a/_content/doc/go1.16.md
+++ b/_content/doc/go1.16.md
@@ -505,586 +505,586 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[archive/zip](/pkg/archive/zip/)
+#### [archive/zip](/pkg/archive/zip/)
 
-:   <!-- CL 243937 -->
-    The new [`Reader.Open`](/pkg/archive/zip/#Reader.Open)
-    method implements the [`fs.FS`](/pkg/io/fs/#FS)
-    interface.
+<!-- CL 243937 -->
+The new [`Reader.Open`](/pkg/archive/zip/#Reader.Open)
+method implements the [`fs.FS`](/pkg/io/fs/#FS)
+interface.
 
-[crypto/dsa](/pkg/crypto/dsa/)
+#### [crypto/dsa](/pkg/crypto/dsa/)
 
-:   <!-- CL 257939 -->
-    The [`crypto/dsa`](/pkg/crypto/dsa/) package is now deprecated.
-    See [issue #40337](/issue/40337).
+<!-- CL 257939 -->
+The [`crypto/dsa`](/pkg/crypto/dsa/) package is now deprecated.
+See [issue #40337](/issue/40337).
 
 <!-- crypto/dsa -->
 
-[crypto/hmac](/pkg/crypto/hmac/)
+#### [crypto/hmac](/pkg/crypto/hmac/)
 
-:   <!-- CL 261960 -->
-    [`New`](/pkg/crypto/hmac/#New) will now panic if
-    separate calls to the hash generation function fail to return new values.
-    Previously, the behavior was undefined and invalid outputs were sometimes
-    generated.
+<!-- CL 261960 -->
+[`New`](/pkg/crypto/hmac/#New) will now panic if
+separate calls to the hash generation function fail to return new values.
+Previously, the behavior was undefined and invalid outputs were sometimes
+generated.
 
 <!-- crypto/hmac -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 256897 -->
-    I/O operations on closing or closed TLS connections can now be detected
-    using the new [`net.ErrClosed`](/pkg/net/#ErrClosed)
-    error. A typical use would be `errors.Is(err, net.ErrClosed)`.
+<!-- CL 256897 -->
+I/O operations on closing or closed TLS connections can now be detected
+using the new [`net.ErrClosed`](/pkg/net/#ErrClosed)
+error. A typical use would be `errors.Is(err, net.ErrClosed)`.
 
-    <!-- CL 266037 -->
-    A default write deadline is now set in
-    [`Conn.Close`](/pkg/crypto/tls/#Conn.Close)
-    before sending the "close notify" alert, in order to prevent blocking
-    indefinitely.
+<!-- CL 266037 -->
+A default write deadline is now set in
+[`Conn.Close`](/pkg/crypto/tls/#Conn.Close)
+before sending the "close notify" alert, in order to prevent blocking
+indefinitely.
 
-    <!-- CL 239748 -->
-    Clients now return a handshake error if the server selects
-    [
-    an ALPN protocol](/pkg/crypto/tls/#ConnectionState.NegotiatedProtocol) that was not in
-    [
-    the list advertised by the client](/pkg/crypto/tls/#Config.NextProtos).
+<!-- CL 239748 -->
+Clients now return a handshake error if the server selects
+[
+an ALPN protocol](/pkg/crypto/tls/#ConnectionState.NegotiatedProtocol) that was not in
+[
+the list advertised by the client](/pkg/crypto/tls/#Config.NextProtos).
 
-    <!-- CL 262857 -->
-    Servers will now prefer other available AEAD cipher suites (such as ChaCha20Poly1305)
-    over AES-GCM cipher suites if either the client or server doesn't have AES hardware
-    support, unless both [
-    `Config.PreferServerCipherSuites`](/pkg/crypto/tls/#Config.PreferServerCipherSuites)
-    and [`Config.CipherSuites`](/pkg/crypto/tls/#Config.CipherSuites)
-    are set. The client is assumed not to have AES hardware support if it does
-    not signal a preference for AES-GCM cipher suites.
+<!-- CL 262857 -->
+Servers will now prefer other available AEAD cipher suites (such as ChaCha20Poly1305)
+over AES-GCM cipher suites if either the client or server doesn't have AES hardware
+support, unless both [
+`Config.PreferServerCipherSuites`](/pkg/crypto/tls/#Config.PreferServerCipherSuites)
+and [`Config.CipherSuites`](/pkg/crypto/tls/#Config.CipherSuites)
+are set. The client is assumed not to have AES hardware support if it does
+not signal a preference for AES-GCM cipher suites.
 
-    <!-- CL 246637 -->
-    [`Config.Clone`](/pkg/crypto/tls/#Config.Clone) now
-    returns nil if the receiver is nil, rather than panicking.
+<!-- CL 246637 -->
+[`Config.Clone`](/pkg/crypto/tls/#Config.Clone) now
+returns nil if the receiver is nil, rather than panicking.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   The `GODEBUG=x509ignoreCN=0` flag will be removed in Go 1.17.
-    It enables the legacy behavior of treating the `CommonName`
-    field on X.509 certificates as a host name when no Subject Alternative
-    Names are present.
+The `GODEBUG=x509ignoreCN=0` flag will be removed in Go 1.17.
+It enables the legacy behavior of treating the `CommonName`
+field on X.509 certificates as a host name when no Subject Alternative
+Names are present.
 
-    <!-- CL 235078 -->
-    [`ParseCertificate`](/pkg/crypto/x509/#ParseCertificate) and
-    [`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
-    now enforce string encoding restrictions for the `DNSNames`,
-    `EmailAddresses`, and `URIs` fields. These fields
-    can only contain strings with characters within the ASCII range.
+<!-- CL 235078 -->
+[`ParseCertificate`](/pkg/crypto/x509/#ParseCertificate) and
+[`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
+now enforce string encoding restrictions for the `DNSNames`,
+`EmailAddresses`, and `URIs` fields. These fields
+can only contain strings with characters within the ASCII range.
 
-    <!-- CL 259697 -->
-    [`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
-    now verifies the generated certificate's signature using the signer's
-    public key. If the signature is invalid, an error is returned, instead of
-    a malformed certificate.
+<!-- CL 259697 -->
+[`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
+now verifies the generated certificate's signature using the signer's
+public key. If the signature is invalid, an error is returned, instead of
+a malformed certificate.
 
-    <!-- CL 257939 -->
-    DSA signature verification is no longer supported. Note that DSA signature
-    generation was never supported.
-    See [issue #40337](/issue/40337).
+<!-- CL 257939 -->
+DSA signature verification is no longer supported. Note that DSA signature
+generation was never supported.
+See [issue #40337](/issue/40337).
 
-    <!-- CL 257257 -->
-    On Windows, [`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
-    will now return all certificate chains that are built by the platform
-    certificate verifier, instead of just the highest ranked chain.
+<!-- CL 257257 -->
+On Windows, [`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
+will now return all certificate chains that are built by the platform
+certificate verifier, instead of just the highest ranked chain.
 
-    <!-- CL 262343 -->
-    The new [`SystemRootsError.Unwrap`](/pkg/crypto/x509/#SystemRootsError.Unwrap)
-    method allows accessing the [`Err`](/pkg/crypto/x509/#SystemRootsError.Err)
-    field through the [`errors`](/pkg/errors) package functions.
+<!-- CL 262343 -->
+The new [`SystemRootsError.Unwrap`](/pkg/crypto/x509/#SystemRootsError.Unwrap)
+method allows accessing the [`Err`](/pkg/crypto/x509/#SystemRootsError.Err)
+field through the [`errors`](/pkg/errors) package functions.
 
-    <!-- CL 230025 -->
-    On Unix systems, the `crypto/x509` package is now more
-    efficient in how it stores its copy of the system cert pool.
-    Programs that use only a small number of roots will use around a
-    half megabyte less memory.
+<!-- CL 230025 -->
+On Unix systems, the `crypto/x509` package is now more
+efficient in how it stores its copy of the system cert pool.
+Programs that use only a small number of roots will use around a
+half megabyte less memory.
 
 <!-- crypto/x509 -->
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   <!-- CL 255138 -->
-    More [`DT`](/pkg/debug/elf/#DT_NULL)
-    and [`PT`](/pkg/debug/elf/#PT_NULL)
-    constants have been added.
+<!-- CL 255138 -->
+More [`DT`](/pkg/debug/elf/#DT_NULL)
+and [`PT`](/pkg/debug/elf/#PT_NULL)
+constants have been added.
 
 <!-- debug/elf -->
 
-[encoding/asn1](/pkg/encoding/asn1)
+#### [encoding/asn1](/pkg/encoding/asn1)
 
-:   <!-- CL 255881 -->
-    [`Unmarshal`](/pkg/encoding/asn1/#Unmarshal) and
-    [`UnmarshalWithParams`](/pkg/encoding/asn1/#UnmarshalWithParams)
-    now return an error instead of panicking when the argument is not
-    a pointer or is nil. This change matches the behavior of other
-    encoding packages such as [`encoding/json`](/pkg/encoding/json).
+<!-- CL 255881 -->
+[`Unmarshal`](/pkg/encoding/asn1/#Unmarshal) and
+[`UnmarshalWithParams`](/pkg/encoding/asn1/#UnmarshalWithParams)
+now return an error instead of panicking when the argument is not
+a pointer or is nil. This change matches the behavior of other
+encoding packages such as [`encoding/json`](/pkg/encoding/json).
 
-[encoding/json](/pkg/encoding/json/)
+#### [encoding/json](/pkg/encoding/json/)
 
-:   <!-- CL 234818 -->
-    The `json` struct field tags understood by
-    [`Marshal`](/pkg/encoding/json/#Marshal),
-    [`Unmarshal`](/pkg/encoding/json/#Unmarshal),
-    and related functionality now permit semicolon characters within
-    a JSON object name for a Go struct field.
+<!-- CL 234818 -->
+The `json` struct field tags understood by
+[`Marshal`](/pkg/encoding/json/#Marshal),
+[`Unmarshal`](/pkg/encoding/json/#Unmarshal),
+and related functionality now permit semicolon characters within
+a JSON object name for a Go struct field.
 
 <!-- encoding/json -->
 
-[encoding/xml](/pkg/encoding/xml/)
+#### [encoding/xml](/pkg/encoding/xml/)
 
-:   <!-- CL 264024 -->
-    The encoder has always taken care to avoid using namespace prefixes
-    beginning with `xml`, which are reserved by the XML
-    specification.
-    Now, following the specification more closely, that check is
-    case-insensitive, so that prefixes beginning
-    with `XML`, `XmL`, and so on are also
-    avoided.
+<!-- CL 264024 -->
+The encoder has always taken care to avoid using namespace prefixes
+beginning with `xml`, which are reserved by the XML
+specification.
+Now, following the specification more closely, that check is
+case-insensitive, so that prefixes beginning
+with `XML`, `XmL`, and so on are also
+avoided.
 
 <!-- encoding/xml -->
 
-[flag](/pkg/flag/)
+#### [flag](/pkg/flag/)
 
-:   <!-- CL 240014 -->
-    The new [`Func`](/pkg/flag/#Func) function
-    allows registering a flag implemented by calling a function,
-    as a lighter-weight alternative to implementing the
-    [`Value`](/pkg/flag/#Value) interface.
+<!-- CL 240014 -->
+The new [`Func`](/pkg/flag/#Func) function
+allows registering a flag implemented by calling a function,
+as a lighter-weight alternative to implementing the
+[`Value`](/pkg/flag/#Value) interface.
 
 <!-- flag -->
 
-[go/build](/pkg/go/build/)
+#### [go/build](/pkg/go/build/)
 
-:   <!-- CL 243941, CL 283636 -->
-    The [`Package`](/pkg/go/build/#Package)
-    struct has new fields that report information
-    about `//go:embed` directives in the package:
-    [`EmbedPatterns`](/pkg/go/build/#Package.EmbedPatterns),
-    [`EmbedPatternPos`](/pkg/go/build/#Package.EmbedPatternPos),
-    [`TestEmbedPatterns`](/pkg/go/build/#Package.TestEmbedPatterns),
-    [`TestEmbedPatternPos`](/pkg/go/build/#Package.TestEmbedPatternPos),
-    [`XTestEmbedPatterns`](/pkg/go/build/#Package.XTestEmbedPatterns),
-    [`XTestEmbedPatternPos`](/pkg/go/build/#Package.XTestEmbedPatternPos).
+<!-- CL 243941, CL 283636 -->
+The [`Package`](/pkg/go/build/#Package)
+struct has new fields that report information
+about `//go:embed` directives in the package:
+[`EmbedPatterns`](/pkg/go/build/#Package.EmbedPatterns),
+[`EmbedPatternPos`](/pkg/go/build/#Package.EmbedPatternPos),
+[`TestEmbedPatterns`](/pkg/go/build/#Package.TestEmbedPatterns),
+[`TestEmbedPatternPos`](/pkg/go/build/#Package.TestEmbedPatternPos),
+[`XTestEmbedPatterns`](/pkg/go/build/#Package.XTestEmbedPatterns),
+[`XTestEmbedPatternPos`](/pkg/go/build/#Package.XTestEmbedPatternPos).
 
-    <!-- CL 240551 -->
-    The [`Package`](/pkg/go/build/#Package) field
-    [`IgnoredGoFiles`](/pkg/go/build/#Package.IgnoredGoFiles)
-    will no longer include files that start with "\_" or ".",
-    as those files are always ignored.
-    `IgnoredGoFiles` is for files ignored because of
-    build constraints.
+<!-- CL 240551 -->
+The [`Package`](/pkg/go/build/#Package) field
+[`IgnoredGoFiles`](/pkg/go/build/#Package.IgnoredGoFiles)
+will no longer include files that start with "\_" or ".",
+as those files are always ignored.
+`IgnoredGoFiles` is for files ignored because of
+build constraints.
 
-    <!-- CL 240551 -->
-    The new [`Package`](/pkg/go/build/#Package)
-    field [`IgnoredOtherFiles`](/pkg/go/build/#Package.IgnoredOtherFiles)
-    has a list of non-Go files ignored because of build constraints.
+<!-- CL 240551 -->
+The new [`Package`](/pkg/go/build/#Package)
+field [`IgnoredOtherFiles`](/pkg/go/build/#Package.IgnoredOtherFiles)
+has a list of non-Go files ignored because of build constraints.
 
 <!-- go/build -->
 
-[go/build/constraint](/pkg/go/build/constraint/)
+#### [go/build/constraint](/pkg/go/build/constraint/)
 
-:   <!-- CL 240604 -->
-    The new
-    [`go/build/constraint`](/pkg/go/build/constraint/)
-    package parses build constraint lines, both the original
-    `// +build` syntax and the `//go:build`
-    syntax that will be introduced in Go 1.17.
-    This package exists so that tools built with Go 1.16 will be able
-    to process Go 1.17 source code.
-    See [https://golang.org/design/draft-gobuild](/design/draft-gobuild)
-    for details about the build constraint syntaxes and the planned
-    transition to the `//go:build` syntax.
-    Note that `//go:build` lines are **not** supported
-    in Go 1.16 and should not be introduced into Go programs yet.
+<!-- CL 240604 -->
+The new
+[`go/build/constraint`](/pkg/go/build/constraint/)
+package parses build constraint lines, both the original
+`// +build` syntax and the `//go:build`
+syntax that will be introduced in Go 1.17.
+This package exists so that tools built with Go 1.16 will be able
+to process Go 1.17 source code.
+See [https://golang.org/design/draft-gobuild](/design/draft-gobuild)
+for details about the build constraint syntaxes and the planned
+transition to the `//go:build` syntax.
+Note that `//go:build` lines are **not** supported
+in Go 1.16 and should not be introduced into Go programs yet.
 
 <!-- go/build/constraint -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- CL 243938 -->
-    The new [`template.ParseFS`](/pkg/html/template/#ParseFS)
-    function and [`template.Template.ParseFS`](/pkg/html/template/#Template.ParseFS)
-    method are like [`template.ParseGlob`](/pkg/html/template/#ParseGlob)
-    and [`template.Template.ParseGlob`](/pkg/html/template/#Template.ParseGlob),
-    but read the templates from an [`fs.FS`](/pkg/io/fs/#FS).
+<!-- CL 243938 -->
+The new [`template.ParseFS`](/pkg/html/template/#ParseFS)
+function and [`template.Template.ParseFS`](/pkg/html/template/#Template.ParseFS)
+method are like [`template.ParseGlob`](/pkg/html/template/#ParseGlob)
+and [`template.Template.ParseGlob`](/pkg/html/template/#Template.ParseGlob),
+but read the templates from an [`fs.FS`](/pkg/io/fs/#FS).
 
 <!-- html/template -->
 
-[io](/pkg/io/)
+#### [io](/pkg/io/)
 
-:   <!-- CL 261577 -->
-    The package now defines a
-    [`ReadSeekCloser`](/pkg/io/#ReadSeekCloser) interface.
+<!-- CL 261577 -->
+The package now defines a
+[`ReadSeekCloser`](/pkg/io/#ReadSeekCloser) interface.
 
-    <!-- CL 263141 -->
-    The package now defines
-    [`Discard`](/pkg/io/#Discard),
-    [`NopCloser`](/pkg/io/#NopCloser), and
-    [`ReadAll`](/pkg/io/#ReadAll),
-    to be used instead of the same names in the
-    [`io/ioutil`](/pkg/io/ioutil/) package.
+<!-- CL 263141 -->
+The package now defines
+[`Discard`](/pkg/io/#Discard),
+[`NopCloser`](/pkg/io/#NopCloser), and
+[`ReadAll`](/pkg/io/#ReadAll),
+to be used instead of the same names in the
+[`io/ioutil`](/pkg/io/ioutil/) package.
 
 <!-- io -->
 
-[log](/pkg/log/)
+#### [log](/pkg/log/)
 
-:   <!-- CL 264460 -->
-    The new [`Default`](/pkg/log/#Default) function
-    provides access to the default [`Logger`](/pkg/log/#Logger).
+<!-- CL 264460 -->
+The new [`Default`](/pkg/log/#Default) function
+provides access to the default [`Logger`](/pkg/log/#Logger).
 
 <!-- log -->
 
-[log/syslog](/pkg/log/syslog/)
+#### [log/syslog](/pkg/log/syslog/)
 
-:   <!-- CL 264297 -->
-    The [`Writer`](/pkg/log/syslog/#Writer)
-    now uses the local message format
-    (omitting the host name and using a shorter time stamp)
-    when logging to custom Unix domain sockets,
-    matching the format already used for the default log socket.
+<!-- CL 264297 -->
+The [`Writer`](/pkg/log/syslog/#Writer)
+now uses the local message format
+(omitting the host name and using a shorter time stamp)
+when logging to custom Unix domain sockets,
+matching the format already used for the default log socket.
 
 <!-- log/syslog -->
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   <!-- CL 247477 -->
-    The [`Reader`](/pkg/mime/multipart/#Reader)'s
-    [`ReadForm`](/pkg/mime/multipart/#Reader.ReadForm)
-    method no longer rejects form data
-    when passed the maximum int64 value as a limit.
+<!-- CL 247477 -->
+The [`Reader`](/pkg/mime/multipart/#Reader)'s
+[`ReadForm`](/pkg/mime/multipart/#Reader.ReadForm)
+method no longer rejects form data
+when passed the maximum int64 value as a limit.
 
 <!-- mime/multipart -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 250357 -->
-    The case of I/O on a closed network connection, or I/O on a network
-    connection that is closed before any of the I/O completes, can now
-    be detected using the new [`ErrClosed`](/pkg/net/#ErrClosed)
-    error. A typical use would be `errors.Is(err, net.ErrClosed)`.
-    In earlier releases the only way to reliably detect this case was to
-    match the string returned by the `Error` method
-    with `"use of closed network connection"`.
+<!-- CL 250357 -->
+The case of I/O on a closed network connection, or I/O on a network
+connection that is closed before any of the I/O completes, can now
+be detected using the new [`ErrClosed`](/pkg/net/#ErrClosed)
+error. A typical use would be `errors.Is(err, net.ErrClosed)`.
+In earlier releases the only way to reliably detect this case was to
+match the string returned by the `Error` method
+with `"use of closed network connection"`.
 
-    <!-- CL 255898 -->
-    In previous Go releases the default TCP listener backlog size on Linux systems,
-    set by `/proc/sys/net/core/somaxconn`, was limited to a maximum of `65535`.
-    On Linux kernel version 4.1 and above, the maximum is now `4294967295`.
+<!-- CL 255898 -->
+In previous Go releases the default TCP listener backlog size on Linux systems,
+set by `/proc/sys/net/core/somaxconn`, was limited to a maximum of `65535`.
+On Linux kernel version 4.1 and above, the maximum is now `4294967295`.
 
-    <!-- CL 238629 -->
-    On Linux, host name lookups no longer use DNS before checking
-    `/etc/hosts` when `/etc/nsswitch.conf`
-    is missing; this is common on musl-based systems and makes
-    Go programs match the behavior of C programs on those systems.
+<!-- CL 238629 -->
+On Linux, host name lookups no longer use DNS before checking
+`/etc/hosts` when `/etc/nsswitch.conf`
+is missing; this is common on musl-based systems and makes
+Go programs match the behavior of C programs on those systems.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 233637 -->
-    In the [`net/http`](/pkg/net/http/) package, the
-    behavior of [`StripPrefix`](/pkg/net/http/#StripPrefix)
-    has been changed to strip the prefix from the request URL's
-    `RawPath` field in addition to its `Path` field.
-    In past releases, only the `Path` field was trimmed, and so if the
-    request URL contained any escaped characters the URL would be modified to
-    have mismatched `Path` and `RawPath` fields.
-    In Go 1.16, `StripPrefix` trims both fields.
-    If there are escaped characters in the prefix part of the request URL the
-    handler serves a 404 instead of its previous behavior of invoking the
-    underlying handler with a mismatched `Path`/`RawPath` pair.
+<!-- CL 233637 -->
+In the [`net/http`](/pkg/net/http/) package, the
+behavior of [`StripPrefix`](/pkg/net/http/#StripPrefix)
+has been changed to strip the prefix from the request URL's
+`RawPath` field in addition to its `Path` field.
+In past releases, only the `Path` field was trimmed, and so if the
+request URL contained any escaped characters the URL would be modified to
+have mismatched `Path` and `RawPath` fields.
+In Go 1.16, `StripPrefix` trims both fields.
+If there are escaped characters in the prefix part of the request URL the
+handler serves a 404 instead of its previous behavior of invoking the
+underlying handler with a mismatched `Path`/`RawPath` pair.
 
-    <!-- CL 252497 -->
-    The [`net/http`](/pkg/net/http/) package now rejects HTTP range requests
-    of the form `"Range": "bytes=--N"` where `"-N"` is a negative suffix length, for
-    example `"Range": "bytes=--2"`. It now replies with a `416 "Range Not Satisfiable"` response.
+<!-- CL 252497 -->
+The [`net/http`](/pkg/net/http/) package now rejects HTTP range requests
+of the form `"Range": "bytes=--N"` where `"-N"` is a negative suffix length, for
+example `"Range": "bytes=--2"`. It now replies with a `416 "Range Not Satisfiable"` response.
 
-    <!-- CL 256498, golang.org/issue/36990 -->
-    Cookies set with [`SameSiteDefaultMode`](/pkg/net/http/#SameSiteDefaultMode)
-    now behave according to the current spec (no attribute is set) instead of
-    generating a SameSite key without a value.
+<!-- CL 256498, golang.org/issue/36990 -->
+Cookies set with [`SameSiteDefaultMode`](/pkg/net/http/#SameSiteDefaultMode)
+now behave according to the current spec (no attribute is set) instead of
+generating a SameSite key without a value.
 
-    <!-- CL 250039 -->
-    The [`Client`](/pkg/net/http/#Client) now sends
-    an explicit `Content-Length:` `0`
-    header in `PATCH` requests with empty bodies,
-    matching the existing behavior of `POST` and `PUT`.
+<!-- CL 250039 -->
+The [`Client`](/pkg/net/http/#Client) now sends
+an explicit `Content-Length:` `0`
+header in `PATCH` requests with empty bodies,
+matching the existing behavior of `POST` and `PUT`.
 
-    <!-- CL 249440 -->
-    The [`ProxyFromEnvironment`](/pkg/net/http/#ProxyFromEnvironment)
-    function no longer returns the setting of the `HTTP_PROXY`
-    environment variable for `https://` URLs when
-    `HTTPS_PROXY` is unset.
+<!-- CL 249440 -->
+The [`ProxyFromEnvironment`](/pkg/net/http/#ProxyFromEnvironment)
+function no longer returns the setting of the `HTTP_PROXY`
+environment variable for `https://` URLs when
+`HTTPS_PROXY` is unset.
 
-    <!-- 259917 -->
-    The [`Transport`](/pkg/net/http/#Transport)
-    type has a new field
-    [`GetProxyConnectHeader`](/pkg/net/http/#Transport.GetProxyConnectHeader)
-    which may be set to a function that returns headers to send to a
-    proxy during a `CONNECT` request.
-    In effect `GetProxyConnectHeader` is a dynamic
-    version of the existing field
-    [`ProxyConnectHeader`](/pkg/net/http/#Transport.ProxyConnectHeader);
-    if `GetProxyConnectHeader` is not `nil`,
-    then `ProxyConnectHeader` is ignored.
+<!-- 259917 -->
+The [`Transport`](/pkg/net/http/#Transport)
+type has a new field
+[`GetProxyConnectHeader`](/pkg/net/http/#Transport.GetProxyConnectHeader)
+which may be set to a function that returns headers to send to a
+proxy during a `CONNECT` request.
+In effect `GetProxyConnectHeader` is a dynamic
+version of the existing field
+[`ProxyConnectHeader`](/pkg/net/http/#Transport.ProxyConnectHeader);
+if `GetProxyConnectHeader` is not `nil`,
+then `ProxyConnectHeader` is ignored.
 
-    <!-- CL 243939 -->
-    The new [`http.FS`](/pkg/net/http/#FS)
-    function converts an [`fs.FS`](/pkg/io/fs/#FS)
-    to an [`http.FileSystem`](/pkg/net/http/#FileSystem).
+<!-- CL 243939 -->
+The new [`http.FS`](/pkg/net/http/#FS)
+function converts an [`fs.FS`](/pkg/io/fs/#FS)
+to an [`http.FileSystem`](/pkg/net/http/#FileSystem).
 
 <!-- net/http -->
 
-[net/http/httputil](/pkg/net/http/httputil/)
+#### [net/http/httputil](/pkg/net/http/httputil/)
 
-:   <!-- CL 260637 -->
-    [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
-    now flushes buffered data more aggressively when proxying
-    streamed responses with unknown body lengths.
+<!-- CL 260637 -->
+[`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
+now flushes buffered data more aggressively when proxying
+streamed responses with unknown body lengths.
 
 <!-- net/http/httputil -->
 
-[net/smtp](/pkg/net/smtp/)
+#### [net/smtp](/pkg/net/smtp/)
 
-:   <!-- CL 247257 -->
-    The [`Client`](/pkg/net/smtp/#Client)'s
-    [`Mail`](/pkg/net/smtp/#Client.Mail)
-    method now sends the `SMTPUTF8` directive to
-    servers that support it, signaling that addresses are encoded in UTF-8.
+<!-- CL 247257 -->
+The [`Client`](/pkg/net/smtp/#Client)'s
+[`Mail`](/pkg/net/smtp/#Client.Mail)
+method now sends the `SMTPUTF8` directive to
+servers that support it, signaling that addresses are encoded in UTF-8.
 
 <!-- net/smtp -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL 242998 -->
-    [`Process.Signal`](/pkg/os/#Process.Signal) now
-    returns [`ErrProcessDone`](/pkg/os/#ErrProcessDone)
-    instead of the unexported `errFinished` when the process has
-    already finished.
+<!-- CL 242998 -->
+[`Process.Signal`](/pkg/os/#Process.Signal) now
+returns [`ErrProcessDone`](/pkg/os/#ErrProcessDone)
+instead of the unexported `errFinished` when the process has
+already finished.
 
-    <!-- CL 261540 -->
-    The package defines a new type
-    [`DirEntry`](/pkg/os/#DirEntry)
-    as an alias for [`fs.DirEntry`](/pkg/io/fs/#DirEntry).
-    The new [`ReadDir`](/pkg/os/#ReadDir)
-    function and the new
-    [`File.ReadDir`](/pkg/os/#File.ReadDir)
-    method can be used to read the contents of a directory into a
-    slice of [`DirEntry`](/pkg/os/#DirEntry).
-    The [`File.Readdir`](/pkg/os/#File.Readdir)
-    method (note the lower case `d` in `dir`)
-    still exists, returning a slice of
-    [`FileInfo`](/pkg/os/#FileInfo), but for
-    most programs it will be more efficient to switch to
-    [`File.ReadDir`](/pkg/os/#File.ReadDir).
+<!-- CL 261540 -->
+The package defines a new type
+[`DirEntry`](/pkg/os/#DirEntry)
+as an alias for [`fs.DirEntry`](/pkg/io/fs/#DirEntry).
+The new [`ReadDir`](/pkg/os/#ReadDir)
+function and the new
+[`File.ReadDir`](/pkg/os/#File.ReadDir)
+method can be used to read the contents of a directory into a
+slice of [`DirEntry`](/pkg/os/#DirEntry).
+The [`File.Readdir`](/pkg/os/#File.Readdir)
+method (note the lower case `d` in `dir`)
+still exists, returning a slice of
+[`FileInfo`](/pkg/os/#FileInfo), but for
+most programs it will be more efficient to switch to
+[`File.ReadDir`](/pkg/os/#File.ReadDir).
 
-    <!-- CL 263141 -->
-    The package now defines
-    [`CreateTemp`](/pkg/os/#CreateTemp),
-    [`MkdirTemp`](/pkg/os/#MkdirTemp),
-    [`ReadFile`](/pkg/os/#ReadFile), and
-    [`WriteFile`](/pkg/os/#WriteFile),
-    to be used instead of functions defined in the
-    [`io/ioutil`](/pkg/io/ioutil/) package.
+<!-- CL 263141 -->
+The package now defines
+[`CreateTemp`](/pkg/os/#CreateTemp),
+[`MkdirTemp`](/pkg/os/#MkdirTemp),
+[`ReadFile`](/pkg/os/#ReadFile), and
+[`WriteFile`](/pkg/os/#WriteFile),
+to be used instead of functions defined in the
+[`io/ioutil`](/pkg/io/ioutil/) package.
 
-    <!-- CL 243906 -->
-    The types [`FileInfo`](/pkg/os/#FileInfo),
-    [`FileMode`](/pkg/os/#FileMode), and
-    [`PathError`](/pkg/os/#PathError)
-    are now aliases for types of the same name in the
-    [`io/fs`](/pkg/io/fs/) package.
-    Function signatures in the [`os`](/pkg/os/)
-    package have been updated to refer to the names in the
-    [`io/fs`](/pkg/io/fs/) package.
-    This should not affect any existing code.
+<!-- CL 243906 -->
+The types [`FileInfo`](/pkg/os/#FileInfo),
+[`FileMode`](/pkg/os/#FileMode), and
+[`PathError`](/pkg/os/#PathError)
+are now aliases for types of the same name in the
+[`io/fs`](/pkg/io/fs/) package.
+Function signatures in the [`os`](/pkg/os/)
+package have been updated to refer to the names in the
+[`io/fs`](/pkg/io/fs/) package.
+This should not affect any existing code.
 
-    <!-- CL 243911 -->
-    The new [`DirFS`](/pkg/os/#DirFS) function
-    provides an implementation of
-    [`fs.FS`](/pkg/io/fs/#FS) backed by a tree
-    of operating system files.
+<!-- CL 243911 -->
+The new [`DirFS`](/pkg/os/#DirFS) function
+provides an implementation of
+[`fs.FS`](/pkg/io/fs/#FS) backed by a tree
+of operating system files.
 
 <!-- os -->
 
-[os/signal](/pkg/os/signal/)
+#### [os/signal](/pkg/os/signal/)
 
-:   <!-- CL 219640 -->
-    The new
-    [`NotifyContext`](/pkg/os/signal/#NotifyContext)
-    function allows creating contexts that are canceled upon arrival of
-    specific signals.
+<!-- CL 219640 -->
+The new
+[`NotifyContext`](/pkg/os/signal/#NotifyContext)
+function allows creating contexts that are canceled upon arrival of
+specific signals.
 
 <!-- os/signal -->
 
-[path](/pkg/path/)
+#### [path](/pkg/path/)
 
-:   <!-- CL 264397, golang.org/issues/28614 -->
-    The [`Match`](/pkg/path/#Match) function now
-    returns an error if the unmatched part of the pattern has a
-    syntax error. Previously, the function returned early on a failed
-    match, and thus did not report any later syntax error in the
-    pattern.
+<!-- CL 264397, golang.org/issues/28614 -->
+The [`Match`](/pkg/path/#Match) function now
+returns an error if the unmatched part of the pattern has a
+syntax error. Previously, the function returned early on a failed
+match, and thus did not report any later syntax error in the
+pattern.
 
 <!-- path -->
 
-[path/filepath](/pkg/path/filepath/)
+#### [path/filepath](/pkg/path/filepath/)
 
-:   <!-- CL 267887 -->
-    The new function
-    [`WalkDir`](/pkg/path/filepath/#WalkDir)
-    is similar to
-    [`Walk`](/pkg/path/filepath/#Walk),
-    but is typically more efficient.
-    The function passed to `WalkDir` receives a
-    [`fs.DirEntry`](/pkg/io/fs/#DirEntry)
-    instead of a
-    [`fs.FileInfo`](/pkg/io/fs/#FileInfo).
-    (To clarify for those who recall the `Walk` function
-    as taking an [`os.FileInfo`](/pkg/os/#FileInfo),
-    `os.FileInfo` is now an alias for `fs.FileInfo`.)
+<!-- CL 267887 -->
+The new function
+[`WalkDir`](/pkg/path/filepath/#WalkDir)
+is similar to
+[`Walk`](/pkg/path/filepath/#Walk),
+but is typically more efficient.
+The function passed to `WalkDir` receives a
+[`fs.DirEntry`](/pkg/io/fs/#DirEntry)
+instead of a
+[`fs.FileInfo`](/pkg/io/fs/#FileInfo).
+(To clarify for those who recall the `Walk` function
+as taking an [`os.FileInfo`](/pkg/os/#FileInfo),
+`os.FileInfo` is now an alias for `fs.FileInfo`.)
 
-    <!-- CL 264397, golang.org/issues/28614 -->
-    The [`Match`](/pkg/path/filepath#Match) and
-    [`Glob`](/pkg/path/filepath#Glob) functions now
-    return an error if the unmatched part of the pattern has a
-    syntax error. Previously, the functions returned early on a failed
-    match, and thus did not report any later syntax error in the
-    pattern.
+<!-- CL 264397, golang.org/issues/28614 -->
+The [`Match`](/pkg/path/filepath#Match) and
+[`Glob`](/pkg/path/filepath#Glob) functions now
+return an error if the unmatched part of the pattern has a
+syntax error. Previously, the functions returned early on a failed
+match, and thus did not report any later syntax error in the
+pattern.
 
 <!-- path/filepath -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 192331 -->
-    The Zero function has been optimized to avoid allocations. Code
-    which incorrectly compares the returned Value to another Value
-    using == or DeepEqual may get different results than those
-    obtained in previous Go versions. The documentation
-    for [`reflect.Value`](/pkg/reflect#Value)
-    describes how to compare two `Value`s correctly.
+<!-- CL 192331 -->
+The Zero function has been optimized to avoid allocations. Code
+which incorrectly compares the returned Value to another Value
+using == or DeepEqual may get different results than those
+obtained in previous Go versions. The documentation
+for [`reflect.Value`](/pkg/reflect#Value)
+describes how to compare two `Value`s correctly.
 
 <!-- reflect -->
 
-[runtime/debug](/pkg/runtime/debug/)
+#### [runtime/debug](/pkg/runtime/debug/)
 
-:   <!-- CL 249677 -->
-    The [`runtime.Error`](/pkg/runtime#Error) values
-    used when `SetPanicOnFault` is enabled may now have an
-    `Addr` method. If that method exists, it returns the memory
-    address that triggered the fault.
+<!-- CL 249677 -->
+The [`runtime.Error`](/pkg/runtime#Error) values
+used when `SetPanicOnFault` is enabled may now have an
+`Addr` method. If that method exists, it returns the memory
+address that triggered the fault.
 
 <!-- runtime/debug -->
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   <!-- CL 260858 -->
-    [`ParseFloat`](/pkg/strconv/#ParseFloat) now uses
-    the [Eisel-Lemire
-    algorithm](https://nigeltao.github.io/blog/2020/eisel-lemire.html), improving performance by up to a factor of 2. This can
-    also speed up decoding textual formats like [`encoding/json`](/pkg/encoding/json/).
+<!-- CL 260858 -->
+[`ParseFloat`](/pkg/strconv/#ParseFloat) now uses
+the [Eisel-Lemire
+algorithm](https://nigeltao.github.io/blog/2020/eisel-lemire.html), improving performance by up to a factor of 2. This can
+also speed up decoding textual formats like [`encoding/json`](/pkg/encoding/json/).
 
 <!-- strconv -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 263271 -->
-    [`NewCallback`](/pkg/syscall/?GOOS=windows#NewCallback)
-    and
-    [`NewCallbackCDecl`](/pkg/syscall/?GOOS=windows#NewCallbackCDecl)
-    now correctly support callback functions with multiple
-    sub-`uintptr`-sized arguments in a row. This may
-    require changing uses of these functions to eliminate manual
-    padding between small arguments.
+<!-- CL 263271 -->
+[`NewCallback`](/pkg/syscall/?GOOS=windows#NewCallback)
+and
+[`NewCallbackCDecl`](/pkg/syscall/?GOOS=windows#NewCallbackCDecl)
+now correctly support callback functions with multiple
+sub-`uintptr`-sized arguments in a row. This may
+require changing uses of these functions to eliminate manual
+padding between small arguments.
 
-    <!-- CL 261917 -->
-    [`SysProcAttr`](/pkg/syscall/?GOOS=windows#SysProcAttr) on Windows has a new `NoInheritHandles` field that disables inheriting handles when creating a new process.
+<!-- CL 261917 -->
+[`SysProcAttr`](/pkg/syscall/?GOOS=windows#SysProcAttr) on Windows has a new `NoInheritHandles` field that disables inheriting handles when creating a new process.
 
-    <!-- CL 269761, golang.org/issue/42584 -->
-    [`DLLError`](/pkg/syscall/?GOOS=windows#DLLError) on Windows now has an `Unwrap` method for unwrapping its underlying error.
+<!-- CL 269761, golang.org/issue/42584 -->
+[`DLLError`](/pkg/syscall/?GOOS=windows#DLLError) on Windows now has an `Unwrap` method for unwrapping its underlying error.
 
-    <!-- CL 210639 -->
-    On Linux,
-    [`Setgid`](/pkg/syscall/#Setgid),
-    [`Setuid`](/pkg/syscall/#Setuid),
-    and related calls are now implemented.
-    Previously, they returned an `syscall.EOPNOTSUPP` error.
+<!-- CL 210639 -->
+On Linux,
+[`Setgid`](/pkg/syscall/#Setgid),
+[`Setuid`](/pkg/syscall/#Setuid),
+and related calls are now implemented.
+Previously, they returned an `syscall.EOPNOTSUPP` error.
 
-    <!-- CL 210639 -->
-    On Linux, the new functions
-    [`AllThreadsSyscall`](/pkg/syscall/#AllThreadsSyscall)
-    and [`AllThreadsSyscall6`](/pkg/syscall/#AllThreadsSyscall6)
-    may be used to make a system call on all Go threads in the process.
-    These functions may only be used by programs that do not use cgo;
-    if a program uses cgo, they will always return
-    [`syscall.ENOTSUP`](/pkg/syscall/#ENOTSUP).
+<!-- CL 210639 -->
+On Linux, the new functions
+[`AllThreadsSyscall`](/pkg/syscall/#AllThreadsSyscall)
+and [`AllThreadsSyscall6`](/pkg/syscall/#AllThreadsSyscall6)
+may be used to make a system call on all Go threads in the process.
+These functions may only be used by programs that do not use cgo;
+if a program uses cgo, they will always return
+[`syscall.ENOTSUP`](/pkg/syscall/#ENOTSUP).
 
 <!-- syscall -->
 
-[testing/iotest](/pkg/testing/iotest/)
+#### [testing/iotest](/pkg/testing/iotest/)
 
-:   <!-- CL 199501 -->
-    The new
-    [`ErrReader`](/pkg/testing/iotest/#ErrReader)
-    function returns an
-    [`io.Reader`](/pkg/io/#Reader) that always
-    returns an error.
+<!-- CL 199501 -->
+The new
+[`ErrReader`](/pkg/testing/iotest/#ErrReader)
+function returns an
+[`io.Reader`](/pkg/io/#Reader) that always
+returns an error.
 
-    <!-- CL 243909 -->
-    The new
-    [`TestReader`](/pkg/testing/iotest/#TestReader)
-    function tests that an [`io.Reader`](/pkg/io/#Reader)
-    behaves correctly.
+<!-- CL 243909 -->
+The new
+[`TestReader`](/pkg/testing/iotest/#TestReader)
+function tests that an [`io.Reader`](/pkg/io/#Reader)
+behaves correctly.
 
 <!-- testing/iotest -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 254257, golang.org/issue/29770 -->
-    Newlines characters are now allowed inside action delimiters,
-    permitting actions to span multiple lines.
+<!-- CL 254257, golang.org/issue/29770 -->
+Newlines characters are now allowed inside action delimiters,
+permitting actions to span multiple lines.
 
-    <!-- CL 243938 -->
-    The new [`template.ParseFS`](/pkg/text/template/#ParseFS)
-    function and [`template.Template.ParseFS`](/pkg/text/template/#Template.ParseFS)
-    method are like [`template.ParseGlob`](/pkg/text/template/#ParseGlob)
-    and [`template.Template.ParseGlob`](/pkg/text/template/#Template.ParseGlob),
-    but read the templates from an [`fs.FS`](/pkg/io/fs/#FS).
+<!-- CL 243938 -->
+The new [`template.ParseFS`](/pkg/text/template/#ParseFS)
+function and [`template.Template.ParseFS`](/pkg/text/template/#Template.ParseFS)
+method are like [`template.ParseGlob`](/pkg/text/template/#ParseGlob)
+and [`template.Template.ParseGlob`](/pkg/text/template/#Template.ParseGlob),
+but read the templates from an [`fs.FS`](/pkg/io/fs/#FS).
 
 <!-- text/template -->
 
-[text/template/parse](/pkg/text/template/parse/)
+#### [text/template/parse](/pkg/text/template/parse/)
 
-:   <!-- CL 229398, golang.org/issue/34652 -->
-    A new [`CommentNode`](/pkg/text/template/parse/#CommentNode)
-    was added to the parse tree. The [`Mode`](/pkg/text/template/parse/#Mode)
-    field in the `parse.Tree` enables access to it.
+<!-- CL 229398, golang.org/issue/34652 -->
+A new [`CommentNode`](/pkg/text/template/parse/#CommentNode)
+was added to the parse tree. The [`Mode`](/pkg/text/template/parse/#Mode)
+field in the `parse.Tree` enables access to it.
 
 <!-- text/template/parse -->
 
-[time/tzdata](/pkg/time/tzdata/)
+#### [time/tzdata](/pkg/time/tzdata/)
 
-:   <!-- CL 261877 -->
-    The slim timezone data format is now used for the timezone database in
-    `$GOROOT/lib/time/zoneinfo.zip` and the embedded copy in this
-    package. This reduces the size of the timezone database by about 350 KB.
+<!-- CL 261877 -->
+The slim timezone data format is now used for the timezone database in
+`$GOROOT/lib/time/zoneinfo.zip` and the embedded copy in this
+package. This reduces the size of the timezone database by about 350 KB.
 
 <!-- time/tzdata -->
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   <!-- CL 248765 -->
-    The [`unicode`](/pkg/unicode/) package and associated
-    support throughout the system has been upgraded from Unicode 12.0.0 to
-    [Unicode 13.0.0](https://www.unicode.org/versions/Unicode13.0.0/),
-    which adds 5,930 new characters, including four new scripts, and 55 new emoji.
-    Unicode 13.0.0 also designates plane 3 (U+30000-U+3FFFF) as the tertiary
-    ideographic plane.
+<!-- CL 248765 -->
+The [`unicode`](/pkg/unicode/) package and associated
+support throughout the system has been upgraded from Unicode 12.0.0 to
+[Unicode 13.0.0](https://www.unicode.org/versions/Unicode13.0.0/),
+which adds 5,930 new characters, including four new scripts, and 55 new emoji.
+Unicode 13.0.0 also designates plane 3 (U+30000-U+3FFFF) as the tertiary
+ideographic plane.
 
 <!-- unicode -->
diff --git a/_content/doc/go1.17.md b/_content/doc/go1.17.md
index a147108..696bddc 100644
--- a/_content/doc/go1.17.md
+++ b/_content/doc/go1.17.md
@@ -498,598 +498,598 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[archive/zip](/pkg/archive/zip/)
+#### [archive/zip](/pkg/archive/zip/)
 
-:   <!-- CL 312310 -->
-    The new methods [`File.OpenRaw`](/pkg/archive/zip#File.OpenRaw), [`Writer.CreateRaw`](/pkg/archive/zip#Writer.CreateRaw), [`Writer.Copy`](/pkg/archive/zip#Writer.Copy) provide support for cases where performance is a primary concern.
+<!-- CL 312310 -->
+The new methods [`File.OpenRaw`](/pkg/archive/zip#File.OpenRaw), [`Writer.CreateRaw`](/pkg/archive/zip#Writer.CreateRaw), [`Writer.Copy`](/pkg/archive/zip#Writer.Copy) provide support for cases where performance is a primary concern.
 
 <!-- archive/zip -->
 
-[bufio](/pkg/bufio/)
+#### [bufio](/pkg/bufio/)
 
-:   <!-- CL 280492 -->
-    The [`Writer.WriteRune`](/pkg/bufio/#Writer.WriteRune) method
-    now writes the replacement character U+FFFD for negative rune values,
-    as it does for other invalid runes.
+<!-- CL 280492 -->
+The [`Writer.WriteRune`](/pkg/bufio/#Writer.WriteRune) method
+now writes the replacement character U+FFFD for negative rune values,
+as it does for other invalid runes.
 
 <!-- bufio -->
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   <!-- CL 280492 -->
-    The [`Buffer.WriteRune`](/pkg/bytes/#Buffer.WriteRune) method
-    now writes the replacement character U+FFFD for negative rune values,
-    as it does for other invalid runes.
+<!-- CL 280492 -->
+The [`Buffer.WriteRune`](/pkg/bytes/#Buffer.WriteRune) method
+now writes the replacement character U+FFFD for negative rune values,
+as it does for other invalid runes.
 
 <!-- bytes -->
 
-[compress/lzw](/pkg/compress/lzw/)
+#### [compress/lzw](/pkg/compress/lzw/)
 
-:   <!-- CL 273667 -->
-    The [`NewReader`](/pkg/compress/lzw/#NewReader)
-    function is guaranteed to return a value of the new
-    type [`Reader`](/pkg/compress/lzw/#Reader),
-    and similarly [`NewWriter`](/pkg/compress/lzw/#NewWriter)
-    is guaranteed to return a value of the new
-    type [`Writer`](/pkg/compress/lzw/#Writer).
-    These new types both implement a `Reset` method
-    ([`Reader.Reset`](/pkg/compress/lzw/#Reader.Reset),
-    [`Writer.Reset`](/pkg/compress/lzw/#Writer.Reset))
-    that allows reuse of the `Reader` or `Writer`.
+<!-- CL 273667 -->
+The [`NewReader`](/pkg/compress/lzw/#NewReader)
+function is guaranteed to return a value of the new
+type [`Reader`](/pkg/compress/lzw/#Reader),
+and similarly [`NewWriter`](/pkg/compress/lzw/#NewWriter)
+is guaranteed to return a value of the new
+type [`Writer`](/pkg/compress/lzw/#Writer).
+These new types both implement a `Reset` method
+([`Reader.Reset`](/pkg/compress/lzw/#Reader.Reset),
+[`Writer.Reset`](/pkg/compress/lzw/#Writer.Reset))
+that allows reuse of the `Reader` or `Writer`.
 
 <!-- compress/lzw -->
 
-[crypto/ed25519](/pkg/crypto/ed25519/)
+#### [crypto/ed25519](/pkg/crypto/ed25519/)
 
-:   <!-- CL 276272 -->
-    The `crypto/ed25519` package has been rewritten, and all
-    operations are now approximately twice as fast on amd64 and arm64.
-    The observable behavior has not otherwise changed.
+<!-- CL 276272 -->
+The `crypto/ed25519` package has been rewritten, and all
+operations are now approximately twice as fast on amd64 and arm64.
+The observable behavior has not otherwise changed.
 
 <!-- crypto/ed25519 -->
 
-[crypto/elliptic](/pkg/crypto/elliptic/)
+#### [crypto/elliptic](/pkg/crypto/elliptic/)
 
-:   <!-- CL 233939 -->
-    [`CurveParams`](/pkg/crypto/elliptic#CurveParams)
-    methods now automatically invoke faster and safer dedicated
-    implementations for known curves (P-224, P-256, and P-521) when
-    available. Note that this is a best-effort approach and applications
-    should avoid using the generic, not constant-time `CurveParams`
-    methods and instead use dedicated
-    [`Curve`](/pkg/crypto/elliptic#Curve) implementations
-    such as [`P256`](/pkg/crypto/elliptic#P256).
+<!-- CL 233939 -->
+[`CurveParams`](/pkg/crypto/elliptic#CurveParams)
+methods now automatically invoke faster and safer dedicated
+implementations for known curves (P-224, P-256, and P-521) when
+available. Note that this is a best-effort approach and applications
+should avoid using the generic, not constant-time `CurveParams`
+methods and instead use dedicated
+[`Curve`](/pkg/crypto/elliptic#Curve) implementations
+such as [`P256`](/pkg/crypto/elliptic#P256).
 
-    <!-- CL 315271, CL 315274 -->
-    The [`P521`](/pkg/crypto/elliptic#P521) curve
-    implementation has been rewritten using code generated by the
-    [fiat-crypto project](https://github.com/mit-plv/fiat-crypto),
-    which is based on a formally-verified model of the arithmetic
-    operations. It is now constant-time and three times faster on amd64 and
-    arm64. The observable behavior has not otherwise changed.
+<!-- CL 315271, CL 315274 -->
+The [`P521`](/pkg/crypto/elliptic#P521) curve
+implementation has been rewritten using code generated by the
+[fiat-crypto project](https://github.com/mit-plv/fiat-crypto),
+which is based on a formally-verified model of the arithmetic
+operations. It is now constant-time and three times faster on amd64 and
+arm64. The observable behavior has not otherwise changed.
 
 <!-- crypto/elliptic -->
 
-[crypto/rand](/pkg/crypto/rand/)
+#### [crypto/rand](/pkg/crypto/rand/)
 
-:   <!-- CL 302489, CL 299134, CL 269999 -->
-    The `crypto/rand` package now uses the `getentropy`
-    syscall on macOS and the `getrandom` syscall on Solaris,
-    Illumos, and DragonFlyBSD.
+<!-- CL 302489, CL 299134, CL 269999 -->
+The `crypto/rand` package now uses the `getentropy`
+syscall on macOS and the `getrandom` syscall on Solaris,
+Illumos, and DragonFlyBSD.
 
 <!-- crypto/rand -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 295370 -->
-    The new [`Conn.HandshakeContext`](/pkg/crypto/tls#Conn.HandshakeContext)
-    method allows the user to control cancellation of an in-progress TLS
-    handshake. The provided context is accessible from various callbacks through the new
-    [`ClientHelloInfo.Context`](/pkg/crypto/tls#ClientHelloInfo.Context) and
-    [`CertificateRequestInfo.Context`](/pkg/crypto/tls#CertificateRequestInfo.Context)
-    methods. Canceling the context after the handshake has finished has no effect.
+<!-- CL 295370 -->
+The new [`Conn.HandshakeContext`](/pkg/crypto/tls#Conn.HandshakeContext)
+method allows the user to control cancellation of an in-progress TLS
+handshake. The provided context is accessible from various callbacks through the new
+[`ClientHelloInfo.Context`](/pkg/crypto/tls#ClientHelloInfo.Context) and
+[`CertificateRequestInfo.Context`](/pkg/crypto/tls#CertificateRequestInfo.Context)
+methods. Canceling the context after the handshake has finished has no effect.
 
-    <!-- CL 314609 -->
-    Cipher suite ordering is now handled entirely by the
-    `crypto/tls` package. Currently, cipher suites are sorted based
-    on their security, performance, and hardware support taking into account
-    both the local and peer's hardware. The order of the
-    [`Config.CipherSuites`](/pkg/crypto/tls#Config.CipherSuites)
-    field is now ignored, as well as the
-    [`Config.PreferServerCipherSuites`](/pkg/crypto/tls#Config.PreferServerCipherSuites)
-    field. Note that `Config.CipherSuites` still allows
-    applications to choose what TLS 1.0–1.2 cipher suites to enable.
+<!-- CL 314609 -->
+Cipher suite ordering is now handled entirely by the
+`crypto/tls` package. Currently, cipher suites are sorted based
+on their security, performance, and hardware support taking into account
+both the local and peer's hardware. The order of the
+[`Config.CipherSuites`](/pkg/crypto/tls#Config.CipherSuites)
+field is now ignored, as well as the
+[`Config.PreferServerCipherSuites`](/pkg/crypto/tls#Config.PreferServerCipherSuites)
+field. Note that `Config.CipherSuites` still allows
+applications to choose what TLS 1.0–1.2 cipher suites to enable.
 
-    The 3DES cipher suites have been moved to
-    [`InsecureCipherSuites`](/pkg/crypto/tls#InsecureCipherSuites)
-    due to [fundamental block size-related
-    weakness](https://sweet32.info/). They are still enabled by default but only as a last resort,
-    thanks to the cipher suite ordering change above.
+The 3DES cipher suites have been moved to
+[`InsecureCipherSuites`](/pkg/crypto/tls#InsecureCipherSuites)
+due to [fundamental block size-related
+weakness](https://sweet32.info/). They are still enabled by default but only as a last resort,
+thanks to the cipher suite ordering change above.
 
-    <!-- golang.org/issue/45428 -->
-    Beginning in the next release, Go 1.18, the
-    [`Config.MinVersion`](/pkg/crypto/tls/#Config.MinVersion)
-    for `crypto/tls` clients will default to TLS 1.2, disabling TLS 1.0
-    and TLS 1.1 by default. Applications will be able to override the change by
-    explicitly setting `Config.MinVersion`.
-    This will not affect `crypto/tls` servers.
+<!-- golang.org/issue/45428 -->
+Beginning in the next release, Go 1.18, the
+[`Config.MinVersion`](/pkg/crypto/tls/#Config.MinVersion)
+for `crypto/tls` clients will default to TLS 1.2, disabling TLS 1.0
+and TLS 1.1 by default. Applications will be able to override the change by
+explicitly setting `Config.MinVersion`.
+This will not affect `crypto/tls` servers.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 224157 -->
-    [`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
-    now returns an error if the provided private key doesn't match the
-    parent's public key, if any. The resulting certificate would have failed
-    to verify.
+<!-- CL 224157 -->
+[`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
+now returns an error if the provided private key doesn't match the
+parent's public key, if any. The resulting certificate would have failed
+to verify.
 
-    <!-- CL 315209 -->
-    The temporary `GODEBUG=x509ignoreCN=0` flag has been removed.
+<!-- CL 315209 -->
+The temporary `GODEBUG=x509ignoreCN=0` flag has been removed.
 
-    <!-- CL 274234 -->
-    [`ParseCertificate`](/pkg/crypto/x509/#ParseCertificate)
-    has been rewritten, and now consumes ~70% fewer resources. The observable
-    behavior when processing WebPKI certificates has not otherwise changed,
-    except for error messages.
+<!-- CL 274234 -->
+[`ParseCertificate`](/pkg/crypto/x509/#ParseCertificate)
+has been rewritten, and now consumes ~70% fewer resources. The observable
+behavior when processing WebPKI certificates has not otherwise changed,
+except for error messages.
 
-    <!-- CL 321190 -->
-    On BSD systems, `/etc/ssl/certs` is now searched for trusted
-    roots. This adds support for the new system trusted certificate store in
-    FreeBSD 12.2+.
+<!-- CL 321190 -->
+On BSD systems, `/etc/ssl/certs` is now searched for trusted
+roots. This adds support for the new system trusted certificate store in
+FreeBSD 12.2+.
 
-    <!-- golang.org/issue/41682 -->
-    Beginning in the next release, Go 1.18, `crypto/x509` will
-    reject certificates signed with the SHA-1 hash function. This doesn't
-    apply to self-signed root certificates. Practical attacks against SHA-1
-    [have been demonstrated in 2017](https://shattered.io/) and publicly
-    trusted Certificate Authorities have not issued SHA-1 certificates since 2015.
+<!-- golang.org/issue/41682 -->
+Beginning in the next release, Go 1.18, `crypto/x509` will
+reject certificates signed with the SHA-1 hash function. This doesn't
+apply to self-signed root certificates. Practical attacks against SHA-1
+[have been demonstrated in 2017](https://shattered.io/) and publicly
+trusted Certificate Authorities have not issued SHA-1 certificates since 2015.
 
 <!-- crypto/x509 -->
 
-[database/sql](/pkg/database/sql/)
+#### [database/sql](/pkg/database/sql/)
 
-:   <!-- CL 258360 -->
-    The [`DB.Close`](/pkg/database/sql/#DB.Close) method now closes
-    the `connector` field if the type in this field implements the
-    [`io.Closer`](/pkg/io/#Closer) interface.
+<!-- CL 258360 -->
+The [`DB.Close`](/pkg/database/sql/#DB.Close) method now closes
+the `connector` field if the type in this field implements the
+[`io.Closer`](/pkg/io/#Closer) interface.
 
-    <!-- CL 311572 -->
-    The new
-    [`NullInt16`](/pkg/database/sql/#NullInt16)
-    and
-    [`NullByte`](/pkg/database/sql/#NullByte)
-    structs represent the int16 and byte values that may be null. These can be used as
-    destinations of the [`Scan`](/pkg/database/sql/#Scan) method,
-    similar to NullString.
+<!-- CL 311572 -->
+The new
+[`NullInt16`](/pkg/database/sql/#NullInt16)
+and
+[`NullByte`](/pkg/database/sql/#NullByte)
+structs represent the int16 and byte values that may be null. These can be used as
+destinations of the [`Scan`](/pkg/database/sql/#Scan) method,
+similar to NullString.
 
 <!-- database/sql -->
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   <!-- CL 239217 -->
-    The [`SHT_MIPS_ABIFLAGS`](/pkg/debug/elf/#SHT_MIPS_ABIFLAGS)
-    constant has been added.
+<!-- CL 239217 -->
+The [`SHT_MIPS_ABIFLAGS`](/pkg/debug/elf/#SHT_MIPS_ABIFLAGS)
+constant has been added.
 
 <!-- debug/elf -->
 
-[encoding/binary](/pkg/encoding/binary/)
+#### [encoding/binary](/pkg/encoding/binary/)
 
-:   <!-- CL 299531 -->
-    `binary.Uvarint` will stop reading after `10 bytes` to avoid
-    wasted computations. If more than `10 bytes` are needed, the byte count returned is `-11`.
-    \
-    Previous Go versions could return larger negative counts when reading incorrectly encoded varints.
+<!-- CL 299531 -->
+`binary.Uvarint` will stop reading after `10 bytes` to avoid
+wasted computations. If more than `10 bytes` are needed, the byte count returned is `-11`.
+\
+Previous Go versions could return larger negative counts when reading incorrectly encoded varints.
 
 <!-- encoding/binary -->
 
-[encoding/csv](/pkg/encoding/csv/)
+#### [encoding/csv](/pkg/encoding/csv/)
 
-:   <!-- CL 291290 -->
-    The new
-    [`Reader.FieldPos`](/pkg/encoding/csv/#Reader.FieldPos)
-    method returns the line and column corresponding to the start of
-    a given field in the record most recently returned by
-    [`Read`](/pkg/encoding/csv/#Reader.Read).
+<!-- CL 291290 -->
+The new
+[`Reader.FieldPos`](/pkg/encoding/csv/#Reader.FieldPos)
+method returns the line and column corresponding to the start of
+a given field in the record most recently returned by
+[`Read`](/pkg/encoding/csv/#Reader.Read).
 
 <!-- encoding/csv -->
 
-[encoding/xml](/pkg/encoding/xml/)
+#### [encoding/xml](/pkg/encoding/xml/)
 
-:   <!-- CL 277893 -->
-    When a comment appears within a
-    [`Directive`](/pkg/encoding/xml/#Directive), it is now replaced
-    with a single space instead of being completely elided.
+<!-- CL 277893 -->
+When a comment appears within a
+[`Directive`](/pkg/encoding/xml/#Directive), it is now replaced
+with a single space instead of being completely elided.
 
-    Invalid element or attribute names with leading, trailing, or multiple
-    colons are now stored unmodified into the
-    [`Name.Local`](/pkg/encoding/xml/#Name) field.
+Invalid element or attribute names with leading, trailing, or multiple
+colons are now stored unmodified into the
+[`Name.Local`](/pkg/encoding/xml/#Name) field.
 
 <!-- encoding/xml -->
 
-[flag](/pkg/flag/)
+#### [flag](/pkg/flag/)
 
-:   <!-- CL 271788 -->
-    Flag declarations now panic if an invalid name is specified.
+<!-- CL 271788 -->
+Flag declarations now panic if an invalid name is specified.
 
 <!-- flag -->
 
-[go/build](/pkg/go/build/)
+#### [go/build](/pkg/go/build/)
 
-:   <!-- CL 310732 -->
-    The new
-    [`Context.ToolTags`](/pkg/go/build/#Context.ToolTags)
-    field holds the build tags appropriate to the current Go
-    toolchain configuration.
+<!-- CL 310732 -->
+The new
+[`Context.ToolTags`](/pkg/go/build/#Context.ToolTags)
+field holds the build tags appropriate to the current Go
+toolchain configuration.
 
 <!-- go/build -->
 
-[go/format](/pkg/go/format/)
+#### [go/format](/pkg/go/format/)
 
-:   The [`Source`](/pkg/go/format/#Source) and
-    [`Node`](/pkg/go/format/#Node) functions now
-    synchronize `//go:build` lines with `// +build`
-    lines. If a file only has `// +build` lines, they will be
-    moved to the appropriate location in the file, and matching
-    `//go:build` lines will be added. Otherwise,
-    `// +build` lines will be overwritten based on any existing
-    `//go:build` lines. For more information, see
-    [https://golang.org/design/draft-gobuild](/design/draft-gobuild).
+The [`Source`](/pkg/go/format/#Source) and
+[`Node`](/pkg/go/format/#Node) functions now
+synchronize `//go:build` lines with `// +build`
+lines. If a file only has `// +build` lines, they will be
+moved to the appropriate location in the file, and matching
+`//go:build` lines will be added. Otherwise,
+`// +build` lines will be overwritten based on any existing
+`//go:build` lines. For more information, see
+[https://golang.org/design/draft-gobuild](/design/draft-gobuild).
 
 <!-- go/format -->
 
-[go/parser](/pkg/go/parser/)
+#### [go/parser](/pkg/go/parser/)
 
-:   <!-- CL 306149 -->
-    The new [`SkipObjectResolution`](/pkg/go/parser/#SkipObjectResolution)
-    `Mode` value instructs the parser not to resolve identifiers to
-    their declaration. This may improve parsing speed.
+<!-- CL 306149 -->
+The new [`SkipObjectResolution`](/pkg/go/parser/#SkipObjectResolution)
+`Mode` value instructs the parser not to resolve identifiers to
+their declaration. This may improve parsing speed.
 
 <!-- go/parser -->
 
-[image](/pkg/image/)
+#### [image](/pkg/image/)
 
-:   <!-- CL 311129 -->
-    The concrete image types (`RGBA`, `Gray16` and so on)
-    now implement a new [`RGBA64Image`](/pkg/image/#RGBA64Image)
-    interface. The concrete types that previously implemented
-    [`draw.Image`](/pkg/image/draw/#Image) now also implement
-    [`draw.RGBA64Image`](/pkg/image/draw/#RGBA64Image), a
-    new interface in the `image/draw` package.
+<!-- CL 311129 -->
+The concrete image types (`RGBA`, `Gray16` and so on)
+now implement a new [`RGBA64Image`](/pkg/image/#RGBA64Image)
+interface. The concrete types that previously implemented
+[`draw.Image`](/pkg/image/draw/#Image) now also implement
+[`draw.RGBA64Image`](/pkg/image/draw/#RGBA64Image), a
+new interface in the `image/draw` package.
 
 <!-- image -->
 
-[io/fs](/pkg/io/fs/)
+#### [io/fs](/pkg/io/fs/)
 
-:   <!-- CL 293649 -->
-    The new [`FileInfoToDirEntry`](/pkg/io/fs/#FileInfoToDirEntry) function converts a `FileInfo` to a `DirEntry`.
+<!-- CL 293649 -->
+The new [`FileInfoToDirEntry`](/pkg/io/fs/#FileInfoToDirEntry) function converts a `FileInfo` to a `DirEntry`.
 
 <!-- io/fs -->
 
-[math](/pkg/math/)
+#### [math](/pkg/math/)
 
-:   <!-- CL 247058 -->
-    The math package now defines three more constants: `MaxUint`, `MaxInt` and `MinInt`.
-    For 32-bit systems their values are `2^32 - 1`, `2^31 - 1` and `-2^31`, respectively.
-    For 64-bit systems their values are `2^64 - 1`, `2^63 - 1` and `-2^63`, respectively.
+<!-- CL 247058 -->
+The math package now defines three more constants: `MaxUint`, `MaxInt` and `MinInt`.
+For 32-bit systems their values are `2^32 - 1`, `2^31 - 1` and `-2^31`, respectively.
+For 64-bit systems their values are `2^64 - 1`, `2^63 - 1` and `-2^63`, respectively.
 
 <!-- math -->
 
-[mime](/pkg/mime/)
+#### [mime](/pkg/mime/)
 
-:   <!-- CL 305230 -->
-    On Unix systems, the table of MIME types is now read from the local system's
-    [Shared MIME-info Database](https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-0.21.html)
-    when available.
+<!-- CL 305230 -->
+On Unix systems, the table of MIME types is now read from the local system's
+[Shared MIME-info Database](https://specifications.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-0.21.html)
+when available.
 
 <!-- mime -->
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   <!-- CL 313809 -->
-    [`Part.FileName`](/pkg/mime/multipart/#Part.FileName)
-    now applies
-    [`filepath.Base`](/pkg/path/filepath/#Base) to the
-    return value. This mitigates potential path traversal vulnerabilities in
-    applications that accept multipart messages, such as `net/http`
-    servers that call
-    [`Request.FormFile`](/pkg/net/http/#Request.FormFile).
+<!-- CL 313809 -->
+[`Part.FileName`](/pkg/mime/multipart/#Part.FileName)
+now applies
+[`filepath.Base`](/pkg/path/filepath/#Base) to the
+return value. This mitigates potential path traversal vulnerabilities in
+applications that accept multipart messages, such as `net/http`
+servers that call
+[`Request.FormFile`](/pkg/net/http/#Request.FormFile).
 
 <!-- mime/multipart -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 272668 -->
-    The new method [`IP.IsPrivate`](/pkg/net/#IP.IsPrivate) reports whether an address is
-    a private IPv4 address according to [RFC 1918](https://datatracker.ietf.org/doc/rfc1918)
-    or a local IPv6 address according [RFC 4193](https://datatracker.ietf.org/doc/rfc4193).
+<!-- CL 272668 -->
+The new method [`IP.IsPrivate`](/pkg/net/#IP.IsPrivate) reports whether an address is
+a private IPv4 address according to [RFC 1918](https://datatracker.ietf.org/doc/rfc1918)
+or a local IPv6 address according [RFC 4193](https://datatracker.ietf.org/doc/rfc4193).
 
-    <!-- CL 301709 -->
-    The Go DNS resolver now only sends one DNS query when resolving an address for an IPv4-only or IPv6-only network,
-    rather than querying for both address families.
+<!-- CL 301709 -->
+The Go DNS resolver now only sends one DNS query when resolving an address for an IPv4-only or IPv6-only network,
+rather than querying for both address families.
 
-    <!-- CL 307030 -->
-    The [`ErrClosed`](/pkg/net/#ErrClosed) sentinel error and
-    [`ParseError`](/pkg/net/#ParseError) error type now implement
-    the [`net.Error`](/pkg/net/#Error) interface.
+<!-- CL 307030 -->
+The [`ErrClosed`](/pkg/net/#ErrClosed) sentinel error and
+[`ParseError`](/pkg/net/#ParseError) error type now implement
+the [`net.Error`](/pkg/net/#Error) interface.
 
-    <!-- CL 325829 -->
-    The [`ParseIP`](/pkg/net/#ParseIP) and [`ParseCIDR`](/pkg/net/#ParseCIDR)
-    functions now reject IPv4 addresses which contain decimal components with leading zeros.
-    These components were always interpreted as decimal, but some operating systems treat them as octal.
-    This mismatch could hypothetically lead to security issues if a Go application was used to validate IP addresses
-    which were then used in their original form with non-Go applications which interpreted components as octal. Generally,
-    it is advisable to always re-encode values after validation, which avoids this class of parser misalignment issues.
+<!-- CL 325829 -->
+The [`ParseIP`](/pkg/net/#ParseIP) and [`ParseCIDR`](/pkg/net/#ParseCIDR)
+functions now reject IPv4 addresses which contain decimal components with leading zeros.
+These components were always interpreted as decimal, but some operating systems treat them as octal.
+This mismatch could hypothetically lead to security issues if a Go application was used to validate IP addresses
+which were then used in their original form with non-Go applications which interpreted components as octal. Generally,
+it is advisable to always re-encode values after validation, which avoids this class of parser misalignment issues.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 295370 -->
-    The [`net/http`](/pkg/net/http/) package now uses the new
-    [`(*tls.Conn).HandshakeContext`](/pkg/crypto/tls#Conn.HandshakeContext)
-    with the [`Request`](/pkg/net/http/#Request) context
-    when performing TLS handshakes in the client or server.
+<!-- CL 295370 -->
+The [`net/http`](/pkg/net/http/) package now uses the new
+[`(*tls.Conn).HandshakeContext`](/pkg/crypto/tls#Conn.HandshakeContext)
+with the [`Request`](/pkg/net/http/#Request) context
+when performing TLS handshakes in the client or server.
 
-    <!-- CL 235437 -->
-    Setting the [`Server`](/pkg/net/http/#Server)
-    `ReadTimeout` or `WriteTimeout` fields to a negative value now indicates no timeout
-    rather than an immediate timeout.
+<!-- CL 235437 -->
+Setting the [`Server`](/pkg/net/http/#Server)
+`ReadTimeout` or `WriteTimeout` fields to a negative value now indicates no timeout
+rather than an immediate timeout.
 
-    <!-- CL 308952 -->
-    The [`ReadRequest`](/pkg/net/http/#ReadRequest) function
-    now returns an error when the request has multiple Host headers.
+<!-- CL 308952 -->
+The [`ReadRequest`](/pkg/net/http/#ReadRequest) function
+now returns an error when the request has multiple Host headers.
 
-    <!-- CL 313950 -->
-    When producing a redirect to the cleaned version of a URL,
-    [`ServeMux`](/pkg/net/http/#ServeMux) now always
-    uses relative URLs in the `Location` header. Previously it
-    would echo the full URL of the request, which could lead to unintended
-    redirects if the client could be made to send an absolute request URL.
+<!-- CL 313950 -->
+When producing a redirect to the cleaned version of a URL,
+[`ServeMux`](/pkg/net/http/#ServeMux) now always
+uses relative URLs in the `Location` header. Previously it
+would echo the full URL of the request, which could lead to unintended
+redirects if the client could be made to send an absolute request URL.
 
-    <!-- CL 308009, CL 313489 -->
-    When interpreting certain HTTP headers handled by `net/http`,
-    non-ASCII characters are now ignored or rejected.
+<!-- CL 308009, CL 313489 -->
+When interpreting certain HTTP headers handled by `net/http`,
+non-ASCII characters are now ignored or rejected.
 
-    <!-- CL 325697 -->
-    If
-    [`Request.ParseForm`](/pkg/net/http/#Request.ParseForm)
-    returns an error when called by
-    [`Request.ParseMultipartForm`](/pkg/net/http/#Request.ParseMultipartForm),
-    the latter now continues populating
-    [`Request.MultipartForm`](/pkg/net/http/#Request.MultipartForm)
-    before returning it.
+<!-- CL 325697 -->
+If
+[`Request.ParseForm`](/pkg/net/http/#Request.ParseForm)
+returns an error when called by
+[`Request.ParseMultipartForm`](/pkg/net/http/#Request.ParseMultipartForm),
+the latter now continues populating
+[`Request.MultipartForm`](/pkg/net/http/#Request.MultipartForm)
+before returning it.
 
 <!-- net/http -->
 
-[net/http/httptest](/pkg/net/http/httptest/)
+#### [net/http/httptest](/pkg/net/http/httptest/)
 
-:   <!-- CL 308950 -->
-    [`ResponseRecorder.WriteHeader`](/pkg/net/http/httptest/#ResponseRecorder.WriteHeader)
-    now panics when the provided code is not a valid three-digit HTTP status code.
-    This matches the behavior of [`ResponseWriter`](/pkg/net/http/#ResponseWriter)
-    implementations in the [`net/http`](/pkg/net/http/) package.
+<!-- CL 308950 -->
+[`ResponseRecorder.WriteHeader`](/pkg/net/http/httptest/#ResponseRecorder.WriteHeader)
+now panics when the provided code is not a valid three-digit HTTP status code.
+This matches the behavior of [`ResponseWriter`](/pkg/net/http/#ResponseWriter)
+implementations in the [`net/http`](/pkg/net/http/) package.
 
 <!-- net/http/httptest -->
 
-[net/url](/pkg/net/url/)
+#### [net/url](/pkg/net/url/)
 
-:   <!-- CL 314850 -->
-    The new method [`Values.Has`](/pkg/net/url/#Values.Has)
-    reports whether a query parameter is set.
+<!-- CL 314850 -->
+The new method [`Values.Has`](/pkg/net/url/#Values.Has)
+reports whether a query parameter is set.
 
 <!-- net/url -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL 268020 -->
-    The [`File.WriteString`](/pkg/os/#File.WriteString) method
-    has been optimized to not make a copy of the input string.
+<!-- CL 268020 -->
+The [`File.WriteString`](/pkg/os/#File.WriteString) method
+has been optimized to not make a copy of the input string.
 
 <!-- os -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 334669 -->
-    The new
-    [`Value.CanConvert`](/pkg/reflect/#Value.CanConvert)
-    method reports whether a value can be converted to a type.
-    This may be used to avoid a panic when converting a slice to an
-    array pointer type if the slice is too short.
-    Previously it was sufficient to use
-    [`Type.ConvertibleTo`](/pkg/reflect/#Type.ConvertibleTo)
-    for this, but the newly permitted conversion from slice to array
-    pointer type can panic even if the types are convertible.
+<!-- CL 334669 -->
+The new
+[`Value.CanConvert`](/pkg/reflect/#Value.CanConvert)
+method reports whether a value can be converted to a type.
+This may be used to avoid a panic when converting a slice to an
+array pointer type if the slice is too short.
+Previously it was sufficient to use
+[`Type.ConvertibleTo`](/pkg/reflect/#Type.ConvertibleTo)
+for this, but the newly permitted conversion from slice to array
+pointer type can panic even if the types are convertible.
 
-    <!-- CL 266197 -->
-    The new
-    [`StructField.IsExported`](/pkg/reflect/#StructField.IsExported)
-    and
-    [`Method.IsExported`](/pkg/reflect/#Method.IsExported)
-    methods report whether a struct field or type method is exported.
-    They provide a more readable alternative to checking whether `PkgPath`
-    is empty.
+<!-- CL 266197 -->
+The new
+[`StructField.IsExported`](/pkg/reflect/#StructField.IsExported)
+and
+[`Method.IsExported`](/pkg/reflect/#Method.IsExported)
+methods report whether a struct field or type method is exported.
+They provide a more readable alternative to checking whether `PkgPath`
+is empty.
 
-    <!-- CL 281233 -->
-    The new [`VisibleFields`](/pkg/reflect/#VisibleFields) function
-    returns all the visible fields in a struct type, including fields inside anonymous struct members.
+<!-- CL 281233 -->
+The new [`VisibleFields`](/pkg/reflect/#VisibleFields) function
+returns all the visible fields in a struct type, including fields inside anonymous struct members.
 
-    <!-- CL 284136 -->
-    The [`ArrayOf`](/pkg/reflect/#ArrayOf) function now panics when
-    called with a negative length.
+<!-- CL 284136 -->
+The [`ArrayOf`](/pkg/reflect/#ArrayOf) function now panics when
+called with a negative length.
 
-    <!-- CL 301652 -->
-    Checking the [`Type.ConvertibleTo`](/pkg/reflect/#Type.ConvertibleTo) method
-    is no longer sufficient to guarantee that a call to
-    [`Value.Convert`](/pkg/reflect/#Value.Convert) will not panic.
-    It may panic when converting \`[]T\` to \`\*[N]T\` if the slice's length is less than N.
-    See the [language changes](#language) section above.
+<!-- CL 301652 -->
+Checking the [`Type.ConvertibleTo`](/pkg/reflect/#Type.ConvertibleTo) method
+is no longer sufficient to guarantee that a call to
+[`Value.Convert`](/pkg/reflect/#Value.Convert) will not panic.
+It may panic when converting \`[]T\` to \`\*[N]T\` if the slice's length is less than N.
+See the [language changes](#language) section above.
 
-    <!-- CL 309729 -->
-    The [`Value.Convert`](/pkg/reflect/#Value.Convert) and
-    [`Type.ConvertibleTo`](/pkg/reflect/#Type.ConvertibleTo) methods
-    have been fixed to not treat types in different packages with the same name
-    as identical, to match what the language allows.
+<!-- CL 309729 -->
+The [`Value.Convert`](/pkg/reflect/#Value.Convert) and
+[`Type.ConvertibleTo`](/pkg/reflect/#Type.ConvertibleTo) methods
+have been fixed to not treat types in different packages with the same name
+as identical, to match what the language allows.
 
 <!-- reflect -->
 
-[runtime/metrics](/pkg/runtime/metrics)
+#### [runtime/metrics](/pkg/runtime/metrics)
 
-:   <!-- CL 308933, CL 312431, CL 312909 -->
-    New metrics were added that track total bytes and objects allocated and freed.
-    A new metric tracking the distribution of goroutine scheduling latencies was
-    also added.
+<!-- CL 308933, CL 312431, CL 312909 -->
+New metrics were added that track total bytes and objects allocated and freed.
+A new metric tracking the distribution of goroutine scheduling latencies was
+also added.
 
 <!-- runtime/metrics -->
 
-[runtime/pprof](/pkg/runtime/pprof)
+#### [runtime/pprof](/pkg/runtime/pprof)
 
-:   <!-- CL 299991 -->
-    Block profiles are no longer biased to favor infrequent long events over
-    frequent short events.
+<!-- CL 299991 -->
+Block profiles are no longer biased to favor infrequent long events over
+frequent short events.
 
 <!-- runtime/pprof -->
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   <!-- CL 170079, CL 170080 -->
-    The `strconv` package now uses Ulf Adams's Ryū algorithm for formatting floating-point numbers.
-    This algorithm improves performance on most inputs and is more than 99% faster on worst-case inputs.
+<!-- CL 170079, CL 170080 -->
+The `strconv` package now uses Ulf Adams's Ryū algorithm for formatting floating-point numbers.
+This algorithm improves performance on most inputs and is more than 99% faster on worst-case inputs.
 
-    <!-- CL 314775 -->
-    The new [`QuotedPrefix`](/pkg/strconv/#QuotedPrefix) function
-    returns the quoted string (as understood by
-    [`Unquote`](/pkg/strconv/#Unquote))
-    at the start of input.
+<!-- CL 314775 -->
+The new [`QuotedPrefix`](/pkg/strconv/#QuotedPrefix) function
+returns the quoted string (as understood by
+[`Unquote`](/pkg/strconv/#Unquote))
+at the start of input.
 
 <!-- strconv -->
 
-[strings](/pkg/strings/)
+#### [strings](/pkg/strings/)
 
-:   <!-- CL 280492 -->
-    The [`Builder.WriteRune`](/pkg/strings/#Builder.WriteRune) method
-    now writes the replacement character U+FFFD for negative rune values,
-    as it does for other invalid runes.
+<!-- CL 280492 -->
+The [`Builder.WriteRune`](/pkg/strings/#Builder.WriteRune) method
+now writes the replacement character U+FFFD for negative rune values,
+as it does for other invalid runes.
 
 <!-- strings -->
 
-[sync/atomic](/pkg/sync/atomic/)
+#### [sync/atomic](/pkg/sync/atomic/)
 
-:   <!-- CL 241678 -->
-    `atomic.Value` now has [`Swap`](/pkg/sync/atomic/#Value.Swap) and
-    [`CompareAndSwap`](/pkg/sync/atomic/#Value.CompareAndSwap) methods that provide
-    additional atomic operations.
+<!-- CL 241678 -->
+`atomic.Value` now has [`Swap`](/pkg/sync/atomic/#Value.Swap) and
+[`CompareAndSwap`](/pkg/sync/atomic/#Value.CompareAndSwap) methods that provide
+additional atomic operations.
 
 <!-- sync/atomic -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 295371 -->
+<!-- CL 295371 -->
 
-    The [`GetQueuedCompletionStatus`](/pkg/syscall/#GetQueuedCompletionStatus) and
-    [`PostQueuedCompletionStatus`](/pkg/syscall/#PostQueuedCompletionStatus)
-    functions are now deprecated. These functions have incorrect signatures and are superseded by
-    equivalents in the [`golang.org/x/sys/windows`](https://godoc.org/golang.org/x/sys/windows) package.
+The [`GetQueuedCompletionStatus`](/pkg/syscall/#GetQueuedCompletionStatus) and
+[`PostQueuedCompletionStatus`](/pkg/syscall/#PostQueuedCompletionStatus)
+functions are now deprecated. These functions have incorrect signatures and are superseded by
+equivalents in the [`golang.org/x/sys/windows`](https://godoc.org/golang.org/x/sys/windows) package.
 
-    <!-- CL 313653 -->
-    On Unix-like systems, the process group of a child process is now set with signals blocked.
-    This avoids sending a `SIGTTOU` to the child when the parent is in a background process group.
+<!-- CL 313653 -->
+On Unix-like systems, the process group of a child process is now set with signals blocked.
+This avoids sending a `SIGTTOU` to the child when the parent is in a background process group.
 
-    <!-- CL 288298, CL 288300 -->
-    The Windows version of
-    [`SysProcAttr`](/pkg/syscall/#SysProcAttr)
-    has two new fields. `AdditionalInheritedHandles` is
-    a list of additional handles to be inherited by the new child
-    process. `ParentProcess` permits specifying the
-    parent process of the new process.
+<!-- CL 288298, CL 288300 -->
+The Windows version of
+[`SysProcAttr`](/pkg/syscall/#SysProcAttr)
+has two new fields. `AdditionalInheritedHandles` is
+a list of additional handles to be inherited by the new child
+process. `ParentProcess` permits specifying the
+parent process of the new process.
 
-    <!-- CL 311570 -->
-    The constant `MSG_CMSG_CLOEXEC` is now defined on
-    DragonFly and all OpenBSD systems (it was already defined on
-    some OpenBSD systems and all FreeBSD, NetBSD, and Linux systems).
+<!-- CL 311570 -->
+The constant `MSG_CMSG_CLOEXEC` is now defined on
+DragonFly and all OpenBSD systems (it was already defined on
+some OpenBSD systems and all FreeBSD, NetBSD, and Linux systems).
 
-    <!-- CL 315281 -->
-    The constants `SYS_WAIT6` and `WEXITED`
-    are now defined on NetBSD systems (`SYS_WAIT6` was
-    already defined on DragonFly and FreeBSD systems;
-    `WEXITED` was already defined on Darwin, DragonFly,
-    FreeBSD, Linux, and Solaris systems).
+<!-- CL 315281 -->
+The constants `SYS_WAIT6` and `WEXITED`
+are now defined on NetBSD systems (`SYS_WAIT6` was
+already defined on DragonFly and FreeBSD systems;
+`WEXITED` was already defined on Darwin, DragonFly,
+FreeBSD, Linux, and Solaris systems).
 
 <!-- syscall -->
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- CL 310033 -->
-    Added a new [testing flag](/cmd/go/#hdr-Testing_flags) `-shuffle` which controls the execution order of tests and benchmarks.
+<!-- CL 310033 -->
+Added a new [testing flag](/cmd/go/#hdr-Testing_flags) `-shuffle` which controls the execution order of tests and benchmarks.
 
-    <!-- CL 260577 -->
-    The new
-    [`T.Setenv`](/pkg/testing/#T.Setenv)
-    and [`B.Setenv`](/pkg/testing/#B.Setenv)
-    methods support setting an environment variable for the duration
-    of the test or benchmark.
+<!-- CL 260577 -->
+The new
+[`T.Setenv`](/pkg/testing/#T.Setenv)
+and [`B.Setenv`](/pkg/testing/#B.Setenv)
+methods support setting an environment variable for the duration
+of the test or benchmark.
 
 <!-- testing -->
 
-[text/template/parse](/pkg/text/template/parse/)
+#### [text/template/parse](/pkg/text/template/parse/)
 
-:   <!-- CL 301493 -->
-    The new [`SkipFuncCheck`](/pkg/text/template/parse/#Mode) `Mode`
-    value changes the template parser to not verify that functions are defined.
+<!-- CL 301493 -->
+The new [`SkipFuncCheck`](/pkg/text/template/parse/#Mode) `Mode`
+value changes the template parser to not verify that functions are defined.
 
 <!-- text/template/parse -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- CL 260858 -->
-    The [`Time`](/pkg/time/#Time) type now has a
-    [`GoString`](/pkg/time/#Time.GoString) method that
-    will return a more useful value for times when printed with the
-    `%#v` format specifier in the `fmt` package.
+<!-- CL 260858 -->
+The [`Time`](/pkg/time/#Time) type now has a
+[`GoString`](/pkg/time/#Time.GoString) method that
+will return a more useful value for times when printed with the
+`%#v` format specifier in the `fmt` package.
 
-    <!-- CL 264077 -->
-    The new [`Time.IsDST`](/pkg/time/#Time.IsDST) method can be used to check whether the time
-    is in Daylight Savings Time in its configured location.
+<!-- CL 264077 -->
+The new [`Time.IsDST`](/pkg/time/#Time.IsDST) method can be used to check whether the time
+is in Daylight Savings Time in its configured location.
 
-    <!-- CL 293349 -->
-    The new [`Time.UnixMilli`](/pkg/time/#Time.UnixMilli) and
-    [`Time.UnixMicro`](/pkg/time/#Time.UnixMicro)
-    methods return the number of milliseconds and microseconds elapsed since
-    January 1, 1970 UTC respectively.
-    \
-    The new [`UnixMilli`](/pkg/time/#UnixMilli) and
-    [`UnixMicro`](/pkg/time/#UnixMicro) functions
-    return the local `Time` corresponding to the given Unix time.
+<!-- CL 293349 -->
+The new [`Time.UnixMilli`](/pkg/time/#Time.UnixMilli) and
+[`Time.UnixMicro`](/pkg/time/#Time.UnixMicro)
+methods return the number of milliseconds and microseconds elapsed since
+January 1, 1970 UTC respectively.
+\
+The new [`UnixMilli`](/pkg/time/#UnixMilli) and
+[`UnixMicro`](/pkg/time/#UnixMicro) functions
+return the local `Time` corresponding to the given Unix time.
 
-    <!-- CL 300996 -->
-    The package now accepts comma "," as a separator for fractional seconds when parsing and formatting time.
-    For example, the following time layouts are now accepted:
+<!-- CL 300996 -->
+The package now accepts comma "," as a separator for fractional seconds when parsing and formatting time.
+For example, the following time layouts are now accepted:
 
-      - 2006-01-02 15:04:05,999999999 -0700 MST
-      - Mon Jan \_2 15:04:05,000000 2006
-      - Monday, January 2 15:04:05,000 2006
+  - 2006-01-02 15:04:05,999999999 -0700 MST
+  - Mon Jan \_2 15:04:05,000000 2006
+  - Monday, January 2 15:04:05,000 2006
 
 
-    <!-- CL 320252 -->
-    The new constant [`Layout`](/pkg/time/#Layout)
-    defines the reference time.
+<!-- CL 320252 -->
+The new constant [`Layout`](/pkg/time/#Layout)
+defines the reference time.
 
 <!-- time -->
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   <!-- CL 280493 -->
-    The [`Is`](/pkg/unicode/#Is),
-    [`IsGraphic`](/pkg/unicode/#IsGraphic),
-    [`IsLetter`](/pkg/unicode/#IsLetter),
-    [`IsLower`](/pkg/unicode/#IsLower),
-    [`IsMark`](/pkg/unicode/#IsMark),
-    [`IsNumber`](/pkg/unicode/#IsNumber),
-    [`IsPrint`](/pkg/unicode/#IsPrint),
-    [`IsPunct`](/pkg/unicode/#IsPunct),
-    [`IsSpace`](/pkg/unicode/#IsSpace),
-    [`IsSymbol`](/pkg/unicode/#IsSymbol), and
-    [`IsUpper`](/pkg/unicode/#IsUpper) functions
-    now return `false` on negative rune values, as they do for other invalid runes.
+<!-- CL 280493 -->
+The [`Is`](/pkg/unicode/#Is),
+[`IsGraphic`](/pkg/unicode/#IsGraphic),
+[`IsLetter`](/pkg/unicode/#IsLetter),
+[`IsLower`](/pkg/unicode/#IsLower),
+[`IsMark`](/pkg/unicode/#IsMark),
+[`IsNumber`](/pkg/unicode/#IsNumber),
+[`IsPrint`](/pkg/unicode/#IsPrint),
+[`IsPunct`](/pkg/unicode/#IsPunct),
+[`IsSpace`](/pkg/unicode/#IsSpace),
+[`IsSymbol`](/pkg/unicode/#IsSymbol), and
+[`IsUpper`](/pkg/unicode/#IsUpper) functions
+now return `false` on negative rune values, as they do for other invalid runes.
 
 <!-- unicode -->
diff --git a/_content/doc/go1.18.md b/_content/doc/go1.18.md
index 951c959..dbf7409 100644
--- a/_content/doc/go1.18.md
+++ b/_content/doc/go1.18.md
@@ -96,20 +96,20 @@
 the Go 1 guarantee and may change as we gain more experience with
 generics.
 
-[`golang.org/x/exp/constraints`](https://pkg.go.dev/golang.org/x/exp/constraints)
+#### [`golang.org/x/exp/constraints`](https://pkg.go.dev/golang.org/x/exp/constraints)
 
-:   Constraints that are useful for generic code, such as
-    [`constraints.Ordered`](https://pkg.go.dev/golang.org/x/exp/constraints#Ordered).
+Constraints that are useful for generic code, such as
+[`constraints.Ordered`](https://pkg.go.dev/golang.org/x/exp/constraints#Ordered).
 
-[`golang.org/x/exp/slices`](https://pkg.go.dev/golang.org/x/exp/slices)
+#### [`golang.org/x/exp/slices`](https://pkg.go.dev/golang.org/x/exp/slices)
 
-:   A collection of generic functions that operate on slices of
-    any element type.
+A collection of generic functions that operate on slices of
+any element type.
 
-[`golang.org/x/exp/maps`](https://pkg.go.dev/golang.org/x/exp/maps)
+#### [`golang.org/x/exp/maps`](https://pkg.go.dev/golang.org/x/exp/maps)
 
-:   A collection of generic functions that operate on maps of
-    any key or element type.
+A collection of generic functions that operate on maps of
+any key or element type.
 
 
 The current generics implementation has the following known limitations:
@@ -632,569 +632,569 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[bufio](/pkg/bufio/)
+#### [bufio](/pkg/bufio/)
 
-:   <!-- CL 345569 -->
-    The new [`Writer.AvailableBuffer`](/pkg/bufio#Writer.AvailableBuffer)
-    method returns an empty buffer with a possibly non-empty capacity for use
-    with append-like APIs. After appending, the buffer can be provided to a
-    succeeding `Write` call and possibly avoid any copying.
+<!-- CL 345569 -->
+The new [`Writer.AvailableBuffer`](/pkg/bufio#Writer.AvailableBuffer)
+method returns an empty buffer with a possibly non-empty capacity for use
+with append-like APIs. After appending, the buffer can be provided to a
+succeeding `Write` call and possibly avoid any copying.
 
-    <!-- CL 345570 -->
-    The [`Reader.Reset`](/pkg/bufio#Reader.Reset) and
-    [`Writer.Reset`](/pkg/bufio#Writer.Reset) methods
-    now use the default buffer size when called on objects with a
-    `nil` buffer.
+<!-- CL 345570 -->
+The [`Reader.Reset`](/pkg/bufio#Reader.Reset) and
+[`Writer.Reset`](/pkg/bufio#Writer.Reset) methods
+now use the default buffer size when called on objects with a
+`nil` buffer.
 
 <!-- bufio -->
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   <!-- CL 351710 -->
-    The new [`Cut`](/pkg/bytes/#Cut) function
-    slices a `[]byte` around a separator. It can replace
-    and simplify many common uses of
-    [`Index`](/pkg/bytes/#Index),
-    [`IndexByte`](/pkg/bytes/#IndexByte),
-    [`IndexRune`](/pkg/bytes/#IndexRune),
-    and [`SplitN`](/pkg/bytes/#SplitN).
+<!-- CL 351710 -->
+The new [`Cut`](/pkg/bytes/#Cut) function
+slices a `[]byte` around a separator. It can replace
+and simplify many common uses of
+[`Index`](/pkg/bytes/#Index),
+[`IndexByte`](/pkg/bytes/#IndexByte),
+[`IndexRune`](/pkg/bytes/#IndexRune),
+and [`SplitN`](/pkg/bytes/#SplitN).
 
-    <!-- CL 323318, CL 332771 -->
-    [`Trim`](/pkg/bytes/#Trim), [`TrimLeft`](/pkg/bytes/#TrimLeft),
-    and [`TrimRight`](/pkg/bytes/#TrimRight) are now allocation free and, especially for
-    small ASCII cutsets, up to 10 times faster.
+<!-- CL 323318, CL 332771 -->
+[`Trim`](/pkg/bytes/#Trim), [`TrimLeft`](/pkg/bytes/#TrimLeft),
+and [`TrimRight`](/pkg/bytes/#TrimRight) are now allocation free and, especially for
+small ASCII cutsets, up to 10 times faster.
 
-    <!-- CL 359485 -->
-    The [`Title`](/pkg/bytes/#Title) function is now deprecated. It doesn't
-    handle Unicode punctuation and language-specific capitalization rules, and is superseded by the
-    [golang.org/x/text/cases](https://golang.org/x/text/cases) package.
+<!-- CL 359485 -->
+The [`Title`](/pkg/bytes/#Title) function is now deprecated. It doesn't
+handle Unicode punctuation and language-specific capitalization rules, and is superseded by the
+[golang.org/x/text/cases](https://golang.org/x/text/cases) package.
 
 <!-- bytes -->
 
-[crypto/elliptic](/pkg/crypto/elliptic/)
+#### [crypto/elliptic](/pkg/crypto/elliptic/)
 
-:   <!-- CL 320071, CL 320072, CL 320074, CL 361402, CL 360014 -->
-    The [`P224`](/pkg/crypto/elliptic#P224),
-    [`P384`](/pkg/crypto/elliptic#P384), and
-    [`P521`](/pkg/crypto/elliptic#P521) curve
-    implementations are now all backed by code generated by the
-    [addchain](https://github.com/mmcloughlin/addchain) and
-    [fiat-crypto](https://github.com/mit-plv/fiat-crypto)
-    projects, the latter of which is based on a formally-verified model
-    of the arithmetic operations. They now use safer complete formulas
-    and internal APIs. P-224 and P-384 are now approximately four times
-    faster. All specific curve implementations are now constant-time.
+<!-- CL 320071, CL 320072, CL 320074, CL 361402, CL 360014 -->
+The [`P224`](/pkg/crypto/elliptic#P224),
+[`P384`](/pkg/crypto/elliptic#P384), and
+[`P521`](/pkg/crypto/elliptic#P521) curve
+implementations are now all backed by code generated by the
+[addchain](https://github.com/mmcloughlin/addchain) and
+[fiat-crypto](https://github.com/mit-plv/fiat-crypto)
+projects, the latter of which is based on a formally-verified model
+of the arithmetic operations. They now use safer complete formulas
+and internal APIs. P-224 and P-384 are now approximately four times
+faster. All specific curve implementations are now constant-time.
 
-    Operating on invalid curve points (those for which the
-    `IsOnCurve` method returns false, and which are never returned
-    by [`Unmarshal`](/pkg/crypto/elliptic#Unmarshal) or
-    a `Curve` method operating on a valid point) has always been
-    undefined behavior, can lead to key recovery attacks, and is now
-    unsupported by the new backend. If an invalid point is supplied to a
-    `P224`, `P384`, or `P521` method, that
-    method will now return a random point. The behavior might change to an
-    explicit panic in a future release.
+Operating on invalid curve points (those for which the
+`IsOnCurve` method returns false, and which are never returned
+by [`Unmarshal`](/pkg/crypto/elliptic#Unmarshal) or
+a `Curve` method operating on a valid point) has always been
+undefined behavior, can lead to key recovery attacks, and is now
+unsupported by the new backend. If an invalid point is supplied to a
+`P224`, `P384`, or `P521` method, that
+method will now return a random point. The behavior might change to an
+explicit panic in a future release.
 
 <!-- crypto/elliptic -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 325250 -->
-    The new [`Conn.NetConn`](/pkg/crypto/tls/#Conn.NetConn)
-    method allows access to the underlying
-    [`net.Conn`](/pkg/net#Conn).
+<!-- CL 325250 -->
+The new [`Conn.NetConn`](/pkg/crypto/tls/#Conn.NetConn)
+method allows access to the underlying
+[`net.Conn`](/pkg/net#Conn).
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509)
+#### [crypto/x509](/pkg/crypto/x509)
 
-:   <!-- CL 353132, CL 353403 -->
-    [`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
-    now uses platform APIs to verify certificate validity on macOS and iOS when it
-    is called with a nil
-    [`VerifyOpts.Roots`](/pkg/crypto/x509/#VerifyOpts.Roots)
-    or when using the root pool returned from
-    [`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool).
+<!-- CL 353132, CL 353403 -->
+[`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
+now uses platform APIs to verify certificate validity on macOS and iOS when it
+is called with a nil
+[`VerifyOpts.Roots`](/pkg/crypto/x509/#VerifyOpts.Roots)
+or when using the root pool returned from
+[`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool).
 
-    <!-- CL 353589 -->
-    [`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
-    is now available on Windows.
+<!-- CL 353589 -->
+[`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
+is now available on Windows.
 
-    On Windows, macOS, and iOS, when a
-    [`CertPool`](/pkg/crypto/x509/#CertPool) returned by
-    [`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
-    has additional certificates added to it,
-    [`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
-    will do two verifications: one using the platform verifier APIs and the
-    system roots, and one using the Go verifier and the additional roots.
-    Chains returned by the platform verifier APIs will be prioritized.
+On Windows, macOS, and iOS, when a
+[`CertPool`](/pkg/crypto/x509/#CertPool) returned by
+[`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
+has additional certificates added to it,
+[`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
+will do two verifications: one using the platform verifier APIs and the
+system roots, and one using the Go verifier and the additional roots.
+Chains returned by the platform verifier APIs will be prioritized.
 
-    [`CertPool.Subjects`](/pkg/crypto/x509/#CertPool.Subjects)
-    is deprecated. On Windows, macOS, and iOS the
-    [`CertPool`](/pkg/crypto/x509/#CertPool) returned by
-    [`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
-    will return a pool which does not include system roots in the slice
-    returned by `Subjects`, as a static list can't appropriately
-    represent the platform policies and might not be available at all from the
-    platform APIs.
+[`CertPool.Subjects`](/pkg/crypto/x509/#CertPool.Subjects)
+is deprecated. On Windows, macOS, and iOS the
+[`CertPool`](/pkg/crypto/x509/#CertPool) returned by
+[`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
+will return a pool which does not include system roots in the slice
+returned by `Subjects`, as a static list can't appropriately
+represent the platform policies and might not be available at all from the
+platform APIs.
 
-    Support for signing certificates using signature algorithms that depend on the
-    MD5 hash (`MD5WithRSA`) may be removed in Go 1.19.
+Support for signing certificates using signature algorithms that depend on the
+MD5 hash (`MD5WithRSA`) may be removed in Go 1.19.
 
-[debug/dwarf](/pkg/debug/dwarf/)
+#### [debug/dwarf](/pkg/debug/dwarf/)
 
-:   <!-- CL 380714 -->
-    The [`StructField`](/pkg/debug/dwarf#StructField)
-    and [`BasicType`](/pkg/debug/dwarf#BasicType)
-    structs both now have a `DataBitOffset` field, which
-    holds the value of the `DW_AT_data_bit_offset`
-    attribute if present.
+<!-- CL 380714 -->
+The [`StructField`](/pkg/debug/dwarf#StructField)
+and [`BasicType`](/pkg/debug/dwarf#BasicType)
+structs both now have a `DataBitOffset` field, which
+holds the value of the `DW_AT_data_bit_offset`
+attribute if present.
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   <!-- CL 352829 -->
-    The [`R_PPC64_RELATIVE`](/pkg/debug/elf/#R_PPC64_RELATIVE)
-    constant has been added.
+<!-- CL 352829 -->
+The [`R_PPC64_RELATIVE`](/pkg/debug/elf/#R_PPC64_RELATIVE)
+constant has been added.
 
 <!-- debug/elf -->
 
-[debug/plan9obj](/pkg/debug/plan9obj/)
+#### [debug/plan9obj](/pkg/debug/plan9obj/)
 
-:   <!-- CL 350229 -->
-    The [File.Symbols](/pkg/debug/plan9obj#File.Symbols)
-    method now returns the new exported error
-    value [ErrNoSymbols](/pkg/debug/plan9obj#ErrNoSymbols)
-    if the file has no symbol section.
+<!-- CL 350229 -->
+The [File.Symbols](/pkg/debug/plan9obj#File.Symbols)
+method now returns the new exported error
+value [ErrNoSymbols](/pkg/debug/plan9obj#ErrNoSymbols)
+if the file has no symbol section.
 
 <!-- debug/plan9obj -->
 
-[embed](/pkg/embed/)
+#### [embed](/pkg/embed/)
 
-:   <!-- CL 359413 -->
-    A [`go:embed`](/pkg/embed#hdr-Directives)
-    directive may now start with `all:` to include files
-    whose names start with dot or underscore.
+<!-- CL 359413 -->
+A [`go:embed`](/pkg/embed#hdr-Directives)
+directive may now start with `all:` to include files
+whose names start with dot or underscore.
 
 <!-- debug/plan9obj -->
 
-[go/ast](/pkg/go/ast/)
+#### [go/ast](/pkg/go/ast/)
 
-:   <!-- https://golang.org/issue/47781, CL 325689, CL 327149, CL 348375, CL 348609 -->
-    Per the proposal
-    [
-    Additions to go/ast and go/token to support parameterized functions and types
-    ](https://go.googlesource.com/proposal/+/master/design/47781-parameterized-go-ast.md)
-    the following additions are made to the [`go/ast`](/pkg/go/ast) package:
+<!-- https://golang.org/issue/47781, CL 325689, CL 327149, CL 348375, CL 348609 -->
+Per the proposal
+[
+Additions to go/ast and go/token to support parameterized functions and types
+](https://go.googlesource.com/proposal/+/master/design/47781-parameterized-go-ast.md)
+the following additions are made to the [`go/ast`](/pkg/go/ast) package:
 
-      - the [`FuncType`](/pkg/go/ast/#FuncType)
-        and [`TypeSpec`](/pkg/go/ast/#TypeSpec)
-        nodes have a new field `TypeParams` to hold type parameters, if any.
-      - The new expression node [`IndexListExpr`](/pkg/go/ast/#IndexListExpr)
-        represents index expressions with multiple indices, used for function and type instantiations
-        with more than one explicit type argument.
+  - the [`FuncType`](/pkg/go/ast/#FuncType)
+    and [`TypeSpec`](/pkg/go/ast/#TypeSpec)
+    nodes have a new field `TypeParams` to hold type parameters, if any.
+  - The new expression node [`IndexListExpr`](/pkg/go/ast/#IndexListExpr)
+    represents index expressions with multiple indices, used for function and type instantiations
+    with more than one explicit type argument.
 
 
-[go/constant](/pkg/go/constant/)
+#### [go/constant](/pkg/go/constant/)
 
-:   <!-- https://golang.org/issue/46211, CL 320491 -->
-    The new [`Kind.String`](/pkg/go/constant/#Kind.String)
-    method returns a human-readable name for the receiver kind.
+<!-- https://golang.org/issue/46211, CL 320491 -->
+The new [`Kind.String`](/pkg/go/constant/#Kind.String)
+method returns a human-readable name for the receiver kind.
 
-[go/token](/pkg/go/token/)
+#### [go/token](/pkg/go/token/)
 
-:   <!-- https://golang.org/issue/47781, CL 324992 -->
-    The new constant [`TILDE`](/pkg/go/token/#TILDE)
-    represents the `~` token per the proposal
-    [
-    Additions to go/ast and go/token to support parameterized functions and types
-    ](https://go.googlesource.com/proposal/+/master/design/47781-parameterized-go-ast.md).
+<!-- https://golang.org/issue/47781, CL 324992 -->
+The new constant [`TILDE`](/pkg/go/token/#TILDE)
+represents the `~` token per the proposal
+[
+Additions to go/ast and go/token to support parameterized functions and types
+](https://go.googlesource.com/proposal/+/master/design/47781-parameterized-go-ast.md).
 
-[go/types](/pkg/go/types/)
+#### [go/types](/pkg/go/types/)
 
-:   <!-- https://golang.org/issue/46648 -->
-    The new [`Config.GoVersion`](/pkg/go/types/#Config.GoVersion)
-    field sets the accepted Go language version.
+<!-- https://golang.org/issue/46648 -->
+The new [`Config.GoVersion`](/pkg/go/types/#Config.GoVersion)
+field sets the accepted Go language version.
 
-    <!-- https://golang.org/issue/47916 -->
-    Per the proposal
-    [
-    Additions to go/types to support type parameters
-    ](https://go.googlesource.com/proposal/+/master/design/47916-parameterized-go-types.md)
-    the following additions are made to the [`go/types`](/pkg/go/types) package:
+<!-- https://golang.org/issue/47916 -->
+Per the proposal
+[
+Additions to go/types to support type parameters
+](https://go.googlesource.com/proposal/+/master/design/47916-parameterized-go-types.md)
+the following additions are made to the [`go/types`](/pkg/go/types) package:
 
-      - The new type
-        [`TypeParam`](/pkg/go/types/#TypeParam), factory function
-        [`NewTypeParam`](/pkg/go/types/#NewTypeParam),
-        and associated methods are added to represent a type parameter.
-      - The new type
-        [`TypeParamList`](/pkg/go/types/#TypeParamList) holds a list of
-        type parameters.
-      - The new type
-        [`TypeList`](/pkg/go/types/#TypeList) holds a list of types.
-      - The new factory function
-        [`NewSignatureType`](/pkg/go/types/#NewSignatureType) allocates a
-        [`Signature`](/pkg/go/types/#Signature) with
-        (receiver or function) type parameters.
-        To access those type parameters, the `Signature` type has two new methods
-        [`Signature.RecvTypeParams`](/pkg/go/types/#Signature.RecvTypeParams) and
-        [`Signature.TypeParams`](/pkg/go/types/#Signature.TypeParams).
-      - [`Named`](/pkg/go/types/#Named) types have four new methods:
-        [`Named.Origin`](/pkg/go/types/#Named.Origin) to get the original
-        parameterized types of instantiated types,
-        [`Named.TypeArgs`](/pkg/go/types/#Named.TypeArgs) and
-        [`Named.TypeParams`](/pkg/go/types/#Named.TypeParams) to get the
-        type arguments or type parameters of an instantiated or parameterized type, and
-        [`Named.SetTypeParams`](/pkg/go/types/#Named.TypeParams) to set the
-        type parameters (for instance, when importing a named type where allocation of the named
-        type and setting of type parameters cannot be done simultaneously due to possible cycles).
-      - The [`Interface`](/pkg/go/types/#Interface) type has four new methods:
-        [`Interface.IsComparable`](/pkg/go/types/#Interface.IsComparable) and
-        [`Interface.IsMethodSet`](/pkg/go/types/#Interface.IsMethodSet) to
-        query properties of the type set defined by the interface, and
-        [`Interface.MarkImplicit`](/pkg/go/types/#Interface.MarkImplicit) and
-        [`Interface.IsImplicit`](/pkg/go/types/#Interface.IsImplicit) to set
-        and test whether the interface is an implicit interface around a type constraint literal.
-      - The new types
-        [`Union`](/pkg/go/types/#Union) and
-        [`Term`](/pkg/go/types/#Term), factory functions
-        [`NewUnion`](/pkg/go/types/#NewUnion) and
-        [`NewTerm`](/pkg/go/types/#NewTerm), and associated
-        methods are added to represent type sets in interfaces.
-      - The new function
-        [`Instantiate`](/pkg/go/types/#Instantiate)
-        instantiates a parameterized type.
-      - The new [`Info.Instances`](/pkg/go/types/#Info.Instances)
-        map records function and type instantiations through the new
-        [`Instance`](/pkg/go/types/#Instance) type.
-      - <!-- CL 342671 -->
-        The new type [`ArgumentError`](/pkg/go/types/#ArgumentError)
-        and associated methods are added to represent an error related to a type argument.
-      - <!-- CL 353089 -->
-        The new type [`Context`](/pkg/go/types/#Context) and factory function
-        [`NewContext`](/pkg/go/types/#NewContext)
-        are added to facilitate sharing of identical type instances
-        across type-checked packages, via the new
-        [`Config.Context`](/pkg/go/types/#Config.Context)
-        field.
+  - The new type
+    [`TypeParam`](/pkg/go/types/#TypeParam), factory function
+    [`NewTypeParam`](/pkg/go/types/#NewTypeParam),
+    and associated methods are added to represent a type parameter.
+  - The new type
+    [`TypeParamList`](/pkg/go/types/#TypeParamList) holds a list of
+    type parameters.
+  - The new type
+    [`TypeList`](/pkg/go/types/#TypeList) holds a list of types.
+  - The new factory function
+    [`NewSignatureType`](/pkg/go/types/#NewSignatureType) allocates a
+    [`Signature`](/pkg/go/types/#Signature) with
+    (receiver or function) type parameters.
+    To access those type parameters, the `Signature` type has two new methods
+    [`Signature.RecvTypeParams`](/pkg/go/types/#Signature.RecvTypeParams) and
+    [`Signature.TypeParams`](/pkg/go/types/#Signature.TypeParams).
+  - [`Named`](/pkg/go/types/#Named) types have four new methods:
+    [`Named.Origin`](/pkg/go/types/#Named.Origin) to get the original
+    parameterized types of instantiated types,
+    [`Named.TypeArgs`](/pkg/go/types/#Named.TypeArgs) and
+    [`Named.TypeParams`](/pkg/go/types/#Named.TypeParams) to get the
+    type arguments or type parameters of an instantiated or parameterized type, and
+    [`Named.SetTypeParams`](/pkg/go/types/#Named.TypeParams) to set the
+    type parameters (for instance, when importing a named type where allocation of the named
+    type and setting of type parameters cannot be done simultaneously due to possible cycles).
+  - The [`Interface`](/pkg/go/types/#Interface) type has four new methods:
+    [`Interface.IsComparable`](/pkg/go/types/#Interface.IsComparable) and
+    [`Interface.IsMethodSet`](/pkg/go/types/#Interface.IsMethodSet) to
+    query properties of the type set defined by the interface, and
+    [`Interface.MarkImplicit`](/pkg/go/types/#Interface.MarkImplicit) and
+    [`Interface.IsImplicit`](/pkg/go/types/#Interface.IsImplicit) to set
+    and test whether the interface is an implicit interface around a type constraint literal.
+  - The new types
+    [`Union`](/pkg/go/types/#Union) and
+    [`Term`](/pkg/go/types/#Term), factory functions
+    [`NewUnion`](/pkg/go/types/#NewUnion) and
+    [`NewTerm`](/pkg/go/types/#NewTerm), and associated
+    methods are added to represent type sets in interfaces.
+  - The new function
+    [`Instantiate`](/pkg/go/types/#Instantiate)
+    instantiates a parameterized type.
+  - The new [`Info.Instances`](/pkg/go/types/#Info.Instances)
+    map records function and type instantiations through the new
+    [`Instance`](/pkg/go/types/#Instance) type.
+  - <!-- CL 342671 -->
+    The new type [`ArgumentError`](/pkg/go/types/#ArgumentError)
+    and associated methods are added to represent an error related to a type argument.
+  - <!-- CL 353089 -->
+    The new type [`Context`](/pkg/go/types/#Context) and factory function
+    [`NewContext`](/pkg/go/types/#NewContext)
+    are added to facilitate sharing of identical type instances
+    across type-checked packages, via the new
+    [`Config.Context`](/pkg/go/types/#Config.Context)
+    field.
 
-    The predicates
-    [`AssignableTo`](/pkg/go/types/#AssignableTo),
-    [`ConvertibleTo`](/pkg/go/types/#ConvertibleTo),
-    [`Implements`](/pkg/go/types/#Implements),
-    [`Identical`](/pkg/go/types/#Identical),
-    [`IdenticalIgnoreTags`](/pkg/go/types/#IdenticalIgnoreTags), and
-    [`AssertableTo`](/pkg/go/types/#AssertableTo)
-    now also work with arguments that are or contain generalized interfaces,
-    i.e. interfaces that may only be used as type constraints in Go code.
-    Note that the behavior of `AssignableTo`,
-    `ConvertibleTo`, `Implements`, and
-    `AssertableTo` is undefined with arguments that are
-    uninstantiated generic types, and `AssertableTo` is undefined
-    if the first argument is a generalized interface.
+The predicates
+[`AssignableTo`](/pkg/go/types/#AssignableTo),
+[`ConvertibleTo`](/pkg/go/types/#ConvertibleTo),
+[`Implements`](/pkg/go/types/#Implements),
+[`Identical`](/pkg/go/types/#Identical),
+[`IdenticalIgnoreTags`](/pkg/go/types/#IdenticalIgnoreTags), and
+[`AssertableTo`](/pkg/go/types/#AssertableTo)
+now also work with arguments that are or contain generalized interfaces,
+i.e. interfaces that may only be used as type constraints in Go code.
+Note that the behavior of `AssignableTo`,
+`ConvertibleTo`, `Implements`, and
+`AssertableTo` is undefined with arguments that are
+uninstantiated generic types, and `AssertableTo` is undefined
+if the first argument is a generalized interface.
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- CL 321491 -->
-    Within a `range` pipeline the new
-    `{{break}}` command will end the loop early and the
-    new `{{continue}}` command will immediately start the
-    next loop iteration.
+<!-- CL 321491 -->
+Within a `range` pipeline the new
+`{{break}}` command will end the loop early and the
+new `{{continue}}` command will immediately start the
+next loop iteration.
 
-    <!-- CL 321490 -->
-    The `and` function no longer always evaluates all arguments; it
-    stops evaluating arguments after the first argument that evaluates to
-    false. Similarly, the `or` function now stops evaluating
-    arguments after the first argument that evaluates to true. This makes a
-    difference if any of the arguments is a function call.
+<!-- CL 321490 -->
+The `and` function no longer always evaluates all arguments; it
+stops evaluating arguments after the first argument that evaluates to
+false. Similarly, the `or` function now stops evaluating
+arguments after the first argument that evaluates to true. This makes a
+difference if any of the arguments is a function call.
 
 <!-- html/template -->
 
-[image/draw](/pkg/image/draw/)
+#### [image/draw](/pkg/image/draw/)
 
-:   <!-- CL 340049 -->
-    The `Draw` and `DrawMask` fallback implementations
-    (used when the arguments are not the most common image types) are now
-    faster when those arguments implement the optional
-    [`draw.RGBA64Image`](/pkg/image/draw/#RGBA64Image)
-    and [`image.RGBA64Image`](/pkg/image/#RGBA64Image)
-    interfaces that were added in Go 1.17.
+<!-- CL 340049 -->
+The `Draw` and `DrawMask` fallback implementations
+(used when the arguments are not the most common image types) are now
+faster when those arguments implement the optional
+[`draw.RGBA64Image`](/pkg/image/draw/#RGBA64Image)
+and [`image.RGBA64Image`](/pkg/image/#RGBA64Image)
+interfaces that were added in Go 1.17.
 
 <!-- image/draw -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 340261 -->
-    [`net.Error.Temporary`](/pkg/net#Error) has been deprecated.
+<!-- CL 340261 -->
+[`net.Error.Temporary`](/pkg/net#Error) has been deprecated.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 330852 -->
-    On WebAssembly targets, the `Dial`, `DialContext`,
-    `DialTLS` and `DialTLSContext` method fields in
-    [`Transport`](/pkg/net/http/#Transport)
-    will now be correctly used, if specified, for making HTTP requests.
+<!-- CL 330852 -->
+On WebAssembly targets, the `Dial`, `DialContext`,
+`DialTLS` and `DialTLSContext` method fields in
+[`Transport`](/pkg/net/http/#Transport)
+will now be correctly used, if specified, for making HTTP requests.
 
-    <!-- CL 338590 -->
-    The new
-    [`Cookie.Valid`](/pkg/net/http#Cookie.Valid)
-    method reports whether the cookie is valid.
+<!-- CL 338590 -->
+The new
+[`Cookie.Valid`](/pkg/net/http#Cookie.Valid)
+method reports whether the cookie is valid.
 
-    <!-- CL 346569 -->
-    The new
-    [`MaxBytesHandler`](/pkg/net/http#MaxBytesHandler)
-    function creates a `Handler` that wraps its
-    `ResponseWriter` and `Request.Body` with a
-    [`MaxBytesReader`](/pkg/net/http#MaxBytesReader).
+<!-- CL 346569 -->
+The new
+[`MaxBytesHandler`](/pkg/net/http#MaxBytesHandler)
+function creates a `Handler` that wraps its
+`ResponseWriter` and `Request.Body` with a
+[`MaxBytesReader`](/pkg/net/http#MaxBytesReader).
 
-    <!-- CL 359634, CL 360381, CL 362735 -->
-    When looking up a domain name containing non-ASCII characters,
-    the Unicode-to-ASCII conversion is now done in accordance with
-    Nontransitional Processing as defined in the
-    [Unicode IDNA
-    Compatibility Processing](https://unicode.org/reports/tr46/) standard (UTS #46). The
-    interpretation of four distinct runes are changed: ß, ς,
-    zero-width joiner U+200D, and zero-width non-joiner
-    U+200C. Nontransitional Processing is consistent with most
-    applications and web browsers.
+<!-- CL 359634, CL 360381, CL 362735 -->
+When looking up a domain name containing non-ASCII characters,
+the Unicode-to-ASCII conversion is now done in accordance with
+Nontransitional Processing as defined in the
+[Unicode IDNA
+Compatibility Processing](https://unicode.org/reports/tr46/) standard (UTS #46). The
+interpretation of four distinct runes are changed: ß, ς,
+zero-width joiner U+200D, and zero-width non-joiner
+U+200C. Nontransitional Processing is consistent with most
+applications and web browsers.
 
 <!-- net/http -->
 
-[os/user](/pkg/os/user/)
+#### [os/user](/pkg/os/user/)
 
-:   <!-- CL 330753 -->
-    [`User.GroupIds`](/pkg/os/user#User.GroupIds)
-    now uses a Go native implementation when cgo is not available.
+<!-- CL 330753 -->
+[`User.GroupIds`](/pkg/os/user#User.GroupIds)
+now uses a Go native implementation when cgo is not available.
 
 <!-- os/user -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 356049, CL 320929 -->
-    The new
-    [`Value.SetIterKey`](/pkg/reflect/#Value.SetIterKey)
-    and [`Value.SetIterValue`](/pkg/reflect/#Value.SetIterValue)
-    methods set a Value using a map iterator as the source. They are equivalent to
-    `Value.Set(iter.Key())` and `Value.Set(iter.Value())`, but
-    do fewer allocations.
+<!-- CL 356049, CL 320929 -->
+The new
+[`Value.SetIterKey`](/pkg/reflect/#Value.SetIterKey)
+and [`Value.SetIterValue`](/pkg/reflect/#Value.SetIterValue)
+methods set a Value using a map iterator as the source. They are equivalent to
+`Value.Set(iter.Key())` and `Value.Set(iter.Value())`, but
+do fewer allocations.
 
-    <!-- CL 350691 -->
-    The new
-    [`Value.UnsafePointer`](/pkg/reflect/#Value.UnsafePointer)
-    method returns the Value's value as an [`unsafe.Pointer`](/pkg/unsafe/#Pointer).
-    This allows callers to migrate from [`Value.UnsafeAddr`](/pkg/reflect/#Value.UnsafeAddr)
-    and [`Value.Pointer`](/pkg/reflect/#Value.Pointer)
-    to eliminate the need to perform uintptr to unsafe.Pointer conversions at the callsite (as unsafe.Pointer rules require).
+<!-- CL 350691 -->
+The new
+[`Value.UnsafePointer`](/pkg/reflect/#Value.UnsafePointer)
+method returns the Value's value as an [`unsafe.Pointer`](/pkg/unsafe/#Pointer).
+This allows callers to migrate from [`Value.UnsafeAddr`](/pkg/reflect/#Value.UnsafeAddr)
+and [`Value.Pointer`](/pkg/reflect/#Value.Pointer)
+to eliminate the need to perform uintptr to unsafe.Pointer conversions at the callsite (as unsafe.Pointer rules require).
 
-    <!-- CL 321891 -->
-    The new
-    [`MapIter.Reset`](/pkg/reflect/#MapIter.Reset)
-    method changes its receiver to iterate over a
-    different map. The use of
-    [`MapIter.Reset`](/pkg/reflect/#MapIter.Reset)
-    allows allocation-free iteration
-    over many maps.
+<!-- CL 321891 -->
+The new
+[`MapIter.Reset`](/pkg/reflect/#MapIter.Reset)
+method changes its receiver to iterate over a
+different map. The use of
+[`MapIter.Reset`](/pkg/reflect/#MapIter.Reset)
+allows allocation-free iteration
+over many maps.
 
-    <!-- CL 352131 -->
-    A number of methods (
-    [`Value.CanInt`](/pkg/reflect#Value.CanInt),
-    [`Value.CanUint`](/pkg/reflect#Value.CanUint),
-    [`Value.CanFloat`](/pkg/reflect#Value.CanFloat),
-    [`Value.CanComplex`](/pkg/reflect#Value.CanComplex)
-    )
-    have been added to
-    [`Value`](/pkg/reflect#Value)
-    to test if a conversion is safe.
+<!-- CL 352131 -->
+A number of methods (
+[`Value.CanInt`](/pkg/reflect#Value.CanInt),
+[`Value.CanUint`](/pkg/reflect#Value.CanUint),
+[`Value.CanFloat`](/pkg/reflect#Value.CanFloat),
+[`Value.CanComplex`](/pkg/reflect#Value.CanComplex)
+)
+have been added to
+[`Value`](/pkg/reflect#Value)
+to test if a conversion is safe.
 
-    <!-- CL 357962 -->
-    [`Value.FieldByIndexErr`](/pkg/reflect#Value.FieldByIndexErr)
-    has been added to avoid the panic that occurs in
-    [`Value.FieldByIndex`](/pkg/reflect#Value.FieldByIndex)
-    when stepping through a nil pointer to an embedded struct.
+<!-- CL 357962 -->
+[`Value.FieldByIndexErr`](/pkg/reflect#Value.FieldByIndexErr)
+has been added to avoid the panic that occurs in
+[`Value.FieldByIndex`](/pkg/reflect#Value.FieldByIndex)
+when stepping through a nil pointer to an embedded struct.
 
-    <!-- CL 341333 -->
-    [`reflect.Ptr`](/pkg/reflect#Ptr) and
-    [`reflect.PtrTo`](/pkg/reflect#PtrTo)
-    have been renamed to
-    [`reflect.Pointer`](/pkg/reflect#Pointer) and
-    [`reflect.PointerTo`](/pkg/reflect#PointerTo),
-    respectively, for consistency with the rest of the reflect package.
-    The old names will continue to work, but will be deprecated in a
-    future Go release.
+<!-- CL 341333 -->
+[`reflect.Ptr`](/pkg/reflect#Ptr) and
+[`reflect.PtrTo`](/pkg/reflect#PtrTo)
+have been renamed to
+[`reflect.Pointer`](/pkg/reflect#Pointer) and
+[`reflect.PointerTo`](/pkg/reflect#PointerTo),
+respectively, for consistency with the rest of the reflect package.
+The old names will continue to work, but will be deprecated in a
+future Go release.
 
 <!-- reflect -->
 
-[regexp](/pkg/regexp/)
+#### [regexp](/pkg/regexp/)
 
-:   <!-- CL 354569 -->
-    [`regexp`](/pkg/regexp/)
-    now treats each invalid byte of a UTF-8 string as `U+FFFD`.
+<!-- CL 354569 -->
+[`regexp`](/pkg/regexp/)
+now treats each invalid byte of a UTF-8 string as `U+FFFD`.
 
 <!-- regexp -->
 
-[runtime/debug](/pkg/runtime/debug/)
+#### [runtime/debug](/pkg/runtime/debug/)
 
-:   <!-- CL 354569 -->
-    The [`BuildInfo`](/pkg/runtime/debug#BuildInfo)
-    struct has two new fields, containing additional information
-    about how the binary was built:
+<!-- CL 354569 -->
+The [`BuildInfo`](/pkg/runtime/debug#BuildInfo)
+struct has two new fields, containing additional information
+about how the binary was built:
 
-      - [`GoVersion`](/pkg/runtime/debug#BuildInfo.GoVersion)
-        holds the version of Go used to build the binary.
-      - [`Settings`](/pkg/runtime/debug#BuildInfo.Settings)
-        is a slice of
-        [`BuildSettings`](/pkg/runtime/debug#BuildSettings)
-        structs holding key/value pairs describing the build.
+  - [`GoVersion`](/pkg/runtime/debug#BuildInfo.GoVersion)
+    holds the version of Go used to build the binary.
+  - [`Settings`](/pkg/runtime/debug#BuildInfo.Settings)
+    is a slice of
+    [`BuildSettings`](/pkg/runtime/debug#BuildSettings)
+    structs holding key/value pairs describing the build.
 
 
 <!-- runtime/debug -->
 
-[runtime/pprof](/pkg/runtime/pprof/)
+#### [runtime/pprof](/pkg/runtime/pprof/)
 
-:   <!-- CL 324129 -->
-    The CPU profiler now uses per-thread timers on Linux. This increases the
-    maximum CPU usage that a profile can observe, and reduces some forms of
-    bias.
+<!-- CL 324129 -->
+The CPU profiler now uses per-thread timers on Linux. This increases the
+maximum CPU usage that a profile can observe, and reduces some forms of
+bias.
 
 <!-- runtime/pprof -->
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   <!-- CL 343877 -->
-    [`strconv.Unquote`](/pkg/strconv/#strconv.Unquote)
-    now rejects Unicode surrogate halves.
+<!-- CL 343877 -->
+[`strconv.Unquote`](/pkg/strconv/#strconv.Unquote)
+now rejects Unicode surrogate halves.
 
 <!-- strconv -->
 
-[strings](/pkg/strings/)
+#### [strings](/pkg/strings/)
 
-:   <!-- CL 351710 -->
-    The new [`Cut`](/pkg/strings/#Cut) function
-    slices a `string` around a separator. It can replace
-    and simplify many common uses of
-    [`Index`](/pkg/strings/#Index),
-    [`IndexByte`](/pkg/strings/#IndexByte),
-    [`IndexRune`](/pkg/strings/#IndexRune),
-    and [`SplitN`](/pkg/strings/#SplitN).
+<!-- CL 351710 -->
+The new [`Cut`](/pkg/strings/#Cut) function
+slices a `string` around a separator. It can replace
+and simplify many common uses of
+[`Index`](/pkg/strings/#Index),
+[`IndexByte`](/pkg/strings/#IndexByte),
+[`IndexRune`](/pkg/strings/#IndexRune),
+and [`SplitN`](/pkg/strings/#SplitN).
 
-    <!-- CL 345849 -->
-    The new [`Clone`](/pkg/strings/#Clone) function copies the input
-    `string` without the returned cloned `string` referencing
-    the input string's memory.
+<!-- CL 345849 -->
+The new [`Clone`](/pkg/strings/#Clone) function copies the input
+`string` without the returned cloned `string` referencing
+the input string's memory.
 
-    <!-- CL 323318, CL 332771 -->
-    [`Trim`](/pkg/strings/#Trim), [`TrimLeft`](/pkg/strings/#TrimLeft),
-    and [`TrimRight`](/pkg/strings/#TrimRight) are now allocation free and, especially for
-    small ASCII cutsets, up to 10 times faster.
+<!-- CL 323318, CL 332771 -->
+[`Trim`](/pkg/strings/#Trim), [`TrimLeft`](/pkg/strings/#TrimLeft),
+and [`TrimRight`](/pkg/strings/#TrimRight) are now allocation free and, especially for
+small ASCII cutsets, up to 10 times faster.
 
-    <!-- CL 359485 -->
-    The [`Title`](/pkg/strings/#Title) function is now deprecated. It doesn't
-    handle Unicode punctuation and language-specific capitalization rules, and is superseded by the
-    [golang.org/x/text/cases](https://golang.org/x/text/cases) package.
+<!-- CL 359485 -->
+The [`Title`](/pkg/strings/#Title) function is now deprecated. It doesn't
+handle Unicode punctuation and language-specific capitalization rules, and is superseded by the
+[golang.org/x/text/cases](https://golang.org/x/text/cases) package.
 
 <!-- strings -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- CL 319769 -->
-    The new methods
-    [`Mutex.TryLock`](/pkg/sync#Mutex.TryLock),
-    [`RWMutex.TryLock`](/pkg/sync#RWMutex.TryLock), and
-    [`RWMutex.TryRLock`](/pkg/sync#RWMutex.TryRLock),
-    will acquire the lock if it is not currently held.
+<!-- CL 319769 -->
+The new methods
+[`Mutex.TryLock`](/pkg/sync#Mutex.TryLock),
+[`RWMutex.TryLock`](/pkg/sync#RWMutex.TryLock), and
+[`RWMutex.TryRLock`](/pkg/sync#RWMutex.TryRLock),
+will acquire the lock if it is not currently held.
 
 <!-- sync -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 336550 -->
-    The new function [`SyscallN`](/pkg/syscall/?GOOS=windows#SyscallN)
-    has been introduced for Windows, allowing for calls with arbitrary number
-    of arguments. As a result,
-    [`Syscall`](/pkg/syscall/?GOOS=windows#Syscall),
-    [`Syscall6`](/pkg/syscall/?GOOS=windows#Syscall6),
-    [`Syscall9`](/pkg/syscall/?GOOS=windows#Syscall9),
-    [`Syscall12`](/pkg/syscall/?GOOS=windows#Syscall12),
-    [`Syscall15`](/pkg/syscall/?GOOS=windows#Syscall15), and
-    [`Syscall18`](/pkg/syscall/?GOOS=windows#Syscall18) are
-    deprecated in favor of [`SyscallN`](/pkg/syscall/?GOOS=windows#SyscallN).
+<!-- CL 336550 -->
+The new function [`SyscallN`](/pkg/syscall/?GOOS=windows#SyscallN)
+has been introduced for Windows, allowing for calls with arbitrary number
+of arguments. As a result,
+[`Syscall`](/pkg/syscall/?GOOS=windows#Syscall),
+[`Syscall6`](/pkg/syscall/?GOOS=windows#Syscall6),
+[`Syscall9`](/pkg/syscall/?GOOS=windows#Syscall9),
+[`Syscall12`](/pkg/syscall/?GOOS=windows#Syscall12),
+[`Syscall15`](/pkg/syscall/?GOOS=windows#Syscall15), and
+[`Syscall18`](/pkg/syscall/?GOOS=windows#Syscall18) are
+deprecated in favor of [`SyscallN`](/pkg/syscall/?GOOS=windows#SyscallN).
 
-    <!-- CL 355570 -->
-    [`SysProcAttr.Pdeathsig`](/pkg/syscall/?GOOS=freebsd#SysProcAttr.Pdeathsig)
-    is now supported in FreeBSD.
+<!-- CL 355570 -->
+[`SysProcAttr.Pdeathsig`](/pkg/syscall/?GOOS=freebsd#SysProcAttr.Pdeathsig)
+is now supported in FreeBSD.
 
 <!-- syscall -->
 
-[syscall/js](/pkg/syscall/js/)
+#### [syscall/js](/pkg/syscall/js/)
 
-:   <!-- CL 356430 -->
-    The `Wrapper` interface has been removed.
+<!-- CL 356430 -->
+The `Wrapper` interface has been removed.
 
 <!-- syscall/js -->
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- CL 343883 -->
-    The precedence of `/` in the argument for `-run` and
-    `-bench` has been increased. `A/B|C/D` used to be
-    treated as `A/(B|C)/D` and is now treated as
-    `(A/B)|(C/D)`.
+<!-- CL 343883 -->
+The precedence of `/` in the argument for `-run` and
+`-bench` has been increased. `A/B|C/D` used to be
+treated as `A/(B|C)/D` and is now treated as
+`(A/B)|(C/D)`.
 
-    <!-- CL 356669 -->
-    If the `-run` option does not select any tests, the
-    `-count` option is ignored. This could change the behavior of
-    existing tests in the unlikely case that a test changes the set of subtests
-    that are run each time the test function itself is run.
+<!-- CL 356669 -->
+If the `-run` option does not select any tests, the
+`-count` option is ignored. This could change the behavior of
+existing tests in the unlikely case that a test changes the set of subtests
+that are run each time the test function itself is run.
 
-    <!-- CL 251441 -->
-    The new [`testing.F`](/pkg/testing#F) type
-    is used by the new [fuzzing support described
-    above](#fuzzing). Tests also now support the command line
-    options `-test.fuzz`, `-test.fuzztime`, and
-    `-test.fuzzminimizetime`.
+<!-- CL 251441 -->
+The new [`testing.F`](/pkg/testing#F) type
+is used by the new [fuzzing support described
+above](#fuzzing). Tests also now support the command line
+options `-test.fuzz`, `-test.fuzztime`, and
+`-test.fuzzminimizetime`.
 
 <!-- testing -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 321491 -->
-    Within a `range` pipeline the new
-    `{{break}}` command will end the loop early and the
-    new `{{continue}}` command will immediately start the
-    next loop iteration.
+<!-- CL 321491 -->
+Within a `range` pipeline the new
+`{{break}}` command will end the loop early and the
+new `{{continue}}` command will immediately start the
+next loop iteration.
 
-    <!-- CL 321490 -->
-    The `and` function no longer always evaluates all arguments; it
-    stops evaluating arguments after the first argument that evaluates to
-    false. Similarly, the `or` function now stops evaluating
-    arguments after the first argument that evaluates to true. This makes a
-    difference if any of the arguments is a function call.
+<!-- CL 321490 -->
+The `and` function no longer always evaluates all arguments; it
+stops evaluating arguments after the first argument that evaluates to
+false. Similarly, the `or` function now stops evaluating
+arguments after the first argument that evaluates to true. This makes a
+difference if any of the arguments is a function call.
 
 <!-- text/template -->
 
-[text/template/parse](/pkg/text/template/parse/)
+#### [text/template/parse](/pkg/text/template/parse/)
 
-:   <!-- CL 321491 -->
-    The package supports the new
-    [text/template](/pkg/text/template/) and
-    [html/template](/pkg/html/template/)
-    `{{break}}` command via the new constant
-    [`NodeBreak`](/pkg/text/template/parse#NodeBreak)
-    and the new type
-    [`BreakNode`](/pkg/text/template/parse#BreakNode),
-    and similarly supports the new `{{continue}}` command
-    via the new constant
-    [`NodeContinue`](/pkg/text/template/parse#NodeContinue)
-    and the new type
-    [`ContinueNode`](/pkg/text/template/parse#ContinueNode).
+<!-- CL 321491 -->
+The package supports the new
+[text/template](/pkg/text/template/) and
+[html/template](/pkg/html/template/)
+`{{break}}` command via the new constant
+[`NodeBreak`](/pkg/text/template/parse#NodeBreak)
+and the new type
+[`BreakNode`](/pkg/text/template/parse#BreakNode),
+and similarly supports the new `{{continue}}` command
+via the new constant
+[`NodeContinue`](/pkg/text/template/parse#NodeContinue)
+and the new type
+[`ContinueNode`](/pkg/text/template/parse#ContinueNode).
 
 <!-- text/template -->
 
-[unicode/utf8](/pkg/unicode/utf8/)
+#### [unicode/utf8](/pkg/unicode/utf8/)
 
-:   <!-- CL 345571 -->
-    The new [`AppendRune`](/pkg/unicode/utf8/#AppendRune) function appends the UTF-8
-    encoding of a `rune` to a `[]byte`.
+<!-- CL 345571 -->
+The new [`AppendRune`](/pkg/unicode/utf8/#AppendRune) function appends the UTF-8
+encoding of a `rune` to a `[]byte`.
 
 <!-- unicode/utf8 -->
diff --git a/_content/doc/go1.19.md b/_content/doc/go1.19.md
index 6e505cd..0a2cb88 100644
--- a/_content/doc/go1.19.md
+++ b/_content/doc/go1.19.md
@@ -317,655 +317,655 @@
 in mind.
 There are also various performance improvements, not enumerated here.
 
-[archive/zip](/pkg/archive/zip/)
+#### [archive/zip](/pkg/archive/zip/)
 
-:   <!-- CL 387976 -->
-    [`Reader`](/pkg/archive/zip/#Reader)
-    now ignores non-ZIP data at the start of a ZIP file, matching most other implementations.
-    This is necessary to read some Java JAR files, among other uses.
+<!-- CL 387976 -->
+[`Reader`](/pkg/archive/zip/#Reader)
+now ignores non-ZIP data at the start of a ZIP file, matching most other implementations.
+This is necessary to read some Java JAR files, among other uses.
 
 <!-- archive/zip -->
 
-[crypto/elliptic](/pkg/crypto/elliptic/)
+#### [crypto/elliptic](/pkg/crypto/elliptic/)
 
-:   <!-- CL 382995 -->
-    Operating on invalid curve points (those for which the
-    `IsOnCurve` method returns false, and which are never returned
-    by `Unmarshal` or by a `Curve` method operating on a
-    valid point) has always been undefined behavior and can lead to key
-    recovery attacks. If an invalid point is supplied to
-    [`Marshal`](/pkg/crypto/elliptic/#Marshal),
-    [`MarshalCompressed`](/pkg/crypto/elliptic/#MarshalCompressed),
-    [`Add`](/pkg/crypto/elliptic/#Curve.Add),
-    [`Double`](/pkg/crypto/elliptic/#Curve.Double), or
-    [`ScalarMult`](/pkg/crypto/elliptic/#Curve.ScalarMult),
-    they will now panic.
+<!-- CL 382995 -->
+Operating on invalid curve points (those for which the
+`IsOnCurve` method returns false, and which are never returned
+by `Unmarshal` or by a `Curve` method operating on a
+valid point) has always been undefined behavior and can lead to key
+recovery attacks. If an invalid point is supplied to
+[`Marshal`](/pkg/crypto/elliptic/#Marshal),
+[`MarshalCompressed`](/pkg/crypto/elliptic/#MarshalCompressed),
+[`Add`](/pkg/crypto/elliptic/#Curve.Add),
+[`Double`](/pkg/crypto/elliptic/#Curve.Double), or
+[`ScalarMult`](/pkg/crypto/elliptic/#Curve.ScalarMult),
+they will now panic.
 
-    <!-- golang.org/issue/52182 -->
-    `ScalarBaseMult` operations on the `P224`,
-    `P384`, and `P521` curves are now up to three
-    times faster, leading to similar speedups in some ECDSA operations. The
-    generic (not platform optimized) `P256` implementation was
-    replaced with one derived from a formally verified model; this might
-    lead to significant slowdowns on 32-bit platforms.
+<!-- golang.org/issue/52182 -->
+`ScalarBaseMult` operations on the `P224`,
+`P384`, and `P521` curves are now up to three
+times faster, leading to similar speedups in some ECDSA operations. The
+generic (not platform optimized) `P256` implementation was
+replaced with one derived from a formally verified model; this might
+lead to significant slowdowns on 32-bit platforms.
 
 <!-- crypto/elliptic -->
 
-[crypto/rand](/pkg/crypto/rand/)
+#### [crypto/rand](/pkg/crypto/rand/)
 
-:   <!-- CL 370894 -->
-    <!-- CL 390038 -->
-    [`Read`](/pkg/crypto/rand/#Read) no longer buffers
-    random data obtained from the operating system between calls. Applications
-    that perform many small reads at high frequency might choose to wrap
-    [`Reader`](/pkg/crypto/rand/#Reader) in a
-    [`bufio.Reader`](/pkg/bufio/#Reader) for performance
-    reasons, taking care to use
-    [`io.ReadFull`](/pkg/io/#ReadFull)
-    to ensure no partial reads occur.
+<!-- CL 370894 -->
+<!-- CL 390038 -->
+[`Read`](/pkg/crypto/rand/#Read) no longer buffers
+random data obtained from the operating system between calls. Applications
+that perform many small reads at high frequency might choose to wrap
+[`Reader`](/pkg/crypto/rand/#Reader) in a
+[`bufio.Reader`](/pkg/bufio/#Reader) for performance
+reasons, taking care to use
+[`io.ReadFull`](/pkg/io/#ReadFull)
+to ensure no partial reads occur.
 
-    <!-- CL 375215 -->
-    On Plan 9, `Read` has been reimplemented, replacing the ANSI
-    X9.31 algorithm with a fast key erasure generator.
+<!-- CL 375215 -->
+On Plan 9, `Read` has been reimplemented, replacing the ANSI
+X9.31 algorithm with a fast key erasure generator.
 
-    <!-- CL 391554 -->
-    <!-- CL 387554 -->
-    The [`Prime`](/pkg/crypto/rand/#Prime)
-    implementation was changed to use only rejection sampling,
-    which removes a bias when generating small primes in non-cryptographic contexts,
-    removes one possible minor timing leak,
-    and better aligns the behavior with BoringSSL,
-    all while simplifying the implementation.
-    The change does produce different outputs for a given random source
-    stream compared to the previous implementation,
-    which can break tests written expecting specific results from
-    specific deterministic random sources.
-    To help prevent such problems in the future,
-    the implementation is now intentionally non-deterministic with respect to the input stream.
+<!-- CL 391554 -->
+<!-- CL 387554 -->
+The [`Prime`](/pkg/crypto/rand/#Prime)
+implementation was changed to use only rejection sampling,
+which removes a bias when generating small primes in non-cryptographic contexts,
+removes one possible minor timing leak,
+and better aligns the behavior with BoringSSL,
+all while simplifying the implementation.
+The change does produce different outputs for a given random source
+stream compared to the previous implementation,
+which can break tests written expecting specific results from
+specific deterministic random sources.
+To help prevent such problems in the future,
+the implementation is now intentionally non-deterministic with respect to the input stream.
 
 <!-- crypto/rand -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 400974 -->
-    <!-- https://go.dev/issue/45428 -->
-    The `GODEBUG` option `tls10default=1` has been
-    removed. It is still possible to enable TLS 1.0 client-side by setting
-    [`Config.MinVersion`](/pkg/crypto/tls/#Config.MinVersion).
+<!-- CL 400974 -->
+<!-- https://go.dev/issue/45428 -->
+The `GODEBUG` option `tls10default=1` has been
+removed. It is still possible to enable TLS 1.0 client-side by setting
+[`Config.MinVersion`](/pkg/crypto/tls/#Config.MinVersion).
 
-    <!-- CL 384894 -->
-    The TLS server and client now reject duplicate extensions in TLS
-    handshakes, as required by RFC 5246, Section 7.4.1.4 and RFC 8446, Section
-    4.2.
+<!-- CL 384894 -->
+The TLS server and client now reject duplicate extensions in TLS
+handshakes, as required by RFC 5246, Section 7.4.1.4 and RFC 8446, Section
+4.2.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 285872 -->
-    [`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
-    no longer supports creating certificates with `SignatureAlgorithm`
-    set to `MD5WithRSA`.
+<!-- CL 285872 -->
+[`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
+no longer supports creating certificates with `SignatureAlgorithm`
+set to `MD5WithRSA`.
 
-    <!-- CL 400494 -->
-    `CreateCertificate` no longer accepts negative serial numbers.
+<!-- CL 400494 -->
+`CreateCertificate` no longer accepts negative serial numbers.
 
-    <!-- CL 399827 -->
-    `CreateCertificate` will not emit an empty SEQUENCE anymore
-    when the produced certificate has no extensions.
+<!-- CL 399827 -->
+`CreateCertificate` will not emit an empty SEQUENCE anymore
+when the produced certificate has no extensions.
 
-    <!-- CL 396774 -->
-    Removal of the `GODEBUG` option`x509sha1=1`,
-    originally planned for Go 1.19, has been rescheduled to a future release.
-    Applications using it should work on migrating. Practical attacks against
-    SHA-1 have been demonstrated since 2017 and publicly trusted Certificate
-    Authorities have not issued SHA-1 certificates since 2015.
+<!-- CL 396774 -->
+Removal of the `GODEBUG` option`x509sha1=1`,
+originally planned for Go 1.19, has been rescheduled to a future release.
+Applications using it should work on migrating. Practical attacks against
+SHA-1 have been demonstrated since 2017 and publicly trusted Certificate
+Authorities have not issued SHA-1 certificates since 2015.
 
-    <!-- CL 383215 -->
-    [`ParseCertificate`](/pkg/crypto/x509/#ParseCertificate)
-    and [`ParseCertificateRequest`](/pkg/crypto/x509/#ParseCertificateRequest)
-    now reject certificates and CSRs which contain duplicate extensions.
+<!-- CL 383215 -->
+[`ParseCertificate`](/pkg/crypto/x509/#ParseCertificate)
+and [`ParseCertificateRequest`](/pkg/crypto/x509/#ParseCertificateRequest)
+now reject certificates and CSRs which contain duplicate extensions.
 
-    <!-- https://go.dev/issue/46057 -->
-    <!-- https://go.dev/issue/35044 -->
-    <!-- CL 398237 -->
-    <!-- CL 400175 -->
-    <!-- CL 388915 -->
-    The new [`CertPool.Clone`](/pkg/crypto/x509/#CertPool.Clone)
-    and [`CertPool.Equal`](/pkg/crypto/x509/#CertPool.Equal)
-    methods allow cloning a `CertPool` and checking the equivalence of two
-    `CertPool`s respectively.
+<!-- https://go.dev/issue/46057 -->
+<!-- https://go.dev/issue/35044 -->
+<!-- CL 398237 -->
+<!-- CL 400175 -->
+<!-- CL 388915 -->
+The new [`CertPool.Clone`](/pkg/crypto/x509/#CertPool.Clone)
+and [`CertPool.Equal`](/pkg/crypto/x509/#CertPool.Equal)
+methods allow cloning a `CertPool` and checking the equivalence of two
+`CertPool`s respectively.
 
-    <!-- https://go.dev/issue/50674 -->
-    <!-- CL 390834 -->
-    The new function [`ParseRevocationList`](/pkg/crypto/x509/#ParseRevocationList)
-    provides a faster, safer to use CRL parser which returns a
-    [`RevocationList`](/pkg/crypto/x509/#RevocationList).
-    Parsing a CRL also populates the new `RevocationList` fields
-    `RawIssuer`, `Signature`,
-    `AuthorityKeyId`, and `Extensions`, which are ignored by
-    [`CreateRevocationList`](/pkg/crypto/x509/#CreateRevocationList).
+<!-- https://go.dev/issue/50674 -->
+<!-- CL 390834 -->
+The new function [`ParseRevocationList`](/pkg/crypto/x509/#ParseRevocationList)
+provides a faster, safer to use CRL parser which returns a
+[`RevocationList`](/pkg/crypto/x509/#RevocationList).
+Parsing a CRL also populates the new `RevocationList` fields
+`RawIssuer`, `Signature`,
+`AuthorityKeyId`, and `Extensions`, which are ignored by
+[`CreateRevocationList`](/pkg/crypto/x509/#CreateRevocationList).
 
-    The new method [`RevocationList.CheckSignatureFrom`](/pkg/crypto/x509/#RevocationList.CheckSignatureFrom)
-    checks that the signature on a CRL is a valid signature from a
-    [`Certificate`](/pkg/crypto/x509/#Certificate).
+The new method [`RevocationList.CheckSignatureFrom`](/pkg/crypto/x509/#RevocationList.CheckSignatureFrom)
+checks that the signature on a CRL is a valid signature from a
+[`Certificate`](/pkg/crypto/x509/#Certificate).
 
-    The [`ParseCRL`](/pkg/crypto/x509/#ParseCRL) and
-    [`ParseDERCRL`](/pkg/crypto/x509/#ParseDERCRL) functions
-    are now deprecated in favor of `ParseRevocationList`.
-    The [`Certificate.CheckCRLSignature`](/pkg/crypto/x509/#Certificate.CheckCRLSignature)
-    method is deprecated in favor of `RevocationList.CheckSignatureFrom`.
+The [`ParseCRL`](/pkg/crypto/x509/#ParseCRL) and
+[`ParseDERCRL`](/pkg/crypto/x509/#ParseDERCRL) functions
+are now deprecated in favor of `ParseRevocationList`.
+The [`Certificate.CheckCRLSignature`](/pkg/crypto/x509/#Certificate.CheckCRLSignature)
+method is deprecated in favor of `RevocationList.CheckSignatureFrom`.
 
-    <!-- CL 389555, CL 401115, CL 403554 -->
-    The path builder of [`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
-    was overhauled and should now produce better chains and/or be more efficient in complicated scenarios.
-    Name constraints are now also enforced on non-leaf certificates.
+<!-- CL 389555, CL 401115, CL 403554 -->
+The path builder of [`Certificate.Verify`](/pkg/crypto/x509/#Certificate.Verify)
+was overhauled and should now produce better chains and/or be more efficient in complicated scenarios.
+Name constraints are now also enforced on non-leaf certificates.
 
 <!-- crypto/x509 -->
 
-[crypto/x509/pkix](/pkg/crypto/x509/pkix/)
+#### [crypto/x509/pkix](/pkg/crypto/x509/pkix/)
 
-:   <!-- CL 390834 -->
-    The types [`CertificateList`](/pkg/crypto/x509/pkix/#CertificateList) and
-    [`TBSCertificateList`](/pkg/crypto/x509/pkix/#TBSCertificateList)
-    have been deprecated. The new [`crypto/x509` CRL functionality](#crypto/x509)
-    should be used instead.
+<!-- CL 390834 -->
+The types [`CertificateList`](/pkg/crypto/x509/pkix/#CertificateList) and
+[`TBSCertificateList`](/pkg/crypto/x509/pkix/#TBSCertificateList)
+have been deprecated. The new [`crypto/x509` CRL functionality](#crypto/x509)
+should be used instead.
 
 <!-- crypto/x509/pkix -->
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   <!-- CL 396735 -->
-    The new `EM_LOONGARCH` and `R_LARCH_*` constants
-    support the loong64 port.
+<!-- CL 396735 -->
+The new `EM_LOONGARCH` and `R_LARCH_*` constants
+support the loong64 port.
 
 <!-- debug/elf -->
 
-[debug/pe](/pkg/debug/pe/)
+#### [debug/pe](/pkg/debug/pe/)
 
-:   <!-- https://go.dev/issue/51868 -->
-    <!-- CL 394534 -->
-    The new [`File.COFFSymbolReadSectionDefAux`](/pkg/debug/pe/#File.COFFSymbolReadSectionDefAux)
-    method, which returns a [`COFFSymbolAuxFormat5`](/pkg/debug/pe/#COFFSymbolAuxFormat5),
-    provides access to COMDAT information in PE file sections.
-    These are supported by new `IMAGE_COMDAT_*` and `IMAGE_SCN_*` constants.
+<!-- https://go.dev/issue/51868 -->
+<!-- CL 394534 -->
+The new [`File.COFFSymbolReadSectionDefAux`](/pkg/debug/pe/#File.COFFSymbolReadSectionDefAux)
+method, which returns a [`COFFSymbolAuxFormat5`](/pkg/debug/pe/#COFFSymbolAuxFormat5),
+provides access to COMDAT information in PE file sections.
+These are supported by new `IMAGE_COMDAT_*` and `IMAGE_SCN_*` constants.
 
 <!-- debug/pe -->
 
-[encoding/binary](/pkg/encoding/binary/)
+#### [encoding/binary](/pkg/encoding/binary/)
 
-:   <!-- https://go.dev/issue/50601 -->
-    <!-- CL 386017 -->
-    <!-- CL 389636 -->
-    The new interface
-    [`AppendByteOrder`](/pkg/encoding/binary/#AppendByteOrder)
-    provides efficient methods for appending a `uint16`, `uint32`, or `uint64`
-    to a byte slice.
-    [`BigEndian`](/pkg/encoding/binary/#BigEndian) and
-    [`LittleEndian`](/pkg/encoding/binary/#LittleEndian) now implement this interface.
+<!-- https://go.dev/issue/50601 -->
+<!-- CL 386017 -->
+<!-- CL 389636 -->
+The new interface
+[`AppendByteOrder`](/pkg/encoding/binary/#AppendByteOrder)
+provides efficient methods for appending a `uint16`, `uint32`, or `uint64`
+to a byte slice.
+[`BigEndian`](/pkg/encoding/binary/#BigEndian) and
+[`LittleEndian`](/pkg/encoding/binary/#LittleEndian) now implement this interface.
 
-    <!-- https://go.dev/issue/51644 -->
-    <!-- CL 400176 -->
-    Similarly, the new functions
-    [`AppendUvarint`](/pkg/encoding/binary/#AppendUvarint) and
-    [`AppendVarint`](/pkg/encoding/binary/#AppendVarint)
-    are efficient appending versions of
-    [`PutUvarint`](/pkg/encoding/binary/#PutUvarint) and
-    [`PutVarint`](/pkg/encoding/binary/#PutVarint).
+<!-- https://go.dev/issue/51644 -->
+<!-- CL 400176 -->
+Similarly, the new functions
+[`AppendUvarint`](/pkg/encoding/binary/#AppendUvarint) and
+[`AppendVarint`](/pkg/encoding/binary/#AppendVarint)
+are efficient appending versions of
+[`PutUvarint`](/pkg/encoding/binary/#PutUvarint) and
+[`PutVarint`](/pkg/encoding/binary/#PutVarint).
 
 <!-- encoding/binary -->
 
-[encoding/csv](/pkg/encoding/csv/)
+#### [encoding/csv](/pkg/encoding/csv/)
 
-:   <!-- https://go.dev/issue/43401 -->
-    <!-- CL 405675 -->
-    The new method
-    [`Reader.InputOffset`](/pkg/encoding/csv/#Reader.InputOffset)
-    reports the reader's current input position as a byte offset,
-    analogous to `encoding/json`'s
-    [`Decoder.InputOffset`](/pkg/encoding/json/#Decoder.InputOffset).
+<!-- https://go.dev/issue/43401 -->
+<!-- CL 405675 -->
+The new method
+[`Reader.InputOffset`](/pkg/encoding/csv/#Reader.InputOffset)
+reports the reader's current input position as a byte offset,
+analogous to `encoding/json`'s
+[`Decoder.InputOffset`](/pkg/encoding/json/#Decoder.InputOffset).
 
 <!-- encoding/csv -->
 
-[encoding/xml](/pkg/encoding/xml/)
+#### [encoding/xml](/pkg/encoding/xml/)
 
-:   <!-- https://go.dev/issue/45628 -->
-    <!-- CL 311270 -->
-    The new method
-    [`Decoder.InputPos`](/pkg/encoding/xml/#Decoder.InputPos)
-    reports the reader's current input position as a line and column,
-    analogous to `encoding/csv`'s
-    [`Decoder.FieldPos`](/pkg/encoding/csv/#Decoder.FieldPos).
+<!-- https://go.dev/issue/45628 -->
+<!-- CL 311270 -->
+The new method
+[`Decoder.InputPos`](/pkg/encoding/xml/#Decoder.InputPos)
+reports the reader's current input position as a line and column,
+analogous to `encoding/csv`'s
+[`Decoder.FieldPos`](/pkg/encoding/csv/#Decoder.FieldPos).
 
 <!-- encoding/xml -->
 
-[flag](/pkg/flag/)
+#### [flag](/pkg/flag/)
 
-:   <!-- https://go.dev/issue/45754 -->
-    <!-- CL 313329 -->
-    The new function
-    [`TextVar`](/pkg/flag/#TextVar)
-    defines a flag with a value implementing
-    [`encoding.TextUnmarshaler`](/pkg/encoding/#TextUnmarshaler),
-    allowing command-line flag variables to have types such as
-    [`big.Int`](/pkg/math/big/#Int),
-    [`netip.Addr`](/pkg/net/netip/#Addr), and
-    [`time.Time`](/pkg/time/#Time).
+<!-- https://go.dev/issue/45754 -->
+<!-- CL 313329 -->
+The new function
+[`TextVar`](/pkg/flag/#TextVar)
+defines a flag with a value implementing
+[`encoding.TextUnmarshaler`](/pkg/encoding/#TextUnmarshaler),
+allowing command-line flag variables to have types such as
+[`big.Int`](/pkg/math/big/#Int),
+[`netip.Addr`](/pkg/net/netip/#Addr), and
+[`time.Time`](/pkg/time/#Time).
 
 <!-- flag -->
 
-[fmt](/pkg/fmt/)
+#### [fmt](/pkg/fmt/)
 
-:   <!-- https://go.dev/issue/47579 -->
-    <!-- CL 406177 -->
-    The new functions
-    [`Append`](/pkg/fmt/#Append),
-    [`Appendf`](/pkg/fmt/#Appendf), and
-    [`Appendln`](/pkg/fmt/#Appendln)
-    append formatted data to byte slices.
+<!-- https://go.dev/issue/47579 -->
+<!-- CL 406177 -->
+The new functions
+[`Append`](/pkg/fmt/#Append),
+[`Appendf`](/pkg/fmt/#Appendf), and
+[`Appendln`](/pkg/fmt/#Appendln)
+append formatted data to byte slices.
 
 <!-- fmt -->
 
-[go/parser](/pkg/go/parser/)
+#### [go/parser](/pkg/go/parser/)
 
-:   <!-- CL 403696 -->
-    The parser now recognizes `~x` as a unary expression with operator
-    [token.TILDE](/pkg/go/token/#TILDE),
-    allowing better error recovery when a type constraint such as `~int` is used in an incorrect context.
+<!-- CL 403696 -->
+The parser now recognizes `~x` as a unary expression with operator
+[token.TILDE](/pkg/go/token/#TILDE),
+allowing better error recovery when a type constraint such as `~int` is used in an incorrect context.
 
 <!-- go/parser -->
 
-[go/types](/pkg/go/types/)
+#### [go/types](/pkg/go/types/)
 
-:   <!-- https://go.dev/issue/51682 -->
-    <!-- CL 395535 -->
-    The new methods [`Func.Origin`](/pkg/go/types/#Func.Origin)
-    and [`Var.Origin`](/pkg/go/types/#Var.Origin) return the
-    corresponding [`Object`](/pkg/go/types/#Object) of the
-    generic type for synthetic [`Func`](/pkg/go/types/#Func)
-    and [`Var`](/pkg/go/types/#Var) objects created during type
-    instantiation.
+<!-- https://go.dev/issue/51682 -->
+<!-- CL 395535 -->
+The new methods [`Func.Origin`](/pkg/go/types/#Func.Origin)
+and [`Var.Origin`](/pkg/go/types/#Var.Origin) return the
+corresponding [`Object`](/pkg/go/types/#Object) of the
+generic type for synthetic [`Func`](/pkg/go/types/#Func)
+and [`Var`](/pkg/go/types/#Var) objects created during type
+instantiation.
 
-    <!-- https://go.dev/issue/52728 -->
-    <!-- CL 404885 -->
-    It is no longer possible to produce an infinite number of distinct-but-identical
-    [`Named`](/pkg/go/types/#Named) type instantiations via
-    recursive calls to
-    [`Named.Underlying`](/pkg/go/types/#Named.Underlying) or
-    [`Named.Method`](/pkg/go/types/#Named.Method).
+<!-- https://go.dev/issue/52728 -->
+<!-- CL 404885 -->
+It is no longer possible to produce an infinite number of distinct-but-identical
+[`Named`](/pkg/go/types/#Named) type instantiations via
+recursive calls to
+[`Named.Underlying`](/pkg/go/types/#Named.Underlying) or
+[`Named.Method`](/pkg/go/types/#Named.Method).
 
 <!-- go/types -->
 
-[hash/maphash](/pkg/hash/maphash/)
+#### [hash/maphash](/pkg/hash/maphash/)
 
-:   <!-- https://go.dev/issue/42710 -->
-    <!-- CL 392494 -->
-    The new functions
-    [`Bytes`](/pkg/hash/maphash/#Bytes)
-    and
-    [`String`](/pkg/hash/maphash/#String)
-    provide an efficient way hash a single byte slice or string.
-    They are equivalent to using the more general
-    [`Hash`](/pkg/hash/maphash/#Hash)
-    with a single write, but they avoid setup overhead for small inputs.
+<!-- https://go.dev/issue/42710 -->
+<!-- CL 392494 -->
+The new functions
+[`Bytes`](/pkg/hash/maphash/#Bytes)
+and
+[`String`](/pkg/hash/maphash/#String)
+provide an efficient way hash a single byte slice or string.
+They are equivalent to using the more general
+[`Hash`](/pkg/hash/maphash/#Hash)
+with a single write, but they avoid setup overhead for small inputs.
 
 <!-- hash/maphash -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- https://go.dev/issue/46121 -->
-    <!-- CL 389156 -->
-    The type [`FuncMap`](/pkg/html/template/#FuncMap)
-    is now an alias for
-    `text/template`'s [`FuncMap`](/pkg/text/template/#FuncMap)
-    instead of its own named type.
-    This allows writing code that operates on a `FuncMap` from either setting.
+<!-- https://go.dev/issue/46121 -->
+<!-- CL 389156 -->
+The type [`FuncMap`](/pkg/html/template/#FuncMap)
+is now an alias for
+`text/template`'s [`FuncMap`](/pkg/text/template/#FuncMap)
+instead of its own named type.
+This allows writing code that operates on a `FuncMap` from either setting.
 
-    <!-- https://go.dev/issue/59153 -->
-    <!-- CL 481987 -->
-    Go 1.19.8 and later
-    [disallow actions in ECMAScript 6 template literals.](/pkg/html/template#hdr-Security_Model)
-    This behavior can be reverted by the `GODEBUG=jstmpllitinterp=1` setting.
+<!-- https://go.dev/issue/59153 -->
+<!-- CL 481987 -->
+Go 1.19.8 and later
+[disallow actions in ECMAScript 6 template literals.](/pkg/html/template#hdr-Security_Model)
+This behavior can be reverted by the `GODEBUG=jstmpllitinterp=1` setting.
 
 <!-- html/template -->
 
-[image/draw](/pkg/image/draw/)
+#### [image/draw](/pkg/image/draw/)
 
-:   <!-- CL 396795 -->
-    [`Draw`](/pkg/image/draw/#Draw) with the
-    [`Src`](/pkg/image/draw/#Src) operator preserves
-    non-premultiplied-alpha colors when destination and source images are
-    both [`image.NRGBA`](/pkg/image/#NRGBA)
-    or both [`image.NRGBA64`](/pkg/image/#NRGBA64).
-    This reverts a behavior change accidentally introduced by a Go 1.18
-    library optimization; the code now matches the behavior in Go 1.17 and earlier.
+<!-- CL 396795 -->
+[`Draw`](/pkg/image/draw/#Draw) with the
+[`Src`](/pkg/image/draw/#Src) operator preserves
+non-premultiplied-alpha colors when destination and source images are
+both [`image.NRGBA`](/pkg/image/#NRGBA)
+or both [`image.NRGBA64`](/pkg/image/#NRGBA64).
+This reverts a behavior change accidentally introduced by a Go 1.18
+library optimization; the code now matches the behavior in Go 1.17 and earlier.
 
 <!-- image/draw -->
 
-[io](/pkg/io/)
+#### [io](/pkg/io/)
 
-:   <!-- https://go.dev/issue/51566 -->
-    <!-- CL 400236 -->
-    [`NopCloser`](/pkg/io/#NopCloser)'s result now implements
-    [`WriterTo`](/pkg/io/#WriterTo)
-    whenever its input does.
+<!-- https://go.dev/issue/51566 -->
+<!-- CL 400236 -->
+[`NopCloser`](/pkg/io/#NopCloser)'s result now implements
+[`WriterTo`](/pkg/io/#WriterTo)
+whenever its input does.
 
-    <!-- https://go.dev/issue/50842 -->
-    [`MultiReader`](/pkg/io/#MultiReader)'s result now implements
-    [`WriterTo`](/pkg/io/#WriterTo) unconditionally.
-    If any underlying reader does not implement `WriterTo`,
-    it is simulated appropriately.
+<!-- https://go.dev/issue/50842 -->
+[`MultiReader`](/pkg/io/#MultiReader)'s result now implements
+[`WriterTo`](/pkg/io/#WriterTo) unconditionally.
+If any underlying reader does not implement `WriterTo`,
+it is simulated appropriately.
 
 <!-- io -->
 
-[mime](/pkg/mime/)
+#### [mime](/pkg/mime/)
 
-:   <!-- CL 406894 -->
-    On Windows only, the mime package now ignores a registry entry
-    recording that the extension `.js` should have MIME
-    type `text/plain`. This is a common unintentional
-    misconfiguration on Windows systems. The effect is
-    that `.js` will have the default MIME
-    type `text/javascript; charset=utf-8`.
-    Applications that expect `text/plain` on Windows must
-    now explicitly call
-    [`AddExtensionType`](/pkg/mime/#AddExtensionType).
+<!-- CL 406894 -->
+On Windows only, the mime package now ignores a registry entry
+recording that the extension `.js` should have MIME
+type `text/plain`. This is a common unintentional
+misconfiguration on Windows systems. The effect is
+that `.js` will have the default MIME
+type `text/javascript; charset=utf-8`.
+Applications that expect `text/plain` on Windows must
+now explicitly call
+[`AddExtensionType`](/pkg/mime/#AddExtensionType).
 
 <!-- mime -->
 
-[mime/multipart](/pkg/mime/multipart)
+#### [mime/multipart](/pkg/mime/multipart)
 
-:   <!-- https://go.dev/issue/59153 -->
-    <!-- CL 481985 -->
-    In Go 1.19.8 and later, this package sets limits the size
-    of the MIME data it processes to protect against malicious inputs.
-    `Reader.NextPart` and `Reader.NextRawPart` limit the
-    number of headers in a part to 10000 and `Reader.ReadForm` limits
-    the total number of headers in all `FileHeaders` to 10000.
-    These limits may be adjusted with the `GODEBUG=multipartmaxheaders`
-    setting.
-    `Reader.ReadForm` further limits the number of parts in a form to 1000.
-    This limit may be adjusted with the `GODEBUG=multipartmaxparts`
-    setting.
+<!-- https://go.dev/issue/59153 -->
+<!-- CL 481985 -->
+In Go 1.19.8 and later, this package sets limits the size
+of the MIME data it processes to protect against malicious inputs.
+`Reader.NextPart` and `Reader.NextRawPart` limit the
+number of headers in a part to 10000 and `Reader.ReadForm` limits
+the total number of headers in all `FileHeaders` to 10000.
+These limits may be adjusted with the `GODEBUG=multipartmaxheaders`
+setting.
+`Reader.ReadForm` further limits the number of parts in a form to 1000.
+This limit may be adjusted with the `GODEBUG=multipartmaxparts`
+setting.
 
 <!-- mime/multipart -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 386016 -->
-    The pure Go resolver will now use EDNS(0) to include a suggested
-    maximum reply packet length, permitting reply packets to contain
-    up to 1232 bytes (the previous maximum was 512).
-    In the unlikely event that this causes problems with a local DNS
-    resolver, setting the environment variable
-    `GODEBUG=netdns=cgo` to use the cgo-based resolver
-    should work.
-    Please report any such problems on [the
-    issue tracker](/issue/new).
+<!-- CL 386016 -->
+The pure Go resolver will now use EDNS(0) to include a suggested
+maximum reply packet length, permitting reply packets to contain
+up to 1232 bytes (the previous maximum was 512).
+In the unlikely event that this causes problems with a local DNS
+resolver, setting the environment variable
+`GODEBUG=netdns=cgo` to use the cgo-based resolver
+should work.
+Please report any such problems on [the
+issue tracker](/issue/new).
 
-    <!-- https://go.dev/issue/51428 -->
-    <!-- CL 396877 -->
-    When a net package function or method returns an "I/O timeout"
-    error, the error will now satisfy `errors.Is(err,
-      context.DeadlineExceeded)`. When a net package function
-    returns an "operation was canceled" error, the error will now
-    satisfy `errors.Is(err, context.Canceled)`.
-    These changes are intended to make it easier for code to test
-    for cases in which a context cancellation or timeout causes a net
-    package function or method to return an error, while preserving
-    backward compatibility for error messages.
+<!-- https://go.dev/issue/51428 -->
+<!-- CL 396877 -->
+When a net package function or method returns an "I/O timeout"
+error, the error will now satisfy `errors.Is(err,
+  context.DeadlineExceeded)`. When a net package function
+returns an "operation was canceled" error, the error will now
+satisfy `errors.Is(err, context.Canceled)`.
+These changes are intended to make it easier for code to test
+for cases in which a context cancellation or timeout causes a net
+package function or method to return an error, while preserving
+backward compatibility for error messages.
 
-    <!-- https://go.dev/issue/33097 -->
-    <!-- CL 400654 -->
-    [`Resolver.PreferGo`](/pkg/net/#Resolver.PreferGo)
-    is now implemented on Windows and Plan 9. It previously only worked on Unix
-    platforms. Combined with
-    [`Dialer.Resolver`](/pkg/net/#Dialer.Resolver) and
-    [`Resolver.Dial`](/pkg/net/#Resolver.Dial), it's now
-    possible to write portable programs and be in control of all DNS name lookups
-    when dialing.
+<!-- https://go.dev/issue/33097 -->
+<!-- CL 400654 -->
+[`Resolver.PreferGo`](/pkg/net/#Resolver.PreferGo)
+is now implemented on Windows and Plan 9. It previously only worked on Unix
+platforms. Combined with
+[`Dialer.Resolver`](/pkg/net/#Dialer.Resolver) and
+[`Resolver.Dial`](/pkg/net/#Resolver.Dial), it's now
+possible to write portable programs and be in control of all DNS name lookups
+when dialing.
 
-    The `net` package now has initial support for the `netgo`
-    build tag on Windows. When used, the package uses the Go DNS client (as used
-    by `Resolver.PreferGo`) instead of asking Windows for
-    DNS results. The upstream DNS server it discovers from Windows
-    may not yet be correct with complex system network configurations, however.
+The `net` package now has initial support for the `netgo`
+build tag on Windows. When used, the package uses the Go DNS client (as used
+by `Resolver.PreferGo`) instead of asking Windows for
+DNS results. The upstream DNS server it discovers from Windows
+may not yet be correct with complex system network configurations, however.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 269997 -->
-    [`ResponseWriter.WriteHeader`](/pkg/net/http/#ResponseWriter)
-    now supports sending user-defined 1xx informational headers.
+<!-- CL 269997 -->
+[`ResponseWriter.WriteHeader`](/pkg/net/http/#ResponseWriter)
+now supports sending user-defined 1xx informational headers.
 
-    <!-- CL 361397 -->
-    The `io.ReadCloser` returned by
-    [`MaxBytesReader`](/pkg/net/http/#MaxBytesReader)
-    will now return the defined error type
-    [`MaxBytesError`](/pkg/net/http/#MaxBytesError)
-    when its read limit is exceeded.
+<!-- CL 361397 -->
+The `io.ReadCloser` returned by
+[`MaxBytesReader`](/pkg/net/http/#MaxBytesReader)
+will now return the defined error type
+[`MaxBytesError`](/pkg/net/http/#MaxBytesError)
+when its read limit is exceeded.
 
-    <!-- CL 375354 -->
-    The HTTP client will handle a 3xx response without a
-    `Location` header by returning it to the caller,
-    rather than treating it as an error.
+<!-- CL 375354 -->
+The HTTP client will handle a 3xx response without a
+`Location` header by returning it to the caller,
+rather than treating it as an error.
 
 <!-- net/http -->
 
-[net/url](/pkg/net/url/)
+#### [net/url](/pkg/net/url/)
 
-:   <!-- CL 374654 -->
-    The new
-    [`JoinPath`](/pkg/net/url/#JoinPath)
-    function and
-    [`URL.JoinPath`](/pkg/net/url/#URL.JoinPath)
-    method create a new `URL` by joining a list of path
-    elements.
+<!-- CL 374654 -->
+The new
+[`JoinPath`](/pkg/net/url/#JoinPath)
+function and
+[`URL.JoinPath`](/pkg/net/url/#URL.JoinPath)
+method create a new `URL` by joining a list of path
+elements.
 
-    <!-- https://go.dev/issue/46059 -->
-    The `URL` type now distinguishes between URLs with no
-    authority and URLs with an empty authority. For example,
-    `http:///path` has an empty authority (host),
-    while `http:/path` has none.
+<!-- https://go.dev/issue/46059 -->
+The `URL` type now distinguishes between URLs with no
+authority and URLs with an empty authority. For example,
+`http:///path` has an empty authority (host),
+while `http:/path` has none.
 
-    The new [`URL`](/pkg/net/url/#URL) field
-    `OmitHost` is set to `true` when a
-    `URL` has an empty authority.
+The new [`URL`](/pkg/net/url/#URL) field
+`OmitHost` is set to `true` when a
+`URL` has an empty authority.
 
 <!-- net/url -->
 
-[os/exec](/pkg/os/exec/)
+#### [os/exec](/pkg/os/exec/)
 
-:   <!-- https://go.dev/issue/50599 -->
-    <!-- CL 401340 -->
-    A [`Cmd`](/pkg/os/exec/#Cmd) with a non-empty `Dir` field
-    and nil `Env` now implicitly sets the `PWD` environment
-    variable for the subprocess to match `Dir`.
+<!-- https://go.dev/issue/50599 -->
+<!-- CL 401340 -->
+A [`Cmd`](/pkg/os/exec/#Cmd) with a non-empty `Dir` field
+and nil `Env` now implicitly sets the `PWD` environment
+variable for the subprocess to match `Dir`.
 
-    The new method [`Cmd.Environ`](/pkg/os/exec/#Cmd.Environ) reports the
-    environment that would be used to run the command, including the
-    implicitly set `PWD` variable.
+The new method [`Cmd.Environ`](/pkg/os/exec/#Cmd.Environ) reports the
+environment that would be used to run the command, including the
+implicitly set `PWD` variable.
 
 <!-- os/exec -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- https://go.dev/issue/47066 -->
-    <!-- CL 357331 -->
-    The method [`Value.Bytes`](/pkg/reflect/#Value.Bytes)
-    now accepts addressable arrays in addition to slices.
+<!-- https://go.dev/issue/47066 -->
+<!-- CL 357331 -->
+The method [`Value.Bytes`](/pkg/reflect/#Value.Bytes)
+now accepts addressable arrays in addition to slices.
 
-    <!-- CL 400954 -->
-    The methods [`Value.Len`](/pkg/reflect/#Value.Len)
-    and [`Value.Cap`](/pkg/reflect/#Value.Cap)
-    now successfully operate on a pointer to an array and return the length of that array,
-    to match what the [builtin
-    `len` and `cap` functions do](/ref/spec#Length_and_capacity).
+<!-- CL 400954 -->
+The methods [`Value.Len`](/pkg/reflect/#Value.Len)
+and [`Value.Cap`](/pkg/reflect/#Value.Cap)
+now successfully operate on a pointer to an array and return the length of that array,
+to match what the [builtin
+`len` and `cap` functions do](/ref/spec#Length_and_capacity).
 
 <!-- reflect -->
 
-[regexp/syntax](/pkg/regexp/syntax/)
+#### [regexp/syntax](/pkg/regexp/syntax/)
 
-:   <!-- https://go.dev/issue/51684 -->
-    <!-- CL 401076 -->
-    Go 1.18 release candidate 1, Go 1.17.8, and Go 1.16.15 included a security fix
-    to the regular expression parser, making it reject very deeply nested expressions.
-    Because Go patch releases do not introduce new API,
-    the parser returned [`syntax.ErrInternalError`](/pkg/regexp/syntax/#ErrInternalError) in this case.
-    Go 1.19 adds a more specific error, [`syntax.ErrNestingDepth`](/pkg/regexp/syntax/#ErrNestingDepth),
-    which the parser now returns instead.
+<!-- https://go.dev/issue/51684 -->
+<!-- CL 401076 -->
+Go 1.18 release candidate 1, Go 1.17.8, and Go 1.16.15 included a security fix
+to the regular expression parser, making it reject very deeply nested expressions.
+Because Go patch releases do not introduce new API,
+the parser returned [`syntax.ErrInternalError`](/pkg/regexp/syntax/#ErrInternalError) in this case.
+Go 1.19 adds a more specific error, [`syntax.ErrNestingDepth`](/pkg/regexp/syntax/#ErrNestingDepth),
+which the parser now returns instead.
 
 <!-- regexp -->
 
-[runtime](/pkg/runtime/)
+#### [runtime](/pkg/runtime/)
 
-:   <!-- https://go.dev/issue/51461 -->
-    The [`GOROOT`](/pkg/runtime/#GOROOT) function now returns the empty string
-    (instead of `"go"`) when the binary was built with
-    the `-trimpath` flag set and the `GOROOT`
-    variable is not set in the process environment.
+<!-- https://go.dev/issue/51461 -->
+The [`GOROOT`](/pkg/runtime/#GOROOT) function now returns the empty string
+(instead of `"go"`) when the binary was built with
+the `-trimpath` flag set and the `GOROOT`
+variable is not set in the process environment.
 
 <!-- runtime -->
 
-[runtime/metrics](/pkg/runtime/metrics/)
+#### [runtime/metrics](/pkg/runtime/metrics/)
 
-:   <!-- https://go.dev/issue/47216 -->
-    <!-- CL 404305 -->
-    The new `/sched/gomaxprocs:threads`
-    [metric](/pkg/runtime/metrics/#hdr-Supported_metrics) reports
-    the current
-    [`runtime.GOMAXPROCS`](/pkg/runtime/#GOMAXPROCS)
-    value.
+<!-- https://go.dev/issue/47216 -->
+<!-- CL 404305 -->
+The new `/sched/gomaxprocs:threads`
+[metric](/pkg/runtime/metrics/#hdr-Supported_metrics) reports
+the current
+[`runtime.GOMAXPROCS`](/pkg/runtime/#GOMAXPROCS)
+value.
 
-    <!-- https://go.dev/issue/47216 -->
-    <!-- CL 404306 -->
-    The new `/cgo/go-to-c-calls:calls`
-    [metric](/pkg/runtime/metrics/#hdr-Supported_metrics)
-    reports the total number of calls made from Go to C. This metric is
-    identical to the
-    [`runtime.NumCgoCall`](/pkg/runtime/#NumCgoCall)
-    function.
+<!-- https://go.dev/issue/47216 -->
+<!-- CL 404306 -->
+The new `/cgo/go-to-c-calls:calls`
+[metric](/pkg/runtime/metrics/#hdr-Supported_metrics)
+reports the total number of calls made from Go to C. This metric is
+identical to the
+[`runtime.NumCgoCall`](/pkg/runtime/#NumCgoCall)
+function.
 
-    <!-- https://go.dev/issue/48409 -->
-    <!-- CL 403614 -->
-    The new `/gc/limiter/last-enabled:gc-cycle`
-    [metric](/pkg/runtime/metrics/#hdr-Supported_metrics)
-    reports the last GC cycle when the GC CPU limiter was enabled. See the
-    [runtime notes](#runtime) for details about the GC CPU limiter.
+<!-- https://go.dev/issue/48409 -->
+<!-- CL 403614 -->
+The new `/gc/limiter/last-enabled:gc-cycle`
+[metric](/pkg/runtime/metrics/#hdr-Supported_metrics)
+reports the last GC cycle when the GC CPU limiter was enabled. See the
+[runtime notes](#runtime) for details about the GC CPU limiter.
 
 <!-- runtime/metrics -->
 
-[runtime/pprof](/pkg/runtime/pprof/)
+#### [runtime/pprof](/pkg/runtime/pprof/)
 
-:   <!-- https://go.dev/issue/33250 -->
-    <!-- CL 387415 -->
-    Stop-the-world pause times have been significantly reduced when
-    collecting goroutine profiles, reducing the overall latency impact to the
-    application.
+<!-- https://go.dev/issue/33250 -->
+<!-- CL 387415 -->
+Stop-the-world pause times have been significantly reduced when
+collecting goroutine profiles, reducing the overall latency impact to the
+application.
 
-    <!-- CL 391434 -->
-    `MaxRSS` is now reported in heap profiles for all Unix
-    operating systems (it was previously only reported for
-    `GOOS=android`, `darwin`, `ios`, and
-    `linux`).
+<!-- CL 391434 -->
+`MaxRSS` is now reported in heap profiles for all Unix
+operating systems (it was previously only reported for
+`GOOS=android`, `darwin`, `ios`, and
+`linux`).
 
 <!-- runtime/pprof -->
 
-[runtime/race](/pkg/runtime/race/)
+#### [runtime/race](/pkg/runtime/race/)
 
-:   <!-- https://go.dev/issue/49761 -->
-    <!-- CL 333529 -->
-    The race detector has been upgraded to use thread sanitizer
-    version v3 on all supported platforms
-    except `windows/amd64`
-    and `openbsd/amd64`, which remain on v2.
-    Compared to v2, it is now typically 1.5x to 2x faster, uses half
-    as much memory, and it supports an unlimited number of
-    goroutines.
-    On Linux, the race detector now requires at least glibc version
-    2.17 and GNU binutils 2.26.
+<!-- https://go.dev/issue/49761 -->
+<!-- CL 333529 -->
+The race detector has been upgraded to use thread sanitizer
+version v3 on all supported platforms
+except `windows/amd64`
+and `openbsd/amd64`, which remain on v2.
+Compared to v2, it is now typically 1.5x to 2x faster, uses half
+as much memory, and it supports an unlimited number of
+goroutines.
+On Linux, the race detector now requires at least glibc version
+2.17 and GNU binutils 2.26.
 
-    <!-- CL 336549 -->
-    The race detector is now supported on `GOARCH=s390x`.
+<!-- CL 336549 -->
+The race detector is now supported on `GOARCH=s390x`.
 
-    <!-- https://go.dev/issue/52090 -->
-    Race detector support for `openbsd/amd64` has been
-    removed from thread sanitizer upstream, so it is unlikely to
-    ever be updated from v2.
+<!-- https://go.dev/issue/52090 -->
+Race detector support for `openbsd/amd64` has been
+removed from thread sanitizer upstream, so it is unlikely to
+ever be updated from v2.
 
 <!-- runtime/race -->
 
-[runtime/trace](/pkg/runtime/trace/)
+#### [runtime/trace](/pkg/runtime/trace/)
 
-:   <!-- CL 400795 -->
-    When tracing and the
-    [CPU profiler](/pkg/runtime/pprof/#StartCPUProfile) are
-    enabled simultaneously, the execution trace includes CPU profile
-    samples as instantaneous events.
+<!-- CL 400795 -->
+When tracing and the
+[CPU profiler](/pkg/runtime/pprof/#StartCPUProfile) are
+enabled simultaneously, the execution trace includes CPU profile
+samples as instantaneous events.
 
 <!-- runtime/trace -->
 
-[sort](/pkg/sort/)
+#### [sort](/pkg/sort/)
 
-:   <!-- CL 371574 -->
-    The sorting algorithm has been rewritten to use
-    [pattern-defeating quicksort](https://arxiv.org/pdf/2106.05123.pdf), which
-    is faster for several common scenarios.
+<!-- CL 371574 -->
+The sorting algorithm has been rewritten to use
+[pattern-defeating quicksort](https://arxiv.org/pdf/2106.05123.pdf), which
+is faster for several common scenarios.
 
-    <!-- https://go.dev/issue/50340 -->
-    <!-- CL 396514 -->
-    The new function
-    [`Find`](/pkg/sort/#Find)
-    is like
-    [`Search`](/pkg/sort/#Search)
-    but often easier to use: it returns an additional boolean reporting whether an equal value was found.
+<!-- https://go.dev/issue/50340 -->
+<!-- CL 396514 -->
+The new function
+[`Find`](/pkg/sort/#Find)
+is like
+[`Search`](/pkg/sort/#Search)
+but often easier to use: it returns an additional boolean reporting whether an equal value was found.
 
 <!-- sort -->
 
-[strconv](/pkg/strconv/)
+#### [strconv](/pkg/strconv/)
 
-:   <!-- CL 397255 -->
-    [`Quote`](/pkg/strconv/#Quote)
-    and related functions now quote the rune U+007F as `\x7f`,
-    not `\u007f`,
-    for consistency with other ASCII values.
+<!-- CL 397255 -->
+[`Quote`](/pkg/strconv/#Quote)
+and related functions now quote the rune U+007F as `\x7f`,
+not `\u007f`,
+for consistency with other ASCII values.
 
 <!-- strconv -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- https://go.dev/issue/51192 -->
-    <!-- CL 385796 -->
-    On PowerPC (`GOARCH=ppc64`, `ppc64le`),
-    [`Syscall`](/pkg/syscall/#Syscall),
-    [`Syscall6`](/pkg/syscall/#Syscall6),
-    [`RawSyscall`](/pkg/syscall/#RawSyscall), and
-    [`RawSyscall6`](/pkg/syscall/#RawSyscall6)
-    now always return 0 for return value `r2` instead of an
-    undefined value.
+<!-- https://go.dev/issue/51192 -->
+<!-- CL 385796 -->
+On PowerPC (`GOARCH=ppc64`, `ppc64le`),
+[`Syscall`](/pkg/syscall/#Syscall),
+[`Syscall6`](/pkg/syscall/#Syscall6),
+[`RawSyscall`](/pkg/syscall/#RawSyscall), and
+[`RawSyscall6`](/pkg/syscall/#RawSyscall6)
+now always return 0 for return value `r2` instead of an
+undefined value.
 
-    <!-- CL 391434 -->
-    On AIX and Solaris, [`Getrusage`](/pkg/syscall/#Getrusage) is now defined.
+<!-- CL 391434 -->
+On AIX and Solaris, [`Getrusage`](/pkg/syscall/#Getrusage) is now defined.
 
 <!-- syscall -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- https://go.dev/issue/51414 -->
-    <!-- CL 393515 -->
-    The new method
-    [`Duration.Abs`](/pkg/time/#Duration.Abs)
-    provides a convenient and safe way to take the absolute value of a duration,
-    converting −2⁶³ to 2⁶³−1.
-    (This boundary case can happen as the result of subtracting a recent time from the zero time.)
+<!-- https://go.dev/issue/51414 -->
+<!-- CL 393515 -->
+The new method
+[`Duration.Abs`](/pkg/time/#Duration.Abs)
+provides a convenient and safe way to take the absolute value of a duration,
+converting −2⁶³ to 2⁶³−1.
+(This boundary case can happen as the result of subtracting a recent time from the zero time.)
 
-    <!-- https://go.dev/issue/50062 -->
-    <!-- CL 405374 -->
-    The new method
-    [`Time.ZoneBounds`](/pkg/time/#Time.ZoneBounds)
-    returns the start and end times of the time zone in effect at a given time.
-    It can be used in a loop to enumerate all the known time zone transitions at a given location.
+<!-- https://go.dev/issue/50062 -->
+<!-- CL 405374 -->
+The new method
+[`Time.ZoneBounds`](/pkg/time/#Time.ZoneBounds)
+returns the start and end times of the time zone in effect at a given time.
+It can be used in a loop to enumerate all the known time zone transitions at a given location.
 
 <!-- time -->
 
diff --git a/_content/doc/go1.20.md b/_content/doc/go1.20.md
index 5229808..3d56a02 100644
--- a/_content/doc/go1.20.md
+++ b/_content/doc/go1.20.md
@@ -460,659 +460,659 @@
 in mind.
 There are also various performance improvements, not enumerated here.
 
-[archive/tar](/pkg/archive/tar/)
+#### [archive/tar](/pkg/archive/tar/)
 
-:   <!-- https://go.dev/issue/55356, CL 449937 -->
-    When the `GODEBUG=tarinsecurepath=0` environment variable is set,
-    [`Reader.Next`](/pkg/archive/tar/#Reader.Next) method
-    will now return the error [`ErrInsecurePath`](/pkg/archive/tar/#ErrInsecurePath)
-    for an entry with a file name that is an absolute path,
-    refers to a location outside the current directory, contains invalid
-    characters, or (on Windows) is a reserved name such as `NUL`.
-    A future version of Go may disable insecure paths by default.
+<!-- https://go.dev/issue/55356, CL 449937 -->
+When the `GODEBUG=tarinsecurepath=0` environment variable is set,
+[`Reader.Next`](/pkg/archive/tar/#Reader.Next) method
+will now return the error [`ErrInsecurePath`](/pkg/archive/tar/#ErrInsecurePath)
+for an entry with a file name that is an absolute path,
+refers to a location outside the current directory, contains invalid
+characters, or (on Windows) is a reserved name such as `NUL`.
+A future version of Go may disable insecure paths by default.
 
 <!-- archive/tar -->
 
-[archive/zip](/pkg/archive/zip/)
+#### [archive/zip](/pkg/archive/zip/)
 
-:   <!-- https://go.dev/issue/55356 -->
-    When the `GODEBUG=zipinsecurepath=0` environment variable is set,
-    [`NewReader`](/pkg/archive/zip/#NewReader) will now return the error
-    [`ErrInsecurePath`](/pkg/archive/zip/#ErrInsecurePath)
-    when opening an archive which contains any file name that is an absolute path,
-    refers to a location outside the current directory, contains invalid
-    characters, or (on Windows) is a reserved names such as `NUL`.
-    A future version of Go may disable insecure paths by default.
+<!-- https://go.dev/issue/55356 -->
+When the `GODEBUG=zipinsecurepath=0` environment variable is set,
+[`NewReader`](/pkg/archive/zip/#NewReader) will now return the error
+[`ErrInsecurePath`](/pkg/archive/zip/#ErrInsecurePath)
+when opening an archive which contains any file name that is an absolute path,
+refers to a location outside the current directory, contains invalid
+characters, or (on Windows) is a reserved names such as `NUL`.
+A future version of Go may disable insecure paths by default.
 
-    <!-- CL 449955 -->
-    Reading from a directory file that contains file data will now return an error.
-    The zip specification does not permit directory files to contain file data,
-    so this change only affects reading from invalid archives.
+<!-- CL 449955 -->
+Reading from a directory file that contains file data will now return an error.
+The zip specification does not permit directory files to contain file data,
+so this change only affects reading from invalid archives.
 
 <!-- archive/zip -->
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   <!-- CL 407176 -->
-    The new
-    [`CutPrefix`](/pkg/bytes/#CutPrefix) and
-    [`CutSuffix`](/pkg/bytes/#CutSuffix) functions
-    are like [`TrimPrefix`](/pkg/bytes/#TrimPrefix)
-    and [`TrimSuffix`](/pkg/bytes/#TrimSuffix)
-    but also report whether the string was trimmed.
+<!-- CL 407176 -->
+The new
+[`CutPrefix`](/pkg/bytes/#CutPrefix) and
+[`CutSuffix`](/pkg/bytes/#CutSuffix) functions
+are like [`TrimPrefix`](/pkg/bytes/#TrimPrefix)
+and [`TrimSuffix`](/pkg/bytes/#TrimSuffix)
+but also report whether the string was trimmed.
 
-    <!-- CL 359675, https://go.dev/issue/45038 -->
-    The new [`Clone`](/pkg/bytes/#Clone) function
-    allocates a copy of a byte slice.
+<!-- CL 359675, https://go.dev/issue/45038 -->
+The new [`Clone`](/pkg/bytes/#Clone) function
+allocates a copy of a byte slice.
 
 <!-- bytes -->
 
-[context](/pkg/context/)
+#### [context](/pkg/context/)
 
-:   <!-- https://go.dev/issue/51365, CL 375977 -->
-    The new [`WithCancelCause`](/pkg/context/#WithCancelCause) function
-    provides a way to cancel a context with a given error.
-    That error can be retrieved by calling the new [`Cause`](/pkg/context/#Cause) function.
+<!-- https://go.dev/issue/51365, CL 375977 -->
+The new [`WithCancelCause`](/pkg/context/#WithCancelCause) function
+provides a way to cancel a context with a given error.
+That error can be retrieved by calling the new [`Cause`](/pkg/context/#Cause) function.
 
 <!-- context -->
 
-[crypto/ecdsa](/pkg/crypto/ecdsa/)
+#### [crypto/ecdsa](/pkg/crypto/ecdsa/)
 
-:   <!-- CL 353849 -->
-    When using supported curves, all operations are now implemented in constant time.
-    This led to an increase in CPU time between 5% and 30%, mostly affecting P-384 and P-521.
+<!-- CL 353849 -->
+When using supported curves, all operations are now implemented in constant time.
+This led to an increase in CPU time between 5% and 30%, mostly affecting P-384 and P-521.
 
-    <!-- https://go.dev/issue/56088, CL 450816 -->
-    The new [`PrivateKey.ECDH`](/pkg/crypto/ecdsa/#PrivateKey.ECDH) method
-    converts an `ecdsa.PrivateKey` to an `ecdh.PrivateKey`.
+<!-- https://go.dev/issue/56088, CL 450816 -->
+The new [`PrivateKey.ECDH`](/pkg/crypto/ecdsa/#PrivateKey.ECDH) method
+converts an `ecdsa.PrivateKey` to an `ecdh.PrivateKey`.
 
 <!-- crypto/ecdsa -->
 
-[crypto/ed25519](/pkg/crypto/ed25519/)
+#### [crypto/ed25519](/pkg/crypto/ed25519/)
 
-:   <!-- CL 373076, CL 404274, https://go.dev/issue/31804 -->
-    The [`PrivateKey.Sign`](/pkg/crypto/ed25519/#PrivateKey.Sign) method
-    and the
-    [`VerifyWithOptions`](/pkg/crypto/ed25519/#VerifyWithOptions) function
-    now support signing pre-hashed messages with Ed25519ph,
-    indicated by an
-    [`Options.HashFunc`](/pkg/crypto/ed25519/#Options.HashFunc)
-    that returns
-    [`crypto.SHA512`](/pkg/crypto/#SHA512).
-    They also now support Ed25519ctx and Ed25519ph with context,
-    indicated by setting the new
-    [`Options.Context`](/pkg/crypto/ed25519/#Options.Context)
-    field.
+<!-- CL 373076, CL 404274, https://go.dev/issue/31804 -->
+The [`PrivateKey.Sign`](/pkg/crypto/ed25519/#PrivateKey.Sign) method
+and the
+[`VerifyWithOptions`](/pkg/crypto/ed25519/#VerifyWithOptions) function
+now support signing pre-hashed messages with Ed25519ph,
+indicated by an
+[`Options.HashFunc`](/pkg/crypto/ed25519/#Options.HashFunc)
+that returns
+[`crypto.SHA512`](/pkg/crypto/#SHA512).
+They also now support Ed25519ctx and Ed25519ph with context,
+indicated by setting the new
+[`Options.Context`](/pkg/crypto/ed25519/#Options.Context)
+field.
 
 <!-- crypto/ed25519 -->
 
-[crypto/rsa](/pkg/crypto/rsa/)
+#### [crypto/rsa](/pkg/crypto/rsa/)
 
-:   <!-- CL 418874, https://go.dev/issue/19974 -->
-    The new field [`OAEPOptions.MGFHash`](/pkg/crypto/rsa/#OAEPOptions.MGFHash)
-    allows configuring the MGF1 hash separately for OAEP decryption.
+<!-- CL 418874, https://go.dev/issue/19974 -->
+The new field [`OAEPOptions.MGFHash`](/pkg/crypto/rsa/#OAEPOptions.MGFHash)
+allows configuring the MGF1 hash separately for OAEP decryption.
 
-    <!-- https://go.dev/issue/20654 -->
-    crypto/rsa now uses a new, safer, constant-time backend. This causes a CPU
-    runtime increase for decryption operations between approximately 15%
-    (RSA-2048 on amd64) and 45% (RSA-4096 on arm64), and more on 32-bit architectures.
-    Encryption operations are approximately 20x slower than before (but still 5-10x faster than decryption).
-    Performance is expected to improve in future releases.
-    Programs must not modify or manually generate the fields of
-    [`PrecomputedValues`](/pkg/crypto/rsa/#PrecomputedValues).
+<!-- https://go.dev/issue/20654 -->
+crypto/rsa now uses a new, safer, constant-time backend. This causes a CPU
+runtime increase for decryption operations between approximately 15%
+(RSA-2048 on amd64) and 45% (RSA-4096 on arm64), and more on 32-bit architectures.
+Encryption operations are approximately 20x slower than before (but still 5-10x faster than decryption).
+Performance is expected to improve in future releases.
+Programs must not modify or manually generate the fields of
+[`PrecomputedValues`](/pkg/crypto/rsa/#PrecomputedValues).
 
 <!-- crypto/rsa -->
 
-[crypto/subtle](/pkg/crypto/subtle/)
+#### [crypto/subtle](/pkg/crypto/subtle/)
 
-:   <!-- https://go.dev/issue/53021, CL 421435 -->
-    The new function [`XORBytes`](/pkg/crypto/subtle/#XORBytes)
-    XORs two byte slices together.
+<!-- https://go.dev/issue/53021, CL 421435 -->
+The new function [`XORBytes`](/pkg/crypto/subtle/#XORBytes)
+XORs two byte slices together.
 
 <!-- crypto/subtle -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 426455, CL 427155, CL 426454, https://go.dev/issue/46035 -->
-    Parsed certificates are now shared across all clients actively using that certificate.
-    The memory savings can be significant in programs that make many concurrent connections to a
-    server or collection of servers sharing any part of their certificate chains.
+<!-- CL 426455, CL 427155, CL 426454, https://go.dev/issue/46035 -->
+Parsed certificates are now shared across all clients actively using that certificate.
+The memory savings can be significant in programs that make many concurrent connections to a
+server or collection of servers sharing any part of their certificate chains.
 
-    <!-- https://go.dev/issue/48152, CL 449336 -->
-    For a handshake failure due to a certificate verification failure,
-    the TLS client and server now return an error of the new type
-    [`CertificateVerificationError`](/pkg/crypto/tls/#CertificateVerificationError),
-    which includes the presented certificates.
+<!-- https://go.dev/issue/48152, CL 449336 -->
+For a handshake failure due to a certificate verification failure,
+the TLS client and server now return an error of the new type
+[`CertificateVerificationError`](/pkg/crypto/tls/#CertificateVerificationError),
+which includes the presented certificates.
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 450816, CL 450815 -->
-    [`ParsePKCS8PrivateKey`](/pkg/crypto/x509/#ParsePKCS8PrivateKey)
-    and
-    [`MarshalPKCS8PrivateKey`](/pkg/crypto/x509/#MarshalPKCS8PrivateKey)
-    now support keys of type [`*crypto/ecdh.PrivateKey`](/pkg/crypto/ecdh.PrivateKey).
-    [`ParsePKIXPublicKey`](/pkg/crypto/x509/#ParsePKIXPublicKey)
-    and
-    [`MarshalPKIXPublicKey`](/pkg/crypto/x509/#MarshalPKIXPublicKey)
-    now support keys of type [`*crypto/ecdh.PublicKey`](/pkg/crypto/ecdh.PublicKey).
-    Parsing NIST curve keys still returns values of type
-    `*ecdsa.PublicKey` and `*ecdsa.PrivateKey`.
-    Use their new `ECDH` methods to convert to the `crypto/ecdh` types.
+<!-- CL 450816, CL 450815 -->
+[`ParsePKCS8PrivateKey`](/pkg/crypto/x509/#ParsePKCS8PrivateKey)
+and
+[`MarshalPKCS8PrivateKey`](/pkg/crypto/x509/#MarshalPKCS8PrivateKey)
+now support keys of type [`*crypto/ecdh.PrivateKey`](/pkg/crypto/ecdh.PrivateKey).
+[`ParsePKIXPublicKey`](/pkg/crypto/x509/#ParsePKIXPublicKey)
+and
+[`MarshalPKIXPublicKey`](/pkg/crypto/x509/#MarshalPKIXPublicKey)
+now support keys of type [`*crypto/ecdh.PublicKey`](/pkg/crypto/ecdh.PublicKey).
+Parsing NIST curve keys still returns values of type
+`*ecdsa.PublicKey` and `*ecdsa.PrivateKey`.
+Use their new `ECDH` methods to convert to the `crypto/ecdh` types.
 
-    <!-- CL 449235 -->
-    The new [`SetFallbackRoots`](/pkg/crypto/x509/#SetFallbackRoots)
-    function allows a program to define a set of fallback root certificates in case an
-    operating system verifier or standard platform root bundle is unavailable at runtime.
-    It will most commonly be used with a new package, [golang.org/x/crypto/x509roots/fallback](/pkg/golang.org/x/crypto/x509roots/fallback),
-    which will provide an up to date root bundle.
+<!-- CL 449235 -->
+The new [`SetFallbackRoots`](/pkg/crypto/x509/#SetFallbackRoots)
+function allows a program to define a set of fallback root certificates in case an
+operating system verifier or standard platform root bundle is unavailable at runtime.
+It will most commonly be used with a new package, [golang.org/x/crypto/x509roots/fallback](/pkg/golang.org/x/crypto/x509roots/fallback),
+which will provide an up to date root bundle.
 
 <!-- crypto/x509 -->
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   <!-- CL 429601 -->
-    Attempts to read from a `SHT_NOBITS` section using
-    [`Section.Data`](/pkg/debug/elf/#Section.Data)
-    or the reader returned by [`Section.Open`](/pkg/debug/elf/#Section.Open)
-    now return an error.
+<!-- CL 429601 -->
+Attempts to read from a `SHT_NOBITS` section using
+[`Section.Data`](/pkg/debug/elf/#Section.Data)
+or the reader returned by [`Section.Open`](/pkg/debug/elf/#Section.Open)
+now return an error.
 
-    <!-- CL 420982 -->
-    Additional [`R_LARCH_*`](/pkg/debug/elf/#R_LARCH) constants are defined for use with LoongArch systems.
+<!-- CL 420982 -->
+Additional [`R_LARCH_*`](/pkg/debug/elf/#R_LARCH) constants are defined for use with LoongArch systems.
 
-    <!-- CL 420982, CL 435415, CL 425555 -->
-    Additional [`R_PPC64_*`](/pkg/debug/elf/#R_PPC64) constants are defined for use with PPC64 ELFv2 relocations.
+<!-- CL 420982, CL 435415, CL 425555 -->
+Additional [`R_PPC64_*`](/pkg/debug/elf/#R_PPC64) constants are defined for use with PPC64 ELFv2 relocations.
 
-    <!-- CL 411915 -->
-    The constant value for [`R_PPC64_SECTOFF_LO_DS`](/pkg/debug/elf/#R_PPC64_SECTOFF_LO_DS) is corrected, from 61 to 62.
+<!-- CL 411915 -->
+The constant value for [`R_PPC64_SECTOFF_LO_DS`](/pkg/debug/elf/#R_PPC64_SECTOFF_LO_DS) is corrected, from 61 to 62.
 
 <!-- debug/elf -->
 
-[debug/gosym](/pkg/debug/gosym/)
+#### [debug/gosym](/pkg/debug/gosym/)
 
-:   <!-- https://go.dev/issue/37762, CL 317917 -->
-    Due to a change of [Go's symbol naming conventions](#linker), tools that
-    process Go binaries should use Go 1.20's `debug/gosym` package to
-    transparently handle both old and new binaries.
+<!-- https://go.dev/issue/37762, CL 317917 -->
+Due to a change of [Go's symbol naming conventions](#linker), tools that
+process Go binaries should use Go 1.20's `debug/gosym` package to
+transparently handle both old and new binaries.
 
 <!-- debug/gosym -->
 
-[debug/pe](/pkg/debug/pe/)
+#### [debug/pe](/pkg/debug/pe/)
 
-:   <!-- CL 421357 -->
-    Additional [`IMAGE_FILE_MACHINE_RISCV*`](/pkg/debug/pe/#IMAGE_FILE_MACHINE_RISCV128) constants are defined for use with RISC-V systems.
+<!-- CL 421357 -->
+Additional [`IMAGE_FILE_MACHINE_RISCV*`](/pkg/debug/pe/#IMAGE_FILE_MACHINE_RISCV128) constants are defined for use with RISC-V systems.
 
 <!-- debug/pe -->
 
-[encoding/binary](/pkg/encoding/binary/)
+#### [encoding/binary](/pkg/encoding/binary/)
 
-:   <!-- CL 420274 -->
-    The [`ReadVarint`](/pkg/encoding/binary/#ReadVarint) and
-    [`ReadUvarint`](/pkg/encoding/binary/#ReadUvarint)
-    functions will now return `io.ErrUnexpectedEOF` after reading a partial value,
-    rather than `io.EOF`.
+<!-- CL 420274 -->
+The [`ReadVarint`](/pkg/encoding/binary/#ReadVarint) and
+[`ReadUvarint`](/pkg/encoding/binary/#ReadUvarint)
+functions will now return `io.ErrUnexpectedEOF` after reading a partial value,
+rather than `io.EOF`.
 
 <!-- encoding/binary -->
 
-[encoding/xml](/pkg/encoding/xml/)
+#### [encoding/xml](/pkg/encoding/xml/)
 
-:   <!-- https://go.dev/issue/53346, CL 424777 -->
-    The new [`Encoder.Close`](/pkg/encoding/xml/#Encoder.Close) method
-    can be used to check for unclosed elements when finished encoding.
+<!-- https://go.dev/issue/53346, CL 424777 -->
+The new [`Encoder.Close`](/pkg/encoding/xml/#Encoder.Close) method
+can be used to check for unclosed elements when finished encoding.
 
-    <!-- CL 103875, CL 105636 -->
-    The decoder now rejects element and attribute names with more than one colon,
-    such as `<a:b:c>`,
-    as well as namespaces that resolve to an empty string, such as `xmlns:a=""`.
+<!-- CL 103875, CL 105636 -->
+The decoder now rejects element and attribute names with more than one colon,
+such as `<a:b:c>`,
+as well as namespaces that resolve to an empty string, such as `xmlns:a=""`.
 
-    <!-- CL 107255 -->
-    The decoder now rejects elements that use different namespace prefixes in the opening and closing tag,
-    even if those prefixes both denote the same namespace.
+<!-- CL 107255 -->
+The decoder now rejects elements that use different namespace prefixes in the opening and closing tag,
+even if those prefixes both denote the same namespace.
 
 <!-- encoding/xml -->
 
-[errors](/pkg/errors/)
+#### [errors](/pkg/errors/)
 
-:   <!-- https://go.dev/issue/53435 -->
-    The new [`Join`](/pkg/errors/#Join) function returns an error wrapping a list of errors.
+<!-- https://go.dev/issue/53435 -->
+The new [`Join`](/pkg/errors/#Join) function returns an error wrapping a list of errors.
 
 <!-- errors -->
 
-[fmt](/pkg/fmt/)
+#### [fmt](/pkg/fmt/)
 
-:   <!-- https://go.dev/issue/53435 -->
-    The [`Errorf`](/pkg/fmt/#Errorf) function supports multiple occurrences of
-    the `%w` format verb, returning an error that unwraps to the list of all arguments to `%w`.
+<!-- https://go.dev/issue/53435 -->
+The [`Errorf`](/pkg/fmt/#Errorf) function supports multiple occurrences of
+the `%w` format verb, returning an error that unwraps to the list of all arguments to `%w`.
 
-    <!-- https://go.dev/issue/51668, CL 400875 -->
-    The new [`FormatString`](/pkg/fmt/#FormatString) function recovers the
-    formatting directive corresponding to a [`State`](/pkg/fmt/#State),
-    which can be useful in [`Formatter`](/pkg/fmt/#Formatter).
-    implementations.
+<!-- https://go.dev/issue/51668, CL 400875 -->
+The new [`FormatString`](/pkg/fmt/#FormatString) function recovers the
+formatting directive corresponding to a [`State`](/pkg/fmt/#State),
+which can be useful in [`Formatter`](/pkg/fmt/#Formatter).
+implementations.
 
 <!-- fmt -->
 
-[go/ast](/pkg/go/ast/)
+#### [go/ast](/pkg/go/ast/)
 
-:   <!-- CL 426091, https://go.dev/issue/50429 -->
-    The new [`RangeStmt.Range`](/pkg/go/ast/#RangeStmt.Range) field
-    records the position of the `range` keyword in a range statement.
+<!-- CL 426091, https://go.dev/issue/50429 -->
+The new [`RangeStmt.Range`](/pkg/go/ast/#RangeStmt.Range) field
+records the position of the `range` keyword in a range statement.
 
-    <!-- CL 427955, https://go.dev/issue/53202 -->
-    The new [`File.FileStart`](/pkg/go/ast/#File.FileStart)
-    and [`File.FileEnd`](/pkg/go/ast/#File.FileEnd) fields
-    record the position of the start and end of the entire source file.
+<!-- CL 427955, https://go.dev/issue/53202 -->
+The new [`File.FileStart`](/pkg/go/ast/#File.FileStart)
+and [`File.FileEnd`](/pkg/go/ast/#File.FileEnd) fields
+record the position of the start and end of the entire source file.
 
 <!-- go/ast -->
 
-[go/token](/pkg/go/token/)
+#### [go/token](/pkg/go/token/)
 
-:   <!-- CL 410114, https://go.dev/issue/53200 -->
-    The new [`FileSet.RemoveFile`](/pkg/go/token/#FileSet.RemoveFile) method
-    removes a file from a `FileSet`.
-    Long-running programs can use this to release memory associated
-    with files they no longer need.
+<!-- CL 410114, https://go.dev/issue/53200 -->
+The new [`FileSet.RemoveFile`](/pkg/go/token/#FileSet.RemoveFile) method
+removes a file from a `FileSet`.
+Long-running programs can use this to release memory associated
+with files they no longer need.
 
 <!-- go/token -->
 
-[go/types](/pkg/go/types/)
+#### [go/types](/pkg/go/types/)
 
-:   <!-- CL 454575 -->
-    The new [`Satisfies`](/pkg/go/types/#Satisfies) function reports
-    whether a type satisfies a constraint.
-    This change aligns with the [new language semantics](#language)
-    that distinguish satisfying a constraint from implementing an interface.
+<!-- CL 454575 -->
+The new [`Satisfies`](/pkg/go/types/#Satisfies) function reports
+whether a type satisfies a constraint.
+This change aligns with the [new language semantics](#language)
+that distinguish satisfying a constraint from implementing an interface.
 
 <!-- go/types -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- https://go.dev/issue/59153 -->
-    <!-- CL 481993 -->
-    Go 1.20.3 and later
-    [disallow actions in ECMAScript 6 template literals.](/pkg/html/template#hdr-Security_Model)
-    This behavior can be reverted by the `GODEBUG=jstmpllitinterp=1` setting.
+<!-- https://go.dev/issue/59153 -->
+<!-- CL 481993 -->
+Go 1.20.3 and later
+[disallow actions in ECMAScript 6 template literals.](/pkg/html/template#hdr-Security_Model)
+This behavior can be reverted by the `GODEBUG=jstmpllitinterp=1` setting.
 
 <!-- html/template -->
 
-[io](/pkg/io/)
+#### [io](/pkg/io/)
 
-:   <!-- https://go.dev/issue/45899, CL 406776 -->
-    The new [`OffsetWriter`](/pkg/io/#OffsetWriter) wraps an underlying
-    [`WriterAt`](/pkg/io/#WriterAt)
-    and provides `Seek`, `Write`, and `WriteAt` methods
-    that adjust their effective file offset position by a fixed amount.
+<!-- https://go.dev/issue/45899, CL 406776 -->
+The new [`OffsetWriter`](/pkg/io/#OffsetWriter) wraps an underlying
+[`WriterAt`](/pkg/io/#WriterAt)
+and provides `Seek`, `Write`, and `WriteAt` methods
+that adjust their effective file offset position by a fixed amount.
 
 <!-- io -->
 
-[io/fs](/pkg/io/fs/)
+#### [io/fs](/pkg/io/fs/)
 
-:   <!-- CL 363814, https://go.dev/issue/47209 -->
-    The new error [`SkipAll`](/pkg/io/fs/#SkipAll)
-    terminates a [`WalkDir`](/pkg/io/fs/#WalkDir)
-    immediately but successfully.
+<!-- CL 363814, https://go.dev/issue/47209 -->
+The new error [`SkipAll`](/pkg/io/fs/#SkipAll)
+terminates a [`WalkDir`](/pkg/io/fs/#WalkDir)
+immediately but successfully.
 
 <!-- io -->
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   <!-- https://go.dev/issue/52182 -->
-    The [math/big](/pkg/math/big/) package's wide scope and
-    input-dependent timing make it ill-suited for implementing cryptography.
-    The cryptography packages in the standard library no longer call non-trivial
-    [Int](/pkg/math/big#Int) methods on attacker-controlled inputs.
-    In the future, the determination of whether a bug in math/big is
-    considered a security vulnerability will depend on its wider impact on the
-    standard library.
+<!-- https://go.dev/issue/52182 -->
+The [math/big](/pkg/math/big/) package's wide scope and
+input-dependent timing make it ill-suited for implementing cryptography.
+The cryptography packages in the standard library no longer call non-trivial
+[Int](/pkg/math/big#Int) methods on attacker-controlled inputs.
+In the future, the determination of whether a bug in math/big is
+considered a security vulnerability will depend on its wider impact on the
+standard library.
 
 <!-- math/big -->
 
-[math/rand](/pkg/math/rand/)
+#### [math/rand](/pkg/math/rand/)
 
-:   <!-- https://go.dev/issue/54880, CL 436955, https://go.dev/issue/56319 -->
-    The [math/rand](/pkg/math/rand/) package now automatically seeds
-    the global random number generator
-    (used by top-level functions like `Float64` and `Int`) with a random value,
-    and the top-level [`Seed`](/pkg/math/rand/#Seed) function has been deprecated.
-    Programs that need a reproducible sequence of random numbers
-    should prefer to allocate their own random source, using `rand.New(rand.NewSource(seed))`.
+<!-- https://go.dev/issue/54880, CL 436955, https://go.dev/issue/56319 -->
+The [math/rand](/pkg/math/rand/) package now automatically seeds
+the global random number generator
+(used by top-level functions like `Float64` and `Int`) with a random value,
+and the top-level [`Seed`](/pkg/math/rand/#Seed) function has been deprecated.
+Programs that need a reproducible sequence of random numbers
+should prefer to allocate their own random source, using `rand.New(rand.NewSource(seed))`.
 
-    Programs that need the earlier consistent global seeding behavior can set
-    `GODEBUG=randautoseed=0` in their environment.
+Programs that need the earlier consistent global seeding behavior can set
+`GODEBUG=randautoseed=0` in their environment.
 
-    <!-- https://go.dev/issue/20661 -->
-    The top-level [`Read`](/pkg/math/rand/#Read) function has been deprecated.
-    In almost all cases, [`crypto/rand.Read`](/pkg/crypto/rand/#Read) is more appropriate.
+<!-- https://go.dev/issue/20661 -->
+The top-level [`Read`](/pkg/math/rand/#Read) function has been deprecated.
+In almost all cases, [`crypto/rand.Read`](/pkg/crypto/rand/#Read) is more appropriate.
 
 <!-- math/rand -->
 
-[mime](/pkg/mime/)
+#### [mime](/pkg/mime/)
 
-:   <!-- https://go.dev/issue/48866 -->
-    The [`ParseMediaType`](/pkg/mime/#ParseMediaType) function now allows duplicate parameter names,
-    so long as the values of the names are the same.
+<!-- https://go.dev/issue/48866 -->
+The [`ParseMediaType`](/pkg/mime/#ParseMediaType) function now allows duplicate parameter names,
+so long as the values of the names are the same.
 
 <!-- mime -->
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   <!-- CL 431675 -->
-    Methods of the [`Reader`](/pkg/mime/multipart/#Reader) type now wrap errors
-    returned by the underlying `io.Reader`.
+<!-- CL 431675 -->
+Methods of the [`Reader`](/pkg/mime/multipart/#Reader) type now wrap errors
+returned by the underlying `io.Reader`.
 
-    <!-- https://go.dev/issue/59153 -->
-    <!-- CL 481985 -->
-    In Go 1.19.8 and later, this package sets limits the size
-    of the MIME data it processes to protect against malicious inputs.
-    `Reader.NextPart` and `Reader.NextRawPart` limit the
-    number of headers in a part to 10000 and `Reader.ReadForm` limits
-    the total number of headers in all `FileHeaders` to 10000.
-    These limits may be adjusted with the `GODEBUG=multipartmaxheaders`
-    setting.
-    `Reader.ReadForm` further limits the number of parts in a form to 1000.
-    This limit may be adjusted with the `GODEBUG=multipartmaxparts`
-    setting.
+<!-- https://go.dev/issue/59153 -->
+<!-- CL 481985 -->
+In Go 1.19.8 and later, this package sets limits the size
+of the MIME data it processes to protect against malicious inputs.
+`Reader.NextPart` and `Reader.NextRawPart` limit the
+number of headers in a part to 10000 and `Reader.ReadForm` limits
+the total number of headers in all `FileHeaders` to 10000.
+These limits may be adjusted with the `GODEBUG=multipartmaxheaders`
+setting.
+`Reader.ReadForm` further limits the number of parts in a form to 1000.
+This limit may be adjusted with the `GODEBUG=multipartmaxparts`
+setting.
 
 <!-- mime/multipart -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- https://go.dev/issue/50101, CL 446179 -->
-    The [`LookupCNAME`](/pkg/net/#LookupCNAME)
-    function now consistently returns the contents
-    of a `CNAME` record when one exists. Previously on Unix systems and
-    when using the pure Go resolver, `LookupCNAME` would return an error
-    if a `CNAME` record referred to a name that with no `A`,
-    `AAAA`, or `CNAME` record. This change modifies
-    `LookupCNAME` to match the previous behavior on Windows,
-    allowing `LookupCNAME` to succeed whenever a
-    `CNAME` exists.
+<!-- https://go.dev/issue/50101, CL 446179 -->
+The [`LookupCNAME`](/pkg/net/#LookupCNAME)
+function now consistently returns the contents
+of a `CNAME` record when one exists. Previously on Unix systems and
+when using the pure Go resolver, `LookupCNAME` would return an error
+if a `CNAME` record referred to a name that with no `A`,
+`AAAA`, or `CNAME` record. This change modifies
+`LookupCNAME` to match the previous behavior on Windows,
+allowing `LookupCNAME` to succeed whenever a
+`CNAME` exists.
 
-    <!-- https://go.dev/issue/53482, CL 413454 -->
-    [`Interface.Flags`](/pkg/net/#Interface.Flags) now includes the new flag `FlagRunning`,
-    indicating an operationally active interface. An interface which is administratively
-    configured but not active (for example, because the network cable is not connected)
-    will have `FlagUp` set but not `FlagRunning`.
+<!-- https://go.dev/issue/53482, CL 413454 -->
+[`Interface.Flags`](/pkg/net/#Interface.Flags) now includes the new flag `FlagRunning`,
+indicating an operationally active interface. An interface which is administratively
+configured but not active (for example, because the network cable is not connected)
+will have `FlagUp` set but not `FlagRunning`.
 
-    <!-- https://go.dev/issue/55301, CL 444955 -->
-    The new [`Dialer.ControlContext`](/pkg/net/#Dialer.ControlContext) field contains a callback function
-    similar to the existing [`Dialer.Control`](/pkg/net/#Dialer.Control) hook, that additionally
-    accepts the dial context as a parameter.
-    `Control` is ignored when `ControlContext` is not nil.
+<!-- https://go.dev/issue/55301, CL 444955 -->
+The new [`Dialer.ControlContext`](/pkg/net/#Dialer.ControlContext) field contains a callback function
+similar to the existing [`Dialer.Control`](/pkg/net/#Dialer.Control) hook, that additionally
+accepts the dial context as a parameter.
+`Control` is ignored when `ControlContext` is not nil.
 
-    <!-- CL 428955 -->
-    The Go DNS resolver recognizes the `trust-ad` resolver option.
-    When `options trust-ad` is set in `resolv.conf`,
-    the Go resolver will set the AD bit in DNS queries. The resolver does not
-    make use of the AD bit in responses.
+<!-- CL 428955 -->
+The Go DNS resolver recognizes the `trust-ad` resolver option.
+When `options trust-ad` is set in `resolv.conf`,
+the Go resolver will set the AD bit in DNS queries. The resolver does not
+make use of the AD bit in responses.
 
-    <!-- CL 448075 -->
-    DNS resolution will detect changes to `/etc/nsswitch.conf`
-    and reload the file when it changes. Checks are made at most once every
-    five seconds, matching the previous handling of `/etc/hosts`
-    and `/etc/resolv.conf`.
+<!-- CL 448075 -->
+DNS resolution will detect changes to `/etc/nsswitch.conf`
+and reload the file when it changes. Checks are made at most once every
+five seconds, matching the previous handling of `/etc/hosts`
+and `/etc/resolv.conf`.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- https://go.dev/issue/51914 -->
-    The [`ResponseWriter.WriteHeader`](/pkg/net/http/#ResponseWriter.WriteHeader) function now supports sending
-    `1xx` status codes.
+<!-- https://go.dev/issue/51914 -->
+The [`ResponseWriter.WriteHeader`](/pkg/net/http/#ResponseWriter.WriteHeader) function now supports sending
+`1xx` status codes.
 
-    <!-- https://go.dev/issue/41773, CL 356410 -->
-    The new [`Server.DisableGeneralOptionsHandler`](/pkg/net/http/#Server.DisableGeneralOptionsHandler) configuration setting
-    allows disabling the default `OPTIONS *` handler.
+<!-- https://go.dev/issue/41773, CL 356410 -->
+The new [`Server.DisableGeneralOptionsHandler`](/pkg/net/http/#Server.DisableGeneralOptionsHandler) configuration setting
+allows disabling the default `OPTIONS *` handler.
 
-    <!-- https://go.dev/issue/54299, CL 447216 -->
-    The new [`Transport.OnProxyConnectResponse`](/pkg/net/http/#Transport.OnProxyConnectResponse) hook is called
-    when a `Transport` receives an HTTP response from a proxy
-    for a `CONNECT` request.
+<!-- https://go.dev/issue/54299, CL 447216 -->
+The new [`Transport.OnProxyConnectResponse`](/pkg/net/http/#Transport.OnProxyConnectResponse) hook is called
+when a `Transport` receives an HTTP response from a proxy
+for a `CONNECT` request.
 
-    <!-- https://go.dev/issue/53960, CL 418614  -->
-    The HTTP server now accepts HEAD requests containing a body,
-    rather than rejecting them as invalid.
+<!-- https://go.dev/issue/53960, CL 418614  -->
+The HTTP server now accepts HEAD requests containing a body,
+rather than rejecting them as invalid.
 
-    <!-- https://go.dev/issue/53896 -->
-    HTTP/2 stream errors returned by `net/http` functions may be converted
-    to a [`golang.org/x/net/http2.StreamError`](/pkg/golang.org/x/net/http2/#StreamError) using
-    [`errors.As`](/pkg/errors/#As).
+<!-- https://go.dev/issue/53896 -->
+HTTP/2 stream errors returned by `net/http` functions may be converted
+to a [`golang.org/x/net/http2.StreamError`](/pkg/golang.org/x/net/http2/#StreamError) using
+[`errors.As`](/pkg/errors/#As).
 
-    <!-- https://go.dev/cl/397734 -->
-    Leading and trailing spaces are trimmed from cookie names,
-    rather than being rejected as invalid.
-    For example, a cookie setting of "name =value"
-    is now accepted as setting the cookie "name".
+<!-- https://go.dev/cl/397734 -->
+Leading and trailing spaces are trimmed from cookie names,
+rather than being rejected as invalid.
+For example, a cookie setting of "name =value"
+is now accepted as setting the cookie "name".
 
-    <!-- https://go.dev/issue/52989 -->
-    A [`Cookie`](/pkg/net/http#Cookie) with an empty Expires field is now considered valid.
-    [`Cookie.Valid`](/pkg/net/http#Cookie.Valid) only checks Expires when it is set.
+<!-- https://go.dev/issue/52989 -->
+A [`Cookie`](/pkg/net/http#Cookie) with an empty Expires field is now considered valid.
+[`Cookie.Valid`](/pkg/net/http#Cookie.Valid) only checks Expires when it is set.
 
 <!-- net/http -->
 
-[net/netip](/pkg/net/netip/)
+#### [net/netip](/pkg/net/netip/)
 
-:   <!-- https://go.dev/issue/51766, https://go.dev/issue/51777, CL 412475 -->
-    The new [`IPv6LinkLocalAllRouters`](/pkg/net/netip/#IPv6LinkLocalAllRouters)
-    and [`IPv6Loopback`](/pkg/net/netip/#IPv6Loopback) functions
-    are the `net/netip` equivalents of
-    [`net.IPv6loopback`](/pkg/net/#IPv6loopback) and
-    [`net.IPv6linklocalallrouters`](/pkg/net/#IPv6linklocalallrouters).
+<!-- https://go.dev/issue/51766, https://go.dev/issue/51777, CL 412475 -->
+The new [`IPv6LinkLocalAllRouters`](/pkg/net/netip/#IPv6LinkLocalAllRouters)
+and [`IPv6Loopback`](/pkg/net/netip/#IPv6Loopback) functions
+are the `net/netip` equivalents of
+[`net.IPv6loopback`](/pkg/net/#IPv6loopback) and
+[`net.IPv6linklocalallrouters`](/pkg/net/#IPv6linklocalallrouters).
 
 <!-- net/netip -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL 448897 -->
-    On Windows, the name `NUL` is no longer treated as a special case in
-    [`Mkdir`](/pkg/os/#Mkdir) and
-    [`Stat`](/pkg/os/#Stat).
+<!-- CL 448897 -->
+On Windows, the name `NUL` is no longer treated as a special case in
+[`Mkdir`](/pkg/os/#Mkdir) and
+[`Stat`](/pkg/os/#Stat).
 
-    <!-- https://go.dev/issue/52747, CL 405275 -->
-    On Windows, [`File.Stat`](/pkg/os/#File.Stat)
-    now uses the file handle to retrieve attributes when the file is a directory.
-    Previously it would use the path passed to
-    [`Open`](/pkg/os/#Open), which may no longer be the file
-    represented by the file handle if the file has been moved or replaced.
-    This change modifies `Open` to open directories without the
-    `FILE_SHARE_DELETE` access, which match the behavior of regular files.
+<!-- https://go.dev/issue/52747, CL 405275 -->
+On Windows, [`File.Stat`](/pkg/os/#File.Stat)
+now uses the file handle to retrieve attributes when the file is a directory.
+Previously it would use the path passed to
+[`Open`](/pkg/os/#Open), which may no longer be the file
+represented by the file handle if the file has been moved or replaced.
+This change modifies `Open` to open directories without the
+`FILE_SHARE_DELETE` access, which match the behavior of regular files.
 
-    <!-- https://go.dev/issue/36019, CL 405275 -->
-    On Windows, [`File.Seek`](/pkg/os/#File.Seek) now supports
-    seeking to the beginning of a directory.
+<!-- https://go.dev/issue/36019, CL 405275 -->
+On Windows, [`File.Seek`](/pkg/os/#File.Seek) now supports
+seeking to the beginning of a directory.
 
 <!-- os -->
 
-[os/exec](/pkg/os/exec/)
+#### [os/exec](/pkg/os/exec/)
 
-:   <!-- https://go.dev/issue/50436, CL 401835 -->
-    The new [`Cmd`](/pkg/os/exec/#Cmd) fields
-    [`Cancel`](/pkg/os/exec/#Cmd.Cancel) and
-    [`WaitDelay`](/pkg/os/exec/#Cmd.WaitDelay)
-    specify the behavior of the `Cmd` when its associated
-    `Context` is canceled or its process exits with I/O pipes still
-    held open by a child process.
+<!-- https://go.dev/issue/50436, CL 401835 -->
+The new [`Cmd`](/pkg/os/exec/#Cmd) fields
+[`Cancel`](/pkg/os/exec/#Cmd.Cancel) and
+[`WaitDelay`](/pkg/os/exec/#Cmd.WaitDelay)
+specify the behavior of the `Cmd` when its associated
+`Context` is canceled or its process exits with I/O pipes still
+held open by a child process.
 
 <!-- os/exec -->
 
-[path/filepath](/pkg/path/filepath/)
+#### [path/filepath](/pkg/path/filepath/)
 
-:   <!-- CL 363814, https://go.dev/issue/47209 -->
-    The new error [`SkipAll`](/pkg/path/filepath/#SkipAll)
-    terminates a [`Walk`](/pkg/path/filepath/#Walk)
-    immediately but successfully.
+<!-- CL 363814, https://go.dev/issue/47209 -->
+The new error [`SkipAll`](/pkg/path/filepath/#SkipAll)
+terminates a [`Walk`](/pkg/path/filepath/#Walk)
+immediately but successfully.
 
-    <!-- https://go.dev/issue/56219, CL 449239 -->
-    The new [`IsLocal`](/pkg/path/filepath/#IsLocal) function reports whether a path is
-    lexically local to a directory.
-    For example, if `IsLocal(p)` is `true`,
-    then `Open(p)` will refer to a file that is lexically
-    within the subtree rooted at the current directory.
+<!-- https://go.dev/issue/56219, CL 449239 -->
+The new [`IsLocal`](/pkg/path/filepath/#IsLocal) function reports whether a path is
+lexically local to a directory.
+For example, if `IsLocal(p)` is `true`,
+then `Open(p)` will refer to a file that is lexically
+within the subtree rooted at the current directory.
 
 <!-- io -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- https://go.dev/issue/46746, CL 423794 -->
-    The new [`Value.Comparable`](/pkg/reflect/#Value.Comparable) and
-    [`Value.Equal`](/pkg/reflect/#Value.Equal) methods
-    can be used to compare two `Value`s for equality.
-    `Comparable` reports whether `Equal` is a valid operation for a given `Value` receiver.
+<!-- https://go.dev/issue/46746, CL 423794 -->
+The new [`Value.Comparable`](/pkg/reflect/#Value.Comparable) and
+[`Value.Equal`](/pkg/reflect/#Value.Equal) methods
+can be used to compare two `Value`s for equality.
+`Comparable` reports whether `Equal` is a valid operation for a given `Value` receiver.
 
-    <!-- https://go.dev/issue/48000, CL 389635 -->
-    The new [`Value.Grow`](/pkg/reflect/#Value.Grow) method
-    extends a slice to guarantee space for another `n` elements.
+<!-- https://go.dev/issue/48000, CL 389635 -->
+The new [`Value.Grow`](/pkg/reflect/#Value.Grow) method
+extends a slice to guarantee space for another `n` elements.
 
-    <!-- https://go.dev/issue/52376, CL 411476 -->
-    The new [`Value.SetZero`](/pkg/reflect/#Value.SetZero) method
-    sets a value to be the zero value for its type.
+<!-- https://go.dev/issue/52376, CL 411476 -->
+The new [`Value.SetZero`](/pkg/reflect/#Value.SetZero) method
+sets a value to be the zero value for its type.
 
-    <!-- CL 425184 -->
-    Go 1.18 introduced [`Value.SetIterKey`](/pkg/reflect/#Value.SetIterKey)
-    and [`Value.SetIterValue`](/pkg/reflect/#Value.SetIterValue) methods.
-    These are optimizations: `v.SetIterKey(it)` is meant to be equivalent to `v.Set(it.Key())`.
-    The implementations incorrectly omitted a check for use of unexported fields that was present in the unoptimized forms.
-    Go 1.20 corrects these methods to include the unexported field check.
+<!-- CL 425184 -->
+Go 1.18 introduced [`Value.SetIterKey`](/pkg/reflect/#Value.SetIterKey)
+and [`Value.SetIterValue`](/pkg/reflect/#Value.SetIterValue) methods.
+These are optimizations: `v.SetIterKey(it)` is meant to be equivalent to `v.Set(it.Key())`.
+The implementations incorrectly omitted a check for use of unexported fields that was present in the unoptimized forms.
+Go 1.20 corrects these methods to include the unexported field check.
 
 <!-- reflect -->
 
-[regexp](/pkg/regexp/)
+#### [regexp](/pkg/regexp/)
 
-:   <!-- CL 444817 -->
-    Go 1.19.2 and Go 1.18.7 included a security fix to the regular expression parser,
-    making it reject very large expressions that would consume too much memory.
-    Because Go patch releases do not introduce new API,
-    the parser returned [`syntax.ErrInternalError`](/pkg/regexp/syntax/#ErrInternalError) in this case.
-    Go 1.20 adds a more specific error, [`syntax.ErrLarge`](/pkg/regexp/syntax/#ErrLarge),
-    which the parser now returns instead.
+<!-- CL 444817 -->
+Go 1.19.2 and Go 1.18.7 included a security fix to the regular expression parser,
+making it reject very large expressions that would consume too much memory.
+Because Go patch releases do not introduce new API,
+the parser returned [`syntax.ErrInternalError`](/pkg/regexp/syntax/#ErrInternalError) in this case.
+Go 1.20 adds a more specific error, [`syntax.ErrLarge`](/pkg/regexp/syntax/#ErrLarge),
+which the parser now returns instead.
 
 <!-- regexp -->
 
-[runtime/cgo](/pkg/runtime/cgo/)
+#### [runtime/cgo](/pkg/runtime/cgo/)
 
-:   <!-- https://go.dev/issue/46731, CL 421879 -->
-    Go 1.20 adds new [`Incomplete`](/pkg/runtime/cgo/#Incomplete) marker type.
-    Code generated by cgo will use `cgo.Incomplete` to mark an incomplete C type.
+<!-- https://go.dev/issue/46731, CL 421879 -->
+Go 1.20 adds new [`Incomplete`](/pkg/runtime/cgo/#Incomplete) marker type.
+Code generated by cgo will use `cgo.Incomplete` to mark an incomplete C type.
 
 <!-- runtime/cgo -->
 
-[runtime/metrics](/pkg/runtime/metrics/)
+#### [runtime/metrics](/pkg/runtime/metrics/)
 
-:   <!-- https://go.dev/issue/47216, https://go.dev/issue/49881 -->
-    Go 1.20 adds new [supported metrics](/pkg/runtime/metrics/#hdr-Supported_metrics),
-    including the current `GOMAXPROCS` setting (`/sched/gomaxprocs:threads`),
-    the number of cgo calls executed (`/cgo/go-to-c-calls:calls`),
-    total mutex block time (`/sync/mutex/wait/total:seconds`), and various measures of time
-    spent in garbage collection.
+<!-- https://go.dev/issue/47216, https://go.dev/issue/49881 -->
+Go 1.20 adds new [supported metrics](/pkg/runtime/metrics/#hdr-Supported_metrics),
+including the current `GOMAXPROCS` setting (`/sched/gomaxprocs:threads`),
+the number of cgo calls executed (`/cgo/go-to-c-calls:calls`),
+total mutex block time (`/sync/mutex/wait/total:seconds`), and various measures of time
+spent in garbage collection.
 
-    <!-- CL 427615 -->
-    Time-based histogram metrics are now less precise, but take up much less memory.
+<!-- CL 427615 -->
+Time-based histogram metrics are now less precise, but take up much less memory.
 
 <!-- runtime/metrics -->
 
-[runtime/pprof](/pkg/runtime/pprof/)
+#### [runtime/pprof](/pkg/runtime/pprof/)
 
-:   <!-- CL 443056 -->
-    Mutex profile samples are now pre-scaled, fixing an issue where old mutex profile
-    samples would be scaled incorrectly if the sampling rate changed during execution.
+<!-- CL 443056 -->
+Mutex profile samples are now pre-scaled, fixing an issue where old mutex profile
+samples would be scaled incorrectly if the sampling rate changed during execution.
 
-    <!-- CL 416975 -->
-    Profiles collected on Windows now include memory mapping information that fixes
-    symbolization issues for position-independent binaries.
+<!-- CL 416975 -->
+Profiles collected on Windows now include memory mapping information that fixes
+symbolization issues for position-independent binaries.
 
 <!-- runtime/pprof -->
 
-[runtime/trace](/pkg/runtime/trace/)
+#### [runtime/trace](/pkg/runtime/trace/)
 
-:   <!-- CL 447135, https://go.dev/issue/55022 -->
-    The garbage collector's background sweeper now yields less frequently,
-    resulting in many fewer extraneous events in execution traces.
+<!-- CL 447135, https://go.dev/issue/55022 -->
+The garbage collector's background sweeper now yields less frequently,
+resulting in many fewer extraneous events in execution traces.
 
 <!-- runtime/trace -->
 
-[strings](/pkg/strings/)
+#### [strings](/pkg/strings/)
 
-:   <!-- CL 407176, https://go.dev/issue/42537 -->
-    The new
-    [`CutPrefix`](/pkg/strings/#CutPrefix) and
-    [`CutSuffix`](/pkg/strings/#CutSuffix) functions
-    are like [`TrimPrefix`](/pkg/strings/#TrimPrefix)
-    and [`TrimSuffix`](/pkg/strings/#TrimSuffix)
-    but also report whether the string was trimmed.
+<!-- CL 407176, https://go.dev/issue/42537 -->
+The new
+[`CutPrefix`](/pkg/strings/#CutPrefix) and
+[`CutSuffix`](/pkg/strings/#CutSuffix) functions
+are like [`TrimPrefix`](/pkg/strings/#TrimPrefix)
+and [`TrimSuffix`](/pkg/strings/#TrimSuffix)
+but also report whether the string was trimmed.
 
 <!-- strings -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- CL 399094, https://go.dev/issue/51972 -->
-    The new [`Map`](/pkg/sync/#Map) methods [`Swap`](/pkg/sync/#Map.Swap),
-    [`CompareAndSwap`](/pkg/sync/#Map.CompareAndSwap), and
-    [`CompareAndDelete`](/pkg/sync/#Map.CompareAndDelete)
-    allow existing map entries to be updated atomically.
+<!-- CL 399094, https://go.dev/issue/51972 -->
+The new [`Map`](/pkg/sync/#Map) methods [`Swap`](/pkg/sync/#Map.Swap),
+[`CompareAndSwap`](/pkg/sync/#Map.CompareAndSwap), and
+[`CompareAndDelete`](/pkg/sync/#Map.CompareAndDelete)
+allow existing map entries to be updated atomically.
 
 <!-- sync -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 411596 -->
-    On FreeBSD, compatibility shims needed for FreeBSD 11 and earlier have been removed.
+<!-- CL 411596 -->
+On FreeBSD, compatibility shims needed for FreeBSD 11 and earlier have been removed.
 
-    <!-- CL 407574 -->
-    On Linux, additional [`CLONE_*`](/pkg/syscall/#CLONE_CLEAR_SIGHAND) constants
-    are defined for use with the [`SysProcAttr.Cloneflags`](/pkg/syscall/#SysProcAttr.Cloneflags) field.
+<!-- CL 407574 -->
+On Linux, additional [`CLONE_*`](/pkg/syscall/#CLONE_CLEAR_SIGHAND) constants
+are defined for use with the [`SysProcAttr.Cloneflags`](/pkg/syscall/#SysProcAttr.Cloneflags) field.
 
-    <!-- CL 417695 -->
-    On Linux, the new [`SysProcAttr.CgroupFD`](/pkg/syscall/#SysProcAttr.CgroupFD)
-    and [`SysProcAttr.UseCgroupFD`](/pkg/syscall/#SysProcAttr.UseCgroupFD) fields
-    provide a way to place a child process into a specific cgroup.
+<!-- CL 417695 -->
+On Linux, the new [`SysProcAttr.CgroupFD`](/pkg/syscall/#SysProcAttr.CgroupFD)
+and [`SysProcAttr.UseCgroupFD`](/pkg/syscall/#SysProcAttr.UseCgroupFD) fields
+provide a way to place a child process into a specific cgroup.
 
 <!-- syscall -->
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- https://go.dev/issue/43620, CL 420254 -->
-    The new method [`B.Elapsed`](/pkg/testing/#B.Elapsed)
-    reports the current elapsed time of the benchmark, which may be useful for
-    calculating rates to report with `ReportMetric`.
+<!-- https://go.dev/issue/43620, CL 420254 -->
+The new method [`B.Elapsed`](/pkg/testing/#B.Elapsed)
+reports the current elapsed time of the benchmark, which may be useful for
+calculating rates to report with `ReportMetric`.
 
-    <!-- https://go.dev/issue/48515, CL 352349 -->
-    Calling [`T.Run`](/pkg/testing/#T.Run)
-    from a function passed
-    to [`T.Cleanup`](/pkg/testing/#T.Cleanup)
-    was never well-defined, and will now panic.
+<!-- https://go.dev/issue/48515, CL 352349 -->
+Calling [`T.Run`](/pkg/testing/#T.Run)
+from a function passed
+to [`T.Cleanup`](/pkg/testing/#T.Cleanup)
+was never well-defined, and will now panic.
 
 <!-- testing -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- https://go.dev/issue/52746, CL 412495 -->
-    The new time layout constants [`DateTime`](/pkg/time/#DateTime),
-    [`DateOnly`](/pkg/time/#DateOnly), and
-    [`TimeOnly`](/pkg/time/#TimeOnly)
-    provide names for three of the most common layout strings used in a survey of public Go source code.
+<!-- https://go.dev/issue/52746, CL 412495 -->
+The new time layout constants [`DateTime`](/pkg/time/#DateTime),
+[`DateOnly`](/pkg/time/#DateOnly), and
+[`TimeOnly`](/pkg/time/#TimeOnly)
+provide names for three of the most common layout strings used in a survey of public Go source code.
 
-    <!-- CL 382734, https://go.dev/issue/50770 -->
-    The new [`Time.Compare`](/pkg/time/#Time.Compare) method
-    compares two times.
+<!-- CL 382734, https://go.dev/issue/50770 -->
+The new [`Time.Compare`](/pkg/time/#Time.Compare) method
+compares two times.
 
-    <!-- CL 425037 -->
-    [`Parse`](/pkg/time/#Parse)
-    now ignores sub-nanosecond precision in its input,
-    instead of reporting those digits as an error.
+<!-- CL 425037 -->
+[`Parse`](/pkg/time/#Parse)
+now ignores sub-nanosecond precision in its input,
+instead of reporting those digits as an error.
 
-    <!-- CL 444277 -->
-    The [`Time.MarshalJSON`](/pkg/time/#Time.MarshalJSON) method
-    is now more strict about adherence to RFC 3339.
+<!-- CL 444277 -->
+The [`Time.MarshalJSON`](/pkg/time/#Time.MarshalJSON) method
+is now more strict about adherence to RFC 3339.
 
 <!-- time -->
 
-[unicode/utf16](/pkg/unicode/utf16/)
+#### [unicode/utf16](/pkg/unicode/utf16/)
 
-:   <!-- https://go.dev/issue/51896, CL 409054 -->
-    The new [`AppendRune`](/pkg/unicode/utf16/#AppendRune)
-    function appends the UTF-16 encoding of a given rune to a uint16 slice,
-    analogous to [`utf8.AppendRune`](/pkg/unicode/utf8/#AppendRune).
+<!-- https://go.dev/issue/51896, CL 409054 -->
+The new [`AppendRune`](/pkg/unicode/utf16/#AppendRune)
+function appends the UTF-16 encoding of a given rune to a uint16 slice,
+analogous to [`utf8.AppendRune`](/pkg/unicode/utf8/#AppendRune).
 
 <!-- unicode/utf16 -->
 
diff --git a/_content/doc/go1.21.md b/_content/doc/go1.21.md
index 58d425d..b6cd3fc 100644
--- a/_content/doc/go1.21.md
+++ b/_content/doc/go1.21.md
@@ -351,420 +351,420 @@
 in mind.
 There are also various performance improvements, not enumerated here.
 
-[archive/tar](/pkg/archive/tar/)
+#### [archive/tar](/pkg/archive/tar/)
 
-:   <!-- https://go.dev/issue/54451, CL 491175 -->
-    The implementation of the
-    [`io/fs.FileInfo`](/pkg/io/fs/#FileInfo)
-    interface returned by
-    [`Header.FileInfo`](/pkg/archive/tar/#Header.FileInfo)
-    now implements a `String` method that calls
-    [`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
+<!-- https://go.dev/issue/54451, CL 491175 -->
+The implementation of the
+[`io/fs.FileInfo`](/pkg/io/fs/#FileInfo)
+interface returned by
+[`Header.FileInfo`](/pkg/archive/tar/#Header.FileInfo)
+now implements a `String` method that calls
+[`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
 
 <!-- archive/tar -->
 
-[archive/zip](/pkg/archive/zip/)
+#### [archive/zip](/pkg/archive/zip/)
 
-:   <!-- https://go.dev/issue/54451, CL 491175 -->
-    The implementation of the
-    [`io/fs.FileInfo`](/pkg/io/fs/#FileInfo)
-    interface returned by
-    [`FileHeader.FileInfo`](/pkg/archive/zip/#FileHeader.FileInfo)
-    now implements a `String` method that calls
-    [`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
+<!-- https://go.dev/issue/54451, CL 491175 -->
+The implementation of the
+[`io/fs.FileInfo`](/pkg/io/fs/#FileInfo)
+interface returned by
+[`FileHeader.FileInfo`](/pkg/archive/zip/#FileHeader.FileInfo)
+now implements a `String` method that calls
+[`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
 
-    <!-- https://go.dev/issue/54451, CL 491175 -->
-    The implementation of the
-    [`io/fs.DirEntry`](/pkg/io/fs/#DirEntry)
-    interface returned by the
-    [`io/fs.ReadDirFile.ReadDir`](/pkg/io/fs/#ReadDirFile.ReadDir)
-    method of the
-    [`io/fs.File`](/pkg/io/fs/#File)
-    returned by
-    [`Reader.Open`](/pkg/archive/zip/#Reader.Open)
-    now implements a `String` method that calls
-    [`io/fs.FormatDirEntry`](/pkg/io/fs/#FormatDirEntry).
+<!-- https://go.dev/issue/54451, CL 491175 -->
+The implementation of the
+[`io/fs.DirEntry`](/pkg/io/fs/#DirEntry)
+interface returned by the
+[`io/fs.ReadDirFile.ReadDir`](/pkg/io/fs/#ReadDirFile.ReadDir)
+method of the
+[`io/fs.File`](/pkg/io/fs/#File)
+returned by
+[`Reader.Open`](/pkg/archive/zip/#Reader.Open)
+now implements a `String` method that calls
+[`io/fs.FormatDirEntry`](/pkg/io/fs/#FormatDirEntry).
 
 <!-- archive/zip -->
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   <!-- https://go.dev/issue/53685, CL 474635 -->
-    The [`Buffer`](/pkg/bytes/#Buffer) type
-    has two new methods:
-    [`Available`](/pkg/bytes/#Buffer.Available)
-    and [`AvailableBuffer`](/pkg/bytes/#Buffer.AvailableBuffer).
-    These may be used along with the
-    [`Write`](/pkg/bytes/#Buffer.Write)
-    method to append directly to the `Buffer`.
+<!-- https://go.dev/issue/53685, CL 474635 -->
+The [`Buffer`](/pkg/bytes/#Buffer) type
+has two new methods:
+[`Available`](/pkg/bytes/#Buffer.Available)
+and [`AvailableBuffer`](/pkg/bytes/#Buffer.AvailableBuffer).
+These may be used along with the
+[`Write`](/pkg/bytes/#Buffer.Write)
+method to append directly to the `Buffer`.
 
 <!-- bytes -->
 
-[context](/pkg/context/)
+#### [context](/pkg/context/)
 
-:   <!-- https://go.dev/issue/40221, CL 479918 -->
-    The new [`WithoutCancel`](/pkg/context/#WithoutCancel)
-    function returns a copy of a context that is not canceled when the original
-    context is canceled.
+<!-- https://go.dev/issue/40221, CL 479918 -->
+The new [`WithoutCancel`](/pkg/context/#WithoutCancel)
+function returns a copy of a context that is not canceled when the original
+context is canceled.
 
-    <!-- https://go.dev/issue/56661, CL 449318 -->
-    The new [`WithDeadlineCause`](/pkg/context/#WithDeadlineCause)
-    and [`WithTimeoutCause`](/pkg/context/#WithTimeoutCause)
-    functions provide a way to set a context cancellation cause when a deadline or
-    timer expires. The cause may be retrieved with the
-    [`Cause`](/pkg/context/#Cause) function.
+<!-- https://go.dev/issue/56661, CL 449318 -->
+The new [`WithDeadlineCause`](/pkg/context/#WithDeadlineCause)
+and [`WithTimeoutCause`](/pkg/context/#WithTimeoutCause)
+functions provide a way to set a context cancellation cause when a deadline or
+timer expires. The cause may be retrieved with the
+[`Cause`](/pkg/context/#Cause) function.
 
-    <!-- https://go.dev/issue/57928, CL 482695 -->
-    The new [`AfterFunc`](/pkg/context/#AfterFunc)
-    function registers a function to run after a context has been cancelled.
+<!-- https://go.dev/issue/57928, CL 482695 -->
+The new [`AfterFunc`](/pkg/context/#AfterFunc)
+function registers a function to run after a context has been cancelled.
 
-    <!-- CL 455455 -->
-    An optimization means that the results of calling
-    [`Background`](/pkg/context/#Background)
-    and [`TODO`](/pkg/context/#TODO) and
-    converting them to a shared type can be considered equal.
-    In previous releases they were always different. Comparing
-    [`Context`](/pkg/context/#Context) values
-    for equality has never been well-defined, so this is not
-    considered to be an incompatible change.
+<!-- CL 455455 -->
+An optimization means that the results of calling
+[`Background`](/pkg/context/#Background)
+and [`TODO`](/pkg/context/#TODO) and
+converting them to a shared type can be considered equal.
+In previous releases they were always different. Comparing
+[`Context`](/pkg/context/#Context) values
+for equality has never been well-defined, so this is not
+considered to be an incompatible change.
 
-[crypto/ecdsa](/pkg/crypto/ecdsa/)
+#### [crypto/ecdsa](/pkg/crypto/ecdsa/)
 
-:   <!-- CL 492955 -->
-    [`PublicKey.Equal`](/pkg/crypto/ecdsa/#PublicKey.Equal) and
-    [`PrivateKey.Equal`](/pkg/crypto/ecdsa/#PrivateKey.Equal)
-    now execute in constant time.
+<!-- CL 492955 -->
+[`PublicKey.Equal`](/pkg/crypto/ecdsa/#PublicKey.Equal) and
+[`PrivateKey.Equal`](/pkg/crypto/ecdsa/#PrivateKey.Equal)
+now execute in constant time.
 
 <!-- crypto/ecdsa -->
 
-[crypto/elliptic](/pkg/crypto/elliptic/)
+#### [crypto/elliptic](/pkg/crypto/elliptic/)
 
-:   <!-- CL 459977 -->
-    All of the [`Curve`](/pkg/crypto/elliptic/#Curve) methods have been deprecated, along with [`GenerateKey`](/pkg/crypto/elliptic/#GenerateKey), [`Marshal`](/pkg/crypto/elliptic/#Marshal), and [`Unmarshal`](/pkg/crypto/elliptic/#Unmarshal). For ECDH operations, the new [`crypto/ecdh`](/pkg/crypto/ecdh/) package should be used instead. For lower-level operations, use third-party modules such as [filippo.io/nistec](https://pkg.go.dev/filippo.io/nistec).
+<!-- CL 459977 -->
+All of the [`Curve`](/pkg/crypto/elliptic/#Curve) methods have been deprecated, along with [`GenerateKey`](/pkg/crypto/elliptic/#GenerateKey), [`Marshal`](/pkg/crypto/elliptic/#Marshal), and [`Unmarshal`](/pkg/crypto/elliptic/#Unmarshal). For ECDH operations, the new [`crypto/ecdh`](/pkg/crypto/ecdh/) package should be used instead. For lower-level operations, use third-party modules such as [filippo.io/nistec](https://pkg.go.dev/filippo.io/nistec).
 
 <!-- crypto/elliptic -->
 
-[crypto/rand](/pkg/crypto/rand/)
+#### [crypto/rand](/pkg/crypto/rand/)
 
-:   <!-- CL 463123 -->
-    The [`crypto/rand`](/pkg/crypto/rand/) package now uses the `getrandom` system call on NetBSD 10.0 and later.
+<!-- CL 463123 -->
+The [`crypto/rand`](/pkg/crypto/rand/) package now uses the `getrandom` system call on NetBSD 10.0 and later.
 
 <!-- crypto/rand -->
 
-[crypto/rsa](/pkg/crypto/rsa/)
+#### [crypto/rsa](/pkg/crypto/rsa/)
 
-:   <!-- CL 471259, CL 492935 -->
-    The performance of private RSA operations (decryption and signing) is now better than Go 1.19 for `GOARCH=amd64` and `GOARCH=arm64`. It had regressed in Go 1.20.
+<!-- CL 471259, CL 492935 -->
+The performance of private RSA operations (decryption and signing) is now better than Go 1.19 for `GOARCH=amd64` and `GOARCH=arm64`. It had regressed in Go 1.20.
 
-    Due to the addition of private fields to [`PrecomputedValues`](/pkg/crypto/rsa/#PrecomputedValues), [`PrivateKey.Precompute`](/pkg/crypto/rsa/#PrivateKey.Precompute) must be called for optimal performance even if deserializing (for example from JSON) a previously-precomputed private key.
+Due to the addition of private fields to [`PrecomputedValues`](/pkg/crypto/rsa/#PrecomputedValues), [`PrivateKey.Precompute`](/pkg/crypto/rsa/#PrivateKey.Precompute) must be called for optimal performance even if deserializing (for example from JSON) a previously-precomputed private key.
 
-    <!-- CL 492955 -->
-    [`PublicKey.Equal`](/pkg/crypto/rsa/#PublicKey.Equal) and
-    [`PrivateKey.Equal`](/pkg/crypto/rsa/#PrivateKey.Equal)
-    now execute in constant time.
+<!-- CL 492955 -->
+[`PublicKey.Equal`](/pkg/crypto/rsa/#PublicKey.Equal) and
+[`PrivateKey.Equal`](/pkg/crypto/rsa/#PrivateKey.Equal)
+now execute in constant time.
 
-    <!-- https://go.dev/issue/56921, CL 459976 -->
-    The [`GenerateMultiPrimeKey`](/pkg/crypto/rsa/#GenerateMultiPrimeKey) function and the [`PrecomputedValues.CRTValues`](/pkg/crypto/rsa/#PrecomputedValues.CRTValues) field have been deprecated. [`PrecomputedValues.CRTValues`](/pkg/crypto/rsa/#PrecomputedValues.CRTValues) will still be populated when [`PrivateKey.Precompute`](/pkg/crypto/rsa/#PrivateKey.Precompute) is called, but the values will not be used during decryption operations.
+<!-- https://go.dev/issue/56921, CL 459976 -->
+The [`GenerateMultiPrimeKey`](/pkg/crypto/rsa/#GenerateMultiPrimeKey) function and the [`PrecomputedValues.CRTValues`](/pkg/crypto/rsa/#PrecomputedValues.CRTValues) field have been deprecated. [`PrecomputedValues.CRTValues`](/pkg/crypto/rsa/#PrecomputedValues.CRTValues) will still be populated when [`PrivateKey.Precompute`](/pkg/crypto/rsa/#PrivateKey.Precompute) is called, but the values will not be used during decryption operations.
 
 <!-- crypto/rsa -->
 
 <!-- CL 483815 reverted -->
 
-[crypto/sha256](/pkg/crypto/sha256/)
+#### [crypto/sha256](/pkg/crypto/sha256/)
 
-:   <!-- https://go.dev/issue/50543, CL 408795 -->
-    SHA-224 and SHA-256 operations now use native instructions when available when `GOARCH=amd64`, providing a performance improvement on the order of 3-4x.
+<!-- https://go.dev/issue/50543, CL 408795 -->
+SHA-224 and SHA-256 operations now use native instructions when available when `GOARCH=amd64`, providing a performance improvement on the order of 3-4x.
 
 <!-- crypto/sha256 -->
 
 <!-- CL 481478 reverted -->
 <!-- CL 483816 reverted -->
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 497895 -->
-    Servers now skip verifying client certificates (including not running
-    [`Config.VerifyPeerCertificate`](/pkg/crypto/tls/#Config.VerifyPeerCertificate))
-    for resumed connections, besides checking the expiration time. This makes
-    session tickets larger when client certificates are in use. Clients were
-    already skipping verification on resumption, but now check the expiration
-    time even if [`Config.InsecureSkipVerify`](/pkg/crypto/tls/#Config.InsecureSkipVerify)
-    is set.
+<!-- CL 497895 -->
+Servers now skip verifying client certificates (including not running
+[`Config.VerifyPeerCertificate`](/pkg/crypto/tls/#Config.VerifyPeerCertificate))
+for resumed connections, besides checking the expiration time. This makes
+session tickets larger when client certificates are in use. Clients were
+already skipping verification on resumption, but now check the expiration
+time even if [`Config.InsecureSkipVerify`](/pkg/crypto/tls/#Config.InsecureSkipVerify)
+is set.
 
-    <!-- https://go.dev/issue/60105, CL 496818, CL 496820, CL 496822, CL 496821, CL 501675 -->
-    Applications can now control the content of session tickets.
+<!-- https://go.dev/issue/60105, CL 496818, CL 496820, CL 496822, CL 496821, CL 501675 -->
+Applications can now control the content of session tickets.
 
-      - The new [`SessionState`](/pkg/crypto/tls/#SessionState) type
-        describes a resumable session.
-      - The [`SessionState.Bytes`](/pkg/crypto/tls/#SessionState.Bytes)
-        method and [`ParseSessionState`](/pkg/crypto/tls/#ParseSessionState)
-        function serialize and deserialize a `SessionState`.
-      - The [`Config.WrapSession`](/pkg/crypto/tls/#Config.WrapSession) and
-        [`Config.UnwrapSession`](/pkg/crypto/tls/#Config.UnwrapSession)
-        hooks convert a `SessionState` to and from a ticket on the server side.
-      - The [`Config.EncryptTicket`](/pkg/crypto/tls/#Config.EncryptTicket)
-        and [`Config.DecryptTicket`](/pkg/crypto/tls/#Config.DecryptTicket)
-        methods provide a default implementation of `WrapSession` and
-        `UnwrapSession`.
-      - The [`ClientSessionState.ResumptionState`](/pkg/crypto/tls/#ClientSessionState.ResumptionState) method and
-        [`NewResumptionState`](/pkg/crypto/tls/#NewResumptionState) function
-        may be used by a `ClientSessionCache` implementation to store and
-        resume sessions on the client side.
+  - The new [`SessionState`](/pkg/crypto/tls/#SessionState) type
+    describes a resumable session.
+  - The [`SessionState.Bytes`](/pkg/crypto/tls/#SessionState.Bytes)
+    method and [`ParseSessionState`](/pkg/crypto/tls/#ParseSessionState)
+    function serialize and deserialize a `SessionState`.
+  - The [`Config.WrapSession`](/pkg/crypto/tls/#Config.WrapSession) and
+    [`Config.UnwrapSession`](/pkg/crypto/tls/#Config.UnwrapSession)
+    hooks convert a `SessionState` to and from a ticket on the server side.
+  - The [`Config.EncryptTicket`](/pkg/crypto/tls/#Config.EncryptTicket)
+    and [`Config.DecryptTicket`](/pkg/crypto/tls/#Config.DecryptTicket)
+    methods provide a default implementation of `WrapSession` and
+    `UnwrapSession`.
+  - The [`ClientSessionState.ResumptionState`](/pkg/crypto/tls/#ClientSessionState.ResumptionState) method and
+    [`NewResumptionState`](/pkg/crypto/tls/#NewResumptionState) function
+    may be used by a `ClientSessionCache` implementation to store and
+    resume sessions on the client side.
 
 
-    <!-- CL 496817 -->
-    To reduce the potential for session tickets to be used as a tracking
-    mechanism across connections, the server now issues new tickets on every
-    resumption (if they are supported and not disabled) and tickets don't bear
-    an identifier for the key that encrypted them anymore. If passing a large
-    number of keys to [`Conn.SetSessionTicketKeys`](/pkg/crypto/tls/#Conn.SetSessionTicketKeys),
-    this might lead to a noticeable performance cost.
+<!-- CL 496817 -->
+To reduce the potential for session tickets to be used as a tracking
+mechanism across connections, the server now issues new tickets on every
+resumption (if they are supported and not disabled) and tickets don't bear
+an identifier for the key that encrypted them anymore. If passing a large
+number of keys to [`Conn.SetSessionTicketKeys`](/pkg/crypto/tls/#Conn.SetSessionTicketKeys),
+this might lead to a noticeable performance cost.
 
-    <!-- CL 497376 -->
-    Both clients and servers now implement the Extended Master Secret extension (RFC 7627).
-    The deprecation of [`ConnectionState.TLSUnique`](/pkg/crypto/tls/#ConnectionState.TLSUnique)
-    has been reverted, and is now set for resumed connections that support Extended Master Secret.
+<!-- CL 497376 -->
+Both clients and servers now implement the Extended Master Secret extension (RFC 7627).
+The deprecation of [`ConnectionState.TLSUnique`](/pkg/crypto/tls/#ConnectionState.TLSUnique)
+has been reverted, and is now set for resumed connections that support Extended Master Secret.
 
-    <!-- https://go.dev/issue/44886, https://go.dev/issue/60107, CL 493655, CL 496995, CL 514997 -->
-    The new [`QUICConn`](/pkg/crypto/tls/#QUICConn) type
-    provides support for QUIC implementations, including 0-RTT support. Note
-    that this is not itself a QUIC implementation, and 0-RTT is still not
-    supported in TLS.
+<!-- https://go.dev/issue/44886, https://go.dev/issue/60107, CL 493655, CL 496995, CL 514997 -->
+The new [`QUICConn`](/pkg/crypto/tls/#QUICConn) type
+provides support for QUIC implementations, including 0-RTT support. Note
+that this is not itself a QUIC implementation, and 0-RTT is still not
+supported in TLS.
 
-    <!-- https://go.dev/issue/46308, CL 497377 -->
-    The new [`VersionName`](/pkg/crypto/tls/#VersionName) function
-    returns the name for a TLS version number.
+<!-- https://go.dev/issue/46308, CL 497377 -->
+The new [`VersionName`](/pkg/crypto/tls/#VersionName) function
+returns the name for a TLS version number.
 
-    <!-- https://go.dev/issue/52113, CL 410496 -->
-    The TLS alert codes sent from the server for client authentication failures have
-    been improved. Previously, these failures always resulted in a "bad certificate" alert.
-    Now, certain failures will result in more appropriate alert codes,
-    as defined by RFC 5246 and RFC 8446:
+<!-- https://go.dev/issue/52113, CL 410496 -->
+The TLS alert codes sent from the server for client authentication failures have
+been improved. Previously, these failures always resulted in a "bad certificate" alert.
+Now, certain failures will result in more appropriate alert codes,
+as defined by RFC 5246 and RFC 8446:
 
-      - For TLS 1.3 connections, if the server is configured to require client authentication using
-        [RequireAnyClientCert](/pkg/crypto/tls/#RequireAnyClientCert) or
-        [RequireAndVerifyClientCert](/pkg/crypto/tls/#RequireAndVerifyClientCert),
-        and the client does not provide any certificate, the server will now return the "certificate required" alert.
-      - If the client provides a certificate that is not signed by the set of trusted certificate authorities
-        configured on the server, the server will return the "unknown certificate authority" alert.
-      - If the client provides a certificate that is either expired or not yet valid,
-        the server will return the "expired certificate" alert.
-      - In all other scenarios related to client authentication failures, the server still returns "bad certificate".
+  - For TLS 1.3 connections, if the server is configured to require client authentication using
+    [RequireAnyClientCert](/pkg/crypto/tls/#RequireAnyClientCert) or
+    [RequireAndVerifyClientCert](/pkg/crypto/tls/#RequireAndVerifyClientCert),
+    and the client does not provide any certificate, the server will now return the "certificate required" alert.
+  - If the client provides a certificate that is not signed by the set of trusted certificate authorities
+    configured on the server, the server will return the "unknown certificate authority" alert.
+  - If the client provides a certificate that is either expired or not yet valid,
+    the server will return the "expired certificate" alert.
+  - In all other scenarios related to client authentication failures, the server still returns "bad certificate".
 
 
 <!-- crypto/tls -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- https://go.dev/issue/53573, CL 468875 -->
-    [`RevocationList.RevokedCertificates`](/pkg/crypto/x509/#RevocationList.RevokedCertificates) has been deprecated and replaced with the new [`RevokedCertificateEntries`](/pkg/crypto/x509/#RevocationList.RevokedCertificateEntries) field, which is a slice of [`RevocationListEntry`](/pkg/crypto/x509/#RevocationListEntry). [`RevocationListEntry`](/pkg/crypto/x509/#RevocationListEntry) contains all of the fields in [`pkix.RevokedCertificate`](/pkg/crypto/x509/pkix#RevokedCertificate), as well as the revocation reason code.
+<!-- https://go.dev/issue/53573, CL 468875 -->
+[`RevocationList.RevokedCertificates`](/pkg/crypto/x509/#RevocationList.RevokedCertificates) has been deprecated and replaced with the new [`RevokedCertificateEntries`](/pkg/crypto/x509/#RevocationList.RevokedCertificateEntries) field, which is a slice of [`RevocationListEntry`](/pkg/crypto/x509/#RevocationListEntry). [`RevocationListEntry`](/pkg/crypto/x509/#RevocationListEntry) contains all of the fields in [`pkix.RevokedCertificate`](/pkg/crypto/x509/pkix#RevokedCertificate), as well as the revocation reason code.
 
-    <!-- CL 478216 -->
-    Name constraints are now correctly enforced on non-leaf certificates, and
-    not on the certificates where they are expressed.
+<!-- CL 478216 -->
+Name constraints are now correctly enforced on non-leaf certificates, and
+not on the certificates where they are expressed.
 
 <!-- crypto/x509 -->
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   <!-- https://go.dev/issue/56892, CL 452617 -->
-    The new
-    [`File.DynValue`](/pkg/debug/elf/#File.DynValue)
-    method may be used to retrieve the numeric values listed with a
-    given dynamic tag.
+<!-- https://go.dev/issue/56892, CL 452617 -->
+The new
+[`File.DynValue`](/pkg/debug/elf/#File.DynValue)
+method may be used to retrieve the numeric values listed with a
+given dynamic tag.
 
-    <!-- https://go.dev/issue/56887, CL 452496 -->
-    The constant flags permitted in a `DT_FLAGS_1`
-    dynamic tag are now defined with type
-    [`DynFlag1`](/pkg/debug/elf/#DynFlag1). These
-    tags have names starting with `DF_1`.
+<!-- https://go.dev/issue/56887, CL 452496 -->
+The constant flags permitted in a `DT_FLAGS_1`
+dynamic tag are now defined with type
+[`DynFlag1`](/pkg/debug/elf/#DynFlag1). These
+tags have names starting with `DF_1`.
 
-    <!-- CL 473256 -->
-    The package now defines the constant
-    [`COMPRESS_ZSTD`](/pkg/debug/elf/#COMPRESS_ZSTD).
+<!-- CL 473256 -->
+The package now defines the constant
+[`COMPRESS_ZSTD`](/pkg/debug/elf/#COMPRESS_ZSTD).
 
-    <!-- https://go.dev/issue/60348, CL 496918 -->
-    The package now defines the constant
-    [`R_PPC64_REL24_P9NOTOC`](/pkg/debug/elf/#R_PPC64_REL24_P9NOTOC).
+<!-- https://go.dev/issue/60348, CL 496918 -->
+The package now defines the constant
+[`R_PPC64_REL24_P9NOTOC`](/pkg/debug/elf/#R_PPC64_REL24_P9NOTOC).
 
 <!-- debug/elf -->
 
-[debug/pe](/pkg/debug/pe/)
+#### [debug/pe](/pkg/debug/pe/)
 
-:   <!-- CL 488475 -->
-    Attempts to read from a section containing uninitialized data
-    using
-    [`Section.Data`](/pkg/debug/pe/#Section.Data)
-    or the reader returned by [`Section.Open`](/pkg/debug/pe/#Section.Open)
-    now return an error.
+<!-- CL 488475 -->
+Attempts to read from a section containing uninitialized data
+using
+[`Section.Data`](/pkg/debug/pe/#Section.Data)
+or the reader returned by [`Section.Open`](/pkg/debug/pe/#Section.Open)
+now return an error.
 
 <!-- debug/pe -->
 
-[embed](/pkg/embed/)
+#### [embed](/pkg/embed/)
 
-:   <!-- https://go.dev/issue/57803, CL 483235 -->
-    The [`io/fs.File`](/pkg/io/fs/#File)
-    returned by
-    [`FS.Open`](/pkg/embed/#FS.Open) now
-    has a `ReadAt` method that
-    implements [`io.ReaderAt`](/pkg/io/#ReaderAt).
+<!-- https://go.dev/issue/57803, CL 483235 -->
+The [`io/fs.File`](/pkg/io/fs/#File)
+returned by
+[`FS.Open`](/pkg/embed/#FS.Open) now
+has a `ReadAt` method that
+implements [`io.ReaderAt`](/pkg/io/#ReaderAt).
 
-    <!-- https://go.dev/issue/54451, CL 491175 -->
-    Calling <code>[FS.Open](/pkg/embed/FS.Open).[Stat](/pkg/io/fs/#File.Stat)</code>
-    will return a type that now implements a `String`
-    method that calls
-    [`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
+<!-- https://go.dev/issue/54451, CL 491175 -->
+Calling <code>[FS.Open](/pkg/embed/FS.Open).[Stat](/pkg/io/fs/#File.Stat)</code>
+will return a type that now implements a `String`
+method that calls
+[`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
 
 <!-- embed -->
 
-[encoding/binary](/pkg/encoding/binary/)
+#### [encoding/binary](/pkg/encoding/binary/)
 
-:   <!-- https://go.dev/issue/57237, CL 463218, CL 463985 -->
-    The new
-    [`NativeEndian`](/pkg/encoding/binary/#NativeEndian)
-    variable may be used to convert between byte slices and integers
-    using the current machine's native endianness.
+<!-- https://go.dev/issue/57237, CL 463218, CL 463985 -->
+The new
+[`NativeEndian`](/pkg/encoding/binary/#NativeEndian)
+variable may be used to convert between byte slices and integers
+using the current machine's native endianness.
 
 <!-- encoding/binary -->
 
-[errors](/pkg/errors/)
+#### [errors](/pkg/errors/)
 
-:   <!-- https://go.dev/issue/41198, CL 473935 -->
-    The new
-    [`ErrUnsupported`](/pkg/errors/#ErrUnsupported)
-    error provides a standardized way to indicate that a requested
-    operation may not be performed because it is unsupported.
-    For example, a call to
-    [`os.Link`](/pkg/os/#Link) when using a
-    file system that does not support hard links.
+<!-- https://go.dev/issue/41198, CL 473935 -->
+The new
+[`ErrUnsupported`](/pkg/errors/#ErrUnsupported)
+error provides a standardized way to indicate that a requested
+operation may not be performed because it is unsupported.
+For example, a call to
+[`os.Link`](/pkg/os/#Link) when using a
+file system that does not support hard links.
 
 <!-- errors -->
 
-[flag](/pkg/flag/)
+#### [flag](/pkg/flag/)
 
-:   <!-- https://go.dev/issue/53747, CL 476015 -->
-    The new [`BoolFunc`](/pkg/flag/#BoolFunc)
-    function and
-    [`FlagSet.BoolFunc`](/pkg/flag/#FlagSet.BoolFunc)
-    method define a flag that does not require an argument and calls
-    a function when the flag is used. This is similar to
-    [`Func`](/pkg/flag/#Func) but for a
-    boolean flag.
+<!-- https://go.dev/issue/53747, CL 476015 -->
+The new [`BoolFunc`](/pkg/flag/#BoolFunc)
+function and
+[`FlagSet.BoolFunc`](/pkg/flag/#FlagSet.BoolFunc)
+method define a flag that does not require an argument and calls
+a function when the flag is used. This is similar to
+[`Func`](/pkg/flag/#Func) but for a
+boolean flag.
 
-    <!-- CL 480215 -->
-    A flag definition
-    (via [`Bool`](/pkg/flag/#Bool),
-    [`BoolVar`](/pkg/flag/#BoolVar),
-    [`Int`](/pkg/flag/#Int),
-    [`IntVar`](/pkg/flag/#IntVar), etc.)
-    will panic if [`Set`](/pkg/flag/#Set) has
-    already been called on a flag with the same name. This change is
-    intended to detect cases where [changes in
-    initialization order](#language) cause flag operations to occur in a
-    different order than expected. In many cases the fix to this
-    problem is to introduce a explicit package dependence to
-    correctly order the definition before any
-    [`Set`](/pkg/flag/#Set) operations.
+<!-- CL 480215 -->
+A flag definition
+(via [`Bool`](/pkg/flag/#Bool),
+[`BoolVar`](/pkg/flag/#BoolVar),
+[`Int`](/pkg/flag/#Int),
+[`IntVar`](/pkg/flag/#IntVar), etc.)
+will panic if [`Set`](/pkg/flag/#Set) has
+already been called on a flag with the same name. This change is
+intended to detect cases where [changes in
+initialization order](#language) cause flag operations to occur in a
+different order than expected. In many cases the fix to this
+problem is to introduce a explicit package dependence to
+correctly order the definition before any
+[`Set`](/pkg/flag/#Set) operations.
 
 <!-- flag -->
 
-[go/ast](/pkg/go/ast/)
+#### [go/ast](/pkg/go/ast/)
 
-:   <!-- https://go.dev/issue/28089, CL 487935 -->
-    The new [`IsGenerated`](/pkg/go/ast/#IsGenerated) predicate
-    reports whether a file syntax tree contains the
-    [special comment](https://go.dev/s/generatedcode)
-    that conventionally indicates that the file was generated by a tool.
+<!-- https://go.dev/issue/28089, CL 487935 -->
+The new [`IsGenerated`](/pkg/go/ast/#IsGenerated) predicate
+reports whether a file syntax tree contains the
+[special comment](https://go.dev/s/generatedcode)
+that conventionally indicates that the file was generated by a tool.
 
-    <!-- https://go.dev/issue/59033, CL 476276 -->
-    The new
-    [`File.GoVersion`](/pkg/go/ast/#File.GoVersion)
-    field records the minimum Go version required by
-    any `//go:build` or `// +build`
-    directives.
+<!-- https://go.dev/issue/59033, CL 476276 -->
+The new
+[`File.GoVersion`](/pkg/go/ast/#File.GoVersion)
+field records the minimum Go version required by
+any `//go:build` or `// +build`
+directives.
 
 <!-- go/ast -->
 
-[go/build](/pkg/go/build/)
+#### [go/build](/pkg/go/build/)
 
-:   <!-- https://go.dev/issue/56986, CL 453603 -->
-    The package now parses build directives (comments that start
-    with `//go:`) in file headers (before
-    the `package` declaration). These directives are
-    available in the new
-    [`Package`](/pkg/go/build#Package) fields
-    [`Directives`](/pkg/go/build#Package.Directives),
-    [`TestDirectives`](/pkg/go/build#Package.TestDirectives),
-    and
-    [`XTestDirectives`](/pkg/go/build#Package.XTestDirectives).
+<!-- https://go.dev/issue/56986, CL 453603 -->
+The package now parses build directives (comments that start
+with `//go:`) in file headers (before
+the `package` declaration). These directives are
+available in the new
+[`Package`](/pkg/go/build#Package) fields
+[`Directives`](/pkg/go/build#Package.Directives),
+[`TestDirectives`](/pkg/go/build#Package.TestDirectives),
+and
+[`XTestDirectives`](/pkg/go/build#Package.XTestDirectives).
 
 <!-- go/build -->
 
-[go/build/constraint](/pkg/go/build/constraint/)
+#### [go/build/constraint](/pkg/go/build/constraint/)
 
-:   <!-- https://go.dev/issue/59033, CL 476275 -->
-    The new
-    [`GoVersion`](/pkg/go/build/constraint/#GoVersion)
-    function returns the minimum Go version implied by a build
-    expression.
+<!-- https://go.dev/issue/59033, CL 476275 -->
+The new
+[`GoVersion`](/pkg/go/build/constraint/#GoVersion)
+function returns the minimum Go version implied by a build
+expression.
 
 <!-- go/build/constraint -->
 
-[go/token](/pkg/go/token/)
+#### [go/token](/pkg/go/token/)
 
-:   <!-- https://go.dev/issue/57708, CL 464515 -->
-    The new [`File.Lines`](/pkg/go/token/#File.Lines) method
-    returns the file's line-number table in the same form as accepted by
-    `File.SetLines`.
+<!-- https://go.dev/issue/57708, CL 464515 -->
+The new [`File.Lines`](/pkg/go/token/#File.Lines) method
+returns the file's line-number table in the same form as accepted by
+`File.SetLines`.
 
 <!-- go/token -->
 
-[go/types](/pkg/go/types/)
+#### [go/types](/pkg/go/types/)
 
-:   <!-- https://go.dev/issue/61175, CL 507975 -->
-    The new [`Package.GoVersion`](/pkg/go/types/#Package.GoVersion)
-    method returns the Go language version used to check the package.
+<!-- https://go.dev/issue/61175, CL 507975 -->
+The new [`Package.GoVersion`](/pkg/go/types/#Package.GoVersion)
+method returns the Go language version used to check the package.
 
 <!-- go/types -->
 
-[hash/maphash](/pkg/hash/maphash/)
+#### [hash/maphash](/pkg/hash/maphash/)
 
-:   <!-- https://go.dev/issue/47342, CL 468795 -->
-    The `hash/maphash` package now has a pure Go implementation, selectable with the `purego` build tag.
+<!-- https://go.dev/issue/47342, CL 468795 -->
+The `hash/maphash` package now has a pure Go implementation, selectable with the `purego` build tag.
 
 <!-- hash/maphash -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- https://go.dev/issue/59584, CL 496395 -->
-    The new error
-    [`ErrJSTemplate`](/pkg/html/template/#ErrJSTemplate)
-    is returned when an action appears in a JavaScript template
-    literal. Previously an unexported error was returned.
+<!-- https://go.dev/issue/59584, CL 496395 -->
+The new error
+[`ErrJSTemplate`](/pkg/html/template/#ErrJSTemplate)
+is returned when an action appears in a JavaScript template
+literal. Previously an unexported error was returned.
 
 <!-- html/template -->
 
-[io/fs](/pkg/io/fs/)
+#### [io/fs](/pkg/io/fs/)
 
-:   <!-- https://go.dev/issue/54451, CL 489555 -->
-    The new
-    [`FormatFileInfo`](/pkg/io/fs/#FormatFileInfo)
-    function returns a formatted version of a
-    [`FileInfo`](/pkg/io/fs/#FileInfo).
-    The new
-    [`FormatDirEntry`](/pkg/io/fs/#FormatDirEntry)
-    function returns a formatted version of a
-    [`DirEntry`](/pkg/io/fs/#FileInfo).
-    The implementation of
-    [`DirEntry`](/pkg/io/fs/#DirEntry)
-    returned by
-    [`ReadDir`](/pkg/io/fs/#ReadDir) now
-    implements a `String` method that calls
-    [`FormatDirEntry`](/pkg/io/fs/#FormatDirEntry),
-    and the same is true for
-    the [`DirEntry`](/pkg/io/fs/#DirEntry)
-    value passed to
-    [`WalkDirFunc`](/pkg/io/fs/#WalkDirFunc).
+<!-- https://go.dev/issue/54451, CL 489555 -->
+The new
+[`FormatFileInfo`](/pkg/io/fs/#FormatFileInfo)
+function returns a formatted version of a
+[`FileInfo`](/pkg/io/fs/#FileInfo).
+The new
+[`FormatDirEntry`](/pkg/io/fs/#FormatDirEntry)
+function returns a formatted version of a
+[`DirEntry`](/pkg/io/fs/#FileInfo).
+The implementation of
+[`DirEntry`](/pkg/io/fs/#DirEntry)
+returned by
+[`ReadDir`](/pkg/io/fs/#ReadDir) now
+implements a `String` method that calls
+[`FormatDirEntry`](/pkg/io/fs/#FormatDirEntry),
+and the same is true for
+the [`DirEntry`](/pkg/io/fs/#DirEntry)
+value passed to
+[`WalkDirFunc`](/pkg/io/fs/#WalkDirFunc).
 
 <!-- io/fs -->
 
@@ -772,322 +772,322 @@
 <!-- CL 459435 reverted by CL 467255 -->
 <!-- CL 467515 reverted by CL 499416 -->
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   <!-- https://go.dev/issue/56984, CL 453115, CL 500116 -->
-    The new [`Int.Float64`](/pkg/math/big/#Int.Float64)
-    method returns the nearest floating-point value to a
-    multi-precision integer, along with an indication of any
-    rounding that occurred.
+<!-- https://go.dev/issue/56984, CL 453115, CL 500116 -->
+The new [`Int.Float64`](/pkg/math/big/#Int.Float64)
+method returns the nearest floating-point value to a
+multi-precision integer, along with an indication of any
+rounding that occurred.
 
 <!-- math/big -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- https://go.dev/issue/59166, https://go.dev/issue/56539 -->
-    <!-- CL 471136, CL 471137, CL 471140 -->
-    On Linux, the [net](/pkg/net/) package can now use
-    Multipath TCP when the kernel supports it. It is not used by
-    default. To use Multipath TCP when available on a client, call
-    the
-    [`Dialer.SetMultipathTCP`](/pkg/net/#Dialer.SetMultipathTCP)
-    method before calling the
-    [`Dialer.Dial`](/pkg/net/#Dialer.Dial) or
-    [`Dialer.DialContext`](/pkg/net/#Dialer.DialContext)
-    methods. To use Multipath TCP when available on a server, call
-    the
-    [`ListenConfig.SetMultipathTCP`](/pkg/net/#ListenConfig.SetMultipathTCP)
-    method before calling the
-    [`ListenConfig.Listen`](/pkg/net/#ListenConfig.Listen)
-    method. Specify the network as `"tcp"` or
-    `"tcp4"` or `"tcp6"` as usual. If
-    Multipath TCP is not supported by the kernel or the remote host,
-    the connection will silently fall back to TCP. To test whether a
-    particular connection is using Multipath TCP, use the
-    [`TCPConn.MultipathTCP`](/pkg/net/#TCPConn.MultipathTCP)
-    method.
+<!-- https://go.dev/issue/59166, https://go.dev/issue/56539 -->
+<!-- CL 471136, CL 471137, CL 471140 -->
+On Linux, the [net](/pkg/net/) package can now use
+Multipath TCP when the kernel supports it. It is not used by
+default. To use Multipath TCP when available on a client, call
+the
+[`Dialer.SetMultipathTCP`](/pkg/net/#Dialer.SetMultipathTCP)
+method before calling the
+[`Dialer.Dial`](/pkg/net/#Dialer.Dial) or
+[`Dialer.DialContext`](/pkg/net/#Dialer.DialContext)
+methods. To use Multipath TCP when available on a server, call
+the
+[`ListenConfig.SetMultipathTCP`](/pkg/net/#ListenConfig.SetMultipathTCP)
+method before calling the
+[`ListenConfig.Listen`](/pkg/net/#ListenConfig.Listen)
+method. Specify the network as `"tcp"` or
+`"tcp4"` or `"tcp6"` as usual. If
+Multipath TCP is not supported by the kernel or the remote host,
+the connection will silently fall back to TCP. To test whether a
+particular connection is using Multipath TCP, use the
+[`TCPConn.MultipathTCP`](/pkg/net/#TCPConn.MultipathTCP)
+method.
 
-    In a future Go release we may enable Multipath TCP by default on
-    systems that support it.
+In a future Go release we may enable Multipath TCP by default on
+systems that support it.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 472636 -->
-    The new [`ResponseController.EnableFullDuplex`](/pkg/net/http#ResponseController.EnableFullDuplex)
-    method allows server handlers to concurrently read from an HTTP/1
-    request body while writing the response. Normally, the HTTP/1 server
-    automatically consumes any remaining request body before starting to
-    write the response, to avoid deadlocking clients which attempt to
-    write a complete request before reading the response. The
-    `EnableFullDuplex` method disables this behavior.
+<!-- CL 472636 -->
+The new [`ResponseController.EnableFullDuplex`](/pkg/net/http#ResponseController.EnableFullDuplex)
+method allows server handlers to concurrently read from an HTTP/1
+request body while writing the response. Normally, the HTTP/1 server
+automatically consumes any remaining request body before starting to
+write the response, to avoid deadlocking clients which attempt to
+write a complete request before reading the response. The
+`EnableFullDuplex` method disables this behavior.
 
-    <!-- https://go.dev/issue/44855, CL 382117 -->
-    The new [`ErrSchemeMismatch`](/pkg/net/http/#ErrSchemeMismatch) error is returned by [`Client`](/pkg/net/http/#Client) and [`Transport`](/pkg/net/http/#Transport) when the server responds to an HTTPS request with an HTTP response.
+<!-- https://go.dev/issue/44855, CL 382117 -->
+The new [`ErrSchemeMismatch`](/pkg/net/http/#ErrSchemeMismatch) error is returned by [`Client`](/pkg/net/http/#Client) and [`Transport`](/pkg/net/http/#Transport) when the server responds to an HTTPS request with an HTTP response.
 
-    <!-- CL 494122 -->
-    The [net/http](/pkg/net/http/) package now supports
-    [`errors.ErrUnsupported`](/pkg/errors/#ErrUnsupported),
-    in that the expression
-    `errors.Is(http.ErrNotSupported, errors.ErrUnsupported)`
-    will return true.
+<!-- CL 494122 -->
+The [net/http](/pkg/net/http/) package now supports
+[`errors.ErrUnsupported`](/pkg/errors/#ErrUnsupported),
+in that the expression
+`errors.Is(http.ErrNotSupported, errors.ErrUnsupported)`
+will return true.
 
 <!-- net/http -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- https://go.dev/issue/32558, CL 219638 -->
-    Programs may now pass an empty `time.Time` value to
-    the [`Chtimes`](/pkg/os/#Chtimes) function
-    to leave either the access time or the modification time unchanged.
+<!-- https://go.dev/issue/32558, CL 219638 -->
+Programs may now pass an empty `time.Time` value to
+the [`Chtimes`](/pkg/os/#Chtimes) function
+to leave either the access time or the modification time unchanged.
 
-    <!-- CL 480135 -->
-    On Windows the
-    [`File.Chdir`](/pkg/os#File.Chdir) method
-    now changes the current directory to the file, rather than
-    always returning an error.
+<!-- CL 480135 -->
+On Windows the
+[`File.Chdir`](/pkg/os#File.Chdir) method
+now changes the current directory to the file, rather than
+always returning an error.
 
-    <!-- CL 495079 -->
-    On Unix systems, if a non-blocking descriptor is passed
-    to [`NewFile`](/pkg/os/#NewFile), calling
-    the [`File.Fd`](/pkg/os/#File.Fd) method
-    will now return a non-blocking descriptor. Previously the
-    descriptor was converted to blocking mode.
+<!-- CL 495079 -->
+On Unix systems, if a non-blocking descriptor is passed
+to [`NewFile`](/pkg/os/#NewFile), calling
+the [`File.Fd`](/pkg/os/#File.Fd) method
+will now return a non-blocking descriptor. Previously the
+descriptor was converted to blocking mode.
 
-    <!-- CL 477215 -->
-    On Windows calling
-    [`Truncate`](/pkg/os/#Truncate) on a
-    non-existent file used to create an empty file. It now returns
-    an error indicating that the file does not exist.
+<!-- CL 477215 -->
+On Windows calling
+[`Truncate`](/pkg/os/#Truncate) on a
+non-existent file used to create an empty file. It now returns
+an error indicating that the file does not exist.
 
-    <!-- https://go.dev/issue/56899, CL 463219 -->
-    On Windows calling
-    [`TempDir`](/pkg/os/#TempDir) now uses
-    GetTempPath2W when available, instead of GetTempPathW. The
-    new behavior is a security hardening measure that prevents
-    temporary files created by processes running as SYSTEM to
-    be accessed by non-SYSTEM processes.
+<!-- https://go.dev/issue/56899, CL 463219 -->
+On Windows calling
+[`TempDir`](/pkg/os/#TempDir) now uses
+GetTempPath2W when available, instead of GetTempPathW. The
+new behavior is a security hardening measure that prevents
+temporary files created by processes running as SYSTEM to
+be accessed by non-SYSTEM processes.
 
-    <!-- CL 493036 -->
-    On Windows the os package now supports working with files whose
-    names, stored as UTF-16, can't be represented as valid UTF-8.
+<!-- CL 493036 -->
+On Windows the os package now supports working with files whose
+names, stored as UTF-16, can't be represented as valid UTF-8.
 
-    <!-- CL 463177 -->
-    On Windows [`Lstat`](/pkg/os/#Lstat) now resolves
-    symbolic links for paths ending with a path separator, consistent with its
-    behavior on POSIX platforms.
+<!-- CL 463177 -->
+On Windows [`Lstat`](/pkg/os/#Lstat) now resolves
+symbolic links for paths ending with a path separator, consistent with its
+behavior on POSIX platforms.
 
-    <!-- https://go.dev/issue/54451, CL 491175 -->
-    The implementation of the
-    [`io/fs.DirEntry`](/pkg/io/fs/#DirEntry)
-    interface returned by the
-    [`ReadDir`](/pkg/os/#ReadDir) function and
-    the [`File.ReadDir`](/pkg/os/#File.ReadDir)
-    method now implements a `String` method that calls
-    [`io/fs.FormatDirEntry`](/pkg/io/fs/#FormatDirEntry).
+<!-- https://go.dev/issue/54451, CL 491175 -->
+The implementation of the
+[`io/fs.DirEntry`](/pkg/io/fs/#DirEntry)
+interface returned by the
+[`ReadDir`](/pkg/os/#ReadDir) function and
+the [`File.ReadDir`](/pkg/os/#File.ReadDir)
+method now implements a `String` method that calls
+[`io/fs.FormatDirEntry`](/pkg/io/fs/#FormatDirEntry).
 
-    <!-- https://go.dev/issue/53761, CL 416775, CL 498015-->
-    The implementation of the
-    [`io/fs.FS`](/pkg/io/fs/#FS) interface returned by
-    the [`DirFS`](/pkg/os/#DirFS) function now implements
-    the [`io/fs.ReadFileFS`](/pkg/io/fs/#ReadFileFS) and
-    the [`io/fs.ReadDirFS`](/pkg/io/fs/#ReadDirFS)
-    interfaces.
+<!-- https://go.dev/issue/53761, CL 416775, CL 498015-->
+The implementation of the
+[`io/fs.FS`](/pkg/io/fs/#FS) interface returned by
+the [`DirFS`](/pkg/os/#DirFS) function now implements
+the [`io/fs.ReadFileFS`](/pkg/io/fs/#ReadFileFS) and
+the [`io/fs.ReadDirFS`](/pkg/io/fs/#ReadDirFS)
+interfaces.
 
 <!-- os -->
 
-[path/filepath](/pkg/path/filepath/)
+#### [path/filepath](/pkg/path/filepath/)
 
-:   The implementation of the
-    [`io/fs.DirEntry`](/pkg/io/fs/#DirEntry)
-    interface passed to the function argument of
-    [`WalkDir`](/pkg/path/filepath/#WalkDir)
-    now implements a `String` method that calls
-    [`io/fs.FormatDirEntry`](/pkg/io/fs/#FormatDirEntry).
+The implementation of the
+[`io/fs.DirEntry`](/pkg/io/fs/#DirEntry)
+interface passed to the function argument of
+[`WalkDir`](/pkg/path/filepath/#WalkDir)
+now implements a `String` method that calls
+[`io/fs.FormatDirEntry`](/pkg/io/fs/#FormatDirEntry).
 
 <!-- path/filepath -->
 
 <!-- CL 459455 reverted -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 408826, CL 413474 -->
-    In Go 1.21, [`ValueOf`](/pkg/reflect/#ValueOf)
-    no longer forces its argument to be allocated on the heap, allowing
-    a `Value`'s content to be allocated on the stack. Most
-    operations on a `Value` also allow the underlying value
-    to be stack allocated.
+<!-- CL 408826, CL 413474 -->
+In Go 1.21, [`ValueOf`](/pkg/reflect/#ValueOf)
+no longer forces its argument to be allocated on the heap, allowing
+a `Value`'s content to be allocated on the stack. Most
+operations on a `Value` also allow the underlying value
+to be stack allocated.
 
-    <!-- https://go.dev/issue/55002 -->
-    The new [`Value`](/pkg/reflect/#Value)
-    method [`Value.Clear`](/pkg/reflect/#Value.Clear)
-    clears the contents of a map or zeros the contents of a slice.
-    This corresponds to the new `clear` built-in
-    [added to the language](#language).
+<!-- https://go.dev/issue/55002 -->
+The new [`Value`](/pkg/reflect/#Value)
+method [`Value.Clear`](/pkg/reflect/#Value.Clear)
+clears the contents of a map or zeros the contents of a slice.
+This corresponds to the new `clear` built-in
+[added to the language](#language).
 
-    <!-- https://go.dev/issue/56906, CL 452762 -->
-    The [`SliceHeader`](/pkg/reflect/#SliceHeader)
-    and [`StringHeader`](/pkg/reflect/#StringHeader)
-    types are now deprecated. In new code
-    prefer [`unsafe.Slice`](/pkg/unsafe/#Slice),
-    [`unsafe.SliceData`](/pkg/unsafe/#SliceData),
-    [`unsafe.String`](/pkg/unsafe/#String),
-    or [`unsafe.StringData`](/pkg/unsafe/#StringData).
+<!-- https://go.dev/issue/56906, CL 452762 -->
+The [`SliceHeader`](/pkg/reflect/#SliceHeader)
+and [`StringHeader`](/pkg/reflect/#StringHeader)
+types are now deprecated. In new code
+prefer [`unsafe.Slice`](/pkg/unsafe/#Slice),
+[`unsafe.SliceData`](/pkg/unsafe/#SliceData),
+[`unsafe.String`](/pkg/unsafe/#String),
+or [`unsafe.StringData`](/pkg/unsafe/#StringData).
 
 <!-- reflect -->
 
-[regexp](/pkg/regexp/)
+#### [regexp](/pkg/regexp/)
 
-:   <!-- https://go.dev/issue/46159, CL 479401 -->
-    [`Regexp`](/pkg/regexp#Regexp) now defines
-    [`MarshalText`](/pkg/regexp#Regexp.MarshalText)
-    and [`UnmarshalText`](/pkg/regexp#Regexp.UnmarshalText)
-    methods. These implement
-    [`encoding.TextMarshaler`](/pkg/encoding#TextMarshaler)
-    and
-    [`encoding.TextUnmarshaler`](/pkg/encoding#TextUnmarshaler)
-    and will be used by packages such as
-    [encoding/json](/pkg/encoding/json).
+<!-- https://go.dev/issue/46159, CL 479401 -->
+[`Regexp`](/pkg/regexp#Regexp) now defines
+[`MarshalText`](/pkg/regexp#Regexp.MarshalText)
+and [`UnmarshalText`](/pkg/regexp#Regexp.UnmarshalText)
+methods. These implement
+[`encoding.TextMarshaler`](/pkg/encoding#TextMarshaler)
+and
+[`encoding.TextUnmarshaler`](/pkg/encoding#TextUnmarshaler)
+and will be used by packages such as
+[encoding/json](/pkg/encoding/json).
 
 <!-- regexp -->
 
-[runtime](/pkg/runtime/)
+#### [runtime](/pkg/runtime/)
 
-:   <!-- https://go.dev/issue/38651, CL 435337 -->
-    Textual stack traces produced by Go programs, such as those
-    produced when crashing, calling `runtime.Stack`, or
-    collecting a goroutine profile with `debug=2`, now
-    include the IDs of the goroutines that created each goroutine in
-    the stack trace.
+<!-- https://go.dev/issue/38651, CL 435337 -->
+Textual stack traces produced by Go programs, such as those
+produced when crashing, calling `runtime.Stack`, or
+collecting a goroutine profile with `debug=2`, now
+include the IDs of the goroutines that created each goroutine in
+the stack trace.
 
-    <!-- https://go.dev/issue/57441, CL 474915 -->
-    Crashing Go applications can now opt-in to Windows Error Reporting (WER) by setting the environment variable
-    `GOTRACEBACK=wer` or calling [`debug.SetTraceback("wer")`](/pkg/runtime/debug/#SetTraceback)
-    before the crash. Other than enabling WER, the runtime will behave as with `GOTRACEBACK=crash`.
-    On non-Windows systems, `GOTRACEBACK=wer` is ignored.
+<!-- https://go.dev/issue/57441, CL 474915 -->
+Crashing Go applications can now opt-in to Windows Error Reporting (WER) by setting the environment variable
+`GOTRACEBACK=wer` or calling [`debug.SetTraceback("wer")`](/pkg/runtime/debug/#SetTraceback)
+before the crash. Other than enabling WER, the runtime will behave as with `GOTRACEBACK=crash`.
+On non-Windows systems, `GOTRACEBACK=wer` is ignored.
 
-    <!-- CL 447778 -->
-    `GODEBUG=cgocheck=2`, a thorough checker of cgo pointer passing rules,
-    is no longer available as a [debug option](/pkg/runtime#hdr-Environment_Variables).
-    Instead, it is available as an experiment using `GOEXPERIMENT=cgocheck2`.
-    In particular this means that this mode has to be selected at build time instead of startup time.
+<!-- CL 447778 -->
+`GODEBUG=cgocheck=2`, a thorough checker of cgo pointer passing rules,
+is no longer available as a [debug option](/pkg/runtime#hdr-Environment_Variables).
+Instead, it is available as an experiment using `GOEXPERIMENT=cgocheck2`.
+In particular this means that this mode has to be selected at build time instead of startup time.
 
-    `GODEBUG=cgocheck=1` is still available (and is still the default).
+`GODEBUG=cgocheck=1` is still available (and is still the default).
 
-    <!-- https://go.dev/issue/46787, CL 367296 -->
-    A new type `Pinner` has been added to the runtime
-    package. `Pinner`s may be used to "pin" Go memory
-    such that it may be used more freely by non-Go code. For instance,
-    passing Go values that reference pinned Go memory to C code is
-    now allowed. Previously, passing any such nested reference was
-    disallowed by the
-    [cgo pointer passing rules.](https://pkg.go.dev/cmd/cgo#hdr-Passing_pointers)
-    See [the docs](/pkg/runtime#Pinner) for more details.
+<!-- https://go.dev/issue/46787, CL 367296 -->
+A new type `Pinner` has been added to the runtime
+package. `Pinner`s may be used to "pin" Go memory
+such that it may be used more freely by non-Go code. For instance,
+passing Go values that reference pinned Go memory to C code is
+now allowed. Previously, passing any such nested reference was
+disallowed by the
+[cgo pointer passing rules.](https://pkg.go.dev/cmd/cgo#hdr-Passing_pointers)
+See [the docs](/pkg/runtime#Pinner) for more details.
 
-    <!-- CL 472195 no release note needed -->
+<!-- CL 472195 no release note needed -->
 
 <!-- runtime -->
 
-[runtime/metrics](/pkg/runtime/metrics/)
+#### [runtime/metrics](/pkg/runtime/metrics/)
 
-:   <!-- https://go.dev/issue/56857, CL 497315 -->
-    A few previously-internal GC metrics, such as live heap size, are
-    now available.
-    `GOGC` and `GOMEMLIMIT` are also now
-    available as metrics.
+<!-- https://go.dev/issue/56857, CL 497315 -->
+A few previously-internal GC metrics, such as live heap size, are
+now available.
+`GOGC` and `GOMEMLIMIT` are also now
+available as metrics.
 
 <!-- runtime/metrics -->
 
-[runtime/trace](/pkg/runtime/trace/)
+#### [runtime/trace](/pkg/runtime/trace/)
 
-:   <!-- https://go.dev/issue/16638 -->
-    Collecting traces on amd64 and arm64 now incurs a substantially
-    smaller CPU cost: up to a 10x improvement over the previous release.
+<!-- https://go.dev/issue/16638 -->
+Collecting traces on amd64 and arm64 now incurs a substantially
+smaller CPU cost: up to a 10x improvement over the previous release.
 
-    <!-- CL 494495 -->
-    Traces now contain explicit stop-the-world events for every reason
-    the Go runtime might stop-the-world, not just garbage collection.
+<!-- CL 494495 -->
+Traces now contain explicit stop-the-world events for every reason
+the Go runtime might stop-the-world, not just garbage collection.
 
 <!-- runtime/trace -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- https://go.dev/issue/56102, CL 451356 -->
-    The new [`OnceFunc`](/pkg/sync/#OnceFunc),
-    [`OnceValue`](/pkg/sync/#OnceValue), and
-    [`OnceValues`](/pkg/sync/#OnceValues)
-    functions capture a common use of [Once](/pkg/sync/#Once) to
-    lazily initialize a value on first use.
+<!-- https://go.dev/issue/56102, CL 451356 -->
+The new [`OnceFunc`](/pkg/sync/#OnceFunc),
+[`OnceValue`](/pkg/sync/#OnceValue), and
+[`OnceValues`](/pkg/sync/#OnceValues)
+functions capture a common use of [Once](/pkg/sync/#Once) to
+lazily initialize a value on first use.
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 480135 -->
-    On Windows the
-    [`Fchdir`](/pkg/syscall#Fchdir) function
-    now changes the current directory to its argument, rather than
-    always returning an error.
+<!-- CL 480135 -->
+On Windows the
+[`Fchdir`](/pkg/syscall#Fchdir) function
+now changes the current directory to its argument, rather than
+always returning an error.
 
-    <!-- https://go.dev/issue/46259, CL 458335 -->
-    On FreeBSD
-    [`SysProcAttr`](/pkg/syscall#SysProcAttr)
-    has a new field `Jail` that may be used to put the
-    newly created process in a jailed environment.
+<!-- https://go.dev/issue/46259, CL 458335 -->
+On FreeBSD
+[`SysProcAttr`](/pkg/syscall#SysProcAttr)
+has a new field `Jail` that may be used to put the
+newly created process in a jailed environment.
 
-    <!-- CL 493036 -->
-    On Windows the syscall package now supports working with files whose
-    names, stored as UTF-16, can't be represented as valid UTF-8.
-    The [`UTF16ToString`](/pkg/syscall#UTF16ToString)
-    and [`UTF16FromString`](/pkg/syscall#UTF16FromString)
-    functions now convert between UTF-16 data and
-    [WTF-8](https://simonsapin.github.io/wtf-8/) strings.
-    This is backward compatible as WTF-8 is a superset of the UTF-8
-    format that was used in earlier releases.
+<!-- CL 493036 -->
+On Windows the syscall package now supports working with files whose
+names, stored as UTF-16, can't be represented as valid UTF-8.
+The [`UTF16ToString`](/pkg/syscall#UTF16ToString)
+and [`UTF16FromString`](/pkg/syscall#UTF16FromString)
+functions now convert between UTF-16 data and
+[WTF-8](https://simonsapin.github.io/wtf-8/) strings.
+This is backward compatible as WTF-8 is a superset of the UTF-8
+format that was used in earlier releases.
 
-    <!-- CL 476578, CL 476875, CL 476916 -->
-    Several error values match the new
-    [`errors.ErrUnsupported`](/pkg/errors/#ErrUnsupported),
-    such that `errors.Is(err, errors.ErrUnsupported)`
-    returns true.
+<!-- CL 476578, CL 476875, CL 476916 -->
+Several error values match the new
+[`errors.ErrUnsupported`](/pkg/errors/#ErrUnsupported),
+such that `errors.Is(err, errors.ErrUnsupported)`
+returns true.
 
-      - `ENOSYS`
-      - `ENOTSUP`
-      - `EOPNOTSUPP`
-      - `EPLAN9` (Plan 9 only)
-      - `ERROR_CALL_NOT_IMPLEMENTED` (Windows only)
-      - `ERROR_NOT_SUPPORTED` (Windows only)
-      - `EWINDOWS` (Windows only)
+  - `ENOSYS`
+  - `ENOTSUP`
+  - `EOPNOTSUPP`
+  - `EPLAN9` (Plan 9 only)
+  - `ERROR_CALL_NOT_IMPLEMENTED` (Windows only)
+  - `ERROR_NOT_SUPPORTED` (Windows only)
+  - `EWINDOWS` (Windows only)
 
 
 <!-- syscall -->
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- https://go.dev/issue/37708, CL 463837 -->
-    The new `-test.fullpath` option will print full path
-    names in test log messages, rather than just base names.
+<!-- https://go.dev/issue/37708, CL 463837 -->
+The new `-test.fullpath` option will print full path
+names in test log messages, rather than just base names.
 
-    <!-- https://go.dev/issue/52600, CL 475496 -->
-    The new [`Testing`](/pkg/testing/#Testing) function reports whether the program is a test created by `go` `test`.
+<!-- https://go.dev/issue/52600, CL 475496 -->
+The new [`Testing`](/pkg/testing/#Testing) function reports whether the program is a test created by `go` `test`.
 
 <!-- testing -->
 
-[testing/fstest](/pkg/testing/fstest/)
+#### [testing/fstest](/pkg/testing/fstest/)
 
-:   <!-- https://go.dev/issue/54451, CL 491175 -->
-    Calling <code>[Open](/pkg/testing/fstest/MapFS.Open).[Stat](/pkg/io/fs/#File.Stat)</code>
-    will return a type that now implements a `String`
-    method that calls
-    [`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
+<!-- https://go.dev/issue/54451, CL 491175 -->
+Calling <code>[Open](/pkg/testing/fstest/MapFS.Open).[Stat](/pkg/io/fs/#File.Stat)</code>
+will return a type that now implements a `String`
+method that calls
+[`io/fs.FormatFileInfo`](/pkg/io/fs/#FormatFileInfo).
 
 <!-- testing/fstest -->
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   <!-- CL 456837 -->
-    The [`unicode`](/pkg/unicode/) package and
-    associated support throughout the system has been upgraded to
-    [Unicode 15.0.0](https://www.unicode.org/versions/Unicode15.0.0/).
+<!-- CL 456837 -->
+The [`unicode`](/pkg/unicode/) package and
+associated support throughout the system has been upgraded to
+[Unicode 15.0.0](https://www.unicode.org/versions/Unicode15.0.0/).
 
 <!-- unicode -->
 
diff --git a/_content/doc/go1.7.md b/_content/doc/go1.7.md
index 708712e..3b64ae8 100644
--- a/_content/doc/go1.7.md
+++ b/_content/doc/go1.7.md
@@ -399,545 +399,545 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[bufio](/pkg/bufio/)
+#### [bufio](/pkg/bufio/)
 
-:   In previous releases of Go, if
-    [`Reader`](/pkg/bufio/#Reader)'s
-    [`Peek`](/pkg/bufio/#Reader.Peek) method
-    were asked for more bytes than fit in the underlying buffer,
-    it would return an empty slice and the error `ErrBufferFull`.
-    Now it returns the entire underlying buffer, still accompanied by the error `ErrBufferFull`.
+In previous releases of Go, if
+[`Reader`](/pkg/bufio/#Reader)'s
+[`Peek`](/pkg/bufio/#Reader.Peek) method
+were asked for more bytes than fit in the underlying buffer,
+it would return an empty slice and the error `ErrBufferFull`.
+Now it returns the entire underlying buffer, still accompanied by the error `ErrBufferFull`.
 
-[bytes](/pkg/bytes/)
+#### [bytes](/pkg/bytes/)
 
-:   The new functions
-    [`ContainsAny`](/pkg/bytes/#ContainsAny) and
-    [`ContainsRune`](/pkg/bytes/#ContainsRune)
-    have been added for symmetry with
-    the [`strings`](/pkg/strings/) package.
+The new functions
+[`ContainsAny`](/pkg/bytes/#ContainsAny) and
+[`ContainsRune`](/pkg/bytes/#ContainsRune)
+have been added for symmetry with
+the [`strings`](/pkg/strings/) package.
 
-    In previous releases of Go, if
-    [`Reader`](/pkg/bytes/#Reader)'s
-    [`Read`](/pkg/bytes/#Reader.Read) method
-    were asked for zero bytes with no data remaining, it would
-    return a count of 0 and no error.
-    Now it returns a count of 0 and the error
-    [`io.EOF`](/pkg/io/#EOF).
+In previous releases of Go, if
+[`Reader`](/pkg/bytes/#Reader)'s
+[`Read`](/pkg/bytes/#Reader.Read) method
+were asked for zero bytes with no data remaining, it would
+return a count of 0 and no error.
+Now it returns a count of 0 and the error
+[`io.EOF`](/pkg/io/#EOF).
 
-    The
-    [`Reader`](/pkg/bytes/#Reader) type has a new method
-    [`Reset`](/pkg/bytes/#Reader.Reset) to allow reuse of a `Reader`.
+The
+[`Reader`](/pkg/bytes/#Reader) type has a new method
+[`Reset`](/pkg/bytes/#Reader.Reset) to allow reuse of a `Reader`.
 
-[compress/flate](/pkg/compress/flate/)
+#### [compress/flate](/pkg/compress/flate/)
 
-:   There are many performance optimizations throughout the package.
-    Decompression speed is improved by about 10%,
-    while compression for `DefaultCompression` is twice as fast.
+There are many performance optimizations throughout the package.
+Decompression speed is improved by about 10%,
+while compression for `DefaultCompression` is twice as fast.
 
-    In addition to those general improvements,
-    the
-    `BestSpeed`
-    compressor has been replaced entirely and uses an
-    algorithm similar to [Snappy](https://github.com/google/snappy),
-    resulting in about a 2.5X speed increase,
-    although the output can be 5-10% larger than with the previous algorithm.
+In addition to those general improvements,
+the
+`BestSpeed`
+compressor has been replaced entirely and uses an
+algorithm similar to [Snappy](https://github.com/google/snappy),
+resulting in about a 2.5X speed increase,
+although the output can be 5-10% larger than with the previous algorithm.
 
-    There is also a new compression level
-    `HuffmanOnly`
-    that applies Huffman but not Lempel-Ziv encoding.
-    [Forgoing Lempel-Ziv encoding](https://blog.klauspost.com/constant-time-gzipzip-compression/) means that
-    `HuffmanOnly` runs about 3X faster than the new `BestSpeed`
-    but at the cost of producing compressed outputs that are 20-40% larger than those
-    generated by the new `BestSpeed`.
+There is also a new compression level
+`HuffmanOnly`
+that applies Huffman but not Lempel-Ziv encoding.
+[Forgoing Lempel-Ziv encoding](https://blog.klauspost.com/constant-time-gzipzip-compression/) means that
+`HuffmanOnly` runs about 3X faster than the new `BestSpeed`
+but at the cost of producing compressed outputs that are 20-40% larger than those
+generated by the new `BestSpeed`.
 
-    It is important to note that both
-    `BestSpeed` and `HuffmanOnly` produce a compressed output that is
-    [RFC 1951](https://tools.ietf.org/html/rfc1951) compliant.
-    In other words, any valid DEFLATE decompressor will continue to be able to decompress these outputs.
+It is important to note that both
+`BestSpeed` and `HuffmanOnly` produce a compressed output that is
+[RFC 1951](https://tools.ietf.org/html/rfc1951) compliant.
+In other words, any valid DEFLATE decompressor will continue to be able to decompress these outputs.
 
-    Lastly, there is a minor change to the decompressor's implementation of
-    [`io.Reader`](/pkg/io/#Reader). In previous versions,
-    the decompressor deferred reporting
-    [`io.EOF`](/pkg/io/#EOF) until exactly no more bytes could be read.
-    Now, it reports
-    [`io.EOF`](/pkg/io/#EOF) more eagerly when reading the last set of bytes.
+Lastly, there is a minor change to the decompressor's implementation of
+[`io.Reader`](/pkg/io/#Reader). In previous versions,
+the decompressor deferred reporting
+[`io.EOF`](/pkg/io/#EOF) until exactly no more bytes could be read.
+Now, it reports
+[`io.EOF`](/pkg/io/#EOF) more eagerly when reading the last set of bytes.
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   The TLS implementation sends the first few data packets on each connection
-    using small record sizes, gradually increasing to the TLS maximum record size.
-    This heuristic reduces the amount of data that must be received before
-    the first packet can be decrypted, improving communication latency over
-    low-bandwidth networks.
-    Setting
-    [`Config`](/pkg/crypto/tls/#Config)'s
-    `DynamicRecordSizingDisabled` field to true
-    forces the behavior of Go 1.6 and earlier, where packets are
-    as large as possible from the start of the connection.
+The TLS implementation sends the first few data packets on each connection
+using small record sizes, gradually increasing to the TLS maximum record size.
+This heuristic reduces the amount of data that must be received before
+the first packet can be decrypted, improving communication latency over
+low-bandwidth networks.
+Setting
+[`Config`](/pkg/crypto/tls/#Config)'s
+`DynamicRecordSizingDisabled` field to true
+forces the behavior of Go 1.6 and earlier, where packets are
+as large as possible from the start of the connection.
 
-    The TLS client now has optional, limited support for server-initiated renegotiation,
-    enabled by setting the
-    [`Config`](/pkg/crypto/tls/#Config)'s
-    `Renegotiation` field.
-    This is needed for connecting to many Microsoft Azure servers.
+The TLS client now has optional, limited support for server-initiated renegotiation,
+enabled by setting the
+[`Config`](/pkg/crypto/tls/#Config)'s
+`Renegotiation` field.
+This is needed for connecting to many Microsoft Azure servers.
 
-    The errors returned by the package now consistently begin with a
-    `tls:` prefix.
-    In past releases, some errors used a `crypto/tls:` prefix,
-    some used a `tls:` prefix, and some had no prefix at all.
+The errors returned by the package now consistently begin with a
+`tls:` prefix.
+In past releases, some errors used a `crypto/tls:` prefix,
+some used a `tls:` prefix, and some had no prefix at all.
 
-    When generating self-signed certificates, the package no longer sets the
-    “Authority Key Identifier” field by default.
+When generating self-signed certificates, the package no longer sets the
+“Authority Key Identifier” field by default.
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   The new function
-    [`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
-    provides access to the entire system certificate pool if available.
-    There is also a new associated error type
-    [`SystemRootsError`](/pkg/crypto/x509/#SystemRootsError).
+The new function
+[`SystemCertPool`](/pkg/crypto/x509/#SystemCertPool)
+provides access to the entire system certificate pool if available.
+There is also a new associated error type
+[`SystemRootsError`](/pkg/crypto/x509/#SystemRootsError).
 
-[debug/dwarf](/pkg/debug/dwarf/)
+#### [debug/dwarf](/pkg/debug/dwarf/)
 
-:   The
-    [`Reader`](/pkg/debug/dwarf/#Reader) type's new
-    [`SeekPC`](/pkg/debug/dwarf/#Reader.SeekPC) method and the
-    [`Data`](/pkg/debug/dwarf/#Data) type's new
-    [`Ranges`](/pkg/debug/dwarf/#Ranges) method
-    help to find the compilation unit to pass to a
-    [`LineReader`](/pkg/debug/dwarf/#LineReader)
-    and to identify the specific function for a given program counter.
+The
+[`Reader`](/pkg/debug/dwarf/#Reader) type's new
+[`SeekPC`](/pkg/debug/dwarf/#Reader.SeekPC) method and the
+[`Data`](/pkg/debug/dwarf/#Data) type's new
+[`Ranges`](/pkg/debug/dwarf/#Ranges) method
+help to find the compilation unit to pass to a
+[`LineReader`](/pkg/debug/dwarf/#LineReader)
+and to identify the specific function for a given program counter.
 
-[debug/elf](/pkg/debug/elf/)
+#### [debug/elf](/pkg/debug/elf/)
 
-:   The new
-    [`R_390`](/pkg/debug/elf/#R_390) relocation type
-    and its many predefined constants
-    support the S390 port.
+The new
+[`R_390`](/pkg/debug/elf/#R_390) relocation type
+and its many predefined constants
+support the S390 port.
 
-[encoding/asn1](/pkg/encoding/asn1/)
+#### [encoding/asn1](/pkg/encoding/asn1/)
 
-:   The ASN.1 decoder now rejects non-minimal integer encodings.
-    This may cause the package to reject some invalid but formerly accepted ASN.1 data.
+The ASN.1 decoder now rejects non-minimal integer encodings.
+This may cause the package to reject some invalid but formerly accepted ASN.1 data.
 
-[encoding/json](/pkg/encoding/json/)
+#### [encoding/json](/pkg/encoding/json/)
 
-:   The
-    [`Encoder`](/pkg/encoding/json/#Encoder)'s new
-    [`SetIndent`](/pkg/encoding/json/#Encoder.SetIndent) method
-    sets the indentation parameters for JSON encoding,
-    like in the top-level
-    [`Indent`](/pkg/encoding/json/#Indent) function.
+The
+[`Encoder`](/pkg/encoding/json/#Encoder)'s new
+[`SetIndent`](/pkg/encoding/json/#Encoder.SetIndent) method
+sets the indentation parameters for JSON encoding,
+like in the top-level
+[`Indent`](/pkg/encoding/json/#Indent) function.
 
-    The
-    [`Encoder`](/pkg/encoding/json/#Encoder)'s new
-    [`SetEscapeHTML`](/pkg/encoding/json/#Encoder.SetEscapeHTML) method
-    controls whether the
-    `&`, `<`, and `>`
-    characters in quoted strings should be escaped as
-    `\u0026`, `\u003c`, and `\u003e`,
-    respectively.
-    As in previous releases, the encoder defaults to applying this escaping,
-    to avoid certain problems that can arise when embedding JSON in HTML.
+The
+[`Encoder`](/pkg/encoding/json/#Encoder)'s new
+[`SetEscapeHTML`](/pkg/encoding/json/#Encoder.SetEscapeHTML) method
+controls whether the
+`&`, `<`, and `>`
+characters in quoted strings should be escaped as
+`\u0026`, `\u003c`, and `\u003e`,
+respectively.
+As in previous releases, the encoder defaults to applying this escaping,
+to avoid certain problems that can arise when embedding JSON in HTML.
 
-    In earlier versions of Go, this package only supported encoding and decoding
-    maps using keys with string types.
-    Go 1.7 adds support for maps using keys with integer types:
-    the encoding uses a quoted decimal representation as the JSON key.
-    Go 1.7 also adds support for encoding maps using non-string keys that implement
-    the `MarshalText`
-    (see
-    [`encoding.TextMarshaler`](/pkg/encoding/#TextMarshaler))
-    method,
-    as well as support for decoding maps using non-string keys that implement
-    the `UnmarshalText`
-    (see
-    [`encoding.TextUnmarshaler`](/pkg/encoding/#TextUnmarshaler))
-    method.
-    These methods are ignored for keys with string types in order to preserve
-    the encoding and decoding used in earlier versions of Go.
+In earlier versions of Go, this package only supported encoding and decoding
+maps using keys with string types.
+Go 1.7 adds support for maps using keys with integer types:
+the encoding uses a quoted decimal representation as the JSON key.
+Go 1.7 also adds support for encoding maps using non-string keys that implement
+the `MarshalText`
+(see
+[`encoding.TextMarshaler`](/pkg/encoding/#TextMarshaler))
+method,
+as well as support for decoding maps using non-string keys that implement
+the `UnmarshalText`
+(see
+[`encoding.TextUnmarshaler`](/pkg/encoding/#TextUnmarshaler))
+method.
+These methods are ignored for keys with string types in order to preserve
+the encoding and decoding used in earlier versions of Go.
 
-    When encoding a slice of typed bytes,
-    [`Marshal`](/pkg/encoding/json/#Marshal)
-    now generates an array of elements encoded using
-    that byte type's
-    `MarshalJSON`
-    or
-    `MarshalText`
-    method if present,
-    only falling back to the default base64-encoded string data if neither method is available.
-    Earlier versions of Go accept both the original base64-encoded string encoding
-    and the array encoding (assuming the byte type also implements
-    `UnmarshalJSON`
-    or
-    `UnmarshalText`
-    as appropriate),
-    so this change should be semantically backwards compatible with earlier versions of Go,
-    even though it does change the chosen encoding.
+When encoding a slice of typed bytes,
+[`Marshal`](/pkg/encoding/json/#Marshal)
+now generates an array of elements encoded using
+that byte type's
+`MarshalJSON`
+or
+`MarshalText`
+method if present,
+only falling back to the default base64-encoded string data if neither method is available.
+Earlier versions of Go accept both the original base64-encoded string encoding
+and the array encoding (assuming the byte type also implements
+`UnmarshalJSON`
+or
+`UnmarshalText`
+as appropriate),
+so this change should be semantically backwards compatible with earlier versions of Go,
+even though it does change the chosen encoding.
 
-[go/build](/pkg/go/build/)
+#### [go/build](/pkg/go/build/)
 
-:   To implement the go command's new support for binary-only packages
-    and for Fortran code in cgo-based packages,
-    the
-    [`Package`](/pkg/go/build/#Package) type
-    adds new fields `BinaryOnly`, `CgoFFLAGS`, and `FFiles`.
+To implement the go command's new support for binary-only packages
+and for Fortran code in cgo-based packages,
+the
+[`Package`](/pkg/go/build/#Package) type
+adds new fields `BinaryOnly`, `CgoFFLAGS`, and `FFiles`.
 
-[go/doc](/pkg/go/doc/)
+#### [go/doc](/pkg/go/doc/)
 
-:   To support the corresponding change in `go` `test` described above,
-    [`Example`](/pkg/go/doc/#Example) struct adds an Unordered field
-    indicating whether the example may generate its output lines in any order.
+To support the corresponding change in `go` `test` described above,
+[`Example`](/pkg/go/doc/#Example) struct adds an Unordered field
+indicating whether the example may generate its output lines in any order.
 
-[io](/pkg/io/)
+#### [io](/pkg/io/)
 
-:   The package adds new constants
-    `SeekStart`, `SeekCurrent`, and `SeekEnd`,
-    for use with
-    [`Seeker`](/pkg/io/#Seeker)
-    implementations.
-    These constants are preferred over `os.SEEK_SET`, `os.SEEK_CUR`, and `os.SEEK_END`,
-    but the latter will be preserved for compatibility.
+The package adds new constants
+`SeekStart`, `SeekCurrent`, and `SeekEnd`,
+for use with
+[`Seeker`](/pkg/io/#Seeker)
+implementations.
+These constants are preferred over `os.SEEK_SET`, `os.SEEK_CUR`, and `os.SEEK_END`,
+but the latter will be preserved for compatibility.
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   The
-    [`Float`](/pkg/math/big/#Float) type adds
-    [`GobEncode`](/pkg/math/big/#Float.GobEncode) and
-    [`GobDecode`](/pkg/math/big/#Float.GobDecode) methods,
-    so that values of type `Float` can now be encoded and decoded using the
-    [`encoding/gob`](/pkg/encoding/gob/)
-    package.
+The
+[`Float`](/pkg/math/big/#Float) type adds
+[`GobEncode`](/pkg/math/big/#Float.GobEncode) and
+[`GobDecode`](/pkg/math/big/#Float.GobDecode) methods,
+so that values of type `Float` can now be encoded and decoded using the
+[`encoding/gob`](/pkg/encoding/gob/)
+package.
 
-[math/rand](/pkg/math/rand/)
+#### [math/rand](/pkg/math/rand/)
 
-:   The
-    [`Read`](/pkg/math/rand/#Read) function and
-    [`Rand`](/pkg/math/rand/#Rand)'s
-    [`Read`](/pkg/math/rand/#Rand.Read) method
-    now produce a pseudo-random stream of bytes that is consistent and not
-    dependent on the size of the input buffer.
+The
+[`Read`](/pkg/math/rand/#Read) function and
+[`Rand`](/pkg/math/rand/#Rand)'s
+[`Read`](/pkg/math/rand/#Rand.Read) method
+now produce a pseudo-random stream of bytes that is consistent and not
+dependent on the size of the input buffer.
 
-    The documentation clarifies that
-    Rand's [`Seed`](/pkg/math/rand/#Rand.Seed)
-    and [`Read`](/pkg/math/rand/#Rand.Read) methods
-    are not safe to call concurrently, though the global
-    functions [`Seed`](/pkg/math/rand/#Seed)
-    and [`Read`](/pkg/math/rand/#Read) are (and have
-    always been) safe.
+The documentation clarifies that
+Rand's [`Seed`](/pkg/math/rand/#Rand.Seed)
+and [`Read`](/pkg/math/rand/#Rand.Read) methods
+are not safe to call concurrently, though the global
+functions [`Seed`](/pkg/math/rand/#Seed)
+and [`Read`](/pkg/math/rand/#Read) are (and have
+always been) safe.
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   The
-    [`Writer`](/pkg/mime/multipart/#Writer)
-    implementation now emits each multipart section's header sorted by key.
-    Previously, iteration over a map caused the section header to use a
-    non-deterministic order.
+The
+[`Writer`](/pkg/mime/multipart/#Writer)
+implementation now emits each multipart section's header sorted by key.
+Previously, iteration over a map caused the section header to use a
+non-deterministic order.
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   As part of the introduction of [context](#context), the
-    [`Dialer`](/pkg/net/#Dialer) type has a new method
-    [`DialContext`](/pkg/net/#Dialer.DialContext), like
-    [`Dial`](/pkg/net/#Dialer.Dial) but adding the
-    [`context.Context`](/pkg/context/#Context)
-    for the dial operation.
-    The context is intended to obsolete the `Dialer`'s
-    `Cancel` and `Deadline` fields,
-    but the implementation continues to respect them,
-    for backwards compatibility.
+As part of the introduction of [context](#context), the
+[`Dialer`](/pkg/net/#Dialer) type has a new method
+[`DialContext`](/pkg/net/#Dialer.DialContext), like
+[`Dial`](/pkg/net/#Dialer.Dial) but adding the
+[`context.Context`](/pkg/context/#Context)
+for the dial operation.
+The context is intended to obsolete the `Dialer`'s
+`Cancel` and `Deadline` fields,
+but the implementation continues to respect them,
+for backwards compatibility.
 
-    The
-    [`IP`](/pkg/net/#IP) type's
-    [`String`](/pkg/net/#IP.String) method has changed its result for invalid `IP` addresses.
-    In past releases, if an `IP` byte slice had length other than 0, 4, or 16, `String`
-    returned `"?"`.
-    Go 1.7 adds the hexadecimal encoding of the bytes, as in `"?12ab"`.
+The
+[`IP`](/pkg/net/#IP) type's
+[`String`](/pkg/net/#IP.String) method has changed its result for invalid `IP` addresses.
+In past releases, if an `IP` byte slice had length other than 0, 4, or 16, `String`
+returned `"?"`.
+Go 1.7 adds the hexadecimal encoding of the bytes, as in `"?12ab"`.
 
-    The pure Go [name resolution](/pkg/net/#hdr-Name_Resolution)
-    implementation now respects `nsswitch.conf`'s
-    stated preference for the priority of DNS lookups compared to
-    local file (that is, `/etc/hosts`) lookups.
+The pure Go [name resolution](/pkg/net/#hdr-Name_Resolution)
+implementation now respects `nsswitch.conf`'s
+stated preference for the priority of DNS lookups compared to
+local file (that is, `/etc/hosts`) lookups.
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   [`ResponseWriter`](/pkg/net/http/#ResponseWriter)'s
-    documentation now makes clear that beginning to write the response
-    may prevent future reads on the request body.
-    For maximal compatibility, implementations are encouraged to
-    read the request body completely before writing any part of the response.
+[`ResponseWriter`](/pkg/net/http/#ResponseWriter)'s
+documentation now makes clear that beginning to write the response
+may prevent future reads on the request body.
+For maximal compatibility, implementations are encouraged to
+read the request body completely before writing any part of the response.
 
-    As part of the introduction of [context](#context), the
-    [`Request`](/pkg/net/http/#Request) has a new methods
-    [`Context`](/pkg/net/http/#Request.Context), to retrieve the associated context, and
-    [`WithContext`](/pkg/net/http/#Request.WithContext), to construct a copy of `Request`
-    with a modified context.
+As part of the introduction of [context](#context), the
+[`Request`](/pkg/net/http/#Request) has a new methods
+[`Context`](/pkg/net/http/#Request.Context), to retrieve the associated context, and
+[`WithContext`](/pkg/net/http/#Request.WithContext), to construct a copy of `Request`
+with a modified context.
 
-    In the
-    [`Server`](/pkg/net/http/#Server) implementation,
-    [`Serve`](/pkg/net/http/#Server.Serve) records in the request context
-    both the underlying `*Server` using the key `ServerContextKey`
-    and the local address on which the request was received (a
-    [`Addr`](/pkg/net/#Addr)) using the key `LocalAddrContextKey`.
-    For example, the address on which a request received is
-    `req.Context().Value(http.LocalAddrContextKey).(net.Addr)`.
+In the
+[`Server`](/pkg/net/http/#Server) implementation,
+[`Serve`](/pkg/net/http/#Server.Serve) records in the request context
+both the underlying `*Server` using the key `ServerContextKey`
+and the local address on which the request was received (a
+[`Addr`](/pkg/net/#Addr)) using the key `LocalAddrContextKey`.
+For example, the address on which a request received is
+`req.Context().Value(http.LocalAddrContextKey).(net.Addr)`.
 
-    The server's [`Serve`](/pkg/net/http/#Server.Serve) method
-    now only enables HTTP/2 support if the `Server.TLSConfig` field is `nil`
-    or includes `"h2"` in its `TLSConfig.NextProtos`.
+The server's [`Serve`](/pkg/net/http/#Server.Serve) method
+now only enables HTTP/2 support if the `Server.TLSConfig` field is `nil`
+or includes `"h2"` in its `TLSConfig.NextProtos`.
 
-    The server implementation now
-    pads response codes less than 100 to three digits
-    as required by the protocol,
-    so that `w.WriteHeader(5)` uses the HTTP response
-    status `005`, not just `5`.
+The server implementation now
+pads response codes less than 100 to three digits
+as required by the protocol,
+so that `w.WriteHeader(5)` uses the HTTP response
+status `005`, not just `5`.
 
-    The server implementation now correctly sends only one "Transfer-Encoding" header when "chunked"
-    is set explicitly, following [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.3.1).
+The server implementation now correctly sends only one "Transfer-Encoding" header when "chunked"
+is set explicitly, following [RFC 7230](https://tools.ietf.org/html/rfc7230#section-3.3.1).
 
-    The server implementation is now stricter about rejecting requests with invalid HTTP versions.
-    Invalid requests claiming to be HTTP/0.x are now rejected (HTTP/0.9 was never fully supported),
-    and plaintext HTTP/2 requests other than the "PRI \* HTTP/2.0" upgrade request are now rejected as well.
-    The server continues to handle encrypted HTTP/2 requests.
+The server implementation is now stricter about rejecting requests with invalid HTTP versions.
+Invalid requests claiming to be HTTP/0.x are now rejected (HTTP/0.9 was never fully supported),
+and plaintext HTTP/2 requests other than the "PRI \* HTTP/2.0" upgrade request are now rejected as well.
+The server continues to handle encrypted HTTP/2 requests.
 
-    In the server, a 200 status code is sent back by the timeout handler on an empty
-    response body, instead of sending back 0 as the status code.
+In the server, a 200 status code is sent back by the timeout handler on an empty
+response body, instead of sending back 0 as the status code.
 
-    In the client, the
-    [`Transport`](/pkg/net/http/#Transport) implementation passes the request context
-    to any dial operation connecting to the remote server.
-    If a custom dialer is needed, the new `Transport` field
-    `DialContext` is preferred over the existing `Dial` field,
-    to allow the transport to supply a context.
+In the client, the
+[`Transport`](/pkg/net/http/#Transport) implementation passes the request context
+to any dial operation connecting to the remote server.
+If a custom dialer is needed, the new `Transport` field
+`DialContext` is preferred over the existing `Dial` field,
+to allow the transport to supply a context.
 
-    The
-    [`Transport`](/pkg/net/http/#Transport) also adds fields
-    `IdleConnTimeout`,
-    `MaxIdleConns`,
-    and
-    `MaxResponseHeaderBytes`
-    to help control client resources consumed
-    by idle or chatty servers.
+The
+[`Transport`](/pkg/net/http/#Transport) also adds fields
+`IdleConnTimeout`,
+`MaxIdleConns`,
+and
+`MaxResponseHeaderBytes`
+to help control client resources consumed
+by idle or chatty servers.
 
-    A
-    [`Client`](/pkg/net/http/#Client)'s configured `CheckRedirect` function can now
-    return `ErrUseLastResponse` to indicate that the
-    most recent redirect response should be returned as the
-    result of the HTTP request.
-    That response is now available to the `CheckRedirect` function
-    as `req.Response`.
+A
+[`Client`](/pkg/net/http/#Client)'s configured `CheckRedirect` function can now
+return `ErrUseLastResponse` to indicate that the
+most recent redirect response should be returned as the
+result of the HTTP request.
+That response is now available to the `CheckRedirect` function
+as `req.Response`.
 
-    Since Go 1, the default behavior of the HTTP client is
-    to request server-side compression
-    using the `Accept-Encoding` request header
-    and then to decompress the response body transparently,
-    and this behavior is adjustable using the
-    [`Transport`](/pkg/net/http/#Transport)'s `DisableCompression` field.
-    In Go 1.7, to aid the implementation of HTTP proxies, the
-    [`Response`](/pkg/net/http/#Response)'s new
-    `Uncompressed` field reports whether
-    this transparent decompression took place.
+Since Go 1, the default behavior of the HTTP client is
+to request server-side compression
+using the `Accept-Encoding` request header
+and then to decompress the response body transparently,
+and this behavior is adjustable using the
+[`Transport`](/pkg/net/http/#Transport)'s `DisableCompression` field.
+In Go 1.7, to aid the implementation of HTTP proxies, the
+[`Response`](/pkg/net/http/#Response)'s new
+`Uncompressed` field reports whether
+this transparent decompression took place.
 
-    [`DetectContentType`](/pkg/net/http/#DetectContentType)
-    adds support for a few new audio and video content types.
+[`DetectContentType`](/pkg/net/http/#DetectContentType)
+adds support for a few new audio and video content types.
 
-[net/http/cgi](/pkg/net/http/cgi/)
+#### [net/http/cgi](/pkg/net/http/cgi/)
 
-:   The
-    [`Handler`](/pkg/net/http/cgi/#Handler)
-    adds a new field
-    `Stderr`
-    that allows redirection of the child process's
-    standard error away from the host process's
-    standard error.
+The
+[`Handler`](/pkg/net/http/cgi/#Handler)
+adds a new field
+`Stderr`
+that allows redirection of the child process's
+standard error away from the host process's
+standard error.
 
-[net/http/httptest](/pkg/net/http/httptest/)
+#### [net/http/httptest](/pkg/net/http/httptest/)
 
-:   The new function
-    [`NewRequest`](/pkg/net/http/httptest/#NewRequest)
-    prepares a new
-    [`http.Request`](/pkg/net/http/#Request)
-    suitable for passing to an
-    [`http.Handler`](/pkg/net/http/#Handler) during a test.
+The new function
+[`NewRequest`](/pkg/net/http/httptest/#NewRequest)
+prepares a new
+[`http.Request`](/pkg/net/http/#Request)
+suitable for passing to an
+[`http.Handler`](/pkg/net/http/#Handler) during a test.
 
-    The
-    [`ResponseRecorder`](/pkg/net/http/httptest/#ResponseRecorder)'s new
-    [`Result`](/pkg/net/http/httptest/#ResponseRecorder.Result) method
-    returns the recorded
-    [`http.Response`](/pkg/net/http/#Response).
-    Tests that need to check the response's headers or trailers
-    should call `Result` and inspect the response fields
-    instead of accessing
-    `ResponseRecorder`'s `HeaderMap` directly.
+The
+[`ResponseRecorder`](/pkg/net/http/httptest/#ResponseRecorder)'s new
+[`Result`](/pkg/net/http/httptest/#ResponseRecorder.Result) method
+returns the recorded
+[`http.Response`](/pkg/net/http/#Response).
+Tests that need to check the response's headers or trailers
+should call `Result` and inspect the response fields
+instead of accessing
+`ResponseRecorder`'s `HeaderMap` directly.
 
-[net/http/httputil](/pkg/net/http/httputil/)
+#### [net/http/httputil](/pkg/net/http/httputil/)
 
-:   The
-    [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy) implementation now responds with “502 Bad Gateway”
-    when it cannot reach a back end; in earlier releases it responded with “500 Internal Server Error.”
+The
+[`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy) implementation now responds with “502 Bad Gateway”
+when it cannot reach a back end; in earlier releases it responded with “500 Internal Server Error.”
 
-    Both
-    [`ClientConn`](/pkg/net/http/httputil/#ClientConn) and
-    [`ServerConn`](/pkg/net/http/httputil/#ServerConn) have been documented as deprecated.
-    They are low-level, old, and unused by Go's current HTTP stack
-    and will no longer be updated.
-    Programs should use
-    [`http.Client`](/pkg/net/http/#Client),
-    [`http.Transport`](/pkg/net/http/#Transport),
-    and
-    [`http.Server`](/pkg/net/http/#Server)
-    instead.
+Both
+[`ClientConn`](/pkg/net/http/httputil/#ClientConn) and
+[`ServerConn`](/pkg/net/http/httputil/#ServerConn) have been documented as deprecated.
+They are low-level, old, and unused by Go's current HTTP stack
+and will no longer be updated.
+Programs should use
+[`http.Client`](/pkg/net/http/#Client),
+[`http.Transport`](/pkg/net/http/#Transport),
+and
+[`http.Server`](/pkg/net/http/#Server)
+instead.
 
-[net/http/pprof](/pkg/net/http/pprof/)
+#### [net/http/pprof](/pkg/net/http/pprof/)
 
-:   The runtime trace HTTP handler, installed to handle the path `/debug/pprof/trace`,
-    now accepts a fractional number in its `seconds` query parameter,
-    allowing collection of traces for intervals smaller than one second.
-    This is especially useful on busy servers.
+The runtime trace HTTP handler, installed to handle the path `/debug/pprof/trace`,
+now accepts a fractional number in its `seconds` query parameter,
+allowing collection of traces for intervals smaller than one second.
+This is especially useful on busy servers.
 
-[net/mail](/pkg/net/mail/)
+#### [net/mail](/pkg/net/mail/)
 
-:   The address parser now allows unescaped UTF-8 text in addresses
-    following [RFC 6532](https://tools.ietf.org/html/rfc6532),
-    but it does not apply any normalization to the result.
-    For compatibility with older mail parsers,
-    the address encoder, namely
-    [`Address`](/pkg/net/mail/#Address)'s
-    [`String`](/pkg/net/mail/#Address.String) method,
-    continues to escape all UTF-8 text following [RFC 5322](https://tools.ietf.org/html/rfc5322).
+The address parser now allows unescaped UTF-8 text in addresses
+following [RFC 6532](https://tools.ietf.org/html/rfc6532),
+but it does not apply any normalization to the result.
+For compatibility with older mail parsers,
+the address encoder, namely
+[`Address`](/pkg/net/mail/#Address)'s
+[`String`](/pkg/net/mail/#Address.String) method,
+continues to escape all UTF-8 text following [RFC 5322](https://tools.ietf.org/html/rfc5322).
 
-    The [`ParseAddress`](/pkg/net/mail/#ParseAddress)
-    function and
-    the [`AddressParser.Parse`](/pkg/net/mail/#AddressParser.Parse)
-    method are stricter.
-    They used to ignore any characters following an e-mail address, but
-    will now return an error for anything other than whitespace.
+The [`ParseAddress`](/pkg/net/mail/#ParseAddress)
+function and
+the [`AddressParser.Parse`](/pkg/net/mail/#AddressParser.Parse)
+method are stricter.
+They used to ignore any characters following an e-mail address, but
+will now return an error for anything other than whitespace.
 
-[net/url](/pkg/net/url/)
+#### [net/url](/pkg/net/url/)
 
-:   The
-    [`URL`](/pkg/net/url/#URL)'s
-    new `ForceQuery` field
-    records whether the URL must have a query string,
-    in order to distinguish URLs without query strings (like `/search`)
-    from URLs with empty query strings (like `/search?`).
+The
+[`URL`](/pkg/net/url/#URL)'s
+new `ForceQuery` field
+records whether the URL must have a query string,
+in order to distinguish URLs without query strings (like `/search`)
+from URLs with empty query strings (like `/search?`).
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   [`IsExist`](/pkg/os/#IsExist) now returns true for `syscall.ENOTEMPTY`,
-    on systems where that error exists.
+[`IsExist`](/pkg/os/#IsExist) now returns true for `syscall.ENOTEMPTY`,
+on systems where that error exists.
 
-    On Windows,
-    [`Remove`](/pkg/os/#Remove) now removes read-only files when possible,
-    making the implementation behave as on
-    non-Windows systems.
+On Windows,
+[`Remove`](/pkg/os/#Remove) now removes read-only files when possible,
+making the implementation behave as on
+non-Windows systems.
 
-[os/exec](/pkg/os/exec/)
+#### [os/exec](/pkg/os/exec/)
 
-:   As part of the introduction of [context](#context),
-    the new constructor
-    [`CommandContext`](/pkg/os/exec/#CommandContext)
-    is like
-    [`Command`](/pkg/os/exec/#Command) but includes a context that can be used to cancel the command execution.
+As part of the introduction of [context](#context),
+the new constructor
+[`CommandContext`](/pkg/os/exec/#CommandContext)
+is like
+[`Command`](/pkg/os/exec/#Command) but includes a context that can be used to cancel the command execution.
 
-[os/user](/pkg/os/user/)
+#### [os/user](/pkg/os/user/)
 
-:   The
-    [`Current`](/pkg/os/user/#Current)
-    function is now implemented even when cgo is not available.
+The
+[`Current`](/pkg/os/user/#Current)
+function is now implemented even when cgo is not available.
 
-    The new
-    [`Group`](/pkg/os/user/#Group) type,
-    along with the lookup functions
-    [`LookupGroup`](/pkg/os/user/#LookupGroup) and
-    [`LookupGroupId`](/pkg/os/user/#LookupGroupId)
-    and the new field `GroupIds` in the `User` struct,
-    provides access to system-specific user group information.
+The new
+[`Group`](/pkg/os/user/#Group) type,
+along with the lookup functions
+[`LookupGroup`](/pkg/os/user/#LookupGroup) and
+[`LookupGroupId`](/pkg/os/user/#LookupGroupId)
+and the new field `GroupIds` in the `User` struct,
+provides access to system-specific user group information.
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   Although
-    [`Value`](/pkg/reflect/#Value)'s
-    [`Field`](/pkg/reflect/#Value.Field) method has always been documented to panic
-    if the given field number `i` is out of range, it has instead
-    silently returned a zero
-    [`Value`](/pkg/reflect/#Value).
-    Go 1.7 changes the method to behave as documented.
+Although
+[`Value`](/pkg/reflect/#Value)'s
+[`Field`](/pkg/reflect/#Value.Field) method has always been documented to panic
+if the given field number `i` is out of range, it has instead
+silently returned a zero
+[`Value`](/pkg/reflect/#Value).
+Go 1.7 changes the method to behave as documented.
 
-    The new
-    [`StructOf`](/pkg/reflect/#StructOf)
-    function constructs a struct type at run time.
-    It completes the set of type constructors, joining
-    [`ArrayOf`](/pkg/reflect/#ArrayOf),
-    [`ChanOf`](/pkg/reflect/#ChanOf),
-    [`FuncOf`](/pkg/reflect/#FuncOf),
-    [`MapOf`](/pkg/reflect/#MapOf),
-    [`PtrTo`](/pkg/reflect/#PtrTo),
-    and
-    [`SliceOf`](/pkg/reflect/#SliceOf).
+The new
+[`StructOf`](/pkg/reflect/#StructOf)
+function constructs a struct type at run time.
+It completes the set of type constructors, joining
+[`ArrayOf`](/pkg/reflect/#ArrayOf),
+[`ChanOf`](/pkg/reflect/#ChanOf),
+[`FuncOf`](/pkg/reflect/#FuncOf),
+[`MapOf`](/pkg/reflect/#MapOf),
+[`PtrTo`](/pkg/reflect/#PtrTo),
+and
+[`SliceOf`](/pkg/reflect/#SliceOf).
 
-    [`StructTag`](/pkg/reflect/#StructTag)'s
-    new method
-    [`Lookup`](/pkg/reflect/#StructTag.Lookup)
-    is like
-    [`Get`](/pkg/reflect/#StructTag.Get)
-    but distinguishes the tag not containing the given key
-    from the tag associating an empty string with the given key.
+[`StructTag`](/pkg/reflect/#StructTag)'s
+new method
+[`Lookup`](/pkg/reflect/#StructTag.Lookup)
+is like
+[`Get`](/pkg/reflect/#StructTag.Get)
+but distinguishes the tag not containing the given key
+from the tag associating an empty string with the given key.
 
-    The
-    [`Method`](/pkg/reflect/#Type.Method) and
-    [`NumMethod`](/pkg/reflect/#Type.NumMethod)
-    methods of
-    [`Type`](/pkg/reflect/#Type) and
-    [`Value`](/pkg/reflect/#Value)
-    no longer return or count unexported methods.
+The
+[`Method`](/pkg/reflect/#Type.Method) and
+[`NumMethod`](/pkg/reflect/#Type.NumMethod)
+methods of
+[`Type`](/pkg/reflect/#Type) and
+[`Value`](/pkg/reflect/#Value)
+no longer return or count unexported methods.
 
-[strings](/pkg/strings/)
+#### [strings](/pkg/strings/)
 
-:   In previous releases of Go, if
-    [`Reader`](/pkg/strings/#Reader)'s
-    [`Read`](/pkg/strings/#Reader.Read) method
-    were asked for zero bytes with no data remaining, it would
-    return a count of 0 and no error.
-    Now it returns a count of 0 and the error
-    [`io.EOF`](/pkg/io/#EOF).
+In previous releases of Go, if
+[`Reader`](/pkg/strings/#Reader)'s
+[`Read`](/pkg/strings/#Reader.Read) method
+were asked for zero bytes with no data remaining, it would
+return a count of 0 and no error.
+Now it returns a count of 0 and the error
+[`io.EOF`](/pkg/io/#EOF).
 
-    The
-    [`Reader`](/pkg/strings/#Reader) type has a new method
-    [`Reset`](/pkg/strings/#Reader.Reset) to allow reuse of a `Reader`.
+The
+[`Reader`](/pkg/strings/#Reader) type has a new method
+[`Reset`](/pkg/strings/#Reader.Reset) to allow reuse of a `Reader`.
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   [`Duration`](/pkg/time/#Duration)'s
-    time.Duration.String method now reports the zero duration as `"0s"`, not `"0"`.
-    [`ParseDuration`](/pkg/time/#ParseDuration) continues to accept both forms.
+[`Duration`](/pkg/time/#Duration)'s
+time.Duration.String method now reports the zero duration as `"0s"`, not `"0"`.
+[`ParseDuration`](/pkg/time/#ParseDuration) continues to accept both forms.
 
-    The method call `time.Local.String()` now returns `"Local"` on all systems;
-    in earlier releases, it returned an empty string on Windows.
+The method call `time.Local.String()` now returns `"Local"` on all systems;
+in earlier releases, it returned an empty string on Windows.
 
-    The time zone database in
-    `$GOROOT/lib/time` has been updated
-    to IANA release 2016d.
-    This fallback database is only used when the system time zone database
-    cannot be found, for example on Windows.
-    The Windows time zone abbreviation list has also been updated.
+The time zone database in
+`$GOROOT/lib/time` has been updated
+to IANA release 2016d.
+This fallback database is only used when the system time zone database
+cannot be found, for example on Windows.
+The Windows time zone abbreviation list has also been updated.
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   On Linux, the
-    [`SysProcAttr`](/pkg/syscall/#SysProcAttr) struct
-    (as used in
-    [`os/exec.Cmd`](/pkg/os/exec/#Cmd)'s `SysProcAttr` field)
-    has a new `Unshareflags` field.
-    If the field is nonzero, the child process created by
-    [`ForkExec`](/pkg/syscall/#ForkExec)
-    (as used in `exec.Cmd`'s `Run` method)
-    will call the
-    [_unshare_(2)](https://man7.org/linux/man-pages/man2/unshare.2.html)
-    system call before executing the new program.
+On Linux, the
+[`SysProcAttr`](/pkg/syscall/#SysProcAttr) struct
+(as used in
+[`os/exec.Cmd`](/pkg/os/exec/#Cmd)'s `SysProcAttr` field)
+has a new `Unshareflags` field.
+If the field is nonzero, the child process created by
+[`ForkExec`](/pkg/syscall/#ForkExec)
+(as used in `exec.Cmd`'s `Run` method)
+will call the
+[_unshare_(2)](https://man7.org/linux/man-pages/man2/unshare.2.html)
+system call before executing the new program.
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   The [`unicode`](/pkg/unicode/) package and associated
-    support throughout the system has been upgraded from version 8.0 to
-    [Unicode 9.0](https://www.unicode.org/versions/Unicode9.0.0/).
+The [`unicode`](/pkg/unicode/) package and associated
+support throughout the system has been upgraded from version 8.0 to
+[Unicode 9.0](https://www.unicode.org/versions/Unicode9.0.0/).
diff --git a/_content/doc/go1.8.md b/_content/doc/go1.8.md
index d064f7e..ccbeec5 100644
--- a/_content/doc/go1.8.md
+++ b/_content/doc/go1.8.md
@@ -550,768 +550,768 @@
 in mind. The following sections list the user visible changes and additions.
 Optimizations and minor bug fixes are not listed.
 
-[archive/tar](/pkg/archive/tar/)
+#### [archive/tar](/pkg/archive/tar/)
 
-:   <!-- CL 28471, CL 31440, CL 31441, CL 31444, CL 28418, CL 31439 -->
-    The tar implementation corrects many bugs in corner cases of the file format.
-    The [`Reader`](/pkg/archive/tar/#Reader)
-    is now able to process tar files in the PAX format with entries larger than 8GB.
-    The [`Writer`](/pkg/archive/tar/#Writer)
-    no longer produces invalid tar files in some situations involving long pathnames.
+<!-- CL 28471, CL 31440, CL 31441, CL 31444, CL 28418, CL 31439 -->
+The tar implementation corrects many bugs in corner cases of the file format.
+The [`Reader`](/pkg/archive/tar/#Reader)
+is now able to process tar files in the PAX format with entries larger than 8GB.
+The [`Writer`](/pkg/archive/tar/#Writer)
+no longer produces invalid tar files in some situations involving long pathnames.
 
-[compress/flate](/pkg/compress/flate/)
+#### [compress/flate](/pkg/compress/flate/)
 
-:   <!-- CL 31640, CL 31174, CL 32149 -->
-    There have been some minor fixes to the encoder to improve the
-    compression ratio in certain situations. As a result, the exact
-    encoded output of `DEFLATE` may be different from Go 1.7. Since
-    `DEFLATE` is the underlying compression of gzip, png, zlib, and zip,
-    those formats may have changed outputs.
+<!-- CL 31640, CL 31174, CL 32149 -->
+There have been some minor fixes to the encoder to improve the
+compression ratio in certain situations. As a result, the exact
+encoded output of `DEFLATE` may be different from Go 1.7. Since
+`DEFLATE` is the underlying compression of gzip, png, zlib, and zip,
+those formats may have changed outputs.
 
-    <!-- CL 31174 -->
-    The encoder, when operating in
-    [`NoCompression`](/pkg/compress/flate/#NoCompression)
-    mode, now produces a consistent output that is not dependent on
-    the size of the slices passed to the
-    [`Write`](/pkg/compress/flate/#Writer.Write)
-    method.
+<!-- CL 31174 -->
+The encoder, when operating in
+[`NoCompression`](/pkg/compress/flate/#NoCompression)
+mode, now produces a consistent output that is not dependent on
+the size of the slices passed to the
+[`Write`](/pkg/compress/flate/#Writer.Write)
+method.
 
-    <!-- CL 28216 -->
-    The decoder, upon encountering an error, now returns any
-    buffered data it had uncompressed along with the error.
+<!-- CL 28216 -->
+The decoder, upon encountering an error, now returns any
+buffered data it had uncompressed along with the error.
 
-[compress/gzip](/pkg/compress/gzip/)
+#### [compress/gzip](/pkg/compress/gzip/)
 
-:   The [`Writer`](/pkg/compress/gzip/#Writer)
-    now encodes a zero `MTIME` field when
-    the [`Header.ModTime`](/pkg/compress/gzip/#Header)
-    field is the zero value.
-    In previous releases of Go, the `Writer` would encode
-    a nonsensical value.
-    Similarly,
-    the [`Reader`](/pkg/compress/gzip/#Reader)
-    now reports a zero encoded `MTIME` field as a zero
-    `Header.ModTime`.
+The [`Writer`](/pkg/compress/gzip/#Writer)
+now encodes a zero `MTIME` field when
+the [`Header.ModTime`](/pkg/compress/gzip/#Header)
+field is the zero value.
+In previous releases of Go, the `Writer` would encode
+a nonsensical value.
+Similarly,
+the [`Reader`](/pkg/compress/gzip/#Reader)
+now reports a zero encoded `MTIME` field as a zero
+`Header.ModTime`.
 
-[context](/pkg/context/)
+#### [context](/pkg/context/)
 
-:   <!-- CL 30370 -->
-    The [`DeadlineExceeded`](/pkg/context#DeadlineExceeded)
-    error now implements
-    [`net.Error`](/pkg/net/#Error)
-    and reports true for both the `Timeout` and
-    `Temporary` methods.
+<!-- CL 30370 -->
+The [`DeadlineExceeded`](/pkg/context#DeadlineExceeded)
+error now implements
+[`net.Error`](/pkg/net/#Error)
+and reports true for both the `Timeout` and
+`Temporary` methods.
 
-[crypto/tls](/pkg/crypto/tls/)
+#### [crypto/tls](/pkg/crypto/tls/)
 
-:   <!-- CL 25159, CL 31318 -->
-    The new method
-    [`Conn.CloseWrite`](/pkg/crypto/tls/#Conn.CloseWrite)
-    allows TLS connections to be half closed.
+<!-- CL 25159, CL 31318 -->
+The new method
+[`Conn.CloseWrite`](/pkg/crypto/tls/#Conn.CloseWrite)
+allows TLS connections to be half closed.
 
-    <!-- CL 28075 -->
-    The new method
-    [`Config.Clone`](/pkg/crypto/tls/#Config.Clone)
-    clones a TLS configuration.
+<!-- CL 28075 -->
+The new method
+[`Config.Clone`](/pkg/crypto/tls/#Config.Clone)
+clones a TLS configuration.
 
-    <!-- CL 30790 -->
-    The new [`Config.GetConfigForClient`](/pkg/crypto/tls/#Config.GetConfigForClient)
-    callback allows selecting a configuration for a client dynamically, based
-    on the client's
-    [`ClientHelloInfo`](/pkg/crypto/tls/#ClientHelloInfo). <!-- CL 31391, CL 32119 -->
-    The [`ClientHelloInfo`](/pkg/crypto/tls/#ClientHelloInfo)
-    struct now has new
-    fields `Conn`, `SignatureSchemes` (using
-    the new
-    type [`SignatureScheme`](/kg/crypto/tls/#SignatureScheme)),
-    `SupportedProtos`, and `SupportedVersions`.
+<!-- CL 30790 -->
+The new [`Config.GetConfigForClient`](/pkg/crypto/tls/#Config.GetConfigForClient)
+callback allows selecting a configuration for a client dynamically, based
+on the client's
+[`ClientHelloInfo`](/pkg/crypto/tls/#ClientHelloInfo). <!-- CL 31391, CL 32119 -->
+The [`ClientHelloInfo`](/pkg/crypto/tls/#ClientHelloInfo)
+struct now has new
+fields `Conn`, `SignatureSchemes` (using
+the new
+type [`SignatureScheme`](/kg/crypto/tls/#SignatureScheme)),
+`SupportedProtos`, and `SupportedVersions`.
 
-    <!-- CL 32115 -->
-    The new [`Config.GetClientCertificate`](/pkg/crypto/tls/#Config.GetClientCertificate)
-    callback allows selecting a client certificate based on the server's
-    TLS `CertificateRequest` message, represented by the new
-    [`CertificateRequestInfo`](/pkg/crypto/tls/#CertificateRequestInfo).
+<!-- CL 32115 -->
+The new [`Config.GetClientCertificate`](/pkg/crypto/tls/#Config.GetClientCertificate)
+callback allows selecting a client certificate based on the server's
+TLS `CertificateRequest` message, represented by the new
+[`CertificateRequestInfo`](/pkg/crypto/tls/#CertificateRequestInfo).
 
-    <!-- CL 27434 -->
-    The new
-    [`Config.KeyLogWriter`](/pkg/crypto/tls/#Config.KeyLogWriter)
-    allows debugging TLS connections
-    in [WireShark](https://www.wireshark.org/) and
-    similar tools.
+<!-- CL 27434 -->
+The new
+[`Config.KeyLogWriter`](/pkg/crypto/tls/#Config.KeyLogWriter)
+allows debugging TLS connections
+in [WireShark](https://www.wireshark.org/) and
+similar tools.
 
-    <!-- CL 32115 -->
-    The new
-    [`Config.VerifyPeerCertificate`](/pkg/crypto/tls/#Config.VerifyPeerCertificate)
-    callback allows additional validation of a peer's presented certificate.
+<!-- CL 32115 -->
+The new
+[`Config.VerifyPeerCertificate`](/pkg/crypto/tls/#Config.VerifyPeerCertificate)
+callback allows additional validation of a peer's presented certificate.
 
-    <!-- CL 18130 -->
-    The `crypto/tls` package now implements basic
-    countermeasures against CBC padding oracles. There should be
-    no explicit secret-dependent timings, but it does not attempt to
-    normalize memory accesses to prevent cache timing leaks.
+<!-- CL 18130 -->
+The `crypto/tls` package now implements basic
+countermeasures against CBC padding oracles. There should be
+no explicit secret-dependent timings, but it does not attempt to
+normalize memory accesses to prevent cache timing leaks.
 
-    The `crypto/tls` package now supports
-    X25519 and <!-- CL 30824, CL 30825 -->
-    ChaCha20-Poly1305. <!-- CL 30957, CL 30958 -->
-    ChaCha20-Poly1305 is now prioritized unless <!-- CL 32871 -->
-    hardware support for AES-GCM is present.
+The `crypto/tls` package now supports
+X25519 and <!-- CL 30824, CL 30825 -->
+ChaCha20-Poly1305. <!-- CL 30957, CL 30958 -->
+ChaCha20-Poly1305 is now prioritized unless <!-- CL 32871 -->
+hardware support for AES-GCM is present.
 
-    <!-- CL 27315, CL 35290 -->
-    AES-128-CBC cipher suites with SHA-256 are also
-    now supported, but disabled by default.
+<!-- CL 27315, CL 35290 -->
+AES-128-CBC cipher suites with SHA-256 are also
+now supported, but disabled by default.
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 24743 -->
-    PSS signatures are now supported.
+<!-- CL 24743 -->
+PSS signatures are now supported.
 
-    <!-- CL 32644 -->
-    [`UnknownAuthorityError`](/pkg/crypto/x509/#UnknownAuthorityError)
-    now has a `Cert` field, reporting the untrusted
-    certificate.
+<!-- CL 32644 -->
+[`UnknownAuthorityError`](/pkg/crypto/x509/#UnknownAuthorityError)
+now has a `Cert` field, reporting the untrusted
+certificate.
 
-    Certificate validation is more permissive in a few cases and
-    stricter in a few other cases. <!--
-    crypto/x509: allow a leaf certificate to be specified directly as root (CL 27393)
-    crypto/x509: check that the issuer name matches the issuer's subject name (CL 23571)
-    crypto/x509: don't accept a root that already appears in a chain. (CL 32121)
-    crypto/x509: fix name constraints handling (CL 30155)
-    crypto/x509: parse all names in an RDN (CL 30810)
-    crypto/x509: recognise ISO OID for RSA+SHA1 (CL 27394)
-    crypto/x509: require a NULL parameters for RSA public keys (CL 16166, CL 27312)
-    crypto/x509: return error for missing SerialNumber (CL 27238)
-    -->
+Certificate validation is more permissive in a few cases and
+stricter in a few other cases. <!--
+crypto/x509: allow a leaf certificate to be specified directly as root (CL 27393)
+crypto/x509: check that the issuer name matches the issuer's subject name (CL 23571)
+crypto/x509: don't accept a root that already appears in a chain. (CL 32121)
+crypto/x509: fix name constraints handling (CL 30155)
+crypto/x509: parse all names in an RDN (CL 30810)
+crypto/x509: recognise ISO OID for RSA+SHA1 (CL 27394)
+crypto/x509: require a NULL parameters for RSA public keys (CL 16166, CL 27312)
+crypto/x509: return error for missing SerialNumber (CL 27238)
+-->
 
-    <!-- CL 30375 -->
-    Root certificates will now also be looked for
-    at `/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem`
-    on Linux, to support RHEL and CentOS.
+<!-- CL 30375 -->
+Root certificates will now also be looked for
+at `/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem`
+on Linux, to support RHEL and CentOS.
 
-[database/sql](/pkg/database/sql/)
+#### [database/sql](/pkg/database/sql/)
 
-:   The package now supports `context.Context`. There are new methods
-    ending in `Context` such as
-    [`DB.QueryContext`](/pkg/database/sql/#DB.QueryContext) and
-    [`DB.PrepareContext`](/pkg/database/sql/#DB.PrepareContext)
-    that take context arguments. Using the new `Context` methods ensures that
-    connections are closed and returned to the connection pool when the
-    request is done; enables canceling in-progress queries
-    should the driver support that; and allows the database
-    pool to cancel waiting for the next available connection.
+The package now supports `context.Context`. There are new methods
+ending in `Context` such as
+[`DB.QueryContext`](/pkg/database/sql/#DB.QueryContext) and
+[`DB.PrepareContext`](/pkg/database/sql/#DB.PrepareContext)
+that take context arguments. Using the new `Context` methods ensures that
+connections are closed and returned to the connection pool when the
+request is done; enables canceling in-progress queries
+should the driver support that; and allows the database
+pool to cancel waiting for the next available connection.
 
-    The [`IsolationLevel`](/pkg/database/sql#IsolationLevel)
-    can now be set when starting a transaction by setting the isolation level
-    on [`TxOptions.Isolation`](/pkg/database/sql#TxOptions.Isolation) and passing
-    it to [`DB.BeginTx`](/pkg/database/sql#DB.BeginTx).
-    An error will be returned if an isolation level is selected that the driver
-    does not support. A read-only attribute may also be set on the transaction
-    by setting [`TxOptions.ReadOnly`](/pkg/database/sql/#TxOptions.ReadOnly)
-    to true.
+The [`IsolationLevel`](/pkg/database/sql#IsolationLevel)
+can now be set when starting a transaction by setting the isolation level
+on [`TxOptions.Isolation`](/pkg/database/sql#TxOptions.Isolation) and passing
+it to [`DB.BeginTx`](/pkg/database/sql#DB.BeginTx).
+An error will be returned if an isolation level is selected that the driver
+does not support. A read-only attribute may also be set on the transaction
+by setting [`TxOptions.ReadOnly`](/pkg/database/sql/#TxOptions.ReadOnly)
+to true.
 
-    Queries now expose the SQL column type information for drivers that support it.
-    Rows can return [`ColumnTypes`](/pkg/database/sql#Rows.ColumnTypes)
-    which can include SQL type information, column type lengths, and the Go type.
+Queries now expose the SQL column type information for drivers that support it.
+Rows can return [`ColumnTypes`](/pkg/database/sql#Rows.ColumnTypes)
+which can include SQL type information, column type lengths, and the Go type.
 
-    A [`Rows`](/pkg/database/sql/#Rows)
-    can now represent multiple result sets. After
-    [`Rows.Next`](/pkg/database/sql/#Rows.Next) returns false,
-    [`Rows.NextResultSet`](/pkg/database/sql/#Rows.NextResultSet)
-    may be called to advance to the next result set. The existing `Rows`
-    should continue to be used after it advances to the next result set.
+A [`Rows`](/pkg/database/sql/#Rows)
+can now represent multiple result sets. After
+[`Rows.Next`](/pkg/database/sql/#Rows.Next) returns false,
+[`Rows.NextResultSet`](/pkg/database/sql/#Rows.NextResultSet)
+may be called to advance to the next result set. The existing `Rows`
+should continue to be used after it advances to the next result set.
 
-    [`NamedArg`](/pkg/database/sql/#NamedArg) may be used
-    as query arguments. The new function [`Named`](/pkg/database/sql/#Named)
-    helps create a [`NamedArg`](/pkg/database/sql/#NamedArg)
-    more succinctly.
+[`NamedArg`](/pkg/database/sql/#NamedArg) may be used
+as query arguments. The new function [`Named`](/pkg/database/sql/#Named)
+helps create a [`NamedArg`](/pkg/database/sql/#NamedArg)
+more succinctly.
 
-    If a driver supports the new
-    [`Pinger`](/pkg/database/sql/driver/#Pinger)
-    interface, the
-    [`DB.Ping`](/pkg/database/sql/#DB.Ping)
+If a driver supports the new
+[`Pinger`](/pkg/database/sql/driver/#Pinger)
+interface, the
+[`DB.Ping`](/pkg/database/sql/#DB.Ping)
+and
+[`DB.PingContext`](/pkg/database/sql/#DB.PingContext)
+methods will use that interface to check whether a
+database connection is still valid.
+
+The new `Context` query methods work for all drivers, but
+`Context` cancellation is not responsive unless the driver has been
+updated to use them. The other features require driver support in
+[`database/sql/driver`](/pkg/database/sql/driver).
+Driver authors should review the new interfaces. Users of existing
+driver should review the driver documentation to see what
+it supports and any system specific documentation on each feature.
+
+#### [debug/pe](/pkg/debug/pe/)
+
+<!-- CL 22720, CL 27212, CL 22181, CL 22332, CL 22336, Issue 15345 -->
+The package has been extended and is now used by
+[the Go linker](/cmd/link/) to read `gcc`-generated object files.
+The new
+[`File.StringTable`](/pkg/debug/pe/#File.StringTable)
+and
+[`Section.Relocs`](/pkg/debug/pe/#Section.Relocs)
+fields provide access to the COFF string table and COFF relocations.
+The new
+[`File.COFFSymbols`](/pkg/debug/pe/#File.COFFSymbols)
+allows low-level access to the COFF symbol table.
+
+#### [encoding/base64](/pkg/encoding/base64/)
+
+<!-- CL 24964 -->
+The new
+[`Encoding.Strict`](/pkg/encoding/base64/#Encoding.Strict)
+method returns an `Encoding` that causes the decoder
+to return an error when the trailing padding bits are not zero.
+
+#### [encoding/binary](/pkg/encoding/binary/)
+
+<!-- CL 28514 -->
+[`Read`](/pkg/encoding/binary/#Read)
+and
+[`Write`](/pkg/encoding/binary/#Write)
+now support booleans.
+
+#### [encoding/json](/pkg/encoding/json/)
+
+<!-- CL 18692  -->
+[`UnmarshalTypeError`](/pkg/encoding/json/#UnmarshalTypeError)
+now includes the struct and field name.
+
+<!-- CL 31932 -->
+A nil [`Marshaler`](/pkg/encoding/json/#Marshaler)
+now marshals as a JSON `null` value.
+
+<!-- CL 21811 -->
+A [`RawMessage`](/pkg/encoding/json/#RawMessage) value now
+marshals the same as its pointer type.
+
+<!-- CL 30371 -->
+[`Marshal`](/pkg/encoding/json/#Marshal)
+encodes floating-point numbers using the same format as in ES6,
+preferring decimal (not exponential) notation for a wider range of values.
+In particular, all floating-point integers up to 2<sup>64</sup> format the
+same as the equivalent `int64` representation.
+
+<!-- CL 30944 -->
+In previous versions of Go, unmarshaling a JSON `null` into an
+[`Unmarshaler`](/pkg/encoding/json/#Unmarshaler)
+was considered a no-op; now the `Unmarshaler`'s
+`UnmarshalJSON` method is called with the JSON literal
+`null` and can define the semantics of that case.
+
+#### [encoding/pem](/pkg/encoding/pem/)
+
+<!-- CL 27391 -->
+[`Decode`](/pkg/encoding/pem/#Decode)
+is now strict about the format of the ending line.
+
+#### [encoding/xml](/pkg/encoding/xml/)
+
+<!-- CL 30946 -->
+[`Unmarshal`](/pkg/encoding/xml/#Unmarshal)
+now has wildcard support for collecting all attributes using
+the new `",any,attr"` struct tag.
+
+#### [expvar](/pkg/expvar/)
+
+<!-- CL 30917 -->
+The new methods
+[`Int.Value`](/pkg/expvar/#Int.Value),
+[`String.Value`](/pkg/expvar/#String.Value),
+[`Float.Value`](/pkg/expvar/#Float.Value), and
+[`Func.Value`](/pkg/expvar/#Func.Value)
+report the current value of an exported variable.
+
+<!-- CL 24722 -->
+The new
+function [`Handler`](/pkg/expvar/#Handler)
+returns the package's HTTP handler, to enable installing it in
+non-standard locations.
+
+#### [fmt](/pkg/fmt/)
+
+<!-- CL 30611 -->
+[`Scanf`](/pkg/fmt/#Scanf),
+[`Fscanf`](/pkg/fmt/#Fscanf), and
+[`Sscanf`](/pkg/fmt/#Sscanf) now
+handle spaces differently and more consistently than
+previous releases. See the
+[scanning documentation](/pkg/fmt/#hdr-Scanning)
+for details.
+
+#### [go/doc](/pkg/go/doc/)
+
+<!-- CL 29870 -->
+The new [`IsPredeclared`](/pkg/go/doc/#IsPredeclared)
+function reports whether a string is a predeclared identifier.
+
+#### [go/types](/pkg/go/types/)
+
+<!-- CL 30715 -->
+The new function
+[`Default`](/pkg/go/types/#Default)
+returns the default "typed" type for an "untyped" type.
+
+<!-- CL 31939 -->
+The alignment of `complex64` now matches
+the [Go compiler](/cmd/compile/).
+
+#### [html/template](/pkg/html/template/)
+
+<!-- CL 14336 -->
+The package now validates
+the `"type"` attribute on
+a `<script>` tag.
+
+#### [image/png](/pkg/image/png/)
+
+<!-- CL 32143, CL 32140 -->
+[`Decode`](/pkg/image/png/#Decode)
+(and `DecodeConfig`)
+now supports True Color and grayscale transparency.
+
+<!-- CL 29872 -->
+[`Encoder`](/pkg/image/png/#Encoder)
+is now faster and creates smaller output
+when encoding paletted images.
+
+#### [math/big](/pkg/math/big/)
+
+<!-- CL 30706 -->
+The new method
+[`Int.Sqrt`](/pkg/math/big/#Int.Sqrt)
+calculates ⌊√x⌋.
+
+The new method
+[`Float.Scan`](/pkg/math/big/#Float.Scan)
+is a support routine for
+[`fmt.Scanner`](/pkg/fmt/#Scanner).
+
+[`Int.ModInverse`](/pkg/math/big/#Int.ModInverse)
+now supports negative numbers.
+
+#### [math/rand](/pkg/math/rand/)
+
+<!-- CL 27253, CL 33456 -->
+The new [`Rand.Uint64`](/pkg/math/rand/#Rand.Uint64)
+method returns `uint64` values. The
+new [`Source64`](/pkg/math/rand/#Source64)
+interface describes sources capable of generating such values
+directly; otherwise the `Rand.Uint64` method
+constructs a `uint64` from two calls
+to [`Source`](/pkg/math/rand/#Source)'s
+`Int63` method.
+
+#### [mime](/pkg/mime/)
+
+<!-- CL 32175 -->
+[`ParseMediaType`](/pkg/mime/#ParseMediaType)
+now preserves unnecessary backslash escapes as literals,
+in order to support MSIE.
+When MSIE sends a full file path (in “intranet mode”), it does not
+escape backslashes: “`C:\dev\go\foo.txt`”, not
+“`C:\\dev\\go\\foo.txt`”.
+If we see an unnecessary backslash escape, we now assume it is from MSIE
+and intended as a literal backslash.
+No known MIME generators emit unnecessary backslash escapes
+for simple token characters like numbers and letters.
+
+#### [mime/quotedprintable](/pkg/mime/quotedprintable/)
+
+The
+[`Reader`](/pkg/mime/quotedprintable/#Reader)'s
+parsing has been relaxed in two ways to accept
+more input seen in the wild. <!-- CL 32174 -->
+First, it accepts an equals sign (`=`) not followed
+by two hex digits as a literal equal sign. <!-- CL 27530 -->
+Second, it silently ignores a trailing equals sign at the end of
+an encoded input.
+
+#### [net](/pkg/net/)
+
+<!-- CL 30164, CL 33473 -->
+The [`Conn`](/pkg/net/#Conn) documentation
+has been updated to clarify expectations of an interface
+implementation. Updates in the `net/http` packages
+depend on implementations obeying the documentation.
+
+_Updating:_ implementations of the `Conn` interface should verify
+they implement the documented semantics. The
+[golang.org/x/net/nettest](https://godoc.org/golang.org/x/net/nettest)
+package will exercise a `Conn` and validate it behaves properly.
+
+<!-- CL 32099 -->
+The new method
+[`UnixListener.SetUnlinkOnClose`](/pkg/net/#UnixListener.SetUnlinkOnClose)
+sets whether the underlying socket file should be removed from the file system when
+the listener is closed.
+
+<!-- CL 29951 -->
+The new [`Buffers`](/pkg/net/#Buffers) type permits
+writing to the network more efficiently from multiple discontiguous buffers
+in memory. On certain machines, for certain types of connections,
+this is optimized into an OS-specific batch write operation (such as `writev`).
+
+<!-- CL 29440 -->
+The new [`Resolver`](/pkg/net/#Resolver) looks up names and numbers
+and supports [`context.Context`](/pkg/context/#Context).
+The [`Dialer`](/pkg/net/#Dialer) now has an optional
+[`Resolver` field](/pkg/net/#Dialer.Resolver).
+
+<!-- CL 29892 -->
+[`Interfaces`](/pkg/net/#Interfaces) is now supported on Solaris.
+
+<!-- CL 29233, CL 24901 -->
+The Go DNS resolver now supports `resolv.conf`'s “`rotate`”
+and “`option` `ndots:0`” options. The “`ndots`” option is
+now respected in the same way as `libresolve`.
+
+#### [net/http](/pkg/net/http/)
+
+Server changes:
+
+  - The server now supports graceful shutdown support, [mentioned above](#http_shutdown).
+  - <!-- CL 32024 -->
+    The [`Server`](/pkg/net/http/#Server)
+    adds configuration options
+    `ReadHeaderTimeout` and `IdleTimeout`
+    and documents `WriteTimeout`.
+  - <!-- CL 32014 -->
+    [`FileServer`](/pkg/net/http/#FileServer)
     and
-    [`DB.PingContext`](/pkg/database/sql/#DB.PingContext)
-    methods will use that interface to check whether a
-    database connection is still valid.
+    [`ServeContent`](/pkg/net/http/#ServeContent)
+    now support HTTP `If-Match` conditional requests,
+    in addition to the previous `If-None-Match`
+    support for ETags properly formatted according to RFC 7232, section 2.3.
 
-    The new `Context` query methods work for all drivers, but
-    `Context` cancellation is not responsive unless the driver has been
-    updated to use them. The other features require driver support in
-    [`database/sql/driver`](/pkg/database/sql/driver).
-    Driver authors should review the new interfaces. Users of existing
-    driver should review the driver documentation to see what
-    it supports and any system specific documentation on each feature.
+There are several additions to what a server's `Handler` can do:
 
-[debug/pe](/pkg/debug/pe/)
+  - <!-- CL 31173 -->
+    The [`Context`](/pkg/context/#Context)
+    returned
+    by [`Request.Context`](/pkg/net/http/#Request.Context)
+    is canceled if the underlying `net.Conn`
+    closes. For instance, if the user closes their browser in the
+    middle of a slow request, the `Handler` can now
+    detect that the user is gone. This complements the
+    existing [`CloseNotifier`](/pkg/net/http/#CloseNotifier)
+    support. This functionality requires that the underlying
+    [`net.Conn`](/pkg/net/#Conn) implements
+    [recently clarified interface documentation](#net).
+  - <!-- CL 32479 -->
+    To serve trailers produced after the header has already been written,
+    see the new
+    [`TrailerPrefix`](/pkg/net/http/#TrailerPrefix)
+    mechanism.
+  - <!-- CL 33099 -->
+    A `Handler` can now abort a response by panicking
+    with the error
+    [`ErrAbortHandler`](/pkg/net/http/#ErrAbortHandler).
+  - <!-- CL 30812 -->
+    A `Write` of zero bytes to a
+    [`ResponseWriter`](/pkg/net/http/#ResponseWriter)
+    is now defined as a
+    way to test whether a `ResponseWriter` has been hijacked:
+    if so, the `Write` returns
+    [`ErrHijacked`](/pkg/net/http/#ErrHijacked)
+    without printing an error
+    to the server's error log.
 
-:   <!-- CL 22720, CL 27212, CL 22181, CL 22332, CL 22336, Issue 15345 -->
-    The package has been extended and is now used by
-    [the Go linker](/cmd/link/) to read `gcc`-generated object files.
-    The new
-    [`File.StringTable`](/pkg/debug/pe/#File.StringTable)
-    and
-    [`Section.Relocs`](/pkg/debug/pe/#Section.Relocs)
-    fields provide access to the COFF string table and COFF relocations.
-    The new
-    [`File.COFFSymbols`](/pkg/debug/pe/#File.COFFSymbols)
-    allows low-level access to the COFF symbol table.
+Client & Transport changes:
 
-[encoding/base64](/pkg/encoding/base64/)
-
-:   <!-- CL 24964 -->
-    The new
-    [`Encoding.Strict`](/pkg/encoding/base64/#Encoding.Strict)
-    method returns an `Encoding` that causes the decoder
-    to return an error when the trailing padding bits are not zero.
-
-[encoding/binary](/pkg/encoding/binary/)
-
-:   <!-- CL 28514 -->
-    [`Read`](/pkg/encoding/binary/#Read)
-    and
-    [`Write`](/pkg/encoding/binary/#Write)
-    now support booleans.
-
-[encoding/json](/pkg/encoding/json/)
-
-:   <!-- CL 18692  -->
-    [`UnmarshalTypeError`](/pkg/encoding/json/#UnmarshalTypeError)
-    now includes the struct and field name.
-
-    <!-- CL 31932 -->
-    A nil [`Marshaler`](/pkg/encoding/json/#Marshaler)
-    now marshals as a JSON `null` value.
-
-    <!-- CL 21811 -->
-    A [`RawMessage`](/pkg/encoding/json/#RawMessage) value now
-    marshals the same as its pointer type.
-
-    <!-- CL 30371 -->
-    [`Marshal`](/pkg/encoding/json/#Marshal)
-    encodes floating-point numbers using the same format as in ES6,
-    preferring decimal (not exponential) notation for a wider range of values.
-    In particular, all floating-point integers up to 2<sup>64</sup> format the
-    same as the equivalent `int64` representation.
-
-    <!-- CL 30944 -->
-    In previous versions of Go, unmarshaling a JSON `null` into an
-    [`Unmarshaler`](/pkg/encoding/json/#Unmarshaler)
-    was considered a no-op; now the `Unmarshaler`'s
-    `UnmarshalJSON` method is called with the JSON literal
-    `null` and can define the semantics of that case.
-
-[encoding/pem](/pkg/encoding/pem/)
-
-:   <!-- CL 27391 -->
-    [`Decode`](/pkg/encoding/pem/#Decode)
-    is now strict about the format of the ending line.
-
-[encoding/xml](/pkg/encoding/xml/)
-
-:   <!-- CL 30946 -->
-    [`Unmarshal`](/pkg/encoding/xml/#Unmarshal)
-    now has wildcard support for collecting all attributes using
-    the new `",any,attr"` struct tag.
-
-[expvar](/pkg/expvar/)
-
-:   <!-- CL 30917 -->
-    The new methods
-    [`Int.Value`](/pkg/expvar/#Int.Value),
-    [`String.Value`](/pkg/expvar/#String.Value),
-    [`Float.Value`](/pkg/expvar/#Float.Value), and
-    [`Func.Value`](/pkg/expvar/#Func.Value)
-    report the current value of an exported variable.
-
-    <!-- CL 24722 -->
-    The new
-    function [`Handler`](/pkg/expvar/#Handler)
-    returns the package's HTTP handler, to enable installing it in
-    non-standard locations.
-
-[fmt](/pkg/fmt/)
-
-:   <!-- CL 30611 -->
-    [`Scanf`](/pkg/fmt/#Scanf),
-    [`Fscanf`](/pkg/fmt/#Fscanf), and
-    [`Sscanf`](/pkg/fmt/#Sscanf) now
-    handle spaces differently and more consistently than
-    previous releases. See the
-    [scanning documentation](/pkg/fmt/#hdr-Scanning)
-    for details.
-
-[go/doc](/pkg/go/doc/)
-
-:   <!-- CL 29870 -->
-    The new [`IsPredeclared`](/pkg/go/doc/#IsPredeclared)
-    function reports whether a string is a predeclared identifier.
-
-[go/types](/pkg/go/types/)
-
-:   <!-- CL 30715 -->
-    The new function
-    [`Default`](/pkg/go/types/#Default)
-    returns the default "typed" type for an "untyped" type.
-
-    <!-- CL 31939 -->
-    The alignment of `complex64` now matches
-    the [Go compiler](/cmd/compile/).
-
-[html/template](/pkg/html/template/)
-
-:   <!-- CL 14336 -->
-    The package now validates
-    the `"type"` attribute on
-    a `<script>` tag.
-
-[image/png](/pkg/image/png/)
-
-:   <!-- CL 32143, CL 32140 -->
-    [`Decode`](/pkg/image/png/#Decode)
-    (and `DecodeConfig`)
-    now supports True Color and grayscale transparency.
-
-    <!-- CL 29872 -->
-    [`Encoder`](/pkg/image/png/#Encoder)
-    is now faster and creates smaller output
-    when encoding paletted images.
-
-[math/big](/pkg/math/big/)
-
-:   <!-- CL 30706 -->
-    The new method
-    [`Int.Sqrt`](/pkg/math/big/#Int.Sqrt)
-    calculates ⌊√x⌋.
-
-    The new method
-    [`Float.Scan`](/pkg/math/big/#Float.Scan)
-    is a support routine for
-    [`fmt.Scanner`](/pkg/fmt/#Scanner).
-
-    [`Int.ModInverse`](/pkg/math/big/#Int.ModInverse)
-    now supports negative numbers.
-
-[math/rand](/pkg/math/rand/)
-
-:   <!-- CL 27253, CL 33456 -->
-    The new [`Rand.Uint64`](/pkg/math/rand/#Rand.Uint64)
-    method returns `uint64` values. The
-    new [`Source64`](/pkg/math/rand/#Source64)
-    interface describes sources capable of generating such values
-    directly; otherwise the `Rand.Uint64` method
-    constructs a `uint64` from two calls
-    to [`Source`](/pkg/math/rand/#Source)'s
-    `Int63` method.
-
-[mime](/pkg/mime/)
-
-:   <!-- CL 32175 -->
-    [`ParseMediaType`](/pkg/mime/#ParseMediaType)
-    now preserves unnecessary backslash escapes as literals,
-    in order to support MSIE.
-    When MSIE sends a full file path (in “intranet mode”), it does not
-    escape backslashes: “`C:\dev\go\foo.txt`”, not
-    “`C:\\dev\\go\\foo.txt`”.
-    If we see an unnecessary backslash escape, we now assume it is from MSIE
-    and intended as a literal backslash.
-    No known MIME generators emit unnecessary backslash escapes
-    for simple token characters like numbers and letters.
-
-[mime/quotedprintable](/pkg/mime/quotedprintable/)
-
-:   The
-    [`Reader`](/pkg/mime/quotedprintable/#Reader)'s
-    parsing has been relaxed in two ways to accept
-    more input seen in the wild. <!-- CL 32174 -->
-    First, it accepts an equals sign (`=`) not followed
-    by two hex digits as a literal equal sign. <!-- CL 27530 -->
-    Second, it silently ignores a trailing equals sign at the end of
-    an encoded input.
-
-[net](/pkg/net/)
-
-:   <!-- CL 30164, CL 33473 -->
-    The [`Conn`](/pkg/net/#Conn) documentation
-    has been updated to clarify expectations of an interface
-    implementation. Updates in the `net/http` packages
-    depend on implementations obeying the documentation.
-
-    _Updating:_ implementations of the `Conn` interface should verify
-    they implement the documented semantics. The
-    [golang.org/x/net/nettest](https://godoc.org/golang.org/x/net/nettest)
-    package will exercise a `Conn` and validate it behaves properly.
-
-    <!-- CL 32099 -->
-    The new method
-    [`UnixListener.SetUnlinkOnClose`](/pkg/net/#UnixListener.SetUnlinkOnClose)
-    sets whether the underlying socket file should be removed from the file system when
-    the listener is closed.
-
-    <!-- CL 29951 -->
-    The new [`Buffers`](/pkg/net/#Buffers) type permits
-    writing to the network more efficiently from multiple discontiguous buffers
-    in memory. On certain machines, for certain types of connections,
-    this is optimized into an OS-specific batch write operation (such as `writev`).
-
-    <!-- CL 29440 -->
-    The new [`Resolver`](/pkg/net/#Resolver) looks up names and numbers
-    and supports [`context.Context`](/pkg/context/#Context).
-    The [`Dialer`](/pkg/net/#Dialer) now has an optional
-    [`Resolver` field](/pkg/net/#Dialer.Resolver).
-
-    <!-- CL 29892 -->
-    [`Interfaces`](/pkg/net/#Interfaces) is now supported on Solaris.
-
-    <!-- CL 29233, CL 24901 -->
-    The Go DNS resolver now supports `resolv.conf`'s “`rotate`”
-    and “`option` `ndots:0`” options. The “`ndots`” option is
-    now respected in the same way as `libresolve`.
-
-[net/http](/pkg/net/http/)
-
-:   Server changes:
-
-      - The server now supports graceful shutdown support, [mentioned above](#http_shutdown).
-      - <!-- CL 32024 -->
-        The [`Server`](/pkg/net/http/#Server)
-        adds configuration options
-        `ReadHeaderTimeout` and `IdleTimeout`
-        and documents `WriteTimeout`.
-      - <!-- CL 32014 -->
-        [`FileServer`](/pkg/net/http/#FileServer)
-        and
-        [`ServeContent`](/pkg/net/http/#ServeContent)
-        now support HTTP `If-Match` conditional requests,
-        in addition to the previous `If-None-Match`
-        support for ETags properly formatted according to RFC 7232, section 2.3.
-
-    There are several additions to what a server's `Handler` can do:
-
-      - <!-- CL 31173 -->
-        The [`Context`](/pkg/context/#Context)
-        returned
-        by [`Request.Context`](/pkg/net/http/#Request.Context)
-        is canceled if the underlying `net.Conn`
-        closes. For instance, if the user closes their browser in the
-        middle of a slow request, the `Handler` can now
-        detect that the user is gone. This complements the
-        existing [`CloseNotifier`](/pkg/net/http/#CloseNotifier)
-        support. This functionality requires that the underlying
-        [`net.Conn`](/pkg/net/#Conn) implements
-        [recently clarified interface documentation](#net).
-      - <!-- CL 32479 -->
-        To serve trailers produced after the header has already been written,
-        see the new
-        [`TrailerPrefix`](/pkg/net/http/#TrailerPrefix)
-        mechanism.
-      - <!-- CL 33099 -->
-        A `Handler` can now abort a response by panicking
-        with the error
-        [`ErrAbortHandler`](/pkg/net/http/#ErrAbortHandler).
-      - <!-- CL 30812 -->
-        A `Write` of zero bytes to a
-        [`ResponseWriter`](/pkg/net/http/#ResponseWriter)
-        is now defined as a
-        way to test whether a `ResponseWriter` has been hijacked:
-        if so, the `Write` returns
-        [`ErrHijacked`](/pkg/net/http/#ErrHijacked)
-        without printing an error
-        to the server's error log.
-
-    Client & Transport changes:
-
-      - <!-- CL 28930, CL 31435 -->
-        The [`Client`](/pkg/net/http/#Client)
-        now copies most request headers on redirect. See
-        [the documentation](/pkg/net/http/#Client)
-        on the `Client` type for details.
-      - <!-- CL 29072 -->
-        The [`Transport`](/pkg/net/http/#Transport)
-        now supports international domain names. Consequently, so do
-        [Get](/pkg/net/http/#Get) and other helpers.
-      - <!-- CL 31733, CL 29852 -->
-        The `Client` now supports 301, 307, and 308 redirects.
-        For example, `Client.Post` now follows 301
-        redirects, converting them to `GET` requests
-        without bodies, like it did for 302 and 303 redirect responses
-        previously.
-        The `Client` now also follows 307 and 308
-        redirects, preserving the original request method and body, if
-        any. If the redirect requires resending the request body, the
-        request must have the new
-        [`Request.GetBody`](/pkg/net/http/#Request)
-        field defined.
-        [`NewRequest`](/pkg/net/http/#NewRequest)
-        sets `Request.GetBody` automatically for common
-        body types.
-      - <!-- CL 32482 -->
-        The `Transport` now rejects requests for URLs with
-        ports containing non-digit characters.
-      - <!-- CL 27117 -->
-        The `Transport` will now retry non-idempotent
-        requests if no bytes were written before a network failure
-        and the request has no body.
-      - <!-- CL 32481 -->
-        The
-        new [`Transport.ProxyConnectHeader`](/pkg/net/http/#Transport)
-        allows configuration of header values to send to a proxy
-        during a `CONNECT` request.
-      - <!-- CL 28077 -->
-        The [`DefaultTransport.Dialer`](/pkg/net/http/#DefaultTransport)
-        now enables `DualStack` ("[Happy Eyeballs](https://tools.ietf.org/html/rfc6555)") support,
-        allowing the use of IPv4 as a backup if it looks like IPv6 might be
-        failing.
-      - <!-- CL 31726 -->
-        The [`Transport`](/pkg/net/http/#Transport)
-        no longer reads a byte of a non-nil
-        [`Request.Body`](/pkg/net/http/#Request.Body)
-        when the
-        [`Request.ContentLength`](/pkg/net/http/#Request.ContentLength)
-        is zero to determine whether the `ContentLength`
-        is actually zero or just undefined.
-        To explicitly signal that a body has zero length,
-        either set it to `nil`, or set it to the new value
-        [`NoBody`](/pkg/net/http/#NoBody).
-        The new `NoBody` value is intended for use by `Request`
-        constructor functions; it is used by
-        [`NewRequest`](/pkg/net/http/#NewRequest).
-
-[net/http/httptrace](/pkg/net/http/httptrace/)
-
-:   <!-- CL 30359 -->
-    There is now support for tracing a client request's TLS handshakes with
-    the new
-    [`ClientTrace.TLSHandshakeStart`](/pkg/net/http/httptrace/#ClientTrace.TLSHandshakeStart)
-    and
-    [`ClientTrace.TLSHandshakeDone`](/pkg/net/http/httptrace/#ClientTrace.TLSHandshakeDone).
-
-[net/http/httputil](/pkg/net/http/httputil/)
-
-:   <!-- CL 32356 -->
-    The [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
-    has a new optional hook,
-    [`ModifyResponse`](/pkg/net/http/httputil/#ReverseProxy.ModifyResponse),
-    for modifying the response from the back end before proxying it to the client.
-
-[net/mail](/pkg/net/mail/)
-
-:   <!-- CL 32176 -->
-    Empty quoted strings are once again allowed in the name part of
-    an address. That is, Go 1.4 and earlier accepted
-    `""` `<gopher@example.com>`,
-    but Go 1.5 introduced a bug that rejected this address.
-    The address is recognized again.
-
-    <!-- CL 31581 -->
+  - <!-- CL 28930, CL 31435 -->
+    The [`Client`](/pkg/net/http/#Client)
+    now copies most request headers on redirect. See
+    [the documentation](/pkg/net/http/#Client)
+    on the `Client` type for details.
+  - <!-- CL 29072 -->
+    The [`Transport`](/pkg/net/http/#Transport)
+    now supports international domain names. Consequently, so do
+    [Get](/pkg/net/http/#Get) and other helpers.
+  - <!-- CL 31733, CL 29852 -->
+    The `Client` now supports 301, 307, and 308 redirects.
+    For example, `Client.Post` now follows 301
+    redirects, converting them to `GET` requests
+    without bodies, like it did for 302 and 303 redirect responses
+    previously.
+    The `Client` now also follows 307 and 308
+    redirects, preserving the original request method and body, if
+    any. If the redirect requires resending the request body, the
+    request must have the new
+    [`Request.GetBody`](/pkg/net/http/#Request)
+    field defined.
+    [`NewRequest`](/pkg/net/http/#NewRequest)
+    sets `Request.GetBody` automatically for common
+    body types.
+  - <!-- CL 32482 -->
+    The `Transport` now rejects requests for URLs with
+    ports containing non-digit characters.
+  - <!-- CL 27117 -->
+    The `Transport` will now retry non-idempotent
+    requests if no bytes were written before a network failure
+    and the request has no body.
+  - <!-- CL 32481 -->
     The
-    [`Header.Date`](/pkg/net/mail/#Header.Date)
-    method has always provided a way to parse
-    the `Date:` header.
-    A new function
-    [`ParseDate`](/pkg/net/mail/#ParseDate)
-    allows parsing dates found in other
-    header lines, such as the `Resent-Date:` header.
+    new [`Transport.ProxyConnectHeader`](/pkg/net/http/#Transport)
+    allows configuration of header values to send to a proxy
+    during a `CONNECT` request.
+  - <!-- CL 28077 -->
+    The [`DefaultTransport.Dialer`](/pkg/net/http/#DefaultTransport)
+    now enables `DualStack` ("[Happy Eyeballs](https://tools.ietf.org/html/rfc6555)") support,
+    allowing the use of IPv4 as a backup if it looks like IPv6 might be
+    failing.
+  - <!-- CL 31726 -->
+    The [`Transport`](/pkg/net/http/#Transport)
+    no longer reads a byte of a non-nil
+    [`Request.Body`](/pkg/net/http/#Request.Body)
+    when the
+    [`Request.ContentLength`](/pkg/net/http/#Request.ContentLength)
+    is zero to determine whether the `ContentLength`
+    is actually zero or just undefined.
+    To explicitly signal that a body has zero length,
+    either set it to `nil`, or set it to the new value
+    [`NoBody`](/pkg/net/http/#NoBody).
+    The new `NoBody` value is intended for use by `Request`
+    constructor functions; it is used by
+    [`NewRequest`](/pkg/net/http/#NewRequest).
 
-[net/smtp](/pkg/net/smtp/)
+#### [net/http/httptrace](/pkg/net/http/httptrace/)
 
-:   <!-- CL 33143 -->
-    If an implementation of the
-    [`Auth.Start`](/pkg/net/smtp/#Auth)
-    method returns an empty `toServer` value,
-    the package no longer sends
-    trailing whitespace in the SMTP `AUTH` command,
-    which some servers rejected.
+<!-- CL 30359 -->
+There is now support for tracing a client request's TLS handshakes with
+the new
+[`ClientTrace.TLSHandshakeStart`](/pkg/net/http/httptrace/#ClientTrace.TLSHandshakeStart)
+and
+[`ClientTrace.TLSHandshakeDone`](/pkg/net/http/httptrace/#ClientTrace.TLSHandshakeDone).
 
-[net/url](/pkg/net/url/)
+#### [net/http/httputil](/pkg/net/http/httputil/)
 
-:   <!-- CL 31322 -->
-    The new functions
-    [`PathEscape`](/pkg/net/url/#PathEscape)
-    and
-    [`PathUnescape`](/pkg/net/url/#PathUnescape)
-    are similar to the query escaping and unescaping functions but
-    for path elements.
+<!-- CL 32356 -->
+The [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
+has a new optional hook,
+[`ModifyResponse`](/pkg/net/http/httputil/#ReverseProxy.ModifyResponse),
+for modifying the response from the back end before proxying it to the client.
 
-    <!-- CL 28933 -->
-    The new methods
-    [`URL.Hostname`](/pkg/net/url/#URL.Hostname)
-    and
-    [`URL.Port`](/pkg/net/url/#URL.Port)
-    return the hostname and port fields of a URL,
-    correctly handling the case where the port may not be present.
+#### [net/mail](/pkg/net/mail/)
 
-    <!-- CL 28343 -->
-    The existing method
-    [`URL.ResolveReference`](/pkg/net/url/#URL.ResolveReference)
-    now properly handles paths with escaped bytes without losing
-    the escaping.
+<!-- CL 32176 -->
+Empty quoted strings are once again allowed in the name part of
+an address. That is, Go 1.4 and earlier accepted
+`""` `<gopher@example.com>`,
+but Go 1.5 introduced a bug that rejected this address.
+The address is recognized again.
 
-    <!-- CL 31467 -->
-    The `URL` type now implements
-    [`encoding.BinaryMarshaler`](/pkg/encoding/#BinaryMarshaler) and
-    [`encoding.BinaryUnmarshaler`](/pkg/encoding/#BinaryUnmarshaler),
-    making it possible to process URLs in [gob data](/pkg/encoding/gob/).
+<!-- CL 31581 -->
+The
+[`Header.Date`](/pkg/net/mail/#Header.Date)
+method has always provided a way to parse
+the `Date:` header.
+A new function
+[`ParseDate`](/pkg/net/mail/#ParseDate)
+allows parsing dates found in other
+header lines, such as the `Resent-Date:` header.
 
-    <!-- CL 29610, CL 31582 -->
-    Following RFC 3986,
-    [`Parse`](/pkg/net/url/#Parse)
-    now rejects URLs like `this_that:other/thing` instead of
-    interpreting them as relative paths (`this_that` is not a valid scheme).
-    To force interpretation as a relative path,
-    such URLs should be prefixed with “`./`”.
-    The `URL.String` method now inserts this prefix as needed.
+#### [net/smtp](/pkg/net/smtp/)
 
-[os](/pkg/os/)
+<!-- CL 33143 -->
+If an implementation of the
+[`Auth.Start`](/pkg/net/smtp/#Auth)
+method returns an empty `toServer` value,
+the package no longer sends
+trailing whitespace in the SMTP `AUTH` command,
+which some servers rejected.
 
-:   <!-- CL 16551 -->
-    The new function
-    [`Executable`](/pkg/os/#Executable) returns
-    the path name of the running executable.
+#### [net/url](/pkg/net/url/)
 
-    <!-- CL 30614 -->
-    An attempt to call a method on
-    an [`os.File`](/pkg/os/#File) that has
-    already been closed will now return the new error
-    value [`os.ErrClosed`](/pkg/os/#ErrClosed).
-    Previously it returned a system-specific error such
-    as `syscall.EBADF`.
+<!-- CL 31322 -->
+The new functions
+[`PathEscape`](/pkg/net/url/#PathEscape)
+and
+[`PathUnescape`](/pkg/net/url/#PathUnescape)
+are similar to the query escaping and unescaping functions but
+for path elements.
 
-    <!-- CL 31358 -->
-    On Unix systems, [`os.Rename`](/pkg/os/#Rename)
-    will now return an error when used to rename a directory to an
-    existing empty directory.
-    Previously it would fail when renaming to a non-empty directory
-    but succeed when renaming to an empty directory.
-    This makes the behavior on Unix correspond to that of other systems.
+<!-- CL 28933 -->
+The new methods
+[`URL.Hostname`](/pkg/net/url/#URL.Hostname)
+and
+[`URL.Port`](/pkg/net/url/#URL.Port)
+return the hostname and port fields of a URL,
+correctly handling the case where the port may not be present.
 
-    <!-- CL 32451 -->
-    On Windows, long absolute paths are now transparently converted to
-    extended-length paths (paths that start with “`\\?\`”).
-    This permits the package to work with files whose path names are
-    longer than 260 characters.
+<!-- CL 28343 -->
+The existing method
+[`URL.ResolveReference`](/pkg/net/url/#URL.ResolveReference)
+now properly handles paths with escaped bytes without losing
+the escaping.
 
-    <!-- CL 29753 -->
-    On Windows, [`os.IsExist`](/pkg/os/#IsExist)
-    will now return `true` for the system
-    error `ERROR_DIR_NOT_EMPTY`.
-    This roughly corresponds to the existing handling of the Unix
-    error `ENOTEMPTY`.
+<!-- CL 31467 -->
+The `URL` type now implements
+[`encoding.BinaryMarshaler`](/pkg/encoding/#BinaryMarshaler) and
+[`encoding.BinaryUnmarshaler`](/pkg/encoding/#BinaryUnmarshaler),
+making it possible to process URLs in [gob data](/pkg/encoding/gob/).
 
-    <!-- CL 32152 -->
-    On Plan 9, files that are not served by `#M` will now
-    have [`ModeDevice`](/pkg/os/#ModeDevice) set in
-    the value returned
-    by [`FileInfo.Mode`](/pkg/os/#FileInfo).
+<!-- CL 29610, CL 31582 -->
+Following RFC 3986,
+[`Parse`](/pkg/net/url/#Parse)
+now rejects URLs like `this_that:other/thing` instead of
+interpreting them as relative paths (`this_that` is not a valid scheme).
+To force interpretation as a relative path,
+such URLs should be prefixed with “`./`”.
+The `URL.String` method now inserts this prefix as needed.
 
-[path/filepath](/pkg/path/filepath/)
+#### [os](/pkg/os/)
 
-:   A number of bugs and corner cases on Windows were fixed:
-    [`Abs`](/pkg/path/filepath/#Abs) now calls `Clean` as documented,
-    [`Glob`](/pkg/path/filepath/#Glob) now matches
-    “`\\?\c:\*`”,
-    [`EvalSymlinks`](/pkg/path/filepath/#EvalSymlinks) now
-    correctly handles “`C:.`”, and
-    [`Clean`](/pkg/path/filepath/#Clean) now properly
-    handles a leading “`..`” in the path.
+<!-- CL 16551 -->
+The new function
+[`Executable`](/pkg/os/#Executable) returns
+the path name of the running executable.
 
-[reflect](/pkg/reflect/)
+<!-- CL 30614 -->
+An attempt to call a method on
+an [`os.File`](/pkg/os/#File) that has
+already been closed will now return the new error
+value [`os.ErrClosed`](/pkg/os/#ErrClosed).
+Previously it returned a system-specific error such
+as `syscall.EBADF`.
 
-:   <!-- CL 30088 -->
-    The new function
-    [`Swapper`](/pkg/reflect/#Swapper) was
-    added to support [`sort.Slice`](#sortslice).
+<!-- CL 31358 -->
+On Unix systems, [`os.Rename`](/pkg/os/#Rename)
+will now return an error when used to rename a directory to an
+existing empty directory.
+Previously it would fail when renaming to a non-empty directory
+but succeed when renaming to an empty directory.
+This makes the behavior on Unix correspond to that of other systems.
 
-[strconv](/pkg/strconv/)
+<!-- CL 32451 -->
+On Windows, long absolute paths are now transparently converted to
+extended-length paths (paths that start with “`\\?\`”).
+This permits the package to work with files whose path names are
+longer than 260 characters.
 
-:   <!-- CL 31210 -->
-    The [`Unquote`](/pkg/strconv/#Unquote)
-    function now strips carriage returns (`\r`) in
-    backquoted raw strings, following the
-    [Go language semantics](/ref/spec#String_literals).
+<!-- CL 29753 -->
+On Windows, [`os.IsExist`](/pkg/os/#IsExist)
+will now return `true` for the system
+error `ERROR_DIR_NOT_EMPTY`.
+This roughly corresponds to the existing handling of the Unix
+error `ENOTEMPTY`.
 
-[syscall](/pkg/syscall/)
+<!-- CL 32152 -->
+On Plan 9, files that are not served by `#M` will now
+have [`ModeDevice`](/pkg/os/#ModeDevice) set in
+the value returned
+by [`FileInfo.Mode`](/pkg/os/#FileInfo).
 
-:   <!-- CL 25050, CL 25022 -->
-    The [`Getpagesize`](/pkg/syscall/#Getpagesize)
-    now returns the system's size, rather than a constant value.
-    Previously it always returned 4KB.
+#### [path/filepath](/pkg/path/filepath/)
 
-    <!-- CL 31446 -->
-    The signature
-    of [`Utimes`](/pkg/syscall/#Utimes) has
-    changed on Solaris to match all the other Unix systems'
-    signature. Portable code should continue to use
-    [`os.Chtimes`](/pkg/os/#Chtimes) instead.
+A number of bugs and corner cases on Windows were fixed:
+[`Abs`](/pkg/path/filepath/#Abs) now calls `Clean` as documented,
+[`Glob`](/pkg/path/filepath/#Glob) now matches
+“`\\?\c:\*`”,
+[`EvalSymlinks`](/pkg/path/filepath/#EvalSymlinks) now
+correctly handles “`C:.`”, and
+[`Clean`](/pkg/path/filepath/#Clean) now properly
+handles a leading “`..`” in the path.
 
-    <!-- CL 32319 -->
-    The `X__cmsg_data` field has been removed from
-    [`Cmsghdr`](/pkg/syscall/#Cmsghdr).
+#### [reflect](/pkg/reflect/)
 
-[text/template](/pkg/text/template/)
+<!-- CL 30088 -->
+The new function
+[`Swapper`](/pkg/reflect/#Swapper) was
+added to support [`sort.Slice`](#sortslice).
 
-:   <!-- CL 31462 -->
-    [`Template.Execute`](/pkg/text/template/#Template.Execute)
-    can now take a
-    [`reflect.Value`](/pkg/reflect/#Value) as its data
-    argument, and
-    [`FuncMap`](/pkg/text/template/#FuncMap)
-    functions can also accept and return `reflect.Value`.
+#### [strconv](/pkg/strconv/)
 
-[time](/pkg/time/)
+<!-- CL 31210 -->
+The [`Unquote`](/pkg/strconv/#Unquote)
+function now strips carriage returns (`\r`) in
+backquoted raw strings, following the
+[Go language semantics](/ref/spec#String_literals).
 
-:   <!-- CL 20118 -->
-    The new function
-    [`Until`](/pkg/time/#Until) complements
-    the analogous `Since` function.
+#### [syscall](/pkg/syscall/)
 
-    <!-- CL 29338 -->
-    [`ParseDuration`](/pkg/time/#ParseDuration)
-    now accepts long fractional parts.
+<!-- CL 25050, CL 25022 -->
+The [`Getpagesize`](/pkg/syscall/#Getpagesize)
+now returns the system's size, rather than a constant value.
+Previously it always returned 4KB.
 
-    <!-- CL 33429 -->
-    [`Parse`](/pkg/time/#Parse)
-    now rejects dates before the start of a month, such as June 0;
-    it already rejected dates beyond the end of the month, such as
-    June 31 and July 32.
+<!-- CL 31446 -->
+The signature
+of [`Utimes`](/pkg/syscall/#Utimes) has
+changed on Solaris to match all the other Unix systems'
+signature. Portable code should continue to use
+[`os.Chtimes`](/pkg/os/#Chtimes) instead.
 
-    <!-- CL 33029 -->
-    <!-- CL 34816 -->
-    The `tzdata` database has been updated to version
-    2016j for systems that don't already have a local time zone
-    database.
+<!-- CL 32319 -->
+The `X__cmsg_data` field has been removed from
+[`Cmsghdr`](/pkg/syscall/#Cmsghdr).
+
+#### [text/template](/pkg/text/template/)
+
+<!-- CL 31462 -->
+[`Template.Execute`](/pkg/text/template/#Template.Execute)
+can now take a
+[`reflect.Value`](/pkg/reflect/#Value) as its data
+argument, and
+[`FuncMap`](/pkg/text/template/#FuncMap)
+functions can also accept and return `reflect.Value`.
+
+#### [time](/pkg/time/)
+
+<!-- CL 20118 -->
+The new function
+[`Until`](/pkg/time/#Until) complements
+the analogous `Since` function.
+
+<!-- CL 29338 -->
+[`ParseDuration`](/pkg/time/#ParseDuration)
+now accepts long fractional parts.
+
+<!-- CL 33429 -->
+[`Parse`](/pkg/time/#Parse)
+now rejects dates before the start of a month, such as June 0;
+it already rejected dates beyond the end of the month, such as
+June 31 and July 32.
+
+<!-- CL 33029 -->
+<!-- CL 34816 -->
+The `tzdata` database has been updated to version
+2016j for systems that don't already have a local time zone
+database.
 
 
-[testing](/pkg/testing/)
+#### [testing](/pkg/testing/)
 
-:   <!-- CL 29970 -->
-    The new method
-    [`T.Name`](/pkg/testing/#T.Name)
-    (and `B.Name`) returns the name of the current
-    test or benchmark.
+<!-- CL 29970 -->
+The new method
+[`T.Name`](/pkg/testing/#T.Name)
+(and `B.Name`) returns the name of the current
+test or benchmark.
 
-    <!-- CL 32483 -->
-    The new function
-    [`CoverMode`](/pkg/testing/#CoverMode)
-    reports the test coverage mode.
+<!-- CL 32483 -->
+The new function
+[`CoverMode`](/pkg/testing/#CoverMode)
+reports the test coverage mode.
 
-    <!-- CL 32615 -->
-    Tests and benchmarks are now marked as failed if the race
-    detector is enabled and a data race occurs during execution.
-    Previously, individual test cases would appear to pass,
-    and only the overall execution of the test binary would fail.
+<!-- CL 32615 -->
+Tests and benchmarks are now marked as failed if the race
+detector is enabled and a data race occurs during execution.
+Previously, individual test cases would appear to pass,
+and only the overall execution of the test binary would fail.
 
-    <!-- CL 32455 -->
-    The signature of the
-    [`MainStart`](/pkg/testing/#MainStart)
-    function has changed, as allowed by the documentation. It is an
-    internal detail and not part of the Go 1 compatibility promise.
-    If you're not calling `MainStart` directly but see
-    errors, that likely means you set the
-    normally-empty `GOROOT` environment variable and it
-    doesn't match the version of your `go` command's binary.
+<!-- CL 32455 -->
+The signature of the
+[`MainStart`](/pkg/testing/#MainStart)
+function has changed, as allowed by the documentation. It is an
+internal detail and not part of the Go 1 compatibility promise.
+If you're not calling `MainStart` directly but see
+errors, that likely means you set the
+normally-empty `GOROOT` environment variable and it
+doesn't match the version of your `go` command's binary.
 
-[unicode](/pkg/unicode/)
+#### [unicode](/pkg/unicode/)
 
-:   <!-- CL 30935 -->
-    [`SimpleFold`](/pkg/unicode/#SimpleFold)
-    now returns its argument unchanged if the provided input was an invalid rune.
-    Previously, the implementation failed with an index bounds check panic.
+<!-- CL 30935 -->
+[`SimpleFold`](/pkg/unicode/#SimpleFold)
+now returns its argument unchanged if the provided input was an invalid rune.
+Previously, the implementation failed with an index bounds check panic.
diff --git a/_content/doc/go1.9.md b/_content/doc/go1.9.md
index 4b0879c..e07b61e 100644
--- a/_content/doc/go1.9.md
+++ b/_content/doc/go1.9.md
@@ -368,512 +368,512 @@
 made with the Go 1 [promise of compatibility](/doc/go1compat)
 in mind.
 
-[archive/zip](/pkg/archive/zip/)
+#### [archive/zip](/pkg/archive/zip/)
 
-:   <!-- CL 39570 -->
-    The
-    ZIP [`Writer`](/pkg/archive/zip/#Writer)
-    now sets the UTF-8 bit in
-    the [`FileHeader.Flags`](/pkg/archive/zip/#FileHeader.Flags)
-    when appropriate.
+<!-- CL 39570 -->
+The
+ZIP [`Writer`](/pkg/archive/zip/#Writer)
+now sets the UTF-8 bit in
+the [`FileHeader.Flags`](/pkg/archive/zip/#FileHeader.Flags)
+when appropriate.
 
 <!-- archive/zip -->
 
-[crypto/rand](/pkg/crypto/rand/)
+#### [crypto/rand](/pkg/crypto/rand/)
 
-:   <!-- CL 43852 -->
-    On Linux, Go now calls the `getrandom` system call
-    without the `GRND_NONBLOCK` flag; it will now block
-    until the kernel has sufficient randomness. On kernels predating
-    the `getrandom` system call, Go continues to read
-    from `/dev/urandom`.
+<!-- CL 43852 -->
+On Linux, Go now calls the `getrandom` system call
+without the `GRND_NONBLOCK` flag; it will now block
+until the kernel has sufficient randomness. On kernels predating
+the `getrandom` system call, Go continues to read
+from `/dev/urandom`.
 
 <!-- crypto/rand -->
 
-[crypto/x509](/pkg/crypto/x509/)
+#### [crypto/x509](/pkg/crypto/x509/)
 
-:   <!-- CL 36093 -->
-    On Unix systems the environment
-    variables `SSL_CERT_FILE`
-    and `SSL_CERT_DIR` can now be used to override the
-    system default locations for the SSL certificate file and SSL
-    certificate files directory, respectively.
+<!-- CL 36093 -->
+On Unix systems the environment
+variables `SSL_CERT_FILE`
+and `SSL_CERT_DIR` can now be used to override the
+system default locations for the SSL certificate file and SSL
+certificate files directory, respectively.
 
-    The FreeBSD file `/usr/local/etc/ssl/cert.pem` is
-    now included in the certificate search path.
+The FreeBSD file `/usr/local/etc/ssl/cert.pem` is
+now included in the certificate search path.
 
-    <!-- CL 36900 -->
-    The package now supports excluded domains in name constraints.
-    In addition to enforcing such constraints,
-    [`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
-    will create certificates with excluded name constraints
-    if the provided template certificate has the new
-    field
-    [`ExcludedDNSDomains`](/pkg/crypto/x509/#Certificate.ExcludedDNSDomains)
-    populated.
+<!-- CL 36900 -->
+The package now supports excluded domains in name constraints.
+In addition to enforcing such constraints,
+[`CreateCertificate`](/pkg/crypto/x509/#CreateCertificate)
+will create certificates with excluded name constraints
+if the provided template certificate has the new
+field
+[`ExcludedDNSDomains`](/pkg/crypto/x509/#Certificate.ExcludedDNSDomains)
+populated.
 
-    <!-- CL 36696 -->
-    If any SAN extension, including with no DNS names, is present
-    in the certificate, then the Common Name from
-    [`Subject`](/pkg/crypto/x509/#Certificate.Subject) is ignored.
-    In previous releases, the code tested only whether DNS-name SANs were
-    present in a certificate.
+<!-- CL 36696 -->
+If any SAN extension, including with no DNS names, is present
+in the certificate, then the Common Name from
+[`Subject`](/pkg/crypto/x509/#Certificate.Subject) is ignored.
+In previous releases, the code tested only whether DNS-name SANs were
+present in a certificate.
 
 <!-- crypto/x509 -->
 
-[database/sql](/pkg/database/sql/)
+#### [database/sql](/pkg/database/sql/)
 
-:   <!-- CL 35476 -->
-    The package will now use a cached [`Stmt`](/pkg/database/sql/#Stmt) if
-    available in [`Tx.Stmt`](/pkg/database/sql/#Tx.Stmt).
-    This prevents statements from being re-prepared each time
-    [`Tx.Stmt`](/pkg/database/sql/#Tx.Stmt) is called.
+<!-- CL 35476 -->
+The package will now use a cached [`Stmt`](/pkg/database/sql/#Stmt) if
+available in [`Tx.Stmt`](/pkg/database/sql/#Tx.Stmt).
+This prevents statements from being re-prepared each time
+[`Tx.Stmt`](/pkg/database/sql/#Tx.Stmt) is called.
 
-    <!-- CL 38533 -->
-    The package now allows drivers to implement their own argument checkers by implementing
-    [`driver.NamedValueChecker`](/pkg/database/sql/driver/#NamedValueChecker).
-    This also allows drivers to support `OUTPUT` and `INOUT` parameter types.
-    [`Out`](/pkg/database/sql/#Out) should be used to return output parameters
-    when supported by the driver.
+<!-- CL 38533 -->
+The package now allows drivers to implement their own argument checkers by implementing
+[`driver.NamedValueChecker`](/pkg/database/sql/driver/#NamedValueChecker).
+This also allows drivers to support `OUTPUT` and `INOUT` parameter types.
+[`Out`](/pkg/database/sql/#Out) should be used to return output parameters
+when supported by the driver.
 
-    <!-- CL 39031 -->
-    [`Rows.Scan`](/pkg/database/sql/#Rows.Scan) can now scan user-defined string types.
-    Previously the package supported scanning into numeric types like `type` `Int` `int64`. It now also supports
-    scanning into string types like `type` `String` `string`.
+<!-- CL 39031 -->
+[`Rows.Scan`](/pkg/database/sql/#Rows.Scan) can now scan user-defined string types.
+Previously the package supported scanning into numeric types like `type` `Int` `int64`. It now also supports
+scanning into string types like `type` `String` `string`.
 
-    <!-- CL 40694 -->
-    The new [`DB.Conn`](/pkg/database/sql/#DB.Conn) method returns the new
-    [`Conn`](/pkg/database/sql/#Conn) type representing an
-    exclusive connection to the database from the connection pool. All queries run on
-    a [`Conn`](/pkg/database/sql/#Conn) will use the same underlying
-    connection until [`Conn.Close`](/pkg/database/sql/#Conn.Close) is called
-    to return the connection to the connection pool.
+<!-- CL 40694 -->
+The new [`DB.Conn`](/pkg/database/sql/#DB.Conn) method returns the new
+[`Conn`](/pkg/database/sql/#Conn) type representing an
+exclusive connection to the database from the connection pool. All queries run on
+a [`Conn`](/pkg/database/sql/#Conn) will use the same underlying
+connection until [`Conn.Close`](/pkg/database/sql/#Conn.Close) is called
+to return the connection to the connection pool.
 
 <!-- database/sql -->
 
-[encoding/asn1](/pkg/encoding/asn1/)
+#### [encoding/asn1](/pkg/encoding/asn1/)
 
-:   <!-- CL 38660 -->
-    The new
-    [`NullBytes`](/pkg/encoding/asn1/#NullBytes)
-    and
-    [`NullRawValue`](/pkg/encoding/asn1/#NullRawValue)
-    represent the ASN.1 NULL type.
+<!-- CL 38660 -->
+The new
+[`NullBytes`](/pkg/encoding/asn1/#NullBytes)
+and
+[`NullRawValue`](/pkg/encoding/asn1/#NullRawValue)
+represent the ASN.1 NULL type.
 
 <!-- encoding/asn1 -->
 
-[encoding/base32](/pkg/encoding/base32/)
+#### [encoding/base32](/pkg/encoding/base32/)
 
-:   <!-- CL 38634 -->
-    The new [Encoding.WithPadding](/pkg/encoding/base32/#Encoding.WithPadding)
-    method adds support for custom padding characters and disabling padding.
+<!-- CL 38634 -->
+The new [Encoding.WithPadding](/pkg/encoding/base32/#Encoding.WithPadding)
+method adds support for custom padding characters and disabling padding.
 
 <!-- encoding/base32 -->
 
-[encoding/csv](/pkg/encoding/csv/)
+#### [encoding/csv](/pkg/encoding/csv/)
 
-:   <!-- CL 41730 -->
-    The new field
-    [`Reader.ReuseRecord`](/pkg/encoding/csv/#Reader.ReuseRecord)
-    controls whether calls to
-    [`Read`](/pkg/encoding/csv/#Reader.Read)
-    may return a slice sharing the backing array of the previous
-    call's returned slice for improved performance.
+<!-- CL 41730 -->
+The new field
+[`Reader.ReuseRecord`](/pkg/encoding/csv/#Reader.ReuseRecord)
+controls whether calls to
+[`Read`](/pkg/encoding/csv/#Reader.Read)
+may return a slice sharing the backing array of the previous
+call's returned slice for improved performance.
 
 <!-- encoding/csv -->
 
-[fmt](/pkg/fmt/)
+#### [fmt](/pkg/fmt/)
 
-:   <!-- CL 37051 -->
-    The sharp flag ('`#`') is now supported when printing
-    floating point and complex numbers. It will always print a
-    decimal point
-    for `%e`, `%E`, `%f`, `%F`, `%g`
-    and `%G`; it will not remove trailing zeros
-    for `%g` and `%G`.
+<!-- CL 37051 -->
+The sharp flag ('`#`') is now supported when printing
+floating point and complex numbers. It will always print a
+decimal point
+for `%e`, `%E`, `%f`, `%F`, `%g`
+and `%G`; it will not remove trailing zeros
+for `%g` and `%G`.
 
 <!-- fmt -->
 
-[hash/fnv](/pkg/hash/fnv/)
+#### [hash/fnv](/pkg/hash/fnv/)
 
-:   <!-- CL 38356 -->
-    The package now includes 128-bit FNV-1 and FNV-1a hash support with
-    [`New128`](/pkg/hash/fnv/#New128) and
-    [`New128a`](/pkg/hash/fnv/#New128a), respectively.
+<!-- CL 38356 -->
+The package now includes 128-bit FNV-1 and FNV-1a hash support with
+[`New128`](/pkg/hash/fnv/#New128) and
+[`New128a`](/pkg/hash/fnv/#New128a), respectively.
 
 <!-- hash/fnv -->
 
-[html/template](/pkg/html/template/)
+#### [html/template](/pkg/html/template/)
 
-:   <!-- CL 37880, CL 40936 -->
-    The package now reports an error if a predefined escaper (one of
-    "html", "urlquery" and "js") is found in a pipeline and does not match
-    what the auto-escaper would have decided on its own.
-    This avoids certain security or correctness issues.
-    Now use of one of these escapers is always either a no-op or an error.
-    (The no-op case eases migration from [text/template](/pkg/text/template/).)
+<!-- CL 37880, CL 40936 -->
+The package now reports an error if a predefined escaper (one of
+"html", "urlquery" and "js") is found in a pipeline and does not match
+what the auto-escaper would have decided on its own.
+This avoids certain security or correctness issues.
+Now use of one of these escapers is always either a no-op or an error.
+(The no-op case eases migration from [text/template](/pkg/text/template/).)
 
 <!-- html/template -->
 
-[image](/pkg/image/)
+#### [image](/pkg/image/)
 
-:   <!-- CL 36734 -->
-    The [`Rectangle.Intersect`](/pkg/image/#Rectangle.Intersect)
-    method now returns a zero `Rectangle` when called on
-    adjacent but non-overlapping rectangles, as documented. In
-    earlier releases it would incorrectly return an empty but
-    non-zero `Rectangle`.
+<!-- CL 36734 -->
+The [`Rectangle.Intersect`](/pkg/image/#Rectangle.Intersect)
+method now returns a zero `Rectangle` when called on
+adjacent but non-overlapping rectangles, as documented. In
+earlier releases it would incorrectly return an empty but
+non-zero `Rectangle`.
 
 <!-- image -->
 
-[image/color](/pkg/image/color/)
+#### [image/color](/pkg/image/color/)
 
-:   <!-- CL 36732 -->
-    The YCbCr to RGBA conversion formula has been tweaked to ensure
-    that rounding adjustments span the complete [0, 0xffff] RGBA
-    range.
+<!-- CL 36732 -->
+The YCbCr to RGBA conversion formula has been tweaked to ensure
+that rounding adjustments span the complete [0, 0xffff] RGBA
+range.
 
 <!-- image/color -->
 
-[image/png](/pkg/image/png/)
+#### [image/png](/pkg/image/png/)
 
-:   <!-- CL 34150 -->
-    The new [`Encoder.BufferPool`](/pkg/image/png/#Encoder.BufferPool)
-    field allows specifying an [`EncoderBufferPool`](/pkg/image/png/#EncoderBufferPool),
-    that will be used by the encoder to get temporary `EncoderBuffer`
-    buffers when encoding a PNG image.
-    The use of a `BufferPool` reduces the number of
-    memory allocations performed while encoding multiple images.
+<!-- CL 34150 -->
+The new [`Encoder.BufferPool`](/pkg/image/png/#Encoder.BufferPool)
+field allows specifying an [`EncoderBufferPool`](/pkg/image/png/#EncoderBufferPool),
+that will be used by the encoder to get temporary `EncoderBuffer`
+buffers when encoding a PNG image.
+The use of a `BufferPool` reduces the number of
+memory allocations performed while encoding multiple images.
 
-    <!-- CL 38271 -->
-    The package now supports the decoding of transparent 8-bit
-    grayscale ("Gray8") images.
+<!-- CL 38271 -->
+The package now supports the decoding of transparent 8-bit
+grayscale ("Gray8") images.
 
 <!-- image/png -->
 
-[math/big](/pkg/math/big/)
+#### [math/big](/pkg/math/big/)
 
-:   <!-- CL 36487 -->
-    The new
-    [`IsInt64`](/pkg/math/big/#Int.IsInt64)
-    and
-    [`IsUint64`](/pkg/math/big/#Int.IsUint64)
-    methods report whether an `Int`
-    may be represented as an `int64` or `uint64`
-    value.
+<!-- CL 36487 -->
+The new
+[`IsInt64`](/pkg/math/big/#Int.IsInt64)
+and
+[`IsUint64`](/pkg/math/big/#Int.IsUint64)
+methods report whether an `Int`
+may be represented as an `int64` or `uint64`
+value.
 
 <!-- math/big -->
 
-[mime/multipart](/pkg/mime/multipart/)
+#### [mime/multipart](/pkg/mime/multipart/)
 
-:   <!-- CL 39223 -->
-    The new
-    [`FileHeader.Size`](/pkg/mime/multipart/#FileHeader.Size)
-    field describes the size of a file in a multipart message.
+<!-- CL 39223 -->
+The new
+[`FileHeader.Size`](/pkg/mime/multipart/#FileHeader.Size)
+field describes the size of a file in a multipart message.
 
 <!-- mime/multipart -->
 
-[net](/pkg/net/)
+#### [net](/pkg/net/)
 
-:   <!-- CL 32572 -->
-    The new
-    [`Resolver.StrictErrors`](/pkg/net/#Resolver.StrictErrors)
-    provides control over how Go's built-in DNS resolver handles
-    temporary errors during queries composed of multiple sub-queries,
-    such as an A+AAAA address lookup.
+<!-- CL 32572 -->
+The new
+[`Resolver.StrictErrors`](/pkg/net/#Resolver.StrictErrors)
+provides control over how Go's built-in DNS resolver handles
+temporary errors during queries composed of multiple sub-queries,
+such as an A+AAAA address lookup.
 
-    <!-- CL 37260 -->
-    The new
-    [`Resolver.Dial`](/pkg/net/#Resolver.Dial)
-    allows a `Resolver` to use a custom dial function.
+<!-- CL 37260 -->
+The new
+[`Resolver.Dial`](/pkg/net/#Resolver.Dial)
+allows a `Resolver` to use a custom dial function.
 
-    <!-- CL 40510 -->
-    [`JoinHostPort`](/pkg/net/#JoinHostPort) now only places an address in square brackets if the host contains a colon.
-    In previous releases it would also wrap addresses in square brackets if they contained a percent ('`%`') sign.
+<!-- CL 40510 -->
+[`JoinHostPort`](/pkg/net/#JoinHostPort) now only places an address in square brackets if the host contains a colon.
+In previous releases it would also wrap addresses in square brackets if they contained a percent ('`%`') sign.
 
-    <!-- CL 37913 -->
-    The new methods
-    [`TCPConn.SyscallConn`](/pkg/net/#TCPConn.SyscallConn),
-    [`IPConn.SyscallConn`](/pkg/net/#IPConn.SyscallConn),
-    [`UDPConn.SyscallConn`](/pkg/net/#UDPConn.SyscallConn),
-    and
-    [`UnixConn.SyscallConn`](/pkg/net/#UnixConn.SyscallConn)
-    provide access to the connections' underlying file descriptors.
+<!-- CL 37913 -->
+The new methods
+[`TCPConn.SyscallConn`](/pkg/net/#TCPConn.SyscallConn),
+[`IPConn.SyscallConn`](/pkg/net/#IPConn.SyscallConn),
+[`UDPConn.SyscallConn`](/pkg/net/#UDPConn.SyscallConn),
+and
+[`UnixConn.SyscallConn`](/pkg/net/#UnixConn.SyscallConn)
+provide access to the connections' underlying file descriptors.
 
-    <!-- 45088 -->
-    It is now safe to call [`Dial`](/pkg/net/#Dial) with the address obtained from
-    `(*TCPListener).String()` after creating the listener with
-    <code>[Listen](/pkg/net/#Listen)("tcp", ":0")</code>.
-    Previously it failed on some machines with half-configured IPv6 stacks.
+<!-- 45088 -->
+It is now safe to call [`Dial`](/pkg/net/#Dial) with the address obtained from
+`(*TCPListener).String()` after creating the listener with
+<code>[Listen](/pkg/net/#Listen)("tcp", ":0")</code>.
+Previously it failed on some machines with half-configured IPv6 stacks.
 
 <!-- net -->
 
-[net/http](/pkg/net/http/)
+#### [net/http](/pkg/net/http/)
 
-:   <!-- CL 37328 -->
-    The [`Cookie.String`](/pkg/net/http/#Cookie.String) method, used for
-    `Cookie` and `Set-Cookie` headers, now encloses values in double quotes
-    if the value contains either a space or a comma.
+<!-- CL 37328 -->
+The [`Cookie.String`](/pkg/net/http/#Cookie.String) method, used for
+`Cookie` and `Set-Cookie` headers, now encloses values in double quotes
+if the value contains either a space or a comma.
 
-    Server changes:
+Server changes:
 
-      - <!-- CL 38194 -->
-        [`ServeMux`](/pkg/net/http/#ServeMux) now ignores ports in the host
-        header when matching handlers. The host is matched unmodified for `CONNECT` requests.
-      - <!-- CL 44074 -->
-        The new [`Server.ServeTLS`](/pkg/net/http/#Server.ServeTLS) method wraps
-        [`Server.Serve`](/pkg/net/http/#Server.Serve) with added TLS support.
-      - <!-- CL 34727 -->
-        [`Server.WriteTimeout`](/pkg/net/http/#Server.WriteTimeout)
-        now applies to HTTP/2 connections and is enforced per-stream.
-      - <!-- CL 43231 -->
-        HTTP/2 now uses the priority write scheduler by default.
-        Frames are scheduled by following HTTP/2 priorities as described in
-        [RFC 7540 Section 5.3](https://tools.ietf.org/html/rfc7540#section-5.3).
-      - <!-- CL 36483 -->
-        The HTTP handler returned by [`StripPrefix`](/pkg/net/http/#StripPrefix)
-        now calls its provided handler with a modified clone of the original `*http.Request`.
-        Any code storing per-request state in maps keyed by `*http.Request` should
-        use
-        [`Request.Context`](/pkg/net/http/#Request.Context),
-        [`Request.WithContext`](/pkg/net/http/#Request.WithContext),
-        and
-        [`context.WithValue`](/pkg/context/#WithValue) instead.
-      - <!-- CL 35490 -->
-        [`LocalAddrContextKey`](/pkg/net/http/#LocalAddrContextKey) now contains
-        the connection's actual network address instead of the interface address used by the listener.
+  - <!-- CL 38194 -->
+    [`ServeMux`](/pkg/net/http/#ServeMux) now ignores ports in the host
+    header when matching handlers. The host is matched unmodified for `CONNECT` requests.
+  - <!-- CL 44074 -->
+    The new [`Server.ServeTLS`](/pkg/net/http/#Server.ServeTLS) method wraps
+    [`Server.Serve`](/pkg/net/http/#Server.Serve) with added TLS support.
+  - <!-- CL 34727 -->
+    [`Server.WriteTimeout`](/pkg/net/http/#Server.WriteTimeout)
+    now applies to HTTP/2 connections and is enforced per-stream.
+  - <!-- CL 43231 -->
+    HTTP/2 now uses the priority write scheduler by default.
+    Frames are scheduled by following HTTP/2 priorities as described in
+    [RFC 7540 Section 5.3](https://tools.ietf.org/html/rfc7540#section-5.3).
+  - <!-- CL 36483 -->
+    The HTTP handler returned by [`StripPrefix`](/pkg/net/http/#StripPrefix)
+    now calls its provided handler with a modified clone of the original `*http.Request`.
+    Any code storing per-request state in maps keyed by `*http.Request` should
+    use
+    [`Request.Context`](/pkg/net/http/#Request.Context),
+    [`Request.WithContext`](/pkg/net/http/#Request.WithContext),
+    and
+    [`context.WithValue`](/pkg/context/#WithValue) instead.
+  - <!-- CL 35490 -->
+    [`LocalAddrContextKey`](/pkg/net/http/#LocalAddrContextKey) now contains
+    the connection's actual network address instead of the interface address used by the listener.
 
-    Client & Transport changes:
+Client & Transport changes:
 
-      - <!-- CL 35488 -->
-        The [`Transport`](/pkg/net/http/#Transport)
-        now supports making requests via SOCKS5 proxy when the URL returned by
-        [`Transport.Proxy`](/pkg/net/http/#Transport.Proxy)
-        has the scheme `socks5`.
+  - <!-- CL 35488 -->
+    The [`Transport`](/pkg/net/http/#Transport)
+    now supports making requests via SOCKS5 proxy when the URL returned by
+    [`Transport.Proxy`](/pkg/net/http/#Transport.Proxy)
+    has the scheme `socks5`.
 
 <!-- net/http -->
 
-[net/http/fcgi](/pkg/net/http/fcgi/)
+#### [net/http/fcgi](/pkg/net/http/fcgi/)
 
-:   <!-- CL 40012 -->
-    The new
-    [`ProcessEnv`](/pkg/net/http/fcgi/#ProcessEnv)
-    function returns FastCGI environment variables associated with an HTTP request
-    for which there are no appropriate
-    [`http.Request`](/pkg/net/http/#Request)
-    fields, such as `REMOTE_USER`.
+<!-- CL 40012 -->
+The new
+[`ProcessEnv`](/pkg/net/http/fcgi/#ProcessEnv)
+function returns FastCGI environment variables associated with an HTTP request
+for which there are no appropriate
+[`http.Request`](/pkg/net/http/#Request)
+fields, such as `REMOTE_USER`.
 
 <!-- net/http/fcgi -->
 
-[net/http/httptest](/pkg/net/http/httptest/)
+#### [net/http/httptest](/pkg/net/http/httptest/)
 
-:   <!-- CL 34639 -->
-    The new
-    [`Server.Client`](/pkg/net/http/httptest/#Server.Client)
-    method returns an HTTP client configured for making requests to the test server.
+<!-- CL 34639 -->
+The new
+[`Server.Client`](/pkg/net/http/httptest/#Server.Client)
+method returns an HTTP client configured for making requests to the test server.
 
-    The new
-    [`Server.Certificate`](/pkg/net/http/httptest/#Server.Certificate)
-    method returns the test server's TLS certificate, if any.
+The new
+[`Server.Certificate`](/pkg/net/http/httptest/#Server.Certificate)
+method returns the test server's TLS certificate, if any.
 
 <!-- net/http/httptest -->
 
-[net/http/httputil](/pkg/net/http/httputil/)
+#### [net/http/httputil](/pkg/net/http/httputil/)
 
-:   <!-- CL 43712 -->
-    The [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
-    now proxies all HTTP/2 response trailers, even those not declared in the initial response
-    header. Such undeclared trailers are used by the gRPC protocol.
+<!-- CL 43712 -->
+The [`ReverseProxy`](/pkg/net/http/httputil/#ReverseProxy)
+now proxies all HTTP/2 response trailers, even those not declared in the initial response
+header. Such undeclared trailers are used by the gRPC protocol.
 
 <!-- net/http/httputil -->
 
-[os](/pkg/os/)
+#### [os](/pkg/os/)
 
-:   <!-- CL 36800 -->
-    The `os` package now uses the internal runtime poller
-    for file I/O.
-    This reduces the number of threads required for read/write
-    operations on pipes, and it eliminates races when one goroutine
-    closes a file while another is using the file for I/O.
+<!-- CL 36800 -->
+The `os` package now uses the internal runtime poller
+for file I/O.
+This reduces the number of threads required for read/write
+operations on pipes, and it eliminates races when one goroutine
+closes a file while another is using the file for I/O.
 
-    <!-- CL 37915 -->
-    On Windows,
-    [`Args`](/pkg/os/#Args)
-    is now populated without `shell32.dll`, improving process start-up time by 1-7 ms.
+<!-- CL 37915 -->
+On Windows,
+[`Args`](/pkg/os/#Args)
+is now populated without `shell32.dll`, improving process start-up time by 1-7 ms.
 
 <!-- os -->
 
-[os/exec](/pkg/os/exec/)
+#### [os/exec](/pkg/os/exec/)
 
-:   <!-- CL 37586 -->
-    The `os/exec` package now prevents child processes from being created with
-    any duplicate environment variables.
-    If [`Cmd.Env`](/pkg/os/exec/#Cmd.Env)
-    contains duplicate environment keys, only the last
-    value in the slice for each duplicate key is used.
+<!-- CL 37586 -->
+The `os/exec` package now prevents child processes from being created with
+any duplicate environment variables.
+If [`Cmd.Env`](/pkg/os/exec/#Cmd.Env)
+contains duplicate environment keys, only the last
+value in the slice for each duplicate key is used.
 
 <!-- os/exec -->
 
-[os/user](/pkg/os/user/)
+#### [os/user](/pkg/os/user/)
 
-:   <!-- CL 37664 -->
-    [`Lookup`](/pkg/os/user/#Lookup) and
-    [`LookupId`](/pkg/os/user/#LookupId) now
-    work on Unix systems when `CGO_ENABLED=0` by reading
-    the `/etc/passwd` file.
+<!-- CL 37664 -->
+[`Lookup`](/pkg/os/user/#Lookup) and
+[`LookupId`](/pkg/os/user/#LookupId) now
+work on Unix systems when `CGO_ENABLED=0` by reading
+the `/etc/passwd` file.
 
-    <!-- CL 33713 -->
-    [`LookupGroup`](/pkg/os/user/#LookupGroup) and
-    [`LookupGroupId`](/pkg/os/user/#LookupGroupId) now
-    work on Unix systems when `CGO_ENABLED=0` by reading
-    the `/etc/group` file.
+<!-- CL 33713 -->
+[`LookupGroup`](/pkg/os/user/#LookupGroup) and
+[`LookupGroupId`](/pkg/os/user/#LookupGroupId) now
+work on Unix systems when `CGO_ENABLED=0` by reading
+the `/etc/group` file.
 
 <!-- os/user -->
 
-[reflect](/pkg/reflect/)
+#### [reflect](/pkg/reflect/)
 
-:   <!-- CL 38335 -->
-    The new
-    [`MakeMapWithSize`](/pkg/reflect/#MakeMapWithSize)
-    function creates a map with a capacity hint.
+<!-- CL 38335 -->
+The new
+[`MakeMapWithSize`](/pkg/reflect/#MakeMapWithSize)
+function creates a map with a capacity hint.
 
 <!-- reflect -->
 
-[runtime](/pkg/runtime/)
+#### [runtime](/pkg/runtime/)
 
-:   <!-- CL 37233, CL 37726 -->
-    Tracebacks generated by the runtime and recorded in profiles are
-    now accurate in the presence of inlining.
-    To retrieve tracebacks programmatically, applications should use
-    [`runtime.CallersFrames`](/pkg/runtime/#CallersFrames)
-    rather than directly iterating over the results of
-    [`runtime.Callers`](/pkg/runtime/#Callers).
+<!-- CL 37233, CL 37726 -->
+Tracebacks generated by the runtime and recorded in profiles are
+now accurate in the presence of inlining.
+To retrieve tracebacks programmatically, applications should use
+[`runtime.CallersFrames`](/pkg/runtime/#CallersFrames)
+rather than directly iterating over the results of
+[`runtime.Callers`](/pkg/runtime/#Callers).
 
-    <!-- CL 38403 -->
-    On Windows, Go no longer forces the system timer to run at high
-    resolution when the program is idle.
-    This should reduce the impact of Go programs on battery life.
+<!-- CL 38403 -->
+On Windows, Go no longer forces the system timer to run at high
+resolution when the program is idle.
+This should reduce the impact of Go programs on battery life.
 
-    <!-- CL 29341 -->
-    On FreeBSD, `GOMAXPROCS` and
-    [`runtime.NumCPU`](/pkg/runtime/#NumCPU)
-    are now based on the process' CPU mask, rather than the total
-    number of CPUs.
+<!-- CL 29341 -->
+On FreeBSD, `GOMAXPROCS` and
+[`runtime.NumCPU`](/pkg/runtime/#NumCPU)
+are now based on the process' CPU mask, rather than the total
+number of CPUs.
 
-    <!-- CL 43641 -->
-    The runtime has preliminary support for Android O.
+<!-- CL 43641 -->
+The runtime has preliminary support for Android O.
 
 <!-- runtime -->
 
-[runtime/debug](/pkg/runtime/debug/)
+#### [runtime/debug](/pkg/runtime/debug/)
 
-:   <!-- CL 34013 -->
-    Calling
-    [`SetGCPercent`](/pkg/runtime/debug/#SetGCPercent)
-    with a negative value no longer runs an immediate garbage collection.
+<!-- CL 34013 -->
+Calling
+[`SetGCPercent`](/pkg/runtime/debug/#SetGCPercent)
+with a negative value no longer runs an immediate garbage collection.
 
 <!-- runtime/debug -->
 
-[runtime/trace](/pkg/runtime/trace/)
+#### [runtime/trace](/pkg/runtime/trace/)
 
-:   <!-- CL 36015 -->
-    The execution trace now displays mark assist events, which
-    indicate when an application goroutine is forced to assist
-    garbage collection because it is allocating too quickly.
+<!-- CL 36015 -->
+The execution trace now displays mark assist events, which
+indicate when an application goroutine is forced to assist
+garbage collection because it is allocating too quickly.
 
-    <!-- CL 40810 -->
-    "Sweep" events now encompass the entire process of finding free
-    space for an allocation, rather than recording each individual
-    span that is swept.
-    This reduces allocation latency when tracing allocation-heavy
-    programs.
-    The sweep event shows how many bytes were swept and how many
-    were reclaimed.
+<!-- CL 40810 -->
+"Sweep" events now encompass the entire process of finding free
+space for an allocation, rather than recording each individual
+span that is swept.
+This reduces allocation latency when tracing allocation-heavy
+programs.
+The sweep event shows how many bytes were swept and how many
+were reclaimed.
 
 <!-- runtime/trace -->
 
-[sync](/pkg/sync/)
+#### [sync](/pkg/sync/)
 
-:   <!-- CL 34310 -->
-    [`Mutex`](/pkg/sync/#Mutex) is now more fair.
+<!-- CL 34310 -->
+[`Mutex`](/pkg/sync/#Mutex) is now more fair.
 
 <!-- sync -->
 
-[syscall](/pkg/syscall/)
+#### [syscall](/pkg/syscall/)
 
-:   <!-- CL 36697 -->
-    The new field
-    [`Credential.NoSetGroups`](/pkg/syscall/#Credential.NoSetGroups)
-    controls whether Unix systems make a `setgroups` system call
-    to set supplementary groups when starting a new process.
+<!-- CL 36697 -->
+The new field
+[`Credential.NoSetGroups`](/pkg/syscall/#Credential.NoSetGroups)
+controls whether Unix systems make a `setgroups` system call
+to set supplementary groups when starting a new process.
 
-    <!-- CL 43512 -->
-    The new field
-    [`SysProcAttr.AmbientCaps`](/pkg/syscall/#SysProcAttr.AmbientCaps)
-    allows setting ambient capabilities on Linux 4.3+ when creating
-    a new process.
+<!-- CL 43512 -->
+The new field
+[`SysProcAttr.AmbientCaps`](/pkg/syscall/#SysProcAttr.AmbientCaps)
+allows setting ambient capabilities on Linux 4.3+ when creating
+a new process.
 
-    <!-- CL 37439 -->
-    On 64-bit x86 Linux, process creation latency has been optimized with
-    use of `CLONE_VFORK` and `CLONE_VM`.
+<!-- CL 37439 -->
+On 64-bit x86 Linux, process creation latency has been optimized with
+use of `CLONE_VFORK` and `CLONE_VM`.
 
-    <!-- CL 37913 -->
-    The new
-    [`Conn`](/pkg/syscall/#Conn)
-    interface describes some types in the
-    [`net`](/pkg/net/)
-    package that can provide access to their underlying file descriptor
-    using the new
-    [`RawConn`](/pkg/syscall/#RawConn)
-    interface.
+<!-- CL 37913 -->
+The new
+[`Conn`](/pkg/syscall/#Conn)
+interface describes some types in the
+[`net`](/pkg/net/)
+package that can provide access to their underlying file descriptor
+using the new
+[`RawConn`](/pkg/syscall/#RawConn)
+interface.
 
 <!-- syscall -->
 
-[testing/quick](/pkg/testing/quick/)
+#### [testing/quick](/pkg/testing/quick/)
 
-:   <!-- CL 39152 -->
-    The package now chooses values in the full range when
-    generating `int64` and `uint64` random
-    numbers; in earlier releases generated values were always
-    limited to the [-2<sup>62</sup>, 2<sup>62</sup>) range.
+<!-- CL 39152 -->
+The package now chooses values in the full range when
+generating `int64` and `uint64` random
+numbers; in earlier releases generated values were always
+limited to the [-2<sup>62</sup>, 2<sup>62</sup>) range.
 
-    In previous releases, using a nil
-    [`Config.Rand`](/pkg/testing/quick/#Config.Rand)
-    value caused a fixed deterministic random number generator to be used.
-    It now uses a random number generator seeded with the current time.
-    For the old behavior, set `Config.Rand` to `rand.New(rand.NewSource(0))`.
+In previous releases, using a nil
+[`Config.Rand`](/pkg/testing/quick/#Config.Rand)
+value caused a fixed deterministic random number generator to be used.
+It now uses a random number generator seeded with the current time.
+For the old behavior, set `Config.Rand` to `rand.New(rand.NewSource(0))`.
 
 <!-- testing/quick -->
 
-[text/template](/pkg/text/template/)
+#### [text/template](/pkg/text/template/)
 
-:   <!-- CL 38420 -->
-    The handling of empty blocks, which was broken by a Go 1.8
-    change that made the result dependent on the order of templates,
-    has been fixed, restoring the old Go 1.7 behavior.
+<!-- CL 38420 -->
+The handling of empty blocks, which was broken by a Go 1.8
+change that made the result dependent on the order of templates,
+has been fixed, restoring the old Go 1.7 behavior.
 
 <!-- text/template -->
 
-[time](/pkg/time/)
+#### [time](/pkg/time/)
 
-:   <!-- CL 36615 -->
-    The new methods
-    [`Duration.Round`](/pkg/time/#Duration.Round)
-    and
-    [`Duration.Truncate`](/pkg/time/#Duration.Truncate)
-    handle rounding and truncating durations to multiples of a given duration.
+<!-- CL 36615 -->
+The new methods
+[`Duration.Round`](/pkg/time/#Duration.Round)
+and
+[`Duration.Truncate`](/pkg/time/#Duration.Truncate)
+handle rounding and truncating durations to multiples of a given duration.
 
-    <!-- CL 35710 -->
-    Retrieving the time and sleeping now work correctly under Wine.
+<!-- CL 35710 -->
+Retrieving the time and sleeping now work correctly under Wine.
 
-    If a `Time` value has a monotonic clock reading, its
-    string representation (as returned by `String`) now includes a
-    final field `"m=±value"`, where `value` is the
-    monotonic clock reading formatted as a decimal number of seconds.
+If a `Time` value has a monotonic clock reading, its
+string representation (as returned by `String`) now includes a
+final field `"m=±value"`, where `value` is the
+monotonic clock reading formatted as a decimal number of seconds.
 
-    <!-- CL 44832 -->
-    The included `tzdata` timezone database has been
-    updated to version 2017b. As always, it is only used if the
-    system does not already have the database available.
+<!-- CL 44832 -->
+The included `tzdata` timezone database has been
+updated to version 2017b. As always, it is only used if the
+system does not already have the database available.
 
 <!-- time -->