Include autolink text in Markdown heading anchors
This commit is contained in:
@@ -128,6 +128,9 @@ func markdownHeadingText(heading *ast.Heading, source []byte) string {
|
||||
case *ast.CodeSpan:
|
||||
result.WriteString(node.Value.Value(source))
|
||||
return
|
||||
case *ast.AutoLink:
|
||||
result.WriteString(node.Label.Value(source))
|
||||
return
|
||||
}
|
||||
for child := node.FirstChild(); child != nil; child = child.NextSibling() {
|
||||
appendNode(child)
|
||||
|
||||
@@ -16,6 +16,8 @@ func TestCheckMarkdownLinksResolvesCommittedDestinationsAndFragments(t *testing.
|
||||
"# Start\n" +
|
||||
"[target](target.md?view=1#TARGET)\n" +
|
||||
"[same](#START)\n" +
|
||||
"[url heading](autolinks.md#httpsexampleinvalid)\n" +
|
||||
"[email heading](autolinks.md#maintainerexampleinvalid)\n" +
|
||||
"[top](#)\n" +
|
||||
"[directory](assets/?view=1)\n" +
|
||||
"[binary](image.bin#not-an-anchor)\n" +
|
||||
@@ -26,6 +28,7 @@ func TestCheckMarkdownLinksResolvesCommittedDestinationsAndFragments(t *testing.
|
||||
repository, tree := committedMarkdownTree(t, map[string][]byte{
|
||||
"guide.md": guide,
|
||||
"target.md": []byte("# Target\n"),
|
||||
"autolinks.md": []byte("# <https://example.invalid>\n# <maintainer@example.invalid>\n"),
|
||||
"docs/a b.md": []byte("# Café\n"),
|
||||
"assets/file.md": []byte("# Asset\n"),
|
||||
"nested/guide.md": []byte("# Nested\n[same](#NESTED)\n[query](?view=1#nested)\n"),
|
||||
|
||||
@@ -61,7 +61,10 @@ func TestParseMarkdownHeadingAnchors(t *testing.T) {
|
||||
"# Foo\n" +
|
||||
"# Foo-1\n" +
|
||||
"# Foo\n" +
|
||||
"# Foo-1\n")
|
||||
"# Foo-1\n" +
|
||||
"# <https://example.invalid>\n" +
|
||||
"# <maintainer@example.invalid>\n" +
|
||||
"# Contact <maintainer@example.invalid> Today\n")
|
||||
document := parseMarkdown(source)
|
||||
for _, anchor := range []string{
|
||||
"café--東京-code-here-bold",
|
||||
@@ -71,13 +74,16 @@ func TestParseMarkdownHeadingAnchors(t *testing.T) {
|
||||
"foo-1-1",
|
||||
"foo-2",
|
||||
"foo-1-2",
|
||||
"httpsexampleinvalid",
|
||||
"maintainerexampleinvalid",
|
||||
"contact-maintainerexampleinvalid-today",
|
||||
} {
|
||||
if _, ok := document.anchors[anchor]; !ok {
|
||||
t.Errorf("missing anchor %q in %#v", anchor, document.anchors)
|
||||
}
|
||||
}
|
||||
if len(document.anchors) != 7 {
|
||||
t.Fatalf("found %d anchors, want 7: %#v", len(document.anchors), document.anchors)
|
||||
if len(document.anchors) != 10 {
|
||||
t.Fatalf("found %d anchors, want 10: %#v", len(document.anchors), document.anchors)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user