モジュール:Purge

2021年3月4日 (木) 11:18時点におけるMasashi.oikawa (トーク | 投稿記録)による版
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

このモジュールは{{Purge}}を実装します。具体的には、キャッシュ破棄用のリンクを生成します。

使い方

ウィキテキスト

ウィキテキストではモジュールを直接使用せず、Template:Purgeを呼び出してください(詳しくはテンプレートの解説文を参照)。

Lua

まず、モジュールをロードします。

local mPurge = require('Module:Purge')

続いて、モジュールの_main関数を呼び出すことでキャッシュ破棄用のリンクを生成できます。

mPurge._main(args)

argsは引数テーブルで、使用できる引数はTemplate:Purgeと同じです。詳しくはテンプレートの解説文を参照してください。


-- This module implements [[Template:Purge]].

local p = {}

local function makeUrlLink(url, display)
	return string.format('[%s %s]', url, display)
end

function p._main(args)
	-- Make the URL
	local url
	do
		local title
		if args.page then
			title = mw.title.new(args.page)
			if not title then
				error(string.format(
					"'%s'は有効なページ名ではありません。",
					args.page
				), 2)
			end
		else
			title = mw.title.getCurrentTitle()
		end
		if args.anchor then
			title.fragment = args.anchor
		end
		url = title:fullUrl{action = 'purge'}
	end
	
	-- Make the display
	local display
	if args.page then
		display = args[1] or 'キャッシュを破棄'
	else
		display = mw.html.create('span')
		display
			:attr('title', 'このページのキャッシュを破棄')
			:wikitext(args[1] or 'キャッシュを破棄')
		display = tostring(display)
	end
	
	-- Output the HTML
	local root = mw.html.create('span')
	root
		:addClass('noprint')
		:addClass('plainlinks')
		:addClass('purgelink')
		:wikitext(makeUrlLink(url, display))
	
	return tostring(root)
end

function p.main(frame)
	local args = frame:getParent().args
	return p._main(args)
end

return p