Module:Lst
外观
Module:Lst
[编辑]此模块提供了一个函数,用于合并文本行并自定义分隔符。它试图替代{{#lst}}
,增加了每行分隔符的自选功能,但仍未完全测试,处于试用阶段。
使用提示
[编辑]请注意,建议使用模板调用该模块,而不是直接调用。使用示例见下文。
函数
[编辑]joinedLines
[编辑]{{#invoke:Lst|joinedLines|separator|arg1|arg2|...}}
参数
[编辑]- separator
- 可选,定义行与行之间的分隔符(默认为空字符串)。
- arg1, arg2, ...
- 传给
{{#lst}}
的参数。
用法示例
[编辑]以下是使用示例:
{{#invoke:Lst|joinedLines||Page:ROC1912-01-29臨時政府公報01.pdf/1|臨時大總統誓詞}}
臨時大總統誓詞
[编辑]顛覆滿清專制政府,鞏固中華民國,圖謀民生幸福,此國民之公意。文實遵之,以忠於國,為衆服務。至專制政府既倒,國内無變乱,民國卓立於世界,為列邦公認。斯時,文當觧臨時大縂統之職。謹以此誓於國民。
此调用将从指定页面和段落中提取文本,并使用提供的分隔符连接这些行。
错误处理
[编辑]如果在调用{{#lst}}
时出现错误,函数可能会返回错误消息,指明具体的问题。
分类
[编辑]上述文档嵌入自Module:Lst/doc。 (编辑 | 历史) 编者可以在本模块的沙盒 (创建 | 镜像)和测试样例 (编辑 | 运行)页面进行实验。 本模块的子页面。 |
local p = {}
-- 引入 LineJoiner 模块
local LineJoiner = require('Module:LineJoiner')
function p.joinedLines(frame)
local lstFunctionName = '#lst'
-- 读取第一个参数作为分隔符
local sep = frame.args[1] or ""
-- 创建新的 args 表,仅包含无名参数(从第2个无名参数开始)
local argsWithoutSep = {}
local index = 1
for key, value in ipairs(frame.args) do
if key > 1 then -- 从第二个无名参数开始
argsWithoutSep[index] = value
index = index + 1
end
end
-- 使用 pcall 来安全调用 #lst
local success, result = pcall(function()
return frame:callParserFunction{ name = lstFunctionName, args = argsWithoutSep }
end)
-- 检查调用是否成功
if not success then
return "Error calling #lst: " .. tostring(result)
end
-- 创建一个模拟的 frame 对象用于 LineJoiner
local joinFrame = {
args = {
sep,
text = result
}
}
-- 调用 LineJoiner 的 joinLines 函数
local joinedResult = LineJoiner.joinLines(joinFrame)
-- 返回结果
return joinedResult
end
return p