m (Protected "Module:DPLUtil" ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))) |
m (Syncing content across wikis) |
||
Line 1: | Line 1: | ||
local m_text = require('Module:Text') |
local m_text = require('Module:Text') |
||
+ | local util_table = require('Module:TableUtil') |
||
local lang = mw.getLanguage('en') |
local lang = mw.getLanguage('en') |
||
local p = {} |
local p = {} |
||
Line 7: | Line 8: | ||
link = string.gsub(link,'%(','\\%(') |
link = string.gsub(link,'%(','\\%(') |
||
link = string.gsub(link,'%)','\\%)') |
link = string.gsub(link,'%)','\\%)') |
||
+ | link = string.gsub(link,'%+','\\%+') |
||
return link |
return link |
||
end |
end |
||
Line 27: | Line 29: | ||
newlinks = newlinks .. mw.title.getCurrentTitle().text |
newlinks = newlinks .. mw.title.getCurrentTitle().text |
||
return m_text.split(newlinks,';') |
return m_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 = m_text.split(list,';') |
||
+ | if not next(tbl) then |
||
+ | return {} |
||
+ | end |
||
+ | table.remove(tbl, #tbl) |
||
+ | return tbl |
||
end |
end |
||
Revision as of 04:12, 2 November 2018
Edit the documentation or categories for this module.
local m_text = require('Module:Text')
local util_table = require('Module:TableUtil')
local lang = mw.getLanguage('en')
local p = {}
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 m_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 = m_text.split(list,';')
if not next(tbl) then
return {}
end
table.remove(tbl, #tbl)
return tbl
end
return p