Přeskočit na obsah

Modul:IsTranscluded

Z Wikipedie, otevřené encyklopedie
(rozdíl) ← Starší revize | zobrazit aktuální verzi (rozdíl) | Novější revize → (rozdíl)

Modul určený ke zjišťování, jestli je stránka vložena do jiné.

Použití

{{#invoke:IsTranscluded|main
 | page = stránka (implicitně aktuální)
 | target = do které stránky je vložena (lze vynechat, pokud je aktuální/zadaná stránka podstránkou, pak se jedná o stránku o úroveň výš)
 | 1 = co vrátit, když je vložena
 | 2 = co vrátit v opačném případě (nepovinný) }}
local p = {}

function p.main(frame)
	if not (frame and frame.args and frame.args[1]) then return nil end

	local target, title
	if frame.args.page then
		title = mw.title.new(frame.args.page)
	else
		title = mw.title.getCurrentTitle()
	end
	if frame.args.target then
		target = mw.title.new(frame.args.target)
	elseif title.isSubpage then
		target = mw.title.new(title.baseText, title.namespace)
	else
		return nil
	end

	local content = target:getContent()
	content = mw.ustring.gsub(content, '<nowiki>.-</nowiki>', '<nowiki></nowiki>')
	content = mw.ustring.gsub(content, '<!%-%-.-%-%->', '<!-- -->')
	content = mw.ustring.gsub(content, '<pre%f[%W]([^>]*)>.-</pre>', '<pre%1></pre>')
	for match in mw.ustring.gmatch(content, '{{%s*([^{}<>%[%]#|]-)%s*[|}]') do
		if mw.ustring.match(match, '^/') then
			match = target.fullText .. 
match
		else
			if mw.ustring.match(match, '^:') then
				match = mw.ustring.upper(mw.ustring.sub(match, 2, 2)) .. mw.ustring.sub(match, 3)
			else
				match = 'Šablona:' .. mw.ustring.upper(match)
			end
		end
		match = mw.ustring.gsub(match, '_', ' ')
		if match ==
 title.fullText then
			return frame.args[1]
		end
 	end
	return frame.args[2] or nil
end

return p