Изменения

улучшение обработки комментариев
Строка 65: Строка 65:  
end
 
end
 
 
local content, are_comments, i = '', false, 0
+
-- Узнаем, заполнено ли где-то поле комментария
 +
local are_comments = false
 +
for k, v in pairs(args) do
 +
local pre_targs = {}
 +
if type(k) == 'number' then
 +
if v ~= '' then
 +
pre_targs = mw.text.split(v, '\\')
 +
for k2, v2 in pairs(pre_targs) do
 +
local equals_pos
 +
if v2:sub(1, 1) == '_' and v2:find('=') then -- параметры настроек шаблона "пример"
 +
equals_pos = v2:find('=')
 +
end
 +
if equals_pos then
 +
local param = v2:sub(1, equals_pos - 1)
 +
if param == '_comment' then are_comments = true end
 +
end
 +
end
 +
end
 +
end
 +
end
 +
 +
local content, i = '', 0
 
for k, v in pairs(args) do
 
for k, v in pairs(args) do
 
local pre_targs, targs = {}, {}
 
local pre_targs, targs = {}, {}
Строка 71: Строка 92:  
i = i + 1
 
i = i + 1
 
 
 +
if are_comments then
 +
targs._comment = ''  -- значение по умолчанию
 +
end
 
if v ~= '' then
 
if v ~= '' then
 
pre_targs = mw.text.split(v, '\\')
 
pre_targs = mw.text.split(v, '\\')
 
for k2, v2 in pairs(pre_targs) do
 
for k2, v2 in pairs(pre_targs) do
equals_pos = nil
+
local equals_pos
 
if v2:sub(1, 1) == '_' and v2:find('=') then -- параметры настроек шаблона "пример"
 
if v2:sub(1, 1) == '_' and v2:find('=') then -- параметры настроек шаблона "пример"
 
equals_pos = v2:find('=')
 
equals_pos = v2:find('=')
 
end
 
end
 
if equals_pos then
 
if equals_pos then
param = v2:sub(1, equals_pos-1)
+
local param = v2:sub(1, equals_pos - 1)
value = v2:sub(equals_pos+1)
+
local value = v2:sub(equals_pos + 1)
 
targs[param] = value
 
targs[param] = value
if param == '_comment' then are_comments = true end
   
else
 
else
 
if v2:sub(1, 5) == '_' then
 
if v2:sub(1, 5) == '_' then
Анонимный участник