Edge Rewrite
// HTMLRewriter · presentation

This page was redesigned at the edge.

Cloudflare fetched the original article and streamed it through HTMLRewriter to apply an entirely new visual system without rebuilding the source page.

Jump to content

Module:Link with country

Permanently protected module
From Wikipedia, the free encyclopedia

local p = {}

local ISO_3166 = require('Module:ISO 3166')

local function ltrim(s)
    return s:match '^%s*(.*)'
end

local function split_with_comma(str)
    local fields = {}
    for field in str:gmatch('([^,]+)') do
        fields[#fields + 1] = ltrim(field)
    end
    return fields
end

local function to_ISO_3166(country)
    for i = 1, #country do
        local shortname = ISO_3166.name({ country[i] })
        if shortname ~= "" then country[i] = shortname end
    end
    return country
end

local function to_str(arr)
    local cstring = ""
    for i = 1, #arr - 1 do
        cstring = cstring .. ltrim(arr[i]) .. ", "
    end
    cstring = cstring .. ltrim(arr[#arr])
    return cstring
end


function p.countrynames(frame)
    -- local test = frame.args[1] .. ", " .. frame.args.property
    --    return test

    -- change comma list to array
    Countryarray = split_with_comma(frame.args[1])

    -- put each array entry {as a table} through Module:ISO 3166. If the result is null, keep original entry
    to_ISO_3166(Countryarray)

    -- change array back to comma string
    Commastring = to_str(Countryarray)

    return Commastring
end

return p