From 2872a04f2796b369fb388c6f34780bbda2e64710 Mon Sep 17 00:00:00 2001
From: 6543 <6543@obermui.de>
Date: Wed, 5 Aug 2020 09:48:37 +0200
Subject: [PATCH] UserProfile Page: Render Description (#12415)

* If Description contain more that one line render it

* simpler ...

* only render if description exists

* Fix NPE in tests

* Update routers/user/profile.go

Co-authored-by: zeripath <art27@cantab.net>
---
 routers/user/profile.go     | 5 +++++
 templates/user/profile.tmpl | 5 ++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/routers/user/profile.go b/routers/user/profile.go
index 82fab4ad87..653d3cea22 100644
--- a/routers/user/profile.go
+++ b/routers/user/profile.go
@@ -12,6 +12,7 @@ import (
 
 	"code.gitea.io/gitea/models"
 	"code.gitea.io/gitea/modules/context"
+	"code.gitea.io/gitea/modules/markup/markdown"
 	"code.gitea.io/gitea/modules/setting"
 	"code.gitea.io/gitea/modules/util"
 	"code.gitea.io/gitea/routers/org"
@@ -97,6 +98,10 @@ func Profile(ctx *context.Context) {
 	// so everyone would get the same empty heatmap
 	ctx.Data["EnableHeatmap"] = setting.Service.EnableUserHeatmap && !ctxUser.KeepActivityPrivate
 	ctx.Data["HeatmapUser"] = ctxUser.Name
+	if len(ctxUser.Description) != 0 {
+		ctx.Data["RenderedDescription"] = string(markdown.Render([]byte(ctxUser.Description), ctx.Repo.RepoLink, map[string]string{"mode": "document"}))
+	}
+
 	showPrivate := ctx.IsSigned && (ctx.User.IsAdmin || ctx.User.ID == ctxUser.ID)
 
 	orgs, err := models.GetOrgsByUserID(ctxUser.ID, showPrivate)
diff --git a/templates/user/profile.tmpl b/templates/user/profile.tmpl
index 563bc78307..bc2960b3b9 100644
--- a/templates/user/profile.tmpl
+++ b/templates/user/profile.tmpl
@@ -34,10 +34,9 @@
 									<a target="_blank" rel="noopener noreferrer me" href="{{.Owner.Website}}">{{.Owner.Website}}</a>
 								</li>
 							{{end}}
-							{{if .Owner.Description}}
+							{{if $.RenderedDescription}}
 								<li>
-									{{svg "octicon-info" 16}}
-									<span>{{.Owner.Description}}</span>
+									<div class="render-content markdown">{{$.RenderedDescription|Str2html}}</div>
 								</li>
 							{{end}}
 							{{range .OpenIDs}}