跳转到内容

模組:沙盒/Kcx36/sandbox

维基百科,自由的百科全书
文档图示 模块文档[创建]
local p = {}

local cultural_criteria = {"(i)", "(ii)", "(iii)", "(iv)", "(v)", "(vi)"}
local natural_criteria = {"(vii)", "(viii)", "(ix)", "(x)"}

-- 匹配标准
local function checkCriteria(text, criteria)
    local found = {}
    for _, criterion in ipairs(criteria) do
        if text:find(criterion, 1, true) then
            table.insert(found, criterion)
        end
    end
    table.sort(found)  -- 排序
    return found
end

function p.checkHeritage(frame)
    local input = frame.args[1] or ""
    
    -- 检查是否是文化、自然遗产
    local cultural_found = checkCriteria(input, cultural_criteria)
    local natural_found = checkCriteria(input, natural_criteria)

    local result = ""

    if #cultural_found > 0 and #natural_found > 0 then
        result = "[[文化遗产|文化]]和[[自然遗产|自然]]:" .. table.concat(cultural_found) .. table.concat(natural_found)
    elseif #cultural_found > 0 then
        result = "[[文化遗产|文化]]:" .. table.concat(cultural_found)
    elseif #natural_found > 0 then
        result = "[[自然遗产|自然]]:" .. table.concat(natural_found)
    else
        result = ""
    end

    return result
end

return p