Module:HasTag

From Baldur's Gate 3 Wiki
Revision as of 23:16, 10 June 2024 by Taylan (talk | contribs)
Jump to navigation Jump to search

Doc page: Module:HasTag/doc

{{#invoke:HasTag | main | TAG | WIKITEXT }}

Checks whether the tag named TAG occurs within WIKITEXT. Returns the position of the tag if found, empty otherwise.

Example: {{#invoke:HasTag | main | nowiki | Blah <nowiki>blep</nowiki> blub. }}

Result:

Note: This only works with parser tags, not HTML tags. For example, it wouldn't work with <div> or <code>, but it works with <gallery> or <nowiki>. (HTML tags can be searched for with regular parser string functions.)


local p = {}

function p.main(frame)
	return p.hasTag(frame.args[1], frame.args[2])
end

function p.hasTag(tag, wikitext)
	if tag:len() > 50 then
		error("Tag too long: " .. tag)
	end
	local i = wikitext:find('\'"`UNIQ%-%-' .. tag .. '%-')
	if i == nil then
		return ''
	else
		return i
	end
end

function p.main2(frame)
	return p.hasTag2(frame.args[1], frame.args[2])
end

function p.hasTag2(tag, wikitext)
	if tag:len() > 50 then
		error("Tag too long: " .. tag)
	end
	local i = wikitext:find('UNIQ')
	if i == nil then
		return ''
	else
		return i
	end
end

return p