mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-04 13:28:25 +00:00 
			
		
		
		
	Improve opengraph previews (#26851)
Add more useful Open Graph metadata for commit and file URLs: - Set `og:title` to the page title, which is a concise summary in both cases (`<commit message> · <commit hash>` and `<filename> at <branch>`, respectively) - Set `og:description` to the commit message body, if available - Set `og:url` to the relevant URLs instead of the repo URL Also move the relevant meta tags into a separate template as they now take up the majority of the base head template.
This commit is contained in:
		@@ -25,42 +25,7 @@
 | 
			
		||||
			.ui.secondary.menu .dropdown.item > .menu { margin-top: 0; }
 | 
			
		||||
		</style>
 | 
			
		||||
	</noscript>
 | 
			
		||||
{{if .PageIsUserProfile}}
 | 
			
		||||
	<meta property="og:title" content="{{.ContextUser.DisplayName}}">
 | 
			
		||||
	<meta property="og:type" content="profile">
 | 
			
		||||
	<meta property="og:image" content="{{.ContextUser.AvatarLink ctx}}">
 | 
			
		||||
	<meta property="og:url" content="{{.ContextUser.HTMLURL}}">
 | 
			
		||||
	{{if .ContextUser.Description}}
 | 
			
		||||
		<meta property="og:description" content="{{.ContextUser.Description}}">
 | 
			
		||||
	{{end}}
 | 
			
		||||
{{else if .Repository}}
 | 
			
		||||
	{{if .Issue}}
 | 
			
		||||
		<meta property="og:title" content="{{.Issue.Title}}">
 | 
			
		||||
		<meta property="og:url" content="{{.Issue.HTMLURL}}">
 | 
			
		||||
		{{if .Issue.Content}}
 | 
			
		||||
			<meta property="og:description" content="{{.Issue.Content}}">
 | 
			
		||||
		{{end}}
 | 
			
		||||
	{{else}}
 | 
			
		||||
		<meta property="og:title" content="{{.Repository.Name}}">
 | 
			
		||||
		<meta property="og:url" content="{{.Repository.HTMLURL}}">
 | 
			
		||||
		{{if .Repository.Description}}
 | 
			
		||||
			<meta property="og:description" content="{{.Repository.Description}}">
 | 
			
		||||
		{{end}}
 | 
			
		||||
	{{end}}
 | 
			
		||||
	<meta property="og:type" content="object">
 | 
			
		||||
	{{if (.Repository.AvatarLink ctx)}}
 | 
			
		||||
		<meta property="og:image" content="{{.Repository.AvatarLink ctx}}">
 | 
			
		||||
	{{else}}
 | 
			
		||||
		<meta property="og:image" content="{{.Repository.Owner.AvatarLink ctx}}">
 | 
			
		||||
	{{end}}
 | 
			
		||||
{{else}}
 | 
			
		||||
	<meta property="og:title" content="{{AppName}}">
 | 
			
		||||
	<meta property="og:type" content="website">
 | 
			
		||||
	<meta property="og:image" content="{{AssetUrlPrefix}}/img/logo.png">
 | 
			
		||||
	<meta property="og:url" content="{{AppUrl}}">
 | 
			
		||||
	<meta property="og:description" content="{{MetaDescription}}">
 | 
			
		||||
{{end}}
 | 
			
		||||
	<meta property="og:site_name" content="{{AppName}}">
 | 
			
		||||
	{{template "base/head_opengraph" .}}
 | 
			
		||||
	{{template "base/head_style" .}}
 | 
			
		||||
	{{template "custom/header" .}}
 | 
			
		||||
</head>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										42
									
								
								templates/base/head_opengraph.tmpl
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								templates/base/head_opengraph.tmpl
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,42 @@
 | 
			
		||||
{{if .PageIsUserProfile}}
 | 
			
		||||
	<meta property="og:title" content="{{.ContextUser.DisplayName}}">
 | 
			
		||||
	<meta property="og:type" content="profile">
 | 
			
		||||
	<meta property="og:image" content="{{.ContextUser.AvatarLink ctx}}">
 | 
			
		||||
	<meta property="og:url" content="{{.ContextUser.HTMLURL}}">
 | 
			
		||||
	{{if .ContextUser.Description}}
 | 
			
		||||
		<meta property="og:description" content="{{.ContextUser.Description}}">
 | 
			
		||||
	{{end}}
 | 
			
		||||
{{else if .Repository}}
 | 
			
		||||
	{{if .Issue}}
 | 
			
		||||
		<meta property="og:title" content="{{.Issue.Title}}">
 | 
			
		||||
		<meta property="og:url" content="{{.Issue.HTMLURL}}">
 | 
			
		||||
		{{if .Issue.Content}}
 | 
			
		||||
			<meta property="og:description" content="{{.Issue.Content}}">
 | 
			
		||||
		{{end}}
 | 
			
		||||
	{{else if or .PageIsDiff .IsViewFile}}
 | 
			
		||||
		<meta property="og:title" content="{{.Title}}">
 | 
			
		||||
		<meta property="og:url" content="{{AppUrl}}{{.Link}}">
 | 
			
		||||
		{{if and .PageIsDiff (IsMultilineCommitMessage .Commit.Message)}}
 | 
			
		||||
			<meta property="og:description" content="{{RenderCommitBody $.Context .Commit.Message $.RepoLink $.Repository.ComposeMetas}}">
 | 
			
		||||
		{{end}}
 | 
			
		||||
	{{else}}
 | 
			
		||||
		<meta property="og:title" content="{{.Repository.Name}}">
 | 
			
		||||
		<meta property="og:url" content="{{.Repository.HTMLURL}}">
 | 
			
		||||
		{{if .Repository.Description}}
 | 
			
		||||
			<meta property="og:description" content="{{.Repository.Description}}">
 | 
			
		||||
		{{end}}
 | 
			
		||||
	{{end}}
 | 
			
		||||
	<meta property="og:type" content="object">
 | 
			
		||||
	{{if (.Repository.AvatarLink ctx)}}
 | 
			
		||||
		<meta property="og:image" content="{{.Repository.AvatarLink ctx}}">
 | 
			
		||||
	{{else}}
 | 
			
		||||
		<meta property="og:image" content="{{.Repository.Owner.AvatarLink ctx}}">
 | 
			
		||||
	{{end}}
 | 
			
		||||
{{else}}
 | 
			
		||||
	<meta property="og:title" content="{{AppName}}">
 | 
			
		||||
	<meta property="og:type" content="website">
 | 
			
		||||
	<meta property="og:image" content="{{AssetUrlPrefix}}/img/logo.png">
 | 
			
		||||
	<meta property="og:url" content="{{AppUrl}}">
 | 
			
		||||
	<meta property="og:description" content="{{MetaDescription}}">
 | 
			
		||||
{{end}}
 | 
			
		||||
<meta property="og:site_name" content="{{AppName}}">
 | 
			
		||||
		Reference in New Issue
	
	Block a user