Minecraft Wiki
Advertisement
[створити | історія | оновити]Документація
У цього модуля немає документації. Якщо ви знаєте, як використовувати цей модуль, будь ласка, додайте відповідну інформацію.
p = {}

local data = {}
data.imports = {
    PROCESS_ARGS = "Модуль:ProcessArgs",
    CSD = "Модуль:КШВ"
}
data.arg_names = {
    LETTER = "буква", -- буква, якої позначаються критерії в таблиці
    NUMBER = "номер", -- додаткове значення, що зумовлює ідентифікатор критерію (наприклад, "О5")
    CRITERION = "критерій" -- додаткове значення, що зумовлює текст критерію
}
data.colors = {
    EVEN_ROW = "#abf692", -- фон парних рядків в таблиці (темніше)
    ODD_ROW = "#caf6bb" -- фон непарних рядків в таблиці (світліше)
}
data.error_messages = {
    NO_LETTER = "Не вказана літера, що входить в ідентифікатор критерію.",
    NO_CSD_FUNCTION = "Не знайдений модуль " .. data.imports.CSD .. "."
}

function p.table(f)
    local args = require(data.imports.PROCESS_ARGS).merge(true)
    
    local criterion = require(data.imports.CSD).criterion
    assert(criterion, data.error_messages.NO_CSD_FUNCTION)
    
    local criteriaLetter = args[data.arg_names.LETTER]
    assert(criteriaLetter, data.error_messages.NO_LETTER)
    
    local resultTable = {}
    table.insert(resultTable, "{| style=\"width: 100%; border-collapse: collapse\" cellpadding=\"10\"\n")
    table.insert(resultTable, "!width=\"50%\"| Критерій\n")
    table.insert(resultTable, "!width=\"50%\"| Опис\n")
    
    local index = 1
    while args[index] do
        local indexString = tostring(index)
        local numberOverride = args[data.arg_names.NUMBER .. indexString]
        local criterionOverride = args[data.arg_names.CRITERION .. indexString]
        local criterionNumber = criteriaLetter .. indexString
        
        table.insert(resultTable, "|-style=\"background-color: ")
        if index % 2 == 0 then
            table.insert(resultTable, data.colors.EVEN_ROW)
        else
            table.insert(resultTable, data.colors.ODD_ROW)
        end
        table.insert(resultTable, "\"\n")
        
        table.insert(resultTable, "| <big id=\"")
        table.insert(resultTable, numberOverride or criterionNumber)
        table.insert(resultTable, "\"><strong>")
        table.insert(resultTable, criterionOverride or criterion({criterionNumber, "номер"}))
        table.insert(resultTable, "</strong></big>\n")
        table.insert(resultTable, "| ")
        table.insert(resultTable, args[index])
        table.insert(resultTable, "\n")
        
        index = index + 1
    end
    
    table.insert(resultTable, "|}")
    return table.concat(resultTable)
end

return p
Advertisement