Module:interval
To module αυτό, για έναν αριθμό (π.χ. σελίδας πολύτομου έργου), μαντεύει σε ποιο διάστημα σελίδων (κάποιου τόμου) ανήκει.
Καλείται στο Πρότυπο:interval. Εφαρμογή στο {{R:ine:IEW}}
Δημιουργήθηκε στο αγγλικό Βικιλεξικό ως wikt:en:Module:interval by wikt:en:User:Useigor
-- 2022.12.28. This is [[wikt:en:Module:interval]] by [[wikt:en:User:Useigor]]
-- see [[wikt:en:Template:interval]] for his notes and examples
-- cf [[mw:Lua_reference_manual#Accessing_parameters_from_wikitext]]
--[=[
e.g. a dictionary has 2 volumes, pages 1-500 = 1st vol. pages 501-900 = 2nd vol
So, when we give page=600, it finds automatically where 600 is (it is in the interval 501-900)
and gives the correct volume (number 2), needed for internet addresses
Otherwise, it's Greek to me!! [[wikt:el:User:Sarri.greek]]
]=]--
local export = {}
function export.show(frame)
-- [[mw:Lua_reference_manual#Accessing_parameters_from_wikitext]]
-- it changes parameters order from original to unpredictable
-- example: |p=15|10=1|20=2|30=3 >> |30=3|p=15|20=2|10=1 (1234 >> 4132)
local args = frame:getParent().args
local p = ( args["p"] and tonumber(args["p"]) or error("Λείπει η παράμετρος p - Missing parameter 'p' (position-X)") )
local bottom
for border in pairs(args) do
if border~="p" and border~="default" then
border = tonumber(border)
if p >= border then -- this border is bottom
if bottom==nil or border > bottom then -- old bottom is farther
bottom = border
end
end
end
end
if bottom==nil then
return (args["default"] or "")
end
bottom = args[tostring(bottom)]
if bottom=="@" then
return (args["default"] or "")
end
return bottom
end
return export