Markdown: add [view] link on top of /+show/ for blob

If the file ends with ".md" assume the contents is markdown
and offer a [view] link to /+doc/ version of the same file.

Change-Id: I68d468618bccb14a84e31e7da1b8df4d7dc6b06b
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java
index ba06b36..72fde6d 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java
@@ -85,6 +85,9 @@
 
     if (content != null) {
       data.put("lines", prettify(path, content));
+      if (path != null && path.endsWith(".md")) {
+        data.put("docUrl", GitilesView.doc().copyFrom(view).toUrl());
+      }
     } else {
       data.put("lines", null);
       data.put("size", Long.toString(loader.getSize()));
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy
index b96a732..d78187f 100644
--- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy
+++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy
@@ -215,6 +215,7 @@
  * @param? fileUrl optional URL to a detail view of this file.
  * @param? logUrl optional URL to a log for this file.
  * @param? blameUrl optional URL to a blame for this file.
+ * @param? docUrl optional URL to view rendered file.
  */
 {template .blobHeader}
 <div class="sha1">
@@ -222,6 +223,7 @@
   {if $fileUrl}{sp}[<a href="{$fileUrl}">{msg desc="detail view of a file"}file{/msg}</a>]{/if}
   {if $logUrl}{sp}[<a href="{$logUrl}">{msg desc="history for a file"}log{/msg}</a>]{/if}
   {if $blameUrl}{sp}[<a href="{$blameUrl}">{msg desc="blame for a file"}blame{/msg}</a>]{/if}
+  {if $docUrl}{sp}[<a href="{$docUrl}">{msg desc="view rendered file"}view{/msg}</a>]{/if}
 </div>
 {/template}