משתמש:Ariel1024/ארגז חול/יחידה:מבנה

מתוך ויקיספר, אוסף הספרים והמדריכים החופשי
local b = {}

function b.toPrint (frame)
local str = frame.args[1]
local book = frame.args[2]

--מחיקה של פרטים לא להדפסה
    str = string.gsub(str, "[*#]*<לא להדפסה>[^\n]*</לא להדפסה>\n*", "")
    str = string.gsub(str, "[*#]*<ספר המשך>[^\n]*</ספר המשך>\n*", "")
    str = string.gsub(str, "</?שער>", "")
--סידור וקישורים
    str = string.gsub(str, "^\n*", "\n")
    str = string.gsub(str, "\n*$", "\n")
    str = string.gsub(str, "[*#]<חוצץ>([^\n]*)</חוצץ>\n*", "=%1=\n")
    str = string.gsub(str, "[*#]<דף להדפסה>([^\n]*)</דף להדפסה>\n*", "=%1=\n{{%1}}\n")
    str = string.gsub(str, "[*#]([^=^*^#][^\n]+)\n", "=%1=\n{{" .. book .. "/%1}}\n")
    str = string.gsub(str, "<דף ראשי>", "{{" .. book .. "}}")
--כותרות
    for i = 1,9 do
         str = string.gsub(str, "[*#](=+[^\n]*=+)\n", "=%1=\n")
    end
--תוספות
    str = string.gsub(str, "[*#]*<כריכה>([^\n]*)</כריכה>", "[[קובץ:%1|2200px|ממוזער|מרכז]]{{מעבר עמוד}}")
    str = string.gsub(str, "[*#]*<מעבר עמוד>", "{{מעבר עמוד}}")
    str = string.gsub(str, "[*#]*<כותרת ספר(%d)>([^\n]*)</כותרת ספר>", "{{כותרת ספר|%1|%2}}")

    return str 
end



function b.toTable (frame)
local str = frame.args[1]
local book = frame.args[2]
local current = frame.args[3]

    return str 
end


function b.toMenu (frame)
local str = frame.args[1]
local book = frame.args[2]
local current = frame.args[3]

    return str 
end


function b.toPaging (frame)
local str = frame.args[1]
local book = frame.args[2]
local current = frame.args[3]
--מחיקה של פרטים לא רלוונטיים
    str = string.gsub(str, "<חוצץ>[^\n]*</חוצץ>\n*", "")
    str = string.gsub(str, "<דף להדפסה>[^\n]*</דף להדפסה>\n*", "")
    str = string.gsub(str, "<כריכה>[^\n]*</כריכה>\n*", "")
    str = string.gsub(str, "<כותרת ספר%d?>[^\n]*</כותרת ספר>\n", "")
    str = string.gsub(str, "[*#]<קטע להדפסה>([^\n]*)</קטע להדפסה>\n*", "{{%1}}\n")
    str = string.gsub(str, "<[^>]*>", "")
    str = string.gsub(str, "[*#]+%s*", "")
    str = string.gsub(str, "%s*\n+[*#]*%s*", "\n")
--חתוך וחיפש
    pages = {}
    local i = 1
    for p in string.gmatch(str, "[^\n]+") do
       pages[i] = p
       pages[p] = i
       i = i+1
    end
--בניית קריאה לתבנית
    str = "{{דפדוף/פרקים|" .. book.. "|"
    if pages[current]~=1 then str = str .. pages[pages[current]-1] end
    str = str .. "|" .. current .. "|"
    if pages[current]~=i-1 then str = str .. pages[pages[current]+1] end
    str = str .. "}}"

    return str 
end



return b