Module:Images/autosplit
来自滚动的天空Wiki
-- 用于自动识别含有标题的内容,分成多个段落。
local p = {}
local Images = require '模块:Images'
function p.split(str)
local list = {{}}
local index = 1
for i in mw.text.gsplit(str, '\n') do
if i:match '^==.-==$' then
index = index + 1
end
local stringBuilder = list[index] or {}
list[index] = stringBuilder
stringBuilder[#stringBuilder + 1] = i
end
return list
end
function p.convert_to_data(list, args)
local data = {}
for k, v in ipairs(list) do
local section = table.concat(v, '\n')
if section ~= '' then
data[#data + 1] = {section = section}
end
end
for k,v in pairs(args) do
if type(k) == "string" then
if k:match("^navbar%d+$") then
data[tonumber(k:match("(%d+)"))].navbar = v
end
end
end
return data
end
function p.render(args)
local content = args.content
local config ={
nonavbar=args.nonavbar,
tag = args.tag,
class = args.class
}
return Images.render(p.convert_to_data(p.split(content),args),config)
end
function p.main(frame)
-- 用于直接从模块调用。
return p.render(frame.args)
end
function p.autosplit(frame)
-- 用于从模板调用。
return p.render(frame:getParent().args)
end
return p