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