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(