diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/doc/MarkdownToHtml.java b/gitiles-servlet/src/main/java/com/google/gitiles/doc/MarkdownToHtml.java
index 078ee1e..7b30e27 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/doc/MarkdownToHtml.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/doc/MarkdownToHtml.java
@@ -371,12 +371,19 @@
 
   @VisibleForTesting
   String href(String target) {
-    if (HtmlBuilder.isValidHttpUri(target)) {
+    if (target.startsWith("#") || HtmlBuilder.isValidHttpUri(target)) {
       return target;
     }
 
+    String anchor = "";
+    int hash = target.indexOf('#');
+    if (hash >= 0) {
+      anchor = target.substring(hash);
+      target = target.substring(0, hash);
+    }
+
     if (target.startsWith("/")) {
-      return toPath(target);
+      return toPath(target) + anchor;
     }
 
     String dir = trimLastComponent(filePath);
@@ -395,7 +402,8 @@
         break;
       }
     }
-    return toPath(dir + '/' + target);
+
+    return toPath(dir + '/' + target) + anchor;
   }
 
   private static String trimLastComponent(String path) {
diff --git a/gitiles-servlet/src/test/java/com/google/gitiles/doc/LinkTest.java b/gitiles-servlet/src/test/java/com/google/gitiles/doc/LinkTest.java
index 7942253..51154b0 100644
--- a/gitiles-servlet/src/test/java/com/google/gitiles/doc/LinkTest.java
+++ b/gitiles-servlet/src/test/java/com/google/gitiles/doc/LinkTest.java
@@ -96,6 +96,10 @@
   }
 
   private static void testMarkdownInRoot(MarkdownToHtml md) {
+    assertThat(md.href("#Help")).isEqualTo("#Help");
+    assertThat(md.href("setup.md#Help"))
+        .isEqualTo("/g/repo/+/HEAD/setup.md#Help");
+
     assertThat(md.href("setup.md")).isEqualTo("/g/repo/+/HEAD/setup.md");
     assertThat(md.href("./setup.md")).isEqualTo("/g/repo/+/HEAD/setup.md");
     assertThat(md.href("./")).isEqualTo("/g/repo/+/HEAD/");
@@ -108,6 +112,10 @@
   }
 
   private static void testMarkdownInTree(MarkdownToHtml md) {
+    assertThat(md.href("#Help")).isEqualTo("#Help");
+    assertThat(md.href("setup.md#Help"))
+        .isEqualTo("/g/repo/+/HEAD/doc/setup.md#Help");
+
     assertThat(md.href("setup.md")).isEqualTo("/g/repo/+/HEAD/doc/setup.md");
     assertThat(md.href("./setup.md")).isEqualTo("/g/repo/+/HEAD/doc/setup.md");
     assertThat(md.href("../setup.md")).isEqualTo("/g/repo/+/HEAD/setup.md");
