Module:HasTag

From bg3.wiki
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: 8

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)
	tag = tag:gsub('%s+', '')
	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

return p