Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Module:Outdent

From Summertime Saga Wiki
Revision as of 12:25, 16 June 2019 by Casiope (talk | contribs) (Created page with "local p = {} local getArgs = require('Module:Arguments').getArgs function p.outdent (frame) local args = getArgs (frame) local count = 0 local Start = '┌' local End =...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

local p = {} local getArgs = require('Module:Arguments').getArgs

function p.outdent (frame) local args = getArgs (frame) local count = 0 local Start = '┌' local End = '┘' local i = 0 local line = local outside = mw.html.create('span') local indentTable = {'reverse','indent','in','r'} -- lsit of parameters that mean reverse/indent

for k,v in pairs(indentTable) do -- set start and end if reversed if args[v] then Start = '└' End = '┐' end end

if not args[1] then args[1] = end -- un-nil args[1]

for _ in string.gmatch(args[1],':') do count = count+1 -- increase count for every : end

for _ in string.gmatch(args[1],'*') do count = count+1 -- increase count for every * end

for _ in string.gmatch(args[1],'#') do count = count+2 -- increase count by 2 for every # end

if count == 0 then -- set count to args[1] if needed count = tonumber(args[1]) end


if not count then count = 10 -- 10 default end

if count > 40 then count = 40 -- 40 max end

count = count * 1.6 - 0.7 -- convert to width

local lineMath = math.ceil(count * 1.6)

while i < lineMath do -- create line line = line..'─' i = i+1 end

if count == - 0.7 then -- set to pipe | if count was 0 line = '|' Start = End = end

outside -- create span tag :addClass('outdent-template') :css('display','block') :css('margin-top','-0.5em') :css('color','#AAA;') :wikitext(''..Start..'') -- start :wikitext(''..line..'') -- middle :wikitext(''..End..'') -- end if line ~= '|' then -- if not pipe (|) outside :css('position','relative') :css('left','-0.25em') else outside :css('margin-top','0.25em') end

if args['test_line_width'] then -- used to test line width before and after width reduction return 'Before:'..'
'..line..'
'..'After:'..'
'..''..line..''..'
'..'Final:'..'
'..tostring(outside) end

if args[2] then local note = mw.html.create('span') note:wikitext('(outdent) ') -- add (outdent) if needed return tostring(outside)..tostring(note) else return outside end

end

return p