模块:PageToolsLink
来自陋室
更多操作
此模块的文档可以在模块:PageToolsLink/doc创建
local p = {}
local function trim(s)
if not s then
return ''
end
return mw.text.trim(s)
end
local function makeLink(url, label)
return string.format('[%s %s]', url, label)
end
local function renderCore(frame, defaultParent)
local args = frame.args or {}
local parent = trim(args.parent)
local target = trim(args.target)
local doc = trim(args.doc)
local style = trim(args.style)
if target == '' then
target = mw.title.getCurrentTitle().prefixedText
end
if parent == '' then
parent = defaultParent
end
if doc == '' then
doc = target .. '/Doc'
end
if style == '' then
style = target .. '/styles.css'
end
local viewUrl = tostring(mw.uri.fullUrl(target, { action = 'view' }))
local editUrl = tostring(mw.uri.fullUrl(target, { action = 'edit' }))
local targetTitle = mw.title.new(target)
local talkTitle = targetTitle and targetTitle.talkPageTitle and targetTitle.talkPageTitle.prefixedText or ('Talk:' .. target)
local talkUrl = tostring(mw.uri.fullUrl(talkTitle))
local docUrl = tostring(mw.uri.fullUrl(doc))
local styleUrl = tostring(mw.uri.fullUrl(style))
return table.concat({
'<span class="page-tools">' .. parent .. ' |',
makeLink(viewUrl, '查看') .. ' |',
makeLink(editUrl, '编辑') .. ' |',
makeLink(talkUrl, '讨论') .. ' |',
makeLink(docUrl, '文档') .. ' |',
makeLink(styleUrl, '样式') .. '</span>'
}, '\n')
end
function p.render(frame)
return renderCore(frame, 'Template:PageToolsLink')
end
function p.renderSandbox(frame)
return renderCore(frame, 'Template:PageToolsLink/sandbox')
end
return p