Modul:IsTranscluded
Vzhled
Modul určený ke zjišťování, jestli je stránka vložena do jiné.
Použití
[editovat zdroj]{{#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 args = frame.args
local title
if args.page then
title = mw.title.new(args.page)
else
title = mw.title.getCurrentTitle()
end
local target
if args.target then
target = mw.title.new(args.target)
elseif title.isSubpage then
target = mw.title.new(title.baseText, title.namespace)
else
return nil
end
local Functions = require 'Modul:Functions'
local content = target:getContent()
if not content then return nil end
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 = Functions.firstToUpper(mw.ustring.sub(match, 2))
else
match = 'Šablona:' .. Functions.firstToUpper(match)
end
end
match = mw.ustring.gsub(match, '_', ' ')
mw.log(match) -- ladění
if match == title.fullText then
return args[1]
end
end
return args[2] or nil
end
return p