Wikipedia
bugwiki
https://bug.wikipedia.org/wiki/Watangpola
MediaWiki 1.46.0-wmf.22
first-letter
Médiya
Mallebbi
Panennaq
Pagguna
Panennaq pagguna
Wikipedia
Panennaq Wikipedia
Attarong
Panennaq attarong
MediaWiki
Panennaq MediaWiki
Accuwang
Panennaq accuwang
Bantungeng
Panennaq bantungeng
Katagori
Panennaq katagori
TimedText
TimedText talk
Modul
Pembicaraan Modul
Acara
Pembicaraan Acara
Accuwang:Infobox musical artist
10
1845
210887
2858
2026-04-06T15:59:52Z
Ultron90
10980
210887
wikitext
text/x-wiki
{{#invoke:infobox|infoboxTemplate
| child = {{lc:{{{embed|}}}}}
| bodyclass = vcard plainlist
| headerstyle = color: #202122;background-color: {{Infobox musical artist/color}}
| autoheaders = y
| title = {{#ifeq:{{lc:{{{embed|}}}}}|yes|'''Musical career'''}}
| decat = yes <!-- remove from template:infobox tracking categories -->
| abovestyle = color: #202122;background-color: {{Infobox musical artist/color}}; font-size: 125%;
| above = {{#ifeq:{{lc:{{{embed|}}}}}|yes||{{#if:{{{name|}}}{{PAGENAMEBASE}}|{{#if:{{{honorific_prefix|}}}|<div class="honorific-prefix" style="font-size: 78%; font-weight: normal;">{{{honorific_prefix|}}}</div>}}<div class="{{Infobox musical artist/hCard class|{{{background|}}}}}">{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}</div>{{#if:{{{native_name|}}}|<div style="font-weight: normal;">{{#if:{{{native_name_lang|}}}|<div class="nickname" lang="{{{native_name_lang|}}}">}}{{{native_name|}}}{{#if:{{{native_name_lang|}}}|</div>}}</div>}}{{#if:{{{honorific_suffix|}}}|<div class="honorific-suffix" style="font-size: 78%; font-weight: normal;">{{{honorific_suffix|}}}</div>}} |{{BASEPAGENAME}}}}}}
| image = {{#invoke:InfoboxImage|InfoboxImage
| image = {{{image|}}}
| size = {{#ifeq:{{lc:{{yesno|{{{landscape|}}}}}}}|yes|{{min|300|{{#if:{{#ifexpr:{{{image_size|}}}}}|300|{{{image_size|}}}}}}}x200px|{{{image_size|}}}}}
| upright = {{if empty|{{{image_upright|}}}|1}}
| title = {{if empty|{{{alt|}}}|{{{caption|}}}}}
| alt = {{{alt|}}}
| suppressplaceholder = yes
| class = {{{image_class|}}}
}}
| caption = {{{caption|}}}
| header1 = {{#if:{{{image|}}}|Background information}}
| class4 = nickname
| label4 = {{Nowrap|Also known as}}
| data4 = {{{alias|}}}
| label5 = Born
| data5 = {{br separated entries
|1={{#if:{{{birth_name|}}}|<div style="display:inline" class="nickname">{{{birth_name|}}}</div>}}
|2={{#invoke:person date|birth}}
|3={{#if:{{{birth_place|}}}|<div style="display:inline" class="birthplace">{{{birth_place|}}}</div>}}
}}
| label6 = Origin
| data6 = {{{origin|}}}
| label7 = Died
| data7 = {{br separated entries
| 1 = {{#invoke:person date|death}}
| 2 = {{#if:{{{death_place|}}}|<div class="deathplace">{{{death_place|}}}</div>}}
}}
| label8 = Cause of death
| data8 = {{{death_cause|}}}
| label9 = Education
| data9 = {{{education|}}}
| label18 = Genres
| data18 = {{{genre|}}}
| class19 = role
| label19 = {{#if:{{{occupations|}}}|Occupations|Occupation{{Pluralize from text|{{{occupation|}}}|plural=s}}}}
| data19 = {{if empty|{{{occupations|}}}|{{{occupation|}}}}}
| class20 = note
| label20 = {{#if:{{{instruments|}}}|Instruments|Instrument{{Pluralize from text|{{{instrument|}}}|plural=s}}}}
| data20 = {{if empty|{{{instruments|}}}|{{{instrument|}}}}}
| class21 = noprint
| label21 = Works
| data21 = {{if empty|{{{discography|}}}|{{{works|}}}}}
| label22 = {{Nowrap|Years active}}
| data22 = {{{years_active|}}}
| label23 = Label{{Pluralize from text|{{{label|}}}|plural=s}}
| data23 = {{{label|}}}
| label24 = Publisher{{Pluralize from text|{{{publishers|}}}|plural=s}}
| data24 = {{{publishers|}}}
| label25 = Member of
| data25 = {{{current_member_of|}}}
| label26 = Formerly of
| data26 = {{{past_member_of|}}}
| label27 = Spinoffs
| data27 = {{{spinoffs|}}}
| label28 = Spinoff of
| data28 = {{{spinoff_of|}}}
| label29 = <div class="nowrap">Spouse{{Pluralize from text|{{{spouse|}}}|likely=(s)|plural=s}}</div>
| data29 = {{{spouse|}}}
| label40 = <div class="nowrap">Partner{{Pluralize from text|{{{partner|}}}|likely=(s)|plural=s}}</div>
| data40 = {{{partner|}}}
| label41 = Award{{Pluralize from text|{{{awards|}}}|plural=s}}
| data41 = {{{awards|}}}
| header42 = {{#ifeq:{{lc:{{{embed|}}}}}|yes||<nowiki />}}
| label43 = Members
| data43 = {{{current_members|}}}
| header44 = {{#ifeq:{{lc:{{{embed|}}}}}|yes||<nowiki />}}
| label45 = {{Nowrap|Past members}}
| data45 = {{{past_members|}}}
| header50 = {{#ifeq:{{lc:{{{embed|}}}}}|yes||<nowiki />}}
| label51 = Website
| data51 = {{{website|}}}
| label60 = BLANK
| data61 = {{{module|}}}
| data62 = {{{module2|}}}
| data63 = {{{module3|}}}
}}<includeonly>{{#if:{{{current_members|}}}{{{past_members|}}}||{{#ifeq:{{#invoke:Is infobox in lead|main|[Ii]nfobox [Mm]usical [Aa]rtists?}}<!--
Is infobox in lead:
-->{{#invoke:Is infobox in lead|main|[Ii]nfobox [Ss]inger}}{{#invoke:Is infobox in lead|main|[Ii]nfobox [Mm]usician}}{{#invoke:Is infobox in lead|main|[Ii]nfobox [Ii]nstrumentalist}}|true|{{short description|Musical artist|noreplace}}}}}}<!--
hCards:
-->{{Main other|1=[[Category:Articles with hCards]]}}<!--
Unknown parameters:
-->{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox musical artist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Infobox musical artist]] with unknown parameter "_VALUE_"|ignoreblank=y| alias | alt | associated_acts | awards | background | birth_date | birth_name | birth_place | caption | current_member_of | current_members | death_cause | death_date | death_place | discography | education | embed | genre | honorific_prefix | honorific_suffix | image | image_class | image_size | image_upright | instrument | instruments | label | landscape | module | module2 | module3 | name | native_name | native_name_lang | occupation | occupations | origin | partner | past_member_of | past_members | publishers | spinoff_of | spinoffs | spouse | website | works | years_active }}<!--
Associated_acts tracking:
-->{{#invoke:Check for deprecated parameters|check
| _category = {{main other|[[Category:Pages using infobox musical artist with associated acts]]}}
| ignoreblank = y
| _remove = associated_acts
}}</includeonly><!--
Documentation:
-->{{#invoke:Check for conflicting parameters|check
| template = [[Template:Infobox musical artist]]
| cat = {{main other|Category:Pages using infobox musical artist with conflicting parameters}}
| occupations; occupation
| instruments; instrument
| discography; works
}}<noinclude>{{Documentation}}</noinclude>
78yxjk75b4snfyubbe3mh8mlx07mo4t
Accuwang:Min
10
1846
210904
2851
2026-04-06T17:05:52Z
Ultron90
10980
210904
wikitext
text/x-wiki
<includeonly>{{safesubst:#invoke:Math|min}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
mf7mi1xwsg2t5awkql3k34xga8pa7vq
The Strokes
0
1850
210888
203633
2026-04-06T16:00:44Z
Ultron90
10980
210888
wikitext
text/x-wiki
{{Infobox musical artist
| Name = The Strokes
| Img = TheStrokes.jpg
| Img_capt = The Strokes performing in March 2006
| Landscape = yes
| Background = group_or_band
| Origin = [[New York City]], [[Amerika Serikat|AS]]
| Genre = [[Garage rock revival]]<br />[[Post-punk revival]]<br />
| Years_active = [[1998]]–present
| Label = [[Sony BMG Music Entertainment|SonyBMG]]/[[RCA Records|RCA]]/[[Rough Trade Records|Rough Trade]]
| URL = [http://www.thestrokes.com/ Leppa Opisial]
| Current_members = [[Julian Casablancas]] ([[Vokal]])<br /> [[Nick Valensi]] ([[Gitara]])<br /> [[Albert Hammond, Jr.]] ([[Gitara]])<br /> [[Nikolai Fraiture]] ([[Gitara Bése]])<br />[[Fabrizio Moretti]] ([[Dram]])
| Past_members =
}}
[[File:The Strokes by Roger Woolman.jpg|thumb|right|The Strokes 2002]]
'''The Strokes''' iana [[band]] [[rock]] polé [[Amerika Serikat]]. Édé band mula ri taun [[1998]] napa mancaji popular ri taun 2000-na naseng pamula ''[[garage rock revival]]''.
== Anggota ==
* [[Julian Casablancas]] - vokal, pabbu lagu
* [[Nick Valensi]] - gitara (ritma sibawa lid)
* [[Albert Hammond, Jr.]] - gitara' (ritma sibawa lid)
* [[Nikolai Fraiture]] - gitara' bése
* [[Fabrizio Moretti]] - dram
== Pranala ri saliweng ==
* [https://www.thestrokes.com The Strokes Official Website]
* [http://www.myspace.com/thestrokesofficial The Strokes Official MySpace]
* [https://www.shesfixingherhair.co.uk/blog/ Shes Fixing Her Hair Fansite]
* [https://www.theguardian.com/theobserver/2001/dec/16/life1.lifemagazine5 Guardian Unlimited bio from December 16, 2001]
* [https://web.archive.org/web/20070329021839/http://www.rockpoplyrics.com/strokes.php Strokes Lyrics]
* [https://web.archive.org/web/20210330151223/http://www.thestrokesfan.com/ The StrokesFan fan site]
[[Kategori:Band rock]]
qmmyvj055hn6vynqdzknmflfa73j92y
210895
210888
2026-04-06T16:34:21Z
Ultron90
10980
210895
wikitext
text/x-wiki
{{Infobox musical artist
| name = The Strokes
| image = The Strokes live collage 2019–2020.jpg
| image_size = 275
| caption = The Strokes performing live; clockwise from top-left: [[Julian Casablancas]], [[Nick Valensi]], [[Nikolai Fraiture]], [[Fabrizio Moretti]], and [[Albert Hammond Jr.]]
| origin = New York City, U.S.
| genre = <!-- these genres are sourced in the musical style section of the text -->{{flatlist|
* [[Indie rock]]
* [[garage rock revival]]
* [[post-punk revival]]
* [[New wave music|new wave]]
* {{nowrap|[[synth-pop]]}}
}}
| spinoffs = {{flatlist|
* [[The Voidz]]
* Summer Moon
* {{nowrap|[[Little Joy]]}}
* [[Machinegum]]
* [[CRX (band)|CRX]]
}}
| discography = [[The Strokes discography|Discography]]
| years_active = 1998–present
| label = {{flatlist|
* [[Cult Records|Cult]]
* [[RCA Records|RCA]]
* [[Rough Trade Records|Rough Trade]]
}}
| website = {{URL|thestrokes.com}}
| awards = [[List of awards and nominations received by The Strokes|Full list]]
| current_members = * [[Julian Casablancas]]
* [[Nikolai Fraiture]]
* [[Albert Hammond Jr.]]
* [[Fabrizio Moretti]]
* [[Nick Valensi]]
}}
[[File:The Strokes by Roger Woolman.jpg|thumb|right|The Strokes 2002]]
'''The Strokes''' iana [[band]] [[rock]] polé [[Amerika Serikat]]. Édé band mula ri taun [[1998]] napa mancaji popular ri taun 2000-na naseng pamula ''[[garage rock revival]]''.
== Anggota ==
* [[Julian Casablancas]] - vokal, pabbu lagu
* [[Nick Valensi]] - gitara (ritma sibawa lid)
* [[Albert Hammond, Jr.]] - gitara' (ritma sibawa lid)
* [[Nikolai Fraiture]] - gitara' bése
* [[Fabrizio Moretti]] - dram
== Pranala ri saliweng ==
* [https://www.thestrokes.com The Strokes Official Website]
* [http://www.myspace.com/thestrokesofficial The Strokes Official MySpace]
* [https://www.shesfixingherhair.co.uk/blog/ Shes Fixing Her Hair Fansite]
* [https://www.theguardian.com/theobserver/2001/dec/16/life1.lifemagazine5 Guardian Unlimited bio from December 16, 2001]
* [https://web.archive.org/web/20070329021839/http://www.rockpoplyrics.com/strokes.php Strokes Lyrics]
* [https://web.archive.org/web/20210330151223/http://www.thestrokesfan.com/ The StrokesFan fan site]
[[Kategori:Band rock]]
tk2qehu98jvojx9bvh7ezod53bjrnr6
210907
210895
2026-04-07T05:15:37Z
Ultron90
10980
210907
wikitext
text/x-wiki
{{Infobox musical artist
| name = The Strokes
| image = The Strokes live collage 2019–2020.jpg
| image_size = 275
| caption = The Strokes performing live; clockwise from top-left: [[Julian Casablancas]], [[Nick Valensi]], [[Nikolai Fraiture]], [[Fabrizio Moretti]], and [[Albert Hammond Jr.]]
| origin = New York City, U.S.
| genre = <!-- these genres are sourced in the musical style section of the text -->{{flatlist|
* [[Indie rock]]
* [[garage rock revival]]
* [[post-punk revival]]
* [[New wave music|new wave]]
* {{nowrap|[[synth-pop]]}}
}}
| spinoffs = {{flatlist|
* [[The Voidz]]
* Summer Moon
* {{nowrap|[[Little Joy]]}}
* [[Machinegum]]
* [[CRX (band)|CRX]]
}}
| discography = [[The Strokes discography|Discography]]
| years_active = 1998–present
| label = {{flatlist|
* [[Cult Records|Cult]]
* [[RCA Records|RCA]]
* [[Rough Trade Records|Rough Trade]]
}}
| website = {{URL|thestrokes.com}}
| awards = [[List of awards and nominations received by The Strokes|Full list]]
| current_members = * [[Julian Casablancas]]
* [[Nikolai Fraiture]]
* [[Albert Hammond Jr.]]
* [[Fabrizio Moretti]]
* [[Nick Valensi]]
}}
[[File:The Strokes by Roger Woolman.jpg|thumb|right|The Strokes 2002]]
'''The Strokes''' iana [[band]] [[rock]] polé [[Amerika Serikat]]. Édé band mula ri taun [[1998]] napa mancaji popular ri taun 2000-na naseng pamula ''[[garage rock revival]]''.
== Anggota ==
* [[Julian Casablancas]] - vokal, pabbu lagu
* [[Nick Valensi]] - gitara (ritma sibawa lid)
* [[Albert Hammond, Jr.]] - gitara' (ritma sibawa lid)
* [[Nikolai Fraiture]] - gitara' bése
* [[Fabrizio Moretti]] - dram
== Pranala ri saliweng ==
* [https://www.thestrokes.com The Strokes Official Website]
* [http://www.myspace.com/thestrokesofficial The Strokes Official MySpace]
* [https://www.shesfixingherhair.co.uk/blog/ Shes Fixing Her Hair Fansite]
* [https://www.theguardian.com/theobserver/2001/dec/16/life1.lifemagazine5 Guardian Unlimited bio from December 16, 2001]
* [https://web.archive.org/web/20070329021839/http://www.rockpoplyrics.com/strokes.php Strokes Lyrics]
* [https://web.archive.org/web/20210330151223/http://www.thestrokesfan.com/ The StrokesFan fan site]
7o7vml5w5pa7tdk450u49knrd14i5d1
Accuwang:Nowrap
10
8144
210900
21715
2026-04-06T16:43:36Z
Ultron90
10980
210900
wikitext
text/x-wiki
<span class="nowrap">{{{1}}}</span><noinclude>
{{documentation}}
<!-- Categories go on the /doc page; interwikis go to Wikidata. -->
</noinclude>
avb5tcymgupik1ikutqclidkj9tnitx
Accuwang:Main other
10
14727
210899
203770
2026-04-06T16:41:24Z
Ultron90
10980
210899
wikitext
text/x-wiki
{{safesubst:<noinclude/>#switch:
<noinclude><!-- If no or empty "demospace" parameter then detect namespace --></noinclude>
{{safesubst:<noinclude/>#if:{{{demospace|}}}
| {{safesubst:<noinclude/>lc: {{{demospace}}} }} <noinclude><!-- Use lower case "demospace" --></noinclude>
| {{safesubst:<noinclude/>#ifeq:{{safesubst:<noinclude/>NAMESPACE}}|{{safesubst:<noinclude/>ns:0}}
| main
| other
}}
}}
| main = {{{1|}}}
| other
| #default = {{{2|}}}
}}<noinclude>
{{documentation}}
<!-- Add categories to the /doc subpage; interwikis go to Wikidata, thank you! -->
</noinclude>
aljcm6nr1pwk5dw5g13lyhxhplulpg5
Accuwang:Plainlist
10
16278
210902
204680
2026-04-06T16:54:14Z
Ultron90
10980
210902
wikitext
text/x-wiki
<templatestyles src="Plainlist/styles.css"/><div class="plainlist {{{class|}}}" {{safesubst<noinclude />:#if:{{{style|}}}{{{indent|}}}|style="{{safesubst<noinclude />:#if:{{{indent|}}}|margin-left: {{safesubst<noinclude />:#expr:{{{indent}}}*1.6}}em;}} {{{style|}}}"}}>{{safesubst<noinclude />:#if:{{{1|}}}|
{{{1}}}
</div>}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using plainlist with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Plainlist]] with unknown parameter "_VALUE_"|ignoreblank=y| class | style | indent | 1 }}<noinclude></div>
{{documentation}}
</noinclude>
3dxfjhodv9m8vibb93y5xdv5zsvp5nu
Bompas, Pyrénées-Orientales
0
20167
210908
203334
2026-04-07T09:25:26Z
Culex
4651
corr. photo
210908
wikitext
text/x-wiki
[[File:Bompas - Avenue du Haut-Vernet.jpg|jmpl|Bompas]]
'''Bompas''' iyanaritu séuwa [[komun ri Perancis|komun]] ri [[déparetema ri Perancis|déparetema]] [[Pyrénées-Orientales]] ri [[Perancis]].
[[File:Map commune FR insee code 66021.png|thumb|center]]
== Ita to ==
* [[Komun ri déparetema Pyrénées-Orientales]]
{{Komun_Pyrénées-Orientales}}
{{DEFAULTSORT:Bompas}}
[[Kategori:Komun ri Pyrénées-Orientales]]
lk10xw35mmrylrzk46vohmx89mfue1y
Accuwang:Plainlist/styles.css
10
23732
210898
204681
2026-04-06T16:40:00Z
Ultron90
10980
210898
sanitized-css
text/css
/* {{pp-template|small=yes}} */
.plainlist ol,
.plainlist ul {
line-height: inherit;
list-style: none;
margin: 0;
padding: 0; /* Reset Minerva default */
}
.plainlist ol li,
.plainlist ul li {
margin-bottom: 0;
}
9iguthb0t8w7c89r3am2dbgv55d4w1c
Accuwang:If empty
10
24079
210889
2026-04-06T16:01:30Z
Ultron90
10980
Lempa riyébbu maq '{{<includeonly>safesubst:</includeonly>#invoke:If empty|main}}<noinclude>{{Documentation}}</noinclude>'
210889
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#invoke:If empty|main}}<noinclude>{{Documentation}}</noinclude>
dl9p9t1ge8vz1f67zrvu4lp7md161es
Modul:If empty
828
24080
210890
2026-04-06T16:02:27Z
Ultron90
10980
Lempa riyébbu maq 'local p = {} function p.main(frame) local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:If empty', removeBlanks = false}) for k,v in ipairs(args) do if v ~= '' then return v end end end return p'
210890
Scribunto
text/plain
local p = {}
function p.main(frame)
local args = require('Module:Arguments').getArgs(frame, {wrappers = 'Template:If empty', removeBlanks = false})
for k,v in ipairs(args) do
if v ~= '' then
return v
end
end
end
return p
8cxs60bq7ivex6wukqrel0fi3yogyu4
Modul:Check for deprecated parameters
828
24081
210891
2026-04-06T16:05:42Z
Ultron90
10980
Lempa riyébbu maq '-- This module may be used to compare the arguments passed to the parent -- with a list of arguments, returning a specified result if an argument is -- on the list local p = {} local function isnotempty(s) return s and mw.text.trim(s) ~= '' end local function scanValues(values,results,args,replaceTable) for k, v in pairs(values) do local c = args.category:gsub('_VALUE_', v) table.insert(results, c) if v == '' then -- Fix odd bug for | = which gets stripp...'
210891
Scribunto
text/plain
-- This module may be used to compare the arguments passed to the parent
-- with a list of arguments, returning a specified result if an argument is
-- on the list
local p = {}
local function isnotempty(s)
return s and mw.text.trim(s) ~= ''
end
local function scanValues(values,results,args,replaceTable)
for k, v in pairs(values) do
local c = args.category:gsub('_VALUE_', v)
table.insert(results, c)
if v == '' then
-- Fix odd bug for | = which gets stripped to the empty string
-- and breaks category links
v = ' '
end
local replaceString = '"'..v..'". '
local replaceValue = replaceTable and replaceTable[v]
replaceString = replaceString..(replaceValue and 'Replace with "'..replaceValue..'".' or 'It should be removed.')
local p = args.preview:gsub('_VALUE_',replaceString)
table.insert(results, p )
end
end
function p.check (frame)
-- create the table of deprecated values and their matching new value
return p._check(frame.args, frame:getParent().args, frame:getParent():getTitle())
end
local moduleParams = {ignoreblank=true, preview=true, _category=true, _remove=true}
function p._check(args, pargs, caller)
local dep_values = {}
for k, v in pairs(args) do
if not moduleParams[k] then
dep_values[k] = v
end
end
-- Parse params to remove
local removes = {}
if args['_remove'] then
for r in args['_remove']:gmatch("([^;]+)") do
removes[mw.text.trim(r)] = 1
end
end
-- loop over the parent args and see if any are deprecated
local values = {}
local remove_values = {}
local ignoreblank = isnotempty(args['ignoreblank'])
for k, v in pairs(pargs) do
if not ignoreblank or isnotempty(v) then
if dep_values[k] then
table.insert(values, k)
elseif removes[k] then
table.insert(remove_values, k)
end
end
end
-- find out about calling context
local title = mw.title.getCurrentTitle()
-- create local defaulted arguments
local category = args["_category"] or title.namespace == 0 and "[[Category:Pages with deprecated parameters]]" or ""
local preview = args['preview'] or 'Page using [['..caller..']] with deprecated parameter _VALUE_'
if isnotempty(preview) then
preview = require('Module:If preview')._warning({preview})
end
local localArgs = {category=category,preview=preview}
-- scan through values and remove_values and create output results
local results = {}
scanValues(values,results,localArgs,dep_values)
scanValues(remove_values,results,localArgs)
return table.concat(results)
end
return p
6pg33nakw78ry3o0fys41ny599i0hwk
Modul:If preview
828
24082
210892
2026-04-06T16:12:28Z
Ultron90
10980
Lempa riyébbu maq 'local p = {} local getArgs = require("Module:Arguments").getArgs local yn = require("Module:Yesno") local cfg = mw.loadData('Module:If preview/configuration') --[[ main This function returns either the first argument or second argument passed to this module, depending on whether the page is being previewed. ]] function p.main(frame) local args = getArgs(frame) if cfg.preview then return args[1] or '' else return args[2] or '' end end --[[ pmain This functio...'
210892
Scribunto
text/plain
local p = {}
local getArgs = require("Module:Arguments").getArgs
local yn = require("Module:Yesno")
local cfg = mw.loadData('Module:If preview/configuration')
--[[
main
This function returns either the first argument or second argument passed to
this module, depending on whether the page is being previewed.
]]
function p.main(frame)
local args = getArgs(frame)
if cfg.preview then
return args[1] or ''
else
return args[2] or ''
end
end
--[[
pmain
This function returns either the first argument or second argument passed to
this module's parent (i.e. template using this module), depending on whether it
is being previewed.
]]
function p.pmain(frame)
return p.main(frame:getParent())
end
local function warning_text(warning)
return mw.ustring.format(
cfg.warning_infrastructure,
cfg.templatestyles,
warning
)
end
function p._warning(args)
local warning = args[1] and args[1]:match('^%s*(.-)%s*$') or ''
if warning == '' then
return warning_text(cfg.missing_warning)
end
if not cfg.preview then return '' end
if yn(args['consolewarning']) then mw.addWarning(args[1] or cfg.missing_warning) end
return warning_text(warning)
end
--[[
warning
This function returns a "preview warning", which is the first argument marked
up with HTML and some supporting text, depending on whether the page is being previewed.
]]
-- function p.warning(frame)
-- mw.addWarning(frame.args[1] or cfg.missing_warning)
-- return p._warning(frame.args)
-- end
--[[
warning, but for pass-through templates like {{preview warning}}
]]
function p.pwarning(frame)
local args = getArgs(frame)
return p._warning(args)
end
--[[
Does both mw.addWarning and preview warning
]]
function p.warn(text)
if text == nil or text == "" then return "" end
mw.addWarning(text)
return p._warning({text})
end
--[[
Console warning
]]
function p.consoleWarning(frame)
local args = getArgs(frame)
mw.addWarning(args[1] or cfg.missing_warning)
return ''
end
return p
9xxiwh6yksz0t17svyd7nlq7rj3f5rk
Modul:If preview/configuration
828
24083
210893
2026-04-06T16:30:18Z
Ultron90
10980
Lempa riyébbu maq '--[[ We perform the actual check for whether this is a preview here since preprocessing is relatively expensive. ]] local frame = mw.getCurrentFrame() local function is_preview() local revision_id = frame:preprocess('{{REVISIONID}}') -- {{REVISIONID}} is usually the empty string when previewed. -- I don't know why we're checking for nil but hey, maybe someday things -- would have broken return revision_id == nil or revision_id == '' end local function templatesty...'
210893
Scribunto
text/plain
--[[
We perform the actual check for whether this is a preview here since
preprocessing is relatively expensive.
]]
local frame = mw.getCurrentFrame()
local function is_preview()
local revision_id = frame:preprocess('{{REVISIONID}}')
-- {{REVISIONID}} is usually the empty string when previewed.
-- I don't know why we're checking for nil but hey, maybe someday things
-- would have broken
return revision_id == nil or revision_id == ''
end
local function templatestyles()
return frame:extensionTag{
name = 'templatestyles', args = { src = 'Module:If preview/styles.css' }
}
end
return {
preview = is_preview(),
templatestyles = templatestyles(),
warning_infrastructure = '%s<div class="preview-warning"><strong>Preview warning:</strong> %s</div>',
missing_warning = 'The template has no warning text. Please add a warning.'
}
7ccf9c7e3yxw9p4ke6iw4ndcfniweno
Modul:If preview/styles.css
828
24084
210894
2026-04-06T16:31:40Z
Ultron90
10980
Lempa riyébbu maq '/* {{pp|small=yes}} */ .preview-warning { font-style: italic; /* @noflip */ padding-left: 1.6em; margin-bottom: 0.5em; color: var(--color-error, red); } /* The templatestyles element inserts a link element before hatnotes. * TODO: Remove link if/when WMF resolves T200206 */ .preview-warning + link + .preview-warning { margin-top: -0.5em; }'
210894
sanitized-css
text/css
/* {{pp|small=yes}} */
.preview-warning {
font-style: italic;
/* @noflip */
padding-left: 1.6em;
margin-bottom: 0.5em;
color: var(--color-error, red);
}
/* The templatestyles element inserts a link element before hatnotes.
* TODO: Remove link if/when WMF resolves T200206 */
.preview-warning + link + .preview-warning {
margin-top: -0.5em;
}
kbqg0kqnlzjfzk8vwkk7ykx0gblj5y8
Modul:URL
828
24085
210896
2026-04-06T16:35:15Z
Ultron90
10980
Lempa riyébbu maq '-- -- This module implements {{URL}} -- -- See unit tests at [[Module:URL/testcases]] local p = {} local function safeUri(s) local success, uri = pcall(function() return mw.uri.new(s) end) if success then return uri end end local function extractUrl(args) for name, val in pairs(args) do if name ~= 2 and name ~= "msg" then local url = name .. "=" .. val; url = mw.ustring.gsub(url, '^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])', 'http%1://%3') local uri = s...'
210896
Scribunto
text/plain
--
-- This module implements {{URL}}
--
-- See unit tests at [[Module:URL/testcases]]
local p = {}
local function safeUri(s)
local success, uri = pcall(function()
return mw.uri.new(s)
end)
if success then
return uri
end
end
local function extractUrl(args)
for name, val in pairs(args) do
if name ~= 2 and name ~= "msg" then
local url = name .. "=" .. val;
url = mw.ustring.gsub(url, '^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])', 'http%1://%3')
local uri = safeUri(url);
if uri and uri.host then
return url
end
end
end
end
function p._url(url, text, msg)
url = mw.text.trim(url or '')
text = mw.text.trim(text or '')
-- Check for pre-formatted url. Catches '{{url|{{url|google.com}}}}' that can occur via template
if (mw.ustring.match(url, '^<span class="url">')) then
return url, text, msg
end
local nomsg = (msg or ''):sub(1,1):lower() == "n" or msg == 'false' -- boolean: true if msg is "false" or starts with n or N
if url == '' then
if text == '' then
if nomsg then
return nil
else
return mw.getCurrentFrame():expandTemplate{ title = 'tlx', args = { 'URL', "''example.com''", "''optional display text''" } }
end
else
return text
end
end
-- If the URL contains any unencoded spaces, encode them, because MediaWiki will otherwise interpret a space as the end of the URL.
url = mw.ustring.gsub(url, '%s', function(s) return mw.uri.encode(s, 'PATH') end)
-- If there is an empty query string or fragment id, remove it as it will cause mw.uri.new to throw an error
url = mw.ustring.gsub(url, '#$', '')
url = mw.ustring.gsub(url, '%?$', '')
-- If it's an HTTP[S] URL without the double slash, fix it.
url = mw.ustring.gsub(url, '^[Hh][Tt][Tt][Pp]([Ss]?):(/?)([^/])', 'http%1://%3')
local uri = safeUri(url)
-- Handle URL's without a protocol and URL's that are protocol-relative,
-- e.g. www.example.com/foo or www.example.com:8080/foo, and //www.example.com/foo
if uri and (not uri.protocol or (uri.protocol and not uri.host)) and url:sub(1, 2) ~= '//' then
url = 'http://' .. url
uri = safeUri(url)
end
if text == '' then
if uri then
if uri.path == '/' then uri.path = '' end
local port = ''
if uri.port then port = ':' .. uri.port end
text = mw.ustring.lower(uri.host or '') .. port .. (uri.relativePath or '')
-- Add <wbr> before _/.-# sequences
text = mw.ustring.gsub(text,"(/+)","<wbr/>%1") -- This entry MUST be the first. "<wbr/>" has a "/" in it, you know.
text = mw.ustring.gsub(text,"(%.+)","<wbr/>%1")
-- text = mw.ustring.gsub(text,"(%-+)","<wbr/>%1") -- DISABLED for now
text = mw.ustring.gsub(text,"(%#+)","<wbr/>%1")
text = mw.ustring.gsub(text,"(_+)","<wbr/>%1")
else -- URL is badly-formed, so just display whatever was passed in
text = url
end
end
return mw.ustring.format('<span class="url">[%s %s]</span>', url, text)
end
--[[
The main entry point for calling from Template:URL.
--]]
function p.url(frame)
local templateArgs = frame.args
local parentArgs = frame:getParent().args
local url = templateArgs[1] or parentArgs[1]
local text = templateArgs[2] or parentArgs[2] or ''
local msg = templateArgs.msg or parentArgs.msg or ''
url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or ''
return p._url(url, text, msg)
end
--[[
The entry point for calling from the forked Template:URL2.
This function returns no message by default.
It strips out wiki-link markup, html tags, and everything after a space.
--]]
function p.url2(frame)
local templateArgs = frame.args
local parentArgs = frame:getParent().args
local url = templateArgs[1] or parentArgs[1]
local text = templateArgs[2] or parentArgs[2] or ''
-- default to no message
local msg = templateArgs.msg or parentArgs.msg or 'no'
url = url or extractUrl(templateArgs) or extractUrl(parentArgs) or ''
-- if the url came from a Wikidata call, it might have a pen icon appended
-- we want to keep that and add it back at the end.
local u1, penicon = mw.ustring.match( url, "(.*)( <span class='penicon.*)" )
if penicon then url = u1 end
-- strip out html tags and [ ] from url
url = (url or ''):gsub("<[^>]*>", ""):gsub("[%[%]]", "")
-- truncate anything after a space
url = url:gsub("%%20", " "):gsub(" .*", "")
return (p._url(url, text, msg) or "") .. (penicon or "")
end
return p
rc4hltyh23z2og5tb2epk1nszo4pvtx
Accuwang:Yesno
10
24086
210897
2026-04-06T16:37:52Z
Ultron90
10980
Lempa riyébbu maq '{{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }} |no |n |f |false |off |0 = {{{no|}}} | = {{{blank|{{{no|}}}}}} |¬ = {{{¬|}}} |yes |y |t |true |on |1 = {{{yes|yes}}} |#default = {{{def|{{{yes|yes}}}}}} }}<noinclude> {{Documentation}} </noinclude>'
210897
wikitext
text/x-wiki
{{<includeonly>safesubst:</includeonly>#switch: {{<includeonly>safesubst:</includeonly>lc: {{{1|¬}}} }}
|no
|n
|f
|false
|off
|0 = {{{no|}}}
| = {{{blank|{{{no|}}}}}}
|¬ = {{{¬|}}}
|yes
|y
|t
|true
|on
|1 = {{{yes|yes}}}
|#default = {{{def|{{{yes|yes}}}}}}
}}<noinclude>
{{Documentation}}
</noinclude>
ap97tktff18ii0muqd5f4eezydumg5v
Accuwang:Infobox musical artist/color
10
24087
210901
2026-04-06T16:46:09Z
Ultron90
10980
Lempa riyébbu maq '<includeonly>{{#switch: {{{1|}}} <!--| solo_singer = #f0e68c <!-- khaki --> <!--| non_vocal_instrumentalist = #f4bf92 <!-- unnamed pale orange --> <!--| non_performing_personnel = #bfe0bf <!-- unnamed pale green --> <!--| group_or_band = #b0c4de <!-- lightsteelblue --> <!--| classical_ensemble = #b0e0e6 <!-- PowderBlue --> <!--| temporary = #d3d3d3 <!-- LightGrey --> | #b0c4de }}</includeonly>...'
210901
wikitext
text/x-wiki
<includeonly>{{#switch: {{{1|}}}
<!--| solo_singer = #f0e68c <!-- khaki -->
<!--| non_vocal_instrumentalist = #f4bf92 <!-- unnamed pale orange -->
<!--| non_performing_personnel = #bfe0bf <!-- unnamed pale green -->
<!--| group_or_band = #b0c4de <!-- lightsteelblue -->
<!--| classical_ensemble = #b0e0e6 <!-- PowderBlue -->
<!--| temporary = #d3d3d3 <!-- LightGrey -->
| #b0c4de
}}</includeonly><noinclude>
{{documentation}}
</noinclude>
kcgyulc67wbtjbcj6u63cebetyf5gpb
Modul:Exponential search
828
24088
210903
2026-04-06T17:00:56Z
Ultron90
10980
Lempa riyébbu maq '-- This module provides a generic exponential search algorithm. require[[strict]] local checkType = require('libraryUtil').checkType local floor = math.floor local function midPoint(lower, upper) return floor(lower + (upper - lower) / 2) end local function search(testFunc, i, lower, upper) if testFunc(i) then if i + 1 == upper then return i end lower = i if upper then i = midPoint(lower, upper) else i = i * 2 end return search(testFunc, i, lo...'
210903
Scribunto
text/plain
-- This module provides a generic exponential search algorithm.
require[[strict]]
local checkType = require('libraryUtil').checkType
local floor = math.floor
local function midPoint(lower, upper)
return floor(lower + (upper - lower) / 2)
end
local function search(testFunc, i, lower, upper)
if testFunc(i) then
if i + 1 == upper then
return i
end
lower = i
if upper then
i = midPoint(lower, upper)
else
i = i * 2
end
return search(testFunc, i, lower, upper)
else
upper = i
i = midPoint(lower, upper)
return search(testFunc, i, lower, upper)
end
end
return function (testFunc, init)
checkType('Exponential search', 1, testFunc, 'function')
checkType('Exponential search', 2, init, 'number', true)
if init and (init < 1 or init ~= floor(init) or init == math.huge) then
error(string.format(
"invalid init value '%s' detected in argument #2 to " ..
"'Exponential search' (init value must be a positive integer)",
tostring(init)
), 2)
end
init = init or 2
if not testFunc(1) then
return nil
end
return search(testFunc, init, 1, nil)
end
jqqi8l27tb73lglksbukg2g3bzt3fmv
Modul:Math
828
24089
210905
2026-04-06T17:06:48Z
Ultron90
10980
Lempa riyébbu maq '--[[ This module provides a number of basic mathematical operations. ]] local yesno, getArgs -- lazily initialized local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules. local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua. --[[ Helper functions used to avoid redundant code. ]] local functio...'
210905
Scribunto
text/plain
--[[
This module provides a number of basic mathematical operations.
]]
local yesno, getArgs -- lazily initialized
local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules.
local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua.
--[[
Helper functions used to avoid redundant code.
]]
local function err(msg)
-- Generates wikitext error messages.
return mw.ustring.format('<strong class="error">Formatting error: %s</strong>', msg)
end
local function unpackNumberArgs(args)
-- Returns an unpacked list of arguments specified with numerical keys.
local ret = {}
for k, v in pairs(args) do
if type(k) == 'number' then
table.insert(ret, v)
end
end
return unpack(ret)
end
local function makeArgArray(...)
-- Makes an array of arguments from a list of arguments that might include nils.
local args = {...} -- Table of arguments. It might contain nils or non-number values, so we can't use ipairs.
local nums = {} -- Stores the numbers of valid numerical arguments.
local ret = {}
for k, v in pairs(args) do
v = p._cleanNumber(v)
if v then
nums[#nums + 1] = k
args[k] = v
end
end
table.sort(nums)
for i, num in ipairs(nums) do
ret[#ret + 1] = args[num]
end
return ret
end
local function fold(func, ...)
-- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters,
-- and must return a number as an output. This number is then supplied as input to the next function call.
local vals = makeArgArray(...)
local count = #vals -- The number of valid arguments
if count == 0 then return
-- Exit if we have no valid args, otherwise removing the first arg would cause an error.
nil, 0
end
local ret = table.remove(vals, 1)
for _, val in ipairs(vals) do
ret = func(ret, val)
end
return ret, count
end
--[[
Fold arguments by selectively choosing values (func should return when to choose the current "dominant" value).
]]
local function binary_fold(func, ...)
local value = fold((function(a, b) if func(a, b) then return a else return b end end), ...)
return value
end
--[[
random
Generate a random number
Usage:
{{#invoke: Math | random }}
{{#invoke: Math | random | maximum value }}
{{#invoke: Math | random | minimum value | maximum value }}
]]
function wrap.random(args)
local first = p._cleanNumber(args[1])
local second = p._cleanNumber(args[2])
return p._random(first, second)
end
function p._random(first, second)
math.randomseed(mw.site.stats.edits + mw.site.stats.pages + os.time() + math.floor(os.clock() * 1000000000))
-- math.random will throw an error if given an explicit nil parameter, so we need to use if statements to check the params.
if first and second then
if first <= second then -- math.random doesn't allow the first number to be greater than the second.
return math.random(first, second)
end
elseif first then
return math.random(first)
else
return math.random()
end
end
--[[
order
Determine order of magnitude of a number
Usage:
{{#invoke: Math | order | value }}
]]
function wrap.order(args)
local input_string = (args[1] or args.x or '0');
local input_number = p._cleanNumber(input_string);
if input_number == nil then
return err('order of magnitude input appears non-numeric')
else
return p._order(input_number)
end
end
function p._order(x)
if x == 0 then return 0 end
return math.floor(math.log10(math.abs(x)))
end
--[[
precision
Detemines the precision of a number using the string representation
Usage:
{{ #invoke: Math | precision | value }}
]]
function wrap.precision(args)
local input_string = (args[1] or args.x or '0');
local trap_fraction = args.check_fraction;
local input_number;
if not yesno then
yesno = require('Module:Yesno')
end
if yesno(trap_fraction, true) then -- Returns true for all input except nil, false, "no", "n", "0" and a few others. See [[Module:Yesno]].
local pos = string.find(input_string, '/', 1, true);
if pos ~= nil then
if string.find(input_string, '/', pos + 1, true) == nil then
local denominator = string.sub(input_string, pos+1, -1);
local denom_value = tonumber(denominator);
if denom_value ~= nil then
return math.log10(denom_value);
end
end
end
end
input_number, input_string = p._cleanNumber(input_string);
if input_string == nil then
return err('precision input appears non-numeric')
else
return p._precision(input_string)
end
end
function p._precision(x)
if type(x) == 'number' then
x = tostring(x)
end
x = string.upper(x)
local decimal = x:find('%.')
local exponent_pos = x:find('E')
local result = 0;
if exponent_pos ~= nil then
local exponent = string.sub(x, exponent_pos + 1)
x = string.sub(x, 1, exponent_pos - 1)
result = result - tonumber(exponent)
end
if decimal ~= nil then
result = result + string.len(x) - decimal
return result
end
local pos = string.len(x);
while x:byte(pos) == string.byte('0') do
pos = pos - 1
result = result - 1
if pos <= 0 then
return 0
end
end
return result
end
--[[
max
Finds the maximum argument
Usage:
{{#invoke:Math| max | value1 | value2 | ... }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.max(args)
return p._max(unpackNumberArgs(args))
end
function p._max(...)
local max_value = binary_fold((function(a, b) return a > b end), ...)
if max_value then
return max_value
end
end
--[[
median
Find the median of set of numbers
Usage:
{{#invoke:Math | median | number1 | number2 | ...}}
OR
{{#invoke:Math | median }}
]]
function wrap.median(args)
return p._median(unpackNumberArgs(args))
end
function p._median(...)
local vals = makeArgArray(...)
local count = #vals
table.sort(vals)
if count == 0 then
return 0
end
if p._mod(count, 2) == 0 then
return (vals[count/2] + vals[count/2+1])/2
else
return vals[math.ceil(count/2)]
end
end
--[[
min
Finds the minimum argument
Usage:
{{#invoke:Math| min | value1 | value2 | ... }}
OR
{{#invoke:Math| min }}
When used with no arguments, it takes its input from the parent
frame. Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.min(args)
return p._min(unpackNumberArgs(args))
end
function p._min(...)
local min_value = binary_fold((function(a, b) return a < b end), ...)
if min_value then
return min_value
end
end
--[[
sum
Finds the sum
Usage:
{{#invoke:Math| sum | value1 | value2 | ... }}
OR
{{#invoke:Math| sum }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.sum(args)
return p._sum(unpackNumberArgs(args))
end
function p._sum(...)
local sums, count = fold((function(a, b) return a + b end), ...)
if not sums then
return 0
else
return sums
end
end
--[[
average
Finds the average
Usage:
{{#invoke:Math| average | value1 | value2 | ... }}
OR
{{#invoke:Math| average }}
Note, any values that do not evaluate to numbers are ignored.
]]
function wrap.average(args)
return p._average(unpackNumberArgs(args))
end
function p._average(...)
local sum, count = fold((function(a, b) return a + b end), ...)
if not sum then
return 0
else
return sum / count
end
end
--[[
round
Rounds a number to specified precision
Usage:
{{#invoke:Math | round | value | precision }}
--]]
function wrap.round(args)
local value = p._cleanNumber(args[1] or args.value or 0)
local precision = p._cleanNumber(args[2] or args.precision or 0)
if value == nil or precision == nil then
return err('round input appears non-numeric')
else
return p._round(value, precision)
end
end
function p._round(value, precision)
local rescale = math.pow(10, precision or 0);
return math.floor(value * rescale + 0.5) / rescale;
end
--[[
log10
returns the log (base 10) of a number
Usage:
{{#invoke:Math | log10 | x }}
]]
function wrap.log10(args)
return math.log10(args[1])
end
--[[
mod
Implements the modulo operator
Usage:
{{#invoke:Math | mod | x | y }}
--]]
function wrap.mod(args)
local x = p._cleanNumber(args[1])
local y = p._cleanNumber(args[2])
if not x then
return err('first argument to mod appears non-numeric')
elseif not y then
return err('second argument to mod appears non-numeric')
else
return p._mod(x, y)
end
end
function p._mod(x, y)
local ret = x % y
if not (0 <= ret and ret < y) then
ret = 0
end
return ret
end
--[[
gcd
Calculates the greatest common divisor of multiple numbers
Usage:
{{#invoke:Math | gcd | value 1 | value 2 | value 3 | ... }}
--]]
function wrap.gcd(args)
return p._gcd(unpackNumberArgs(args))
end
function p._gcd(...)
local function findGcd(a, b)
local r = b
local oldr = a
while r ~= 0 do
local quotient = math.floor(oldr / r)
oldr, r = r, oldr - quotient * r
end
if oldr < 0 then
oldr = oldr * -1
end
return oldr
end
local result, count = fold(findGcd, ...)
return result
end
--[[
precision_format
Rounds a number to the specified precision and formats according to rules
originally used for {{template:Rnd}}. Output is a string.
Usage:
{{#invoke: Math | precision_format | number | precision }}
]]
function wrap.precision_format(args)
local value_string = args[1] or 0
local precision = args[2] or 0
return p._precision_format(value_string, precision)
end
function p._precision_format(value_string, precision)
-- For access to Mediawiki built-in formatter.
local lang = mw.getContentLanguage();
local value
value, value_string = p._cleanNumber(value_string)
precision = p._cleanNumber(precision)
-- Check for non-numeric input
if value == nil or precision == nil then
return err('invalid input when rounding')
end
local current_precision = p._precision(value)
local order = p._order(value)
-- Due to round-off effects it is neccesary to limit the returned precision under
-- some circumstances because the terminal digits will be inaccurately reported.
if order + precision >= 14 then
if order + p._precision(value_string) >= 14 then
precision = 13 - order;
end
end
-- If rounding off, truncate extra digits
if precision < current_precision then
value = p._round(value, precision)
current_precision = p._precision(value)
end
local formatted_num = lang:formatNum(math.abs(value))
local sign
-- Use proper unary minus sign rather than ASCII default
if value < 0 then
sign = '−'
else
sign = ''
end
-- Handle cases requiring scientific notation
if string.find(formatted_num, 'E', 1, true) ~= nil or math.abs(order) >= 9 then
value = value * math.pow(10, -order)
current_precision = current_precision + order
precision = precision + order
formatted_num = lang:formatNum(math.abs(value))
else
order = 0;
end
formatted_num = sign .. formatted_num
-- Pad with zeros, if needed
if current_precision < precision then
local padding
if current_precision <= 0 then
if precision > 0 then
local zero_sep = lang:formatNum(1.1)
formatted_num = formatted_num .. zero_sep:sub(2,2)
padding = precision
if padding > 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
else
padding = precision - current_precision
if padding > 20 then
padding = 20
end
formatted_num = formatted_num .. string.rep('0', padding)
end
end
-- Add exponential notation, if necessary.
if order ~= 0 then
-- Use proper unary minus sign rather than ASCII default
if order < 0 then
order = '−' .. lang:formatNum(math.abs(order))
else
order = lang:formatNum(order)
end
formatted_num = formatted_num .. '<span style="margin:0 .15em 0 .25em">×</span>10<sup>' .. order .. '</sup>'
end
return formatted_num
end
--[[
divide
Implements the division operator
Usage:
{{#invoke:Math | divide | x | y | round= | precision= }}
--]]
function wrap.divide(args)
local x = args[1]
local y = args[2]
local round = args.round
local precision = args.precision
if not yesno then
yesno = require('Module:Yesno')
end
return p._divide(x, y, yesno(round), precision)
end
function p._divide(x, y, round, precision)
if y == nil or y == "" then
return err("Empty divisor")
elseif not tonumber(y) then
if type(y) == 'string' and string.sub(y, 1, 1) == '<' then
return y
else
return err("Not a number: " .. y)
end
elseif x == nil or x == "" then
return err("Empty dividend")
elseif not tonumber(x) then
if type(x) == 'string' and string.sub(x, 1, 1) == '<' then
return x
else
return err("Not a number: " .. x)
end
else
local z = x / y
if round then
return p._round(z, 0)
elseif precision then
return p._round(z, precision)
else
return z
end
end
end
--[[
Helper function that interprets the input numerically. If the
input does not appear to be a number, attempts evaluating it as
a parser functions expression.
]]
function p._cleanNumber(number_string, unformat)
if type(number_string) == 'number' then
-- We were passed a number, so we don't need to do any processing.
return number_string, tostring(number_string)
elseif type(number_string) ~= 'string' or not number_string:find('%S') then
-- We were passed a non-string or a blank string, so exit.
return nil, nil;
end
-- Attempt basic conversion
local number = tonumber(number_string)
-- If failed, try unformatting the number_string
if unformat and number == nil then
-- Cannot use mw.language.getContentLanguage():parseFormattedNumber()
-- because, unlike {{formatnum:|R}}, it won't ignore operators (it
-- would return an error on "1,234+1,234" instead of "1234+1234")
number_string = mw.getCurrentFrame():callParserFunction("formatnum", {number_string, "R"})
number = tonumber(number_string)
end
-- If failed, attempt to evaluate input as an expression
if number == nil then
local success, result = pcall(mw.ext.ParserFunctions.expr, number_string)
if success then
number = tonumber(result)
number_string = tostring(number)
else
number = nil
number_string = nil
end
else
number_string = number_string:match("^%s*(.-)%s*$") -- String is valid but may contain padding, clean it.
number_string = number_string:match("^%+(.*)$") or number_string -- Trim any leading + signs.
if number_string:find('^%-?0[xX]') then
-- Number is using 0xnnn notation to indicate base 16; use the number that Lua detected instead.
number_string = tostring(number)
end
end
return number, number_string
end
--[[
Wrapper function that does basic argument processing. This ensures that all functions from #invoke can use either the current
frame or the parent frame, and it also trims whitespace for all arguments and removes blank arguments.
]]
local mt = { __index = function(t, k)
return function(frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return wrap[k](getArgs(frame)) -- Argument processing is left to Module:Arguments. Whitespace is trimmed and blank arguments are removed.
end
end }
return setmetatable(p, mt)
06jh9cd7mkscmqwrfvb56hx801bo3vf
Accuwang:Infobox musical artist/hCard class
10
24090
210906
2026-04-07T05:10:36Z
Ultron90
10980
Lempa riyébbu maq '{{#switch: {{{1|}}} | person | solo_singer | non_vocal_instrumentalist | non_performing_personnel = fn | group_or_band | cover_band | classical_ensemble | temporary = fn org | {{{1|fn}}} }}<!-- "fn" for individual people, "fn org" for bands and other groupings) --><noinclude> {{documentation}} </noinclude>'
210906
wikitext
text/x-wiki
{{#switch: {{{1|}}}
| person
| solo_singer
| non_vocal_instrumentalist
| non_performing_personnel = fn
| group_or_band
| cover_band
| classical_ensemble
| temporary = fn org
| {{{1|fn}}}
}}<!-- "fn" for individual people, "fn org" for bands and other groupings) --><noinclude>
{{documentation}}
</noinclude>
rlz9gi7dd1w8x4ims7z92vbvj1tio5g