Module:Ar-entryname

local export = {}

function export.makeEntryName(text, lang) local U = mw.ustring.char local taTwiil = U(0x640) local waSla = U(0x671) -- diacritics ordinarily removed by entry_name replacements local Arabic_diacritics = U(0x64B, 0x64C, 0x64D, 0x64E, 0x64F, 0x650, 0x651, 0x652, 0x670) if text == waSla or mw.ustring.find(text, "^" .. taTwiil .. "?[" .. Arabic_diacritics .. "]" .. "$") then return text end -- replace alif waṣl with alif -- remove tatweel and diacritics: fathatan, dammatan, kasratan, fatha, -- damma, kasra, shadda, sukun, superscript (dagger) alef local replacements = { from = {U(0x0671), U(0x0640), "[" .. U(0x064B) .. "-" .. U(0x0652) .. "]", U(0x0670)}, to  = {U(0x0627)} }	for i, from in ipairs(replacements.from) do		local to = replacements.to[i] or "" text = mw.ustring.gsub(text, from, to) end return text end

return export