Template:Outdent

For outdenting a reply on a talk page when indention gets too deep.

Indenting on talk pages is done using a colon character to proutdentuce "tabs"; this template proutdentuces a connector bar and (optionally) initial text to indicate an outdent, with the length of the bar specified by the number of colons used in the template. The left margin is sent to the position of the template. " :: " proutdentuces:

The template also has a named parameter to reverse the direction of the bar to indicate deeper indentation- see below. " :: " proutdentuces:

Usage
 
 * param1:
 * If the first parameter is not used, the left margin is reset to the position of the template, and the default value of 10 is used for the length of the bar.
 * If used, its value specifies the length of the connector bar to be used. The value may be specified as a string of tab characters, or as an integer.
 * A value of null causes an error. A value of zero proutdentuces a very long bar.
 * param2:
 * If used, specifies that the string (outdent) is to be placed at the start of the new line's text. (Note: When param2 is used, param1 may not be null.)

The template supports up to 20 colons as a parameter, but supports any given integer. Values above 40 may result in the bar appearing over more than one line.

The default number of colons is 10.

The template also recognizes the named parameter "reverse" - see below.

Examples
To outdent posts, insert the number of colons that were used for indenting in the previous post, or use an integer value for that number.

Start of a new post

displays as


 * This is the previous post, indented 4 levels

Start of a new post

Start of a new post

displays as


 * This is the previous post, indented 6 levels

Start of a new post

Alternatively:
 * This is the previous post, indented 6 levels

Start of a new post. (Note that the bar is longer - it is using the default value of 10.)

displays as


 * This is the previous post, indented 6 levels

Start of a new post. (Note that the bar is longer - it is using the default value of 10.)

You can also have the template automatically add a linked tag, by adding any second parameter (its specific value is discarded):

Start of a new post

displays as


 * This is the previous post, indented 6 levels

Start of a new post

To not outdent all the way to the left margin, the outdent template itself can be indented using one or more colons: ::::::This is the previous post, indented 6 levels
 * Start of a new post

displays as


 * This is the previous post, indented 6 levels
 * Start of a new post

xxx  xxx xxx xxx xxx     xxx xxx     xxx
 * More examples
 * xxx xxx


 * xxx    xxx

Indent
The named parameter "reverse" can be set so: where string can be any character or string of characters. It will also work with the optional unnamed parameters described previously. Its purpose is to allow for indention. For example:


 * Start of a new post indented 2 levels using a bar of length 6-2=4.
 * Indent 7 levels using a revered bar of length 7-2=5.
 * Indent 7 levels using a revered bar of length 7-2=5.

displays as


 * This is the previous post, indented 6 levels
 * Start of a new post indented 2 levels using a bar of length 6-2=4.
 * Indent 7 levels using a reversed bar of length 7-2=5.
 * Indent 7 levels using a reversed bar of length 7-2=5.


 * Original conversation.
 * Afterthought.
 * Continuation of original conversation.
 * Continuation of original conversation.
 * Continuation of original conversation.

displays as


 * Original conversation.
 * Afterthought.
 * Continuation of original conversation.
 * Continuation of original conversation.
 * Continuation of original conversation.

CSS and hide
This template is contained in the CSS class "outdent-template". Users who would prefer not to see the template can add the following line to their custom CSS (Special:MyPage/common.css):


 * span.outdent-template { display: none; }

Errors and unexpected behaviours
xxx    xxx
 * param1 = 0 gives a long bar:
 * param1 > 40 places the bar over several lines:
 * xxx   xxx

xxx     xxx xxx xxx
 * param1 may not be null: