From 96a6dae0c86e505e129ce4af33886f4dda69d169 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Fri, 25 Oct 2013 09:24:23 -0400
Subject: [PATCH] Strip Markdown extension from rendered [[WikiLink]] (issue-324)

---
 src/main/java/com/gitblit/wicket/pages/DocsPage.java       |    2 +-
 src/main/java/com/gitblit/wicket/pages/RepositoryPage.java |   13 ++++++++++++-
 src/main/java/com/gitblit/wicket/pages/MarkdownPage.java   |    2 +-
 src/main/java/com/gitblit/wicket/pages/SummaryPage.java    |    2 +-
 4 files changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/gitblit/wicket/pages/DocsPage.java b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
index 58471ef..2634ea8 100644
--- a/src/main/java/com/gitblit/wicket/pages/DocsPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/DocsPage.java
@@ -74,7 +74,7 @@
 			// load the document
 			String [] encodings = GitBlit.getEncodings();
 			markdown = JGitUtils.getStringContent(r, head.getTree(), doc, encodings);
-			html = MarkdownUtils.transformMarkdown(markdown, getLinkRenderer());
+			html = MarkdownUtils.transformMarkdown(markdown, getMarkdownLinkRenderer());
 		}
 
 		Fragment fragment = null;
diff --git a/src/main/java/com/gitblit/wicket/pages/MarkdownPage.java b/src/main/java/com/gitblit/wicket/pages/MarkdownPage.java
index e0c85cf..0034984 100644
--- a/src/main/java/com/gitblit/wicket/pages/MarkdownPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/MarkdownPage.java
@@ -79,7 +79,7 @@
 
 		String htmlText;
 		try {
-			htmlText = MarkdownUtils.transformMarkdown(markdownText, getLinkRenderer());
+			htmlText = MarkdownUtils.transformMarkdown(markdownText, getMarkdownLinkRenderer());
 		} catch (Exception e) {
 			logger.error("failed to transform markdown", e);
 			if (markdownText == null) {
diff --git a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
index 157f9e7..508b865 100644
--- a/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/RepositoryPage.java
@@ -653,7 +653,7 @@
 	 *
 	 * @return a link renderer
 	 */
-	protected LinkRenderer getLinkRenderer() {
+	protected LinkRenderer getMarkdownLinkRenderer() {
 		RevCommit head = JGitUtils.getCommit(r, "HEAD");
 		final String id = getBestCommitId(head);
 		LinkRenderer renderer = new LinkRenderer() {
@@ -662,10 +662,21 @@
 				try {
 					String fsc = GitBlit.getString(Keys.web.forwardSlashCharacter, "/");
 					String path = URLEncoder.encode(node.getText().replace(' ', '-'), "UTF-8").replace("%2F", fsc);
+
+					// extract document name
 					String name = node.getText();
 					if (name.indexOf('/') > -1) {
 						name = name.substring(name.lastIndexOf('/') + 1);
 					}
+
+					// strip Markdown extension
+					for (String ext : GitBlit.getStrings(Keys.web.markdownExtensions)) {
+						String x = "." + ext;
+						if (name.endsWith(x)) {
+							name = name.substring(0, name.length() - x.length());
+							break;
+						}
+					}
 					String url = urlFor(MarkdownPage.class, WicketUtils.newPathParameter(repositoryName, id, path)).toString();
 					return new Rendering(url, name);
 				} catch (UnsupportedEncodingException e) {
diff --git a/src/main/java/com/gitblit/wicket/pages/SummaryPage.java b/src/main/java/com/gitblit/wicket/pages/SummaryPage.java
index 827e079..3ea71d6 100644
--- a/src/main/java/com/gitblit/wicket/pages/SummaryPage.java
+++ b/src/main/java/com/gitblit/wicket/pages/SummaryPage.java
@@ -167,7 +167,7 @@
 				String [] encodings = GitBlit.getEncodings();
 				markdownText = JGitUtils.getStringContent(r, head.getTree(), readme, encodings);
 				if (isMarkdown) {
-					htmlText = MarkdownUtils.transformMarkdown(markdownText, getLinkRenderer());
+					htmlText = MarkdownUtils.transformMarkdown(markdownText, getMarkdownLinkRenderer());
 				} else {
 					htmlText = MarkdownUtils.transformPlainText(markdownText);
 				}

--
Gitblit v1.9.1