mirror of
https://github.com/apache/zeppelin
synced 2026-05-24 09:38:26 +00:00
style: Use zeppelin checkstyle.xml
This commit is contained in:
parent
13e0dc42a7
commit
a1e779d648
8 changed files with 235 additions and 221 deletions
|
|
@ -33,13 +33,17 @@ import org.apache.zeppelin.scheduler.SchedulerFactory;
|
|||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
/** MarkdownInterpreter interpreter for Zeppelin. */
|
||||
/**
|
||||
* MarkdownInterpreter interpreter for Zeppelin.
|
||||
*/
|
||||
public class Markdown extends Interpreter {
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(Markdown.class);
|
||||
|
||||
private MarkdownParser parser;
|
||||
|
||||
/** Markdown Parser Type. */
|
||||
/**
|
||||
* Markdown Parser Type.
|
||||
*/
|
||||
public enum MarkdownParserType {
|
||||
PEGDOWN {
|
||||
@Override
|
||||
|
|
@ -82,7 +86,8 @@ public class Markdown extends Interpreter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void close() {}
|
||||
public void close() {
|
||||
}
|
||||
|
||||
@Override
|
||||
public InterpreterResult interpret(String markdownText, InterpreterContext interpreterContext) {
|
||||
|
|
@ -99,7 +104,8 @@ public class Markdown extends Interpreter {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void cancel(InterpreterContext context) {}
|
||||
public void cancel(InterpreterContext context) {
|
||||
}
|
||||
|
||||
@Override
|
||||
public FormType getFormType() {
|
||||
|
|
|
|||
|
|
@ -23,7 +23,9 @@ import org.slf4j.LoggerFactory;
|
|||
|
||||
import java.io.IOException;
|
||||
|
||||
/** Markdown Parser using markdown4j processor . */
|
||||
/**
|
||||
* Markdown Parser using markdown4j processor.
|
||||
*/
|
||||
public class Markdown4jParser implements MarkdownParser {
|
||||
private Markdown4jProcessor processor;
|
||||
|
||||
|
|
|
|||
|
|
@ -17,7 +17,9 @@
|
|||
|
||||
package org.apache.zeppelin.markdown;
|
||||
|
||||
/** Abstract Markdown Parser. */
|
||||
/**
|
||||
* Abstract Markdown Parser.
|
||||
*/
|
||||
public interface MarkdownParser {
|
||||
String render(String markdownText);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -23,7 +23,10 @@ import java.util.HashMap;
|
|||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* Implementation of Var to support parameter parsing
|
||||
* Implementation of Var to support parameter parsing.
|
||||
*
|
||||
* @param <K> Key
|
||||
* @param <V> Value
|
||||
*/
|
||||
public class ParamVar<K, V> extends Var<Map<K, V>> {
|
||||
|
||||
|
|
|
|||
|
|
@ -32,9 +32,9 @@ public class PegdownParser implements MarkdownParser {
|
|||
|
||||
public PegdownParser() {
|
||||
PegDownPlugins plugins = new PegDownPlugins.Builder()
|
||||
.withPlugin(PegdownYumlPlugin.class)
|
||||
.withPlugin(PegdownWebSequencelPlugin.class)
|
||||
.build();
|
||||
.withPlugin(PegdownYumlPlugin.class)
|
||||
.withPlugin(PegdownWebSequencelPlugin.class)
|
||||
.build();
|
||||
processor = new PegDownProcessor(OPTIONS, PARSING_TIMEOUT_AS_MILLIS, plugins);
|
||||
}
|
||||
|
||||
|
|
@ -56,9 +56,9 @@ public class PegdownParser implements MarkdownParser {
|
|||
*/
|
||||
public static String wrapWithMarkdownClassDiv(String html) {
|
||||
return new StringBuilder()
|
||||
.append("<div class=\"markdown-body\">\n")
|
||||
.append(html)
|
||||
.append("\n</div>")
|
||||
.toString();
|
||||
.append("<div class=\"markdown-body\">\n")
|
||||
.append(html)
|
||||
.append("\n</div>")
|
||||
.toString();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,15 +46,13 @@ public class PegdownWebSequencelPlugin extends Parser implements BlockPluginPars
|
|||
|
||||
public PegdownWebSequencelPlugin() {
|
||||
super(PegdownParser.OPTIONS,
|
||||
PegdownParser.PARSING_TIMEOUT_AS_MILLIS,
|
||||
DefaultParseRunnerProvider);
|
||||
PegdownParser.PARSING_TIMEOUT_AS_MILLIS,
|
||||
DefaultParseRunnerProvider);
|
||||
}
|
||||
|
||||
public PegdownWebSequencelPlugin(Integer options,
|
||||
Long maxParsingTimeInMillis,
|
||||
ParseRunnerProvider parseRunnerProvider,
|
||||
public PegdownWebSequencelPlugin(Integer opts, Long millis, ParseRunnerProvider provider,
|
||||
PegDownPlugins plugins) {
|
||||
super(options, maxParsingTimeInMillis, parseRunnerProvider, plugins);
|
||||
super(opts, millis, provider, plugins);
|
||||
}
|
||||
|
||||
public static final String TAG = "%%%";
|
||||
|
|
@ -76,17 +74,16 @@ public class PegdownWebSequencelPlugin extends Parser implements BlockPluginPars
|
|||
StringBuilderVar body = new StringBuilderVar();
|
||||
|
||||
return NodeSequence(
|
||||
StartMarker(),
|
||||
Optional(
|
||||
String("style="),
|
||||
Sequence(OneOrMore(Letter()), style.append(match()), Spn1())),
|
||||
Sequence(Body(), body.append(match())),
|
||||
EndMarker(),
|
||||
push(
|
||||
new ExpImageNode("title",
|
||||
createWebsequenceUrl(style.getString(), body.getString()),
|
||||
new TextNode(""))
|
||||
)
|
||||
StartMarker(),
|
||||
Optional(
|
||||
String("style="),
|
||||
Sequence(OneOrMore(Letter()), style.append(match()), Spn1())),
|
||||
Sequence(Body(), body.append(match())),
|
||||
EndMarker(),
|
||||
push(
|
||||
new ExpImageNode("title",
|
||||
createWebsequenceUrl(style.getString(), body.getString()),
|
||||
new TextNode("")))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -102,12 +99,12 @@ public class PegdownWebSequencelPlugin extends Parser implements BlockPluginPars
|
|||
|
||||
try {
|
||||
String query = new StringBuilder()
|
||||
.append("style=")
|
||||
.append(style)
|
||||
.append("&message=")
|
||||
.append(URLEncoder.encode(content, "UTF-8"))
|
||||
.append("&apiVersion=1")
|
||||
.toString();
|
||||
.append("style=")
|
||||
.append(style)
|
||||
.append("&message=")
|
||||
.append(URLEncoder.encode(content, "UTF-8"))
|
||||
.append("&apiVersion=1")
|
||||
.toString();
|
||||
|
||||
URL url = new URL(WEBSEQ_URL);
|
||||
URLConnection conn = url.openConnection();
|
||||
|
|
@ -117,7 +114,8 @@ public class PegdownWebSequencelPlugin extends Parser implements BlockPluginPars
|
|||
writer.flush();
|
||||
|
||||
StringBuilder response = new StringBuilder();
|
||||
reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
|
||||
reader = new BufferedReader(
|
||||
new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
|
||||
String line;
|
||||
while ((line = reader.readLine()) != null) {
|
||||
response.append(line);
|
||||
|
|
|
|||
|
|
@ -39,8 +39,8 @@ public class PegdownYumlPlugin extends Parser implements BlockPluginParser {
|
|||
|
||||
public PegdownYumlPlugin() {
|
||||
super(PegdownParser.OPTIONS,
|
||||
PegdownParser.PARSING_TIMEOUT_AS_MILLIS,
|
||||
DefaultParseRunnerProvider);
|
||||
PegdownParser.PARSING_TIMEOUT_AS_MILLIS,
|
||||
DefaultParseRunnerProvider);
|
||||
}
|
||||
|
||||
public PegdownYumlPlugin(Integer options,
|
||||
|
|
@ -75,20 +75,21 @@ public class PegdownYumlPlugin extends Parser implements BlockPluginParser {
|
|||
StringBuilderVar body = new StringBuilderVar();
|
||||
|
||||
return NodeSequence(
|
||||
StartMarker(),
|
||||
ZeroOrMore(
|
||||
Sequence(
|
||||
ParameterName(), name.append(match()),
|
||||
String("="),
|
||||
OneOrMore(Alphanumeric()), value.append(match())
|
||||
),
|
||||
Sp(),
|
||||
params.put(name.getString(), value.getString()),
|
||||
name.clear(), value.clear()
|
||||
)
|
||||
, Body(), body.append(match())
|
||||
, EndMarker()
|
||||
, push(new ExpImageNode("title", createYumlUrl(params.get(), body.getString()), new TextNode("")))
|
||||
StartMarker(),
|
||||
ZeroOrMore(
|
||||
Sequence(
|
||||
ParameterName(), name.append(match()),
|
||||
String("="),
|
||||
OneOrMore(Alphanumeric()), value.append(match())),
|
||||
Sp(),
|
||||
params.put(name.getString(), value.getString()),
|
||||
name.clear(), value.clear()),
|
||||
Body(),
|
||||
body.append(match()),
|
||||
EndMarker(),
|
||||
push(
|
||||
new ExpImageNode(
|
||||
"title", createYumlUrl(params.get(), body.getString()), new TextNode("")))
|
||||
);
|
||||
}
|
||||
|
||||
|
|
@ -118,19 +119,21 @@ public class PegdownYumlPlugin extends Parser implements BlockPluginParser {
|
|||
|
||||
mergedStyle.append(style);
|
||||
|
||||
if (null != params.get("dir"))
|
||||
if (null != params.get("dir")) {
|
||||
mergedStyle.append(";dir:" + params.get("dir"));
|
||||
}
|
||||
|
||||
if (null != params.get("scale"))
|
||||
if (null != params.get("scale")) {
|
||||
mergedStyle.append(";scale:" + params.get("scale"));
|
||||
}
|
||||
|
||||
return new StringBuilder()
|
||||
.append("http://yuml.me/diagram/")
|
||||
.append(mergedStyle.toString() + "/")
|
||||
.append(type + "/")
|
||||
.append(encodedBody)
|
||||
.append("." + format)
|
||||
.toString();
|
||||
.append("http://yuml.me/diagram/")
|
||||
.append(mergedStyle.toString() + "/")
|
||||
.append(type + "/")
|
||||
.append(encodedBody)
|
||||
.append("." + format)
|
||||
.toString();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
|||
|
|
@ -80,39 +80,39 @@ public class PegdownParserTest {
|
|||
public void testStrikethrough() {
|
||||
InterpreterResult result = md.interpret("This is ~~deleted~~ text", null);
|
||||
assertEquals(
|
||||
wrapWithMarkdownClassDiv("<p>This is <del>deleted</del> text</p>"), result.message());
|
||||
wrapWithMarkdownClassDiv("<p>This is <del>deleted</del> text</p>"), result.message());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testItalics() {
|
||||
InterpreterResult result = md.interpret("This is *italics* text", null);
|
||||
assertEquals(
|
||||
wrapWithMarkdownClassDiv("<p>This is <em>italics</em> text</p>"), result.message());
|
||||
wrapWithMarkdownClassDiv("<p>This is <em>italics</em> text</p>"), result.message());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testStrongEmphasis() {
|
||||
InterpreterResult result = md.interpret("This is **strong emphasis** text", null);
|
||||
assertEquals(
|
||||
wrapWithMarkdownClassDiv("<p>This is <strong>strong emphasis</strong> text</p>"),
|
||||
result.message());
|
||||
wrapWithMarkdownClassDiv("<p>This is <strong>strong emphasis</strong> text</p>"),
|
||||
result.message());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testOrderedList() {
|
||||
String input =
|
||||
new StringBuilder()
|
||||
.append("1. First ordered list item\n")
|
||||
.append("2. Another item")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("1. First ordered list item\n")
|
||||
.append("2. Another item")
|
||||
.toString();
|
||||
|
||||
String expected =
|
||||
new StringBuilder()
|
||||
.append("<ol>\n")
|
||||
.append(" <li>First ordered list item</li>\n")
|
||||
.append(" <li>Another item</li>\n")
|
||||
.append("</ol>")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("<ol>\n")
|
||||
.append(" <li>First ordered list item</li>\n")
|
||||
.append(" <li>Another item</li>\n")
|
||||
.append("</ol>")
|
||||
.toString();
|
||||
|
||||
InterpreterResult result = md.interpret(input, null);
|
||||
assertEquals(wrapWithMarkdownClassDiv(expected), result.message());
|
||||
|
|
@ -121,20 +121,20 @@ public class PegdownParserTest {
|
|||
@Test
|
||||
public void testUnorderedList() {
|
||||
String input =
|
||||
new StringBuilder()
|
||||
.append("* Unordered list can use asterisks\n")
|
||||
.append("- Or minuses\n")
|
||||
.append("+ Or pluses")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("* Unordered list can use asterisks\n")
|
||||
.append("- Or minuses\n")
|
||||
.append("+ Or pluses")
|
||||
.toString();
|
||||
|
||||
String expected =
|
||||
new StringBuilder()
|
||||
.append("<ul>\n")
|
||||
.append(" <li>Unordered list can use asterisks</li>\n")
|
||||
.append(" <li>Or minuses</li>\n")
|
||||
.append(" <li>Or pluses</li>\n")
|
||||
.append("</ul>")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("<ul>\n")
|
||||
.append(" <li>Unordered list can use asterisks</li>\n")
|
||||
.append(" <li>Or minuses</li>\n")
|
||||
.append(" <li>Or pluses</li>\n")
|
||||
.append("</ul>")
|
||||
.toString();
|
||||
|
||||
InterpreterResult result = md.interpret(input, null);
|
||||
assertEquals(wrapWithMarkdownClassDiv(expected), result.message());
|
||||
|
|
@ -143,49 +143,49 @@ public class PegdownParserTest {
|
|||
@Test
|
||||
public void testLinks() {
|
||||
String input =
|
||||
new StringBuilder()
|
||||
.append("[I'm an inline-style link](https://www.google.com)\n")
|
||||
.append("\n")
|
||||
.append(
|
||||
"[I'm an inline-style link with title](https://www.google.com \"Google's Homepage\")\n")
|
||||
.append("\n")
|
||||
.append("[I'm a reference-style link][Arbitrary case-insensitive reference text]\n")
|
||||
.append("\n")
|
||||
.append("[I'm a relative reference to a repository file](../blob/master/LICENSE)\n")
|
||||
.append("\n")
|
||||
.append("[You can use numbers for reference-style link definitions][1]\n")
|
||||
.append("\n")
|
||||
.append("Or leave it empty and use the [link text itself].\n")
|
||||
.append("\n")
|
||||
.append("URLs and URLs in angle brackets will automatically get turned into links. \n")
|
||||
.append("http://www.example.com or <http://www.example.com> and sometimes \n")
|
||||
.append("example.com (but not on Github, for example).\n")
|
||||
.append("\n")
|
||||
.append("Some text to show that the reference links can follow later.\n")
|
||||
.append("\n")
|
||||
.append("[arbitrary case-insensitive reference text]: https://www.mozilla.org\n")
|
||||
.append("[1]: http://slashdot.org\n")
|
||||
.append("[link text itself]: http://www.reddit.com")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("[I'm an inline-style link](https://www.google.com)\n")
|
||||
.append("\n")
|
||||
.append(
|
||||
"[I'm an inline-style link with title](https://www.google.com \"Google's Homepage\")\n")
|
||||
.append("\n")
|
||||
.append("[I'm a reference-style link][Arbitrary case-insensitive reference text]\n")
|
||||
.append("\n")
|
||||
.append("[I'm a relative reference to a repository file](../blob/master/LICENSE)\n")
|
||||
.append("\n")
|
||||
.append("[You can use numbers for reference-style link definitions][1]\n")
|
||||
.append("\n")
|
||||
.append("Or leave it empty and use the [link text itself].\n")
|
||||
.append("\n")
|
||||
.append("URLs and URLs in angle brackets will automatically get turned into links. \n")
|
||||
.append("http://www.example.com or <http://www.example.com> and sometimes \n")
|
||||
.append("example.com (but not on Github, for example).\n")
|
||||
.append("\n")
|
||||
.append("Some text to show that the reference links can follow later.\n")
|
||||
.append("\n")
|
||||
.append("[arbitrary case-insensitive reference text]: https://www.mozilla.org\n")
|
||||
.append("[1]: http://slashdot.org\n")
|
||||
.append("[link text itself]: http://www.reddit.com")
|
||||
.toString();
|
||||
|
||||
String expected =
|
||||
new StringBuilder()
|
||||
.append(
|
||||
"<p><a href=\"https://www.google.com\">I’m an inline-style link</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"https://www.google.com\" title=\"Google's Homepage\">I’m an inline-style link with title</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"https://www.mozilla.org\">I’m a reference-style link</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"../blob/master/LICENSE\">I’m a relative reference to a repository file</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"http://slashdot.org\">You can use numbers for reference-style link definitions</a></p>\n")
|
||||
.append(
|
||||
"<p>Or leave it empty and use the <a href=\"http://www.reddit.com\">link text itself</a>.</p>\n")
|
||||
.append(
|
||||
"<p>URLs and URLs in angle brackets will automatically get turned into links.<br/><a href=\"http://www.example.com\">http://www.example.com</a> or <a href=\"http://www.example.com\">http://www.example.com</a> and sometimes<br/>example.com (but not on Github, for example).</p>\n")
|
||||
.append("<p>Some text to show that the reference links can follow later.</p>")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append(
|
||||
"<p><a href=\"https://www.google.com\">I’m an inline-style link</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"https://www.google.com\" title=\"Google's Homepage\">I’m an inline-style link with title</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"https://www.mozilla.org\">I’m a reference-style link</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"../blob/master/LICENSE\">I’m a relative reference to a repository file</a></p>\n")
|
||||
.append(
|
||||
"<p><a href=\"http://slashdot.org\">You can use numbers for reference-style link definitions</a></p>\n")
|
||||
.append(
|
||||
"<p>Or leave it empty and use the <a href=\"http://www.reddit.com\">link text itself</a>.</p>\n")
|
||||
.append(
|
||||
"<p>URLs and URLs in angle brackets will automatically get turned into links.<br/><a href=\"http://www.example.com\">http://www.example.com</a> or <a href=\"http://www.example.com\">http://www.example.com</a> and sometimes<br/>example.com (but not on Github, for example).</p>\n")
|
||||
.append("<p>Some text to show that the reference links can follow later.</p>")
|
||||
.toString();
|
||||
|
||||
InterpreterResult result = md.interpret(input, null);
|
||||
assertEquals(wrapWithMarkdownClassDiv(expected), result.message());
|
||||
|
|
@ -195,71 +195,71 @@ public class PegdownParserTest {
|
|||
public void testInlineCode() {
|
||||
InterpreterResult result = md.interpret("Inline `code` has `back-ticks around` it.", null);
|
||||
assertEquals(
|
||||
wrapWithMarkdownClassDiv(
|
||||
"<p>Inline <code>code</code> has <code>back-ticks around</code> it.</p>"),
|
||||
result.message());
|
||||
wrapWithMarkdownClassDiv(
|
||||
"<p>Inline <code>code</code> has <code>back-ticks around</code> it.</p>"),
|
||||
result.message());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBlockQuotes() {
|
||||
InterpreterResult r1 =
|
||||
md.interpret(
|
||||
"> Blockquotes are very handy in email to emulate reply text.\n"
|
||||
+ "> This line is part of the same quote.",
|
||||
null);
|
||||
md.interpret(
|
||||
"> Blockquotes are very handy in email to emulate reply text.\n"
|
||||
+ "> This line is part of the same quote.",
|
||||
null);
|
||||
assertEquals(
|
||||
wrapWithMarkdownClassDiv(
|
||||
"<blockquote>\n"
|
||||
+ " <p>Blockquotes are very handy in email to emulate reply text.<br/>This line is part of the same quote.</p>\n"
|
||||
+ "</blockquote>"),
|
||||
r1.message());
|
||||
wrapWithMarkdownClassDiv(
|
||||
"<blockquote>\n"
|
||||
+ " <p>Blockquotes are very handy in email to emulate reply text.<br/>This line is part of the same quote.</p>\n"
|
||||
+ "</blockquote>"),
|
||||
r1.message());
|
||||
|
||||
InterpreterResult r2 =
|
||||
md.interpret(
|
||||
"> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **MarkdownInterpreter** into a blockquote. ",
|
||||
null);
|
||||
md.interpret(
|
||||
"> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **MarkdownInterpreter** into a blockquote. ",
|
||||
null);
|
||||
assertEquals(
|
||||
wrapWithMarkdownClassDiv(
|
||||
"<blockquote>\n"
|
||||
+ " <p>This is a very long line that will still be quoted properly when it wraps. Oh boy let’s keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can <em>put</em> <strong>MarkdownInterpreter</strong> into a blockquote. </p>\n"
|
||||
+ "</blockquote>"),
|
||||
r2.message());
|
||||
wrapWithMarkdownClassDiv(
|
||||
"<blockquote>\n"
|
||||
+ " <p>This is a very long line that will still be quoted properly when it wraps. Oh boy let’s keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can <em>put</em> <strong>MarkdownInterpreter</strong> into a blockquote. </p>\n"
|
||||
+ "</blockquote>"),
|
||||
r2.message());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSimpleTable() {
|
||||
String input =
|
||||
new StringBuilder()
|
||||
.append("MarkdownInterpreter | Less | Pretty\n")
|
||||
.append("--- | --- | ---\n")
|
||||
.append("*Still* | `renders` | **nicely**\n")
|
||||
.append("1 | 2 | 3")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("MarkdownInterpreter | Less | Pretty\n")
|
||||
.append("--- | --- | ---\n")
|
||||
.append("*Still* | `renders` | **nicely**\n")
|
||||
.append("1 | 2 | 3")
|
||||
.toString();
|
||||
|
||||
String expected =
|
||||
new StringBuilder()
|
||||
.append("<table>\n")
|
||||
.append(" <thead>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <th>MarkdownInterpreter </th>\n")
|
||||
.append(" <th>Less </th>\n")
|
||||
.append(" <th>Pretty</th>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </thead>\n")
|
||||
.append(" <tbody>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td><em>Still</em> </td>\n")
|
||||
.append(" <td><code>renders</code> </td>\n")
|
||||
.append(" <td><strong>nicely</strong></td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td>1 </td>\n")
|
||||
.append(" <td>2 </td>\n")
|
||||
.append(" <td>3</td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </tbody>\n")
|
||||
.append("</table>")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("<table>\n")
|
||||
.append(" <thead>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <th>MarkdownInterpreter </th>\n")
|
||||
.append(" <th>Less </th>\n")
|
||||
.append(" <th>Pretty</th>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </thead>\n")
|
||||
.append(" <tbody>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td><em>Still</em> </td>\n")
|
||||
.append(" <td><code>renders</code> </td>\n")
|
||||
.append(" <td><strong>nicely</strong></td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td>1 </td>\n")
|
||||
.append(" <td>2 </td>\n")
|
||||
.append(" <td>3</td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </tbody>\n")
|
||||
.append("</table>")
|
||||
.toString();
|
||||
|
||||
InterpreterResult result = md.interpret(input, null);
|
||||
assertEquals(wrapWithMarkdownClassDiv(expected), result.message());
|
||||
|
|
@ -268,37 +268,37 @@ public class PegdownParserTest {
|
|||
@Test
|
||||
public void testAlignedTable() {
|
||||
String input =
|
||||
new StringBuilder()
|
||||
.append("| First Header | Second Header | Third Header |\n")
|
||||
.append("| :----------- | :-----------: | -------------------: |\n")
|
||||
.append("| First row | Data | Very long data entry |\n")
|
||||
.append("| Second row | **Cell** | *Cell* |")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("| First Header | Second Header | Third Header |\n")
|
||||
.append("| :----------- | :-----------: | -------------------: |\n")
|
||||
.append("| First row | Data | Very long data entry |\n")
|
||||
.append("| Second row | **Cell** | *Cell* |")
|
||||
.toString();
|
||||
|
||||
String expected =
|
||||
new StringBuilder()
|
||||
.append("<table>\n")
|
||||
.append(" <thead>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <th align=\"left\">First Header </th>\n")
|
||||
.append(" <th align=\"center\">Second Header </th>\n")
|
||||
.append(" <th align=\"right\">Third Header </th>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </thead>\n")
|
||||
.append(" <tbody>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td align=\"left\">First row </td>\n")
|
||||
.append(" <td align=\"center\">Data </td>\n")
|
||||
.append(" <td align=\"right\">Very long data entry </td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td align=\"left\">Second row </td>\n")
|
||||
.append(" <td align=\"center\"><strong>Cell</strong> </td>\n")
|
||||
.append(" <td align=\"right\"><em>Cell</em> </td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </tbody>\n")
|
||||
.append("</table>")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("<table>\n")
|
||||
.append(" <thead>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <th align=\"left\">First Header </th>\n")
|
||||
.append(" <th align=\"center\">Second Header </th>\n")
|
||||
.append(" <th align=\"right\">Third Header </th>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </thead>\n")
|
||||
.append(" <tbody>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td align=\"left\">First row </td>\n")
|
||||
.append(" <td align=\"center\">Data </td>\n")
|
||||
.append(" <td align=\"right\">Very long data entry </td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" <tr>\n")
|
||||
.append(" <td align=\"left\">Second row </td>\n")
|
||||
.append(" <td align=\"center\"><strong>Cell</strong> </td>\n")
|
||||
.append(" <td align=\"right\"><em>Cell</em> </td>\n")
|
||||
.append(" </tr>\n")
|
||||
.append(" </tbody>\n")
|
||||
.append("</table>")
|
||||
.toString();
|
||||
|
||||
InterpreterResult result = md.interpret(input, null);
|
||||
assertEquals(wrapWithMarkdownClassDiv(expected), result.message());
|
||||
|
|
@ -307,14 +307,14 @@ public class PegdownParserTest {
|
|||
@Test
|
||||
public void testWebsequencePlugin() {
|
||||
String input =
|
||||
new StringBuilder()
|
||||
.append("\n \n %%% sequence style=modern-blue\n")
|
||||
.append("title Authentication Sequence\n")
|
||||
.append("Alice->Bob: Authentication Request\n")
|
||||
.append("note right of Bob: Bob thinks about it\n")
|
||||
.append("Bob->Alice: Authentication Response\n")
|
||||
.append(" %%% ")
|
||||
.toString();
|
||||
new StringBuilder()
|
||||
.append("\n \n %%% sequence style=modern-blue\n")
|
||||
.append("title Authentication Sequence\n")
|
||||
.append("Alice->Bob: Authentication Request\n")
|
||||
.append("note right of Bob: Bob thinks about it\n")
|
||||
.append("Bob->Alice: Authentication Response\n")
|
||||
.append(" %%% ")
|
||||
.toString();
|
||||
|
||||
InterpreterResult result = md.interpret(input, null);
|
||||
assertThat(result.message(), CoreMatchers.containsString("<img src=\"http://www.websequencediagrams.com/?png="));
|
||||
|
|
@ -323,12 +323,12 @@ public class PegdownParserTest {
|
|||
@Test
|
||||
public void testYumlPlugin() {
|
||||
String input = new StringBuilder()
|
||||
.append("\n \n %%% yuml style=nofunky scale=120 format=svg\n")
|
||||
.append("[Customer]<>-orders>[Order]\n")
|
||||
.append("[Order]++-0..>[LineItem]\n")
|
||||
.append("[Order]-[note:Aggregate root.]\n")
|
||||
.append(" %%% ")
|
||||
.toString();
|
||||
.append("\n \n %%% yuml style=nofunky scale=120 format=svg\n")
|
||||
.append("[Customer]<>-orders>[Order]\n")
|
||||
.append("[Order]++-0..>[LineItem]\n")
|
||||
.append("[Order]-[note:Aggregate root.]\n")
|
||||
.append(" %%% ")
|
||||
.toString();
|
||||
|
||||
InterpreterResult result = md.interpret(input, null);
|
||||
assertThat(result.message(), CoreMatchers.containsString("<img src=\"http://yuml.me/diagram/"));
|
||||
|
|
|
|||
Loading…
Reference in a new issue