Переключити меню
Toggle preferences menu
Переключити особисте меню
Ви не увійшли до системи
Ваша IP-адреса буде публічно видима, якщо Ви внесете будь-які редагування.

Створення Lua модуля для анонсів

Матеріал з The Universe of Chaos

local p = {}

function p.extract(frame)

   local titleText = frame.args[1]
   if not titleText then return "" end
   
   local title = mw.title.new(titleText)
   if not title or not title.exists then return "" end
   
   local content = title:getContent()
   if not content then return "" end
   
   -- Видаляємо теги та вікі-розмітку для чистого тексту
   local plainText = mw.text.killMarkers(content)
   plainText = string.gsub(plainText, "<[^>]+>", "")
   plainText = string.gsub(plainText, "==+[^=]+==+", "")
   plainText = string.gsub(plainText, "%[%]+%|([^%+)%]%]", "%1")
   plainText = string.gsub(plainText, "%[%[([^%]]+)%]%]", "%1")
   plainText = string.gsub(plainText, "([^']+)", "%1")
   plainText = string.gsub(plainText, "([^']+)", "%1")
   
   -- Обрізаємо до 200 символів
   if mw.ustring.len(plainText) > 200 then
       plainText = mw.ustring.sub(plainText, 1, 200) .. "..."
   end
   
   return plainText

end

return p