Module:HasTag: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 6: | Line 6: | ||
function p.hasTag(tag, wikitext) | function p.hasTag(tag, wikitext) | ||
tag = tag:gsub('%s+', '') | |||
if tag:len() > 50 then | if tag:len() > 50 then | ||
error("Tag too long: " .. tag) | error("Tag too long: " .. tag) | ||
end | end | ||
local i = wikitext:find('\'"`UNIQ%-%-' .. tag .. '%-') | local i = wikitext:find('\'"`UNIQ%-%-' .. tag .. '%-') | ||
if i == nil then | if i == nil then | ||
return '' | return '' |
Latest revision as of 22:25, 10 June 2024
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