Template:Random Article: Difference between revisions

From Random Island Wiki
Jump to navigation Jump to search
(Created page with "<includeonly>{{#ask: + Modification date::+ <!-- prevent deleted pages from showing up --> |format=embedded |limit=1 |searchlabel= |offset={{#expr: ( ( {{#time:...")
 
No edit summary
Line 1: Line 1:
<includeonly>{{#ask:
<noinclude>{{Tip
[[:+]]
|Extension=Semantic MediaWiki
[[Modification date::+]] <!-- prevent deleted pages from showing up -->
}}
|format=embedded
To get this working, copy the [{{fullurl:{{PAGENAME}}|action=edit}} entire source of this page] to your Template namespace and then transclude it where desired.
|limit=1
 
|searchlabel=
This template generates a pseudo-random article for today. The article selected is based on today's date so that the article will remain constant for one day but change automatically the next day. This is done by getting the number of seconds from epoch until the beginning of today, doing an expression on it and then modding it by the number of articles in the wiki. So the final result is a pseudo-random number between 0 and the (number of keywords in the wiki - 1). Then it uses that result as an offset to retrieve that number article in the wiki based on the order returned by the ask query. In truth, the article selected '''will''' change on a day that the number of articles in the wiki changes.
|offset={{#expr: ( ( {{#time:U|today}} + {{{2|{{#time:z|today}}} }} + 67 ) * 67 ) mod {{#ask:
 
  [[:+]]
The sample query in this page will pick from all articles in the main namespace. You can customize the queries to select whichever pages you'd like. (You must modify both ask queries to select the same set of pages.)
  [[Modification date::+]] <!-- prevent deleted pages from showing up -->
 
  |format=count
Loosely based on: [[wikipedia:Template:Random_number]]. Requires the [https://www.mediawiki.org/wiki/Extension:ParserFunctions Parser functions] extension.
  }}
 
}}
You can see this in action here: [[User:Tosfos#Random_article_of_the_day_demonstration]]
}}</includeonly>
</noinclude><includeonly>{{#ask: [[:+]]
[[modification date::+]]<!--prevent deleted pages from showing up-->
|format=embedded
|limit=1
|searchlabel=
|offset={{#expr: (({{#time:U|today}}+{{{2|{{#time:z|today}}}}} + 67)*67) mod {{#ask: [[:+]]
[[modification date::+]]<!--prevent deleted pages from showing up-->
|format=count
}}}}}}</includeonly>

Revision as of 12:40, 24 September 2021

Template:Tip To get this working, copy the entire source of this page to your Template namespace and then transclude it where desired.

This template generates a pseudo-random article for today. The article selected is based on today's date so that the article will remain constant for one day but change automatically the next day. This is done by getting the number of seconds from epoch until the beginning of today, doing an expression on it and then modding it by the number of articles in the wiki. So the final result is a pseudo-random number between 0 and the (number of keywords in the wiki - 1). Then it uses that result as an offset to retrieve that number article in the wiki based on the order returned by the ask query. In truth, the article selected will change on a day that the number of articles in the wiki changes.

The sample query in this page will pick from all articles in the main namespace. You can customize the queries to select whichever pages you'd like. (You must modify both ask queries to select the same set of pages.)

Loosely based on: wikipedia:Template:Random_number. Requires the Parser functions extension.

You can see this in action here: User:Tosfos#Random_article_of_the_day_demonstration