打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。
Maintenance script留言 | 贡献2026年5月19日 (二) 23:18的版本 (阶段C切换:增强Module: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