Launcher: Update helm contents renderer to open anchors in new tab

Change-Id: If6698f5d6dedc4753e38f1cf96dceb3685f42eaf
diff --git a/core/installer/server/launcher/server.go b/core/installer/server/launcher/server.go
index f75a86c..e4483e1 100644
--- a/core/installer/server/launcher/server.go
+++ b/core/installer/server/launcher/server.go
@@ -14,6 +14,7 @@
 
 	"github.com/Masterminds/sprig/v3"
 	"github.com/gomarkdown/markdown"
+	"github.com/gomarkdown/markdown/html"
 )
 
 //go:embed templates/launcher.html
@@ -51,6 +52,9 @@
 		return nil, err
 	}
 	ret := []AppLauncherInfo{}
+	mdRenderer := html.NewRenderer(html.RendererOptions{
+		Flags: html.CommonFlags | html.HrefTargetBlank,
+	})
 	for _, a := range all {
 		if a.URL == "" && len(a.Help) == 0 {
 			continue
@@ -59,7 +63,7 @@
 			Id:         a.Id,
 			Name:       a.AppId,
 			Icon:       template.HTML(a.Icon),
-			Help:       toMarkdown(a.Help),
+			Help:       toMarkdown(a.Help, mdRenderer),
 			URL:        a.URL,
 			DisplayURL: shortenURL(a.URL, a.Env.Domain),
 		})
@@ -173,7 +177,7 @@
 	}
 }
 
-func toMarkdown(help []installer.HelpDocument) []HelpDocumentRendered {
+func toMarkdown(help []installer.HelpDocument, renderer markdown.Renderer) []HelpDocumentRendered {
 	if help == nil {
 		return nil
 	}
@@ -181,8 +185,8 @@
 	for _, h := range help {
 		ret = append(ret, HelpDocumentRendered{
 			Title:    h.Title,
-			Contents: template.HTML(markdown.ToHTML([]byte(h.Contents), nil, nil)),
-			Children: toMarkdown(h.Children),
+			Contents: template.HTML(markdown.ToHTML([]byte(h.Contents), nil, renderer)),
+			Children: toMarkdown(h.Children, renderer),
 		})
 	}
 	return ret