Commit f87d51f0 authored by Liang Ding's avatar Liang Ding

🎨 #12645

parent c7078528
......@@ -332,7 +332,6 @@ public final class SoloServletListener extends AbstractServletListener {
final ArticleConsole articleConsole = beanManager.getReference(ArticleConsole.class);
DispatcherServlet.get("/console/article/push2rhy", articleConsole::pushArticleToCommunity);
DispatcherServlet.get("/console/thumbs", articleConsole::getArticleThumbs);
DispatcherServlet.post("/console/markdown/2html", articleConsole::markdown2HTML);
DispatcherServlet.get("/console/article/{id}", articleConsole::getArticle);
DispatcherServlet.get("/console/articles/status/{status}/{page}/{pageSize}/{windowSize}", articleConsole::getArticles);
DispatcherServlet.delete("/console/article/{id}", articleConsole::removeArticle);
......
......@@ -43,6 +43,8 @@ import org.b3log.solo.event.EventTypes;
import org.b3log.solo.model.*;
import org.b3log.solo.processor.console.ConsoleRenderer;
import org.b3log.solo.service.*;
import org.b3log.solo.util.Emotions;
import org.b3log.solo.util.Markdowns;
import org.b3log.solo.util.Skins;
import org.b3log.solo.util.Solos;
import org.json.JSONObject;
......@@ -135,6 +137,49 @@ public class ArticleProcessor {
@Inject
private EventManager eventManager;
/**
* Markdowns.
* <p>
* Renders the response with a json object, for example,
* <pre>
* {
* "html": ""
* }
* </pre>
* </p>
*
* @param context the specified http request context
*/
@RequestProcessing(value = "/console/markdown/2html", method = HttpMethod.POST)
public void markdown2HTML(final RequestContext context) {
final JSONObject result = Solos.newSucc();
context.renderJSON(result);
final String markdownText = context.requestJSON().optString("markdownText");
if (StringUtils.isBlank(markdownText)) {
result.put(Common.DATA, "");
return;
}
if (!Solos.isLoggedIn(context)) {
result.put(Keys.CODE, -1);
result.put(Keys.MSG, langPropsService.get("getFailLabel"));
return;
}
try {
String html = Emotions.convert(markdownText);
html = Markdowns.toHTML(html);
result.put(Common.DATA, html);
} catch (final Exception e) {
LOGGER.log(Level.ERROR, e.getMessage(), e);
result.put(Keys.CODE, -1);
result.put(Keys.MSG, langPropsService.get("getFailLabel"));
}
}
/**
* Shows the article view password form.
*
......
......@@ -36,9 +36,7 @@ import org.b3log.solo.model.Common;
import org.b3log.solo.service.ArticleMgmtService;
import org.b3log.solo.service.ArticleQueryService;
import org.b3log.solo.service.UserQueryService;
import org.b3log.solo.util.Emotions;
import org.b3log.solo.util.Images;
import org.b3log.solo.util.Markdowns;
import org.b3log.solo.util.Solos;
import org.json.JSONArray;
import org.json.JSONObject;
......@@ -151,41 +149,6 @@ public class ArticleConsole {
result.put("data", urls.stream().map(url -> Images.imageSize(url, width, height)).collect(Collectors.toList()));
}
/**
* Markdowns.
* <p>
* Renders the response with a json object, for example,
* <pre>
* {
* "html": ""
* }
* </pre>
* </p>
*
* @param context the specified http request context
*/
public void markdown2HTML(final RequestContext context) {
final JSONObject result = Solos.newSucc();
context.renderJSON(result);
final String markdownText = context.requestJSON().optString("markdownText");
if (StringUtils.isBlank(markdownText)) {
result.put(Common.DATA, "");
return;
}
try {
String html = Emotions.convert(markdownText);
html = Markdowns.toHTML(html);
result.put(Common.DATA, html);
} catch (final Exception e) {
LOGGER.log(Level.ERROR, e.getMessage(), e);
context.renderJSONValue(Keys.CODE, -1);
context.renderJSONValue(Keys.MSG, langPropsService.get("getFailLabel"));
}
}
/**
* Gets an article by the specified request json object.
* <p>
......
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