Модуль:Новости: различия между версиями

Материал из AbduloverA.com
Строка 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])
         print("This");
         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