请输入您要查询的百科知识:

 

词条 Module:Template parameter value/sandbox
释义

local p = {}

local escape = require("Module:String")._escapePattern

function trimspaces(s)

return string.gsub(s, "^%s*(.-)%s*$", "%1")

end

local function getTitle(title)

local success, titleObj = pcall(mw.title.new, title)

if success then return titleObj

else return nil end

end

function p.main(frame)

local args = require('Module:Arguments').getArgs(frame, {

wrappers = 'Template:Template parameter value'

})

local template = escape(args[2])

local parameter = escape(args[4])

local numberedParameter = (tonumber(parameter) ~= nil)

local templateCount = 0

local parameterCount = 0

local templateMatch = tonumber(args[3] or 1)

local parameterMatch = tonumber(args[5] or 1)*(numberedParameter and parameter or 1)

local targettitle = getTitle(args[1])

if targettitle == nil then return "" end

while templateCount ~= templateMatch do

if content == nil then return "" end

content = string.match(content, '{{' .. template .. "(.+)")

templateCount = templateCount + 1

end

while parameterCount ~= parameterMatch do

if content == nil then return "" end

content = string.match(content, '|%s*' .. (numberedParameter and "" or parameter .. '%s*=%s*') .. '([^|].*)')

parameterCount = parameterCount + 1

end

if content == nil then return "" end

content = string.gsub(content, "", "")

content = string.match(content, '^([^|}]*{{[^}]+}}[^|}]*)|') or string.match(content, '([^|}]+)')

content = frame:preprocess{text = content}

content = trimspaces(content)

return content

end

return p

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/18 13:24:29