Module:Arabic alphabet shapes

local p = {} local getArgs = require('Module:Arguments').getArgs

local letters = { ["&#x627;"] = {isolated="&#xFE8D;", final="&#xFE8E;", name="ʾalif"}, ["&#x628;"] = {isolated="&#xFE8F;", final="&#xFE90;", medial="&#xFE92;", initial="&#xFE91;", name="bāʾ"}, ["&#x62A;"] = {isolated="&#xFE95;", final="&#xFE96;", medial="&#xFE98;", initial="&#xFE97;", name="tāʾ"}, ["&#x62B;"] = {isolated="&#xFE99;", final="&#xFE9A;", medial="&#xFE9C;", initial="&#xFE9B;", name="ṯāʾ"}, ["&#x62C;"] = {isolated="&#xFE9D;", final="&#xFE9E;", medial="&#xFEA0;", initial="&#xFE9F;", name="ǧīm"}, ["&#x62D;"] = {isolated="&#xFEA1;", final="&#xFEA2;", medial="&#xFEA4;", initial="&#xFEA3;", name="ḥāʾ"}, ["&#x62E;"] = {isolated="&#xFEA5;", final="&#xFEA6;", medial="&#xFEA8;", initial="&#xFEA7;", name="ḫāʾ"}, ["&#x62F;"] = {isolated="&#xFEA9;", final="&#xFEAA;", name="dāl"}, ["&#x630;"] = {isolated="&#xFEAB;", final="&#xFEAC;", name="ḏāl"}, ["&#x631;"] = {isolated="&#xFEAD;", final="&#xFEAE;", name="rāʾ"}, ["&#x632;"] = {isolated="&#xFEAF;", final="&#xFEB0;", name="zayn/zāy"}, ["&#x633;"] = {isolated="&#xFEB1;", final="&#xFEB2;", medial="&#xFEB4;", initial="&#xFEB3;", name="sīn"}, ["&#x634;"] = {isolated="&#xFEB5;", final="&#xFEB6;", medial="&#xFEB8;", initial="&#xFEB7;", name="šīn"}, ["&#x635;"] = {isolated="&#xFEB9;", final="&#xFEBA;", medial="&#xFEBC;", initial="&#xFEBB;", name="ṣād"}, ["&#x636;"] = {isolated="&#xFEBD;", final="&#xFEBE;", medial="&#xFEC0;", initial="&#xFEBF;", name="ḍād"}, ["&#x637;"] = {isolated="&#xFEC1;", final="&#xFEC2;", medial="&#xFEC4;", initial="&#xFEC3;", name="ṭāʾ"}, ["&#x638;"] = {isolated="&#xFEC5;", final="&#xFEC6;", medial="&#xFEC8;", initial="&#xFEC7;", name="ẓāʾ"}, ["&#x639;"] = {isolated="&#xFEC9;", final="&#xFECA;", medial="&#xFECC;", initial="&#xFECB;", name="ʿayn"}, ["&#x63A;"] = {isolated="&#xFECD;", final="&#xFECE;", medial="&#xFED0;", initial="&#xFECF;", name="ġayn"}, ["&#x641;"] = {isolated="&#xFED1;", final="&#xFED2;", medial="&#xFED4;", initial="&#xFED3;", name="fāʾ"}, ["&#x642;"] = {isolated="&#xFED5;", final="&#xFED6;", medial="&#xFED8;", initial="&#xFED7;", name="qāf"}, ["&#x643;"] = {isolated="&#xFED9;", final="&#xFEDA;", medial="&#xFEDC;", initial="&#xFEDB;", name="kāf"}, ["&#x644;"] = {isolated="&#xFEDD;", final="&#xFEDE;", medial="&#xFEE0;", initial="&#xFEDF;", name="lām"}, ["&#x645;"] = {isolated="&#xFEE1;", final="&#xFEE2;", medial="&#xFEE4;", initial="&#xFEE3;", name="mīm"}, ["&#x646;"] = {isolated="&#xFEE5;", final="&#xFEE6;", medial="&#xFEE8;", initial="&#xFEE7;", name="nūn"}, ["&#x647;"] = {isolated="&#xFEE9;", final="&#xFEEA;", medial="&#xFEEC;", initial="&#xFEEB;", name="hāʾ"}, ["&#x648;"] = {isolated="&#xFEED;", final="&#xFEEE;", name="wāw"}, ["&#x64A;"] = {isolated="&#xFEF1;", final="&#xFEF2;", medial="&#xFEF4;", initial="&#xFEF3;", name="yāʾ"}, ["&#x622;"] = {isolated="&#xFE81;", final="&#xFE82;", name="ʾalif maddah"}, ["&#x629;"] = {isolated="&#xFE93;", final="&#xFE94;", name="Tāʾ marbūṭah"}, ["&#x649;"] = {isolated="&#xFEEF;", final="&#xFEF0;", name="ʾalif maqṣūrah"}, }

function p.test2(frame) local args = getArgs(frame) local letter = args[1] local pos = string.ulower(args[2]) local positionTable = { ['isolated'] = letters[letter].isolated, ['final'] = letters[letter].final, ['medial'] = letters[letter].medial, ['initial'] = letters[letter].initial, }	if positionTable[pos] then return positionTable[pos] end end

function p.test(frame) local args = getArgs(frame) local letter = args[1] local pos = string.ulower(args[2]) local positionTable = { ['isolated']= letter, ['final']	= letter .. '&#x640;', ['medial']	= '&#x640;' .. letter .. '&#x640;', ['initial']	= '&#x640;' .. letter, }	if positionTable[pos] then return positionTable[pos] end end

return p