Модуль:Песочница/Vavilexxx/Autonumtab
Перейти к навигации
Перейти к поиску
-- *************************************
-- Автоматическая нумерация таблицы
-- *************************************
-- Вызов через шаблон {{подст:#invoke:Autonumtab|Старт=38|{{ {{|таблица|}} }}}}
-- Старт = с какого числа начать по умолчанию 1)
-- Заменяет любое содержимое первой ячейки на номер строки
local p = {}
function p.AutoNumTab(frame)
local NumStr = tonumber (frame.args['Старт'] or "1");
local g = frame.args[1]
g = g:gsub("^%s- -{{", "", 1)
g = g:gsub("}}%s- -$", "", 1)
-- pattern = "|%s*#%s*%s*|"
pattern1 = "|-\n|.*||"
pattern2 = "|-\n|.*|.*||"
pattern3 = "|-\n|.*\n|"
pattern4 = "|-\n|.*|.*\n|"
while string.find (g, pattern1) ~= nil do
g = g:gsub(pattern1, "|-\n|"..NumStr.."||", 1)
NumStr = NumStr + 1
end
while string.find (g, pattern2) ~= nil do
g = g:gsub(pattern2, "|-\n|(.*)|"..NumStr.."||", 1)
NumStr = NumStr + 1
end
while string.find (g, pattern3) ~= nil do
g = g:gsub(pattern3, "|-\n|"..NumStr.."\n|", 1)
NumStr = NumStr + 1
end
while string.find (g, pattern4) ~= nil do
g = g:gsub(pattern4, "|-\n|(.*)|"..NumStr.."\n|", 1)
NumStr = NumStr + 1
end
return g
end