相关疑难解决方法(0)

在服务器端为ColdFusion实现Showdown.js markdown解析器

这是一个"事实发现"问题,看看使用showdown.js解析器创建ColdFusion UDF来解析服务器上的markdown是多么困难.已经有一个使用showdown.js的java实现(参见本文末尾的代码),我想看看如何为ColdFusion实现它.我没有Java经验,我不会特别称自己为"程序员",但我不希望这阻止我尝试.

摘要

我想运行Shadown.js服务器端,以便将markdown转换为HTML.

为什么?

保存两个版本的用户条目,一个是markdown格式,另一个是HTML格式,允许我们向最终用户显示原始markdown版本,以防他们想要编辑他们的条目.

为什么不使用服务器端解析器?

有两个原因:

  1. 截至目前,没有针对此特定目的的ColdFusion markdown解析器
  2. 在客户端使用Showdown.js,然后在服务器端使用不同的解析器将导致显示给客户端的预览和存储在数据库中的版本之间的标记不一致.鉴于markdown定义松散,大多数解析器实现都会有细微差别.

一个非常好的博客文章讨论了这个问题.

为什么不在客户端进行所有解析并发布两个版本?

这并不是一个安全的解决方案.我还认为用户可能能够使用不匹配的HTML发布降价.

有没有现有的实施?

一个名为CFShowdown的实现,但它不是出于这个特定目的.相反,它是用于处理页面上的输出.上述博客的评论部分包含一个名为David的用户编写的纯Java实现:

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine jsEngine = manager.getEngineByName("js");
try
{
    jsEngine.eval(new InputStreamReader(getClass().getResourceAsStream("showdown.js")));
    showdownConverter = jsEngine.eval("new Showdown.converter()");
}
catch (Exception e)
{
    log.error("could not create showdown converter", e);
}

try
{
    return ((Invocable) jsEngine).invokeMethod(
        showdownConverter, 
        "makeHtml", 
        markdownString
    ) + "";
}
catch (Exception e)
{
    log.error("error while converting markdown to html", e); …
Run Code Online (Sandbox Code Playgroud)

java coldfusion markdown parsing

5
推荐指数
1
解决办法
1553
查看次数

标签 统计

coldfusion ×1

java ×1

markdown ×1

parsing ×1