请输入您要查询的百科知识:

 

词条 Module:Indent
释义

local p = {}

function p.indent(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 indent = 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 .. '
' end ret = ret .. '
' -- Control for bad or zero input. If found, output the line breaks only, -- as this was the previous behaviour of the template. if not indent or indent <= 0 or math.floor(indent) ~= indent then return ret end -- Generate the indents. The first four cases are special. if indent == 1 then return ret .. ' ' elseif indent == 2 then return ret .. '  ' elseif indent == 3 then return ret .. '   ' elseif indent == 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( (indent - 1) / 4 ) local remainder = math.fmod( indent - 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

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/11 20:20:05