James Moger
2013-12-09 0c0bb9c0c479b0c04e918f1dfb57e2998d0b3ecc
src/main/java/com/gitblit/wicket/MarkupProcessor.java
@@ -15,6 +15,8 @@
 */
package com.gitblit.wicket;
import static org.pegdown.FastEncoder.encode;
import java.io.Serializable;
import java.io.StringWriter;
import java.io.UnsupportedEncodingException;
@@ -40,6 +42,8 @@
import org.eclipse.mylyn.wikitext.tracwiki.core.TracWikiLanguage;
import org.eclipse.mylyn.wikitext.twiki.core.TWikiLanguage;
import org.pegdown.LinkRenderer;
import org.pegdown.ast.ExpImageNode;
import org.pegdown.ast.RefImageNode;
import org.pegdown.ast.WikiLinkNode;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -296,6 +300,34 @@
    */
   private void parse(final MarkupDocument doc, final String repositoryName, final String commitId) {
      LinkRenderer renderer = new LinkRenderer() {
         @Override
         public Rendering render(ExpImageNode node, String text) {
            if (node.url.indexOf("://") == -1) {
               // repository-relative image link
               String path = doc.getRelativePath(node.url);
               String url = getWicketUrl(RawPage.class, repositoryName, commitId, path);
               return new Rendering(url, text);
            }
            // absolute image link
            return new Rendering(node.url, text);
         }
         @Override
         public Rendering render(RefImageNode node, String url, String title, String alt) {
            Rendering rendering;
            if (url.indexOf("://") == -1) {
               // repository-relative image link
               String path = doc.getRelativePath(url);
               String wurl = getWicketUrl(RawPage.class, repositoryName, commitId, path);
               rendering = new Rendering(wurl, alt);
            } else {
               // absolute image link
               rendering = new Rendering(url, alt);
            }
            return StringUtils.isEmpty(title) ? rendering : rendering.withAttribute("title", encode(title));
         }
         @Override
         public Rendering render(WikiLinkNode node) {
            String path = doc.getRelativePath(node.getText());