go/doc/comment: do not turn `` into “

``` is Markdown, not Go doc comment, but some small fraction of users get confused.

In a set of 55M Go doc comments drawn from the latest version of
all public Go modules known to the module proxy in spring 2020,
the current Go 1.19 gofmt reformats about 1.57M of them.
Out of those 1.57M comments, 8k of them (about 0.5%) contain ```.

Instead of rewriting ``` to “`, leave it alone.

For #51082.

Change-Id: I1c8c88aac7ef75ec03e1a396b84ffe711c46f941
Reviewed-on: https://go-review.googlesource.com/c/go/+/410359
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Russ Cox <rsc@golang.org>
This commit is contained in:
Russ Cox 2022-06-03 09:18:57 -04:00
parent ce757e94e0
commit 6c7b223c2b
2 changed files with 12 additions and 1 deletions

View file

@ -840,6 +840,14 @@ func (d *parseDoc) parseText(out []Text, s string, autoLink bool) []Text {
}
switch {
case strings.HasPrefix(t, "``"):
if len(t) >= 3 && t[2] == '`' {
// Do not convert `` inside ```, in case people are mistakenly writing Markdown.
i += 3
for i < len(t) && t[i] == '`' {
i++
}
break
}
writeUntil(i)
w.WriteRune('“')
i += 2

View file

@ -1,12 +1,15 @@
-- input --
Doubled single quotes like `` and '' turn into Unicode double quotes,
but single quotes ` and ' do not.
Misplaced markdown fences ``` do not either.
-- gofmt --
Doubled single quotes like “ and ” turn into Unicode double quotes,
but single quotes ` and ' do not.
Misplaced markdown fences ``` do not either.
-- text --
Doubled single quotes like “ and ” turn into Unicode double quotes, but single
quotes ` and ' do not.
quotes ` and ' do not. Misplaced markdown fences ``` do not either.
-- html --
<p>Doubled single quotes like “ and ” turn into Unicode double quotes,
but single quotes ` and &apos; do not.
Misplaced markdown fences ``` do not either.