Изменения
Перейти к навигации
Перейти к поиску
мСтрока 64:
Строка 64:
− +
Строка 82:
Строка 82:
− +
− +
Строка 121:
Строка 121:
− +
− if spaced then i = i+1 end
− +
− +
− +
− +
− if spaced then i = i+1 end
− +
упрощение обработки _spaced, комментарии
local prefix = args._prefix or args['_pre-text'] or ''
local prefix = args._prefix or args['_pre-text'] or ''
local postfix = args._postfix or args['_post-text'] or ''
local postfix = args._postfix or args['_post-text'] or ''
local comment = args._comment or args._after
local comment = args._comment or args._after -- полезно в шаблоне {{стопка примеров}} (это просто текст в конце)
local comment_sep = args._comment_sep or ' '
local comment_sep = args._comment_sep or ' '
local nobr = yesno(args._nobr, false)
local nobr = yesno(args._nobr, false)
tag = nil
tag = nil
container = 'pre'
container = 'pre'
sep = '<div style="margin: -0.5em 50% 0.7em;"><big>↓</big></div>\n' --слегка изменённое содержимое шаблона sp↓
sep = '<div style="margin: -0.5em 50% 0.7em;"><big>↓</big></div>\n' --содержимое шаблона {{sp↓|50%||-0.5em}}
elseif style == '*pre↓' then
elseif style == '*pre↓' then
tag = nil
tag = nil
container = '*pre'
container = '*pre'
sep = '<div style="margin: -0.5em 50% 0.7em;"><big>↓</big></div>\n' --слегка изменённое содержимое шаблона sp↓
sep = '<div style="margin: -0.5em 50% 0.7em;"><big>↓</big></div>\n' --содержимое шаблона {{sp↓|50%||-0.5em}}
elseif style == 'wikitable' then
elseif style == 'wikitable' then
tag = 'tt'
tag = 'tt'
end
end
content = content .. endl
content = content .. endl
local targs, equals_pos, param, value, left_shift, i = {}, 0, '', '', 0, 0
local targs, equals_pos, param, value, left_shift = {}, 0, '', '', 0
for k, v in pairs(args) do
for k, v in pairs(args) do
if type(k) == 'number' then --неименованные параметры
if type(k) == 'number' then --неименованные параметры
equals_pos = v:find('=')
equals_pos = v:find('=')
if equals_pos and v:find('{{=}}') == equals_pos-2 then
if equals_pos and v:find('{{=}}') == equals_pos-2 then
equals_pos = nil
equals_pos = nil
end
end
if equals_pos then
if equals_pos then --содержащие "=" преобразуем в именованные
param = v:sub(1, equals_pos-1)
param = v:sub(1, equals_pos-1)
value = v:sub(equals_pos+1)
value = v:sub(equals_pos+1)
targs[param] = process_nowiki_equals(value)
targs[param] = process_nowiki_equals(value)
content = content .. (spaced and i == 1 and ' ' or '') .. '|' .. nowiki(param) .. '=' .. nowiki(value) .. (spaced and ' ' or '') .. endl
content = content .. (spaced and ' ' or '') .. '|' .. param .. '=' .. nowiki(value) .. endl
left_shift = left_shift+1 --переменная нужна, чтобы квазинумерованные параметры, переданные через "{{=}}",
left_shift = left_shift+1 --переменная нужна, чтобы квазинумерованные параметры, переданные через "{{=}}",
--не сбивали порядок
--не сбивали порядок
else
else --истинно неименованные
targs[k - left_shift] = process_nowiki_equals(v)
targs[k - left_shift] = process_nowiki_equals(v)
content = content .. '|' .. nowiki(v) .. endl
content = content .. (spaced and ' ' or '') .. '|' .. nowiki(v) .. endl
end
end
elseif not k:find('^_') then --именованные параметры, исключая модификаторы внешнего вида
elseif not k:find('^_') then --именованные параметры, исключая модификаторы внешнего вида
targs[k] = process_nowiki_equals(v)
targs[k] = process_nowiki_equals(v)
content = content .. (spaced and i == 1 and ' ' or '') .. '|' .. k .. '=' .. nowiki(v) .. (spaced and ' ' or '') .. endl
content = content .. (spaced and ' ' or '') .. '|' .. k .. '=' .. nowiki(v) .. endl
end
end
end
end