Module:Repeat

From Polcompball Wiki
Revision as of 19:17, 22 January 2022 by TheGhostOfInky (talk | contribs)
Jump to navigationJump to search

Module:Repeat contains several utilities to avoid having to repeat code in multiple templates, these are:

big

This utility adds one or several <big> tags around an element to increase its size. Its syntax only takes 2 arguments, the first is the text you want to increase the size of and the 2nd is the number of big tags to add.

Example usage:

This text is going to be big

{{#invoke:Repeat|big|This text is going to be big|5}}

This text not so much

{{#invoke:Repeat|big|This text not so much|1}}

same

This utility simply repeats a given segment of wikitext the provided times, it takes 2 arguments, the first is the text to repeat and the second is the number of times to do so

Example usage:

Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello Hello

{{#invoke:Repeat|same|Hello |5}}

#invoke:Repeat

{{#invoke:Repeat|same|Goodbye |20}}

gradient

This utility creates a linear gradient with hard cutoffs, it takes 3 or more arguments, the first is the direction towards which the gradient should be and the following arguments are the colors of the gradient.

Example usage:

<div style="background: Script error: The function "gradient" does not exist.;

width:500px;height:50px;">
<div style="background:
{{#invoke:Repeat|gradient|right|#E50000|#FF8D00|#FFEE00|#008121|#004CFF|#760188}};
width:500px;height:50px;"></div>

<div style="background: Script error: The function "gradient" does not exist.;

width:500px;height:50px;">
<div style="background:
{{#invoke:Repeat|gradient|bottom left|#018E71|#21CFAB|#9AE9C3|#FFFFFF|#7CAFE4|#4F47CC|#3C1379}}; 
width:500px;height:50px;"></div>

parentGradient

Similar functionality to Gradient but always grabs arguments from the parent template, ("direction" and unlabled elements are grabbed)

Example usage:

<!-- Some template -->

<span style="background: {{#invoke:Repeat|parentGradient}}>{{{Text}}}</span>

<!-- Template usage -->

{{Some Template
| text = sample text
| direction = right
| #0ff
| #f00
}}

shadow

This utility creates a text shadow of a specific color all around the text, it takes a single argument, the color of the shadow

Example usage:

<div style="text-shadow:Script error: The function "shadow" does not exist.">Hello, Red World!
<div style="text-shadow:{{#invoke:Repeat|shadow|#F00}}">Hello, Red World!</div>

<div style="text-shadow:Script error: The function "shadow" does not exist.">Hello, Royal Purple!

<div style="text-shadow:{{#invoke:Repeat|shadow|#7851a9}}">Hello, Royal Purple!</div>

local utils = {}

function utils.big(frame)
    local elm = frame.args[1] or frame:getParent().args[1]
    local arg2 = frame.args[2] or frame:getParent().args[2]
    local x = tonumber(arg2)
    for i=1,x do 
        elm = "<big>" .. elm .. "</big>"
    end
    return elm
end

function utils.same(frame)
    local elm = frame.args[1] or frame:getParent().args[1]
    local arg2 = frame.args[2] or frame:getParent().args[2]
    local x = tonumber(arg2)
    for i=1,x do 
        elm = elm .. elm
    end
    return elm
end


return utils