From 3daba4304dba818d54eb9b74d8d35df5aab8fee5 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 22 Nov 2013 10:36:05 -0500
Subject: [PATCH] Add pull request linking in changelog to generated documentation

---
 src/main/java/com/gitblit/wicket/pages/BasePage.java |   16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/BasePage.java b/src/main/java/com/gitblit/wicket/pages/BasePage.java
index cb9de9f..ec69a71 100644
--- a/src/main/java/com/gitblit/wicket/pages/BasePage.java
+++ b/src/main/java/com/gitblit/wicket/pages/BasePage.java
@@ -88,6 +88,16 @@
 		}
 	}
 
+	protected String getCanonicalUrl() {
+		return getCanonicalUrl(getClass(), getPageParameters());
+	}
+
+	protected String getCanonicalUrl(Class<? extends BasePage> clazz, PageParameters params) {
+		String relativeUrl = urlFor(clazz, params).toString();
+		String canonicalUrl = RequestUtils.toAbsolutePath(relativeUrl);
+		return canonicalUrl;
+	}
+
 	protected String getLanguageCode() {
 		return GitBlitWebSession.get().getLocale().getLanguage();
 	}
@@ -129,6 +139,9 @@
 
 	@Override
 	protected void setHeaders(WebResponse response)	{
+		// set canonical link as http header for SEO (issue-304)
+		// https://support.google.com/webmasters/answer/139394?hl=en
+		response.setHeader("Link" ,MessageFormat.format("<{0}>; rel=\"canonical\"", getCanonicalUrl()));
 		int expires = GitBlit.getInteger(Keys.web.pageCacheExpires, 0);
 		if (expires > 0) {
 			// pages are personalized for the authenticated user so they must be
@@ -199,7 +212,8 @@
 			add(new Label("title", siteName));
 		}
 
-		ExternalLink rootLink = new ExternalLink("rootLink", urlFor(GitBlitWebApp.HOME_PAGE_CLASS, null).toString());
+		String rootLinkUrl = GitBlit.getString(Keys.web.rootLink, urlFor(GitBlitWebApp.HOME_PAGE_CLASS, null).toString());
+		ExternalLink rootLink = new ExternalLink("rootLink", rootLinkUrl);
 		WicketUtils.setHtmlTooltip(rootLink, GitBlit.getString(Keys.web.siteName, Constants.NAME));
 		add(rootLink);
 

--
Gitblit v1.9.1