Модуль:Новости: различия между версиями
Материал из AbduloverA.com
Adept (обсуждение | вклад) Нет описания правки |
Adept (обсуждение | вклад) Нет описания правки |
||
| Строка 11: | Строка 11: | ||
return "Страница не найдена или пуста." | return "Страница не найдена или пуста." | ||
end | end | ||
mw.log(content); | -- mw.log(content); | ||
mw.log("*****PARSING*****"); | mw.log("*****PARSING*****"); | ||
-- Парсинг строк таблицы | -- Парсинг строк таблицы | ||
| Строка 17: | Строка 17: | ||
-- for row in content:gmatch("|%s*[%w%W]-|%-") do | -- for row in content:gmatch("|%s*[%w%W]-|%-") do | ||
-- for row in content:gmatch("{{Новость|date+", "%a+") do | -- for row in content:gmatch("{{Новость|date+", "%a+") do | ||
for row in content:gmatch("{{Новость|date.*}}", "%a+") do | -- for row in content:gmatch("{{Новость|date.*}}", "%a+") do | ||
for row in content:gmatch("{{Новость|date[^}}]+}}", "%a+") do | |||
table.insert(rows, row) | table.insert(rows, row) | ||
-- mw.log(row); | -- mw.log(row); | ||
| Строка 27: | Строка 28: | ||
for i = 1, math.min(5, #rows) do | for i = 1, math.min(5, #rows) do | ||
table.insert(result, rows[i]) | table.insert(result, rows[i]) | ||
mw.log(i); | |||
mw.log(rows[i]); | |||
end | end | ||
Версия от 11:34, 26 декабря 2024
Для документации этого модуля может быть создана страница Модуль:Новости/doc
local p = {}
function p.render(frame)
-- mw.log("Entering")
-- Получение содержимого страницы с таблицей
-- local pageName = frame.args[1] or "Шаблон:Новости"
local pageName = "Шаблон:Новости"
local content = mw.title.new(pageName):getContent()
if not content then
return "Страница не найдена или пуста."
end
-- mw.log(content);
mw.log("*****PARSING*****");
-- Парсинг строк таблицы
local rows = {}
-- for row in content:gmatch("|%s*[%w%W]-|%-") do
-- for row in content:gmatch("{{Новость|date+", "%a+") do
-- for row in content:gmatch("{{Новость|date.*}}", "%a+") do
for row in content:gmatch("{{Новость|date[^}}]+}}", "%a+") do
table.insert(rows, row)
-- mw.log(row);
end
-- Вывод первых 5 строк
local result = {}
for i = 1, math.min(5, #rows) do
table.insert(result, rows[i])
mw.log(i);
mw.log(rows[i]);
end
return table.concat(result, "\n")
end
return p