From 46f0b9dbbd96d72a60d75b5ee9c2df0deb939378 Mon Sep 17 00:00:00 2001 From: Christian Muehlhaeuser Date: Fri, 13 Dec 2019 22:50:18 +0100 Subject: [PATCH] Detect mailto links and fix their markup --- elements.go | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/elements.go b/elements.go index 3f57420..9b187fe 100644 --- a/elements.go +++ b/elements.go @@ -4,6 +4,7 @@ import ( "bytes" "fmt" "io" + "strings" "github.com/yuin/goldmark/ast" astext "github.com/yuin/goldmark/extension/ast" @@ -208,12 +209,17 @@ func (tr *TermRenderer) NewElement(node ast.Node, source []byte) Element { } case ast.KindAutoLink: n := node.(*ast.AutoLink) - text := string(n.Text(source)) + u := string(n.URL(source)) + label := string(n.Label(source)) + if n.AutoLinkType == ast.AutoLinkEmail && !strings.HasPrefix(strings.ToLower(u), "mailto:") { + u = "mailto:" + u + } + return Element{ Renderer: &LinkElement{ - Text: text, + Text: label, BaseURL: ctx.options.BaseURL, - URL: string(n.URL(source)), + URL: u, }, }