Mô đun:GAN link
Mô đun này có thể phù hợp với tiêu chí xóa nhanh của Wikipedia vì nó là bản mẫu/mô đun không liên kết hoặc không sử dụng ở bất kỳ trang nào. Lưu ý các bản mẫu/mô đun quan trọng nhiều người xem hoặc được nhúng ở nhiều trang khác thì không thuộc diện xóa nhanh. Xem XN BM3.
Nếu mô đun này không nằm trong các tiêu chí xóa nhanh, hãy dời thông báo này đi. Bảo quản viên, Điều phối viên chú ý: Hãy kiểm tra liên kết, lịch sử (sửa đổi cuối) và nhật trình trước khi xóa trang. Kiểm tra Google: web, tin tức. Người đặt thông báo chú ý: cần thận trọng khi đánh giá bài viết của người mới đến; trong nhiều trường hợp cần giúp đỡ người mới hoàn thiện bài viết thay vì yêu cầu xóa nhanh; hành động yêu cầu xóa nhanh chỉ là ý kiến của cá nhân bạn nhưng có thể gây hiểu lầm là yêu cầu của cộng đồng Wikipedia. |
require('Module:Module wikitext')._addText([[{{db-banmaukhonglienket}}]]);
-- This module implements {{GAN link}}.
local p = {}
local function getGANIcon()
return require('Module:Icon')._main{'GAN'}
end
local function makeWikilink(page, display)
if display and display ~= page then
return string.format('[[%s|%s]]', page, display)
else
return string.format('[[%s]]', page)
end
end
local function getNominationPage(article, number)
return string.format('Talk:%s/GA%d', article, number)
end
local function makeArticleLink(options)
assert(options.article, 'options.article not specified')
assert(options.formattedArticle, 'options.formattedArticle not specified')
local display
if options.isItalic then
display = string.format('<i>%s</i>', options.article)
elseif options.display then
display = options.display
else
display = options.formattedArticle
end
return makeWikilink(options.article, display)
end
local function makeExistingNominationLink(nominationPage)
return makeWikilink(nominationPage, 'nom')
end
local function makeNewNominationLink(nominationPage)
local url = mw.uri.fullUrl(nominationPage, {
action = 'edit',
editintro = 'Template:GAN/editintro',
preload = 'Template:GAN/preload',
})
return string.format(
"'''<span class='plainlinks'>[%s start]</span>'''",
tostring(url)
)
end
local function makeNominationLink(nominationPage)
assert(nominationPage, 'no nominationPage argument given to makeNominationLink')
local title = mw.title.new(nominationPage)
if not title then
error(string.format('%s is not a valid title', nominationPage), 2)
elseif title.exists then
return makeExistingNominationLink(nominationPage)
else
return makeNewNominationLink(nominationPage)
end
end
function p._main(args)
-- Link parameters
local formattedArticle = args[1]
if not formattedArticle then
error('No article specified', 2)
end
local article = formattedArticle:gsub("'''", ""):gsub("''", "")
local display = args[2]
-- Number
local number
if args['#'] then
number = tonumber(args['#'])
if not number then
error("'%s' is not a valid number", args['#'])
end
else
number = 1
end
-- Formatting parameters
local hasIcon = not not args.icon
local isItalic = not not args.i
-- Output
local ret = {}
if hasIcon then
ret[#ret + 1] = getGANIcon()
end
ret[#ret + 1] = makeArticleLink{
article = article,
formattedArticle = formattedArticle,
display = display,
isItalic = isItalic,
}
ret[#ret + 1] = string.format(
'(%s)',
makeNominationLink(getNominationPage(article, number))
)
return table.concat(ret, ' ')
end
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {
wrappers = 'Template:GAN link'
})
return p._main(args)
end
return p