Module:HasTag: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 25: | Line 25: | ||
error("Tag too long: " .. tag) | error("Tag too long: " .. tag) | ||
end | end | ||
local i = wikitext:find('UNIQ | local i = wikitext:find('UNIQ') | ||
if i == nil then | if i == nil then | ||
return '' | return '' |
Revision as of 22:16, 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:
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