Difference between revisions of "Template:In5"

From blackwiki
Jump to navigation Jump to search
test>WOSlinker
(moved docs to subpage)
test>Mr. Stradivarius
(switch to Lua implementation)
Line 3: Line 3:
 
- Template:in5 -  indent by 5 or specified count of spaces
 
- Template:in5 -  indent by 5 or specified count of spaces
 
-============================================================
 
-============================================================
-                                (see NOTES below)
 
 
--
 
--
--------------------------------------------------------
+
--></noinclude>{{#invoke:in5|in5|1={{{1|}}}}}<noinclude><!--
--  put 10 spaces for each ten above 10, 20, 30, etc.
 
--
 
--></noinclude>{{
 
  #ifexpr: {{{1|5}}} > 10
 
  | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;}}{{
 
  #ifexpr: {{{1|5}}} > 20
 
  | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;}}{{
 
  #ifexpr: {{{1|5}}} > 30
 
  | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;}}{{
 
  #ifexpr: {{{1|5}}} > 40
 
  | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;}}{{
 
  #switch: {{#expr:{{{1|5}}}-floor({{{1|5}}}/10)*10 }}
 
  | 1 = &nbsp;
 
  | 2 = &nbsp;&nbsp;
 
  | 3 = &nbsp; &nbsp;
 
  | 4 = &nbsp; &nbsp;&nbsp;
 
  | 5 = &nbsp; &nbsp; &nbsp;
 
  | 6 = &nbsp; &nbsp; &nbsp;&nbsp;
 
  | 7 = &nbsp; &nbsp; &nbsp; &nbsp;
 
  | 8 = &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
 
  | 9 = &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
 
  | 0 = &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&nbsp;
 
}}<noinclude><!--
 
---------------------------------------- Error message if >50
 
--></noinclude>{{#ifexpr:{{{1|5}}}>50
 
  |<br>'''[[Template:in5]]''' - count must be 1-50 spaces,<!--
 
  --> found: {{{1|0}}}.<br>
 
}}<noinclude><!--endif >50 -->
 
<!--
 
 
--------------------------------------------------------------
 
--------------------------------------------------------------
 
--NOTES:
 
--NOTES:
 
--
 
--
 
-- NOTE A1: This template inserts 5 or the specified count
 
-- NOTE A1: This template inserts 5 or the specified count
--      of spaces. Currently, the count can be 1 to 50.
+
--      of spaces.
--      A recursive implementation could call {{in5}} again,
 
--      to handle each 10 spaces, as: {{in5|{{{1}}}-10}};
 
--      however, that could become dangerous if the template
 
--      were edited by novices unaware of recursion dangers.
 
--
 
-- NOTE E2: To improve efficiency, the logic was rewritten to
 
--      output groups of 10 spaces, followed by 1-10 for the
 
--      remaining spaces of n - floor(n/10)*10. There were
 
--      several improvements (18Dec2010):
 
--      * The expansion nesting was reduced from 4 levels to 2.
 
--      * The if-logic was reduced to 6 steps: 1 switch, not 5.
 
--      * The template size was reduced by 60% less coding.
 
--
 
-- NOTE N3: The nesting level of this template is only 2 levels
 
--      deep of the MediaWiki "expansion depth limit" (was 40
 
--      levels as the expansion limit during 2008-2010).
 
 
--
 
--
 
--------------------------------------------------------------
 
--------------------------------------------------------------
Line 68: Line 22:
 
-- 18Dec10 Rewrote as +1 level of "expansion limit" (was +3).
 
-- 18Dec10 Rewrote as +1 level of "expansion limit" (was +3).
 
-- 18Dec10 Added "Performance" description to doc text.
 
-- 18Dec10 Added "Performance" description to doc text.
 +
-- 27Jun13 Rewritten in Lua, at [[Module:In5]].
 
-->
 
-->
  

Revision as of 13:24, 27 June 2013

     

50px Template documentation[view] [edit] [history] [purge]

The indenter Template:in5 indents text by 5 spaces or the count specified by
parameter 1 (range: 1 to 50 spaces).
     Usage:   {{in5}}             <--indents by 5 spaces
     Usage:   {{in5|8}}         <--indents by 8 spaces
     Usage:   {{in5|47}}       <--indents by 47 spaces

Spaces outside the double braces will add an extra space on either side,
such as the 12 spaces inserted by {{in5|10}}.

It does not insert a newline (line break). To use on a series of lines, add <br /> at the end of the line before (each) {{in5}}. You can also use a blank line before the {{in5}}, which will introduce a paragraph break.

Examples

The following are examples showing larger amounts of spacing:
     Example 1: xx{{in5|10}}yy{{in5|10}}zz produces: xx          yy          zz
     Example 2: xx{{in5|10}}yy{{in5|15}}zz produces: xx          yy               zz
     Example 3: aa{{in5|20}}bb{{in5|20}}cc produces: aa                    bb                    cc
     Example 4: "32.0{{in5|7}}" produces: "32.0       "

Example 4 shows the ability to put trailing spaces, such as spaces after a number in a wikitable column (coded as: | 32.0{{in5}} ). Typical numbers (with align=right), in a table column, often appear crowded at the right-hand side, so appending {{in5}} can improve readability, in tables with lines between columns.

Comparison with letter-spacing

To insert spacing between each character of any text, then <span style="letter-spacing:value unit"> can be used. For example, with <span style="letter-spacing:1.2em">, spanning the text "example" (not including the quotation marks), it would look like: "example". (Note that the spacing applies to the last character; the intended result might actually be to span the characters exampl only: "example".) The spacing value may express any number from 0 on; also fractions like .45 are possible, and the unit may be em or any other standard HTML/CSS measurement unit (pt, px, cm, mm, in).

See also