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(