模块:Linker

该模块提供了一些创建链接用的辅助函数。

canLink 函数

该函数接受1个无名参数。如果该参数包含模板、链接、标签,那么会返回空字符串,否则原样返回。

例子:

  • {{#invoke:Linker|canLink|声优}} => 声优
  • {{#invoke:Linker|canLink|[[声优]]}} =>

tryLink 函数

该函数接受1个无名参数。如果该参数包含模板、链接、标签,那么会原样返回,否则会自动生成链接。

例子:

  • {{#invoke:Linker|tryLink|藤田茜(声优)}} => 藤田茜(声优)
  • {{#invoke:Linker|tryLink|[[藤田茜(声优)|藤田茜]]}} => 藤田茜

local p = {}

function p._canLink(name)
	if string.find(name, '[%[{<]') or mw.text.killMarkers(name) ~= name then
		return false
	else
		return true
	end
end

function p.canLink(frame)
	local target = frame.args[1]

	if p._canLink(target) then
		return target
	else
		return ''
	end
end

function p.tryLink(frame)
	local target = frame.args[1]

	if p._canLink(target) then
		return '[[' .. target .. ']]'
	else
		return target
	end
end

return p