Content deleted Content added
add refresh links to the later examples |
|||
(21 intermediate revisions by 8 users not shown) | |||
Line 1:
{{high-use}}
{{module rating|
{{Lua|Module:List|Module:Yesno}}
This module contains a number of functions that use random numbers. It can output random numbers, select a random item from a list, and reorder lists randomly. The randomly reordered lists can be output inline, or as various types of ordered and unordered lists. The available functions are outlined in more detail below.
== Number ==
Line 7 ⟶ 8:
The <code>number</code> function outputs a random number.
{{#invoke:random|number|''m''|''n''|same=''yes''}}
The arguments <code>m</code> and <code>n</code> may be omitted, but if specified must be convertible to integers.
* With no arguments, returns a real number in the range <math>[0,1)</math>.
* With one argument, returns an integer in the range <math>[1,m]</math>, or, if <code>''m''</code> is negative, <math>(-m,0]</math>. If <code>''m''</code>
* With two arguments, returns an integer in the range <math>[m,n]</math>. <code>''m''</code> and <code>''n''</code> can be either positive or negative
* If the {{para|same}} parameter is set to "yes", "y", "true", or "1", the same random number is returned for each module call on a given page.
'''Examples''' <small>({{purge|refresh|anchor=Number}})</small>
* <
* <
* <
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|number|100|same=yes}}</syntaxhighlight> → {{#invoke:random|number|100|same=yes}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|number|100|same=yes}}</syntaxhighlight> → {{#invoke:random|number|100|same=yes}}
<small>The documentation for this function is partly taken from the [[mw:Extension:Scribunto/Lua reference manual#math.random|Scribunto Lua reference manual]], which is in turn based on the [http://www.lua.org/manual/5.1/index.html Lua 5.1 Reference Manual], available under the [[MIT License]].</small>
The <code>
{{#invoke:random|
* If no timestamp arguments are specified, the module outputs a random date in the current year.
* If <code>''timestamp1''</code> and <code>''timestamp2''</code> are specified, the module outputs a random date between the two timestamps. <code>''timestamp1''</code> must be earlier than <code>''timestamp2''</code>.
* If only <code>''timestamp1''</code>is specified, the module outputs a random date between the [[Unix epoch]] (1 Jan 1970) and the timestamp. <code>''timestamp1''</code> must not be earlier than 1 Jan 1970.
* Formatting can be specified with the {{para|format}} parameter. The default formatting is "hh:mm, DD Month YYYY (UTC)" (the same as the default Wikipedia timestamp).
* The timestamps and the {{para|format}} parameter accept values compatible with the [[mw:Help:Extension:ParserFunctions##time|#time parser function]]. Please see the #time documentation for the full range of possible input values and formatting options.
* If the {{para|same}} parameter is set to "yes", "y", "true", or "1", the same date is returned for each module call on a given page.
'''Examples''' <small>({{purge|refresh|anchor=Date}})</small>▼
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|date}}</syntaxhighlight> → {{#invoke:random|date}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|date|format=F j}}</syntaxhighlight> → {{#invoke:random|date|format=F j}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|date|1 Jan 1980|31 Dec 1999}}</syntaxhighlight> → {{#invoke:random|date|1 Jan 1980|31 Dec 1999}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|date|1st January 1500|1st January 3000|format=g:i a, l d M Y}}</syntaxhighlight> → {{#invoke:random|date|1st January 1500|1st January 3000|format=g:i a, l d M Y}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|date|1970/06/01}}</syntaxhighlight> → {{#invoke:random|date|1970/06/01}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|date|same=yes}}</syntaxhighlight> → {{#invoke:random|date|same=yes}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|date|same=yes}}</syntaxhighlight> → {{#invoke:random|date|same=yes}}
== Item ==
Line 26 ⟶ 53:
The <code>item</code> function outputs a random item from a list.
{{#invoke:random|item|''list item 1''|''list item 2''|''list item 3''|...|same=''yes''}}
If the {{para|same}} parameter is set to "yes", "y", "true", or "1", the same item is returned for each module call on a given page.
'''Example''' <small>({{purge|refresh}})</small>▼
▲'''Example''' <small>({{purge|refresh|anchor=Item}})</small>
* <code><nowiki>{{#invoke:random|item|egg|beans|sausage|bacon|spam}}</nowiki></code> → {{#invoke:random|item|egg|beans|sausage|bacon|spam}}▼
▲* <
▲== List ==
* <
* <
Setting "same" will make the template select the same number item from each list, even if the things in them are different.
▲The <code>list</code> function outputs a list in a random order, with an optional separator.
* <syntaxhighlight lang="wikitext">My
{{#invoke:random|item|egg |bean |sausage |bacon |spam |same=yes}}
is
{{#invoke:random|item|quail |pinto |kielbasa |canadian |spammy|same=yes}}
and my
{{#invoke:random|item|blegg |blean |blausage |blacon |blam |same=yes}}
is
{{#invoke:random|item|blail |blinto|blielbasa|blanadian|blammy|same=yes}}</syntaxhighlight>
→ My {{#invoke:random|item|egg |bean |sausage |bacon |spam |same=yes}}
is {{#invoke:random|item|quail |pinto |kielbasa |canadian |spammy|same=yes}} and my
{{#invoke:random|item|blegg |blean |blausage |blacon |blam |same=yes}} is {{#invoke:random|item|blail |blinto|blielbasa|blanadian|blammy|same=yes}}.
== List ==
The <code>list</code> function outputs a list in a random order.
▲ {{#invoke:random|item|''list item 1''|''list item 2''|''list item 3''|...|sep=''separator''}}
{{#invoke:random|list|''list item 1''|''list item 2''|''list item 3''|...|sep=''separator''|limit=''number of items to display''|same=''yes''}}
'''Named parameters'''
Possible separator values:▼
* {{para|sep}} or {{para|separator}} - an optional separator for the list items. Some values are special; see the table below.
* {{para|limit}} - the maximum number of list items to display. The lowest possible is 0 and the highest possible is the length of the list.
* {{para|same}} - if this is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.
{| class="wikitable"
|-
! Code !! Output
Line 56 ⟶ 104:
|-
| <code>space</code> || ''a space''
|-
| <code>newline</code> || ''a newline character''
|-
| ''any other value'' || ''other values are used without modification''
Line 62 ⟶ 112:
You cannot input spaces directly to the {{para|sep}} parameter due to limitations in MediaWiki's template syntax. However, it is possible to work around this by using [[HTML entities]]. You can use <code>&#32;</code> to represent a normal space, and <code>&nbsp;</code> to represent a [[non-breaking space]].
'''Examples''' <small>({{purge|refresh|anchor=List}})</small>
* <
* <
* <
* <
* <
* <
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}</syntaxhighlight> → {{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}</syntaxhighlight> → {{#invoke:random|list|egg|beans|sausage|bacon|spam|same=yes}}
== Text list ==
Line 74 ⟶ 127:
The <code>text_list</code> function outputs a list in a random order, text-style. In other words, it is like the <code>list</code> function, but with a different separator before the last item.
{{#invoke:random|
The separator can be specified with either the {{para|sep}} or {{para|separator}} parameters; its default value is "{{int:comma-separator}}". The conjunction can be specified with either the {{para|conj}} or {{para|conjunction}} parameters; its default value is " and ". The separator and the conjunction can be specified with the same values as the separator in the [[#List|list function]].
The maximum number of list items to display can be set with the {{para|limit}} parameter. The lowest possible is 0 and the highest possible is the length of the list.
▲'''Examples''' <small>({{purge|refresh}})</small>
If the {{para|same}} parameter is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.
▲* <code><nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam}}</nowiki></code> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam}}
▲* <code><nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=;&#32;}}</nowiki></code> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; }}
'''Examples''' <small>({{purge|refresh|anchor=Text list}})</small>
▲* <code><nowiki>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=;&#32;|conj=&#32;or&#32;}}</nowiki></code> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; |conj= or }}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam}}</syntaxhighlight> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=;&#32;}}</syntaxhighlight> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; }}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=;&#32;|conj=&#32;or&#32;}}</syntaxhighlight> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|sep=; |conj= or }}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|limit=3}}</syntaxhighlight> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|limit=3}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}</syntaxhighlight> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}
* <syntaxhighlight lang="wikitext" inline>{{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}</syntaxhighlight> → {{#invoke:random|text_list|egg|beans|sausage|bacon|spam|same=yes}}
== HTML lists ==
Line 93 ⟶ 153:
! Produces
! Example code
! Example output <small>({{purge|refresh|anchor=HTML lists}})</small>
|-
| <code>bulleted_list</code>
| Bulleted lists
| <
| {{#invoke:random|bulleted_list|egg|sausage|spam}}
|-
| <code>unbulleted_list</code>
| Unbulleted lists
| <
| {{#invoke:random|unbulleted_list|egg|sausage|spam}}
|-
| <code>horizontal_list</code>
| Horizontal bulleted lists
| <
| {{#invoke:random|horizontal_list|egg|sausage|spam}}
|-
| <code>ordered_list</code>
| Ordered lists (numbered lists and alphabetical lists)
| <
| {{#invoke:random|ordered_list|egg|sausage|spam}}
|-
| <code>horizontal_ordered_list</code>
| Horizontal ordered lists
| <
| {{#invoke:random|horizontal_ordered_list|egg|sausage|spam}}
|}
Line 123 ⟶ 183:
; Basic usage
{{#invoke:random|''function''|''list item 1''|''list item 2''|''list item 3''|...|limit=''number of items to display''|same=''yes''}}
; All parameters
{{
<nowiki>{{</nowiki>#invoke:random<nowiki>|</nowiki>''function''
<nowiki>|</nowiki>''first item''<nowiki>|</nowiki>''second item''<nowiki>|</nowiki>''third item''<nowiki>|</nowiki>...
<nowiki>|start = </nowiki>''start number for ordered lists''
<nowiki>|
<nowiki>|list_style_type = </nowiki>''type of marker for ordered lists (uses CSS)''
<nowiki>|class = </nowiki>''class''
Line 142 ⟶ 202:
}}
The maximum number of list items to display can be set with the {{para|limit}} parameter. The lowest possible is 0 and the highest possible is the length of the list.
Please see [[Module:List]] for a full explanation of the parameters.▼
If the {{para|same}} parameter is set to "yes", "y", "true", or "1", the list order is the same for each module call on a given page.
▲Please see [[Module:List]] for a full explanation of the other parameters.
|