To edit the documentation or categories for this module, click here.
local util_text = require('Module:TextUtil')
local util_table = require('Module:TableUtil')
local lang = mw.getLanguage('en')
local p = {}
function p.query(args, frame)
if not frame then
frame = mw.getCurrentFrame()
end
args[1] = ''
return frame:callParserFunction{
name = '#dpl:',
args = args
}
end
function p.truncateResult(tbl)
if not next(tbl) then
return {}
end
table.remove(tbl, #tbl)
return tbl
end
function p.getListOfPagenames(args, frame)
args.format = ',%PAGE%,;;,'
args.debug = 0
local result = p.query(args, frame)
local tbl = util_text.split(result or '',';;')
return p.truncateResult(tbl)
end
function p.escape(link)
link = link or ''
link = string.gsub(link,'%(','\\%(')
link = string.gsub(link,'%)','\\%)')
link = string.gsub(link,'%+','\\%+')
return link
end
function p.whichPagesExist(links, frame)
if not frame then frame = mw.getCurrentFrame() end
for k, link in ipairs(links) do
links[k] = lang:ucfirst(p.escape(link))
end
newlinks = frame:callParserFunction{
name = '#dpl:',
args = {
'',
titleregexp = table.concat(links,'|'),
format = ',%PAGE%,;,',
namespace = '',
debug = 0,
}
}
newlinks = newlinks .. mw.title.getCurrentTitle().text
return util_text.split(newlinks,';')
end
function p.whatRedirectsHere(page, settings, frame)
local args = {
'',
linksto = page,
redirects = 'only',
namespace = '',
format = ',,%PAGE%;,',
debug = '0'
}
util_table.merge(args, settings)
if not frame then
frame = mw.getCurrentFrame()
end
local list = frame:callParserFunction{
name = '#dpl',
args = args
}
local tbl = util_text.split(list,';')
return p.truncateResult(tbl)
end
return p