Модуль:Loc/Marking: различия между версиями
Pok (обсуждение | вклад) мНет описания правки |
Pok (обсуждение | вклад) мНет описания правки |
||
| Строка 51: | Строка 51: | ||
local function parse_attrs(attr_str) | local function parse_attrs(attr_str) | ||
if not attr_str then return nil end | if not attr_str then return nil end | ||
attr_str = mw.ustring.gsub(attr_str, "^%s* | attr_str = mw.ustring.gsub(attr_str, "^%s*=%s*", "") | ||
attr_str = trim(attr_str) | attr_str = trim(attr_str) | ||
if attr_str == "" then return nil end | if attr_str == "" then return nil end | ||
| Строка 57: | Строка 57: | ||
local params = {} | local params = {} | ||
for k, v in mw.ustring.gmatch(attr_str, "([%w_%-%:]+)%s* | for k, v in mw.ustring.gmatch(attr_str, "([%w_%-%:]+)%s*=%s*\"(.-)\"") do | ||
params[mw.ustring.lower(k)] = v | params[mw.ustring.lower(k)] = v | ||
end | end | ||
attr_str = mw.ustring.gsub(attr_str, "([%w_%-%:]+)%s* | attr_str = mw.ustring.gsub(attr_str, "([%w_%-%:]+)%s*=%s*\"(.-)\"", "") | ||
for k, v in mw.ustring.gmatch(attr_str, "([%w_%-%:]+)%s* | for k, v in mw.ustring.gmatch(attr_str, "([%w_%-%:]+)%s*=%s*([^%s%]]+)") do | ||
params[mw.ustring.lower(k)] = v | params[mw.ustring.lower(k)] = v | ||
end | end | ||
attr_str = mw.ustring.gsub(attr_str, "([%w_%-%:]+)%s* | attr_str = mw.ustring.gsub(attr_str, "([%w_%-%:]+)%s*=%s*([^%s%]]+)", "") | ||
local unnamed = mw.ustring.match(attr_str, "%s*\"(.-)\"") | local unnamed = mw.ustring.match(attr_str, "%s*\"(.-)\"") | ||
| Строка 114: | Строка 114: | ||
local function process_nowiki_equals(str) | local function process_nowiki_equals(str) | ||
str = str:gsub(' | str = str:gsub('#', '#') | ||
:gsub(' | :gsub('=', '=') | ||
:gsub(' ', ' ') | |||
:gsub('{', '{') | |||
:gsub('"', '"') | |||
:gsub("'", ' ') | |||
:gsub('*', '*') | |||
return str | return str | ||
end | end | ||
| Строка 123: | Строка 128: | ||
local text = args[1] or args.text or "" | local text = args[1] or args.text or "" | ||
text = mw.text.unstripNoWiki(text) | text = mw.text.unstripNoWiki(text) | ||
text = | text = process_nowiki_equals(text) | ||
return | return transform(text) | ||
end | end | ||
return p | return p | ||