モジュール:仮リンク

提供:Wikiminati
テンプレート:使用箇所の多いテンプレート

Template:仮リンクTemplate:日本語版にない記事リンクの内部で使われるLuaモジュール


local p = {}

function p.ill(frame)
	local args = mw.getCurrentFrame():getParent().args
	args['viewInterwikiPageName'] = '0'
	return p.runIll(args)
end

function p.ill_vipn(frame)
	local args = mw.getCurrentFrame():getParent().args
	args['viewInterwikiPageName'] = '1'
	return p.runIll(args)
end

function p.runIll(args)
	local mIllLink = require('モジュール:仮リンク/link')
	local result = ""
	local resolvedFlag = false
	
	local title = mw.title.new(args[1])
	
	if title.exists then
		if title.isRedirect then
			-- 引数1の記事がリダイレクト
			local argRedirect = args['redirect']
			if argRedirect == nil then argRedirect = "" end
			local argPreserve = args['preserve']
			if argPreserve == nil then argPreserve = "" end
			args['view'] = argRedirect .. argPreserve
			args['title'] = "リンク先の項目はリダイレクトなため、新規作成や他言語版からの翻訳が望まれます。"
			result = mIllLink.otherLangLinkList(args)
			result = result .. "[[Category:日本語版記事がリダイレクトの仮リンクを含む記事]]"
		else
			-- 引数1の記事がリダイレクト以外で存在している
			args['view'] = args['preserve']
			args['title'] = "リンク先の項目はまだ不十分なため、加筆や他言語版からの追加翻訳が望まれます。"
			result = mIllLink.otherLangLinkList(args)
			
			-- preserve引数付きの場合はカテゴリ分類しない
			if args['preserve'] == "" or args['preserve'] == nil then
				resolvedFlag = true
			end
		end
	else
		-- 引数1の記事が存在しない
		args['view'] = 1
		args['title'] = "リンク先の項目はまだありません。新規の執筆や他言語版からの翻訳が望まれます。"
		result = mIllLink.otherLangLinkList(args)
	end
		
	if args['FIXME'] ~= "" and args['FIXME'] ~= nil then
		result = result .. '<span title="'
		if args['FIXME'] == "1" then
			result = result .. "このリンクは修正が必要です。"
		else
			result = result .. args['FIXME']
		end
		result = result .. '"><sup class="noprint Inline-Template nowrap">&#91;[[:Category:修正が必要な仮リンクを含む記事|要リンク修正]]&#93;</sup></span>'
		result = result .. "[[Category:修正が必要な仮リンクを含む記事]]"
	else
		if resolvedFlag then
			if mw.title.getCurrentTitle().namespace == 0 then
				result = result .. "[[Category:解消済み仮リンクを含む記事]]"
			else
				result = result .. "[[Category:解消済み仮リンクを含むページ]]"
			end
		end
	end
	
	return result
end

return p