Module:inline: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
TheNightAvl (talk | contribs) No edit summary |
||
Line 3: | Line 3: | ||
function export.parse(term) | function export.parse(term) | ||
local args = {} | local args = {} | ||
for inline in mw.ustring.gmatch(term, "<([^>]+)>") do | |||
if mw.ustring.find(inline, "%:") then | |||
local arg, def = mw.ustring.match(inline, "^([^%:]+)%:([^%:]+)$") | |||
args[arg] = def | |||
else | |||
args[inline] = true | |||
end | |||
end | end | ||
return mw.ustring.gsub(term, "< | return mw.ustring.gsub(term, "<[^>]+>", ""), args | ||
end | end | ||
return export | return export |
Revision as of 14:01, 31 May 2024
local m_inline = require("Module:inline") local term, args = m_inline.parse("hello<key1:value1><key2>")
Yields:
term = "hello" args = {["key1"] = "value1", ["key2"] = true}
local export = {}
function export.parse(term)
local args = {}
for inline in mw.ustring.gmatch(term, "<([^>]+)>") do
if mw.ustring.find(inline, "%:") then
local arg, def = mw.ustring.match(inline, "^([^%:]+)%:([^%:]+)$")
args[arg] = def
else
args[inline] = true
end
end
return mw.ustring.gsub(term, "<[^>]+>", ""), args
end
return export