وحدة:مسند
local p = {} local replaces_ = { {c = "𐩽", ar = " ", file = "OLD SOUTH ARABIAN NUMBER ONE.svg"}, {c = "𐩱", ar = "ا", other = {"أ", "إ", "آ", "ى"}, file = "OLD SOUTH ARABIAN LETTER ALEF.svg"}, {c = "𐩨", ar = "ب", file = "OLD SOUTH ARABIAN LETTER BETH.svg"}, {c = "𐩩", ar = "ت", other = {"ة"}, file = "OLD SOUTH ARABIAN LETTER TAW.svg"}, {c = "𐩻", ar = "ث", file = "OLD SOUTH ARABIAN LETTER THAW.svg"}, {c = "𐩴", ar = "ج", file = "OLD SOUTH ARABIAN LETTER GIMEL.svg"}, {c = "𐩢", ar = "ح", file = "OLD SOUTH ARABIAN LETTER HETH.svg"}, {c = "𐩭", ar = "خ", file = "OLD SOUTH ARABIAN LETTER KHETH.svg"}, {c = "𐩵", ar = "د", file = "OLD SOUTH ARABIAN LETTER DALETH.svg"}, {c = "𐩹", ar = "ذ", file = "OLD SOUTH ARABIAN LETTER DHALETH.svg"}, {c = "𐩧", ar = "ر", file = "OLD SOUTH ARABIAN LETTER RESH.svg"}, {c = "𐩸", ar = "ز", file = "OLD SOUTH ARABIAN LETTER ZAYN.svg"}, {c = "𐩪", ar = "س", file = "OLD SOUTH ARABIAN LETTER SAT.svg"}, {c = "𐩯", ar = "x", file = "OLD SOUTH ARABIAN LETTER SAMEKH.svg"}, {c = "𐩦", ar = "ش", file = "OLD SOUTH ARABIAN LETTER SHIN.svg"}, {c = "𐩮", ar = "ص", file = "OLD SOUTH ARABIAN LETTER SADHE.svg"}, {c = "𐩳", ar = "ض", file = "OLD SOUTH ARABIAN LETTER DHADHE.svg"}, {c = "𐩷", ar = "ط", file = "OLD SOUTH ARABIAN LETTER TETH.svg"}, {c = "𐩼", ar = "ظ", file = "OLD SOUTH ARABIAN LETTER THETH.svg"}, {c = "𐩲", ar = "ع", file = "OLD SOUTH ARABIAN LETTER AYN.svg"}, {c = "𐩶", ar = "غ", file = "OLD SOUTH ARABIAN LETTER GHAYN.svg"}, {c = "𐩰", ar = "ف", file = "OLD SOUTH ARABIAN LETTER FE.svg"}, {c = "𐩤", ar = "ق", file = "OLD SOUTH ARABIAN LETTER QOPH.svg"}, {c = "𐩫", ar = "ك", file = "OLD SOUTH ARABIAN LETTER KAPH.svg"}, {c = "𐩡", ar = "ل", file = "OLD SOUTH ARABIAN LETTER LAMEDH.svg"}, {c = "𐩣", ar = "م", file = "OLD SOUTH ARABIAN LETTER MEM.svg"}, {c = "𐩬", ar = "ن", file = "OLD SOUTH ARABIAN LETTER NUN.svg"}, {c = "𐩠", ar = "ه", file = "OLD SOUTH ARABIAN LETTER HE.svg"}, {c = "𐩥", ar = "و", file = "Himjar wa.svg"},--OLD SOUTH ARABIAN LETTER WAW.svg {c = "𐩺", ar = "ي", file = "OLD SOUTH ARABIAN LETTER YODH.svg"}, } local replaces = {} for _, v in ipairs(replaces_) do replaces[v.c] = v.file replaces[v.ar] = v.file if v.other then for _, u in ipairs(v.other) do replaces[u] = v.file end end end local function file(a) -- local size = a == "OLD SOUTH ARABIAN LETTER WAW.svg" and "35x35px" or "25x25px" return "[[file:" .. a .. "|25x25px|link=]]" end local function replace(text) text = mw.text.trim(text) -- replace every letter in text with its equivalent using mw.ustring.gmatch local result = mw.ustring.gsub(text, ".", function(c) if replaces[c] then return file(replaces[c]) else return c end end) mw.log(result) return result end function p.s(frame) local text = frame.args[1] if not text or text == '' then return '' end local newtext = replace(text) return newtext end function p.tables(frame) -- build table -- إنشاء جدول local root = mw.html.create('table') :addClass('wikitable') :css('font-size', '30px') :css('text-align', 'center') local style ="position: sticky;top: 0;left: 0;" local head = root:tag('tr') head:tag('th') :wikitext('الحرف العربي') :css('font-size', '18px') :cssText(style) local row1 = root:tag('tr') row1:tag('th') :wikitext('حرف المسند') :css('font-size', '18px') :cssText(style) local row2 = root:tag('tr') row2:tag('th') :wikitext('الناتج') :css('font-size', '18px') :cssText(style) local sortedTable = {} for key, value in pairs(replaces_) do table.insert(sortedTable, {key = key, value = value}) end table.sort(sortedTable, function(a, b) return a.value.ar < b.value.ar end) for _, entry in ipairs(sortedTable) do local ar = entry.value.ar ~= ' ' and entry.value.ar or 'مسافة' -- local size = entry.value.file == "OLD SOUTH ARABIAN LETTER WAW.svg" and "50x50px" or "40x40px" head:tag('td') :wikitext(ar) row1:tag('td') :wikitext(entry.value.c) row2:tag('td') :wikitext("[[file:" .. entry.value.file .. "|40x40px]]") end local table = tostring(root) -- <div style="width:100%;overflow-x:auto; overflow-y:auto"></div> local div = mw.html.create('div') div:css('width', '100%') div:css('overflow-x', 'auto') div:css('overflow-y', 'auto') div:wikitext(table) return div end return p