Markdown: accept GitHub style -- for <hr>

GitHub flavor markdown apparently accepts -- surrounded by
blank lines as an <hr> in HTML:

  Blah blah lots of text.

  --

  More text after the rule.

Support this by adding a custom rule to the parser that
recognizes this style and creates a HRule node.

Change-Id: I406e6d9def04ff2e3589a72316c28b3ddc773cd0
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/doc/GitilesMarkdown.java b/gitiles-servlet/src/main/java/com/google/gitiles/doc/GitilesMarkdown.java
index e47434a..040326b 100644
--- a/gitiles-servlet/src/main/java/com/google/gitiles/doc/GitilesMarkdown.java
+++ b/gitiles-servlet/src/main/java/com/google/gitiles/doc/GitilesMarkdown.java
@@ -23,6 +23,7 @@
 import org.pegdown.PegDownProcessor;
 import org.pegdown.ast.Node;
 import org.pegdown.ast.RootNode;
+import org.pegdown.ast.SimpleNode;
 import org.pegdown.plugins.BlockPluginParser;
 import org.pegdown.plugins.PegDownPlugins;
 import org.slf4j.Logger;
@@ -75,6 +76,7 @@
   public Rule[] blockPluginRules() {
     return new Rule[] {
         cols(),
+        hr(),
         note(),
         toc(),
     };
@@ -86,6 +88,14 @@
         push(new TocNode()));
   }
 
+  public Rule hr() {
+    // GitHub flavor markdown recognizes "--" as a rule.
+    return NodeSequence(
+        NonindentSpace(), string("--"), zeroOrMore('-'), Newline(),
+        oneOrMore(BlankLine()),
+        push(new SimpleNode(SimpleNode.Type.HRule)));
+  }
+
   public Rule note() {
     StringBuilderVar body = new StringBuilderVar();
     return NodeSequence(