Модуль:FetchData2: відмінності між версіями

нема опису редагування
Немає опису редагування
Немає опису редагування
Рядок 39: Рядок 39:
     -- Обробляємо рядок за рядком
     -- Обробляємо рядок за рядком
     for line in mw.ustring.gmatch(content, "[^\n]+") do
     for line in mw.ustring.gmatch(content, "[^\n]+") do
         -- Шукаємо заголовки рівня 2 (== Назва ==), але НЕ рівня 3 (=== Назва ===)
         -- Шукаємо ТІЛЬКИ заголовки рівня 2: == Назва ==
         local section_name = mw.ustring.match(line, "^==%s*(.-)%s*==$")
        -- Перевіряємо що це НЕ рівень 3 (===) і НЕ рівень 4 (====)
        if section_name and section_name ~= "" then
         if mw.ustring.match(line, "^==[^=]") and mw.ustring.match(line, "[^=]==$") then
            -- Очищаємо назву для відображення (прибираємо {{...}})
             local section_name = mw.ustring.match(line, "^==%s*(.-)%s*==$")
            local display_name = mw.ustring.gsub(section_name, "%{%{.-%}%}", "")
             display_name = mw.ustring.gsub(display_name, "%s*%(%s*%)%s*", "") -- прибираємо пусті дужки ()
            display_name = mw.text.trim(display_name)
              
              
             -- Якір залишаємо оригінальним (але без шаблонів для MediaWiki)
             if section_name and section_name ~= "" then
            local anchor = mw.ustring.gsub(section_name, "%{%{.-%}%}", "")
                -- Очищаємо назву для відображення
            anchor = mw.text.trim(anchor)
                local display_name = mw.ustring.gsub(section_name, "%{%{.-%}%}", "")
            anchor = mw.ustring.gsub(anchor, " ", "_")
                display_name = mw.ustring.gsub(display_name, "%s*%([^%)]*%)%s*", "") -- прибираємо дужки з вмістом
           
                display_name = mw.text.trim(display_name)
            table.insert(sections, {
               
                display = display_name,
                -- Створюємо anchor
                anchor = anchor
                local anchor = mw.ustring.gsub(section_name, "%{%{.-%}%}", "")
            })
                anchor = mw.text.trim(anchor)
                anchor = mw.ustring.gsub(anchor, "%s*%([^%)]*%)%s*", "") -- прибираємо дужки з вмістом
                anchor = mw.ustring.gsub(anchor, " ", "_")
               
                if display_name ~= "" then
                    table.insert(sections, {
                        display = display_name,
                        anchor = anchor
                    })
                end
            end
         end
         end
     end
     end