Modül:Girinti
Görünüm
Bu Lua uygulaması {{Girinti}} şablonunun belgelemesidir. Lütfen belgeleme için şablon sayfasına bakın.
-- Bu modülün kaynak kodu [[:en:Module:Indent]] sayfasından alınmıştır
-- the module's source code is taken from [[:en:Module:Indent]]
local p = {}
function p.girinti(frame)
-- Trim whitespace from the arguments and remove blank values.
local args = {}
if type(frame.args) == 'table' then
for k, v in pairs( frame.args ) do
v = mw.text.trim(v)
if v ~= '' then
args[k] = v
end
end
end
-- Set variables.
local girinti = tonumber( args[1] )
local br = args[2]
local ret = ''
-- Insert line breaks to match the functionality of the original template.
-- If "br" is set, we need two line breaks; if not, we just need one.
if br then
ret = ret .. '<br />'
end
ret = ret .. '<br />'
-- Control for bad or zero input. If found, output the line breaks only,
-- as this was the previous behaviour of the template.
if not girinti or girinti <= 0 or math.floor(girinti) ~= girinti then
return ret
end
-- Generate the indents. The first four cases are special.
if girinti == 1 then
return ret .. ' '
elseif girinti == 2 then
return ret .. ' '
elseif girinti == 3 then
return ret .. '   '
elseif girinti == 4 then
return ret .. '   '
end
-- Set variables for generating the output after indent == 5.
local r = {}
r.base = ' ' -- Common text to all output.
r.rep = '   ' -- The text to repeat.
r.mod1 = ' ' -- To return on modulo 1.
r.mod2 = '  ' -- To return on modulo 2.
r.mod3 = '   ' -- To return on modulo 3.
-- New iteratorText values needed at 5, 9, 13, 17, etc., so repeat the
-- text (indent - 1)/4 times and find the remainder.
local reps = math.floor( (girinti - 1) / 4 )
local remainder = math.fmod( girinti - 1, 4 )
-- Generate the indent text.
ret = ret .. r.base .. mw.ustring.rep( r.rep, reps )
if remainder >= 1 and remainder <= 3 then
ret = ret .. r[ 'mod' .. remainder ]
end
return ret
end
return p