Изменения

м
упрощение обработки _spaced, комментарии
Строка 64: Строка 64:  
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)
Строка 82: Строка 82:  
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'
Строка 121: Строка 121:  
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 --неименованные параметры
if spaced then i = i+1 end
   
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 '') .. '&#124;' .. nowiki(param) .. '=' .. nowiki(value) .. (spaced and ' ' or '') .. endl
+
content = content .. (spaced and ' ' or '') .. '&#124;' .. 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 .. '&#124;' .. nowiki(v) .. endl
+
content = content .. (spaced and ' ' or '') .. '&#124;' .. nowiki(v) .. endl
 
end
 
end
 
elseif not k:find('^_') then --именованные параметры, исключая модификаторы внешнего вида
 
elseif not k:find('^_') then --именованные параметры, исключая модификаторы внешнего вида
if spaced then i = i+1 end
   
targs[k] = process_nowiki_equals(v)
 
targs[k] = process_nowiki_equals(v)
content = content .. (spaced and i == 1 and ' ' or '') .. '&#124;' .. k .. '=' .. nowiki(v) .. (spaced and ' ' or '') .. endl
+
content = content .. (spaced and ' ' or '') .. '&#124;' .. k .. '=' .. nowiki(v) .. endl
 
end
 
end
 
end
 
end
Анонимный участник