Модуль:ClearText

Материал из Rayten
Перейти к: навигация, поиск

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

local p = {}

function p.meta(frame)
    local text = frame.args[1] or ''

    -- Очистка HTML и вики-разметки
    text = mw.ustring.gsub(text, '<script.-</script>', '')
    text = mw.ustring.gsub(text, '<style.-</style>', '')
    text = mw.ustring.gsub(text, '<iframe.-</iframe>', '')
    text = mw.ustring.gsub(text, '<[^>]->', '')
    text = mw.ustring.gsub(text, '%[%[.-|(.-)%]%]', '%1') -- ссылки [[...|текст]]
    text = mw.ustring.gsub(text, '%[%[(.-)%]%]', '%1')    -- ссылки [[текст]]
    text = mw.ustring.gsub(text, '{{.-}}', '')            -- шаблоны
    text = mw.ustring.gsub(text, "''+", '')               -- выделения
    text = mw.text.trim(text)

    -- Ограничение длины
    if #text > 200 then
        text = mw.ustring.sub(text, 1, 197) .. "..."
    end

    return text
end

return p