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, "(.*)(&nbsp;<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 = &#35;f0e68c <!-- khaki --> <!--| non_vocal_instrumentalist = &#35;f4bf92 <!-- unnamed pale orange --> <!--| non_performing_personnel = &#35;bfe0bf <!-- unnamed pale green --> <!--| group_or_band = &#35;b0c4de <!-- lightsteelblue --> <!--| classical_ensemble = &#35;b0e0e6 <!-- PowderBlue --> <!--| temporary = &#35;d3d3d3 <!-- LightGrey --> | &#35;b0c4de }}</includeonly>...' 210901 wikitext text/x-wiki <includeonly>{{#switch: {{{1|}}} <!--| solo_singer = &#35;f0e68c <!-- khaki --> <!--| non_vocal_instrumentalist = &#35;f4bf92 <!-- unnamed pale orange --> <!--| non_performing_personnel = &#35;bfe0bf <!-- unnamed pale green --> <!--| group_or_band = &#35;b0c4de <!-- lightsteelblue --> <!--| classical_ensemble = &#35;b0e0e6 <!-- PowderBlue --> <!--| temporary = &#35;d3d3d3 <!-- LightGrey --> | &#35;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