From 20d304a93554c667572206afdc2aa772977aa1f6 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Mon, 17 Sep 2012 09:26:32 -0400
Subject: [PATCH] Adjust blob view layout to improve line links (issue 130)

---
 src/com/gitblit/wicket/pages/BlobPage.java |    9 +++++++--
 resources/gitblit.css                      |   13 +++++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/resources/gitblit.css b/resources/gitblit.css
index 861fc41..bbd3c0c 100644
--- a/resources/gitblit.css
+++ b/resources/gitblit.css
@@ -178,6 +178,19 @@
     vertical-align:top;
 }
 
+/* CSS trick to workaround #link topOfWindow offset problem */
+#lines .line {
+    border-top: 160px solid transparent;
+    margin-top: -160px;
+    -webkit-background-clip: padding-box;
+    -moz-background-clip: padding;
+    background-clip: padding-box;
+}
+
+#lines span:target {
+	background-color: #ffffbf;
+}
+
 #nums pre {
     white-space: pre;
 }
diff --git a/src/com/gitblit/wicket/pages/BlobPage.java b/src/com/gitblit/wicket/pages/BlobPage.java
index f1d802d..ebe539f 100644
--- a/src/com/gitblit/wicket/pages/BlobPage.java
+++ b/src/com/gitblit/wicket/pages/BlobPage.java
@@ -149,7 +149,7 @@
 		sb.append("<!-- start nums column -->");
 		sb.append("<td id=\"nums\">");
 		sb.append("<pre>");
-		String numPattern = "<a id=\"L{0}\" href=\"#L{0}\">{0}</a>\n";
+		String numPattern = "<a href=\"#L{0}\">{0}</a>\n";
 		for (int i = 0; i < lines.length; i++) {
 			sb.append(MessageFormat.format(numPattern, "" + (i + 1)));
 		}
@@ -165,7 +165,12 @@
 		} else {
 			sb.append("<pre class=\"plainprint\">");
 		}
-		sb.append(StringUtils.escapeForHtml(source, true));
+		lines = StringUtils.escapeForHtml(source, true).split("\n");
+		for (int i = 0; i < lines.length; i++) {
+			sb.append(MessageFormat.format("<span id=\"L{0}\" class=\"line\">", "" + (i + 1)));
+			sb.append(lines[i]);
+			sb.append("</span>");
+		}
 		sb.append("</pre>");
 		sb.append("</div>");
 		sb.append("</td>");

--
Gitblit v1.9.1