انتقل إلى المحتوى

وحدة:Abyat

صفحة محمية
من ويكي مصدر، المكتبة الحرة
local aliases = {
    width = {'العرض', 'عرض'},
    title = {'عنوان', 'العنوان'},
    shaer = {'الشاعر', 'شاعر'},
    bahar = {'البحر', 'بحر'},
    nass = {1,'النص', 'نص'},
	shaterbyshater = {'شطر شطر'},
	fasil = {'فاصل','separator','fasil'},
	free = {'حر', 'شعر حر'},
}
local string = mw.ustring
local argument_wrapper=require('Module:Argument Wrapper')



local function abyat(frame)
	local A = argument_wrapper(aliases, {frame:getParent().args, frame.args, mw.loadData("Module:Art pref/data")["أبيات"] or {}})

	local mashtoor = false
	local header = ''
	local free = A.free and (A.free ~= "0")
	local fasil = A.fasil and string.gsub(A.fasil, '[%%%^%$%(%)%[%]%.%*%+%-%?]', '%%%1') or "\\\\"
	local fasil_s, fasil_e = string.find(mw.text.trim(A.nass),fasil)
	local tadweer = '<div class="abyat-tadweer"></div>'
	local sdrdiv = '<div class="abyat-sdr">'
	local cat = ''
	if not fasil_s then
		mashtoor=true
		sdrdiv = '<div>'
	end
	local nass= ""
	local ret = '<div class="abyat-wrapper' .. (mashtoor and ' mashtoor' or '') .. (free and ' free' or '') ..
	(A.shaterbyshater and ' abyat-shaterbyshater' or '') .. '"' ..
	(A.width and (' style="width:' .. A.width .. ';"') or '') .. '>'
	
    if A.title then
        header = header .. "<center>'''" .. A.title .. "'''</center>"
    end
    if A.shaer then
        header = header .. "<center>" .. A.shaer .. "</center>"
    end
    if A.bahar then
        header = header .. "<center>''[من " .. A.bahar .. "]''</center>"
    end
	nass = mw.text.trim(A.nass)
    if fasil_s == 1 then
        ret = ret .. '<div class="abyat-single_bayt">'
        nass = string.sub(nass,fasil_e+1)
    else
        ret = ret .. sdrdiv
    end

    nass=string.gsub(nass,"\n *" .. fasil .. " *([^|\n".. fasil .."]+) *" .. fasil .. " *\n",'</div><div class="abyat-single_bayt abyat-center">%1\n')
    nass=string.gsub(nass,"\n *"..fasil .. " *",'</div><div class="abyat-single_bayt">')
    nass=string.gsub(nass,"\n([^|])",'</div>' .. sdrdiv ..'%1')
    if not mashtoor then
		nass, hastadweer = string.gsub(nass, "ـ *" .. fasil .. " *ـ" ,'ـ</div>' .. tadweer .. '<div class="abyat-ajz">ـ')
    	if hastadweer > 0 then cat = '[[تصنيف:Gadget-Abyat]]' end
	end
    nass=string.gsub(nass, fasil ,'</div><div class="abyat-ajz">')
    return header .. ret .. nass .. "</div></div>" .. cat
end

return {abyat=abyat}