ماڈیول:DYK nompage links
دستاویز [تخلیق]
شاید آپ اس اسکریبنٹو ماڈیول کا دستاویزی صفحہ تخلیق کرنا چاہتے ہیں۔ صارفین ماڈیول کے تختہ مشق (تخلیق | آئینہ) اور ثابتات (تخلیق) میں تجربات کرسکتے ہیں۔ براہ کرم /دستاویز کے ذیلی صفحہ پر زمرہ جات شامل فرمائیں۔ اس ماڈیول کے ذیلی صفحات۔ |
local p = {}
local horizontal = require('Module:List').horizontal
local function makeWikitextError(msg)
return string.format('<strong class="error">Error: %s</strong>', msg)
end
local function makeFullUrl(page, query, display)
local url = mw.uri.fullUrl(page, query)
if not url then
url = makeWikitextError(string.format(
'"%s" is not a valid page name',
tostring(page)
))
end
return string.format(
'[%s %s]',
tostring(url),
display
)
end
local function make_nomination_link(nominationPage)
local currentPage = mw.title.getCurrentTitle().prefixedText
local dykSubpage = 'سانچہ:کیا آپ جانتے ہیں نامزدگی/' .. nominationPage
if currentPage == dykSubpage then
return string.format(
'[[Template talk:Did you know#%s|Back to T:TDYK]]',
nominationPage
)
else
return makeFullUrl(
'سانچہ:کیا آپ جانتے ہیں نامزدگی/' .. nominationPage,
{action = 'edit'},
'Review or comment'
)
end
end
function p._main(nominationPage, historyPages)
-- Deal with bad input.
if not nominationPage then
return makeWikitextError('no nomination page specified')
end
if not historyPages or not historyPages[1] then
return makeWikitextError('no articles specified')
end
-- Find out whether we are dealing with multiple history pages.
local isMulti = #historyPages > 1
local nominationLink = make_nomination_link(nominationPage)
if isMulti then
local list_args = {
class = 'inline',
}
for _, page in ipairs(historyPages) do
table.insert(list_args, makeFullUrl(
page,
{action = 'history'},
page
))
end
local multi_root = mw.html.create('div')
multi_root:addClass('dyk-nompage-links plainlinks')
:wikitext(string.format('( %s )', nominationLink))
local list_root = mw.html.create('div')
list_root:wikitext(string.format(
'( Article history links: %s )',
horizontal(list_args)
))
return tostring(multi_root:node(list_root))
else
local historyLink = makeFullUrl(
historyPages[1],
{action = 'history'},
'Article history'
)
local single_root = mw.html.create('div')
single_root:addClass('dyk-nompage-links plainlinks')
:wikitext(string.format(
'( %s )',
horizontal({
class = 'inline',
nominationLink,
historyLink
})
))
return tostring(single_root)
end
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:DYK nompage links'
})
local nominationPage = args.nompage
local historyPages = require('Module:TableTools').compressSparseArray(args)
return p._main(nominationPage, historyPages)
end
return p