问题标签 [scribunto]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
126 浏览

lua - 如何在 Scribunto(MediaWiki 托管的 Lua)中将“42°33'N,1°33'E”转换为“42.55|1.55”

Scribunto是 MediaWiki 托管的 Lua 版本。
我相信这是相当标准的 Lua。

我想从这种格式转换地理坐标:

...到这种格式:

如何在 Scribunto 中做到这一点?

0 投票
3 回答
1839 浏览

date - 如何使用 scribunto 检测 DST(夏令时是否有效)

根据当前日期,我怎么知道 Lua 的时间是否是夏令时。

例如,法国的值实际上是 true (当前使用 CEST)。在冬天,这将是错误的。
忘了这太具体了:我只是期待法国的规则。但在这一点上,我不知道 Lua 是否有原生函数。

可用的内置函数列表在这里

0 投票
1 回答
88 浏览

mediawiki - 如何使用 Scribunto 直接内联运行 Lua 代码

我有一段很短的 lua 代码(例如: os.date("%Z") )。我想知道是否可以(当前或计划)直接在同一页面上调用该代码,而不是创建一个只有一个函数的模块,哪个工作是调用该代码。

我知道创建一个具有其他时间功能的模块是可行的,但将来没有 wiki 用户需要使用其他功能。因此,我认为创建这种库(模块)不值得。

0 投票
2 回答
518 浏览

lua - MediaWiki 上的 Lua 错误

我正在尝试设置 MediaWiki,并尝试使用 Navbox 模板。我在本地机器上一切正常,但是当我将它们全部复制到服务器时,我得到 Lua 脚本错误,特别是:

如果我编辑该文件,那么它只会为所有其他字段提供错误。

我的服务器正在运行 MediaWiki 1.20,如果这有什么不同的话。我尝试过使用 Scribunto 1.20、1.21 和 master(对引擎进行更改以适应 1.20)。

如果有人可以提供帮助,那就太好了。

编辑模块:NavboxHtmlBuilder

0 投票
1 回答
575 浏览

query-string - 从 Mediawiki 页面获取查询字符串

有什么方法(可能像一个未记录的魔法词)从 Mediawiki 模板或 Scribunto(Lua)模块中获取当前查询字符串(或包括查询字符串的完整 URL)?

0 投票
1 回答
121 浏览

lua - MediaWiki Scribunto 扩展的“Listen”模块未生成预期的 HTML

我有一个带有 Scribunto 扩展和 Module:Listen 的 MediaWiki 安装 (1.23)。我尝试从这样的文章中调用此模块:

这会生成小信息框,但嵌入的声音播放器本身不会出现。我查看了生成的 HTML,该模块只是对文件进行了第二个普通的 href:

而不是文件的第二个href,我希望看到一个或类似的。我是否缺少一些模板或 Lua 模块?

0 投票
1 回答
77 浏览

mediawiki - 如何防止在表上下文之外转义与表相关的标签

我正在开发一个 Scribunto 模块,该模块接受可变数量的参数来生成表格。我有一个调用模块的模板,以及一个用于表中行的单独模板。但是,其中一个组件将始终位于表上下文之外,而表上下文似乎又会转义<tr><td>标记。

调用模板只包含{{#invoke:Module|module}}

行模板包含以下示例代码:

使用此模板的任何页面都包含它

我尝试在 lua 模块中创建表

此时行模板不在表上下文中,因此使行模板未呈现。然后我尝试在行模板中使用 HTML,但标签被转换为实体。{|最后,我尝试使用and将表创建标签添加到调用模板中|},并将 lua 模块修改为t = mw.create.html(),但是虽然行模板标签很好,但 lua 模块中的标签被翻译了。

如何防止 MediaWiki 将这些标签翻译成 html 实体?

0 投票
1 回答
509 浏览

javascript - MediaWiki 上的用户自定义 JavaScript 可以调用 Lua 模块吗?

在 MediaWiki wiki 上,每个用户都有一个用户 JavaScript 页面,他们可以将代码放入其中,就像 GreaseMonkey 但没有扩展。比如在User:YourUsername/vector.js

MediaWiki 也有一个嵌入式 Lua,称为Scribunto,现在有一段时间了。

我知道 Lua 模块可以从 MediaWiki 模板中调用,我想这是它们的主要用途。但是谷歌搜索和搜索 MediWiki 文档我找不到是否有办法从您的用户 JavaScript 调用 Lua 模块。


(我需要将语言名称映射到我的 JS 中的语言代码,并且有一个 Lua 模块可以做到这一点,而无需我用第二种语言复制代码(主要是数据)。)

0 投票
1 回答
1345 浏览

lua - MediaWiki Scribunto Lua 错误:内部错误:解释器以状态 2 退出

我在我的本地开发机器上完成了 MediaWiki 1.24.2 的全新安装。

我已经安装了 Scribunto 并检查了它是否正确安装在扩展列表中。

尝试创建 InfoBox 时出现错误。错误是:

Lua 错误:内部错误:解释器以状态 2 退出

这些是我已采取以下步骤来尝试解决此问题的步骤。

我去过 Mediawiki Scribunto 页面

我已将这些行添加到我的 LocalSettings.php 文件中:

这并没有解决问题。我对如何打开错误日志感到困惑。帮助页面只是说:

将文件路径分配给 $wgScribuntoEngineConf['luastandalone']['errorFile'] 并检查该输出对于诊断内存分配错误可能很有价值。

如何分配文件路径?- 解决了感谢您的帮助。

我将 [链接][2] 附在我的 php.ini 文件和我的 LocalSettings.php 文件中(压缩在一起)

更新- 我现在设法添加了一个日志文件,日志文件中的错误是:

/var/www/extensions/Scribunto/engines/LuaStandalone/binaries/lua5_1_5_linux_32_generic/lua:语法错误:“(”意外

更新二

这些是我复制错误所采取的完整步骤:

首先检查任何可用的软件包更新并安装它们

现在安装 Apache、PHP 和 MySQL

我们可以使用以下命令检查 Raspberry Pi 的内部 IP 地址(记下它)

主机名 -I

我们现在可以为我们的新 MediaWIki 安装创建一个数据库。首先使用您之前创建的密码以 root 身份登录

这里我们添加 database=mediawikidb user=mediawikiuser 和 password=mediawikipassword:

现在我们可以对 php.ini 进行一些更改,以便我们可以增加最大文件大小和内存限制

cd /etc/php5/apache2/nano php.ini

将“upload_max_filesize = 2M”替换为“upload_max_filesize = 64M”

将“post_max_size = 8M”替换为“post_max_size = 64M”

保存文件

现在我们将清空 /var/www 文件夹并将其所有权更改为 pi

现在我们可以下载MediaWiki,解压并复制到/var/www

现在我们可以重启相关服务了

现在打开浏览器并转到 localhost 并开始安装

要完成安装,请将 LocalSettings.php 复制到 /var/www/mediawiki

现在安装 Scribunto

http://www.mediawiki.org/wiki/Special:ExtensionDistributor/Scribunto下载

须藤纳米 /etc/mediawiki/LocalSettings.php

在文件末尾添加这些行并保存

require_once "$IP/extensions/Scribunto/Scribunto.php";

$wgScribuntoDefaultEngine = 'luastandalone';

$wgScribuntoEngineConf['luastandalone']['memoryLimit'] = 209715200; # 字节

$wgMaxShellMemory = 204800; # 以 KB 为单位

$wgScribuntoEngineConf['luastandalone']['errorFile'] = '/var/tmp/luaerror.log';

现在访问“ http://en.wikipedia.org/wiki/Special:Export ”并在大框中输入 Template:Infobox。勾选所有三个框,然后单击导出

在记事本或类似工具中打开文件,然后用 CONTENT_FORMAT_TEXT 查找并替换 text/plain

登录 MediaWiki 并转到 Special:Import

正确导入所有内容后,转到主页并在页面顶部输入:

非常感谢

0 投票
2 回答
179 浏览

lua - 使用带有编辑链接的 Scribunto 创建部分

我正在尝试创建一个 Scribunto 模块,除其他外,它可以在其输出中创建一个节标题。

例如,如果返回的字符串包含 ,== Hello World ==则结果页面正确显示该部分,甚至在 TOC 中包含该部分。但是,该部分没有编辑部分链接。

在某种程度上,这是可以理解的;该部分实际上并不存在于页面的源代码中。但我希望能够将编辑链接放置到该部分内容的来源。我尝试了两个不同版本的buildHeader函数:

在这两种情况下,锚标记的 HTML 都被转义(例如,<span class="mw-editsection">...&lt;a href="..." title="..."&gt;edit&lt;/a&gt;</span>),并且整个 mw-editsection 跨度都包含在 TOC 文本中。

有什么方法可以让我在那里获得我的任意编辑链接,还是我必须使用无编辑部分的 Scribunto 部分?