Wikiphidiya
nrwiki
https://nr.wikipedia.org/wiki/Main_Page
MediaWiki 1.47.0-wmf.5
first-letter
Iinrhatjhi
Khethekileko
Asiqongelane
Umsebenzisi
Umsebenzisi asiqongelane
Wikiphidiya
Wikiphidiya asiqongelane
Isimumathi
Isimumathi asiqongelane
MediaWiki
MediaWiki asiqongelane
Umhlahlandlelasakhiwo
Umhlahlandlelasakhiwo asiqongelane
Lisizo
Lisizo asiqongelane
Mkhakha
Mkhakha asiqongelane
TimedText
TimedText talk
Module
Module talk
Event
Event talk
I-Mkhombo Nature Reserve
0
937
6668
5688
2026-06-07T15:08:34Z
Derek J Moore
148
Added
6668
wikitext
text/x-wiki
{{Infobox park
| name = I-Mkhombo Nature Reserve
| image = Mkhombodam, waadvoëls aan oewer, a.jpg
| image_size =
| image_alt =
| image_caption =
| type =
| location = [[Mpumalanga]], [[South Africa]]
| coordinates = {{coord|-25.114|28.825|type:forest|display=inline,title}}
| area =
| created = <!-- {{Start date|YYYY}} -->
| operator =
| visitation_num =
| status =
}}
'''Mkhombo Nature Reserve''' yindawo evikelweko e [[Isifunda seMpumalanga|-Mpumalanga]], [[Isewula Afrika|eSewula Afrika]]. Yindawo ekulu, eyi-11,223 ha elondoloza ibhoduluko elisempumalanga ye-Kalahari eduze nedamu le-Mkhombo. Indawo yokugcina indawo inendawo ejwayelekileko yotjani ephakemeko enethiwekhi yamaxhaphozi kanye namadwala aphumako.<ref>[https://www.mpumalanga.com/our-provincial-parks/mkhombo-nature-reserve Mkhombo Nature Reserve - Mpumalanga]</ref>
Indawo yokugcina imvelo yaziwa ngokuphila kwayo kweenyoni. Hlangana nemihlobo yeenlwana ezivela endaweni le kune- reed cormorant, I-African yellow-billed hornbill, I-African grey hornbill, I-white-breasted cormorant, I-little swift, I- hamerkop, I-red-winged starling, I- pectoral sandpiper, I-grey plover, I -barred wren-warble, ne- wailwarta yellow.<ref>[[:en:Southern_yellow-billed_hornbill|Southern yellow-billed hornbill - Wikipedia]]</ref>
Yindawo evame ukuvakatjhelwa ziimvakatjhi ezivela ephasini loke. Imihlobo yeenlwana ezitholakala endaweni le ifakahlangana iindlovu, amabhubezi, iingwe, iindlovu, iinyathi, ubhejane, iimvubu, kanye nemihlobo eminengi yama-antelope.
== Umthombolwazi ==
{{Reflist}}
85vrqbdqjdv8wseblu4v53wj0ozabkv
6670
6668
2026-06-07T15:19:18Z
Derek J Moore
148
Added an image. Not sure what module is in vernacular
6670
wikitext
text/x-wiki
[[File:3-banded plover last weekend at Mkhombo Dam (36902155813).jpg|3-banded plover last weekend at Mkhombo Dam (36902155813)]]
'''Mkhombo Nature Reserve''' yindawo evikelweko e [[Isifunda seMpumalanga|-Mpumalanga]], [[Isewula Afrika|eSewula Afrika]]. Yindawo ekulu, eyi-11,223 ha elondoloza ibhoduluko elisempumalanga ye-Kalahari eduze nedamu le-Mkhombo. Indawo yokugcina indawo inendawo ejwayelekileko yotjani ephakemeko enethiwekhi yamaxhaphozi kanye namadwala aphumako.<ref>[https://www.mpumalanga.com/our-provincial-parks/mkhombo-nature-reserve Mkhombo Nature Reserve - Mpumalanga]</ref>
Indawo yokugcina imvelo yaziwa ngokuphila kwayo kweenyoni. Hlangana nemihlobo yeenlwana ezivela endaweni le kune- reed cormorant, I-African yellow-billed hornbill, I-African grey hornbill, I-white-breasted cormorant, I-little swift, I- hamerkop, I-red-winged starling, I- pectoral sandpiper, I-grey plover, I -barred wren-warble, ne- wailwarta yellow.<ref>[[:en:Southern_yellow-billed_hornbill|Southern yellow-billed hornbill - Wikipedia]]</ref>
Yindawo evame ukuvakatjhelwa ziimvakatjhi ezivela ephasini loke. Imihlobo yeenlwana ezitholakala endaweni le ifakahlangana iindlovu, amabhubezi, iingwe, iindlovu, iinyathi, ubhejane, iimvubu, kanye nemihlobo eminengi yama-antelope.
== Umthombolwazi ==
{{Reflist}}
4afk8xp99bem31b23n72vxj1x1lq9xv
6671
6670
2026-06-07T15:19:54Z
Derek J Moore
148
Try again
6671
wikitext
text/x-wiki
[[File:3-banded plover last weekend at Mkhombo Dam (36902155813).jpg|thumb|3-banded plover last weekend at Mkhombo Dam (36902155813)]]
'''Mkhombo Nature Reserve''' yindawo evikelweko e [[Isifunda seMpumalanga|-Mpumalanga]], [[Isewula Afrika|eSewula Afrika]]. Yindawo ekulu, eyi-11,223 ha elondoloza ibhoduluko elisempumalanga ye-Kalahari eduze nedamu le-Mkhombo. Indawo yokugcina indawo inendawo ejwayelekileko yotjani ephakemeko enethiwekhi yamaxhaphozi kanye namadwala aphumako.<ref>[https://www.mpumalanga.com/our-provincial-parks/mkhombo-nature-reserve Mkhombo Nature Reserve - Mpumalanga]</ref>
Indawo yokugcina imvelo yaziwa ngokuphila kwayo kweenyoni. Hlangana nemihlobo yeenlwana ezivela endaweni le kune- reed cormorant, I-African yellow-billed hornbill, I-African grey hornbill, I-white-breasted cormorant, I-little swift, I- hamerkop, I-red-winged starling, I- pectoral sandpiper, I-grey plover, I -barred wren-warble, ne- wailwarta yellow.<ref>[[:en:Southern_yellow-billed_hornbill|Southern yellow-billed hornbill - Wikipedia]]</ref>
Yindawo evame ukuvakatjhelwa ziimvakatjhi ezivela ephasini loke. Imihlobo yeenlwana ezitholakala endaweni le ifakahlangana iindlovu, amabhubezi, iingwe, iindlovu, iinyathi, ubhejane, iimvubu, kanye nemihlobo eminengi yama-antelope.
== Umthombolwazi ==
{{Reflist}}
qekt1m93mgclu7b80j5lr12gkx6kinr
6672
6671
2026-06-07T15:23:54Z
Derek J Moore
148
Added
6672
wikitext
text/x-wiki
{{multiple image
| border = infobox
| perrow = 1/2/2/1
| total_width = 290
| align = center
| caption_align = center
|image1 = 3-banded plover last weekend at Mkhombo Dam (36902155813).jpg
| caption1 =
| image2 =
| caption2 =
|image3 =
| caption3 =
| image4 =
| caption4 =
}}
'''Mkhombo Nature Reserve''' yindawo evikelweko e [[Isifunda seMpumalanga|-Mpumalanga]], [[Isewula Afrika|eSewula Afrika]]. Yindawo ekulu, eyi-11,223 ha elondoloza ibhoduluko elisempumalanga ye-Kalahari eduze nedamu le-Mkhombo. Indawo yokugcina indawo inendawo ejwayelekileko yotjani ephakemeko enethiwekhi yamaxhaphozi kanye namadwala aphumako.<ref>[https://www.mpumalanga.com/our-provincial-parks/mkhombo-nature-reserve Mkhombo Nature Reserve - Mpumalanga]</ref>
Indawo yokugcina imvelo yaziwa ngokuphila kwayo kweenyoni. Hlangana nemihlobo yeenlwana ezivela endaweni le kune- reed cormorant, I-African yellow-billed hornbill, I-African grey hornbill, I-white-breasted cormorant, I-little swift, I- hamerkop, I-red-winged starling, I- pectoral sandpiper, I-grey plover, I -barred wren-warble, ne- wailwarta yellow.<ref>[[:en:Southern_yellow-billed_hornbill|Southern yellow-billed hornbill - Wikipedia]]</ref>
Yindawo evame ukuvakatjhelwa ziimvakatjhi ezivela ephasini loke. Imihlobo yeenlwana ezitholakala endaweni le ifakahlangana iindlovu, amabhubezi, iingwe, iindlovu, iinyathi, ubhejane, iimvubu, kanye nemihlobo eminengi yama-antelope.
== Umthombolwazi ==
{{Reflist}}
2fpt9t6lwr17t7ajeu0itlutmasw64u
6677
6672
2026-06-07T15:39:52Z
Derek J Moore
148
6677
wikitext
text/x-wiki
'''Mkhombo Nature Reserve''' yindawo evikelweko e [[Isifunda seMpumalanga|-Mpumalanga]], [[Isewula Afrika|eSewula Afrika]]. Yindawo ekulu, eyi-11,223 ha elondoloza ibhoduluko elisempumalanga ye-Kalahari eduze nedamu le-Mkhombo. Indawo yokugcina indawo inendawo ejwayelekileko yotjani ephakemeko enethiwekhi yamaxhaphozi kanye namadwala aphumako.<ref>[https://www.mpumalanga.com/our-provincial-parks/mkhombo-nature-reserve Mkhombo Nature Reserve - Mpumalanga]</ref>
Indawo yokugcina imvelo yaziwa ngokuphila kwayo kweenyoni. Hlangana nemihlobo yeenlwana ezivela endaweni le kune- reed cormorant, I-African yellow-billed hornbill, I-African grey hornbill, I-white-breasted cormorant, I-little swift, I- hamerkop, I-red-winged starling, I- pectoral sandpiper, I-grey plover, I -barred wren-warble, ne- wailwarta yellow.<ref>[[:en:Southern_yellow-billed_hornbill|Southern yellow-billed hornbill - Wikipedia]]</ref>
Yindawo evame ukuvakatjhelwa ziimvakatjhi ezivela ephasini loke. Imihlobo yeenlwana ezitholakala endaweni le ifakahlangana iindlovu, amabhubezi, iingwe, iindlovu, iinyathi, ubhejane, iimvubu, kanye nemihlobo eminengi yama-antelope.
== Umthombolwazi ==
{{Reflist}}
gguzi4xf8urmz53njyhrapnvet6k2zz
Umhlahlandlelasakhiwo:Infobox park
10
1186
6669
2026-06-07T15:11:48Z
Derek J Moore
148
Opened
6669
wikitext
text/x-wiki
{{infobox
| bodyclass = vcard
| child = {{#if:{{{child|}}}{{{embed|}}}|yes}}
| title = {{#if:{{{child|}}}{{{embed|}}}|{{{title|}}}}}
| aboveclass = fn org
| abovestyle = background-color: #abdb75; color:inherit; line-height: 140%;
| above = {{if empty|{{{name|}}}|{{PAGENAMEBASE}} }}
| subheaderstyle = font-size: 110%
| subheader = {{{other_name|}}}
| subheader2 = {{#if:{{{native_name|}}}|{{#if:{{{native_name_lang|}}}|<span class="nickname" lang="{{{native_name_lang}}}">}}{{{native_name}}}{{#if:{{{native_name_lang|}}}|</span>}}}}
| image1 = {{#invoke:InfoboxImage|InfoboxImage|image={{{logo|}}}|size={{{logo_size|}}}|upright={{{logo_upright|}}}|alt={{{logo_alt|}}}}}
| caption1 = {{{logo_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{#switch:{{{image_size|}}}
| frameless = frameless
| upright = frameless
| {{{image_size|}}}
}}|upright={{#ifeq:{{{image_size|}}}|upright|0.75|{{{upright|}}}
}}|sizedefault=250px|maxsize=325px|alt={{{image_alt|}}} }}
| caption2 = {{{image_caption|}}}
| image3 = {{#if:{{{map|}}}
| {{Location map|{{{map}}}
| border = infobox | float = center
| alt = {{{map_alt|}}}
| width = {{{map_size|}}}
| default_width = 250
| max_width = 272
| caption = {{{map_caption|}}}
| relief = {{{relief|}}}
| label = {{{map_label|}}}
| position = {{{map_label_position|}}}
| mark = {{{mark|}}}
| marksize = {{{mark_width|}}}
| coordinates = {{{coordinates|}}} }}
| {{#invoke:InfoboxImage|InfoboxImage|image={{{map_image|}}}|size={{{map_size|}}}|sizedefault=250px|maxsize=272px|alt={{{map_alt|}}}}}
}}
| caption3 = {{#if:{{{map|}}} || {{{map_caption|}}} }}
| image4 = {{#invoke:Infobox mapframe
| autoWithCaption
| onByDefault = {{#if:{{{map|}}}{{{map_image|}}}{{{child|}}}{{{embed|}}}|no|yes}}
| mapframe-marker = park
| mapframe-marker-color = #abdb75
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Interactive map of {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| rowclass2 = category
| label2 = Type
| data2 = {{{type|}}}
| label3 = Motto
| data3 = {{{motto|}}}
| rowclass4 = label
| label4 = Location
| data4 = {{{location|}}}
| label5 = Nearest city
| data5 = {{{nearest_city|}}}
| label6 = Nearest town
| data6 = {{{nearest_town|}}}
| label7 = [[Ordnance Survey National Grid|OS grid]]
| data7 = {{#if:{{{grid_ref_UK|}}}|{{gbm4ibx|{{{grid_ref_UK|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }}{{{grid_ref_UK_note|}}}}}
| label8 = [[Irish grid reference system|OSI/OSNI grid]]
| data8 = {{#if:{{{grid_ref_Ireland|}}}|{{iem4ibx|{{{grid_ref_Ireland|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }}{{{grid_ref_Ireland_note|}}}}}
| label9 = Coordinates
| data9 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates|}}}|type:landmark}}{{{coords_ref|}}}}}
| rowclass10 = note
| label10 = Area
| data10 = {{{area|}}}
| label11 = Elevation
| data11 = {{{elevation|}}}
| label12 = Authorized
| data12 = {{{authorized|}}}
| label13 = Created
| data13 = {{{created|}}}
| label14 = Established
| data14 = {{{established|}}}
| label15 = Designated
| data15 = {{{designated|}}}
| label16 = {{#if:{{{opening|}}}|Opening|Opened}}
| data16 = {{if empty|{{{opening|}}}|{{{opened|}}}}}
| label17 = Closed
| data17 = {{{closed|}}}
| label18 = Founder
| data18 = {{{founder|}}}
| label19 = Designer
| data19 = {{{designer|}}}
| label20 = Etymology
| data20 = {{{etymology|}}}
| label21 = Owner
| data21 = {{{owner|}}}
| label22 = Administrator
| data22 = {{{administrator|}}}
| label23 = Manager
| data23 = {{{manager|}}}
| label24 = Operator
| data24 = {{{operator|}}}
| label25 = Visitors
| data25 = {{#if:{{{visitation_num|}}}|{{{visitation_num|}}}<!--
-->{{#if:{{{visitation_year|}}}|{{sp}}(in {{{visitation_year|}}})}}{{{visitation_ref|}}}}}
| label26 = Open
| data26 = {{{open|}}}
| rowclass27 = category
| label27 = Status
| data27 = {{{status|}}}
| label28 = Awards
| data28 = {{{awards|}}}
| label29 = Camp sites
| data29 = {{{camp_sites|}}}
| label30 = Hiking trails
| data30 = {{{hiking_trails|}}}
| label31 = Paths
| data31 = {{{paths|}}}
| label32 = Terrain
| data32 = {{{terrain|}}}
| label33 = Habitats
| data33 = {{{habitat|}}}
| label34 = Water
| data34 = {{{water|}}}
| label35 = Vegetation
| data35 = {{{vegetation|}}}
| label36 = Plants
| data36 = {{{plants|}}}
| label37 = Species
| data37 = {{{species|}}}
| label38 = Collections
| data38 = {{{collections|}}}
| label39 = Designation
| data39 = {{{designation|}}}
| label40 = Threatened by
| data40 = {{{disturbance|}}}
| label41 = Budget
| data41 = {{{budget|}}}
| label42 = Parking
| data42 = {{{parking|}}}
| label43 = {{longitem|Public transit}}
| data43 = {{{public_transit|}}}
| label44 = {{{free_label|}}}
| class44 = note
| data44 = {{{free_data|}}}
| label45 = Facilities
| data45 = {{{facilities|}}}
| label46 = Other information
| data46 = {{{other_info|}}}
| label47 = Website
| data47 = {{{website|}}}
| data48 = {{{embedded|}}}
| data49 = {{{module|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using infobox park with unknown parameters|_VALUE_{{PAGENAME}}]]}}|preview=Page using [[Template:Infobox park]] with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y| administrator | area | authorized | awards | budget | camp_sites | child | closed | collections | coordinates | coords_ref | created | designated | designation | designer | disturbance | elevation | embed | embedded | established | etymology | facilities | founder | free_data | free_label | grid_ref_Ireland | grid_ref_Ireland_note | grid_ref_UK | grid_ref_UK_note | habitat | hiking_trails | image | image_alt | image_caption | image_size | location | logo | logo_alt | logo_caption | logo_size | logo_upright | manager | map | map_alt | map_caption | map_image | map_label | map_label_position | map_size | mark | mark_width | module | motto | name | native_name | native_name_lang | nearest_city | nearest_town | open | opened | opening | operator | other_info | other_name | owner | parking | paths | plants | public_transit | relief | species | status | terrain | title | type | upright | vegetation | visitation_num | visitation_ref | visitation_year | water | website }}{{#invoke:Check for conflicting parameters|check
| template = [[Template:Infobox park]]
| cat = {{main other|Category:Pages using infobox park with conflicting parameters}}
| opening; opened
}}<noinclude>
{{documentation}}
</noinclude>
khu1j3y32l41rzuhj5v9dxf58qo7e7u
Umhlahlandlelasakhiwo:Multiple image
10
1187
6673
2026-06-07T15:26:39Z
Derek J Moore
148
Added module
6673
wikitext
text/x-wiki
{{#invoke:Multiple image|render}}
mhbfjolvpdsccetk1h3jn96slzgx5vc
Module:Multiple image
828
1188
6674
2026-06-07T15:31:07Z
Derek J Moore
148
Let’s try
6674
Scribunto
text/plain
-- implements [[template:multiple image]]
local p = {}
local autoscaledimages
local nonautoscaledimages
local function isnotempty(s)
return s and s:match( '^%s*(.-)%s*$' ) ~= ''
end
local function removepx(s)
return tostring(s or ''):match('^(.*)[Pp][Xx]%s*$') or s
end
local function getdimensions(s, w, h)
if tonumber(w) and tonumber(h) then
nonautoscaledimages = true
return tonumber(w), tonumber(h)
end
local file = s and mw.title.new('File:' .. mw.uri.decode(mw.ustring.gsub(s,'%|.*$',''), 'WIKI'))
file = file and file.file or {width = 0, height = 0}
w = tonumber(file.width) or 0
h = tonumber(file.height) or 0
autoscaledimages = true
return w, h
end
local function renderImageCell(image, width, height, link, alt, thumbtime, caption, class, textalign, istyle, border, tcolor)
local root = mw.html.create('')
local altstr = ''
local classstr = class and ('|class=' .. class) or ''
local linkstr = link and ('|link=' .. link) or ''
local widthstr = '|' .. tostring(width) .. 'px'
local thumbtimestr = ''
if isnotempty( alt ) then
altstr = '|alt=' .. alt
end
if widthstr == '|-nanpx' then
widthstr = ''
end
if isnotempty( thumbtime ) then
thumbtimestr = '|thumbtime=' .. thumbtime
end
local imagediv = root:tag('div')
imagediv:addClass((border ~= 'infobox') and 'thumbimage' or nil)
imagediv:cssText(istyle)
if( height ) then
imagediv:css('height', tostring(height) .. 'px')
imagediv:css('overflow', 'hidden')
end
imagediv:wikitext('[[file:' .. image .. classstr .. widthstr .. linkstr .. altstr .. thumbtimestr .. ']]')
if isnotempty(caption) then
local captiondiv = root:tag('div')
captiondiv:addClass((border ~= 'infobox') and 'thumbcaption' or nil)
if isnotempty(textalign) then
captiondiv:addClass('text-align-' .. textalign)
end
if( tcolor ~= '' ) then
captiondiv:css('color', tcolor)
end
captiondiv:wikitext(caption)
end
return tostring(root)
end
local function getWidth(w1, w2)
local w
if isnotempty(w1) then
w = tonumber(w1)
elseif isnotempty(w2) then
w = tonumber(w2)
end
return w or 200
end
local function getPerRow(pstr, ic)
-- split string into array using any non-digit as a dilimiter
local pr = mw.text.split(pstr or '', '[^%d][^%d]*')
-- if split failed, assume a single row
if (#pr < 1) then
pr = {tostring(ic)}
end
-- convert the array of strings to an array of numbers,
-- adding any implied/missing numbers at the end of the array
local r = 1
local thisrow = tonumber(pr[1] or ic) or ic
local prownum = {}
while( ic > 0 ) do
prownum[r] = thisrow
ic = ic - thisrow
r = r + 1
-- use the previous if the next is missing and
-- make sure we don't overstep the number of images
thisrow = math.min(tonumber(pr[r] or thisrow) or ic, ic)
end
return prownum
end
local function renderMultipleImages(frame)
local pargs = frame:getParent().args
local args = frame.args
local width = removepx(pargs['width'] or '')
local dir = pargs['direction'] or ''
local border = pargs['border'] or args['border'] or ''
local align = pargs['align'] or args['align'] or (border == 'infobox' and 'center' or '')
local capalign = pargs['caption_align'] or args['caption_align'] or ''
local totalwidth = removepx(pargs['total_width'] or args['total_width'] or '')
local imgstyle = pargs['image_style'] or args['image_style']
local header = pargs['header'] or pargs['title'] or ''
local footer = pargs['footer'] or ''
local imagegap = tonumber(pargs['image_gap'] or '1') or 1
local perrow = nil
local thumbclass = {
["left"] = 'floatleft',
["none"] = 'tnone',
["center"] = 'tnone',
["centre"] = 'tnone',
["right"] = 'floatright'
}
-- find all the nonempty images
local imagenumbers = {}
local imagecount = 0
for k, v in pairs( pargs ) do
local i = tonumber(tostring(k):match( '^%s*image([%d]+)%s*$' ) or '0')
if( i > 0 and isnotempty(v) ) then
table.insert( imagenumbers, i)
imagecount = imagecount + 1
end
end
-- sort the imagenumbers
table.sort(imagenumbers)
-- create an array with the number of images per row
perrow = getPerRow(dir == 'vertical' and '1' or pargs['perrow'], imagecount)
-- compute the number of rows
local rowcount = #perrow
-- store the image widths and compute row widths and maximum row width
local heights = {}
local widths = {}
local widthmax = 0
local widthsum = {}
local k = 0
for r=1,rowcount do
widthsum[r] = 0
for c=1,perrow[r] do
k = k + 1
if( k <= imagecount ) then
local i = imagenumbers[k]
if( isnotempty(totalwidth) ) then
widths[k], heights[k] = getdimensions(pargs['image' .. i], pargs['width' .. i], pargs['height' .. i])
else
widths[k] = getWidth(width, pargs['width' .. i])
end
widthsum[r] = widthsum[r] + widths[k]
end
end
widthmax = math.max(widthmax, widthsum[r])
end
-- make sure the gap is non-negative
if imagegap < 0 then imagegap = 0 end
-- if total_width has been specified, rescale the image widths
if( isnotempty(totalwidth) ) then
totalwidth = tonumber(totalwidth)
widthmax = 0
local k = 0
for r=1,rowcount do
local koffset = k
local tw = totalwidth - (3 + imagegap) * (perrow[r] - 1) - 12
local ar = {}
local arsum = 0
for j=1,perrow[r] do
k = k + 1
if( k<= imagecount ) then
local i = imagenumbers[k]
local h = heights[k] or 0
if (h > 0) then
ar[j] = widths[k]/h
heights[k] = h
else
ar[j] = widths[k]/100
end
arsum = arsum + ar[j]
end
end
local ht = tw/arsum
local ws = 0
k = koffset
for j=1,perrow[r] do
k = k + 1
if( k<= imagecount ) then
local i = imagenumbers[k]
widths[k] = math.floor(ar[j]*ht + 0.5)
ws = ws + widths[k]
if heights[k] then
heights[k] = math.floor(ht)
end
end
end
widthsum[r] = ws
widthmax = math.max(widthmax, widthsum[r])
end
end
-- start building the array of images, if there are images
if( imagecount > 0 ) then
-- compute width of outer div
local bodywidth = 0
for r=1,rowcount do
if( widthmax == widthsum[r] ) then
bodywidth = widthmax + (3 + imagegap) * (perrow[r] - 1) + 12
end
end
-- The body has a min-width of 100, which needs to be taken into account on specific widths
bodywidth = math.max( 100, bodywidth - 8);
local tc = pargs['color'] or pargs['text_color'] or ''
local bg = pargs['bg_color'] or pargs['background_color'] or pargs['background color'] or ''
-- create the array of images
local root = mw.html.create('div')
root:addClass('thumb')
root:addClass('tmulti')
-- root:addClass('tmulti-sandbox')
root:addClass(thumbclass[align] or 'floatright')
if( align == 'center' or align == 'centre' ) then
root:addClass('center')
end
if( tc ~= '' ) then
root:css('color', tc)
end
local div = root:tag('div')
div:addClass((border ~= 'infobox') and 'thumbinner multiimageinner' or 'multiimageinner')
div:css('width', tostring(bodywidth) .. 'px')
:css('max-width', tostring(bodywidth) .. 'px')
if( bg ~= '' ) then
div:css('background-color', bg)
end
if( tc ~= '' ) then
div:css('color', tc)
end
if( border == 'infobox' or border == 'none') then
div:css('border', 'none')
end
-- add the header
if( isnotempty(header) ) then
div:tag('div')
:addClass('trow')
:tag('div')
:addClass('theader')
:css('text-align', pargs['header_align'])
:css('background-color',
(pargs['header_background'] ~= '') and pargs['header_background'] or nil)
:wikitext(header)
end
-- loop through the images
local k = 0
for r=1,rowcount do
local rowdiv = div:tag('div'):addClass('trow');
for j=1,perrow[r] do
k = k + 1
if( k <= imagecount ) then
local imagediv = rowdiv:tag('div')
imagediv:addClass('tsingle')
if bg ~= '' then
imagediv:css('background-color', bg);
end
if imagegap > 1 and k < imagecount then
if dir == 'vertical' then
imagediv:css('margin-bottom', tostring(imagegap) .. 'px')
elseif j < perrow[r] then
imagediv:css('margin-right', tostring(imagegap) .. 'px')
end
end
local i = imagenumbers[k]
local img = pargs['image' .. i]
local w = widths[k]
imagediv:css('width', tostring(2 + w) .. 'px')
:css('max-width', tostring(2 + w) .. 'px')
imagediv:wikitext(renderImageCell(img, w, heights[k],
pargs['link' .. i], pargs['alt' .. i],
pargs['thumbtime' .. i], pargs['caption' .. i], pargs['class' .. i], capalign, imgstyle, border, tc))
end
end
end
-- add the footer
if( isnotempty(footer) ) then
local falign = string.lower(pargs['footer_align'] or args['footer_align'] or '')
falign = (falign == 'centre') and 'center' or falign
div:tag('div')
:addClass('trow')
:css('display', (falign ~= '') and 'flow-root' or 'flex')
:tag('div')
:addClass((border ~= 'infobox') and 'thumbcaption' or nil)
:css('text-align', (falign ~= '') and falign or nil)
:css('background-color',
(pargs['footer_background'] ~= '') and pargs['footer_background'] or nil)
:css('color', (tc ~= '') and tc or nil)
:wikitext(footer)
end
return tostring(root)
end
return ''
end
function p.render( frame )
autoscaledimages = false
nonautoscaledimages = false
local check = require('Module:Check for unknown parameters')._check
local tracking = check({
['unknown'] = frame:expandTemplate{
title = 'main other',
args = {'[[Category:Pages using multiple image with unknown parameters|_VALUE_ ]]'}
},
['preview'] = 'Page using [[Template:Multiple image]] with unknown parameter "_VALUE_"',
['ignoreblank'] = 'y',
regexp1 = 'image%d+',
regexp2 = 'width%d+',
regexp3 = 'height%d+',
regexp4 = 'class%d+',
regexp5 = 'alt%d+',
regexp6 = 'link%d+',
regexp7 = 'thumbtime%d+',
regexp8 = 'caption%d+',
'align', 'direction', 'header_background',
'header_align', 'header', 'width', 'total_width',
'caption_align', 'footer_background', 'footer_align', 'footer',
'perrow', 'title', 'image_gap', 'border', 'image_style',
'color', 'text_color',
'bg_color', 'background_color', 'background color'
}, frame:getParent().args)
return frame:extensionTag {name = 'templatestyles', args = {src = 'Multiple image/styles.css', wrapper = ".tmulti"}}
.. renderMultipleImages( frame )
.. (autoscaledimages and '[[Category:Pages using multiple image with auto scaled images]]' or '')
.. (nonautoscaledimages and '[[Category:Pages using multiple image with manual scaled images]]' or '')
.. tracking
end
p[''] = function( frame ) return p.render( frame:newChild{title = frame:getTitle()} ) end
return p
87jm8kwseugqlivazd2az7lublu53wp
Module:Check for unknown parameters
828
1189
6675
2026-06-07T15:35:36Z
Derek J Moore
148
Created page with "-- 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 -- not on the list require ('strict'); local p = {} local mapframe_params = { 'coord', 'coordinates', 'id', 'qid', 'mapframe', 'mapframe-area_km2', 'mapframe-area_mi2', 'mapframe-caption', 'mapframe-coord', 'mapframe-coordinates', 'mapframe-custom', 'mapframe-frame-coord', 'mapframe-frame-coordinates', 'mapf..."
6675
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
-- not on the list
require ('strict');
local p = {}
local mapframe_params = {
'coord',
'coordinates',
'id',
'qid',
'mapframe',
'mapframe-area_km2',
'mapframe-area_mi2',
'mapframe-caption',
'mapframe-coord',
'mapframe-coordinates',
'mapframe-custom',
'mapframe-frame-coord',
'mapframe-frame-coordinates',
'mapframe-frame-height',
'mapframe-frame-width',
'mapframe-geomask',
'mapframe-geomask-fill',
'mapframe-geomask-fill-opacity',
'mapframe-geomask-stroke-color',
'mapframe-geomask-stroke-colour',
'mapframe-geomask-stroke-width',
'mapframe-height',
'mapframe-id',
'mapframe-length_km',
'mapframe-length_mi',
'mapframe-line',
'mapframe-line-stroke-color',
'mapframe-line-stroke-colour',
'mapframe-marker',
'mapframe-marker-color',
'mapframe-marker-colour',
'mapframe-point',
'mapframe-population',
'mapframe-shape',
'mapframe-shape-fill',
'mapframe-shape-fill-opacity',
'mapframe-shape-stroke-color',
'mapframe-shape-stroke-colour',
'mapframe-stroke-color',
'mapframe-stroke-colour',
'mapframe-stroke-width',
'mapframe-switcher',
'mapframe-type',
'mapframe-width',
'mapframe-wikidata',
'mapframe-zoom'
}
local function trim(s)
return s:match('^%s*(.-)%s*$')
end
local function isnotempty(s)
return s and s:match('%S')
end
local function clean(text)
-- Return text cleaned for display and truncated if too long.
-- Strip markers are replaced with dummy text representing the original wikitext.
local pos, truncated
local function truncate(text)
if truncated then
return ''
end
if mw.ustring.len(text) > 25 then
truncated = true
text = mw.ustring.sub(text, 1, 25) .. '...'
end
return mw.text.nowiki(text)
end
local parts = {}
for before, tag, remainder in text:gmatch('([^\127]*)\127[^\127]*%-(%l+)%-[^\127]*\127()') do
pos = remainder
table.insert(parts, truncate(before) .. '<' .. tag .. '>...</' .. tag .. '>')
end
table.insert(parts, truncate(text:sub(pos or 1)))
return table.concat(parts)
end
function p._check(args, pargs)
if type(args) ~= "table" or type(pargs) ~= "table" then
-- TODO: error handling
return
end
-- create the list of known args, regular expressions, and the return string
local knownargs = {}
if isnotempty(args['mapframe_args']) then
for _, v in ipairs(mapframe_params) do
knownargs[v] = 1
end
end
local regexps = {}
for k, v in pairs(args) do
if type(k) == 'number' then
v = trim(v)
knownargs[v] = 1
elseif k:find('^regexp[1-9][0-9]*$') then
table.insert(regexps, '^' .. v .. '$')
end
end
-- loop over the parent args, and make sure they are on the list
local ignoreblank = isnotempty(args['ignoreblank'])
local showblankpos = isnotempty(args['showblankpositional'])
local values = {}
for k, v in pairs(pargs) do
if type(k) == 'string' and knownargs[k] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(k, regexp) then
knownflag = true
break
end
end
if not knownflag and ( not ignoreblank or isnotempty(v) ) then
table.insert(values, clean(k))
end
elseif type(k) == 'number' and knownargs[tostring(k)] == nil then
local knownflag = false
for _, regexp in ipairs(regexps) do
if mw.ustring.match(tostring(k), regexp) then
knownflag = true
break
end
end
if not knownflag and ( showblankpos or isnotempty(v) ) then
table.insert(values, k .. ' = ' .. clean(v))
end
end
end
-- add results to the output tables
local res = {}
if #values > 0 then
local unknown_text = args['unknown'] or 'Found _VALUE_, '
if mw.getCurrentFrame():preprocess( "{{REVISIONID}}" ) == "" then
local preview_text = args['preview']
if isnotempty(preview_text) then
preview_text = require('Module:If preview')._warning({preview_text})
elseif preview_text == nil then
preview_text = unknown_text
end
unknown_text = preview_text
end
for _, v in pairs(values) do
-- Fix odd bug for | = which gets stripped to the empty string and
-- breaks category links
if v == '' then v = ' ' end
-- avoid error with v = 'example%2' ("invalid capture index")
local r = unknown_text:gsub('_VALUE_', {_VALUE_ = v})
table.insert(res, r)
end
end
return table.concat(res)
end
function p.check(frame)
local args = frame.args
local pargs = frame:getParent().args
return p._check(args, pargs)
end
return p
mf5u017ry3j5wcsi9ctzrqfash3oih5
Umhlahlandlelasakhiwo:Main other
10
1190
6676
2026-06-07T15:38:25Z
Derek J Moore
148
Phew
6676
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|}}}
}}
9qaali5a3s60e5op8c0mnzbf3if9hmf
Asiqongelane:I-Mkhombo Nature Reserve
1
1191
6678
2026-06-07T15:40:45Z
Derek J Moore
148
/* Tried to add an image template */ new section
6678
wikitext
text/x-wiki
== Tried to add an image template ==
{{multiple image
| border = infobox
| perrow = 1/2/2/1
| total_width = 290
| align = center
| caption_align = center
|image1 = 3-banded plover last weekend at Mkhombo Dam (36902155813).jpg
| caption1 =
| image2 =
| caption2 =
|image3 =
| caption3 =
| image4 =
| caption4 =
}} [[Umsebenzisi:Derek J Moore|Derek J Moore]] ([[Umsebenzisi asiqongelane:Derek J Moore|talk]]) 17:40, 7 Nhlangula 2026 (SAST)
ntzu2ttcrj8ninu2wd8vddek711m8iu