Модуль:Поиск шаблона страницы: различия между версиями

Материал из Space Station 14 Вики
мНет описания правки
мНет описания правки
Строка 6: Строка 6:


     searchText = searchText:match("^%s*(.-)%s*$")
     searchText = searchText:match("^%s*(.-)%s*$")
    searchText = mw.text.decode(searchText)


     searchText = searchText:gsub("<nowiki>(.-)</nowiki>", "%1")
     searchText = searchText:gsub("<nowiki>(.-)</nowiki>", "%1")
Строка 15: Строка 17:
     local title = mw.title.getCurrentTitle()
     local title = mw.title.getCurrentTitle()
     local content = title:getContent()
     local content = title:getContent()
     if not content then
     if not content then
         return "Нет"
         return "Нет"
Строка 23: Строка 26:
     local escapedSearchText = mw.ustring.gsub(searchText, "([%(%)%.%%%+%-%*%?%[%]%^%$])", "%%%1")
     local escapedSearchText = mw.ustring.gsub(searchText, "([%(%)%.%%%+%-%*%?%[%]%^%$])", "%%%1")


     if not mw.ustring.match(content, escapedSearchText) then
     if not mw.ustring.find(content, escapedSearchText, 1, true) then
         return "Нет"
         return "Нет"
     end
     end

Версия от 14:57, 6 марта 2025

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

local p = {}

function p.main(frame)
    local args = frame.args
    local searchText = args[1] or ""

    searchText = searchText:match("^%s*(.-)%s*$")

    searchText = mw.text.decode(searchText)

    searchText = searchText:gsub("<nowiki>(.-)</nowiki>", "%1")

    if searchText == "" then
        return "Нет"
    end

    local title = mw.title.getCurrentTitle()
    local content = title:getContent()

    if not content then
        return "Нет"
    end

    content = content:gsub("{{#invoke:[^}]+}}", "")

    local escapedSearchText = mw.ustring.gsub(searchText, "([%(%)%.%%%+%-%*%?%[%]%^%$])", "%%%1")

    if not mw.ustring.find(content, escapedSearchText, 1, true) then
        return "Нет"
    end

    return "Да"
end

return p