我正在尝试使用Coldfusion 9上的表扩展来获得Markdown.在stackoverflow上还有一些关于CF和Markdown的类似问题,但它们都没有处理扩展.
到目前为止我已经尝试过;
所有这些都适用于基本Markdown,但没有一个支持开箱即用的表.
pegdown和showdown.js都支持表扩展.但Markdownj目前并不支持它,但我认为值得一试.
我认为我的问题在于在pegdown或showdown中加载扩展名的语法是否正确.两者的工作方式完全不同,一个是纯Java,另一个是Javascript解释.
我的代码非常简单,只需使用javaloader加载pegdown和它所需的parboiled库.这部分看起来工作正常,没有错误但是当我尝试使用pegdown类时,我得到一个相当普遍的错误;
An exception occurred while instantiating a Java object. The class must not be an interface or an abstract class. Error: ''.
Run Code Online (Sandbox Code Playgroud)
调用pegdown的代码;
<cfscript>
jClass = [
"#getDirectoryFromPath(getCurrentTemplatePath())#/pegdown/pegdown-1.2.1.jar"
, "#getDirectoryFromPath(getCurrentTemplatePath())#/pegdown/parboiled-core-1.1.3.jar"
];
javaloader = createObject('component','components.javaloader.JavaLoader').init(jClass, true);
variables.pegdown = javaloader.create("org.pegdown.PegDownProcessor");
</cfscript>
<cfdump var="#variables.pegdown#" />
Run Code Online (Sandbox Code Playgroud)
我已经尝试将扩展文件(extensions/table.js)添加到var进行评估,并根据文档将扩展var添加到转换器选项,但它不起作用.我猜测showdown.js不希望在底层Java scriptEngineManager中运行,因为主showdown.js脚本无法"看到"表扩展,在第246行失败;
The script had an error: sun.org.mozilla.javascript.internal.JavaScriptException: Extension 'undefined' could not be loaded. It was either not found or is not a valid …Run Code Online (Sandbox Code Playgroud)