Commit 13d060f8 authored by Liang Ding's avatar Liang Ding

Merge remote-tracking branch 'refs/remotes/origin/2.2.0-dev'

parents 9780757c 1b0947af
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- <!--
Description: Solo POM. Description: Solo POM.
Version: 3.16.1.39, Jun 2, 2017 Version: 3.16.1.39, Jun 3, 2017
Author: <a href="http://88250.b3log.org">Liang Ding</a> Author: <a href="http://88250.b3log.org">Liang Ding</a>
Author: <a href="http://www.annpeter.cn">Ann Peter</a> Author: <a href="http://www.annpeter.cn">Ann Peter</a>
Author: <a href="http://vanessa.b3log.org">Vanessa</a> Author: <a href="http://vanessa.b3log.org">Vanessa</a>
...@@ -104,7 +104,6 @@ ...@@ -104,7 +104,6 @@
<servlet.version>3.1.0</servlet.version> <servlet.version>3.1.0</servlet.version>
<slf4j.version>1.7.5</slf4j.version> <slf4j.version>1.7.5</slf4j.version>
<jsoup.version>1.9.1</jsoup.version> <jsoup.version>1.9.1</jsoup.version>
<pegdown.version>1.6.0</pegdown.version>
<flexmark.version>0.19.5</flexmark.version> <flexmark.version>0.19.5</flexmark.version>
<qiniu.version>7.0.4.1</qiniu.version> <qiniu.version>7.0.4.1</qiniu.version>
<jetty.version>9.2.7.v20150116</jetty.version> <jetty.version>9.2.7.v20150116</jetty.version>
...@@ -176,12 +175,6 @@ ...@@ -176,12 +175,6 @@
<version>${slf4j.version}</version> <version>${slf4j.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.pegdown</groupId>
<artifactId>pegdown</artifactId>
<version>${pegdown.version}</version>
</dependency>
<dependency> <dependency>
<groupId>com.vladsch.flexmark</groupId> <groupId>com.vladsch.flexmark</groupId>
<artifactId>flexmark-all</artifactId> <artifactId>flexmark-all</artifactId>
......
...@@ -15,20 +15,23 @@ ...@@ -15,20 +15,23 @@
*/ */
package org.b3log.solo.util; package org.b3log.solo.util;
import com.vladsch.flexmark.ast.Node;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.profiles.pegdown.Extensions;
import com.vladsch.flexmark.profiles.pegdown.PegdownOptionsAdapter;
import com.vladsch.flexmark.util.options.DataHolder;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.b3log.latke.logging.Logger; import org.b3log.latke.logging.Logger;
import org.b3log.latke.util.Strings; import org.b3log.latke.util.Strings;
import org.pegdown.Extensions;
import org.pegdown.PegDownProcessor;
/** /**
* <a href="http://en.wikipedia.org/wiki/Markdown">Markdown</a> utilities. * <a href="http://en.wikipedia.org/wiki/Markdown">Markdown</a> utilities.
*
* <p> * <p>
* Uses the <a href="http://markdown.tautua.org/">MarkdownPapers</a> as the converter.</p> * Uses the <a href="https://github.com/vsch/flexmark-java">flexmark</a> as the converter.
* </p>
* *
* @author <a href="http://88250.b3log.org">Liang Ding</a> * @author <a href="http://88250.b3log.org">Liang Ding</a>
* @version 2.0.0.2, Nov 3, 2016 * @version 2.1.0.2, Jun 3, 2017
* @since 0.4.5 * @since 0.4.5
*/ */
public final class Markdowns { public final class Markdowns {
...@@ -36,7 +39,32 @@ public final class Markdowns { ...@@ -36,7 +39,32 @@ public final class Markdowns {
/** /**
* Logger. * Logger.
*/ */
private static final Logger LOGGER = Logger.getLogger(Markdowns.class.getName()); private static final Logger LOGGER = Logger.getLogger(Markdowns.class);
/**
* Built-in MD engine options.
*/
private static final DataHolder OPTIONS = PegdownOptionsAdapter.flexmarkOptions(
Extensions.ALL_OPTIONALS | Extensions.ALL_WITH_OPTIONALS
);
/**
* Built-in MD engine parser.
*/
private static final com.vladsch.flexmark.parser.Parser PARSER =
com.vladsch.flexmark.parser.Parser.builder(OPTIONS).build();
/**
* Built-in MD engine HTML renderer.
*/
private static final HtmlRenderer RENDERER = HtmlRenderer.builder(OPTIONS).build();
/**
* Private constructor.
*/
private Markdowns() {
}
/** /**
* Converts the specified markdown text to HTML. * Converts the specified markdown text to HTML.
...@@ -50,19 +78,12 @@ public final class Markdowns { ...@@ -50,19 +78,12 @@ public final class Markdowns {
return ""; return "";
} }
final PegDownProcessor pegDownProcessor = new PegDownProcessor(Extensions.ALL_OPTIONALS | Extensions.ALL_WITH_OPTIONALS, 5000); final Node document = PARSER.parse(markdownText);
String ret = pegDownProcessor.markdownToHtml(markdownText); String ret = RENDERER.render(document);
if (!StringUtils.startsWith(ret, "<p>")) { if (!StringUtils.startsWith(ret, "<p>")) {
ret = "<p>" + ret + "</p>"; ret = "<p>" + ret + "</p>";
} }
return ret; return ret;
} }
/**
* Private constructor.
*/
private Markdowns() {
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment