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

Материал из AbduloverA.com
 
(не показано 46 промежуточных версий этого же участника)
Строка 1: Строка 1:
local p = {}
local p = {}
local str_p = ""


function p.render(frame)
 
-- mw.log("Entering")
function p.render_text(frame)
     -- Получение содержимого страницы с таблицей
    local pageName = frame.args[1];
    -- local pageName = frame.args[1] or "Шаблон:Новости"
     local index = frame.args[2];
     local pageName = "Шаблон:Новости"
   
     -- local pageName = "Шаблон:Новости";
    -- local index = 1;
 
   
     local content = mw.title.new(pageName):getContent()
     local content = mw.title.new(pageName):getContent()
    if not content then
        return "Страница не найдена или пуста."
    end
    local rows = {}
    -- for row in content:gmatch("|text=.[^}]+|", "%a") do
    for row in content:gmatch("|text=.[^}]+}-", "%a") do
        table.insert(rows, row)
    end
    local result = {}
str_p = rows[tonumber(index)]
-- mw.log(str_p);
local trunced = string.gsub(str_p, "|text=", "");
-- local str_p = string.gsub(trunced, "|", "");
-- mw.log(trunced);
return trunced;
end
function p.render_date(frame)
    local pageName = frame.args[1];
    local index = frame.args[2];
   
    -- local pageName = "Шаблон:Новости";
    -- local index = 1;
   
    local content = mw.title.new(pageName):getContent()
     if not content then
     if not content then
         return "Страница не найдена или пуста."
         return "Страница не найдена или пуста."
     end
     end
-- mw.log(content);
mw.log("*****PARSING*****");
    -- Парсинг строк таблицы
     local rows = {}
     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
    for row in content:gmatch("{{Новость|date[^}}]+}}", "%a+") do
         table.insert(rows, row)
         table.insert(rows, row)
        -- mw.log(row);
     end
     end
   


    -- Вывод первых 5 строк
     local result = {}
     local result = {}
    for i = 1, math.min(5, #rows) do
str_p = rows[tonumber(index)]
        table.insert(result, rows[i])
local trunced = string.gsub(str_p, "|date=", "");
        mw.log(i);
local str_p = string.gsub(trunced, "|", "");
        mw.log(rows[i]);
    mw.log(str_p);
    end
 
return str_p;
end  


    return table.concat(result, "\n")
end


return p
return p;

Текущая версия от 23:38, 27 января 2025

Для документации этого модуля может быть создана страница Модуль:Новости/doc

local p = {}
local str_p = ""


function p.render_text(frame)
    local pageName = frame.args[1];
    local index = frame.args[2];
    
    -- local pageName = "Шаблон:Новости";
    -- local index = 1;

    
    local content = mw.title.new(pageName):getContent()

    if not content then
        return "Страница не найдена или пуста."
    end
	
    local rows = {}

    -- for row in content:gmatch("|text=.[^}]+|", "%a") do
    for row in content:gmatch("|text=.[^}]+}-", "%a") do
        table.insert(rows, row)
    end

    local result = {}
	str_p = rows[tonumber(index)]
	-- mw.log(str_p);
	local trunced = string.gsub(str_p, "|text=", "");
	-- local str_p = string.gsub(trunced, "|", "");
	-- mw.log(trunced);
	return trunced;
end 


function p.render_date(frame)
    local pageName = frame.args[1];
    local index = frame.args[2];
    
    -- local pageName = "Шаблон:Новости";
    -- local index = 1;

    
    local content = mw.title.new(pageName):getContent()

    if not content then
        return "Страница не найдена или пуста."
    end
	
    local rows = {}

    for row in content:gmatch("|date=.[^}]+|", "%a") do
        table.insert(rows, row)
    end

    local result = {}
	str_p = rows[tonumber(index)]
	local trunced = string.gsub(str_p, "|date=", "");
	local str_p = string.gsub(trunced, "|", "");
    mw.log(str_p);

	return str_p;
end 


return p;