From Wikipedia, the free encyclopedia
This template uses Lua :
This template will allow manipulation or retrieve properties of an array list using a delimiter. It handles five functions: count, get, pos, math and sort.
{{Array|<Function>|<Array items>|<Delimiter>|<Property>|Parameters (optional)}}
5th parameter only valid with pos function when limiting multiple outputs to a single position.
Count
Will count the total number of items in the array using the designated separator. Leading or trailing separators are stripped.
{ { Array | count| This is my array| } } → 4
{ { Array | count| An,array,separated,by,commas| ,} } → 5
{ { Array | count| An,array,with,trailing,commas,| ,} } → 5
Get
Will get the Nth item in the array, numeric value only. Can use negative value to work backwards. Last or -1 will get end item. Invalid value returns error.
{ { Array | get| My,wiki,test,array| ,| 3} } → test
{ { Array | get| A.list.of.dot.separated.items| .| 2} } → list
{ { Array | get| The almost last item is nearly final| | -2} } → nearly
{ { Array | get| The last item is final| | last} } → final
{ { Array | get| Invalid input returns error| | foobar} } → void:invalid
Pos
Will retrieve the position in array of the search item. If duplicates are found, will output all positions delimited by comma. Output can be limited by specifying a 5th parameter.
{{Array|Pos|<Array items>|<Delimiter>|<Search Term>|<Nth occurrence> (optional)}}
{ { Array | pos| A sentence of typical words| | sentence} } → 2
{ { Array | pos| A.wiki.test.string.in.a.test.array| .| unmatched} } → void:nomatch
{ { Array | pos| A.wiki.test.string.in.a.test.array| .| test} } → 3,7
{ { Array | pos| Position,of,the,second,test,in,a,test,array| ,| test| 2} } → 8
{ { Array | pos| 2,4,6,6,7,11,12| ,| 7} } → 5
{ { Array | pos| 2,4,6,6,7,11,12| ,| 6| 2} } → 4
Math
Will do calculations on the array items if all numeric. Options are sum (sum of all item numbers), min and max.
{ { Array | math| 2,4,6,6,7,12| ,| sum} } → 37
{ { Array | math| 2,4,6,6,7,12| ,| max} } → 12
{ { Array | math| 3.3.4.5.5.6| .| min} } → 3
{ { Array | math| 3.3.f.5.5.q| .| min} } → void:isalpha
Sort
Sort items in the array, default ascending/chronological, numeric first. Use parameter "a" to sort alpha first and/or "r" to reverse order
{ { Array | sort| 2,9,6,8,7,12| ,} } → 2,6,7,8,9,12
{ { Array | sort| 2,9,6,8,7,12| ,| r} } → 12,9,8,7,6,2
{ { Array | sort| 2,9,6,d,8,7,a,12| ,} } → 2,6,7,8,9,12,a,d
{ { Array | sort| 2,9,6,d,8,7,a,12| ,| a} } → a,d,2,6,7,8,9,12
{ { Array | sort| 3,9,6,d,8,7,a,12| ,| ar} } → 12,9,8,7,6,3,d,a (alpha starts first from the right if reversing the sort order)
{ { Array | sort| is everything up mixed| } } → everything is mixed up
String-handling templates
(help page)
Substring (select chunk of string by its position)
{ { str sub new } } Select a substring based on starting and ending index counted in either direction. { { str left } } Keep the first N characters of a string, or duplicate it to N characters. { { str crop } } Return all but the last N characters of a string. { { str index } } Return the N-th character of a string.
{ { str right } } Return substring starting at N-th character to end of string. { { str rightc } } Return the last N characters of a string; or a given value if empty. { { str sub old } } Return substring of given length starting at N-th character.
Trimming (select/remove chunk of string by character type)
Select/remove specific item from string
{ { delink } } , { { trim brackets } } Removes wikilink brackets (wikicode); all or outer only . { { Plain text } } Removes wikicode (formatting and brackets) { { PAGENAMEBASE } } Trim off any parenthesis text at the end of a string (disambiguation). { { title disambig text } } Returns text in parentheses at the end of a string (disambiguation).
{ { title year } } Returns the 3-or-4-digit year from a pagename, if any. { { title decade } } Returns the 4-digit decade from a pagename (e.g. "1740" from "Foo 1740s bar"), if any. { { title number } } Returns any number from a pagename. { { WikiProjectbasename } } Removes "WikiProject" from a pagename.
Insertion, replacement, and length
{ { loop } } Repeat character string a specified number of times. { { replace } } Returns the string, after replacing all occurrences of a specified string with another string. { { str rep } } Returns the string, after replacing the first occurrence of a specified string with another string. { { digits } } Returns the string, after removing all characters that are not digits 0–9 { { Nowiki } } Displays wikitext as plain text.
{ { str len } } Returns a string's length. { { str ≥ len } } Check if a string is "longer or equally long" or "shorter" than a given length. { { str ≤ len } } Check if a string is "shorter or equally long" or "longer" than a given length. { { str ≠ len } } Check if a string is "not equal" or "equal" to a given length.
Analysis and searching
{ { Array } } Array item manipulation and retrieval. { { a or an } } Takes a noun and produces the appropriate indefinite article, based on whether the first letter is a vowel. { { in string } } Returns optional string when given string is not found { { Isnumeric } } Returns number when true, blank when not numeric. { { str letter } } Returns the number of letters that begin a string. { { str number } } Returns the number of numbers that begin a string.
Modules and built-in functions