Marvin JS(从http://dl.chemaxon.com/marvinjs/15.2.16/marvinjs-15.2.16-all.zip下载)是一个基于JavaScript的化学结构编辑程序,我希望能够在我的本地服务器上嵌入MediaWiki文章。我读过https://www.mediawiki.org/wiki/Manual:Developing_extensions但我对PHP的理解非常简陋,所以它并没有特别有用。
我想要这样的扩展来创建以下解析器扩展标记:
<marvin src = URL width = W height = H></marvin>
其中URL是Marvin JS程序加载的文件的位置(在本地服务器上),W是applet的宽度,H是它的高度。
我已经看到了几个如何将这个applet嵌入到HTML页面中的例子,因为我知道编写扩展对我来说非常困难,因为我缺乏PHP知识,我试图将这个applet作为Widget嵌入并通过AddScriptCss扩展,都失败了。
对于安装扩展程序后添加的AddScriptCss,我添加了:
<addScript src = "Marvin/js/lib/jquery-1.9.1.min.js"></addScript>
<addScript src="Marvin/js/lib/rainbow/rainbow-custom.min.js"></addScript>
<addScript src="Marvin/gui/lib/promise-0.1.1.min.js"></addScript>
<addScript src="Marvin/js/marvinjslauncher.js"></addScript>
到一篇文章并在我保存之后在页面上收到了这个输出:
UNIQ5d2750bb5e9527b2-addScript-00000004-QINU UNIQ5d2750bb5e9527b2-addScript-00000005-QINU UNIQ5d2750bb5e9527b2-addScript-00000006-QINU UNIQ5d2750bb5e9527b2-addScript-00000007-QINU
将其余的网址添加到src字段(例如,http://127.0.0.1/mediawiki/)似乎无法解决此问题。打开“开发人员工具”(我使用的是Chrome)会显示两个错误:
Uncaught SyntaxError: Unexpected string (@ index.php line 154. Which is a WikEd line)
http://ads.dfgio.com/loader.js?client=topaz0001 Failed to load resource: net::ERR_BLOCKED_BY_CLIENT
我还看到了这个Mediawiki Extension add Javascript in Header stackoverflow问题,所以我尝试按照第二个回答(Mediawiki Extension add Javascript in Header)并在用script
替换addHeadItem
并保存页面之后保留所有内容是我的原始wiki文本,除了URL超链接。
就小部件而言,我尝试添加:
<includeonly><script type = "text/javascript" src="http://127.0.0.1/mediawiki/Marvin/gui/lib/promise-0.1.1.min.js"></script>
<script type = "text/javascript" src="http://127.0.0.1/mediawiki/Marvin/js/marvinjslauncher.js"></script></includeonly>
To Widget:Marvin,然后我将{{#widget:Marvin}}
添加到没有结果的页面(非常字面;当我保存此编辑后加载页面时,那里什么都没有)。这是一个屏幕截图,显示了在此页面上打开开发人员工具时出现的屏幕。
答案 0 :(得分:0)
尝试Gadgets扩展程序。这是维基百科使用的一个;维护良好且相当容易使用。
或者,这是一个本地维基,只有您可以访问,并且您根本不关心安全性,您可以通过$wgRawHtml在wiki文本中启用任意HTML。