0

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 是小程序的宽度,H 是它的高度。

迄今为止,我通过其他方式将 Marvin JS 添加到文章中的努力

我已经看到了几个如何将此小程序嵌入 HTML 页面的示例,并且由于我缺乏 PHP 知识,我知道编写扩展对我来说非常困难,我确实尝试通过 AddScriptCss 扩展将这个小程序作为小部件嵌入,两者都让我失望了。

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

将 URL 的其余部分添加到 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 question 所以我尝试遵循第二个答案(Mediawiki Extension add Javascript in Header),在替换并保存页面后scriptaddHeadItem我剩下的就是我的原始维基文本,除了超链接的 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>

到 Widget:Marvin,然后我添加{{#widget:Marvin}}到一个没有结果的页面(字面意思;当我在保存此编辑后加载页面时,那里什么都没有)。这是一个屏幕截图,显示了在此页面上打开开发人员工具时出现的屏幕。

在此处输入图像描述

4

1 回答 1

0

尝试小工具扩展。这是维基百科使用的;维护良好且相当易于使用。

或者,这是一个本地 wiki,只有您可以访问,并且您根本不关心安全性,您可以通过$wgRawHtml在 wikitext 中启用任意 HTML 。

于 2015-02-20T06:35:18.570 回答