2828import org .apache .zeppelin .interpreter .thrift .InterpreterCompletion ;
2929import org .apache .zeppelin .scheduler .Scheduler ;
3030import org .apache .zeppelin .scheduler .SchedulerFactory ;
31- import org .pegdown .Extensions ;
32- import org .pegdown .LinkRenderer ;
33- import org .pegdown .PegDownProcessor ;
34- import org .pegdown .ast .RootNode ;
3531import org .slf4j .Logger ;
3632import org .slf4j .LoggerFactory ;
3733
38- /** Markdown interpreter for Zeppelin. */
39- public class Markdown extends Interpreter {
40- private PegDownProcessor md ;
41- static final Logger LOGGER = LoggerFactory .getLogger (Markdown .class );
34+ /** MarkdownInterpreter interpreter for Zeppelin. */
35+ public class MarkdownInterpreter extends Interpreter {
36+ private final Logger logger = LoggerFactory .getLogger (MarkdownInterpreter .class );
4237
43- public Markdown (Properties property ) {
44- super (property );
45- }
38+ private MarkdownParser parser ;
4639
47- /** wrap with markdown class div to styling DOM using css */
48- public static String wrapHtmlWithMarkdownClassDiv (String html ) {
49- return new StringBuilder ()
50- .append ("<div class=\" markdown-body\" >\n " )
51- .append (html )
52- .append ("\n </div>" )
53- .toString ();
40+ public MarkdownInterpreter (Properties property ) {
41+ super (property );
5442 }
5543
5644 @ Override
5745 public void open () {
58- int pegdownOptions = Extensions .ALL_WITH_OPTIONALS - Extensions .ANCHORLINKS ;
59- md = new PegDownProcessor (pegdownOptions , 5000 );
46+ parser = new PegdownParser ();
6047 }
6148
6249 @ Override
6350 public void close () {}
6451
6552 @ Override
66- public InterpreterResult interpret (String st , InterpreterContext interpreterContext ) {
53+ public InterpreterResult interpret (String markdownText , InterpreterContext interpreterContext ) {
6754 String html ;
6855
6956 try {
70- String parsed = md .markdownToHtml (st );
71- if (null == parsed ) throw new RuntimeException ("Cannot parse markdown syntax string to HTML" );
72-
73- html = wrapHtmlWithMarkdownClassDiv (parsed );
74-
75- } catch (java .lang .RuntimeException e ) {
76- LOGGER .error ("Exception in Markdown while interpret " , e );
57+ html = parser .render (markdownText );
58+ } catch (Exception e ) {
59+ logger .error ("Exception in MarkdownInterpreter while interpret " , e );
7760 return new InterpreterResult (Code .ERROR , InterpreterUtils .getMostRelevantMessage (e ));
7861 }
7962
@@ -96,7 +79,7 @@ public int getProgress(InterpreterContext context) {
9679 @ Override
9780 public Scheduler getScheduler () {
9881 return SchedulerFactory .singleton ()
99- .createOrGetParallelScheduler (Markdown .class .getName () + this .hashCode (), 5 );
82+ .createOrGetParallelScheduler (MarkdownInterpreter .class .getName () + this .hashCode (), 5 );
10083 }
10184
10285 @ Override
0 commit comments