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:Ft.dk link

From Wikipedia, the free encyclopedia

local p = {}

function p.link_url_for_current_page()
    return p.link_url(mw.wikibase.getEntityIdForCurrentPage())
end

function p.asciify(ft_id)
    ft_id = mw.ustring.gsub(ft_id, 'æ', 'ae')
    ft_id = mw.ustring.gsub(ft_id, 'ø', 'oe')
    ft_id = mw.ustring.gsub(ft_id, 'ð', 'oe') -- e.g. Sjúrður Skaale
    ft_id = mw.ustring.gsub(ft_id, 'ö', 'oe') -- e.g. Özlem Cekic
    ft_id = mw.ustring.gsub(ft_id, 'å', 'aa')
    ft_id = mw.ustring.gsub(ft_id, 'ú', 'u')  -- e.g. Sjúrður Skaale
    ft_id = mw.ustring.gsub(ft_id, 'á', 'a')  -- e.g. Annita á Fríðriksmørk
    ft_id = mw.ustring.gsub(ft_id, 'í', 'i')  -- e.g. Annita á Fríðriksmørk
    return ft_id
end

local url_prefix = 'https://www.thedanishparliament.dk/members/'

function p.link_url(entity)
    local prop = entity and mw.wikibase.getBestStatements(entity, 'P7882')
    if prop and prop[1] and prop[1].mainsnak.snaktype == 'value' then
        local ft_id = prop[1].mainsnak.datavalue.value
        slash_position = mw.ustring.find(ft_id, '/')
        if slash_position ~= nil then
            -- There are politicians like e.g. Özlem Cekic where the property string will start with 'oe/'
            -- because this is needed in the Danish version of the biography URL.
            -- It isn't there in the English version, so we strip off that part.
            ft_id = mw.ustring.sub(ft_id, slash_position + 1)
        end
        ft_id = p.asciify(ft_id) -- The Danish version allows unicode but the English doesn't
        return url_prefix .. ft_id
    end
    return ''
end

return p