コンテンツにスキップ

英文维基 | 中文维基 | 日文维基 | 草榴社区

モジュール:リンク修正依頼/改名

モジュールの解説[表示] [編集] [履歴] [キャッシュを破棄]

このモジュールは{{リンク修正依頼/改名}}の内部で使われています。

使い方

[編集]

書式

[編集]
{{#invoke:リンク修正依頼|main}}

require('strict')
local getArgs = require('Module:Arguments').getArgs

local fexternal = '%s <span style="font-size:smaller">([[Special:LinkSearch/%s|外部リンク検索]])</span>'
local fcrosswiki = '[[%s]] <span style="font-size:smaller">([%s 非転送] / [%s 履歴])</span>'
local finner = '[[%s]] <span style="font-size:smaller">([%s 非転送] / [%s 履歴] / [[Special:WhatLinksHere/%s|リンク元]])</span>'

local function makeLink(target)
	if type(target) ~= 'string' then
		return ''
	end
	local title = mw.title.new(target)
	local result, uri = pcall(mw.uri.new, target)
	if result and uri.host then
		return mw.ustring.format(fexternal, target, target)
	elseif not title then
		return target
	end
	return mw.ustring.format(
		(title.interwiki == '') and finner or fcrosswiki,
		(mw.ustring.sub(target, 1, 1) == ':') and target or (':' .. target),
		title:fullUrl('redirect=no'),
		title:fullUrl('action=history'),
		title.prefixedText
	)
end

local p = {}
local fli = '<li>%s→%s</li>\n'

function p.main(frame)
	local args = getArgs(frame, { wrappers = 'Template:リンク修正依頼/改名' })
	local linklist = mw.html.create('ol'):addClass('plainlinks'):newline()
	
	local i = 1
	while (args[i] or args[i + 1]) do
		linklist:wikitext(mw.ustring.format(fli, makeLink(args[i]), makeLink(args[i + 1])))
		i = i + 2
	end
	
	local wikitable = mw.html.create('table')
		:addClass('wikitable mw-collapsible')
		:wikitext('\n<tr><th>改名によるリンク修正依頼</th></tr>\n')
		:wikitext("<tr><td>'''改名提案の場所''': ")
		:wikitext(args['提案']
			-- `mw.title.new(A{{!}}B)` is a nil value
			or args[2] and mw.title.new(args[2]) and '[[' .. mw.title.new(args[2]).talkPageTitle.prefixedText .. ']]'
			or ''
			)
		:wikitext('</td></tr>\n<tr><td>')
		:wikitext(tostring(linklist))
		:wikitext('</td></tr>\n')
	if args.options then
		wikitable:wikitext('<tr><td>optionsを使用: ')
			:wikitext(frame:extensionTag('syntaxhighlight', args.options, { lang = 'json', inline = '' } ))
			:wikitext('</td></tr>\n')
	end
	if i > 20 then
		wikitable:addClass('mw-collapsed')
	end
	return tostring(wikitable)
end

return p