-- Baseret på kode venligst lavet af [[:en:User:קיפודנחש]] efter forspørgsel på [[:en:Wikipedia:Lua requests]]
local function find_endelse( ord )
    if mw.ustring.match( ord, "[sSzZxX]$" ) then return "'" -- please add all the missing letters inside the []
    elseif mw.ustring.match( ord, "['%a%.]$" ) then return 's'
    else return "'s"
    end
end

return {
genitiv = function( frame )
    local input = ( frame.args[1] or '' ):gsub( "^%s*(.-)%s*$", "%1" )
    if not input or #input == 0 then
    	return ''
    end
    local link = mw.ustring.match( input, "^%[%[(.-)%]%]$") or input
    return input .. find_endelse( link )
end,
endelse = function( frame )
    local input = ( frame.args[1] or '' ):gsub( "^%s*(.-)%s*$", "%1" )
    if not input or #input == 0 then
    	return ''
    end
    local link = mw.ustring.match( input, "^%[%[(.-)%]%]$") or input
    return find_endelse( link )
end,

-- Norsk Wikipedia har et Modul:Genitiv som kaldes fra andre moduler med function p._genitiv(ord, det)
-- Denne funktion har samme grænseflade så den kan bruges uden ændringer af moduler importeret fra norsk
_genitiv = function(ord, det)
    local input = ( ord or '' ):gsub( "^%s*(.-)%s*$", "%1" )
    if not input or #input == 0 then
    	return ''
    end
    local link = mw.ustring.match( input, "^%[%[(.-)%]%]$") or input
    return find_endelse( link )
end,
}