From 3f676760599896f168e454d132b368658751974a Mon Sep 17 00:00:00 2001
From: Andrew <write@imaginarycode.com>
Date: Sat, 11 Feb 2017 07:57:33 -0500
Subject: [PATCH] Implement basic Open Graph support. (#901)

---
 models/user.go           |  5 +++++
 templates/base/head.tmpl | 24 ++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/models/user.go b/models/user.go
index c7ceacaa6..0e1710de7 100644
--- a/models/user.go
+++ b/models/user.go
@@ -252,6 +252,11 @@ func (u *User) HomeLink() string {
 	return setting.AppSubURL + "/" + u.Name
 }
 
+// HTMLURL returns the user or organization's full link.
+func (u *User) HTMLURL() string {
+	return setting.AppURL + u.Name
+}
+
 // GenerateEmailActivateCode generates an activate code based on user information and given e-mail.
 func (u *User) GenerateEmailActivateCode(email string) string {
 	code := base.CreateTimeLimitCode(
diff --git a/templates/base/head.tmpl b/templates/base/head.tmpl
index 18805953b..f4b883335 100644
--- a/templates/base/head.tmpl
+++ b/templates/base/head.tmpl
@@ -46,6 +46,30 @@
 	<link rel="stylesheet" href="{{AppSubUrl}}/plugins/dropzone-4.2.0/dropzone.css">
 {{end}}
 	<style class="list-search-style"></style>
+
+	<!-- Open Graph -->
+{{if .PageIsUserProfile}}
+	<meta property="og:title" content="{{.Owner.Name}}" />
+	<meta property="og:type" content="profile" />
+	<meta property="og:image" content="{{.Owner.AvatarLink}}" />
+	<meta property="og:url" content="{{.Owner.HTMLURL}}" />
+	<meta property="og:site_name" content="{{AppName}}" />
+{{else if .Repository}}
+	<meta property="og:title" content="{{.Repository.Name}}" />
+	<meta property="og:type" content="object" />
+	<meta property="og:image" content="{{.Repository.Owner.AvatarLink}}" />
+	<meta property="og:url" content="{{.Repository.HTMLURL}}" />
+	{{if .Repository.Description}}
+	<meta property="og:description" content="{{.Repository.Description}}" />
+	{{end}}
+	<meta property="og:site_name" content="{{AppName}}" />
+{{else}}
+	<meta property="og:title" content="{{AppName}}">
+	<meta property="og:type" content="website" />
+	<meta property="og:image" content="{{AppSubUrl}}/img/gitea-lg.png" />
+	<meta property="og:url" content="{{AppUrl}}" />
+	<meta property="og:description" content="Gitea (Git with a cup of tea) is a painless self-hosted Git service written in Go">
+{{end}}
 </head>
 <body>
 	<div class="full height">