文档图示 模块文档[查看] [编辑] [历史] [清除缓存]

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}}时出现错误,函数可能会返回错误消息,指明具体的问题。

分类

编辑

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