Wikipedia
cebwiki
https://ceb.wikipedia.org/wiki/Unang_Panid
MediaWiki 1.47.0-wmf.12
first-letter
Medya
Espesyal
Hisgot
Gumagamit
Hisgot sa Gumagamit
Wikipedia
Hisgot sa Wikipedia
Payl
Hisgot sa Payl
MediaWiki
Hisgot sa MediaWiki
Plantilya
Hisgot sa Plantilya
Tabang
Hisgot sa Tabang
Kategoriya
Hisgot sa Kategoriya
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Bukidnon
0
1499
37024650
37024042
2026-07-24T08:15:57Z
~2026-40891-54
146565
/* Pisikal */
37024650
wikitext
text/x-wiki
{{ihubad}}
{{Infobox lalawigan sa Pilipinas|
infoboxtitle=Lalawigan sa Bukidnon|
sealfile=[[Payl:Ph_seal_bukidnon.png]]|
rehiyon=[[Amihanang Mindanao]] (Region X)|
capital=[[Dakbayan sa Malaybalay]]|
founded=[[Marso 10]], [[1917]]|
pop2000=1,060,265|
pop2000rank=ika-24 sa kinadak-an|
popden2000=128|
popden2000rank=ika-22 sa kinagamay|
areakm2=8,293.8|
arearank=ika-6 sa kinadak-an|
mga dakbayang kina-urbanisado=0|
mga nahisakpang dakbayan=2|
mga lungsod=20|
mga barangay=464|
mga distrito=3|
mga pinulongan=[[Binisaya]], [[Tinagalog]], [[Inilonggo]], [[Binukid]], [[Inilokano]]|
gobernador='''[[Jose Ma. R. Zubiri]]'''|
locatormapfile=[[Image:Ph_locator_map_bukidnon.png]]}}
Ang '''Bukidnon''' usa sa mga lalawigan sa [[Amihanang Mindanao]] sa [[Pilipinas]]. Ang ulohan o kapital niini maoy ang [[Dakbayan sa Malaybalay]].
==Kataw'han ug Kultura
==Heyograpiya==
===Politikal===
Kaluhaan (20) ka lungsod ug duha (2) ka dakbayan ang nahisakpan sa Bukidnon.
<center>
{| class="wikitable sortable" cellpadding=2 cellspacing=2
|- bgcolor=#cccccc
! colspan=1 | [[Dakbayan]]/[[Lungsod]] !! Date of Creation !! Arya(km²) !! Populasyon(</br>[[2000]]) !! Pop. Density</br>(per km²)
|-
|| [[Baungon, Bukidnon|Baungon]] || July 1, 1956 || 175.86 || 26,695 || 152
|-
|| [[Cabanglasan, Bukidnon|Cabanglasan]] || August 13, 1979 || 209.00 || 32,305 || 154
|-
|| [[Damulog, Bukidnon|Damulog]] || August 16, 1971 || 245.66 || 20,332 || 83
|-
|| [[Dangcagan, Bukidnon|Dangcagan]] || August 29, 1961] || 115.15 || 18,857 || 164
|-
|| [[Don Carlos, Bukidnon|Don Carlos]] || June 18, 1966 || 157.02 || 55,495 || 353
|-
|| [[Impasug-Ong, Bukidnon|Impasug-ong]] || Sept. 1, 1914 || 1,071.67 || 31,173 || 29
|-
|| [[Kadingilan, Bukidnon|Kadingilan]] || August 16, 1971 || 172.06 || 25,858 || 150
|-
|| [[Kalilangan, Bukidnon|Kalilangan]] || June 18, 1966 || 153.59 || 30,592 || 199
|-
|| [[Kibawe, Bukidnon|Kibawe]] || July 1, 1956 || 214.35 || 32,955 || 154
|-
|| [[Kitaotao, Bukidnon|Kitaotao]] || June 18, 1966 || 150.74 || 37,733 || 250
|-
|| [[Lantapan, Bukidnon|Lantapan]] || June 18, 1966 || 240.76 || 42,383 || 176
|-
|| [[Libona, Bukidnon|Libona]] || July 1, 1956 || 244.95 || 33,273 || 136
|--style="background:#ccccff"
|| [[Dakbayan sa Malaybalay]] || March 23, 1998 || 984.38 || 123,672 || 126
|-
|| [[Malitbog, Bukidnon|Malitbog]] || June 25,1963 || 260.53 || 19,315 || 74
|-
|| [[Manolo Fortich, Bukidnon|Manolo Fortich]] || June 21, 1957 || 506.64 || 74,252 || 146
|-
|| [[Maramag, Bukidnon|Maramag]] || July 1, 1956 || 351.72 || 75,233 || 214
|-
|| [[Pangantucan, Bukidnon|Pangantucan]] || June 25, 1963 || 343.34 || 43,202 || 126
|-
|| [[Quezon, Bukidnon|Quezon]] || June 18, 1966 || 409.41 || 82,567 || 20
|-
|| [[San Fernando, Bukidnon|San Fernando]] || June 18, 1966 || 638.63 || 40,165 || 63
|-
|| [[Sumilao, Bukidnon|Sumilao]] || July 1, 1956 || 207.49 || 17,958 || 86
|-
|| [[Talakag, Bukidnon|Talakag]] || 1917 || 833.70 || 48,326 || 58
|-
|| [[Dakbayan sa Valencia, Bukidnon|Dakbayan sa Valencia]] || January 12, 2001 || 607.13 || 147,924 || 244
|}
</center>
Gigikanan: ''Provincial Planning & Development Office, Province of Bukidnon'', ''National Statistics Office, 2000 Census of Population'', ''Department of Finance (DOF)''
====Mga Dakbayan====
*[[Dakbayan sa Malaybalay]]
*[[Dakbayan sa Valencia, Bukidnon|Dakbayan sa Valencia]]
====Mga Lungsod====
<table border="0"><tr>
<td valign="top">
*[[Baungon, Bukidnon|Baungon]]
*[[Cabanglasan, Bukidnon|Cabanglasan]]
*[[Damulog, Bukidnon|Damulog]]
*[[Dangcagan, Bukidnon|Dangcagan]]
*[[Don Carlos, Bukidnon|Don Carlos]]
*[[Impasug-Ong, Bukidnon|Impasug-Ong]]
*[[Kadingilan, Bukidnon|Kadingilan]]
*[[Kalilangan, Bukidnon|Kalilangan]]
*[[Kibawe, Bukidnon|Kibawe]]
*[[Kitaotao, Bukidnon|Kitaotao]]
</td><td valign="top">
*[[Lantapan, Bukidnon|Lantapan]]
*[[Libona, Bukidnon|Libona]]
*[[Malitbog, Bukidnon|Malitbog]]
*[[Manolo Fortich, Bukidnon|Manolo Fortich]]
*[[Maramag, Bukidnon|Maramag]]
*[[Pangantucan, Bukidnon|Pangantucan]]
*[[Quezon, Bukidnon|Quezon]]
*[[San Fernando, Bukidnon|San Fernando]]
*[[Sumilao, Bukidnon|Sumilao]]
*[[Talakag, Bukidnon|Talakag]]
</td></tr></table>
===Pisikal===
==Mga Medya==
*HH Radio 1233 kHz [[Valencia, Bukidnon]] (DXHH-AM; ABJ Broadcasting Services)
==Impormasyon sa Gawas==
* [http://www.bukidnon.gov.ph/ Gobyerno sa Probinsya sa Bukidnon]
== Mga Reperensya ==
{{reflist|2}}
{{Bukidnon}}
{{Amihanang Mindanao}}
[[Kategoriya:Mga Lalawigan sa Pilipinas]]
{{pilipinas-saha}}
ch6kd3v69dhaeuzzpoowomhp40a6phc
37024651
37024650
2026-07-24T08:53:10Z
Font8388608
138245
Fix
37024651
wikitext
text/x-wiki
{{ihubad}}
{{Infobox lalawigan sa Pilipinas|
infoboxtitle=Lalawigan sa Bukidnon|
sealfile=[[Payl:Ph_seal_bukidnon.png]]|
rehiyon=[[Amihanang Mindanao]] (Region X)|
capital=[[Dakbayan sa Malaybalay]]|
founded=[[Marso 10]], [[1917]]|
pop2000=1,060,265|
pop2000rank=ika-24 sa kinadak-an|
popden2000=128|
popden2000rank=ika-22 sa kinagamay|
areakm2=8,293.8|
arearank=ika-6 sa kinadak-an|
mga dakbayang kina-urbanisado=0|
mga nahisakpang dakbayan=2|
mga lungsod=20|
mga barangay=464|
mga distrito=3|
mga pinulongan=[[Binisaya]], [[Tinagalog]], [[Inilonggo]], [[Binukid]], [[Inilokano]]|
gobernador='''[[Jose Ma. R. Zubiri]]'''|
locatormapfile=[[Image:Ph_locator_map_bukidnon.png]]}}
Ang '''Bukidnon''' usa sa mga lalawigan sa [[Amihanang Mindanao]] sa [[Pilipinas]]. Ang ulohan o kapital niini maoy ang [[Dakbayan sa Malaybalay]].
==Kataw'han ug Kultura==
==Heyograpiya==
===Politikal===
Kaluhaan (20) ka lungsod ug duha (2) ka dakbayan ang nahisakpan sa Bukidnon.
<center>
{| class="wikitable sortable" cellpadding=2 cellspacing=2
|- bgcolor=#cccccc
! colspan=1 | [[Dakbayan]]/[[Lungsod]] !! Date of Creation !! Arya(km²) !! Populasyon(</br>[[2000]]) !! Pop. Density</br>(per km²)
|-
|| [[Baungon, Bukidnon|Baungon]] || July 1, 1956 || 175.86 || 26,695 || 152
|-
|| [[Cabanglasan, Bukidnon|Cabanglasan]] || August 13, 1979 || 209.00 || 32,305 || 154
|-
|| [[Damulog, Bukidnon|Damulog]] || August 16, 1971 || 245.66 || 20,332 || 83
|-
|| [[Dangcagan, Bukidnon|Dangcagan]] || August 29, 1961] || 115.15 || 18,857 || 164
|-
|| [[Don Carlos, Bukidnon|Don Carlos]] || June 18, 1966 || 157.02 || 55,495 || 353
|-
|| [[Impasug-Ong, Bukidnon|Impasug-ong]] || Sept. 1, 1914 || 1,071.67 || 31,173 || 29
|-
|| [[Kadingilan, Bukidnon|Kadingilan]] || August 16, 1971 || 172.06 || 25,858 || 150
|-
|| [[Kalilangan, Bukidnon|Kalilangan]] || June 18, 1966 || 153.59 || 30,592 || 199
|-
|| [[Kibawe, Bukidnon|Kibawe]] || July 1, 1956 || 214.35 || 32,955 || 154
|-
|| [[Kitaotao, Bukidnon|Kitaotao]] || June 18, 1966 || 150.74 || 37,733 || 250
|-
|| [[Lantapan, Bukidnon|Lantapan]] || June 18, 1966 || 240.76 || 42,383 || 176
|-
|| [[Libona, Bukidnon|Libona]] || July 1, 1956 || 244.95 || 33,273 || 136
|--style="background:#ccccff"
|| [[Dakbayan sa Malaybalay]] || March 23, 1998 || 984.38 || 123,672 || 126
|-
|| [[Malitbog, Bukidnon|Malitbog]] || June 25,1963 || 260.53 || 19,315 || 74
|-
|| [[Manolo Fortich, Bukidnon|Manolo Fortich]] || June 21, 1957 || 506.64 || 74,252 || 146
|-
|| [[Maramag, Bukidnon|Maramag]] || July 1, 1956 || 351.72 || 75,233 || 214
|-
|| [[Pangantucan, Bukidnon|Pangantucan]] || June 25, 1963 || 343.34 || 43,202 || 126
|-
|| [[Quezon, Bukidnon|Quezon]] || June 18, 1966 || 409.41 || 82,567 || 20
|-
|| [[San Fernando, Bukidnon|San Fernando]] || June 18, 1966 || 638.63 || 40,165 || 63
|-
|| [[Sumilao, Bukidnon|Sumilao]] || July 1, 1956 || 207.49 || 17,958 || 86
|-
|| [[Talakag, Bukidnon|Talakag]] || 1917 || 833.70 || 48,326 || 58
|-
|| [[Dakbayan sa Valencia, Bukidnon|Dakbayan sa Valencia]] || January 12, 2001 || 607.13 || 147,924 || 244
|}
</center>
Gigikanan: ''Provincial Planning & Development Office, Province of Bukidnon'', ''National Statistics Office, 2000 Census of Population'', ''Department of Finance (DOF)''
====Mga Dakbayan====
*[[Dakbayan sa Malaybalay]]
*[[Dakbayan sa Valencia, Bukidnon|Dakbayan sa Valencia]]
====Mga Lungsod====
<table border="0"><tr>
<td valign="top">
*[[Baungon, Bukidnon|Baungon]]
*[[Cabanglasan, Bukidnon|Cabanglasan]]
*[[Damulog, Bukidnon|Damulog]]
*[[Dangcagan, Bukidnon|Dangcagan]]
*[[Don Carlos, Bukidnon|Don Carlos]]
*[[Impasug-Ong, Bukidnon|Impasug-Ong]]
*[[Kadingilan, Bukidnon|Kadingilan]]
*[[Kalilangan, Bukidnon|Kalilangan]]
*[[Kibawe, Bukidnon|Kibawe]]
*[[Kitaotao, Bukidnon|Kitaotao]]
</td><td valign="top">
*[[Lantapan, Bukidnon|Lantapan]]
*[[Libona, Bukidnon|Libona]]
*[[Malitbog, Bukidnon|Malitbog]]
*[[Manolo Fortich, Bukidnon|Manolo Fortich]]
*[[Maramag, Bukidnon|Maramag]]
*[[Pangantucan, Bukidnon|Pangantucan]]
*[[Quezon, Bukidnon|Quezon]]
*[[San Fernando, Bukidnon|San Fernando]]
*[[Sumilao, Bukidnon|Sumilao]]
*[[Talakag, Bukidnon|Talakag]]
</td></tr></table>
===Pisikal===
==Mga Medya==
*HH Radio 1233 kHz [[Valencia, Bukidnon]] (DXHH-AM; ABJ Broadcasting Services)
==Impormasyon sa Gawas==
* [http://www.bukidnon.gov.ph/ Gobyerno sa Probinsya sa Bukidnon]
== Mga Reperensya ==
{{reflist|2}}
{{Bukidnon}}
{{Amihanang Mindanao}}
[[Kategoriya:Mga Lalawigan sa Pilipinas]]
{{pilipinas-saha}}
6s9zefc0tijlcpprfs3jb0y32fuumps
Arbus, Pransiya
0
8976
37024645
36047273
2026-07-24T03:51:58Z
Ziv
111351
([[c:GR|GR]]) [[c:COM:Duplicate|Duplicate]]: [[File:Arbus.jpg]] → [[File:Arbus (1024x768).jpg]] Exact or scaled-down duplicate: [[c::File:Arbus (1024x768).jpg]]
37024645
wikitext
text/x-wiki
{{Komyun sa Pransiya
|ngalan=Arbus
|ngalang_pranses=Arbus
|rehiyon=[[Nouvelle-Aquitaine]]
|departamento=[[Pyrénées-Atlantiques]]
|latityud=43° 20' N
|longhitud=0° 30' O
|gihabogon=
|langyab=13,99
|molupyo=965
|tuig=1999
|densidad=69
|insee=64037
|cap=64230
|nahimutangan= }}
Ang '''Arbus''' usa ka [[komyun]] sa [[Pransiya]]. Kini may 965 ka molupyo ug nahimutang sa departamento sa [[Pyrénées-Atlantiques]] sa rehiyon sa [[Nouvelle-Aquitaine]].
== Galeriya sa hulagway ==
<gallery>
Arbus (1024x768).jpg
Arbus_vue_4.JPG
Eglise_d'Arbus_vue_3.JPG
</gallery>
[[Kategoriya:Mga komyun sa departamento sa Pyrénées-Atlantiques]]
[[Kategoriya:Mga komyun sa rehiyon sa Nouvelle-Aquitaine]]
irv9hnyhbavl60gvuwx80rzk1fmc2ix
Nasod nga Swiss
0
35989
37024595
29565663
2026-07-23T19:43:00Z
Fixer88
28406
new key for [[Category:Nasod nga Swiss]]: " " using [[Help:Gadget-HotCat|HotCat]]
37024595
wikitext
text/x-wiki
[[Payl:Coat of Arms of Switzerland (Pantone).svg|right|150px]]
[[Payl:Flag of Switzerland (Pantone).svg|right|200px]]
Nasod ang '''Panaghugpong nga Swiss''' ([[Kinatsila]]: ''Con·fe·de·ra·ción sui·za''; [[Ininggles]]: ''Swiss Confederation''; [[Inaleman]]: ''Schweizerische Eidgenossenschaft''; [[Prinanses]]: ''Confédération suisse''; [[Initalyano]]: ''Confederazione Svizzera'', [[Rinomantse]]: ''Confederaziun svizra''; [[Linatin]]: ''Confoederatio Helvetica'') o '''Helvetiya''' (Kinatsila: ''Sui·za'') nga adunay 7.5 ka milyon nga populasyon sa sentral nga rehiyon sa Kasadpang [[Uropa]]. Kini gitaliwad-an sa [[Alemanya]], [[Pransiya]], [[Italya]], [[Austriya]] ug [[Liechtenstein]]. Daghag-lenggwahe ang Nasod nga Swiss — upat ang opsiyal niyang lenggwahe: [[Inaleman]], [[Prinanses]], [[Initalyano]] ug [[Romansh]]. Ang Helvetiya nabahin ngadto sa 26 ka kanton, unom niini usahay tawagon nga "''katungang-kanton''" tungod kay mas gamay ang ilang representasyon sa Konseho sa mga Estado. Nailhan ang Helvetiya sa iyang kasaysayan sa iyang pagka-way-gidapigan (wala ni maapil o moapil og gubat sugod niadtong 1815) mao nga daghang kapunungang internasyonal, sama sa [[Hiniusang mga Nasod]] o ''United Nations'', nga bisa'g naka-sentro sa [[Dakbayan sa New York|New York]] adunay mga departamento sa Helvetiya. [[Berna|Bern]] ang iyang kasamtangan nga dakbayan nga nahimutangan sa mga ulohang sanga sa iyang kagamhanan apan wala kini ilhang ''de jure'' nga kaulohan kundili ''de facto'' lang sanglit giisip man ang nasod nga panaghugpong sa nagkadaiyang kanton nga iya-iya og kaulohang dakbayan. Dili miyembro sa [[Unyon sa Uropa]] ang Helvetiya.
{{Nasod-saha}}
[[Kategoriya:Nasod nga Swiss| ]]
pzxpy8lhwdh0n3s88dsbpw1597bqr1u
Kategoriya:Mga subdibisyon sa Pransiya
14
37311
37024599
2013496
2026-07-23T19:51:08Z
Fixer88
28406
+[[Kategoriya:Mga subdibisyon sa nasud]]; ±[[Kategoriya:Pransiya]]→[[Kategoriya:Heyograpiya sa Pransiya]] using [[Help:Gadget-HotCat|HotCat]]
37024599
wikitext
text/x-wiki
[[Kategoriya:Heyograpiya sa Pransiya]]
[[Kategoriya:Mga subdibisyon sa nasud|Pransiya]]
trahulo614zk00ohunzps8ijz2v7ozs
Kategoriya:Mga subdibisyon sa Pilipinas
14
37671
37024582
34840698
2026-07-23T19:17:51Z
Fixer88
28406
new key for [[Category:Mga subdibisyon sa nasud]]: "Pilipinas" using [[Help:Gadget-HotCat|HotCat]]
37024582
wikitext
text/x-wiki
{{Commons|Category:Subdivisions of the Philippines|Mga subdibisyon sa Pilipinas}}
[[category:Pilipinas|Subdibisyon]]
[[Kategoriya:Mga subdibisyon sa nasud|Pilipinas]]
8boal72v2jtrrgofghq1e2xt31jbcis
Kategoriya:Anime
14
38946
37024556
37020269
2026-07-23T13:45:07Z
Shrekiolous
144427
added [[Category:Haponng karton nga pelikula]] using [[Help:Gadget-HotCat|HotCat]]
37024556
wikitext
text/x-wiki
{{Commons|Category:Anime|Anime}}
{{catmore}}
[[Kategoriya:Kultura sa Hapon]]
[[Kategoriya:Animasyon]]
[[Kategoriya:Haponng karton nga pelikula]]
n4udc027zev21y3tr2omdq7ornw7lbz
37024558
37024556
2026-07-23T13:46:57Z
Shrekiolous
144427
added [[Category:Haponng karton nga seryeng pantelebisyon]] using [[Help:Gadget-HotCat|HotCat]]
37024558
wikitext
text/x-wiki
{{Commons|Category:Anime|Anime}}
{{catmore}}
[[Kategoriya:Animasyon]]
[[Kategoriya:Kultura sa Hapon]]
[[Kategoriya:Haponng karton nga pelikula]]
[[Kategoriya:Haponng karton nga seryeng pantelebisyon]]
pvrw64oi72bj4tp8m2gbxtmx7nuv9oc
Kategoriya:Mga subdibisyon sa Italya
14
44727
37024581
34840695
2026-07-23T19:17:21Z
Fixer88
28406
new key for [[Category:Mga subdibisyon sa nasud]]: "Italya" using [[Help:Gadget-HotCat|HotCat]]
37024581
wikitext
text/x-wiki
{{Commons|Category:Subdivisions of Italy|Mga subdibisyon sa Italya}}
[[Kategoriya:Italya|Subdibisyon]]
[[Kategoriya:Mga subdibisyon sa nasud|Italya]]
phhgotzyzpxqij8chqjs3kpoqs7jb5a
Inglatera
0
56845
37024628
32568516
2026-07-23T20:23:02Z
Fixer88
28406
+[[Kategoriya:Mga subdibisyon sa Hiniusang Gingharian]]; +[[Kategoriya:Inglatera]] using [[Help:Gadget-HotCat|HotCat]]
37024628
wikitext
text/x-wiki
[[Payl:Flag_of_England.svg|thumb|right|]]
Aipak-nasd ang '''Inglatera''' kun '''England''' sa [[Hiniusang Gingharian]] (''United Kingdom''). May kayutaanong utlanan kini sa [[Eskotya]] (''Scotland'') sa amihanan ug sa [[Gales]] (''Wales'') sa kasadpan; [[Dagat Irlandanhon]] sa norweste, [[Dagat Seltiko|Dagat Keltinhon]] sa surweste ug sa [[Dagat Amihanan]] sa sidlakan ug ang [[Kanal La Mancha]] sa habagatan.
[[Kategoriya:Inglatera| ]]
[[Kategoriya:Hiniusang Gingharian]]
[[Kategoriya:Mga subdibisyon sa Hiniusang Gingharian]]
trrdk3ddhwhnmzgn2r69gf2ixzz1u0q
Tokyo
0
2794204
37024564
23455227
2026-07-23T13:57:46Z
Fixer88
28406
/* Ang mga gi basihan niini */
37024564
wikitext
text/x-wiki
{{geobox
| 1 = Settlement
<!-- *** Header *** -->
| name = Tokyo
| native_name = 東京
| other_name = 东京
| category = Ulohang dakbayan
| etymology =
| official_name = 東京都
| motto =
| nickname =
<!-- *** Image *** -->
| image =
| image_caption =
<!-- *** Symbols *** -->
| flag =
| symbol =
| symbol_type =
<!-- *** Admin *** -->
| country = {{flag|Hapon}}
| country_flag =
| state = [[Tōkyō-to]]
| state_type = Prepektura
| region = [[Shinjuku-ku]]
| region_type = Distrito
| district =
| district_type =
| municipality =
| municipality_type =
<!-- *** Associated with *** -->
| part =
| landmark =
| river =
<!-- *** Location *** -->
| location =
| elevation = 44
| lat_d = 35.6895
| lat_m =
| lat_s =
| lat_NS =
| long_d = 139.69171
| long_m =
| long_s =
| long_EW =
| highest =
| highest_note =
| highest_elevation =
| highest_elevation_note =
| lowest =
| lowest_note =
| lowest_elevation =
| lowest_elevation_note =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| area =
| area_decimals =
| area_land =
| area_land_decimals =
| area_water =
| area_water_decimals =
| area_urban =
| area_urban_decimals =
| area_metro =
| area_metro_decimals =
| area_municipal =
| area_municipal_decimals =
<!-- *** Population *** -->
| population = 8336599
| population_date = 2016-06-22
| population_note = <ref name = "gn1850147"/>
| population_urban =
| population_urban_date =
| population_urban_note =
| population_metro =
| population_metro_date =
| population_metro_note =
| population_municipal =
| population_municipal_date =
| population_municipal_note =
| population_density =
| population_density_note =
| population_urban_density =
| population_urban_density_note =
| population_metro_density =
| population_metro_density_note =
| population_municipal_density =
| population_municipal_density_note =
<!-- *** People *** -->
| population1 =
| population1_type =
| population2 =
| population2_type =
| population3 =
| population3_type =
<!-- *** History and politics *** -->
| established =
| established_type =
| date =
| date_type =
| government =
| government_location =
| government_region =
| government_state =
| mayor =
| mayor_party =
| leader =
| leader_type =
<!-- *** Codes *** -->
| timezone = [[Japan Standard Time|JST]]
| utc_offset = +9
| timezone_DST =
| utc_offset_DST =
| postal_code =
| postal_code_type =
| area_code =
| area_code_type =
| code =
| code_type =
| code1 =
| code1_type =
<!-- *** Free *** -->
| free = TYO
| free_type = [[IATA]]
| free1 =
| free1_type =
<!-- *** Maps *** -->
| map =
| map_caption =
| map_locator =
| map_locator_x =
| map_locator_y =
<!-- *** Website *** -->
| website =
<!-- *** Notes *** -->
| footnotes =
| timezone_label = Asia/Tokyo
| geonames = 1850147
}}
Ang '''Tokyo''' ([[Hinapones]]: 東京 ''Tōkyō'') sa usa prepektura sa [[Hapon]] mga iyang [[kapital]] ka kapopud-ang [[nasod]] sa [[Sidlakang Asya]].
Ang Tokyo nahimutang sa distrito sa <!--ADM2-->[[Shinjuku-ku]] ug prepektura sa <!--ADM1-->[[Tōkyō-to]], sa habagatan-sidlakang bahin sa nasod. {{formatnum:44}} metros ibabaw sa dagat kahaboga ang nahimutangan sa Tokyo<ref name = "gn1850147"/>, ug adunay <!--pop-->{{formatnum:8336599}} ka molupyo.<ref name = "gn1850147"/>
Ang yuta palibot sa Tokyo kay patag.{{efn|group=saysay|Kalkulado gikan sa pakigbingkil sa tanan nga gitas-on data (DEM 3") gikan sa Viewfinder Panoramas, sa sulod sa 10 ka kilometro radius.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kinahabogang dapit sa palibot dunay gihabogon nga {{formatnum:146}} ka metro ug {{formatnum:20.0 }} km sa kasadpan sa Tokyo.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Dunay mga {{formatnum:8650}} ka tawo kada kilometro kwadrado sa palibot sa Tokyo may kaayo hilabihan populasyon.<ref name = "nasapop"/> Tokyo ang kinadak-ang lungsod sa maong dapit. Hapit nalukop sa [[kabalayan]] ang palibot sa Tokyo.<ref name = "nasalandcover"/> Sa rehiyon palibot sa Tokyo, mga kanal talagsaon komon.{{efn|group=saysay|Mas sulod sa 20 ka kilometro gilay-on itandi sa average nga densidad sa Yuta, sumala sa GeoNames.<ref name = "gn1850147"/>}}
Ang klima [[umogon]] ug [[subtropikal]].<ref name = "koppen"/> Ang kasarangang giiniton {{formatnum:17}} [[°C]]. Ang kinainitan nga bulan Agosto, sa {{formatnum:26}} [[°C]], ug ang kinabugnawan Enero, sa {{formatnum:7}} °C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1861}} milimetro matag tuig. Ang kinabasaan nga bulan Oktubre, sa {{formatnum:304}} milimetro nga ulan, ug ang kinaugahan Enero, sa {{formatnum:69}} milimetro.<ref name = "nasarain"/>
{|
|-
|{{climate chart
| Tokyo
| 4| 10| 69
| 2| 12| 132
| 6| 16| 93
| 9| 21| 175
| 15| 28| 179
| 16| 28| 297
| 21| 29| 140
| 25| 27| 85
| 19| 29| 186
| 14| 22| 304
| 11| 17| 104
| 6| 12| 98
|float=left
|clear=left
|source = <ref name = "nasa"/>
}}
|}
{{Location map|Japan |float = right |width=300 | caption = Nahimutangan sa Tokyo sa Hapon. | label = Tokyo|position=right|background=white|lat=35.6895|long=139.69171}}
== Saysay ==
<references group="saysay"/>
== Ang mga gi basihan niini ==
<references>
<ref name = "gn1850147">[{{Geonameslink|gnid=1850147|name=tokyo}} Tokyo] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2016-06-22; database download sa 2017-02-07</ref>
<ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref>
<ref name = "nasapop">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=SEDAC_POP|title= NASA Earth Observations: Population Density|access-date = 30 Enero 2016 |publisher= NASA/SEDAC}}</ref>
<ref name = "nasalandcover">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=MCD12C1_T1|title= NASA Earth Observations: Land Cover Classification|access-date = 30 Enero 2016 |publisher= NASA/MODIS}}</ref>
<ref name = "koppen">{{cite journal |last= Peel|first= M C|last2= Finlayson|first2= B L|date= |title= Updated world map of the Köppen-Geiger climate classification| url = http://www.hydrol-earth-syst-sci.net/11/1633/2007/hess-11-1633-2007.html |journal= Hydrology and Earth System Sciences|publisher= |volume= 11|issue= |pages= 1633-1644|doi= 10.5194/hess-11-1633-2007|access-date=30 Enero 2016}}</ref>
<ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref>
<ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref>
</references>
[[Kategoriya:Tokyo| ]]
[[Kategoriya:Mga lungsod sa Tōkyō-to]]
[[Kategoriya:Mga lungsod sa Hapon nga mas dako pa kay sa 1,000,000 ka mga tawo]]
5e1mw8u076wwncalsdo2uh9t0ca3jxf
Minecraft
0
2796421
37024575
34922879
2026-07-23T15:42:40Z
Shrekiolous
144427
added [[Category:2011 nga mga dula]] using [[Help:Gadget-HotCat|HotCat]]
37024575
wikitext
text/x-wiki
Ang '''Minecraft''' mao ang usa ka duwa nga blokeng paguba ug pabutangan. Ang kini usa ka dagitabnong dula nga makinaugalingon nga gimugna sa Siniwedish programmer nga si Markus "Notch" Persson ug sa ulahi ug gipatik sa Swedish nga kompanya Mojang sukad [[2009]]. Ang mamugnaon ug sa pagtukod sa mga bahin sa Minecraft motugot sa mga magdudula sa pagtukod konstruksyon sa grano cubes sa usa ka 3D procedurally namugna nga kalibutan. Uban nga mga kalihokan sa duwa naglakip sa exploration, sa pagpundok sa mga kapanguhaan, paghimo, ug combat. Multiple gameplay paagi anaa na, lakip ang survival paagi diin ang mga magdudula kinahanglan sa pagbaton sa mga kapanguhaan sa pagtukod sa kalibutan ug sa pagpadayon sa panglawas, usa ka creative nga paagi diin ang mga players nga adunay walay kutub nga mga kapanguhaan sa pagtukod ug sa abilidad sa molupad, ug sa usa ka adventure mode diin ang mga players play batasan maps nga gimugna sa sa uban nga mga players. Minecraft story mode.
{{dagitabnong-dula-saha}}
[[Kategoriya:Mga dagitabnong dula]]
[[Kategoriya:2011 nga mga dula]]
7klr8qwr74udl1ru70cy6joz2ycp5z4
Kategoriya:Heyograpiya sa Barheyn
14
2810512
37024583
24726755
2026-07-23T19:18:25Z
Fixer88
28406
added [[Category:Heyograpiya sa Asya]] using [[Help:Gadget-HotCat|HotCat]]
37024583
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Barheyn]]
[[Kategoriya:Barheyn]]
[[Kategoriya:Heyograpiya sa Asya|Barheyn]]
e5a86jm1xqryms4v34w1gfs2uhs26qn
Kategoriya:Heyograpiya sa Amihanang Makedoniya
14
2817920
37024600
34797276
2026-07-23T19:52:59Z
Fixer88
28406
new key for [[Category:Heyograpiya sa nasud]]: "Amihanang Makedoniya" using [[Help:Gadget-HotCat|HotCat]]
37024600
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Amihanang Makedoniya]]
[[Kategoriya:Amihanang Makedoniya]]
3o9v9f622vbau0l3o0klzlg8n3ddczr
37024609
37024600
2026-07-23T20:03:15Z
Fixer88
28406
added [[Category:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024609
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Amihanang Makedoniya]]
[[Kategoriya:Amihanang Makedoniya]]
[[Kategoriya:Heyograpiya sa Uropa|Amihanang Makedoniya]]
d5cifvbqrrsicp0xy8gahl7hfg7m1rs
Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo
14
2817969
37024601
34794856
2026-07-23T19:53:31Z
Fixer88
28406
Fixer88 moved page [[Kategoriya:Heyograpiya sa Makedoniya sa munisipyo]] to [[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
34794856
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya]]
e6lxcvopm8k2v18frsip94f3u0gt3ys
Kategoriya:Heyograpiya sa Demir Hisar
14
2817976
37024619
25650823
2026-07-23T20:11:54Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024619
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
tgmgtpismw5cdb5xbtncxr6gtxp5kio
Kategoriya:Heyograpiya sa Dolneni
14
2817992
37024623
25650830
2026-07-23T20:16:24Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024623
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
tgmgtpismw5cdb5xbtncxr6gtxp5kio
Kategoriya:Heyograpiya sa Demir Kapija
14
2818120
37024621
25650827
2026-07-23T20:13:51Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024621
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
tgmgtpismw5cdb5xbtncxr6gtxp5kio
Kategoriya:Heyograpiya sa Bogdanci
14
2818707
37024612
25650808
2026-07-23T20:06:29Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024612
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
tgmgtpismw5cdb5xbtncxr6gtxp5kio
Kategoriya:Heyograpiya sa Ilinden
14
2820385
37024636
25650837
2026-07-23T20:29:50Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024636
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
tgmgtpismw5cdb5xbtncxr6gtxp5kio
Kategoriya:Amerikanong pelikula
14
2843066
37024551
27714173
2026-07-23T13:38:21Z
Shrekiolous
144427
±[[Kategoriya:Tinipong Bansa]]→[[Kategoriya:Kultura sa Hiniusang mga Estado]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Mga pelikula sa nasud]] using [[Help:Gadget-HotCat|HotCat]]
37024551
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Hiniusang mga Estado]]
[[Kategoriya:Mga pelikula sa nasud]]
eoq0r1bqc9v7mzdhx42lrtar5k61p0v
37024553
37024551
2026-07-23T13:40:04Z
Shrekiolous
144427
new key for [[Category:Kultura sa Hiniusang mga Estado]]: "Pelikula" using [[Help:Gadget-HotCat|HotCat]]
37024553
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Hiniusang mga Estado|Pelikula]]
[[Kategoriya:Mga pelikula sa nasud]]
thz2bv0efj5o5evdhak1g3pkzc50r2n
Kategoriya:Heyograpiya sa Demir Hisar (munisipyo)
14
2845548
37024620
34862777
2026-07-23T20:13:06Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024620
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Demir Hisar]]
[[Kategoriya:Demir Hisar (munisipyo)]]
in6nygbpduekojrcg64nzsal1vp69o9
Kategoriya:Heyograpiya sa Dolneni (munisipyo sa Makedoniya)
14
2845555
37024624
34862779
2026-07-23T20:17:26Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024624
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Dolneni]]
[[Kategoriya:Dolneni (munisipyo sa Makedoniya)]]
lpizkjul995bil0m0yx8x14jzn81drq
Kategoriya:Heyograpiya sa Gostivar (munisipyo)
14
2845587
37024634
34862783
2026-07-23T20:28:31Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024634
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Gostivar]]
[[Kategoriya:Gostivar (munisipyo)]]
9135esxa1rxhk8kt6i0oc22wndak68u
Kategoriya:Heyograpiya sa Demir Kapija (munisipyo)
14
2845616
37024622
34862778
2026-07-23T20:14:33Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024622
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Demir Kapija]]
[[Kategoriya:Demir Kapija (munisipyo)]]
p7y5ina5vq3u49rwxzwo7fp51lowc45
Kategoriya:Heyograpiya sa Bitola (munisipyo)
14
2845626
37024605
34862769
2026-07-23T19:58:53Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024605
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Bitola]]
[[Kategoriya:Bitola (munisipyo)]]
ms39spqk5i17kzl6uz0g0wbvxlttva1
Kategoriya:Heyograpiya sa Brvenica (munisipyo)
14
2845653
37024615
34862773
2026-07-23T20:08:37Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024615
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Brvenica]]
[[Kategoriya:Brvenica (munisipyo)]]
e5tlj0vh7ova5kvejascmmjs8z0gl2o
Kategoriya:Heyograpiya sa Gradsko (munisipyo)
14
2845663
37024635
34862784
2026-07-23T20:29:00Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024635
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Gradsko]]
[[Kategoriya:Gradsko (munisipyo)]]
qj4yj0m94re3g75dn8ogat72frp33l2
Kategoriya:Heyograpiya sa Debarca (munisipyo sa Makedoniya)
14
2845710
37024618
34862776
2026-07-23T20:11:30Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024618
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Debarca]]
[[Kategoriya:Debarca (munisipyo sa Makedoniya)]]
f5briz3i8k694718o0lz14uvr08quq9
Kategoriya:Heyograpiya sa Bogovinje (munisipyo)
14
2845757
37024613
34862771
2026-07-23T20:07:02Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024613
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Bogovinje]]
[[Kategoriya:Bogovinje (munisipyo)]]
o7atq2qicyl6f7rhrumgspj2uyc3dun
Kategoriya:Heyograpiya sa Gevgelija (munisipyo)
14
2845865
37024626
34862782
2026-07-23T20:20:36Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024626
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Gevgelija]]
[[Kategoriya:Gevgelija (munisipyo)]]
szxmmz7khwlq1pnyzu57oqx9ppfi0f0
Kategoriya:Heyograpiya sa Bogdanci (munisipyo)
14
2845867
37024608
34862770
2026-07-23T20:00:59Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024608
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Bogdanci]]
[[Kategoriya:Bogdanci (munisipyo)]]
lsooci25o6snd0q0nr276dq8uwru8hp
Kategoriya:Heyograpiya sa Bosilovo (munisipyo)
14
2845967
37024614
34862772
2026-07-23T20:07:49Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024614
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Bosilovo]]
[[Kategoriya:Bosilovo (munisipyo)]]
sgz2gvnn7flpapo70yimvikxxstthuc
Kategoriya:Heyograpiya sa Berovo (munisipyo)
14
2845995
37024604
34862768
2026-07-23T19:58:13Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024604
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Berovo]]
[[Kategoriya:Berovo (munisipyo)]]
8647x9a8nu4js7zh4k3okqglsb4ebtw
Kategoriya:Heyograpiya sa Aerodrom (munisipyo sa Makedoniya)
14
2846270
37024603
34862767
2026-07-23T19:54:23Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024603
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Aerodrom]]
[[Kategoriya:Aerodrom (munisipyo sa Makedoniya)]]
frrkokzxpa0lzo037iiebi013zg0w4n
Kategoriya:Heyograpiya sa Ilinden (munisipyo)
14
2846272
37024637
34862785
2026-07-23T20:30:35Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024637
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Ilinden]]
[[Kategoriya:Ilinden (munisipyo)]]
2lgowquku9oiak9tgqix1jb98v1uclh
Kategoriya:Heyograpiya sa Debar (munisipyo)
14
2846473
37024617
34862775
2026-07-23T20:10:51Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024617
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Debar]]
[[Kategoriya:Debar (munisipyo)]]
s4fgn646wrd5gir7b7wtksrb14t27f9
Kategoriya:Heyograpiya sa Drugovo (munisipyo sa Makedoniya)
14
2846612
37024625
34862780
2026-07-23T20:18:12Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024625
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Drugovo]]
[[Kategoriya:Drugovo (munisipyo sa Makedoniya)]]
tfzfusnvs0l68ec8grcuo9u6cx00lmy
Kategoriya:Heyograpiya sa Butel (munisipyo)
14
2847017
37024616
34862774
2026-07-23T20:10:17Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024616
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Butel]]
[[Kategoriya:Butel (munisipyo)]]
qhjza8bh8n8mzpencqmq2gjuckxp75z
Kategoriya:Heyograpiya sa Gazi Baba (munisipyo sa Makedoniya)
14
2847499
37024606
34862781
2026-07-23T20:00:02Z
Fixer88
28406
removed [[Category:Heyograpiya sa Makedoniya sa munisipyo]]; added [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]] using [[Help:Gadget-HotCat|HotCat]]
37024606
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
[[Kategoriya:Gazi Baba (munisipyo sa Makedoniya)]]
c41rk5f90birbcyobswepyja9y5uj8i
37024607
37024606
2026-07-23T20:00:12Z
Fixer88
28406
new key for [[Category:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]: "Gazi Baba" using [[Help:Gadget-HotCat|HotCat]]
37024607
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo|Gazi Baba]]
[[Kategoriya:Gazi Baba (munisipyo sa Makedoniya)]]
0507zdfx89b2ukeckkax1ckx3zhwuc7
Kategoriya:Heyograpiya sa Nasod nga Afghano
14
3387920
37024585
25842606
2026-07-23T19:25:58Z
Fixer88
28406
+[[Kategoriya:Heyograpiya sa nasud]]; +[[Kategoriya:Heyograpiya sa Asya]] using [[Help:Gadget-HotCat|HotCat]]
37024585
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Nasod nga Afghano]]
[[Kategoriya:Heyograpiya sa nasud|Nasod nga Afghano]]
[[Kategoriya:Heyograpiya sa Asya|Nasod nga Afghano]]
iv6m0eq3tvf3gyh7eczj2l7kceb9yyf
Kategoriya:Heyograpiya sa Alemanya
14
3782732
37024598
7308025
2026-07-23T19:48:06Z
Fixer88
28406
added [[Category:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024598
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Alemanya]]
[[Kategoriya:Alemanya]]
[[Kategoriya:Heyograpiya sa Uropa|Alemanya]]
evkzbxccandxlr9wh2tb49w7kgu9mwv
Kategoriya:Heyograpiya sa Nasod nga Swiss
14
4061997
37024594
27671785
2026-07-23T19:41:52Z
Fixer88
28406
added [[Category:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024594
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Nasod nga Swiss]]
[[Kategoriya:Nasod nga Swiss]]
[[Kategoriya:Heyograpiya sa Uropa|Nasod nga Swiss]]
s8yykzsunvcrvj0cwehefgafryonr57
Kategoriya:Heyograpiya sa Nasod nga Czech
14
4198423
37024586
16753959
2026-07-23T19:27:09Z
Fixer88
28406
new key for [[Category:Heyograpiya sa nasud]]: "Nasod nga Czech" using [[Help:Gadget-HotCat|HotCat]]
37024586
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Nasod nga Czech]]
[[Kategoriya:Nasod nga Czech]]
lfsv8brxc23peqdfsa4fh546xv9i8uu
37024588
37024586
2026-07-23T19:28:50Z
Fixer88
28406
added [[Category:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024588
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Nasod nga Czech]]
[[Kategoriya:Nasod nga Czech]]
[[Kategoriya:Heyograpiya sa Uropa|Nasod nga Czech]]
r0cxyrrqnxe6n05vu7jzj3wapzjlwzz
Kategoriya:Heyograpiya sa Comunitat Autònoma de les Illes Balears
14
4278688
37024590
8289783
2026-07-23T19:35:58Z
Fixer88
28406
added [[Category:Balearic Islands]] using [[Help:Gadget-HotCat|HotCat]]
37024590
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Espanya sa rehiyon]]
[[Kategoriya:Balearic Islands]]
j8ct3c3dqk42brx8v8vyv5n1hqxzsfx
Balearic Islands
0
4288412
37024589
34251940
2026-07-23T19:35:07Z
Fixer88
28406
/* Ang mga gi basihan niini */
37024589
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Espanya|date=2016-05}}
{{geobox
| 1 = Island
<!-- *** Header *** -->
| name = Balearic Islands
| native_name = Islas Baleares
| other_name = Ballerics
| category = Kapuloan
| etymology =
| nickname =
<!-- *** Image *** -->
| image =
| image_caption =
<!-- *** Admin *** -->
| country = {{flag|Espanya}}
| country_flag = true
| state = [[Comunitat Autònoma de les Illes Balears]]
| state_type = Rehiyon
| region =
| region_type =
| district =
| district_type =
| municipality =
| municipality_type =
<!-- *** Associated with *** -->
| parent =
| range =
| range_type = Kapuloan
| border =
| part =
| city =
| capital =
| landmark =
| river =
<!-- *** Location *** -->
| location =
| lat_d = 39.18969
| lat_m =
| lat_s =
| lat_NS =
| long_d = 2.52136
| long_m =
| long_s =
| long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| height =
| area =
<!-- *** Population *** -->
| population =
| population_date =
| population_note =
| population_density =
| population_density_note =
<!-- *** Access *** -->
| public =
| access =
<!-- *** Codes *** -->
| timezone =
| utc_offset =
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Notes *** -->
| footnotes =
| other_name1 = Illes Balears
| other_name2 = Balear Uharteak
| other_name3 = Iles Balèares
| other_name4 = Illas Baleares - Illes Balears
| other_name5 = Illas Balearas
| geonames = 2521384
}}
<!--T.ISLS-->[[Kapuloan]] ang '''Balearic Islands''' ([[Kinatsila]]: '''Islas Baleares''', [[Basque]]: '''Balear Uharteak''', [[Galician]]: '''Illas Baleares - Illes Balears''', [[Inutsitan]]: '''Illas Balearas''') sa [[Espanya]].<ref name = "gn2521384"/> Nahimutang ni sa rehiyon sa <!--ADM1-->[[Comunitat Autònoma de les Illes Balears]], sa sidlakang bahin sa nasod, {{formatnum:600}} km sa sidlakan sa [[Madrid (ulohang dakbayan)|Madrid]] ang ulohan sa nasod.
{{Location map|Spain |float = right |width=300 | caption = Nahimutangan sa Balearic Islands sa Espanya. | label = Balearic Islands|position=left|background=white|lat=39.18969|long=2.52136}}
== Ang mga gi basihan niini ==
<references>
<ref name = "gn2521384">[{{Geonameslink|gnid=2521384|name=balearic%20islands}} Balearic Islands] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2015-12-04; database download sa 2016-04-24</ref>
</references>
[[Kagegoriya:Balearic Islands| ]]
[[Kategoriya:Kapuloan sa Comunitat Autònoma de les Illes Balears]]
ct43mw6990dahv84pa04z90fokkklfy
37024592
37024589
2026-07-23T19:39:42Z
Fixer88
28406
giusab nga teksto
37024592
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Espanya|date=2016-05}}
{{geobox
| 1 = Island
<!-- *** Header *** -->
| name = Balearic Islands
| native_name = Islas Baleares
| other_name = Ballerics
| category = Kapuloan
| etymology =
| nickname =
<!-- *** Image *** -->
| image =
| image_caption =
<!-- *** Admin *** -->
| country = {{flag|Espanya}}
| country_flag = true
| state = [[Comunitat Autònoma de les Illes Balears]]
| state_type = Rehiyon
| region =
| region_type =
| district =
| district_type =
| municipality =
| municipality_type =
<!-- *** Associated with *** -->
| parent =
| range =
| range_type = Kapuloan
| border =
| part =
| city =
| capital =
| landmark =
| river =
<!-- *** Location *** -->
| location =
| lat_d = 39.18969
| lat_m =
| lat_s =
| lat_NS =
| long_d = 2.52136
| long_m =
| long_s =
| long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| height =
| area =
<!-- *** Population *** -->
| population =
| population_date =
| population_note =
| population_density =
| population_density_note =
<!-- *** Access *** -->
| public =
| access =
<!-- *** Codes *** -->
| timezone =
| utc_offset =
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Notes *** -->
| footnotes =
| other_name1 = Illes Balears
| other_name2 = Balear Uharteak
| other_name3 = Iles Balèares
| other_name4 = Illas Baleares - Illes Balears
| other_name5 = Illas Balearas
| geonames = 2521384
}}
<!--T.ISLS-->[[Kapuloan]] ang '''Balearic Islands''' ([[Kinatsila]]: '''Islas Baleares''', [[Basque]]: '''Balear Uharteak''', [[Galician]]: '''Illas Baleares - Illes Balears''', [[Inutsitan]]: '''Illas Balearas''') sa [[Espanya]].<ref name = "gn2521384"/> Nahimutang ni sa rehiyon sa <!--ADM1-->[[Comunitat Autònoma de les Illes Balears]], sa sidlakang bahin sa nasod, {{formatnum:600}} km sa sidlakan sa [[Madrid (ulohang dakbayan)|Madrid]] ang ulohan sa nasod.
{{Location map|Spain |float = right |width=300 | caption = Nahimutangan sa Balearic Islands sa Espanya. | label = Balearic Islands|position=left|background=white|lat=39.18969|long=2.52136}}
== Ang mga gi basihan niini ==
<references>
<ref name = "gn2521384">[{{Geonameslink|gnid=2521384|name=balearic%20islands}} Balearic Islands] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2015-12-04; database download sa 2016-04-24</ref>
</references>
[[Kagegoriya:Balearic Islands| ]]
[[Kategoriya:Kapuloan sa Comunitat Autònoma de les Illes Balears]]
5xucwnsvrldsf802i9gtgz7z7kstr1y
37024610
37024592
2026-07-23T20:05:23Z
Fixer88
28406
removed [[Category:Kapuloan sa Comunitat Autònoma de les Illes Balears]]; added [[Category:Mga subdibisyon sa Espanya]] using [[Help:Gadget-HotCat|HotCat]]
37024610
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Espanya|date=2016-05}}
{{geobox
| 1 = Island
<!-- *** Header *** -->
| name = Balearic Islands
| native_name = Islas Baleares
| other_name = Ballerics
| category = Kapuloan
| etymology =
| nickname =
<!-- *** Image *** -->
| image =
| image_caption =
<!-- *** Admin *** -->
| country = {{flag|Espanya}}
| country_flag = true
| state = [[Comunitat Autònoma de les Illes Balears]]
| state_type = Rehiyon
| region =
| region_type =
| district =
| district_type =
| municipality =
| municipality_type =
<!-- *** Associated with *** -->
| parent =
| range =
| range_type = Kapuloan
| border =
| part =
| city =
| capital =
| landmark =
| river =
<!-- *** Location *** -->
| location =
| lat_d = 39.18969
| lat_m =
| lat_s =
| lat_NS =
| long_d = 2.52136
| long_m =
| long_s =
| long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| height =
| area =
<!-- *** Population *** -->
| population =
| population_date =
| population_note =
| population_density =
| population_density_note =
<!-- *** Access *** -->
| public =
| access =
<!-- *** Codes *** -->
| timezone =
| utc_offset =
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Notes *** -->
| footnotes =
| other_name1 = Illes Balears
| other_name2 = Balear Uharteak
| other_name3 = Iles Balèares
| other_name4 = Illas Baleares - Illes Balears
| other_name5 = Illas Balearas
| geonames = 2521384
}}
<!--T.ISLS-->[[Kapuloan]] ang '''Balearic Islands''' ([[Kinatsila]]: '''Islas Baleares''', [[Basque]]: '''Balear Uharteak''', [[Galician]]: '''Illas Baleares - Illes Balears''', [[Inutsitan]]: '''Illas Balearas''') sa [[Espanya]].<ref name = "gn2521384"/> Nahimutang ni sa rehiyon sa <!--ADM1-->[[Comunitat Autònoma de les Illes Balears]], sa sidlakang bahin sa nasod, {{formatnum:600}} km sa sidlakan sa [[Madrid (ulohang dakbayan)|Madrid]] ang ulohan sa nasod.
{{Location map|Spain |float = right |width=300 | caption = Nahimutangan sa Balearic Islands sa Espanya. | label = Balearic Islands|position=left|background=white|lat=39.18969|long=2.52136}}
== Ang mga gi basihan niini ==
<references>
<ref name = "gn2521384">[{{Geonameslink|gnid=2521384|name=balearic%20islands}} Balearic Islands] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2015-12-04; database download sa 2016-04-24</ref>
</references>
[[Kagegoriya:Balearic Islands| ]]
[[Kategoriya:Mga subdibisyon sa Espanya]]
bgc157luya7676fqfvs8xn7hh65yujo
37024611
37024610
2026-07-23T20:05:42Z
Fixer88
28406
/* Ang mga gi basihan niini */
37024611
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Espanya|date=2016-05}}
{{geobox
| 1 = Island
<!-- *** Header *** -->
| name = Balearic Islands
| native_name = Islas Baleares
| other_name = Ballerics
| category = Kapuloan
| etymology =
| nickname =
<!-- *** Image *** -->
| image =
| image_caption =
<!-- *** Admin *** -->
| country = {{flag|Espanya}}
| country_flag = true
| state = [[Comunitat Autònoma de les Illes Balears]]
| state_type = Rehiyon
| region =
| region_type =
| district =
| district_type =
| municipality =
| municipality_type =
<!-- *** Associated with *** -->
| parent =
| range =
| range_type = Kapuloan
| border =
| part =
| city =
| capital =
| landmark =
| river =
<!-- *** Location *** -->
| location =
| lat_d = 39.18969
| lat_m =
| lat_s =
| lat_NS =
| long_d = 2.52136
| long_m =
| long_s =
| long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| height =
| area =
<!-- *** Population *** -->
| population =
| population_date =
| population_note =
| population_density =
| population_density_note =
<!-- *** Access *** -->
| public =
| access =
<!-- *** Codes *** -->
| timezone =
| utc_offset =
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Notes *** -->
| footnotes =
| other_name1 = Illes Balears
| other_name2 = Balear Uharteak
| other_name3 = Iles Balèares
| other_name4 = Illas Baleares - Illes Balears
| other_name5 = Illas Balearas
| geonames = 2521384
}}
<!--T.ISLS-->[[Kapuloan]] ang '''Balearic Islands''' ([[Kinatsila]]: '''Islas Baleares''', [[Basque]]: '''Balear Uharteak''', [[Galician]]: '''Illas Baleares - Illes Balears''', [[Inutsitan]]: '''Illas Balearas''') sa [[Espanya]].<ref name = "gn2521384"/> Nahimutang ni sa rehiyon sa <!--ADM1-->[[Comunitat Autònoma de les Illes Balears]], sa sidlakang bahin sa nasod, {{formatnum:600}} km sa sidlakan sa [[Madrid (ulohang dakbayan)|Madrid]] ang ulohan sa nasod.
{{Location map|Spain |float = right |width=300 | caption = Nahimutangan sa Balearic Islands sa Espanya. | label = Balearic Islands|position=left|background=white|lat=39.18969|long=2.52136}}
== Ang mga gi basihan niini ==
<references>
<ref name = "gn2521384">[{{Geonameslink|gnid=2521384|name=balearic%20islands}} Balearic Islands] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2015-12-04; database download sa 2016-04-24</ref>
</references>
[[Kategoriya:Balearic Islands| ]]
[[Kategoriya:Mga subdibisyon sa Espanya]]
2o92rgpx1jg1201gtksgdkh7fcc6m6j
Kategoriya:Heyograpiya sa Catalunya
14
4289831
37024579
8305995
2026-07-23T19:13:14Z
Fixer88
28406
added [[Category:Katalunya]] using [[Help:Gadget-HotCat|HotCat]]
37024579
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Espanya sa rehiyon]]
[[Kategoriya:Katalunya]]
newvjti0qaeaf8wswip3qw5e3g05db8
Kategoriya:Mga subdibisyon sa Catalunya
14
4291748
37024580
34831414
2026-07-23T19:15:37Z
Fixer88
28406
removed [[Category:Catalunya]]; added [[Category:Katalunya]] using [[Help:Gadget-HotCat|HotCat]]
37024580
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Catalunya]]
[[Kategoriya:Katalunya]]
ddfovgp4dk91vzsiok3hy2ijzdi2956
Kategoriya:Heyograpiya sa Inglatera (apil sa nasod sa Hiniusang Gingharian)
14
4720097
37024627
9426608
2026-07-23T20:22:00Z
Fixer88
28406
added [[Category:Inglatera]] using [[Help:Gadget-HotCat|HotCat]]
37024627
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod]]
[[Kategoriya:Inglatera]]
hfojg1htjxbaw39we5dlj066uhiuc69
37024630
37024627
2026-07-23T20:25:54Z
Fixer88
28406
new key for [[Category:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod]]: "Inglaterra" using [[Help:Gadget-HotCat|HotCat]]
37024630
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod|Inglaterra]]
[[Kategoriya:Inglatera]]
ibi3nj6lk5ty0hae04owox55u5d7ge2
Kategoriya:Heyograpiya sa Scotland (apil sa nasod)
14
4720111
37024632
34862052
2026-07-23T20:26:24Z
Fixer88
28406
new key for [[Category:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod]]: "Scotland" using [[Help:Gadget-HotCat|HotCat]]
37024632
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod|Scotland]]
[[Kategoriya:Scotland (apil sa nasod)]]
bzenm54qz3uhbjwwvi76krrf1a66gzz
Kategoriya:Heyograpiya sa Wales (apil sa nasod)
14
4720115
37024633
34862053
2026-07-23T20:26:52Z
Fixer88
28406
new key for [[Category:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod]]: "Wales" using [[Help:Gadget-HotCat|HotCat]]
37024633
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod|Wales]]
[[Kategoriya:Wales (apil sa nasod)]]
f69lgkaehz9iabpgbs2vi9encnfb90k
Kategoriya:Heyograpiya sa Northern Ireland
14
4720357
37024631
34862051
2026-07-23T20:26:09Z
Fixer88
28406
new key for [[Category:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod]]: "Northern Ireland" using [[Help:Gadget-HotCat|HotCat]]
37024631
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hiniusang Gingharian sa apil sa nasod|Northern Ireland]]
[[Kategoriya:Northern Ireland]]
6amen3dav1pyay205q5x2naummu5g82
Kategoriya:Heyograpiya sa Geyorgya
14
4754370
37024596
27706670
2026-07-23T19:45:58Z
Fixer88
28406
+[[Kategoriya:Heyograpiya sa Asya]]; +[[Kategoriya:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024596
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Geyorgya]]
[[Kategoriya:Geyorgya]]
[[Kategoriya:Heyograpiya sa Asya|Geyorgya]]
[[Kategoriya:Heyograpiya sa Uropa]]
05ow8xedql7kpyc16u086atl8uqrfkc
Kategoriya:Heyograpiya sa Kuweit
14
5483956
37024597
25545334
2026-07-23T19:47:04Z
Fixer88
28406
added [[Category:Heyograpiya sa Asya]] using [[Help:Gadget-HotCat|HotCat]]
37024597
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Kuweit]]
[[Kategoriya:Kuweit]]
[[Kategoriya:Heyograpiya sa Asya|Kuweit]]
mgn3v9vecdco57v9lg2gvw73fglxywe
Kategoriya:Heyograpiya sa Lyetuwanya
14
5508551
37024639
25641136
2026-07-23T20:32:44Z
Fixer88
28406
added [[Category:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024639
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Lyetuwanya]]
[[Kategoriya:Lyetuwanya]]
[[Kategoriya:Heyograpiya sa Uropa|Lyetuwanya]]
ccy2nj38596yx6efmeycsc1syeuqq1q
Kategoriya:Heyograpiya sa Latwiya
14
5511790
37024638
33669970
2026-07-23T20:32:06Z
Fixer88
28406
added [[Category:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024638
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Latwiya]]
[[Kategoriya:Latwiya]]
[[Kategoriya:Heyograpiya sa Uropa|Latwiya]]
5xkxtpnep163h36ok43oevjv57cozyk
Kategoriya:Heyograpiya sa Moroko
14
5560153
37024584
25783592
2026-07-23T19:24:06Z
Fixer88
28406
added [[Category:Heyograpiya sa nasud]] using [[Help:Gadget-HotCat|HotCat]]
37024584
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Moroko]]
[[Kategoriya:Heyograpiya sa nasud|Moroko]]
3rfcp3l5q1carkq4zrldlu1w2douyuc
37024593
37024584
2026-07-23T19:41:08Z
Fixer88
28406
added [[Category:Heyograpiya sa Aprika]] using [[Help:Gadget-HotCat|HotCat]]
37024593
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Moroko]]
[[Kategoriya:Heyograpiya sa nasud|Moroko]]
[[Kategoriya:Heyograpiya sa Aprika|Moroko]]
e6vzwcs5b8gvosgyapa0ybede1ich1h
Te Atau Mahuri
0
6289833
37024641
32699283
2026-07-24T00:12:56Z
Prosperosity
74905
Redirected page to [[Te Atua Mahuru]]
37024641
wikitext
text/x-wiki
#REDIRECT [[Te Atua Mahuru]]
co5ic5603d2k3ua5dmtnpu4zy3igffj
Kategoriya:Heyograpiya sa Pransiya
14
7099710
37024587
12767734
2026-07-23T19:28:12Z
Fixer88
28406
added [[Category:Heyograpiya sa Uropa]] using [[Help:Gadget-HotCat|HotCat]]
37024587
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa nasud|Pransiya]]
[[Kategoriya:Pransiya]]
[[Kategoriya:Heyograpiya sa Uropa|Pransiya]]
r38fzoibzvhg4fba42sxsk804uo6kkl
Gumagamit:Lsjbot/Duplicates/Département de la Lozère
2
7146464
37024574
37023728
2026-07-23T15:22:31Z
Kontributor 2K
107579
Giway-bili ang rebisyon [[Special:Diff/37023728|37023728]] ni [[Special:Contributions/GeniusElephant678|GeniusElephant678]] ([[User talk:GeniusElephant678|Hisgot]]) per other wikis
37024574
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Pransiya|date=2017-02}}
{{geobox
| 1 = Region
<!-- *** Header *** -->
| name = Département de la Lozère
| native_name =
| other_name =
| category = Departamento
| official_name = Lozère
| etymology =
| motto =
| nickname =
<!-- *** Image *** -->
| image = Préfecture de Mende, Lozère, France.JPG
| image_caption =
<!-- *** Symbols *** -->
| flag = Drapeau non-officiel fr département Lozère.svg
| symbol = Blason département fr Lozère.svg
| country = {{flag|Pransiya}}
| country_flag =
| state =
| state_type =
| region =
| region_type =
| district =
| district_type =
| economic_region =
| economic_region_type =
<!-- *** Associated with *** -->
| border =
| part =
| city =
| landmark =
| river =
<!-- *** Location *** -->
| capital = Mende
| capital_type =
| capital_location =
| capital_region =
| capital_country =
| capital_elevation =
| capital_lat_d =
| capital_lat_m =
| capital_lat_s =
| capital_lat_NS =
| capital_long_d =
| capital_long_m =
| capital_long_s =
| capital_long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
| lowest =
| lowest_location =
| lowest_region =
| lowest_country =
| lowest_elevation =
| lowest_lat_d =
| lowest_lat_m =
| lowest_lat_s =
| lowest_lat_NS =
| lowest_long_d =
| lowest_long_m =
| lowest_long_s =
| lowest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| area = 5166.90
| area_decimals =
<!-- *** Population *** -->
| population = 81312
| population_date = 2016-02-18
| population_density = auto
| established =
| date =
| government_location =
| government_region =
| government_country =
| government_elevation =
| government_lat_d =
| government_lat_m =
| government_lat_s =
| government_lat_NS =
| government_long_d =
| government_long_m =
| government_long_s =
| government_long_EW =
| leader =
| leader_party =
<!-- *** Codes *** -->
| timezone = [[Central European Time|CET]]
| utc_offset = +1
| timezone_DST = [[Central European Summer Time|CEST]]
| utc_offset_DST = +2
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_size =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Website *** -->
| website =
<!-- *** Notes *** -->
| footnotes =
| lat_d = 44.5
| long_d = 3.5
| elevation = 1064
| population_note = <ref name = "gn2997288"/>
| timezone_label = Europe/Paris
| map2 = Département 48 in France 2016.svg
| iso_code = {{#property:P300}}
}}
'''Département de la Lozère''' ([[Prinanses]]: '''Lozère''') maoy <!--A.ADM2-->[[administratibo nga mga dibisyon sa Pransiya|departamento]] sa [[Pransiya]].<ref name = "gn2997288"/> Siya nahimutang sa amihanan-sidlakang bahin sa nasod, {{formatnum:500}} km sa habagatan sa ulohang dakbayan [[Paris]]. Adunay <!--pop-->{{formatnum:81312}} ka molupyo.<ref name = "gn2997288"/> Ang dapit sa Département de la Lozère mao ang {{formatnum:5167}} ka mga kilometro kwadrado. Département de la Lozère mopakigbahin sa usa ka utlanan sa [[Département de l'Ardèche]], [[Département de l'Aveyron]], [[Département du Cantal]], [[Département du Gard]], ug [[Département de la Haute-Loire]].
Ang yuta sa Département de la Lozère kay kabungtoran sa amihang-kasadpan, apan sa habagatang-sidlakan nga kini mao ang kabukiran.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}}
Département de la Lozère may sa mosunod nga mga subdibisyon:
* Arrondissement Florac
* Arrondissement Mende
* Florac
* [[La Malène]]
* [[Mende]]
* [[Montbel, Lozère|Montbel]]
* [[Le Pompidou]]
* [[Balsièges]]
* [[Marchastel, Lozère|Marchastel]]
* [[La Fage-Montivernoux]]
* [[Saint-Laurent-de-Muret]]
* [[Saint-Étienne-du-Valdonnez]]
* [[Le Pont-de-Montvert]]
* [[Malbouzon]]
* [[Pierrefiche, Lozère|Pierrefiche]]
* [[Cubiérettes]]
* [[Chauchailles]]
* [[Lanuéjols, Lozère|Lanuéjols]]
* [[Le Monastier-Pin-Moriès (munisipyo)|Le Monastier-Pin-Moriès]]
* [[Recoules-d'Aubrac]]
* [[Saint-Flour-de-Mercoire]]
* [[Chambon-le-Château]]
* [[Grandvals]]
* [[Saint-Jean-la-Fouillouse]]
* [[Sainte-Hélène (munisipyo sa Pransiya, Languedoc-Roussillon)|Sainte-Hélène]]
* [[Sainte-Enimie]]
* [[Saint-Amans, Lozère|Saint-Amans]]
* [[Lajo]]
* [[Chastel-Nouvel]]
* [[Les Salces]]
* [[Fraissinet-de-Fourques]]
* [[Pied-de-Borne (munisipyo sa Pransiya)|Pied-de-Borne]]
* [[Le Buisson, Lozère|Le Buisson]]
* [[Sainte-Colombe-de-Peyre]]
* [[Saint-Privat-de-Vallongue]]
* [[Saint-Bonnet-de-Chirac]]
* [[Saint-Pierre-de-Nogaret]]
* [[Saint-Frézal-d'Albuges]]
* [[Le Recoux]]
* [[Bagnols-les-Bains]]
* Chirac
* [[Langogne]]
* [[Les Hermaux]]
* [[Nasbinals]]
* [[La Villedieu, Lozère|La Villedieu]]
* [[Fournels]]
* [[Saint-Juéry, Lozère|Saint-Juéry]]
* [[Luc, Lozère|Luc]]
* [[Fau-de-Peyre]]
* [[Saint-Bonnet-de-Montauroux]]
* [[Arzenc-d'Apcher]]
* [[Aumont-Aubrac]]
* [[Laval-Atger]]
* [[Esclanèdes]]
* [[Villefort, Lozère|Villefort]]
* [[Naussac, Lozère|Naussac]]
* [[Sainte-Croix-Vallée-Française (munisipyo)|Sainte-Croix-Vallée-Française]]
* [[Saint-André-Capcèze]]
* [[Badaroux]]
* [[Pourcharesses (munisipyo)|Pourcharesses]]
* [[Barjac, Lozère|Barjac]]
* [[Banassac]]
* [[Saint-Georges-de-Lévéjac]]
* [[La Bastide-Puylaurent]]
* [[Prévenchères]]
* [[Barre-des-Cévennes]]
* [[Le Bleymard]]
* [[Arzenc-de-Randon]]
* [[Cocurès]]
* [[Altier]]
* [[Saint-Sauveur-de-Peyre]]
* [[Saint-Julien-du-Tournel]]
* Saint-Julien-d'Arpaon
* [[Cheylard-l'Évêque]]
* [[Saint-Alban-sur-Limagnole]]
* Canilhac
* [[Chasseradès]]
* [[Châteauneuf-de-Randon]]
* [[Marvejols]]
* [[Saint-Pierre-des-Tripiers]]
* Fontanes
* [[Saint-Martin-de-Lansuscle]]
* [[Le Rozier]]
* [[La Canourgue]]
* [[Grèzes, Lozère|Grèzes]]
* [[Chanac]]
* Saint-Maurice-de-Ventalon
* Fraissinet-de-Lozère
* Bédouès
* [[Mas-d'Orcières]]
* [[Saint-Laurent-de-Trèves]]
* [[Les Bondons]]
* [[Javols]]
* [[Meyrueis]]
* [[Cubières]]
* [[Auroux]]
* [[Trélans]]
* [[Saint-Germain-du-Teil]]
* [[Saint-Pierre-le-Vieux (munisipyo sa Pransiya, Languedoc-Roussillon, Département de la Lozère, lat 44,85, long 3,31)|Saint-Pierre-le-Vieux]]
* [[Saint-Michel-de-Dèze]]
* [[Gabrias]]
* [[Estables]]
* [[Saint-Étienne-Vallée-Française (lungsod)|Saint-Étienne-Vallée-Française]]
* [[Le Malzieu-Ville]]
* [[Rousses]]
* [[Albaret-le-Comtal]]
* [[Saint-Hilaire-de-Lavit]]
* [[Laubert]]
* [[Saint-Sauveur-de-Ginestoux]]
* [[Julianges]]
* [[Saint-Symphorien, Lozère|Saint-Symphorien]]
* [[Vialas]]
* [[Chaudeyrac]]
* [[Saint-Rome-de-Dolan]]
* [[Le Collet-de-Dèze]]
* [[Rieutort-de-Randon]]
* [[Montbrun, Lozère|Montbrun]]
* [[Sainte-Eulalie, Lozère|Sainte-Eulalie]]
* [[Ispagnac]]
* [[Saint-Paul-le-Froid]]
* [[Saint-Martin-de-Boubaux]]
* [[Saint-Laurent-de-Veyrès]]
* [[Allenc]]
* [[Recoules-de-Fumas]]
* [[Brion, Lozère|Brion]]
* [[Ribennes]]
* [[Les Salelles, Lozère|Les Salelles]]
* [[Serverette]]
* [[Les Bessons]]
* [[Saint-Privat-du-Fau]]
* [[Saint-Léger-de-Peyre]]
* [[Gabriac, Lozère|Gabriac]]
* [[Les Vignes]]
* [[Quézac, Lozère|Quézac]]
* [[La Tieule]]
* [[Fontans]]
* [[Brenoux]]
* [[Prinsuéjols]]
* [[Saint-Saturnin, Lozère|Saint-Saturnin]]
* [[Belvezet]]
* [[Saint-Bauzile (munisipyo sa Pransiya, Languedoc-Roussillon)|Saint-Bauzile]]
* [[Saint-Gal]]
* [[Rocles, Lozère|Rocles]]
* [[La Chaze-de-Peyre]]
* [[Montrodat]]
* [[Palhers]]
* [[Cultures]]
* [[Chastanier]]
* [[Paulhac-en-Margeride]]
* Saint-Chély-d'Apcher
* [[Saint-Denis-en-Margeride]]
* [[Chaulhac]]
* [[Blavignac]]
* [[Prunières, Lozère|Prunières]]
* [[Noalhac]]
* [[Antrenas]]
* [[Le Massegros]]
* [[Saint-Léger-du-Malzieu]]
* [[Servières]]
* [[Le Malzieu-Forain (munisipyo sa Pransiya)|Le Malzieu-Forain]]
* [[Grandrieu]]
* [[Les Laubies]]
* [[La Panouse]]
* [[Laval-du-Tarn]]
* [[Rimeize]]
* [[La Fage-Saint-Julien]]
* [[Pelouse (munisipyo sa Pransiya)|Pelouse]]
* [[Chadenet]]
* [[Termes (munisipyo sa Pransiya, Languedoc-Roussillon, Département de la Lozère, lat 44,81, long 3,17)|Termes]]
* [[Vebron]]
* [[Lachamp]]
* [[Le Born, Lozère|Le Born]]
* [[Saint-André-de-Lancize]]
* [[Bassurels]]
* La Salle-Prunet
* [[Mas-Saint-Chély]]
* Saint-Andéol-de-Clerguemort
* [[Saint-Frézal-de-Ventalon]]
* [[Hures-la-Parade (munisipyo)|Hures-la-Parade]]
* [[Saint-Julien-des-Points]]
* [[Saint-Germain-de-Calberte]]
* [[Molezon]]
* [[Cassagnas]]
* [[Gatuzières]]
* Moissac-Vallée-Française
Ang klima [[boreal]].<ref name = "koppen"/> Ang kasarangang giiniton {{formatnum:9}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:20}} [[°C]], ug ang kinabugnawan Disyembre, sa {{formatnum:-2}} °C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1259}} milimetro matag tuig. Ang kinabasaan nga bulan Nobiyembre, sa {{formatnum:185}} milimetro nga ulan, ug ang kinaugahan Pebrero, sa {{formatnum:66}} milimetro.<ref name = "nasarain"/>
{{Location map|France |float = right |width=300 | caption = Mga dapit nga gitawag Département de la Lozère sa Pransiya. | label = Département de la Lozère|position=right|background=white|lat=44.5|long=3.5}}
== Saysay ==
<references group="saysay"/>
== Ang mga gi basihan niini ==
<references>
<ref name = "gn2997288">[{{Geonameslink|gnid=2997288|name=departement%20de%20la%20lozere}} Département de la Lozère] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2016-02-18; database download sa 2017-02-07</ref>
<ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref>
<ref name = "koppen">{{cite journal |last= Peel|first= M C|last2= Finlayson|first2= B L|date= |title= Updated world map of the Köppen-Geiger climate classification| url = http://www.hydrol-earth-syst-sci.net/11/1633/2007/hess-11-1633-2007.html |journal= Hydrology and Earth System Sciences|publisher= |volume= 11|issue= |pages= 1633-1644|doi= 10.5194/hess-11-1633-2007|access-date=30 Enero 2016}}</ref>
<ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref>
<ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref>
</references>
== Gikan sa gawas nga tinubdan==
{{commonscat|Lozère|Département de la Lozère}}
<nowiki>
[[Kategoriya:Mga subdibisyon sa Pransiya]]
</nowiki>
[[Kategoriya:Pransiya duplicates]]
ac3n549pzxj5ehy6qmr1hu8pazztg91
Gumagamit:Lsjbot/Duplicates/Arbus (munisipyo)
2
7222915
37024646
21447922
2026-07-24T03:51:58Z
Ziv
111351
([[c:GR|GR]]) [[c:COM:Duplicate|Duplicate]]: [[File:Arbus.jpg]] → [[File:Arbus (1024x768).jpg]] Exact or scaled-down duplicate: [[c::File:Arbus (1024x768).jpg]]
37024646
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Pransiya|date=2017-02}}
{{geobox
| 1 = Region
<!-- *** Header *** -->
| name = Arbus
| native_name =
| other_name =
| category = Munisipyo
| official_name =
| etymology =
| motto =
| nickname =
<!-- *** Image *** -->
| image = Arbus (1024x768).jpg
| image_caption =
<!-- *** Symbols *** -->
| flag =
| symbol =
<!-- *** Admin *** -->
| country = {{flag|Pransiya}}
| country_flag =
| state =
| state_type =
| region =
| region_type =
| district =
| district_type =
| economic_region =
| economic_region_type =
<!-- *** Associated with *** -->
| border =
| part =
| city =
| landmark =
| river =
<!-- *** Location *** -->
| capital =
| capital_type =
| capital_location =
| capital_region =
| capital_country =
| capital_elevation =
| capital_lat_d =
| capital_lat_m =
| capital_lat_s =
| capital_lat_NS =
| capital_long_d =
| capital_long_m =
| capital_long_s =
| capital_long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
| lowest =
| lowest_location =
| lowest_region =
| lowest_country =
| lowest_elevation =
| lowest_lat_d =
| lowest_lat_m =
| lowest_lat_s =
| lowest_lat_NS =
| lowest_long_d =
| lowest_long_m =
| lowest_long_s =
| lowest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| area = 13.89
| area_decimals =
<!-- *** Population *** -->
| population = 1098
| population_date =
| population_density = auto
| established =
| date =
| government_location =
| government_region =
| government_country =
| government_elevation =
| government_lat_d =
| government_lat_m =
| government_lat_s =
| government_lat_NS =
| government_long_d =
| government_long_m =
| government_long_s =
| government_long_EW =
| leader =
| leader_party =
<!-- *** Codes *** -->
| timezone = [[Central European Time|CET]]
| utc_offset = +1
| timezone_DST = [[Central European Summer Time|CEST]]
| utc_offset_DST = +2
| postal_code = {{#property:P281}}
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_size =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Website *** -->
| website =
<!-- *** Notes *** -->
| footnotes =
| lat_d = 43.33333
| long_d = -0.50583
| elevation = 143
| population_note = <sup>gikan sa enwiki</sup>
| timezone_label = Europe/Paris
| map2 = Map commune FR insee code 64037.png
}}
'''Arbus''' maoy <!--A.ADM4-->[[administratibo nga mga dibisyon sa Pransiya|munisipyo]] sa [[Pransiya]].<ref name = "gn6450377"/> Siya nahimutang sa amihanan-sidlakang bahin sa nasod, {{formatnum:700}} km sa habagatan sa ulohang dakbayan [[Paris]]. Adunay <!--pop-->{{formatnum:1098}} ka molupyo.<ref name = "enwiki"/> Ang dapit sa Arbus mao ang {{formatnum:13.9}} ka mga kilometro kwadrado. Arbus mopakigbahin sa usa ka utlanan sa [[Artiguelouve (lungsod)|Artiguelouve]], [[Abos (munisipyo)|Abos]], [[Aubertin (lungsod)|Aubertin]], [[Denguin (lungsod)|Denguin]], [[Monein (lungsod)|Monein]], [[Parbayse (munisipyo)|Parbayse]], [[Siros (munisipyo)|Siros]], ug [[Tarsacq (munisipyo)|Tarsacq]].
Ang yuta sa Arbus kay patag.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}}
Ang klima [[boreal]].<ref name = "koppen"/> Ang kasarangang giiniton {{formatnum:12}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:20}} [[°C]], ug ang kinabugnawan Enero, sa {{formatnum:4}} °C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1424}} milimetro matag tuig. Ang kinabasaan nga bulan Enero, sa {{formatnum:186}} milimetro nga ulan, ug ang kinaugahan Septiyembre, sa {{formatnum:67}} milimetro.<ref name = "nasarain"/>
{{Location map|France |float = right |width=300 | caption = Mga dapit nga gitawag Arbus sa Pransiya. | label = Arbus|position=right|background=white|lat=43.33333|long=-0.50583}}
== Saysay ==
<references group="saysay"/>
== Ang mga gi basihan niini ==
<references>
<ref name = "gn6450377">[{{Geonameslink|gnid=6450377|name=arbus}} Arbus] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2016-02-18; database download sa 2017-02-07</ref>
<ref name = "enwiki">(gikopiya gikan sa enwiki 2015-07-18)</ref>
<ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref>
<ref name = "koppen">{{cite journal |last= Peel|first= M C|last2= Finlayson|first2= B L|date= |title= Updated world map of the Köppen-Geiger climate classification| url = http://www.hydrol-earth-syst-sci.net/11/1633/2007/hess-11-1633-2007.html |journal= Hydrology and Earth System Sciences|publisher= |volume= 11|issue= |pages= 1633-1644|doi= 10.5194/hess-11-1633-2007|access-date=30 Enero 2016}}</ref>
<ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref>
<ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref>
</references>
== Gikan sa gawas nga tinubdan==
{{commonscat|Arbus|Arbus}}
<nowiki>
[[Kategoriya:Mga subdibisyon sa Pransiya]]
</nowiki>
[[Kategoriya:Pransiya duplicates]]
d435udj584wxkifbi40jcmkd51gkh0v
Kategoriya:Heyograpiya sa Ōita-ken
14
7355717
37024543
13076836
2026-07-23T13:33:25Z
Fixer88
28406
added [[Category:Ōita-ken]] using [[Help:Gadget-HotCat|HotCat]]
37024543
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hapon sa prepektura]]
[[Kategoriya:Ōita-ken]]
gqzxbusi1wh3z5tiu1srv0cai3ldol1
37024546
37024543
2026-07-23T13:36:24Z
Fixer88
28406
removed [[Category:Ōita-ken]]; added [[Category:Ōita Prefecture]] using [[Help:Gadget-HotCat|HotCat]]
37024546
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hapon sa prepektura]]
[[Kategoriya:Ōita Prefecture]]
aw437v5nzl61c0nclp6oyw3kc0xe8f3
Kategoriya:Mga subdibisyon sa Ōita-ken
14
7357213
37024548
34832652
2026-07-23T13:37:25Z
Fixer88
28406
removed [[Category:Ōita-ken]]; added [[Category:Ōita Prefecture]] using [[Help:Gadget-HotCat|HotCat]]
37024548
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Ōita-ken]]
[[Kategoriya:Ōita Prefecture]]
occ8ya31j7dc7qk7esv7c1a7ujdd2ue
Kategoriya:Heyograpiya sa Tōkyō-to
14
7357387
37024565
13078554
2026-07-23T13:58:27Z
Fixer88
28406
added [[Category:Tokyo]] using [[Help:Gadget-HotCat|HotCat]]
37024565
wikitext
text/x-wiki
{{GeoGroup}}
[[Kategoriya:Heyograpiya sa Hapon sa prepektura]]
[[Kategoriya:Tokyo]]
gcytts1m6vfo1ra689g9a3aa6japw4o
Ōita Prefecture
0
7364677
37024544
33034517
2026-07-23T13:34:34Z
Fixer88
28406
/* Gikan sa gawas nga tinubdan */
37024544
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Hapon|date=2017-02}}
{{geobox
| 1 = Region
<!-- *** Header *** -->
| name = Ōita Prefecture
| native_name = 大分市
| other_name = Ōita-shi
| category = Distrito
| official_name =
| etymology =
| motto =
| nickname =
<!-- *** Image *** -->
| image = Beppu Mt.Tsurumi01.jpg
| image_caption =
<!-- *** Symbols *** -->
| flag = Flag of Oita Prefecture.svg
| symbol = Emblem of Oita Prefecture.svg
| country = {{flag|Hapon}}
| country_flag =
| state = [[Ōita-ken]]
| state_type = Prepektura
| region =
| region_type =
| district =
| district_type =
| economic_region =
| economic_region_type =
<!-- *** Associated with *** -->
| border =
| part =
| city =
| landmark =
| river =
<!-- *** Location *** -->
| capital = Ōita
| capital_type =
| capital_location =
| capital_region =
| capital_country =
| capital_elevation =
| capital_lat_d =
| capital_lat_m =
| capital_lat_s =
| capital_lat_NS =
| capital_long_d =
| capital_long_m =
| capital_long_s =
| capital_long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
| lowest =
| lowest_location =
| lowest_region =
| lowest_country =
| lowest_elevation =
| lowest_lat_d =
| lowest_lat_m =
| lowest_lat_s =
| lowest_lat_NS =
| lowest_long_d =
| lowest_long_m =
| lowest_long_s =
| lowest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| area = 6339.00
| area_decimals =
<!-- *** Population *** -->
| population = 1209587
| population_date =
| population_density = auto
| established =
| date =
| government_location =
| government_region =
| government_country =
| government_elevation =
| government_lat_d =
| government_lat_m =
| government_lat_s =
| government_lat_NS =
| government_long_d =
| government_long_m =
| government_long_s =
| government_long_EW =
| leader = Katsusada Hirose
| leader_party =
<!-- *** Codes *** -->
| timezone = [[Japan Standard Time|JST]]
| utc_offset = +9
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_size =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Website *** -->
| website =
<!-- *** Notes *** -->
| footnotes =
| other_name1 = Ōita
| other_name2 = Ōita-machi
| other_name3 = おおいたし
| lat_d = 33.1798
| long_d = 131.64085
| elevation = 117
| population_note = <sup>gikan sa eswiki</sup>
| timezone_label = Asia/Tokyo
| map2 = Japan oita map small.png
| iso_code = {{#property:P300}}
}}
<!--A.ADM2-->[[administratibo nga mga dibisyon sa Hapon|Distrito]] ang '''Ōita Prefecture''' ([[Hinapones]]: '''大分市''', '''おおいたし''') sa [[Hapon]].<ref name = "gn1854480"/> Nahimutang ni sa prepektura sa <!--ADM1-->[[Ōita-ken]], sa habagatan-kasadpang bahin sa nasod, {{formatnum:800}} km sa kasadpan sa [[Tokyo (ulohang dakbayan sa Hapon)|Tokyo]] ang ulohan sa nasod. Adunay <!--pop-->{{formatnum:1209587}} ka molupyo.<ref name = "eswiki"/> Naglangkob kin og {{formatnum:6339}} ka kilometro kwadrado. Ōita Prefecture mopakigbahin sa usa ka utlanan sa [[Miyazaki-ken]], [[Kumamoto-ken]], ug [[Fukuoka-ken]].
Ang yuta sa Ōita Prefecture kabungtoran sa amihang-sidlakan, apan sa habagatang-kasadpan nga kini mao ang kabukiran.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}}
Ōita Prefecture may sa mosunod nga mga subdibisyon:
* [[Ōita (kapital sa prepektura sa Hapon)|Ōita]]
* [[Beppu]]
* [[Nakatsu (lungsod sa Hapon)|Nakatsu]]
* [[Hita (lungsod)|Hita]]
* [[Saiki]]
* [[Usuki Shi]]
* [[Tsukumiura]]
* [[Takedamachi]]
* [[Bungo-Takada-shi]]
* [[Kitsuki Shi]]
* Usa
* [[Bungo-ōno Shi]]
* [[Yufu-shi]]
* Kunisaki
* [[Higashikunisaki-gun]]
* [[Hayami-gun]]
* [[Kusu-gun]]
Ang klima [[kasarangan]]. Ang kasarangang giiniton {{formatnum:15}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:24}} [[°C]], ug ang kinabugnawan Enero, sa {{formatnum:4}} °C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:2349}} milimetro matag tuig. Ang kinabasaan nga bulan Hunyo, sa {{formatnum:505}} milimetro nga ulan, ug ang kinaugahan Enero, sa {{formatnum:48}} milimetro.<ref name = "nasarain"/>
{|
|-
|{{climate chart
| Ōita Prefecture
| 2| 7| 48
| 2| 11| 177
| 5| 14| 135
| 8| 19| 155
| 14| 25| 115
| 16| 24| 505
| 21| 26| 352
| 22| 25| 280
| 19| 25| 208
| 14| 20| 203
| 9| 15| 83
| 3| 10| 88
|float=left
|clear=left
|source = <ref name = "nasa"/>
}}
|}
{{Location map|Japan |float = right |width=300 | caption = Nahimutangan sa Ōita Prefecture sa Hapon. | label = Ōita Prefecture|position=right|background=white|lat=33.1798|long=131.64085}}
== Saysay ==
<references group="saysay"/>
== Ang mga gi basihan niini ==
<references>
<ref name = "gn1854480">[{{Geonameslink|gnid=1854480|name=oita-shi}} Ōita-shi] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2016-08-15; database download sa 2017-02-07</ref>
<ref name = "eswiki">(gikopiya gikan sa eswiki 2015-07-19)</ref>
<ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref>
<ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref>
<ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref>
</references>
== Gikan sa gawas nga tinubdan==
{{commonscat|Oita prefecture|Ōita Prefecture}}
[[Kategoriya:Ōita-ken| ]]
[[Kategoriya:Mga subdibisyon sa Ōita-ken]]
bseb43oalrg9azcam3q001qk7lrcl31
37024547
37024544
2026-07-23T13:37:01Z
Fixer88
28406
removed [[Category:Ōita-ken]]; added [[Category:Ōita Prefecture]] using [[Help:Gadget-HotCat|HotCat]]
37024547
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Hapon|date=2017-02}}
{{geobox
| 1 = Region
<!-- *** Header *** -->
| name = Ōita Prefecture
| native_name = 大分市
| other_name = Ōita-shi
| category = Distrito
| official_name =
| etymology =
| motto =
| nickname =
<!-- *** Image *** -->
| image = Beppu Mt.Tsurumi01.jpg
| image_caption =
<!-- *** Symbols *** -->
| flag = Flag of Oita Prefecture.svg
| symbol = Emblem of Oita Prefecture.svg
| country = {{flag|Hapon}}
| country_flag =
| state = [[Ōita-ken]]
| state_type = Prepektura
| region =
| region_type =
| district =
| district_type =
| economic_region =
| economic_region_type =
<!-- *** Associated with *** -->
| border =
| part =
| city =
| landmark =
| river =
<!-- *** Location *** -->
| capital = Ōita
| capital_type =
| capital_location =
| capital_region =
| capital_country =
| capital_elevation =
| capital_lat_d =
| capital_lat_m =
| capital_lat_s =
| capital_lat_NS =
| capital_long_d =
| capital_long_m =
| capital_long_s =
| capital_long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
| lowest =
| lowest_location =
| lowest_region =
| lowest_country =
| lowest_elevation =
| lowest_lat_d =
| lowest_lat_m =
| lowest_lat_s =
| lowest_lat_NS =
| lowest_long_d =
| lowest_long_m =
| lowest_long_s =
| lowest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| area = 6339.00
| area_decimals =
<!-- *** Population *** -->
| population = 1209587
| population_date =
| population_density = auto
| established =
| date =
| government_location =
| government_region =
| government_country =
| government_elevation =
| government_lat_d =
| government_lat_m =
| government_lat_s =
| government_lat_NS =
| government_long_d =
| government_long_m =
| government_long_s =
| government_long_EW =
| leader = Katsusada Hirose
| leader_party =
<!-- *** Codes *** -->
| timezone = [[Japan Standard Time|JST]]
| utc_offset = +9
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_size =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Website *** -->
| website =
<!-- *** Notes *** -->
| footnotes =
| other_name1 = Ōita
| other_name2 = Ōita-machi
| other_name3 = おおいたし
| lat_d = 33.1798
| long_d = 131.64085
| elevation = 117
| population_note = <sup>gikan sa eswiki</sup>
| timezone_label = Asia/Tokyo
| map2 = Japan oita map small.png
| iso_code = {{#property:P300}}
}}
<!--A.ADM2-->[[administratibo nga mga dibisyon sa Hapon|Distrito]] ang '''Ōita Prefecture''' ([[Hinapones]]: '''大分市''', '''おおいたし''') sa [[Hapon]].<ref name = "gn1854480"/> Nahimutang ni sa prepektura sa <!--ADM1-->[[Ōita-ken]], sa habagatan-kasadpang bahin sa nasod, {{formatnum:800}} km sa kasadpan sa [[Tokyo (ulohang dakbayan sa Hapon)|Tokyo]] ang ulohan sa nasod. Adunay <!--pop-->{{formatnum:1209587}} ka molupyo.<ref name = "eswiki"/> Naglangkob kin og {{formatnum:6339}} ka kilometro kwadrado. Ōita Prefecture mopakigbahin sa usa ka utlanan sa [[Miyazaki-ken]], [[Kumamoto-ken]], ug [[Fukuoka-ken]].
Ang yuta sa Ōita Prefecture kabungtoran sa amihang-sidlakan, apan sa habagatang-kasadpan nga kini mao ang kabukiran.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}}
Ōita Prefecture may sa mosunod nga mga subdibisyon:
* [[Ōita (kapital sa prepektura sa Hapon)|Ōita]]
* [[Beppu]]
* [[Nakatsu (lungsod sa Hapon)|Nakatsu]]
* [[Hita (lungsod)|Hita]]
* [[Saiki]]
* [[Usuki Shi]]
* [[Tsukumiura]]
* [[Takedamachi]]
* [[Bungo-Takada-shi]]
* [[Kitsuki Shi]]
* Usa
* [[Bungo-ōno Shi]]
* [[Yufu-shi]]
* Kunisaki
* [[Higashikunisaki-gun]]
* [[Hayami-gun]]
* [[Kusu-gun]]
Ang klima [[kasarangan]]. Ang kasarangang giiniton {{formatnum:15}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:24}} [[°C]], ug ang kinabugnawan Enero, sa {{formatnum:4}} °C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:2349}} milimetro matag tuig. Ang kinabasaan nga bulan Hunyo, sa {{formatnum:505}} milimetro nga ulan, ug ang kinaugahan Enero, sa {{formatnum:48}} milimetro.<ref name = "nasarain"/>
{|
|-
|{{climate chart
| Ōita Prefecture
| 2| 7| 48
| 2| 11| 177
| 5| 14| 135
| 8| 19| 155
| 14| 25| 115
| 16| 24| 505
| 21| 26| 352
| 22| 25| 280
| 19| 25| 208
| 14| 20| 203
| 9| 15| 83
| 3| 10| 88
|float=left
|clear=left
|source = <ref name = "nasa"/>
}}
|}
{{Location map|Japan |float = right |width=300 | caption = Nahimutangan sa Ōita Prefecture sa Hapon. | label = Ōita Prefecture|position=right|background=white|lat=33.1798|long=131.64085}}
== Saysay ==
<references group="saysay"/>
== Ang mga gi basihan niini ==
<references>
<ref name = "gn1854480">[{{Geonameslink|gnid=1854480|name=oita-shi}} Ōita-shi] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2016-08-15; database download sa 2017-02-07</ref>
<ref name = "eswiki">(gikopiya gikan sa eswiki 2015-07-19)</ref>
<ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref>
<ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref>
<ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref>
</references>
== Gikan sa gawas nga tinubdan==
{{commonscat|Oita prefecture|Ōita Prefecture}}
[[Kategoriya:Ōita Prefecture| ]]
[[Kategoriya:Mga subdibisyon sa Ōita-ken]]
aim8gsd5o1zrblix1yqouwfwdn5wtcu
Mitsuike Kōen
0
7405829
37024647
32971332
2026-07-24T06:11:49Z
~2026-41224-26
146599
Redirected page to [[Mitsuike Park]]
37024647
wikitext
text/x-wiki
#Redirect[[Mitsuike Park]]
{{paghimo ni bot|Lsjbot|Hapon|date=2017-02}}
{{geobox
| 1 =
<!-- Här ska stå t.ex. Settlement -->
| geobox_width =
<!-- *** Mallhuvud *** -->
| name = Mitsuike Kōen
| native_name =
| other_name =
| other_name_note =
| other_name1 =
| other_name1_note =
| other_name2 =
| other_name2_note =
| other_name3 =
| other_name3_note =
| other_name4 =
| other_name4_note =
| other_name5 =
| other_name5_note =
| other_name6 =
| other_name6_note =
| other_name7 =
| other_name7_note =
| category_hide =
| category = Parke
| native_category =
<!-- *** Bild *** -->
| image =
| image_caption =
| image_size =
<!-- *** Symboler *** -->
| flag =
| flag_type =
| flag_label =
| flag_note =
| flag_size =
| flag_border =
| symbol =
| symbol_type =
| symbol_label =
| symbol_note =
| symbol_size =
| symbol_border =
<!-- *** Namn *** -->
| official_name =
| official_name_type =
| official_name_label =
| official_name_note =
| etymology =
| etymology_type =
| etymology_label =
| etymology_note =
| motto =
| motto_type =
| motto_label =
| motto_note =
| nickname =
| nickname_type =
| nickname_label =
| nickname_note =
<!-- *** Land m.m. *** -->
| country_fold =
| country_flag =
| country = {{flag|Hapon}}
| country_type =
| country_label =
| country_note =
| country1 =
| country1_note =
| country2 =
| country2_note =
| country3 =
| country3_note =
| country4 =
| country4_note =
| country5 =
| country5_note =
| country6 =
| country6_note =
| country7 =
| country7_note =
| country8 =
| country8_note =
| country9 =
| country9_note =
| country10 =
| country10_note =
| country11 =
| country11_note =
| country12 =
| country12_note =
| country13 =
| country13_note =
| country14 =
| country14_note =
| country15 =
| country15_note =
| state_fold =
| state_flag =
| state = [[Kanagawa-ken]]
| state_type = Prepektura
| state_label =
| state_note =
| state1 =
| state1_note =
| state2 =
| state2_note =
| state3 =
| state3_note =
| state4 =
| state4_note =
| state5 =
| state5_note =
| state6 =
| state6_note =
| state7 =
| state7_note =
| state8 =
| state8_note =
| state9 =
| state9_note =
| state10 =
| state10_note =
| state11 =
| state11_note =
| state12 =
| state12_note =
| state13 =
| state13_note =
| state14 =
| state14_note =
| state15 =
| state15_note =
| region_fold =
| region =
| region_type =
| region_label =
| region_note =
| region1 =
| region1_note =
| region2 =
| region2_note =
| region3 =
| region3_note =
| region4 =
| region4_note =
| region5 =
| region5_note =
| region6 =
| region6_note =
| region7 =
| region7_note =
| region8 =
| region8_note =
| region9 =
| region9_note =
| region10 =
| region10_note =
| region11 =
| region11_note =
| region12 =
| region12_note =
| region13 =
| region13_note =
| region14 =
| region14_note =
| region15 =
| region15_note =
| district_fold =
| district =
| district_type =
| district_label =
| district_note =
| district1 =
| district1_note =
| district2 =
| district2_note =
| district3 =
| district3_note =
| district4 =
| district4_note =
| district5 =
| district5_note =
| district6 =
| district6_note =
| district7 =
| district7_note =
| district8 =
| district8_note =
| district9 =
| district9_note =
| district10 =
| district10_note =
| district11 =
| district11_note =
| district12 =
| district12_note =
| district13 =
| district13_note =
| district14 =
| district14_note =
| district15 =
| district15_note =
| commune_fold =
| commune =
| commune_type =
| commune_label =
| commune_note =
| commune1 =
| commune1_note =
| commune2 =
| commune2_note =
| commune3 =
| commune3_note =
| commune4 =
| commune4_note =
| commune5 =
| commune5_note =
| commune6 =
| commune6_note =
| commune7 =
| commune7_note =
| commune8 =
| commune8_note =
| commune9 =
| commune9_note =
| commune10 =
| commune10_note =
| commune11 =
| commune11_note =
| commune12 =
| commune12_note =
| commune13 =
| commune13_note =
| commune14 =
| commune14_note =
| commune15 =
| commune15_note =
| municipality_fold =
| municipality =
| municipality_type =
| municipality_label =
| municipality_note =
| municipality1 =
| municipality1_note =
| municipality2 =
| municipality2_note =
| municipality3 =
| municipality3_note =
| municipality4 =
| municipality4_note =
| municipality5 =
| municipality5_note =
| municipality6 =
| municipality6_note =
| municipality7 =
| municipality7_note =
| municipality8 =
| municipality8_note =
| municipality9 =
| municipality9_note =
| municipality10 =
| municipality10_note =
| municipality11 =
| municipality11_note =
| municipality12 =
| municipality12_note =
| municipality13 =
| municipality13_note =
| municipality14 =
| municipality14_note =
| municipality15 =
| municipality15_note =
| parish_fold =
| parish =
| parish_type =
| parish_label =
| parish_note =
| parish1 =
| parish1_note =
| parish2 =
| parish2_note =
| parish3 =
| parish3_note =
| parish4 =
| parish4_note =
| parish5 =
| parish5_note =
| parish6 =
| parish6_note =
| parish7 =
| parish7_note =
| parish8 =
| parish8_note =
| parish9 =
| parish9_note =
| parish10 =
| parish10_note =
| parish11 =
| parish11_note =
| parish12 =
| parish12_note =
| parish13 =
| parish13_note =
| parish14 =
| parish14_note =
| parish15 =
| parish15_note =
<!-- *** Tillhörighet, inom området m.m. *** -->
| parent_fold =
| parent =
| parent_type =
| parent_label =
| parent_note =
| parent1 =
| parent1_note =
| parent2 =
| parent2_note =
| parent3 =
| parent3_note =
| range_fold =
| range =
| range_type =
| range_label =
| range_note =
| range1 =
| range1_note =
| range2 =
| range2_note =
| range3 =
| range3_note =
| road =
| road_type =
| road_label =
| road_note =
| road1 =
| road1_type =
| road1_label =
| road1_note =
| road2 =
| road2_type =
| road2_label =
| road2_note =
| road3 =
| road3_type =
| road3_label =
| road3_note =
| road4 =
| road4_type =
| road4_label =
| road4_note =
| border_fold =
| border =
| border_type =
| border_label =
| border_note =
| border1 =
| border1_note =
| border2 =
| border2_note =
| border3 =
| border3_note =
| border4 =
| border4_note =
| border5 =
| border5_note =
| border6 =
| border6_note =
| border7 =
| border7_note =
| border8 =
| border8_note =
| border9 =
| border9_note =
| border10 =
| border10_note =
| border11 =
| border11_note =
| border12 =
| border12_note =
| border13 =
| border13_note =
| border14 =
| border14_note =
| border15 =
| border15_note =
| border16 =
| border16_note =
| border17 =
| border17_note =
| border18 =
| border18_note =
| border19 =
| border19_note =
| border20 =
| border20_note =
| border21 =
| border21_note =
| border22 =
| border22_note =
| border23 =
| border23_note =
| border24 =
| border24_note =
| part_fold =
| part =
| part_type =
| part_label =
| part_note =
| part1 =
| part1_note =
| part2 =
| part2_note =
| part3 =
| part3_note =
| part4 =
| part4_note =
| part5 =
| part5_note =
| part6 =
| part6_note =
| part7 =
| part7_note =
| part8 =
| part8_note =
| part9 =
| part9_note =
| part10 =
| part10_note =
| part11 =
| part11_note =
| part12 =
| part12_note =
| part13 =
| part13_note =
| part14 =
| part14_note =
| part15 =
| part15_note =
| part16 =
| part16_note =
| part17 =
| part17_note =
| part18 =
| part18_note =
| part19 =
| part19_note =
| part20 =
| part20_note =
| part21 =
| part21_note =
| part22 =
| part22_note =
| part23 =
| part23_note =
| part24 =
| part24_note =
| part25 =
| part25_note =
| part26 =
| part26_note =
| part27 =
| part27_note =
| part28 =
| part28_note =
| part29 =
| part29_note =
| part30 =
| part30_note =
| part31 =
| part31_note =
| part32 =
| part32_note =
| part33 =
| part33_note =
| part34 =
| part34_note =
| part35 =
| part35_note =
| part36 =
| part36_note =
| part37 =
| part37_note =
| part38 =
| part38_note =
| part39 =
| part39_note =
| part40 =
| part40_note =
| part41 =
| part41_note =
| tributary_fold =
| child_fold =
| tributary_left_fold =
| child_left_fold =
| tributary_type =
| tributary_label =
| child_type =
| child_label =
| tributary_left =
| tributary_left_type =
| tributary_left_label =
| tributary_left_note =
| child_left =
| child_left_type =
| child_left_label =
| child_left_note =
| tributary_left1 =
| tributary_left1_note =
| child_left1 =
| child_left1_note =
| tributary_left2 =
| tributary_left2_note =
| child_left2 =
| child_left2_note =
| tributary_left3 =
| tributary_left3_note =
| child_left3 =
| child_left3_note =
| tributary_left4 =
| tributary_left4_note =
| child_left4 =
| child_left4_note =
| tributary_left5 =
| tributary_left5_note =
| child_left5 =
| child_left5_note =
| tributary_left6 =
| tributary_left6_note =
| child_left6 =
| child_left6_note =
| tributary_left7 =
| tributary_left7_note =
| child_left7 =
| child_left7_note =
| tributary_left8 =
| tributary_left8_note =
| child_left8 =
| child_left8_note =
| tributary_left9 =
| tributary_left9_note =
| child_left9 =
| child_left9_note =
| tributary_left10 =
| tributary_left10_note =
| child_left10 =
| child_left10_note =
| tributary_left11 =
| tributary_left11_note =
| child_left11 =
| child_left11_note =
| tributary_left12 =
| tributary_left12_note =
| child_left12 =
| child_left12_note =
| tributary_left13 =
| tributary_left13_note =
| child_left13 =
| child_left13_note =
| tributary_left14 =
| tributary_left14_note =
| child_left14 =
| child_left14_note =
| tributary_left15 =
| tributary_left15_note =
| child_left15 =
| child_left15_note =
| tributary_right_fold =
| child_right_fold =
| tributary_right =
| tributary_right_type =
| tributary_right_label =
| tributary_right_note =
| child_right =
| child_right_type =
| child_right_label =
| child_right_note =
| tributary_right1 =
| tributary_right1_note =
| child_right1 =
| child_right1_note =
| tributary_right2 =
| tributary_right2_note =
| child_right2 =
| child_right2_note =
| tributary_right3 =
| tributary_right3_note =
| child_right3 =
| child_right3_note =
| tributary_right4 =
| tributary_right4_note =
| child_right4 =
| child_right4_note =
| tributary_right5 =
| tributary_right5_note =
| child_right5 =
| child_right5_note =
| tributary_right6 =
| tributary_right6_note =
| child_right6 =
| child_right6_note =
| tributary_right7 =
| tributary_right7_note =
| child_right7 =
| child_right7_note =
| tributary_right8 =
| tributary_right8_note =
| child_right8 =
| child_right8_note =
| tributary_right9 =
| tributary_right9_note =
| child_right9 =
| child_right9_note =
| tributary_right10 =
| tributary_right10_note =
| child_right10 =
| child_right10_note =
| tributary_right11 =
| tributary_right11_note =
| child_right11 =
| child_right11_note =
| tributary_right12 =
| tributary_right12_note =
| child_right12 =
| child_right12_note =
| tributary_right13 =
| tributary_right13_note =
| child_right13 =
| child_right13_note =
| tributary_right14 =
| tributary_right14_note =
| child_right14 =
| child_right14_note =
| tributary_right15 =
| tributary_right15_note =
| child_right15 =
| child_right15_note =
| city_fold =
| city =
| city_type =
| city_label =
| city_note =
| city1 =
| city1_note =
| city2 =
| city2_note =
| city3 =
| city3_note =
| city4 =
| city4_note =
| city5 =
| city5_note =
| city6 =
| city6_note =
| city7 =
| city7_note =
| city8 =
| city8_note =
| city9 =
| city9_note =
| city10 =
| city10_note =
| city11 =
| city11_note =
| city12 =
| city12_note =
| city13 =
| city13_note =
| city14 =
| city14_note =
| city15 =
| city15_note =
| landmark_fold =
| landmark =
| landmark_type =
| landmark_label =
| landmark_note =
| landmark1 =
| landmark1_note =
| landmark2 =
| landmark2_note =
| landmark3 =
| landmark3_note =
| landmark4 =
| landmark4_note =
| landmark5 =
| landmark5_note =
| landmark6 =
| landmark6_note =
| landmark7 =
| landmark7_note =
| landmark8 =
| landmark8_note =
| landmark9 =
| landmark9_note =
| landmark10 =
| landmark10_note =
| landmark11 =
| landmark11_note =
| landmark12 =
| landmark12_note =
| landmark13 =
| landmark13_note =
| landmark14 =
| landmark14_note =
| landmark15 =
| landmark15_note =
| lake_fold =
| lake =
| lake_type =
| lake_label =
| lake_note =
| lake1 =
| lake1_note =
| lake2 =
| lake2_note =
| lake3 =
| lake3_note =
| lake4 =
| lake4_note =
| lake5 =
| lake5_note =
| lake6 =
| lake6_note =
| lake7 =
| lake7_note =
| lake8 =
| lake8_note =
| lake9 =
| lake9_note =
| lake10 =
| lake10_note =
| lake11 =
| lake11_note =
| lake12 =
| lake12_note =
| lake13 =
| lake13_note =
| lake14 =
| lake14_note =
| lake15 =
| lake15_note =
| mountain_fold =
| mountain =
| mountain_type =
| mountain_label =
| mountain_note =
| mountain1 =
| mountain1_note =
| mountain2 =
| mountain2_note =
| mountain3 =
| mountain3_note =
| mountain4 =
| mountain4_note =
| mountain5 =
| mountain5_note =
| mountain6 =
| mountain6_note =
| mountain7 =
| mountain7_note =
| mountain8 =
| mountain8_note =
| mountain9 =
| mountain9_note =
| mountain10 =
| mountain10_note =
| mountain11 =
| mountain11_note =
| mountain12 =
| mountain12_note =
| mountain13 =
| mountain13_note =
| mountain14 =
| mountain14_note =
| mountain15 =
| mountain15_note =
| building_fold =
| building =
| building_type =
| building_label =
| building_note =
| building1 =
| building1_note =
| building2 =
| building2_note =
| building3 =
| building3_note =
| building4 =
| building4_note =
| building5 =
| building5_note =
| building6 =
| building6_note =
| building7 =
| building7_note =
| building8 =
| building8_note =
| building9 =
| building9_note =
| building10 =
| building10_note =
| building11 =
| building11_note =
| building12 =
| building12_note =
| building13 =
| building13_note =
| building14 =
| building14_note =
| building15 =
| building15_note =
| river_fold =
| river =
| river_type =
| river_label =
| river_note =
| river1 =
| river1_note =
| river2 =
| river2_note =
| river3 =
| river3_note =
| river4 =
| river4_note =
| river5 =
| river5_note =
| river6 =
| river6_note =
| river7 =
| river7_note =
| river8 =
| river8_note =
| river9 =
| river9_note =
| river10 =
| river10_note =
| river11 =
| river11_note =
| river12 =
| river12_note =
| river13 =
| river13_note =
| river14 =
| river14_note =
| river15 =
| river15_note =
<!-- *** Lägen *** -->
| location =
| location_type =
| location_label =
| location_note =
| location_municipality =
| location_municipality1 =
| location_district =
| location_district1 =
| location_region =
| location_region1 =
| location_state =
| location_state1 =
| location_country =
| location_country1 =
| elevation = 29
| elevation_unit =
| elevation_note =
| prominence =
| prominence_unit =
| prominence_note =
| lat_d = 35.52229
| lat_m =
| lat_s =
| lat_NS =
| long_d = 139.65812
| long_m =
| long_s =
| long_EW =
| coordinates_no_title =
| coordinates_type =
| coordinates_format =
| coordinates_note =
| capital =
| capital_name =
| capital_type =
| capital_label =
| capital_note =
| capital_location =
| capital_location_type =
| capital_location_label =
| capital_location_note =
| capital_elevation =
| capital_elevation_unit =
| capital_elevation_note =
| capital_lat_d =
| capital_lat_m =
| capital_lat_s =
| capital_lat_NS =
| capital_long_d =
| capital_long_m =
| capital_long_s =
| capital_long_EW =
| capital_coordinates_type =
| capital_coordinates_format =
| capital_coordinates_note =
| subcapital_fold =
| subcapital =
| subcapital_type =
| subcapital_label =
| subcapital_note =
| subcapital1 =
| subcapital1_note =
| subcapital2 =
| subcapital2_note =
| subcapital3 =
| subcapital3_note =
| subcapital4 =
| subcapital4_note =
| subcapital5 =
| subcapital5_note =
| subcapital6 =
| subcapital6_note =
| subcapital7 =
| subcapital7_note =
| subcapital8 =
| subcapital8_note =
| subcapital9 =
| subcapital9_note =
| subcapital10 =
| subcapital10_note =
| subcapital11 =
| subcapital11_note =
| subcapital12 =
| subcapital12_note =
| subcapital13 =
| subcapital13_note =
| subcapital14 =
| subcapital14_note =
| subcapital15 =
| subcapital15_note =
| highest =
| highest_name =
| highest_type =
| highest_label =
| highest_note =
| highest_location =
| highest_location_type =
| highest_location_label =
| highest_location_note =
| highest_municipality =
| highest_municipality1 =
| highest_district =
| highest_district1 =
| highest_region =
| highest_region1 =
| highest_state =
| highest_state1 =
| highest_country =
| highest_country1 =
| highest_elevation =
| highest_elevation_unit =
| highest_elevation_note =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
| highest_coordinates_type =
| highest_coordinates_format =
| highest_coordinates_note =
| lowest =
| lowest_name =
| lowest_type =
| lowest_label =
| lowest_note =
| lowest_location =
| lowest_location_type =
| lowest_location_label =
| lowest_location_note =
| lowest_municipality =
| lowest_municipality1 =
| lowest_district =
| lowest_district1 =
| lowest_region =
| lowest_region1 =
| lowest_state =
| lowest_state1 =
| lowest_country =
| lowest_country1 =
| lowest_elevation =
| lowest_elevation_unit =
| lowest_elevation_note =
| lowest_lat_d =
| lowest_lat_m =
| lowest_lat_s =
| lowest_lat_NS =
| lowest_long_d =
| lowest_long_m =
| lowest_long_s =
| lowest_long_EW =
| lowest_coordinates_type =
| lowest_coordinates_format =
| lowest_coordinates_note =
<!-- *** Floders lägen *** -->
| source =
| source_name =
| source_type =
| source_label =
| source_note =
| source_location =
| source_location_type =
| source_location_label =
| source_location_note =
| source_municipality =
| source_municipality1 =
| source_district =
| source_district1 =
| source_region =
| source_region1 =
| source_state =
| source_state1 =
| source_country =
| source_country1 =
| source_elevation =
| source_elevation_unit =
| source_elevation_note =
| source_length =
| source_length_unit =
| source_length_note =
| source_lat_d =
| source_lat_m =
| source_lat_s =
| source_lat_NS =
| source_long_d =
| source_long_m =
| source_long_s =
| source_long_EW =
| source_coordinates_type =
| source_coordinates_format =
| source_coordinates_note =
| source1 =
| source1_name =
| source1_type =
| source1_label =
| source1_note =
| source1_location =
| source1_location_type =
| source1_location_label =
| source1_location_note =
| source1_municipality =
| source1_municipality1 =
| source1_district =
| source1_district1 =
| source1_region =
| source1_region1 =
| source1_state =
| source1_state1 =
| source1_country =
| source1_country1 =
| source1_elevation =
| source1_elevation_unit =
| source1_elevation_note =
| source1_length =
| source1_length_unit =
| source1_lat_d =
| source1_lat_m =
| source1_lat_s =
| source1_lat_NS =
| source1_long_d =
| source1_long_m =
| source1_long_s =
| source1_long_EW =
| source1_coordinates_type =
| source1_coordinates_format =
| source1_coordinates_note =
| source2 =
| source2_name =
| source2_type =
| source2_label =
| source2_note =
| source2_location =
| source2_location_type =
| source2_location_label =
| source2_location_note =
| source2_municipality =
| source2_municipality1 =
| source2_district =
| source2_district1 =
| source2_region =
| source2_region1 =
| source2_state =
| source2_state1 =
| source2_country =
| source2_country1 =
| source2_elevation =
| source2_elevation_unit =
| source2_elevation_note =
| source2_length =
| source2_length_unit =
| source2_length_note =
| source2_lat_d =
| source2_lat_m =
| source2_lat_s =
| source2_lat_NS =
| source2_long_d =
| source2_long_m =
| source2_long_s =
| source2_long_EW =
| source2_coordinates_type =
| source2_coordinates_format =
| source2_coordinates_note =
| source_confluence =
| source_confluence_name =
| source_confluence_type =
| source_confluence_label =
| source_confluence_note =
| source_confluence_location =
| source_confluence_location_type =
| source_confluence_location_label =
| source_confluence_location_note =
| source_confluence_municipality =
| source_confluence_municipality1 =
| source_confluence_district =
| source_confluence_district1 =
| source_confluence_region =
| source_confluence_region1 =
| source_confluence_state =
| source_confluence_state1 =
| source_confluence_country =
| source_confluence_country1 =
| source_confluence_elevation =
| source_confluence_elevation_unit =
| source_confluence_elevation_note =
| source_confluence_lat_d =
| source_confluence_lat_m =
| source_confluence_lat_s =
| source_confluence_lat_NS =
| source_confluence_long_d =
| source_confluence_long_m =
| source_confluence_long_s =
| source_confluence_long_EW =
| source_confluence_coordinates_type =
| source_confluence_coordinates_format =
| source_confluence_coordinates_note =
| mouth =
| mouth_name =
| mouth_type =
| mouth_label =
| mouth_note =
| mouth_location =
| mouth_location_type =
| mouth_location_label =
| mouth_location_note =
| mouth_municipality =
| mouth_municipality1 =
| mouth_district =
| mouth_district1 =
| mouth_region =
| mouth_region1 =
| mouth_state =
| mouth_state1 =
| mouth_country =
| mouth_country1 =
| mouth_elevation =
| mouth_elevation_unit =
| mouth_elevation_note =
| mouth_lat_d =
| mouth_lat_m =
| mouth_lat_s =
| mouth_lat_NS =
| mouth_long_d =
| mouth_long_m =
| mouth_long_s =
| mouth_long_EW =
| mouth_coordinates_type =
| mouth_coordinates_format =
| mouth_coordinates_note =
<!-- *** Dimensioner *** -->
| length =
| length_type =
| length_label =
| length_unit =
| length_orientation =
| length_note =
| length1 =
| length1_type =
| length1_label =
| length1_unit =
| length1_orientation =
| length1_note =
| length2 =
| length2_type =
| length2_label =
| length2_unit =
| length2_orientation =
| length2_note =
| length3 =
| length3_type =
| length3_label =
| length3_unit =
| length3_orientation =
| length3_note =
| length4 =
| length4_type =
| length4_label =
| length4_unit =
| length4_orientation =
| length4_note =
| width =
| width_type =
| width_label =
| width_unit =
| width_orientation =
| width_note =
| width1 =
| width1_type =
| width1_label =
| width1_unit =
| width1_orientation =
| width1_note =
| width2 =
| width2_type =
| width2_label =
| width2_unit =
| width2_orientation =
| width2_note =
| width3 =
| width3_type =
| width3_label =
| width3_unit =
| width3_orientation =
| width3_note =
| width4 =
| width4_type =
| width4_label =
| width4_unit =
| width4_orientation =
| width4_note =
| height =
| height_type =
| height_label =
| height_unit =
| height_note =
| height1 =
| height1_type =
| height1_label =
| height1_unit =
| height1_note =
| height2 =
| height2_type =
| height2_label =
| height2_unit =
| height2_note =
| height3 =
| height3_type =
| height3_label =
| height3_unit =
| height3_note =
| height4 =
| height4_type =
| height4_label =
| height4_unit =
| height4_note =
| number =
| number_type =
| number_label =
| number_note =
| number1 =
| number1_type =
| number1_label =
| number1_note =
| number2 =
| number2_type =
| number2_label =
| number2_note =
| number3 =
| number3_type =
| number3_label =
| number3_note =
| number4 =
| number4_type =
| number4_label =
| number4_note =
| depth =
| depth_type =
| depth_label =
| depth_unit =
| depth_note =
| depth1 =
| depth1_type =
| depth1_label =
| depth1_unit =
| depth1_note =
| depth2 =
| depth2_type =
| depth2_label =
| depth2_unit =
| depth2_note =
| depth3 =
| depth3_type =
| depth3_label =
| depth3_unit =
| depth3_note =
| depth4 =
| depth4_type =
| depth4_label =
| depth4_unit =
| depth4_note =
| volume =
| volume_type =
| volume_label =
| volume_unit =
| volume_note =
| volume1 =
| volume1_type =
| volume1_label =
| volume1_unit =
| volume1_note =
| volume2 =
| volume2_type =
| volume2_label =
| volume2_unit =
| volume2_note =
| volume3 =
| volume3_type =
| volume3_label =
| volume3_unit =
| volume3_note =
| volume4 =
| volume4_type =
| volume4_label =
| volume4_unit =
| volume4_note =
| weight =
| weight_type =
| weight_label =
| weight_unit =
| weight_note =
| weight1 =
| weight1_type =
| weight1_label =
| weight1_unit =
| weight1_note =
| weight2 =
| weight2_type =
| weight2_label =
| weight2_unit =
| weight2_note =
| weight3 =
| weight3_type =
| weight3_label =
| weight3_unit =
| weight3_note =
| weight4 =
| weight4_type =
| weight4_label =
| weight4_unit =
| weight4_note =
| watershed =
| watershed_type =
| watershed_label =
| watershed_decimals =
| watershed_unit =
| watershed_note =
| area =
| area_type =
| area_label =
| area_decimals =
| area_unit =
| area_date =
| area_as_of =
| area_note =
| area_land =
| area_land_type =
| area_land_label =
| area_land_decimals =
| area_land_unit =
| area_land_note =
| area_land_percentage =
| area_land_percentage_round =
| area_land_share =
| area_land_share_round =
| area_percentage_round =
| area_share_round =
| area_water =
| area_water_type =
| area_water_label =
| area_water_decimals =
| area_water_unit =
| area_water_note =
| area_water_percentage =
| area_water_percentage_round =
| area_water_share =
| area_water_share_round =
| area_urban =
| area_urban_type =
| area_urban_label =
| area_urban_decimals =
| area_urban_unit =
| area_urban_date =
| area_urban_as_of =
| area_urban_note =
| area_urban_percentage =
| area_urban_percentage_round =
| area_urban_share =
| area_urban_share_round =
| area_municipal =
| area_municipal_type =
| area_municipal_label =
| area_municipal_decimals =
| area_municipal_unit =
| area_municipal_date =
| area_municipal_as_of =
| area_municipal_note =
| area_municipal_percentage =
| area_municipal_percentage_round =
| area_municipal_share =
| area_municipal_share_round =
| area_metro =
| area_metro_type =
| area_metro_label =
| area_metro_decimals =
| area_metro_unit =
| area_metro_date =
| area_metro_as_of =
| area_metro_note =
| area_metro_percentage =
| area_metro_percentage_round =
| area_metro_share =
| area_metro_share_round =
| area1 =
| area1_type =
| area1_label =
| area1_unit =
| area1_date =
| area1_note =
| area1_share =
| area1_share_round =
| area2 =
| area2_type =
| area2_label =
| area2_unit =
| area2_date =
| area2_note =
| area2_share =
| area2_share_round =
| area3 =
| area3_type =
| area3_label =
| area3_unit =
| area3_date =
| area3_note =
| area3_share =
| area3_share_round =
| area4 =
| area4_type =
| area4_label =
| area4_unit =
| area4_date =
| area4_note =
| area4_share =
| area4_share_round =
| area5 =
| area5_type =
| area5_label =
| area5_unit =
| area5_date =
| area5_note =
| area5_share =
| area5_share_round =
| area6 =
| area6_type =
| area6_label =
| area6_unit =
| area6_date =
| area6_note =
| area6_share =
| area6_share_round =
| area7 =
| area7_type =
| area7_label =
| area7_unit =
| area7_date =
| area7_note =
| area7_share =
| area7_share_round =
| area8 =
| area8_type =
| area8_label =
| area8_unit =
| area8_date =
| area8_note =
| area8_share =
| area8_share_round =
| area9 =
| area9_type =
| area9_label =
| area9_unit =
| area9_date =
| area9_note =
| area9_share =
| area9_share_round =
| area10 =
| area10_type =
| area10_label =
| area10_unit =
| area10_date =
| area10_note =
| area10_share =
| area10_share_round =
| area11 =
| area11_type =
| area11_label =
| area11_unit =
| area11_date =
| area11_note =
| area11_share =
| area11_share_round =
| area12 =
| area12_type =
| area12_label =
| area12_unit =
| area12_date =
| area12_note =
| area12_share =
| area12_share_round =
| discharge =
| discharge_average =
| discharge_type =
| discharge_location =
| discharge_location_note =
| discharge_label =
| discharge_unit =
| discharge_note =
| discharge_max =
| discharge_max_unit =
| discharge_max_note =
| discharge_min =
| discharge_min_unit =
| discharge_min_note =
| discharge1_average =
| discharge1_type =
| discharge1_location =
| discharge1_unit =
| discharge1_note =
| discharge2_average =
| discharge2_location =
| discharge2_unit =
| discharge2_note =
| discharge3_average =
| discharge3_location =
| discharge3_unit =
| discharge3_note =
| discharge4_average =
| discharge4_location =
| discharge4_unit =
| discharge4_note =
<!-- *** Befolkning *** -->
| population =
| population_type =
| population_label =
| population_date =
| population_as_of =
| population_note =
| population_urban =
| population_urban_type =
| population_urban_label =
| population_urban_date =
| population_urban_as_of =
| population_urban_note =
| population_municipal =
| population_municipal_type =
| population_municipal_label =
| population_municipal_date =
| population_municipal_as_of =
| population_municipal_note =
| population_metro =
| population_metro_type =
| population_metro_label =
| population_metro_date =
| population_metro_as_of =
| population_metro_note =
| population1 =
| population1_type =
| population1_label =
| population1_date =
| population1_note =
| population2 =
| population2_type =
| population2_label =
| population2_date =
| population2_note =
| population3 =
| population3_type =
| population3_label =
| population3_date =
| population3_note =
| population4 =
| population4_type =
| population4_label =
| population4_date =
| population4_note =
| population5 =
| population5_type =
| population5_label =
| population5_date =
| population5_note =
| population6 =
| population6_type =
| population6_label =
| population6_date =
| population6_note =
| population7 =
| population7_type =
| population7_label =
| population7_date =
| population7_note =
| population8 =
| population8_type =
| population8_label =
| population8_date =
| population8_note =
| population9 =
| population9_type =
| population9_label =
| population9_date =
| population9_note =
| population10 =
| population10_type =
| population10_label =
| population10_date =
| population10_note =
| population11 =
| population11_type =
| population11_label =
| population11_date =
| population11_note =
| population12 =
| population12_type =
| population12_label =
| population12_date =
| population12_note =
| population_density =
| density_type =
| density_label =
| population_density_round =
| population_density_hide =
| population_density_note =
| population_urban_density =
| population_urban_density_type =
| population_urban_density_round =
| population_urban_density_note =
| population_municipal_density =
| population_municipal_density_type =
| population_municipal_density_round =
| population_municipal_density_note =
| population_metro_density =
| population_metro_density_type =
| population_metro_density_round =
| population_metro_density_note =
| population1_density =
| density1_type =
| density1_label =
| population1_density_round =
| population1_density_note =
| population2_density =
| density2_type =
| density2_label =
| population2_density_round =
| population2_density_note =
| population3_density =
| density3_type =
| density3_label =
| population3_density_round =
| population3_density_note =
| population4_density =
| density4_type =
| density4_label =
| population4_density_round =
| population4_density_note =
| population5_density =
| density5_type =
| density5_label =
| population5_density_round =
| population5_density_note =
| population6_density =
| density6_type =
| density6_label =
| population6_density_round =
| population6_density_note =
| population7_density =
| density7_type =
| density7_label =
| population7_density_round =
| population7_density_note =
| population8_density =
| density8_type =
| density8_label =
| population8_density_round =
| population8_density_note =
| population9_density =
| density9_type =
| density9_label =
| population9_density_round =
| population9_density_note =
| population10_density =
| density10_type =
| density10_label =
| population10_density_round =
| population10_density_note =
| population11_density =
| density11_type =
| density11_label =
| population11_density_round =
| population11_density_note =
| population12_density =
| density12_type =
| density12_label =
| population12_density_round =
| population12_density_note =
<!-- *** Egenskaper *** -->
| biome_fold =
| biome =
| biome_type =
| biome_label =
| biome_share =
| biome_note =
| biome1 =
| biome1_note =
| biome2 =
| biome2_note =
| biome3 =
| biome3_note =
| biome4 =
| biome4_note =
| biome5 =
| biome5_note =
| biome6 =
| biome6_note =
| biome7 =
| biome7_note =
| biome8 =
| biome8_note =
| biome9 =
| biome9_note =
| biome10 =
| biome10_note =
| biome11 =
| biome11_note =
| biome12 =
| biome12_note =
| biome13 =
| biome13_note =
| biome14 =
| biome14_note =
| biome15 =
| biome15_note =
| geology_fold =
| geology =
| geology_type =
| geology_label =
| geology_note =
| geology1 =
| geology1_note =
| geology2 =
| geology2_note =
| geology3 =
| geology3_note =
| geology4 =
| geology4_note =
| geology5 =
| geology5_note =
| geology6 =
| geology6_note =
| geology7 =
| geology7_note =
| geology8 =
| geology8_note =
| geology9 =
| geology9_note =
| geology10 =
| geology10_note =
| geology11 =
| geology11_note =
| geology12 =
| geology12_note =
| geology13 =
| geology13_note =
| geology14 =
| geology14_note =
| geology15 =
| geology15_note =
| orogeny_fold =
| orogeny =
| orogeny_type =
| orogeny_label =
| orogeny_note =
| orogeny1 =
| orogeny1_note =
| orogeny2 =
| orogeny2_note =
| orogeny3 =
| orogeny3_note =
| orogeny4 =
| orogeny4_note =
| orogeny5 =
| orogeny5_note =
| orogeny6 =
| orogeny6_note =
| orogeny7 =
| orogeny7_note =
| orogeny8 =
| orogeny8_note =
| orogeny9 =
| orogeny9_note =
| orogeny10 =
| orogeny10_note =
| orogeny11 =
| orogeny11_note =
| orogeny12 =
| orogeny12_note =
| orogeny13 =
| orogeny13_note =
| orogeny14 =
| orogeny14_note =
| orogeny15 =
| orogeny15_note =
| period_fold =
| period =
| period_type =
| period_label =
| period_note =
| period1 =
| period1_note =
| period2 =
| period2_note =
| period3 =
| period3_note =
| period4 =
| period4_note =
| period5 =
| period5_note =
| period6 =
| period6_note =
| period7 =
| period7_note =
| period8 =
| period8_note =
| period9 =
| period9_note =
| period10 =
| period10_note =
| period11 =
| period11_note =
| period12 =
| period12_note =
| period13 =
| period13_note =
| period14 =
| period14_note =
| period15 =
| period15_note =
| plant_fold =
| plant =
| plant_type =
| plant_label =
| plant_note =
| plant1 =
| plant1_note =
| plant2 =
| plant2_note =
| plant3 =
| plant3_note =
| plant4 =
| plant4_note =
| plant5 =
| plant5_note =
| plant6 =
| plant6_note =
| plant7 =
| plant7_note =
| plant8 =
| plant8_note =
| plant9 =
| plant9_note =
| plant10 =
| plant10_note =
| plant11 =
| plant11_note =
| plant12 =
| plant12_note =
| plant13 =
| plant13_note =
| plant14 =
| plant14_note =
| plant15 =
| plant15_note =
| animal_fold =
| animal =
| animal_type =
| animal_label =
| animal_note =
| animal1 =
| animal1_note =
| animal2 =
| animal2_note =
| animal3 =
| animal3_note =
| animal4 =
| animal4_note =
| animal5 =
| animal5_note =
| animal6 =
| animal6_note =
| animal7 =
| animal7_note =
| animal8 =
| animal8_note =
| animal9 =
| animal9_note =
| animal10 =
| animal10_note =
| animal11 =
| animal11_note =
| animal12 =
| animal12_note =
| animal13 =
| animal13_note =
| animal14 =
| animal14_note =
| animal15 =
| animal15_note =
| author_fold =
| author =
| author_type =
| author_label =
| author_note =
| author1 =
| author1_note =
| author2 =
| author2_note =
| author3 =
| author3_note =
| author4 =
| author4_note =
| author5 =
| author5_note =
| author6 =
| author6_note =
| author7 =
| author7_note =
| author8 =
| author8_note =
| author9 =
| author9_note =
| author10 =
| author10_note =
| author11 =
| author11_note =
| author12 =
| author12_note =
| author13 =
| author13_note =
| author14 =
| author14_note =
| author15 =
| author15_note =
| style_fold =
| style =
| style_type =
| style_label =
| style_note =
| style1 =
| style1_note =
| style2 =
| style2_note =
| style3 =
| style3_note =
| style4 =
| style4_note =
| style5 = [style5_note =
| style6 =
| style6_note =
| style7 =
| style7_note =
| style8 =
| style8_note =
| style9 =
| style9_note =
| style10 =
| style10_note =
| style11 =
| style11_note =
| style12 =
| style12_note =
| style13 =
| style13_note =
| style14 =
| style14_note =
| style15 =
| style15_note =
| material_fold =
| material =
| material_type =
| material_label =
| material_note =
| material1 =
| material1_note =
| material2 =
| material2_note =
| material3 =
| material3_note =
| material4 =
| material4_note =
| material5 =
| material5_note =
| material6 =
| material6_note =
| material7 =
| material7_note =
| material8 =
| material8_note =
| material9 =
| material9_note =
| material10 =
| material10_note =
| material11 =
| material11_note =
| material12 =
| material12_note =
| material13 =
| material13_note =
| material14 =
| material14_note =
| material15 =
| material15_note =
<!-- *** Historia och administration *** -->
| established =
| established_type =
| established_label =
| established_note =
| established1 =
| established1_type =
| established1_label =
| established1_note =
| established2 =
| established2_type =
| established2_label =
| established2_note =
| established3 =
| established3_type =
| established3_label =
| established3_note =
| established4 =
| established4_type =
| established4_label =
| established4_note =
| date =
| date_type =
| date_label =
| date_note =
| date1 =
| date1_type =
| date1_label =
| date1_note =
| date2 =
| date2_type =
| date2_label =
| date2_note =
| date3 =
| date3_type =
| date3_label =
| date3_note =
| date4 =
| date4_type =
| date4_label =
| date4_note =
| management =
| management_body =
| management_type =
| management_label =
| management_note =
| management_location =
| management_location_type =
| management_location_label =
| management_location_note =
| management_municipality =
| management_municipality1 =
| management_district =
| management_district1 =
| management_region =
| management_region1 =
| management_state =
| management_state1 =
| management_country =
| management_country1 =
| management_elevation =
| management_elevation_unit =
| management_elevation_note =
| management_lat_d =
| management_lat_m =
| management_lat_s =
| management_lat_NS =
| management_long_d =
| management_long_m =
| management_long_s =
| management_long_EW =
| management_coordinates_type =
| management_coordinates_format =
| management_coordinates_note =
| government =
| government_type =
| government_label =
| government_note =
| government_location =
| government_location_type =
| government_location_label =
| government_location_note =
| government_municipality =
| government_municipality1 =
| government_district =
| government_district1 =
| government_region =
| government_region1 =
| government_state =
| government_state1 =
| government_country =
| government_country1 =
| government_elevation =
| government_elevation_unit =
| government_elevation_note =
| government_lat_d =
| government_lat_m =
| government_lat_s =
| government_lat_NS =
| government_long_d =
| government_long_m =
| government_long_s =
| government_long_EW =
| government_coordinates_type =
| government_coordinates_format =
| government_coordinates_note =
| owner =
| owner_type =
| owner_label =
| owner_note =
| mayor =
| mayor_type =
| mayor_label =
| mayor_party =
| mayor_note =
| leader =
| leader_type =
| leader_label =
| leader_party =
| leader_note =
| leader1 =
| leader1_type =
| leader1_label =
| leader1_party =
| leader1_note =
| leader2 =
| leader2_type =
| leader2_label =
| leader2_party =
| leader2_note =
| leader3 =
| leader3_type =
| leader3_label =
| leader3_party =
| leader3_note =
| leader4 =
| leader4_type =
| leader4_label =
| leader4_party =
| leader4_note =
<!-- *** Tillgänglighet *** -->
| public =
| public_type =
| public_label =
| public_note =
| visitation =
| visitation_type =
| visitation_label =
| visitation_date =
| visitation_note =
| access =
| access_type =
| access_label =
| access_note =
| discovery =
| discovery_type =
| discovery_label =
| discovery_note =
| discovery1 =
| discovery1_note =
| discovery2 =
| discovery2_note =
| discovery3 =
| discovery3_note =
| discovery4 =
| discovery4_note =
| discovery5 =
| discovery5_note =
| discovery6 =
| discovery6_note =
| discovery7 =
| discovery7_note =
| discovery_date =
| discovery_date_type =
| discovery_date_label =
| discovery_date_note =
| ascent =
| ascent_type =
| ascent_label =
| ascent_note =
| ascent1 =
| ascent1_note =
| ascent2 =
| ascent2_note =
| ascent3 =
| ascent3_note =
| ascent4 =
| ascent4_note =
| ascent5 =
| ascent5_note =
| ascent6 =
| ascent6_note =
| ascent7 =
| ascent7_note =
| ascent_date =
| ascent_date_type =
| ascent_date_label =
| ascent_date_note =
<!-- *** Koder *** -->
| timezone = [[Japan Standard Time|JST]]
| timezone_type =
| timezone_label = Asia/Tokyo
| utc_offset = +9
| timezone_note =
| timezone_DST =
| timezone_type_DST =
| timezone_label_DST =
| utc_offset_DST =
| timezone_note_DST =
| iso_code =
| iso_code_type =
| iso_code_label =
| iso_subcode =
| iso_code_note =
| postal_town =
| postal_town_type =
| postal_town_label =
| postal_town_note =
| postal_code =
| postal_code_type =
| postal_code_label =
| postal_code_note =
| area_code =
| area_code_type =
| area_code_label =
| area_code_note =
| code =
| code_type =
| code_label =
| code_note =
| codea =
| codea_type =
| codea_label =
| codea_note =
| codeb =
| codeb_type =
| codeb_label =
| codeb_note =
| codec =
| codec_type =
| codec_label =
| codec_note =
| code1 =
| code1_type =
| code1_label =
| code1_note =
| code1a =
| code1a_type =
| code1a_label =
| code1a_note =
| code1b =
| code1b_type =
| code1b_label =
| code1b_note =
| code1c =
| code1c_type =
| code1c_label =
| code1c_note =
| code2 =
| code2_type =
| code2_label =
| code2_note =
| code3 =
| code3_type =
| code3_label =
| code3_note =
| code4 =
| code4_type =
| code4_label =
| code4_note =
<!-- *** Unesco m.m. *** -->
| whs_name =
| whs_name_note =
| whs_year =
| whs_year_note =
| whs_number =
| whs_number_note =
| whs_region =
| whs_region_note =
| whs_criteria =
| whs_criteria_note =
| category_iucn =
| category_iucn_note =
| topo_map =
| topo_type =
| topo_label =
| topo_maker =
| topo_note =
| topo1_map =
| topo1_maker =
| topo1_note =
| topo2_map =
| topo2_maker =
| topo2_note =
| topo3_map =
| topo3_maker =
| topo3_note =
| topo4_map =
| topo4_maker =
| topo4_note =
| topo5_map =
| topo5_maker =
| topo5_note =
| topo6_map =
| topo6_maker =
| topo6_note =
| topo7_map =
| topo7_maker =
| topo7_note =
| topo8_map =
| topo8_maker =
| topo8_note =
| topo9_map =
| topo9_maker =
| topo9_note =
| topo10_map =
| topo10_maker =
| topo10_note =
| topo11_map =
| topo11_maker =
| topo11_note =
| topo12_map =
| topo12_maker =
| topo12_note =
| topo13_map =
| topo13_maker =
| topo13_note =
| topo14_map =
| topo14_maker =
| topo14_note =
| topo15_map =
| topo15_maker =
| topo15_note =
<!-- *** Fria fält *** -->
| free =
| free_type =
| free_label =
| free_note =
| free1 =
| free1_type =
| free1_label =
| free1_note =
| free2 =
| free2_type =
| free2_label =
| free2_note =
| free3 =
| free3_type =
| free3_label =
| free3_note =
| free4 =
| free4_type =
| free4_label =
| free4_note =
| free5 =
| free5_type =
| free5_label =
| free5_note =
| free6 =
| free6_type =
| free6_label =
| free6_note =
| free7 =
| free7_type =
| free7_label =
| free7_note =
| free8 =
| free8_type =
| free8_label =
| free8_note =
| free9 =
| free9_type =
| free9_label =
| free9_note =
| free10 =
| free10_type =
| free10_label =
| free10_note =
| free11 =
| free11_type =
| free11_label =
| free11_note =
| free12 =
| free12_type =
| free12_label =
| free12_note =
| free13 =
| free13_type =
| free13_label =
| free13_note =
| free14 =
| free14_type =
| free14_label =
| free14_note =
<!-- *** Karta *** -->
| map =
| map_caption =
| map_size =
| map_locator =
| map_locator_x =
| map_locator_y =
| map_background =
| map1 =
| map1_caption =
| map1_size =
| map1_locator =
| map1_locator_x =
| map1_locator_y =
| map1_background =
| map2 =
| map2_caption =
| map2_size =
| map2_locator =
| map2_locator_x =
| map2_locator_y =
| map2_background =
<!-- *** KML *** -->
| KML =
<!-- *** Webbplatser *** -->
| commons =
| commons_type =
| commons_label =
| commons_note =
| statistics =
| statistics_type =
| statistics_label =
| statistics_date =
| statistics_note =
| website =
| website_type =
| website_label =
| website_note =
<!-- *** Fotnoter *** -->
| footnotes =
| footnotes_type =
| footnotes_label =
| footnotes_note =
| geonames = 10862214
}}
<!--L.PRK-->[[Parke]] ang '''Mitsuike Kōen''' sa [[Hapon]].<ref name = "gn10862214"/> Nahimutang ni sa prepektura sa <!--ADM1-->[[Kanagawa-ken]], sa habagatan-sidlakang bahin sa nasod, {{formatnum:19}} km sa habagatan sa [[Tokyo (ulohang dakbayan sa Hapon)|Tokyo]] ang ulohan sa nasod. {{formatnum:29}} metros ibabaw sa dagat kahaboga ang nahimutangan sa Mitsuike Kōen.<ref name = "gn10862214"/>
Ang yuta palibot sa Mitsuike Kōen patag.{{efn|group=saysay|Kalkulado gikan sa pakigbingkil sa tanan nga gitas-on data (DEM 3") gikan sa Viewfinder Panoramas, sa sulod sa 10 ka kilometro radius.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kinahabogang dapit sa palibot dunay gihabogon nga {{formatnum:51}} ka metro ug {{formatnum:1.0 }} km sa habagatan sa Mitsuike Kōen.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}} Ang kinadul-ang mas dakong lungsod mao ang [[Tokyo (ulohang dakbayan sa Hapon)|Tokyo]], {{formatnum:18.8}} km sa amihanan sa Mitsuike Kōen. Sa rehiyon palibot sa Mitsuike Kōen, mga kanal talagsaon komon.{{efn|group=saysay|Mas sulod sa 20 ka kilometro gilay-on itandi sa average nga densidad sa Yuta, sumala sa GeoNames.<ref name = "gn10862214"/>}}
Ang klima [[umogon]] ug [[subtropikal]].<ref name = "koppen"/> Ang kasarangang giiniton {{formatnum:18}} [[°C]]. Ang kinainitan nga bulan Hulyo, sa {{formatnum:26}} [[°C]], ug ang kinabugnawan Enero, sa {{formatnum:9}} °C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1894}} milimetro matag tuig. Ang kinabasaan nga bulan Oktubre, sa {{formatnum:295}} milimetro nga ulan, ug ang kinaugahan Enero, sa {{formatnum:72}} milimetro.<ref name = "nasarain"/>
{|
|-
|{{climate chart
| Mitsuike Kōen
| 6| 12| 72
| 6| 12| 151
| 8| 17| 111
| 11| 20| 194
| 18| 27| 174
| 15| 27| 294
| 23| 30| 109
| 24| 28| 73
| 22| 27| 193
| 18| 24| 295
| 13| 19| 118
| 7| 15| 110
|float=left
|clear=left
|source = <ref name = "nasa"/>
}}
|}
{{Location map|Japan |float = right |width=300 | caption = Nahimutangan sa Mitsuike Kōen sa Hapon. | label = Mitsuike Kōen|position=right|background=white|lat=35.52229|long=139.65812}}
== Saysay ==
<references group="saysay"/>
== Ang mga gi basihan niini ==
<references>
<ref name = "gn10862214">[{{Geonameslink|gnid=10862214|name=mitsuike%20koen}} Mitsuike Kōen] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2015-11-10; database download sa 2017-02-07</ref>
<ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref>
<ref name = "koppen">{{cite journal |last= Peel|first= M C|last2= Finlayson|first2= B L|date= |title= Updated world map of the Köppen-Geiger climate classification| url = http://www.hydrol-earth-syst-sci.net/11/1633/2007/hess-11-1633-2007.html |journal= Hydrology and Earth System Sciences|publisher= |volume= 11|issue= |pages= 1633-1644|doi= 10.5194/hess-11-1633-2007|access-date=30 Enero 2016}}</ref>
<ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref>
<ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref>
</references>
[[Kategoriya:Mga dapit sa Kanagawa-ken]]
4c2f74lawmp3q61stx06qfbcz9911v9
Lalawigan sa Đồng Tháp
0
7449043
37024578
37021562
2026-07-23T16:52:34Z
Vietic2
134088
/* Tỉnh Đồng Tháp may sa mosunod nga mga subdivision */
37024578
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Viyetnam|date=2017-03}}
{{geobox
| 1 = Region
<!-- *** Header *** -->
| name = Tỉnh Đồng Tháp
| native_name =
| other_name = Đồng Tháp
| category = Lalawigan
| official_name =
| etymology =
| motto =
| nickname =
<!-- *** Image *** -->
| image =
| image_caption =
<!-- *** Symbols *** -->
| flag =
| symbol =
<!-- *** Admin *** -->
| country = {{flag|Viyetnam}}
| country_flag =
| state =
| state_type =
| region =
| region_type =
| district =
| district_type =
| economic_region =
| economic_region_type =
<!-- *** Associated with *** -->
| border =
| part =
| city =
| landmark =
| river =
<!-- *** Location *** -->
| capital = Cao Lãnh
| capital_type =
| capital_location =
| capital_region =
| capital_country =
| capital_elevation =
| capital_lat_d =
| capital_lat_m =
| capital_lat_s =
| capital_lat_NS =
| capital_long_d =
| capital_long_m =
| capital_long_s =
| capital_long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
| lowest =
| lowest_location =
| lowest_region =
| lowest_country =
| lowest_elevation =
| lowest_lat_d =
| lowest_lat_m =
| lowest_lat_s =
| lowest_lat_NS =
| lowest_long_d =
| lowest_long_m =
| lowest_long_s =
| lowest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| area = 3238.00
| area_decimals =
<!-- *** Population *** -->
| population = 1639400
| population_date = 2015-05-07
| population_density = auto
| established =
| date =
| government_location =
| government_region =
| government_country =
| government_elevation =
| government_lat_d =
| government_lat_m =
| government_lat_s =
| government_lat_NS =
| government_long_d =
| government_long_m =
| government_long_s =
| government_long_EW =
| leader =
| leader_party =
<!-- *** Codes *** -->
| timezone = [[Indochina Time|ICT]]
| utc_offset = +7
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_size =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Website *** -->
| website =
<!-- *** Notes *** -->
| footnotes =
| other_name1 =
| lat_d = 10.58333
| long_d = 105.63333
| elevation = 4
| population_note = <ref name = "gn1582562"/>
| timezone_label = Asia/Ho_Chi_Minh
| map2 = Dong Thap in Vietnam.svg
| iso_code = {{#property:P300}}
}}
<!--A.ADM1-->[[administratibo nga mga dibisyon sa Viyetnam|Lalawigan]] ang '''Tỉnh Đồng Tháp''' sa [[Viyetnam]].<ref name = "gn1582562"/> Nahimutang ni sa habagatang bahin sa nasod, {{formatnum:1200}} km sa habagatan sa [[Hanoi]] ang ulohan sa nasod. Adunay <!--pop-->{{formatnum:1639400}} ka molupyo.<ref name = "gn1582562"/> Naglangkob kin og {{formatnum:3238}} ka kilometro kwadrado. Tỉnh Đồng Tháp mopakigbahin sa usa ka utlanan sa Prey Veng (lalawigan).
Ang yuta sa Tỉnh Đồng Tháp daghan kaayong patag.{{efn|group=saysay|Kalkulado gikan sa gitas-on data (DEM 3") gikan sa Viewfinder Panoramas.<ref name = "vp"/> Ang bug-os nga algoritmo anaa [https://sv.wikipedia.org/wiki/Wikipedia:Projekt_DotNetWikiBot_Framework/Lsjbot/Make-Geonames dinhi].}}
==Tỉnh Đồng Tháp may sa mosunod nga mga subdibisyon==
*20 phường gồm: [[Phường Mỹ Tho]], [[Phường Đạo Thạnh]], [[Mỹ Phong|Phường Mỹ Phong]], [[Phường Thới Sơn]], [[Phường Trung An]], [[Phường Gò Công]], [[Phường Long Thuận]], [[Phường Bình Xuân]], [[Phường Sơn Qui]], [[Phường An Bình]], [[Phường Hồng Ngự]], [[Phường Thường Lạc]], [[Phường Cao Lãnh]], [[Phường Mỹ Ngãi]], [[Phường Mỹ Trà]], [[Phường Sa Đéc]], [[Phường Mỹ Phước Tây]], [[Phường Thanh Hòa]], [[Phường Cai Lậy]], [[Phường Nhị Quý]].
*82 xã gồm: [[Xã Tân Hồng]], [[Xã Tân Thành]], [[Xã Tân Hộ Cơ]], [[Xã An Phước]], [[Xã Thường Phước]], [[Xã Long Khánh]], [[Xã Long Phú Thuận]], [[Xã An Hòa]], [[Xã Tam Nông]], [[Xã Phú Thọ]], [[Xã Tràm Chim]], [[Xã Phú Cường]], [[Xã An Long]], [[Xã Thanh Bình]], [[Xã Tân Thạnh]], [[Xã Bình Thành]], [[Xã Tân Long]], [[Xã Tháp Mười]], [[Xã Thanh Mỹ]], [[Xã Mỹ Quí]], [[Xã Đốc Binh Kiều]], [[Xã Trường Xuân]], [[Xã Phương Thịnh]], [[Xã Phong Mỹ]], [[Xã Ba Sao]], [[Xã Mỹ Thọ]], [[Xã Bình Hàng Trung]], [[Xã Mỹ Hiệp]], [[Mỹ An Hưng]], [[Tân Khánh Trung]], [[Xã Lấp Vò]], [[Xã Lai Vung]], [[Xã Hòa Long]], [[Xã Phong Hòa]], [[Xã Tân Dương]], [[Xã Phú Hựu]], [[Xã Tân Nhuận Đông]], [[Xã Tân Phú Trung]], [[Xã Tân Phú]], [[Xã Thanh Hưng]], [[Xã An Hữu]], [[Xã Mỹ Lợi]], [[Xã Mỹ Đức Tây]], [[Xã Mỹ Thiện]], [[Xã Hậu Mỹ]], [[Xã Hội Cư]], [[Xã Cái Bè]], [[Xã Mỹ Thành]], [[Xã Thạnh Phú]], [[Xã Bình Phú]], [[Xã Hiệp Đức]], [[Xã Long Tiên]], [[Xã Ngũ Hiệp]], [[Xã Tân Phước 1]], [[Xã Tân Phước 2]], [[Xã Tân Phước 3]], [[Xã Hưng Thạnh]], [[Xã Tân Hương]], [[Xã Châu Thành]], [[Xã Long Hưng]], [[Xã Long Định]], [[Xã Bình Trưng]], [[Xã Vĩnh Kim]], [[Xã Kim Sơn]], [[Xã Mỹ Tịnh An]], [[Xã Lương Hòa Lạc]], [[Xã Tân Thuận Bình]], [[Xã Chợ Gạo]], [[Xã An Thạnh Thủy]], [[Xã Bình Ninh]], [[Xã Vĩnh Bình]], [[Xã Đồng Sơn]], [[Xã Phú Thành]], [[Xã Long Bình]], [[Xã Vĩnh Hựu]], [[Xã Gò Công Đông]], [[Xã Tân Điền]], [[Xã Tân Hòa]], [[Xã Tân Đông]], [[Xã Gia Thuận]], [[Xã Tân Thới]], [[Xã Tân Phú Đông]].
==Sa mosunod nga mga natural nga mga bahin makita sa Tỉnh Đồng Tháp==
* Mga suba:
:* [[Rạch Cá Bãy]] (<!--H.STM-->[[suba]])
:* [[Rạch Cái Cai]] (<!--H.STM-->[[suba]])
:* [[Rạch Cái Cái]] (<!--H.STM-->[[suba]])
:* [[Rạch Cái Gân]] (<!--H.STM-->[[suba]])
:* [[Rạch Cái Gôc]] (<!--H.STM-->[[suba]])
:* [[Rạch Cái Sách]] (<!--H.STM-->[[suba]])
:* [[Rạch Cái Tre]] (<!--H.STM-->[[suba]])
:* [[Rạch Cần Lô]] (<!--H.STM-->[[suba]])
:* [[Rạch Đốc Váng Hạ]] (<!--H.STM-->[[suba]])
:* [[Rạch Ma Trương]] (<!--H.STM-->[[suba]])
:* [[Rạch Mỹ Ngãi]] (<!--H.STM-->[[suba]])
:* [[Rạch Sa Rài]] (<!--H.STM-->[[suba]])
:* [[Rạch Sầm Sai]] (<!--H.STM-->[[suba]])
:* [[Rạch Thanh Các]] (<!--H.STM-->[[suba]])
:* [[Rạch Thông Lưu (suba sa Tỉnh Đồng Tháp)|Rạch Thông Lưu]] (<!--H.STM-->[[suba]])
:* [[Rạch Trà Dư]] (<!--H.STM-->[[suba]])
:* [[Sông An Khánh]] (<!--H.STM-->[[suba]])
:* [[Sông Phú An (suba sa Tỉnh Đồng Tháp)|Sông Phú An]] (<!--H.STM-->[[suba]])
:* [[Sông Sa Đéc]] (<!--H.STM-->[[suba]])
:* [[Sông Sáng]] (<!--H.STM-->[[suba]])
:* [[Sông Lai Vung]] (<!--H.STM-->[[suba]])
* Mga kanal:
:* [[Kênh Bà Khạo]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Bà Lái]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Bình Tiên]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Chà]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Dôn Điền]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Kà Lò]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Lấp]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Lung Cái]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Miếu Trắng]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Mới (kanal sa Tỉnh Đồng Tháp)|Kênh Mới]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Ngang]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Ông Huyện (kanal sa Tỉnh Đồng Tháp)|Kênh Ông Huyện]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Phóng Sanh]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Rạch Rung]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Thầy Năm]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Thầy Tám]] (<!--H.CNL-->[[kanal]])
:* [[Kênh Xã Khánh]] (<!--H.CNL-->[[kanal]])
:* [[Kinh An Phong]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Bà Chủ]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Cả Trạch]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Cái Bèo]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Cộng Hòa]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Gò Gia]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Hai Mươi Bảy]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Hai Mươi Lăm]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Hai Mươi Sáu]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Hòa Bình]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Hương Sư An]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Hương Sư Cung]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Hương Trưởng]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Lấp Vò]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Mới (kanal sa Tỉnh Đồng Tháp)|Kinh Mới]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Mương Khai]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Năm Ty]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Ngưu Sơn]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Nguyễn Văn Tiếp]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Ông Thomasini]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Số Một (kanal sa Tỉnh Đồng Tháp)|Kinh Số Một]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Tháp Mười]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Thầy Ba Đàn]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Thầy Ba Gỉ]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Thầy Cai (kanal sa Tỉnh Đồng Tháp)|Kinh Thầy Cai]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Thầy Cal]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Thống Nhất]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Thường Phước]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Trung Ương]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Tư Cũ]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Xang An Long]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Xáng Một]] (<!--H.CNL-->[[kanal]])
:* [[Kinh Xẻo Mít]] (<!--H.CNL-->[[kanal]])
:* [[Mương Bà Phú]] (<!--H.CNL-->[[kanal]])
:* [[Mương Rạch Trong]] (<!--H.CNL-->[[kanal]])
:* [[Ngả Cá Các]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Bần Góc]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Bằng Làng]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Bằng Lăng]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Cả Ngổ]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Cầu Sanh]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Cống Hai]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Giá (kanal)|Rạch Giá]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Giông Nội]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Gốc Cưa]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Ngõ Nhỏ]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Nhưng Lương]] (<!--H.CNL-->[[kanal]])
:* [[Ràch Ông Năm Lùng]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Xeo Lăng]] (<!--H.CNL-->[[kanal]])
:* [[Rạch Xẻo Sâu]] (<!--H.CNL-->[[kanal]])
* Kapuloan:
:* [[Cồn Chài]] (<!--T.ISL-->[[pulo]])
:* [[Cồn Linh]] (<!--T.ISL-->[[pulo]])
:* [[Cù Lao Cái Vưng]] (<!--T.ISL-->[[pulo]])
:* [[Cù Lao Chà Và]] (<!--T.ISL-->[[pulo]])
:* [[Cù Lao Long Khành]] (<!--T.ISL-->[[pulo]])
:* [[Cù Lao Ma]] (<!--T.ISL-->[[pulo]])
:* [[Cù Lao Tây]] (<!--T.ISL-->[[pulo]])
{{Location map|Vietnam |float = right |width=300 | caption = Nahimutangan sa Tỉnh Đồng Tháp sa Viyetnam. | label = Tỉnh Đồng Tháp|position=right|background=white|lat=10.58333|long=105.63333}}
== Saysay ==
<references group="saysay"/>
== Ang mga gi basihan niini ==
<references>
<ref name = "gn1582562">[{{Geonameslink|gnid=1582562|name=tinh%20gjong%20thap}} Tỉnh Đồng Tháp] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2015-05-07; database download sa 2017-02-28</ref>
<ref name = "vp">{{Cite web |url= {{Viewfinderlink}}|title= Viewfinder Panoramas Digital elevation Model|date= 2015-06-21|format= }}</ref>
</references>
== Gikan sa gawas nga tinubdan==
{{commonscat|Dong Thap Province|Tỉnh Đồng Tháp}}
[[Kategoriya:Mga subdibisyon sa Viyetnam]]
[[Kategoriya:Tỉnh Đồng Tháp| ]]
im74fd0sna6q4kvn2jl92qjqy1hl0t0
Mỹ Phong
0
7456101
37024576
27458231
2026-07-23T16:51:21Z
Vietic2
134088
Vietic2 moved page [[Xã Mỹ Phong (munisipyo sa Tỉnh Tiền Giang)]] to [[Mỹ Phong]]
27458231
wikitext
text/x-wiki
{{paghimo ni bot|Lsjbot|Viyetnam|date=2017-03}}
:''Alang sa ubang mga dapit sa mao gihapon nga ngalan, tan-awa ang [[Xã Mỹ Phong]].''
{{geobox
| 1 = Region
<!-- *** Header *** -->
| name = Xã Mỹ Phong
| native_name =
| other_name =
| category = Munisipyo
| official_name =
| etymology =
| motto =
| nickname =
<!-- *** Image *** -->
| image =
| image_caption =
<!-- *** Symbols *** -->
| flag =
| symbol =
<!-- *** Admin *** -->
| country = {{flag|Viyetnam}}
| country_flag =
| state = [[Tỉnh Tiền Giang]]
| state_type = Lalawigan
| region =
| region_type =
| district =
| district_type =
| economic_region =
| economic_region_type =
<!-- *** Associated with *** -->
| border =
| part =
| city =
| landmark =
| river =
<!-- *** Location *** -->
| capital =
| capital_type =
| capital_location =
| capital_region =
| capital_country =
| capital_elevation =
| capital_lat_d =
| capital_lat_m =
| capital_lat_s =
| capital_lat_NS =
| capital_long_d =
| capital_long_m =
| capital_long_s =
| capital_long_EW =
| highest =
| highest_location =
| highest_region =
| highest_country =
| highest_elevation =
| highest_lat_d =
| highest_lat_m =
| highest_lat_s =
| highest_lat_NS =
| highest_long_d =
| highest_long_m =
| highest_long_s =
| highest_long_EW =
| lowest =
| lowest_location =
| lowest_region =
| lowest_country =
| lowest_elevation =
| lowest_lat_d =
| lowest_lat_m =
| lowest_lat_s =
| lowest_lat_NS =
| lowest_long_d =
| lowest_long_m =
| lowest_long_s =
| lowest_long_EW =
<!-- *** Dimensions *** -->
| length =
| length_orientation =
| width =
| width_orientation =
| area =
| area_decimals =
<!-- *** Population *** -->
| population =
| population_date =
| population_density =
<!-- *** History and politics *** -->
| established =
| date =
| government_location =
| government_region =
| government_country =
| government_elevation =
| government_lat_d =
| government_lat_m =
| government_lat_s =
| government_lat_NS =
| government_long_d =
| government_long_m =
| government_long_s =
| government_long_EW =
| leader =
| leader_party =
<!-- *** Codes *** -->
| timezone = [[Indochina Time|ICT]]
| utc_offset = +7
| timezone_DST =
| utc_offset_DST =
| postal_code =
| area_code =
| code =
<!-- *** Free *** -->
| free =
| free_type =
<!-- *** Maps *** -->
| map =
| map_size =
| map_caption =
| map_locator_x =
| map_locator_y =
<!-- *** Website *** -->
| website =
<!-- *** Notes *** -->
| footnotes =
| lat_d = 10.38196
| long_d = 106.38397
| timezone_label = Asia/Ho_Chi_Minh
| geonames = 8337758
}}
<!--A.ADM3-->[[administratibo nga mga dibisyon sa Viyetnam|Munisipyo]] ang '''Xã Mỹ Phong''' sa [[Viyetnam]].<ref name = "gn8337758"/> Nahimutang ni sa lalawigan sa <!--ADM1-->[[Tỉnh Tiền Giang]], sa habagatang bahin sa nasod, {{formatnum:1200}} km sa habagatan sa [[Hanoi]] ang ulohan sa nasod.
Ang [[klima nga savanna]].<ref name = "koppen"/> Ang kasarangang giiniton {{formatnum:25}} [[°C]]. Ang kinainitan nga bulan Mayo, sa {{formatnum:26}} [[°C]], ug ang kinabugnawan Enero, sa {{formatnum:23}} °C.<ref name = "nasa"/> Ang kasarangang pag-ulan {{formatnum:1705}} milimetro matag tuig. Ang kinabasaan nga bulan Septiyembre, sa {{formatnum:372}} milimetro nga ulan, ug ang kinaugahan Pebrero, sa {{formatnum:12}} milimetro.<ref name = "nasarain"/>
{{Location map|Vietnam |float = right |width=300 | caption = Nahimutangan sa Xã Mỹ Phong sa Viyetnam. | label = Xã Mỹ Phong|position=right|background=white|lat=10.38196|long=106.38397}}
== Ang mga gi basihan niini ==
<references>
<ref name = "gn8337758">[{{Geonameslink|gnid=8337758|name=xa%20my%20phong}} Xã Mỹ Phong] sa [{{Geonamesabout}} Geonames.org (cc-by)]; post updated 2012-07-05; database download sa 2017-02-28</ref>
<ref name = "koppen">{{cite journal |last= Peel|first= M C|last2= Finlayson|first2= B L|date= |title= Updated world map of the Köppen-Geiger climate classification| url = http://www.hydrol-earth-syst-sci.net/11/1633/2007/hess-11-1633-2007.html |journal= Hydrology and Earth System Sciences|publisher= |volume= 11|issue= |pages= 1633-1644|doi= 10.5194/hess-11-1633-2007|access-date=30 Enero 2016}}</ref>
<ref name = "nasa">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/dataset_index.php|title= NASA Earth Observations Data Set Index|access-date = 30 Enero 2016 |publisher= NASA}}</ref>
<ref name = "nasarain">{{Cite web |url= http://neo.sci.gsfc.nasa.gov/view.php?datasetId=TRMM_3B43M|title= NASA Earth Observations: Rainfall (1 month - TRMM)|access-date = 30 Enero 2016 |publisher= NASA/Tropical Rainfall Monitoring Mission}}</ref>
</references>
[[Kategoriya:Mga subdibisyon sa Tỉnh Tiền Giang]]
6pwbujgv6wcjzk4uuoldezvjdt8rgn1
Kategoriya:Austin Powers
14
10096518
37024554
35080950
2026-07-23T13:42:11Z
Shrekiolous
144427
added [[Category:Mga prangkisa sa mass media]] using [[Help:Gadget-HotCat|HotCat]]
37024554
wikitext
text/x-wiki
Mga artikulo nga may kalabotan sa franchise sa ''[[Austin Powers]]''.
[[Kategoriya:Amerikanong pelikula]]
[[Kategoriya:Mga prangkisa sa mass media]]
mlmvt3aqv9yfmlj9vfd9ebsywhckatr
Kategoriya:Britanikong pelikula
14
10154025
37024552
30472199
2026-07-23T13:39:20Z
Shrekiolous
144427
+[[Kategoriya:Mga pelikula sa nasud]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Kultura sa Hiniusang Gingharian]] using [[Help:Gadget-HotCat|HotCat]]
37024552
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Hiniusang Gingharian|Pelikula]]
[[Kategoriya:Mga pelikula sa nasud]]
ghmz5b9yo0sc272xnr3uajl4tjhb3vt
50 First Dates
0
10183411
37024642
37024112
2026-07-24T00:29:11Z
~2026-41265-79
146593
37024642
wikitext
text/x-wiki
Ang '''''50 First Dates''''' (2004) maoy [[Amerikano]]ng pelikula gidirek ni Peter Segal.
==Cast==
*[[Adam Sandler]]
*[[Drew Barrymore]]
*[[Dan Aykroyd]]
*[[Allen Covert]]
*[[Blake Clark]]
*[[Sean Astin]]
[[Kategoriya:2004 nga mga pelikula]]
[[Kategoriya:2004 nga mga pelikula sa komedya]]
[[Kategoriya:Amerikanong pelikula]]
[[Kategoriya:Mga pelikula sa Columbia Pictures]]
[[Kategoriya:Mga pelikula sa Sony Pictures]]
==Musika nga mga 1980s at 1990s==
Musika nga mga 1980s at 1990s tracklist.
===Tracklist===
{|class="wikitable"
|-
! No.
! Title
! Artist
! Ref
|-
| style="background:#A7F432;"| 1
| style="background:#A7F432;"| Hold Me Now
| style="background:#A7F432;"| Thompson Twins
| style="background:#A7F432;"| <ref>{{Citation|title="Hold Me Now" by Thompson Twins|url=https://m.youtube.com/watch?v=TvzVTRK1nOY}}</ref>
|-
| style="background:#FF0000;"| 2
| style="background:#FF0000;"| Love Song
| style="background:#FF0000;"| [[The Cure]]
| style="background:#FF0000;"| <ref>{{Citation|title="Love Song" by The Cure|url=https://m.youtube.com/watch?v=ks_qOI0lzho}}</ref>
|-
| style="background:#6B4423;"| 3
| style="background:#6B4423;"| Lips Like Sugar
| style="background:#6B4423;"| Echo & the Bunnymen
| style="background:#6B4423;"| <ref>{{Citation|title="Lips Like Sugar" by Echo & the Bunnymen|url=https://m.youtube.com/watch?v=9hGcJA8fXvU}}</ref>
|-
| style="background:#00CCFF;"| 4
| style="background:#00CCFF;"| Your Love
| style="background:#00CCFF;"| The Outfield
| style="background:#00CCFF;"| <ref>{{Citation|title="Your Love" by The Outfield|url=https://m.youtube.com/watch?v=4N1iwQxiHrs}}</ref>
|-
| style="background:#0000FF;"| 5
| style="background:#0000FF;"| Drive
| style="background:#0000FF;"| The Cars
| style="background:#0000FF;"| <ref>{{Citation|title="Drive" by The Cars|url=https://m.youtube.com/watch?v=xuZA6qiJVfU}}</ref>
|-
| style="background:#967117;"| 6
| style="background:#967117;"| True
| style="background:#967117;"| Spandau Ballet
| style="background:#967117;"| <ref>{{Citation|title="True" by Spandau Ballet|url=https://m.youtube.com/watch?v=AR8D2yqgQ1U}}</ref>
|-
| style="background:#FF7F00;"| 7
| style="background:#FF7F00;"| Slave to Love
| style="background:#FF7F00;"| Bryan Ferry
| style="background:#FF7F00;"| <ref>{{Citation|title="Slave to Love" by Bryan Ferry|url=https://m.youtube.com/watch?v=9ZcaNQthV90}}</ref>
|-
| style="background:#007474;"| 8
| style="background:#007474;"| Every Breath You Take
| style="background:#007474;"| The Police
| style="background:#007474;"| <ref>{{Citation|title="Every Breath You Take" by The Police|url=https://m.youtube.com/watch?v=OMOGaugKpzs}}</ref>
|-
| style="background:#6A0DAD;"| 9
| style="background:#6A0DAD;"| Ghost in You
| style="background:#6A0DAD;"| The Psychedelic Furs
| style="background:#6A0DAD;"| <ref>{{Citation|title="Ghost in You" by The Psychedelic Furs|url=https://m.youtube.com/watch?v=T87u5yuUVi8}}</ref>
|-
| style="background:#FE4EDA;"| 10
| style="background:#FE4EDA;"| Friday, I'm in Love
| style="background:#FE4EDA;"| [[The Cure]]
| style="background:#FE4EDA;"| <ref>{{Citation|title="Friday, I'm in Love" by The Cure |url=https://m.youtube.com/watch?v=mGgMZpGYiy8}}</ref>
|-
| style="background:#C0C0C0;"| 11
| style="background:#C0C0C0;"| Breakfast in Bed
| style="background:#C0C0C0;"| UB40 and Chrissie Hynde
| style="background:#C0C0C0;"| <ref>{{Citation|title="Breakfast in Bed" by UB40 and Chrissie Hynde|url=https://m.youtube.com/watch?v=IKG3ykRMGiI}}</ref>
|-
| style="background:#FFFF00;"| 12
| style="background:#FFFF00;"| I Melt with You
| style="background:#FFFF00;"| Modern English
| style="background:#FFFF00;"| <ref>{{Citation|title="I Melt with You" by Modern English|url=https://m.youtube.com/watch?v=LuN6gs0AJls}}</ref>
|}
==References==
{{reflist}}
sr8cswup7t2qpcmbt88zufqza0b7ll1
Kategoriya:Mga pelikula sa Doraemon
14
11338712
37024559
34899773
2026-07-23T13:47:45Z
Shrekiolous
144427
removed [[Category:Anime]] using [[Help:Gadget-HotCat|HotCat]]
37024559
wikitext
text/x-wiki
[[Kategoriya:Doraemon|Pelikula]]
[[Kategoriya:Haponng karton nga pelikula]]
[[Kategoriya:Mga pelikula sa Toho]]
8ak20dztkjyjx85f3pjmlpt68xca557
Kategoriya:Haponng pelikula
14
11338718
37024555
34899715
2026-07-23T13:44:24Z
Shrekiolous
144427
±[[Kategoriya:Hapon]]→[[Kategoriya:Kultura sa Hapon]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Mga pelikula sa nasud]] using [[Help:Gadget-HotCat|HotCat]]
37024555
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Hapon|Pelikula]]
[[Kategoriya:Mga pelikula sa nasud]]
oashpx6z8jq3nr1qxy8kfwpg0dbxtws
Module:Params
828
11344936
37024540
37024041
2026-07-23T13:27:35Z
Grufo
121109
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]]
37024540
Scribunto
text/plain
require[[strict]]
--- ---
--- PRIVATE ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Abstract utilities ]]--
----------------------------
-- Helper function for `string.gsub()` (for managing zero-padded numbers)
local function zero_padded (str)
return ('%03d%s'):format(#str, str)
end
-- Helper function for `table.sort()` (for natural sorting)
local function natural_sort (var1, var2)
return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded)
end
-- Return a copy or a reference to a table
local function copy_or_ref_table (src, refonly)
if refonly then return src end
local newtab = {}
for key, val in pairs(src) do newtab[key] = val end
return newtab
end
-- Copy at most N items (of all kinds) from `src` to `dest` and return `dest`
local function copy_table_maxn (dest, src, len)
local idx = 1
for key, val in pairs(src) do
dest[key], idx = val, idx + 1
if idx > len then break end
end
return dest
end
-- Remove some numeric elements from a table, shifting everything to the left
local function remove_numeric_keys (tbl, idx, len)
local cache, tmp = {}, idx + len - 1
for key, val in pairs(tbl) do
if type(key) == 'number' and key >= idx then
if key > tmp then cache[key - len] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
-- Make a reduced copy of a table (shifting in both directions if necessary)
local function copy_table_reduced (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
elseif key > tmp then ret[key - len] = val end
end
elseif tmp > 0 then
local nshift = 1 - idx
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > tmp then ret[key - tmp] = val
elseif key < idx then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
elseif key < idx then ret[key + len] = val end
end
end
return ret
end
-- Make an expanded copy of a table (shifting in both directions if necessary)
local function copy_table_expanded (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
else ret[key + len] = val end
end
elseif tmp > 0 then
local nshift = idx - 1
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > 0 then ret[key + tmp] = val
elseif key < 1 then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
else ret[key - len] = val end
end
end
return ret
end
-- Given a table, create two new tables containing the sorted list of keys
local function get_key_list_sorted (tbl, sort_fn)
local nums, words, nn, nw = {}, {}, 0, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
nn = nn + 1
nums[nn] = key
else
nw = nw + 1
words[nw] = key
end
end
table.sort(nums)
table.sort(words, sort_fn)
return nums, words, nn, nw
end
-- Parse a parameter name string and return it as a string or a number
local function get_parameter_name (par_str)
local ret = par_str:match'^%s*(.-)%s*$'
if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end
return tonumber(ret)
end
-- Move a key from a table to another, but only if under a different name and
-- always parsing numeric strings as numbers
local function steal_if_renamed (val, src, skey, dest, dkey)
local realkey = get_parameter_name(dkey)
if skey ~= realkey then dest[realkey], src[skey] = val, nil end
end
--[[ Public strings ]]--
------------------------
-- Special match keywords (functions and modifiers MUST avoid these names)
local mkeywords = {
['or'] = 0,
pattern = 1,
plain = 2,
strict = 3
}
-- Sort functions (functions and modifiers MUST avoid these names)
local sortfunctions = {
alphabetically = false,
naturally = natural_sort
}
-- Callback styles for the `mapping_*` and `renaming_*` class of modifiers
-- (functions and modifiers MUST avoid these names)
--[[
Meanings of the columns:
col[1] = Loop type (0-3)
col[2] = Number of module arguments that the style requires (1-3)
col[3] = Minimum number of sequential parameters passed to the callback
col[4] = Name of the callback parameter where to place each parameter name
col[5] = Name of the callback parameter where to place each parameter value
col[6] = Argument in the modifier's invocation that will override `col[4]`
col[7] = Argument in the modifier's invocation that will override `col[5]`
A value of `-1` indicates that no meaningful value is stored (i.e. `nil`)
]]--
local mapping_styles = {
names_and_values = { 3, 2, 2, 1, 2, -1, -1 },
values_and_names = { 3, 2, 2, 2, 1, -1, -1 },
values_only = { 1, 2, 1, -1, 1, -1, -1 },
names_only = { 2, 2, 1, 1, -1, -1, -1 },
names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 },
names_only_as = { 2, 3, 0, -1, -1, 2, -1 },
values_only_as = { 1, 3, 0, -1, -1, -1, 2 },
blindly = { 0, 2, 0, -1, -1, -1, -1 }
}
-- Memory slots (functions and modifiers MUST avoid these names)
local memoryslots = {
h = 'header',
f = 'footer',
i = 'itersep',
l = 'lastsep',
n = 'ifngiven',
p = 'pairsep',
s = 'oxfordsep'
}
-- Possible trimming modes for the `parsing` modifier
local trim_parse_opts = {
trim_none = { false, false },
trim_positional = { false, true },
trim_named = { true, false },
trim_all = { true, true }
}
-- Possible string modes for the iteration separator in the `parsing` and
-- `reinterpreting` modifiers
local isep_parse_opts = {
splitter_pattern = false,
splitter_string = true
}
-- Possible string modes for the key-value separator in the `parsing` and
-- `reinterpreting` modifiers
local psep_parse_opts = {
setter_pattern = false,
setter_string = true
}
-- Possible position references for the `splicing` modifier
local position_references = {
add_nothing = 0,
add_smallest_number = 1,
add_last_of_sequence = 2,
add_largest_number = 3
}
-- Possible modes for the `reassigning` modifier
local a_modes = {
transfer = 0,
clone = 1,
rename = 2,
copy = 3,
sacrifice = 4,
provide = 5,
spare = 7
}
-- Functions and modifiers MUST avoid these names too: `here`, `in_substack`,
-- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue`
-- `without_sorting`
--[[ Private constants ]]--
---------------------------
-- Hard-coded name of the module (to avoid going through `frame:getTitle()`)
local modulename = 'Module:Params'
-- The functions listed here declare that they don't need the `frame.args`
-- metatable to be copied into a regular table; if they are modifiers they also
-- guarantee that they will make their own (modified) copy available
local refpipe = {
call_for_each_group = true,
--coins = true,
count = true,
evaluating = true,
for_each = true,
list = true,
list_values = true,
list_maybe_with_names = true,
value_of = true
}
-- The functions listed here declare that they don't need the
-- `frame:getParent().args` metatable to be copied into a regular table; if
-- they are modifiers they also guarantee that they will make their own
-- (modified) copy available
local refparams = {
call_for_each_group = true,
combining = true,
combining_by_calling = true,
combining_values = true,
concat_and_call = true,
concat_and_invoke = true,
concat_and_magic = true,
count = true,
grouping_by_calling = true,
mixing_names_and_values = true,
keeping_at_most = true,
renaming_by_mixing = true,
renaming_to_sequence = true,
renaming_to_uppercase = true,
renaming_to_lowercase = true,
--renaming_to_values = true,
shifting = true,
splicing = true,
--swapping_names_and_values = true,
value_of = true,
with_name_matching = true
}
-- Maximum number of numeric parameters that can be filled, if missing (we
-- chose an arbitrary number for this constant; you can discuss about its
-- optimal value at Module talk:Params)
local maxfill = 1024
-- The private table of functions
local library = {}
-- Functions and modifiers that can only be invoked in first position
local static_iface = {}
--[[ Private functions ]]--
---------------------------
-- Create a new context
local function context_new (child_frame)
local main_frame = child_frame:getParent()
return {
frame = main_frame,
opipe = child_frame.args,
oparams = main_frame.args,
firstposonly = static_iface,
iterfunc = pairs,
sorttype = 0,
n_parents = 0,
n_children = 0,
n_available = maxfill
}
end
-- Move to the next action within the user-given list
local function context_iterate (ctx, n_forward)
local nextfn
if ctx.pipe[n_forward] ~= nil then
nextfn = ctx.pipe[n_forward]:match'^%s*(.*%S)'
end
if nextfn == nil then error(modulename ..
': You must specify a function to call', 0) end
if library[nextfn] == nil then
if ctx.firstposonly[nextfn] == nil then error(modulename ..
': The function ‘' .. nextfn .. '’ does not exist', 0)
else error(modulename .. ': The ‘' .. nextfn ..
'’ directive can only appear in first position', 0)
end
end
remove_numeric_keys(ctx.pipe, 1, n_forward)
return library[nextfn]
end
-- Main loop
local function main_loop (ctx, start_with)
local fn = start_with
repeat fn = fn(ctx) until not fn
if ctx.n_parents > 0 then error(modulename ..
': One or more ‘merging_substack’ directives are missing', 0) end
if ctx.n_children > 0 then error(modulename ..
', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end
end
-- Load a `setting`-like directive string into the `dest` table
local function set_strings_from_opts (dest, opts, start_from)
local cmd
if opts[start_from] == nil then return start_from - 1 end
cmd = opts[start_from]:gsub('%s+', ''):gsub('/+', '/')
:match'^/*(.*[^/])'
if cmd == nil then return start_from end
local vname, chr
local amap, sep, argc = {}, string.byte('/'), start_from + 1
for idx = 1, #cmd do
chr = cmd:byte(idx)
if chr == sep then
for key, val in ipairs(amap) do
dest[val], amap[key] = opts[argc], nil
end
argc = argc + 1
else
vname = memoryslots[string.char(chr)]
if vname == nil then error(modulename ..
', ‘setting’: Unknown slot ‘' ..
string.char(chr) .. '’', 0) end
table.insert(amap, vname)
end
end
for key, val in ipairs(amap) do dest[val] = opts[argc] end
return argc
end
-- Add a new stack of parameters to `ctx.children`
local function new_substack (ctx)
local currsnap, newparams = ctx.n_children + 1, {}
if ctx.children == nil then ctx.children = { newparams }
else ctx.children[currsnap] = newparams end
ctx.n_children = currsnap
return newparams
end
-- Parse a raw argument containing a `sortfunctions` directive, or
-- `'without_sorting'`, or `nil`
local function load_sort_opt (raw_arg)
if raw_arg == nil then return nil, 1, false end
local trarg = raw_arg:match'^%s*(.-)%s*$'
if trarg == 'without_sorting' then return nil, 2, false, trarg end
local tmp = sortfunctions[trarg]
if tmp == nil then return nil, 1, false, trarg end
return tmp or nil, 2, true, trarg
end
-- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]|
-- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]`
local function load_child_opts (src, start_from, append_after, params)
local tnamed, tmp1, tmp2
local pin, tbl, mem = start_from, {}, {}
while src[pin] ~= nil and src[pin + 1] ~= nil do
tmp1 = src[pin]:match'^%s*(.*%S)'
if tmp1 == 'let' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 1])
mem[tmp1], tbl[tmp1], pin = nil, src[pin + 2], pin + 3
--[[
elseif tmp1 == 'expose' then
tmp1 = get_parameter_name(src[pin + 1])
tmp2 = params[tmp1]
mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2
]]--
elseif tmp1 == 'use' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 2])
tmp2 = params[tmp1]
mem[tmp1], tbl[get_parameter_name(src[pin + 1])], pin =
tmp2, tmp2, pin + 3
else break end
end
local tnew = copy_or_ref_table(params, next(mem) == nil)
for key in pairs(mem) do tnew[key] = nil end
if pin ~= start_from then tnamed, tbl = tbl, {} end
tmp1 = tonumber(src[pin])
if tmp1 ~= nil and math.floor(tmp1) == tmp1 then
if tmp1 < 0 then tmp1 = -1 end
tmp2 = append_after - pin
for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end
pin = pin + tmp1 + 1
end
if tnamed ~= nil then
for key, val in pairs(tnamed) do tbl[key] = val end
end
return tbl, pin, tnew, mem
end
-- Load the optional arguments of some of the `mapping_*` and `renaming_*`
-- class of modifiers
local function load_callback_opts (src, n_skip, default_style, params)
local style, shf
local tmp = src[n_skip + 1]
if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end
if style == nil then style, shf = default_style, n_skip - 1
else shf = n_skip end
local n_exist, karg, varg = style[3], style[4], style[5]
tmp = style[6]
if tmp > -1 then
karg = src[tmp + shf]:match'^%s*(.-)%s*$'
if karg == '0' or karg:find'^%-?[1-9]%d*$' ~= nil then
karg = tonumber(karg)
n_exist = math.max(n_exist, karg)
end
end
tmp = style[7]
if tmp > -1 then
varg = src[tmp + shf]:match'^%s*(.-)%s*$'
if varg == '0' or varg:find'^%-?[1-9]%d*$' ~= nil then
varg = tonumber(varg)
n_exist = math.max(n_exist, varg)
end
end
local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf,
n_exist, params)
tmp = style[1]
if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then
tmp = tmp - 2 end
if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then
tmp = tmp - 1 end
return dest, argc, tmp, karg, varg, tnew, mem
end
-- Parse the arguments of some of the `mapping_*` and `renaming_*` class of
-- modifiers
local function load_replace_args (opts, whoami)
if opts[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No pattern string was given', 0) end
if opts[2] == nil then error(modulename ..
', ‘' .. whoami .. '’: No replacement string was given', 0) end
local ptn, repl, nmax, argc = opts[1], opts[2], tonumber(opts[3]), 3
if nmax ~= nil or (opts[3] or ''):match'^%s*$' ~= nil then argc = 4 end
local flg = opts[argc]
if flg ~= nil then flg = mkeywords[flg:match'^%s*(.-)%s*$'] end
if flg == 0 then flg = nil elseif flg ~= nil then argc = argc + 1 end
return ptn, repl, nmax, flg, argc, (nmax ~= nil and nmax < 1) or
(flg == 3 and ptn == repl)
end
-- Parse the arguments of the `with_*_matching` class of modifiers
local function load_pattern_args (opts, whoami)
local keyw
local ptns, state, nptns, cnt = {}, 0, 0, 1
for _, val in ipairs(opts) do
if state == 0 then
nptns, state = nptns + 1, -1
ptns[nptns] = { val, false, false }
else
keyw = val:match'^%s*(.*%S)'
if keyw == nil or mkeywords[keyw] == nil or (
state > 0 and mkeywords[keyw] > 0
) then break
else
state = mkeywords[keyw]
if state > 1 then ptns[nptns][2] = true end
if state == 3 then ptns[nptns][3] = true end
end
end
cnt = cnt + 1
end
if state == 0 then error(modulename .. ', ‘' .. whoami ..
'’: No pattern was given', 0) end
return ptns, nptns, cnt
end
-- Load the optional arguments of the `parsing`, `reinterpreting` and
-- `evaluating` modifiers
local function load_parse_opts (opts, start_from, isp, psp)
local tmp
local optslots, noptslots, argc, trimn, trimu, iplain, pplain =
{ true, true, true }, 3, start_from, true, false, true, true
repeat
noptslots, tmp = noptslots - 1, opts[argc]
if tmp == nil then break end
tmp = tmp:match'^%s*(.-)%s*$'
if optslots[1] ~= nil and trim_parse_opts[tmp] ~= nil then
tmp = trim_parse_opts[tmp]
trimn, trimu, optslots[1] = tmp[1], tmp[2], nil
elseif optslots[2] ~= nil and isep_parse_opts[tmp] ~= nil then
argc = argc + 1
iplain, isp, optslots[2] = isep_parse_opts[tmp],
opts[argc], nil
elseif optslots[3] ~= nil and psep_parse_opts[tmp] ~= nil then
argc = argc + 1
pplain, psp, optslots[3] = psep_parse_opts[tmp],
opts[argc], nil
else break end
argc = argc + 1
until noptslots < 1
return isp, iplain, psp, pplain, trimn, trimu, argc
end
-- Map parameters' values using a custom callback and a referenced table
local value_maps = {
[0] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do tbl[key] = fn() end
end,
[1] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[varg] = val
tbl[key] = fn()
end
end,
[2] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do
margs[karg] = key
tbl[key] = fn()
end
end,
[3] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[karg], margs[varg] = key, val
tbl[key] = fn()
end
end
}
-- Private table for `map_names()`
local name_thieves = {
[0] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[1] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[varg] = val
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[2] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg] = key
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[3] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg], rargs[varg] = key, val
steal_if_renamed(val, tbl, key, cache, fn())
end
end
}
-- Map parameters' names using a custom callback and a referenced table
local function map_names (tbl, rargs, karg, varg, looptype, fn)
local cache = {}
name_thieves[looptype](cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(cache) do tbl[key] = val end
end
-- Return a new table that contains `src` regrouped according to the numeric
-- suffixes in its keys
local function make_groups (src)
-- NOTE: `src` might be the original metatable!
local prefix, gid
local groups = {}
for key, val in pairs(src) do
-- `key` must only be a string or a number...
if type(key) == 'string' then
prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$'
gid = tonumber(gid) or ''
else
prefix, gid = '', key
end
if groups[gid] == nil then groups[gid] = {} end
if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then
prefix = tonumber(prefix)
if prefix < 1 then prefix = prefix - 1 end
end
groups[gid][prefix] = val
end
return groups
end
-- Split into parts a string containing the `$#` and `$@` placeholders and
-- return the information as a skeleton table, a canvas table and a length
local function parse_placeholder_string (target)
local idx, s_pos, skel, canvas = 1, 1, {}, {}
local e_pos = string.find(target, '%$[@#]', 1, false)
while e_pos ~= nil do
canvas[idx] = target:sub(s_pos, e_pos - 1)
skel[idx + 1] = target:sub(e_pos, e_pos + 1) == '$@'
idx = idx + 2
s_pos = e_pos + 2
e_pos = string.find(target, '%$[@#]', s_pos, false)
end
if (s_pos > target:len()) then idx = idx - 1
else canvas[idx] = target:sub(s_pos) end
return skel, canvas, idx
end
-- Populate a table by parsing a parameter string (heavy lifting for `parsing`,
-- `reinterpreting` and `evaluating`)
local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru)
local key, val, spos1, spos2, pos1, pos2
local pos3, idx, lenplone = 0, 1, #str + 1
if isp == nil or isp == '' then
if psp == nil or psp == '' then
if tru then tbl[idx] = str:match'^%s*(.-)%s*$'
else tbl[idx] = str end
return idx
end
spos1, spos2 = str:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = str:match'^%s*(.-)%s*$'
else val = str end
idx = idx + 1
else
key = get_parameter_name(str:sub(1, spos1 - 1))
val = str:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
return idx
end
if psp == nil or psp == '' then
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
if tru then val = val:match'^%s*(.-)%s*$' end
tbl[idx], idx = val, idx + 1
until pos2 == nil
return idx
end
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
spos1, spos2 = val:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = val:match'^%s*(.-)%s*$' end
idx = idx + 1
else
key = get_parameter_name(val:sub(1, spos1 - 1))
val = val:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
until pos2 == nil
return idx
end
-- Heavy lifting for `snapshotting` and `remembering`
local function make_child (ctx, src, whoami)
local len = tonumber(ctx.pipe[1])
if len == nil or len == 0 then
local stack = new_substack(ctx)
for key, val in pairs(src) do stack[key] = val end
return len == nil and 1 or 2
end
if len < 0 or math.floor(len) ~= len then error(modulename ..
', ‘' .. whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end
copy_table_maxn(new_substack(ctx), src, len)
return 2
end
-- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values`
local function set_strings_from_substack (ctx, dest, whoami)
if ctx.n_children < 1 then error(modulename ..
', ‘' .. whoami .. '’: There are no substacks to flush', 0) end
local currsnap = ctx.n_children
local stack = ctx.children[currsnap]
for key, val in pairs(memoryslots) do
if stack[key] ~= nil then dest[val] = stack[key] end
end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
end
-- Heavy lifting for `combining` and `combining_values`
local function combine_parameters (ctx, keyval_fn, whoami)
-- NOTE: `ctx.params` might be the original metatable! This function
-- MUST create a copy of it before returning
local opts = ctx.pipe
if ctx.pipe[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No parameter name was provided', 0) end
local argc
local tbl, vars = ctx.params, {}
local sortfn, varsarg0, do_sort, tmp = load_sort_opt(opts[2])
if varsarg0 == 2 then tmp = opts[3] and opts[3]:match'^%s*(.-)%s*$' end
if tmp == 'with_flushed_glue' then
varsarg0 = varsarg0 + 1
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
set_strings_from_substack(ctx, vars, whoami)
else
if tmp == 'without_flushed_glue' then varsarg0 = varsarg0 + 1 end
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
end
if argc < varsarg0 then error(modulename ..
', ‘' .. whoami .. '’: No setting directive was given', 0) end
if next(tbl) == nil then
if vars.ifngiven ~= nil then ctx.params =
{ [get_parameter_name(ctx.pipe[1])] = vars.ifngiven }
elseif tbl == ctx.oparams then ctx.params = {} end
return argc
end
local cache, len
if do_sort then
local words
cache, words, len, tmp = get_key_list_sorted(tbl, sortfn)
for idx = 1, tmp do cache[len + idx] = words[idx] end
len = len + tmp
else
len, cache = 0, {}
for key in pairs(tbl) do
len = len + 1
cache[len] = key
end
end
local pmap, nss, kvs, pps = {}, 0, vars.pairsep or '', vars.itersep or ''
for idx = 1, len do
tmp, pmap[nss + 1] = cache[idx], pps
pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs)
nss = nss + 2
end
tmp = vars.oxfordsep or vars.lastsep
if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp
elseif nss > 2 and vars.lastsep ~= nil then
pmap[nss - 1] = vars.lastsep
end
pmap[1] = vars.header or ''
if vars.footer ~= nil then pmap[nss + 1] = vars.footer end
ctx.params = { [get_parameter_name(ctx.pipe[1])] = table.concat(pmap) }
return argc
end
-- Concatenate the numeric keys from the table of parameters to the numeric
-- keys from the table of options; non-numeric keys from the table of options
-- will prevail over colliding non-numeric keys from the table of parameters
local function concat_params (ctx)
local retval, tbl, nmax = {}, ctx.params, table.maxn(ctx.pipe)
if ctx.subset == 1 then
-- We need only the sequence
for key, val in ipairs(tbl) do retval[key + nmax] = val end
else
if ctx.subset == -1 then
for key in ipairs(tbl) do tbl[key] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
retval[key + nmax] = val
else retval[key] = val end
end
end
for key, val in pairs(ctx.pipe) do retval[key] = val end
return retval
end
-- Flush the parameters by calling a custom function for each value (after this
-- function has been invoked `ctx.params` will be no longer usable)
local function flush_params (ctx, fn)
local tbl = ctx.params
if ctx.subset == 1 then
for key, val in ipairs(tbl) do fn(key, val) end
return
end
if ctx.subset == -1 then
for key, val in ipairs(tbl) do tbl[key] = nil end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
return
end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
return
end
if ctx.subset ~= -1 then
for key, val in ipairs(tbl) do
fn(key, val)
tbl[key] = nil
end
end
for key, val in pairs(tbl) do fn(key, val) end
end
-- Flush the parameters by calling one of two custom functions for each value
-- (after this function has been invoked `ctx.params` will be no longer usable)
local function mixed_flush_params (ctx, fn_seq, fn_oth)
if ctx.subset == 1 then
for key, val in ipairs(ctx.params) do fn_seq(key, val) end
return
end
if ctx.subset == -1 then
flush_params(ctx, fn_oth)
return
end
local tbl = ctx.params
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
local sequence = {}
for key, val in ipairs(tbl) do sequence[key] = val end
if ctx.sorttype == 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
for idx = 1, nn do
if sequence[nums[idx]] then fn_seq(nums[idx], sequence[nums[idx]])
else fn_oth(nums[idx], tbl[nums[idx]]) end
end
if ctx.sorttype ~= 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
return
end
for key, val in ipairs(tbl) do
fn_seq(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn_oth(key, val) end
end
-- Finalize and return a concatenated list
local function finalize_and_return_concatenated_list (ctx, lst, len, modsize)
if len > 0 then
local tmp = ctx.oxfordsep or ctx.lastsep
if tmp ~= nil and len > modsize * 2 then
lst[len - modsize + 1] = tmp
elseif len > modsize and ctx.lastsep ~= nil then
lst[len - modsize + 1] = ctx.lastsep
end
lst[1] = ctx.header or ''
if ctx.footer ~= nil then lst[len + 1] = ctx.footer end
ctx.text = table.concat(lst)
else ctx.text = ctx.ifngiven or '' end
end
--- ---
--- PUBLIC ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Modifiers ]]--
-------------------
-- Syntax: #invoke:params|sequential|pipe to
library.sequential = function (ctx)
if ctx.subset == 1 then error(modulename ..
': The ‘sequential’ directive has been provided more than once', 0) end
if ctx.subset == -1 then error(modulename ..
': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end
if ctx.sorttype > 0 then error(modulename ..
': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end
ctx.iterfunc, ctx.subset = ipairs, 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|non-sequential|pipe to
library['non-sequential'] = function (ctx)
if ctx.subset == -1 then error(modulename ..
': The ‘non-sequential’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end
ctx.iterfunc, ctx.subset = pairs, -1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|all_sorted|pipe to
library.all_sorted = function (ctx)
if ctx.sorttype == 1 then error(modulename ..
': The ‘all_sorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘all_sorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 2 then error(modulename ..
': The two directives ‘reassorted’ and ‘sequential’ are in contradiction with each other', 0) end
ctx.sorttype = 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|reassorted|pipe to
library.reassorted = function (ctx)
if ctx.sorttype == 2 then error(modulename ..
': The ‘reassorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘reassorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘reassorted’ are in contradiction with each other', 0) end
ctx.sorttype = 2
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting|directives|...|pipe to
library.setting = function (ctx)
local argc = set_strings_from_opts(ctx, ctx.pipe, 1)
if argc < 2 then error(modulename ..
', ‘setting’: No directive was given', 0) end
return context_iterate(ctx, argc + 1)
end
-- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to
library.scoring = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘scoring’: No parameter name was provided', 0) end
local tmp
local retval, opts = 0, ctx.pipe
for _ in pairs(ctx.params) do retval = retval + 1 end
if opts[2] ~= nil then tmp = opts[2]:match'^%s*(.*%S)' end
if tmp == 'in_substack' then
new_substack(ctx)[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, 3)
end
ctx.params[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, tmp == 'here' and 3 or 2)
end
-- Syntax: #invoke:params|squeezing|pipe to
library.squeezing = function (ctx)
local store, indices, tbl, newlen = {}, {}, ctx.params, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
newlen = newlen + 1
indices[newlen], store[key], tbl[key] = key, val, nil
end
end
table.sort(indices)
for idx = 1, newlen do tbl[idx] = store[indices[idx]] end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|filling_the_gaps|pipe to
library.filling_the_gaps = function (ctx)
local newval, tbl, tmp, nmin, nmax, nnums =
ctx.pipe[1], ctx.params, {}, 1, nil, -1
if newval == nil then error(modulename ..
', ‘filling_the_gaps’: No value was provided', 0) end
for key, val in pairs(tbl) do
if type(key) == 'number' then
if nmax == nil then
if key < nmin then nmin = key end
nmax = key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
tmp[key], nnums = val, nnums + 1
end
end
if nmax ~= nil and nmax - nmin > nnums then
ctx.n_available = ctx.n_available + nmin + nnums - nmax
if ctx.n_available < 0 then error(modulename ..
', ‘filling_the_gaps’: It is possible to fill at most ' ..
tostring(maxfill) .. ' parameters', 0) end
for idx = nmin, nmax, 1 do tbl[idx] = newval end
for key, val in pairs(tmp) do tbl[key] = val end
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|clearing|pipe to
library.clearing = function (ctx)
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
end
end
for key, val in ipairs(numerics) do tbl[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|cutting|left cut|right cut|pipe to
library.cutting = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cutting’: Left cut must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cutting’: Right cut must be an integer number', 0) end
local tbl = ctx.params
local len = #tbl
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
local tot = lcut + rcut
if tot > 0 then
local cache = {}
if tot >= len then
for key in ipairs(tbl) do tbl[key] = nil end
tot = len
else
for idx = len - rcut + 1, len, 1 do tbl[idx] = nil end
for idx = 1, lcut, 1 do tbl[idx] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
if key > len then cache[key - tot] = val
else cache[key - lcut] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|cropping|left crop|right crop|pipe to
library.cropping = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cropping’: Left crop must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cropping’: Right crop must be an integer number', 0) end
local tbl = ctx.params
local nmin, nmax
for key in pairs(tbl) do
if type(key) == 'number' then
if nmin == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
if nmin ~= nil then
local len = nmax - nmin + 1
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
if lcut + rcut - len > -1 then
for key in pairs(tbl) do
if type(key) == 'number' then tbl[key] = nil end
end
elseif lcut + rcut > 0 then
for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end
for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end
local lshift = nmin + lcut - 1
if lshift > 0 then
for idx = lshift + 1, nmax, 1 do
tbl[idx - lshift], tbl[idx] =
tbl[idx], nil
end
end
end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|purging|start offset|length|pipe to
library.purging = function (ctx)
local idx = tonumber(ctx.pipe[1])
if idx == nil or math.floor(idx) ~= idx then error(modulename ..
', ‘purging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘purging’: Length must be an integer number', 0) end
local tbl = ctx.params
if len < 1 then
len = len + table.maxn(tbl)
if idx > len then return context_iterate(ctx, 3) end
len = len - idx + 1
end
ctx.params = copy_table_reduced(tbl, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|backpurging|start offset|length|pipe to
library.backpurging = function (ctx)
local last = tonumber(ctx.pipe[1])
if last == nil or math.floor(last) ~= last then error(modulename ..
', ‘backpurging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘backpurging’: Length must be an integer number', 0) end
local idx
local tbl = ctx.params
if len > 0 then
idx = last - len + 1
else
for key in pairs(tbl) do
if type(key) == 'number' and (idx == nil or
key < idx) then idx = key end
end
if idx == nil then return context_iterate(ctx, 3) end
idx = idx - len
if last < idx then return context_iterate(ctx, 3) end
len = last - idx + 1
end
ctx.params = copy_table_reduced(ctx.params, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|shifting|addend|pipe to
library.shifting = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local nshift = tonumber(ctx.pipe[1])
if nshift == nil or nshift == 0 or math.floor(nshift) ~= nshift then
error(modulename .. ', ‘shifting’: A non-zero integer number must be provided', 0) end
local tbl = {}
for key, val in pairs(ctx.params) do
if type(key) == 'number' then tbl[key + nshift] = val
else tbl[key] = val end
end
ctx.params = tbl
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|reversing_numeric_names|pipe to
library.reversing_numeric_names = function (ctx)
local tbl, numerics, nmax = ctx.params, {}, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
if key > nmax then nmax = key end
end
end
for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pivoting_numeric_names|pipe to
--[[
library.pivoting_numeric_names = function (ctx)
local tbl = ctx.params
local shift = #tbl + 1
if shift < 2 then return library.reversing_numeric_names(ctx) end
local numerics = {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
end
end
for key, val in pairs(numerics) do tbl[shift - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|mirroring_numeric_names|pipe to
--[[
library.mirroring_numeric_names = function (ctx)
local nmax, nmin
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
if nmax == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
for key, val in pairs(numerics) do tbl[nmax + nmin - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|swapping_numeric_names|pipe to
--[[
library.swapping_numeric_names = function (ctx)
local tmp
local tbl, cache, nsize = ctx.params, {}, 0
for key in pairs(tbl) do
if type(key) == 'number' then
nsize = nsize + 1
cache[nsize] = key
end
end
table.sort(cache)
for idx = math.floor(nsize / 2), 1, -1 do
tmp = tbl[cache[idx] ]
tbl[cache[idx] ] = tbl[cache[nsize - idx + 1] ]
tbl[cache[nsize - idx + 1] ] = tmp
end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to
library.sorting_sequential_values = function (ctx)
local sortfn
if ctx.pipe[1] ~= nil then
sortfn = sortfunctions[ctx.pipe[1]:match'^%s*(.-)%s*$']
end
if sortfn then table.sort(ctx.params, sortfn)
else table.sort(ctx.params) end -- i.e. either `false` or `nil`
if sortfn == nil then return context_iterate(ctx, 1) end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|splicing|[add to position]|position|increment|
-- [number of elements to write]|...|pipe to
library.splicing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp2, argc, pos, refp
local opts, tbl = ctx.pipe, ctx.params
local tmp1 = opts[1]
if tmp1 ~= nil then
tmp2 = tonumber(tmp1)
if tmp2 == nil or math.floor(tmp2) ~= tmp2 then
pos, argc, tmp2 = tonumber(opts[2]), 4,
tmp1:match'^%s*(.*%S)'
if tmp2 ~= nil then
refp = position_references[tmp2]
if refp == nil then error(modulename ..
', ‘splicing’: ‘' .. tostring(tmp2) ..
'’ is not a valid first argument', 0) end
else refp = 0 end
else pos, argc, refp = tmp2, 3, 0 end
else pos, argc, refp = tonumber(opts[2]), 4, 0 end
if pos == nil or math.floor(pos) ~= pos then error(modulename ..
', ‘splicing’: The position must be an integer number', 0) end
local len = tonumber(opts[argc - 1])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘splicing’: The increment must be an integer number', 0) end
if refp == 2 then
for _ in ipairs(tbl) do pos = pos + 1 end
refp = 0
end
tmp1, tmp2 = nil, nil
if refp ~= 0 or len ~= 0 then
for key, val in pairs(tbl) do
if type(key) == 'number' then
if tmp1 == nil then tmp1, tmp2 = key, key
elseif key < tmp1 then tmp1 = key
elseif key > tmp2 then tmp2 = key end
end
end
end
if tmp2 == nil then len = 0
elseif refp == 3 then pos = pos + tmp2
elseif refp == 1 then pos = pos + tmp1 end
if len > 0 and pos + len > tmp1 and pos <= tmp2 then
tbl = copy_table_expanded(tbl, pos, len)
elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then
tbl = copy_table_reduced(tbl, pos, -len)
else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end
ctx.params = tbl
tmp1 = tonumber(opts[argc])
if len == 0 and (tmp1 == nil or tmp1 < 1) then error(modulename ..
', ‘splicing’: When the increment is zero the number of elements to add cannot be zero', 0) end
if tmp1 == nil or tmp1 < 0 or math.floor(tmp1) ~= tmp1 then
return context_iterate(ctx, argc)
end
tmp2 = argc - pos + 1
for key = pos, pos + tmp1 - 1 do tbl[key] = opts[key + tmp2] end
return context_iterate(ctx, argc + tmp1 + 1)
end
-- Syntax: #invoke:params|imposing|name|value|pipe to
library.imposing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘imposing’: Missing parameter name to impose', 0) end
ctx.params[get_parameter_name(ctx.pipe[1])] = ctx.pipe[2]
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|providing|name|value|pipe to
library.providing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘providing’: Missing parameter name to provide', 0) end
local key = get_parameter_name(ctx.pipe[1])
if ctx.params[key] == nil then ctx.params[key] = ctx.pipe[2] end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to
library.reassigning = function (ctx)
local opts, tbl = ctx.pipe, ctx.params
if opts[1] == nil then error(modulename ..
', ‘reassigning’: Missing source parameter', 0) end
if opts[2] == nil then error(modulename ..
', ‘reassigning’: Missing destination parameter', 0) end
local mode, argc
local src = get_parameter_name(opts[1])
local val = tbl[src]
if opts[3] ~= nil then mode = a_modes[opts[3]:match'^%s*(.-)%s*$'] end
if mode == nil then mode, argc = 0, 3 else argc = 4 end
if val == nil and mode > 1 then return context_iterate(ctx, argc) end
local dest = get_parameter_name(opts[2])
local tmp = tbl[dest] == nil
if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end
if tmp or mode < 4 then tbl[dest] = val end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|discarding|name|[how many]|pipe to
library.discarding = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘discarding’: Missing parameter name to discard', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil then
ctx.params[get_parameter_name(ctx.pipe[1])] = nil
return context_iterate(ctx, 2)
end
local key = tonumber(ctx.pipe[1])
if key == nil or math.floor(key) ~= key then error(modulename ..
', ‘discarding’: A range was provided, but the initial parameter name is not an integer number', 0) end
if len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘discarding’: A range can only be an integer number greater than zero', 0) end
for idx = key, key + len - 1 do ctx.params[idx] = nil end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|excluding_non-numeric_names|pipe to
library['excluding_non-numeric_names'] = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) ~= 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|excluding_numeric_names|pipe to
library.excluding_numeric_names = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) == 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_name_matching = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, ptn
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_matching')
local tbl, newparams = ctx.params, {}
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
tmp = ptn[1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
newparams[tmp] = tbl[tmp]
else
for key, val in pairs(tbl) do
if tostring(key):find(ptn[1], 1, ptn[2]) then
newparams[key] = val
end
end
end
end
ctx.params = newparams
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_name_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_name_not_matching = function (ctx)
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_not_matching')
local tbl = ctx.params
if nptns == 1 and targets[1][3] then
local tmp = targets[1][1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tbl[tonumber(tmp)] = nil
else tbl[tmp] = nil end
return context_iterate(ctx, argc)
end
local yesmatch, ptn
for key in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if tostring(key) ~= ptn[1] then
yesmatch = false
break
end
elseif not tostring(key):find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_value_matching = function (ctx)
local nomatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_matching')
for key, val in pairs(tbl) do
nomatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val == ptn[1] then
nomatch = false
break
end
elseif val:find(ptn[1], 1, ptn[2]) then
nomatch = false
break
end
end
if nomatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_value_not_matching = function (ctx)
local yesmatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_not_matching')
for key, val in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val ~= ptn[1] then
yesmatch = false
break
end
elseif not val:find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to
library.keeping_at_most = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end
ctx.params = copy_table_maxn({}, ctx.params, len)
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|trimming_values|pipe to
library.trimming_values = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_lowercase|pipe to
library.mapping_to_lowercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:lower() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_uppercase|pipe to
library.mapping_to_uppercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:upper() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.mapping_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘mapping_by_calling’: No template name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
local model = { title = tname, args = margs }
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘mapping_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘mapping_by_invoking’: No function name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.values_only, ctx.params)
local model = { title = 'Module:' .. mname, args = margs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
value_maps[looptype](tbl, margs, karg, varg, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_magic = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘mapping_by_magic’: No parser function was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:callParserFunction(magic, margs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.mapping_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'mapping_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
for key, val in pairs(tbl) do
if val == ptn then tbl[key] = repl end
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
for key, val in pairs(tbl) do
tbl[key] = val:gsub(ptn, repl, nmax)
end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_mixing|mixing string|pipe to
library.mapping_by_mixing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘mapping_by_mixing’: No mixing string was provided', 0) end
local tbl, mix = ctx.params, ctx.pipe[1]
if mix == '$#' then
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 2)
end
local skel, cnv, n_parts = parse_placeholder_string(mix)
for key, val in pairs(tbl) do
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
tbl[key] = table.concat(cnv)
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|mapping_to_names|pipe to
--[[
library.mapping_to_names = function (ctx)
local tbl = ctx.params
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|renaming_to_lowercase|pipe to
library.renaming_to_lowercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:lower()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_uppercase|pipe to
library.renaming_to_uppercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:upper()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to
library.renaming_to_sequence = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache, len
local tbl = ctx.params
local sortfn, argc, do_sort = load_sort_opt(ctx.pipe[1])
if do_sort then
local words, wl
cache, words, len, wl = get_key_list_sorted(tbl, sortfn)
for idx = 1, len do cache[idx] = tbl[cache[idx]] end
for idx = 1, wl do cache[len + idx] = tbl[words[idx]] end
else
len, cache = 0, {}
for _, val in pairs(tbl) do
len = len + 1
cache[len] = val
end
end
ctx.params = cache
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.renaming_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘renaming_by_calling’: No template name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
local model = { title = tname, args = rargs }
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_invoking|module name|function
-- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of
-- additional arguments]|[argument 1]|[argument 2]|[...]|[argument
-- N]|pipe to
library.renaming_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘renaming_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘renaming_by_invoking’: No function name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.names_only, ctx.params)
local model = { title = 'Module:' .. mname, args = rargs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘renaming_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
map_names(tbl, rargs, karg, varg, looptype, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.renaming_by_magic = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘renaming_by_magic’: No parser function was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:callParserFunction(magic, rargs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.renaming_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'renaming_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
ptn = get_parameter_name(ptn)
local val = tbl[ptn]
if val ~= nil then
tbl[ptn], tbl[get_parameter_name(repl)] = nil, val
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
local cache = {}
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache,
tostring(key):gsub(ptn, repl, nmax))
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to
library.renaming_by_mixing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘renaming_by_mixing’: No mixing string was provided', 0) end
local mix = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache = {}
if mix == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
else
local skel, canvas, n_parts = parse_placeholder_string(mix)
for key, val in pairs(ctx.params) do
for idx = 2, n_parts, 2 do
if skel[idx] then canvas[idx] = val
else canvas[idx] = tostring(key) end
end
cache[get_parameter_name(table.concat(canvas))] = val
end
end
ctx.params = cache
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|renaming_to_values|pipe to
--[[
library.renaming_to_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for _, val in pairs(ctx.params) do cache[val] = val end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|grouping_by_calling|template
-- name|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.grouping_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, argc, tbl, mem = load_child_opts(ctx.pipe, 2, 0, ctx.params)
local gargs = {}
for key, val in pairs(tmp) do
if type(key) == 'number' and key < 1 then gargs[key - 1] = val
else gargs[key] = val end
end
tmp = ctx.pipe[1]
if tmp ~= nil then tmp = tmp:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘grouping_by_calling’: No template name was provided', 0) end
local model = { title = tmp }
local groups = make_groups(tbl)
for gid, group in pairs(groups) do
for key, val in pairs(gargs) do group[key] = val end
group[0], model.args = gid, group
groups[gid] = ctx.frame:expandTemplate(model)
end
for key, val in pairs(mem) do groups[key] = val end
ctx.params = groups
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.parsing = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘parsing’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
parse_parameter_string(ctx.params, opts[1], isep, iplain, psep, pplain,
trimnamed, trimunnamed)
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|reinterpreting|parameter to reinterpret|[trim
-- flag]|[iteration delimiter setter]|[...]|[key-value delimiter
-- setter]|[...]|pipe to
library.reinterpreting = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘reinterpreting’: No parameter to reinterpret was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
local tbl, tmp = ctx.params, get_parameter_name(opts[1])
local str = tbl[tmp]
if str ~= nil then
tbl[tmp] = nil
parse_parameter_string(tbl, str, isep, iplain, psep, pplain,
trimnamed, trimunnamed)
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|evaluating|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.evaluating = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘evaluating’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '!', ':')
if opts[1]:match'^%s*(.*%S)' == nil then
ctx.pipe = copy_or_ref_table(opts, opts ~= ctx.opipe)
return context_iterate(ctx, argc)
end
local new_opts, cache = {}, {}
local shift = parse_parameter_string(cache, opts[1], isep, iplain,
psep, pplain, trimnamed, trimunnamed) - argc
for key, val in pairs(opts) do
if type(key) ~= 'number' or key < 1 then new_opts[key] = val
elseif key >= argc then new_opts[key + shift] = val end
end
for key, val in pairs(cache) do new_opts[key] = val end
ctx.pipe = new_opts
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mixing_names_and_values|mixing string|pipe to
library.mixing_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end
local tmp
local mix_k = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache, mix_v = {}, ctx.pipe[2]
if mix_k == '$@' and mix_v == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
elseif mix_k == '$@' and mix_v == '$#' then
for key, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = tostring(key)
end
elseif mix_k == '$#' and mix_v == '$#' then
for key in pairs(ctx.params) do cache[key] = tostring(key) end
else
local skel_k, cnv_k, n_parts_k = parse_placeholder_string(mix_k)
local skel_v, cnv_v, n_parts_v = parse_placeholder_string(mix_v)
for key, val in pairs(ctx.params) do
tmp = tostring(key)
for idx = 2, n_parts_k, 2 do
if skel_k[idx] then cnv_k[idx] = val else cnv_k[idx] = tmp end
end
for idx = 2, n_parts_v, 2 do
if skel_v[idx] then cnv_v[idx] = val else cnv_v[idx] = tmp end
end
cache[get_parameter_name(table.concat(cnv_k))] =
table.concat(cnv_v)
end
end
ctx.params = cache
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|swapping_names_and_values|pipe to
--[[
library.swapping_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do cache[val] = key end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|combining|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return key .. kvs .. val end,
'combining'
) + 1)
end
-- Syntax: #invoke:params|combining_values|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return val end,
'combining_values'
) + 1)
end
-- Syntax: #invoke:params|combining_by_calling|template name|new parameter
-- name|pipe to
library.combining_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tname = ctx.pipe[1]
if tname ~= nil then tname = tname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_calling’: No template name was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_calling’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] = ctx.frame:expandTemplate{
title = tname,
args = ctx.params
}
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|combining_by_invoking|module name|function name|new
-- parameter name|pipe to
library.combining_by_invoking = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local mname = ctx.pipe[1]
if mname ~= nil then mname = mname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No module name was provided', 0) end
local fname = ctx.pipe[2]
if fname ~= nil then fname = fname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No function name was provided', 0) end
if ctx.pipe[3] == nil then error(modulename ..
', ‘combining_by_invoking’: No parameter name was provided', 0) end
local model = { title = 'Module:' .. mname, args = ctx.params }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[3])] =
tostring(mfunc(ctx.frame:newChild(model)))
}
return context_iterate(ctx, 4)
end
-- Syntax: #invoke:params|combining_by_magic|parser function|new parameter
-- name|pipe to
library.combining_by_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local magic = ctx.pipe[1]
if magic ~= nil then magic = magic:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_magic’: No parser function was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_magic’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] =
ctx.frame:callParserFunction(magic, ctx.params)
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to
library.snapshotting = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.params, 'snapshotting'))
end
-- Syntax: #invoke:params|remembering|[maximum number]|pipe to
library.remembering = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.oparams, 'remembering'))
end
-- Syntax: #invoke:params|entering_substack|[new]|pipe to
library.entering_substack = function (ctx)
local tbl, ncurrparent = ctx.params, ctx.n_parents + 1
if ctx.parents == nil then ctx.parents = { tbl }
else ctx.parents[ncurrparent] = tbl end
ctx.n_parents = ncurrparent
if ctx.pipe[1] ~= nil and ctx.pipe[1]:match'^%s*new%s*$' then
ctx.params = {}
return context_iterate(ctx, 2)
end
local currsnap = ctx.n_children
if currsnap > 0 then
ctx.params, ctx.children[currsnap], ctx.n_children =
ctx.children[currsnap], nil, currsnap - 1
else
local newparams = {}
for key, val in pairs(tbl) do newparams[key] = val end
ctx.params = newparams
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pulling|parameter name|pipe to
library.pulling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘pulling’: No parameter to pull was provided', 0) end
local tmp = ctx.n_parents
local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp]
tmp = get_parameter_name(opts[1])
if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|recalling|parameter name|pipe to
library.recalling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘recalling’: No parameter to recall was provided', 0) end
local arg = get_parameter_name(opts[1])
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|finding|parameter name|pipe to
--[[
library.finding = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘finding’: No parameter to find was provided', 0) end
local arg = get_parameter_name(opts[1])
local parent
for idx = ctx.n_parents, 1, -1 do
parent = ctx.parents[idx]
if parent[arg] ~= nil then
ctx.params[arg] = parent[arg]
return context_iterate(ctx, 2)
end
end
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|picking|number of parameters to pick|pipe to
--[[
library.picking = function (ctx)
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end
if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len)
else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|detaching_substack|pipe to
library.detaching_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘detaching_substack’: No substack has been created', 0) end
local parent = ctx.parents[ncurrparent]
for key in pairs(ctx.params) do parent[key] = nil end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|dropping_substack|pipe to
library.dropping_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘dropping_substack’: No substack has been created', 0) end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents =
ctx.parents[ncurrparent], nil, ncurrparent - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|leaving_substack|pipe to
library.leaving_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘leaving_substack’: No substack has been created', 0) end
local currsnap = ctx.n_children + 1
if ctx.children == nil then ctx.children = { ctx.params }
else ctx.children[currsnap] = ctx.params end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children =
ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|merging_substack|pipe to
library.merging_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘merging_substack’: No substack has been created', 0) end
local parent, child = ctx.parents[ncurrparent], ctx.params
ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil,
ncurrparent - 1
for key, val in pairs(child) do parent[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|flushing|pipe to
library.flushing = function (ctx)
if ctx.n_children < 1 then error(modulename ..
', ‘flushing’: There are no substacks to flush', 0) end
local parent, currsnap = ctx.params, ctx.n_children
for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting_by_flushing|pipe to
library.setting_by_flushing = function (ctx)
set_strings_from_substack(ctx, ctx, 'setting_by_flushing')
return context_iterate(ctx, 1)
end
--[[ Functions ]]--
-----------------------------
-- Syntax: #invoke:params|count
library.count = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local retval = 0
for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end
if ctx.subset == -1 then retval = retval - #ctx.params end
ctx.text = retval
return false
end
-- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]
-- |[...]|[item n]|[named item 1=value 1]|[...]|[named item n=value
-- n]|[...]
library.concat_and_call = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘concat_and_call’: No template name was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:expandTemplate{
title = tname,
args = concat_params(ctx)
}
return false
end
-- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend
-- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named
-- item n=value n]|[...]
library.concat_and_invoke = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘concat_and_invoke’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘concat_and_invoke’: No function name was provided', 0) end
remove_numeric_keys(opts, 1, 2)
local mfunc = require('Module:' .. mname)[fname]
if mfunc == nil then error(modulename ..
', ‘concat_and_invoke’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.text = mfunc(ctx.frame:newChild{
title = 'Module:' .. mname,
args = concat_params(ctx)
})
return false
end
-- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend
-- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n=
-- value n]|[...]
library.concat_and_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘concat_and_magic’: No parser function was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:callParserFunction(magic, concat_params(ctx))
return false
end
-- Syntax: #invoke:params|value_of|parameter name
library.value_of = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘value_of’: No parameter name was provided', 0) end
local val
local key = opts[1]:match'^%s*(.-)%s*$'
if key == '0' or key:find'^%-?[1-9]%d*$' ~= nil then
key = tonumber(key)
val = ctx.params[key]
-- No worries: #ctx.params is unused when the modifier is in
-- first position (and therefore `ctx.params` is a metatable)
if val ~= nil and (
ctx.subset ~= -1 or key > #ctx.params or key < 1
) and (
ctx.subset ~= 1 or (key <= #ctx.params and key > 0)
) then
ctx.text = (ctx.header or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
else
val = ctx.params[key]
if ctx.subset ~= 1 and val ~= nil then ctx.text = (ctx.header
or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
end
return false
end
-- Syntax: #invoke:params|list
library.list = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss =
pps, key, kvs, val, nss + 4
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|list_values
library.list_values = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
-- NOTE: `library.coins()` and `library.unique_coins()` rely on us
local ret, nss, pps = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|list_maybe_with_names
library.list_maybe_with_names = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
mixed_flush_params(
ctx,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, '', '', val, nss + 4
end,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, key, kvs, val, nss + 4
end
)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|coins|[first coin = value 1]|[second coin = value
-- 2]|[...]|[last coin = value N]
--[[
library.coins = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do tbl[key] = opts[get_parameter_name(val)] end
return library.list_values(ctx)
end
]]--
-- Syntax: #invoke:params|unique_coins|[first coin = value 1]|[second coin =
-- value 2]|[...]|[last coin = value N]
--[[
library.unique_coins = function (ctx)
local tmp
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do
tmp = get_parameter_name(val)
tbl[key], opts[tmp] = opts[tmp], nil
end
return library.list_values(ctx)
end
]]
-- Syntax: #invoke:params|for_each|wikitext
library.for_each = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, pps, txt = {}, 0, ctx.itersep or '', ctx.pipe[1] or ''
local skel, cnv, n_parts = parse_placeholder_string(txt)
flush_params(ctx, function (key, val)
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
ret[nss + 1], nss = pps, nss + 2
ret[nss] = table.concat(cnv)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each|module name|module function|[append
-- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]
-- |[named param n=value n]|[...]
library.invoke_for_each = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.magic_for_each = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_value = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each_value’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.invoke_for_each_value = function (ctx)
local opts = ctx.pipe
local mname, fname
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each_value’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each_value’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
remove_numeric_keys(opts, 1, 1)
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]
-- |[append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named
-- param n=value n]|[...]
library.magic_for_each_value = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each_value’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_group|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_group = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local tmp
if ctx.pipe[1] ~= nil then tmp = ctx.pipe[1]:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘call_for_each_group’: No template name was provided', 0) end
local model = { title = tmp }
local opts, ret, nss, ccs = {}, {}, 0, ctx.itersep or ''
for key, val in pairs(ctx.pipe) do
if type(key) == 'number' then opts[key - 1] = val
else opts[key] = val end
end
ctx.pipe = opts
ctx.params = make_groups(ctx.params)
flush_params(ctx, function (gid, group)
for key, val in pairs(opts) do group[key] = val end
group[0], model.args, ret[nss + 1], nss = gid, group, ccs,
nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
--[[ First-position-only modifiers ]]--
---------------------------------------
-- Syntax: #invoke:params|new|pipe to
static_iface.new = function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, false)
ctx.params = {}
main_loop(ctx, context_iterate(ctx, 1))
return ctx.text
end
--[[ First-position-only functions ]]--
---------------------------------------
-- Syntax: #invoke:params|self
static_iface.self = function (frame)
return frame:getParent():getTitle()
end
--[[ Public metatable of functions ]]--
---------------------------------------
return setmetatable({}, {
__index = function (_, query)
local fname = query:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
': You must specify a function to call', 0) end
local func = static_iface[fname]
if func ~= nil then return func end
func = library[fname]
if func == nil then error(modulename ..
': The function ‘' .. fname .. '’ does not exist', 0) end
return function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, refpipe[fname])
ctx.params = copy_or_ref_table(ctx.oparams, refparams[fname])
main_loop(ctx, func)
return ctx.text
end
end
})
s0wwht3ty2l3u443tnfm9mh3z5pmpgj
37024644
37024540
2026-07-24T03:47:09Z
Grufo
121109
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]]
37024644
Scribunto
text/plain
require[[strict]]
--- ---
--- PRIVATE ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Abstract utilities ]]--
----------------------------
-- Helper function for `string.gsub()` (for managing zero-padded numbers)
local function zero_padded (str)
return ('%03d%s'):format(#str, str)
end
-- Helper function for `table.sort()` (for natural sorting)
local function natural_sort (var1, var2)
return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded)
end
-- Return a copy or a reference to a table
local function copy_or_ref_table (src, refonly)
if refonly then return src end
local newtab = {}
for key, val in pairs(src) do newtab[key] = val end
return newtab
end
-- Copy at most N items (of all kinds) from `src` to `dest` and return `dest`
local function copy_table_maxn (dest, src, len)
local idx = 1
for key, val in pairs(src) do
dest[key], idx = val, idx + 1
if idx > len then break end
end
return dest
end
-- Remove some numeric elements from a table, shifting everything to the left
local function remove_numeric_keys (tbl, idx, len)
local cache, tmp = {}, idx + len - 1
for key, val in pairs(tbl) do
if type(key) == 'number' and key >= idx then
if key > tmp then cache[key - len] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
-- Make a reduced copy of a table (shifting in both directions if necessary)
local function copy_table_reduced (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
elseif key > tmp then ret[key - len] = val end
end
elseif tmp > 0 then
local nshift = 1 - idx
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > tmp then ret[key - tmp] = val
elseif key < idx then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
elseif key < idx then ret[key + len] = val end
end
end
return ret
end
-- Make an expanded copy of a table (shifting in both directions if necessary)
local function copy_table_expanded (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
else ret[key + len] = val end
end
elseif tmp > 0 then
local nshift = idx - 1
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > 0 then ret[key + tmp] = val
elseif key < 1 then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
else ret[key - len] = val end
end
end
return ret
end
-- Given a table, create two new tables containing the sorted list of keys
local function get_key_list_sorted (tbl, sort_fn)
local nums, words, nn, nw = {}, {}, 0, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
nn = nn + 1
nums[nn] = key
else
nw = nw + 1
words[nw] = key
end
end
table.sort(nums)
table.sort(words, sort_fn)
return nums, words, nn, nw
end
-- Parse a parameter name string and return it as a string or a number
local function get_parameter_name (par_str)
local ret = par_str:match'^%s*(.-)%s*$'
if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end
return tonumber(ret)
end
-- Move a key from a table to another, but only if under a different name and
-- always parsing numeric strings as numbers
local function steal_if_renamed (val, src, skey, dest, dkey)
local realkey = get_parameter_name(dkey)
if skey ~= realkey then dest[realkey], src[skey] = val, nil end
end
--[[ Public strings ]]--
------------------------
-- Special match keywords (functions and modifiers MUST avoid these names)
local mkeywords = {
['or'] = 0,
pattern = 1,
plain = 2,
strict = 3
}
-- Sort functions (functions and modifiers MUST avoid these names)
local sortfunctions = {
alphabetically = false,
naturally = natural_sort
}
-- Callback styles for the `mapping_*` and `renaming_*` class of modifiers
-- (functions and modifiers MUST avoid these names)
--[[
Meanings of the columns:
col[1] = Loop type (0-3)
col[2] = Number of module arguments that the style requires (1-3)
col[3] = Minimum number of sequential parameters passed to the callback
col[4] = Name of the callback parameter where to place each parameter name
col[5] = Name of the callback parameter where to place each parameter value
col[6] = Argument in the modifier's invocation that will override `col[4]`
col[7] = Argument in the modifier's invocation that will override `col[5]`
A value of `-1` indicates that no meaningful value is stored (i.e. `nil`)
]]--
local mapping_styles = {
names_and_values = { 3, 2, 2, 1, 2, -1, -1 },
values_and_names = { 3, 2, 2, 2, 1, -1, -1 },
values_only = { 1, 2, 1, -1, 1, -1, -1 },
names_only = { 2, 2, 1, 1, -1, -1, -1 },
names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 },
names_only_as = { 2, 3, 0, -1, -1, 2, -1 },
values_only_as = { 1, 3, 0, -1, -1, -1, 2 },
blindly = { 0, 2, 0, -1, -1, -1, -1 }
}
-- Memory slots (functions and modifiers MUST avoid these names)
local memoryslots = {
h = 'header',
f = 'footer',
i = 'itersep',
l = 'lastsep',
n = 'ifngiven',
p = 'pairsep',
s = 'oxfordsep'
}
-- Possible trimming modes for the `parsing` modifier
local trim_parse_opts = {
trim_none = { false, false },
trim_positional = { false, true },
trim_named = { true, false },
trim_all = { true, true }
}
-- Possible string modes for the iteration separator in the `parsing` and
-- `reinterpreting` modifiers
local isep_parse_opts = {
splitter_pattern = false,
splitter_string = true
}
-- Possible string modes for the key-value separator in the `parsing` and
-- `reinterpreting` modifiers
local psep_parse_opts = {
setter_pattern = false,
setter_string = true
}
-- Possible position references for the `splicing` modifier
local position_references = {
add_nothing = 0,
add_smallest_number = 1,
add_last_of_sequence = 2,
add_largest_number = 3
}
-- Possible modes for the `reassigning` modifier
local a_modes = {
transfer = 0,
clone = 1,
rename = 2,
copy = 3,
sacrifice = 4,
provide = 5,
spare = 7
}
-- Functions and modifiers MUST avoid these names too: `here`, `in_substack`,
-- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue`
-- `without_sorting`
--[[ Private constants ]]--
---------------------------
-- Hard-coded name of the module (to avoid going through `frame:getTitle()`)
local modulename = 'Module:Params'
-- The functions listed here declare that they don't need the `frame.args`
-- metatable to be copied into a regular table; if they are modifiers they also
-- guarantee that they will make their own (modified) copy available
local refpipe = {
call_for_each_group = true,
--coins = true,
count = true,
evaluating = true,
for_each = true,
list = true,
list_values = true,
list_maybe_with_names = true,
value_of = true
}
-- The functions listed here declare that they don't need the
-- `frame:getParent().args` metatable to be copied into a regular table; if
-- they are modifiers they also guarantee that they will make their own
-- (modified) copy available
local refparams = {
call_for_each_group = true,
combining = true,
combining_by_calling = true,
combining_values = true,
concat_and_call = true,
concat_and_invoke = true,
concat_and_magic = true,
count = true,
grouping_by_calling = true,
mixing_names_and_values = true,
keeping_at_most = true,
renaming_by_mixing = true,
renaming_to_sequence = true,
renaming_to_uppercase = true,
renaming_to_lowercase = true,
--renaming_to_values = true,
shifting = true,
splicing = true,
--swapping_names_and_values = true,
value_of = true,
with_name_matching = true
}
-- Maximum number of numeric parameters that can be filled, if missing (we
-- chose an arbitrary number for this constant; you can discuss about its
-- optimal value at Module talk:Params)
local maxfill = 1024
-- The private table of functions
local library = {}
-- Functions and modifiers that can only be invoked in first position
local static_iface = {}
--[[ Private functions ]]--
---------------------------
-- Create a new context
local function context_new (child_frame)
local main_frame = child_frame:getParent()
return {
frame = main_frame,
opipe = child_frame.args,
oparams = main_frame.args,
firstposonly = static_iface,
iterfunc = pairs,
sorttype = 0,
n_parents = 0,
n_children = 0,
n_available = maxfill
}
end
-- Move to the next action within the user-given list
local function context_iterate (ctx, n_forward)
local nextfn
if ctx.pipe[n_forward] ~= nil then
nextfn = ctx.pipe[n_forward]:match'^%s*(.*%S)'
end
if nextfn == nil then error(modulename ..
': You must specify a function to call', 0) end
if library[nextfn] == nil then
if ctx.firstposonly[nextfn] == nil then error(modulename ..
': The function ‘' .. nextfn .. '’ does not exist', 0)
else error(modulename .. ': The ‘' .. nextfn ..
'’ directive can only appear in first position', 0)
end
end
remove_numeric_keys(ctx.pipe, 1, n_forward)
return library[nextfn]
end
-- Main loop
local function main_loop (ctx, start_with)
local fn = start_with
repeat fn = fn(ctx) until not fn
if ctx.n_parents > 0 then error(modulename ..
': One or more ‘merging_substack’ directives are missing', 0) end
if ctx.n_children > 0 then error(modulename ..
', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end
end
-- Load a `setting`-like directive string into the `dest` table
local function set_strings_from_opts (dest, opts, start_from)
local cmd
if opts[start_from] == nil then return start_from - 1 end
cmd = opts[start_from]:gsub('%s+', ''):gsub('/+', '/')
:match'^/*(.*[^/])'
if cmd == nil then return start_from end
local vname, chr
local amap, sep, argc = {}, string.byte('/'), start_from + 1
for idx = 1, #cmd do
chr = cmd:byte(idx)
if chr == sep then
for key, val in ipairs(amap) do
dest[val], amap[key] = opts[argc], nil
end
argc = argc + 1
else
vname = memoryslots[string.char(chr)]
if vname == nil then error(modulename ..
', ‘setting’: Unknown slot ‘' ..
string.char(chr) .. '’', 0) end
table.insert(amap, vname)
end
end
for key, val in ipairs(amap) do dest[val] = opts[argc] end
return argc
end
-- Add a new stack of parameters to `ctx.children`
local function new_substack (ctx)
local currsnap, newparams = ctx.n_children + 1, {}
if ctx.children == nil then ctx.children = { newparams }
else ctx.children[currsnap] = newparams end
ctx.n_children = currsnap
return newparams
end
-- Parse a raw argument containing a `sortfunctions` directive, or
-- `'without_sorting'`, or `nil`
local function load_sort_opt (raw_arg)
if raw_arg == nil then return nil, 1, false end
local trarg = raw_arg:match'^%s*(.-)%s*$'
if trarg == 'without_sorting' then return nil, 2, false, trarg end
local tmp = sortfunctions[trarg]
if tmp == nil then return nil, 1, false, trarg end
return tmp or nil, 2, true, trarg
end
-- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]|
-- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]`
local function load_child_opts (src, start_from, append_after, params)
local tnamed, tmp1, tmp2
local pin, tbl, mem = start_from, {}, {}
while src[pin] ~= nil and src[pin + 1] ~= nil do
tmp1 = src[pin]:match'^%s*(.*%S)'
if tmp1 == 'let' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 1])
mem[tmp1], tbl[tmp1], pin = nil, src[pin + 2], pin + 3
--[[
elseif tmp1 == 'expose' then
tmp1 = get_parameter_name(src[pin + 1])
tmp2 = params[tmp1]
mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2
]]--
elseif tmp1 == 'use' and src[pin + 2] ~= nil then
tmp1 = get_parameter_name(src[pin + 2])
tmp2 = params[tmp1]
mem[tmp1], tbl[get_parameter_name(src[pin + 1])], pin =
tmp2, tmp2, pin + 3
else break end
end
local tnew = copy_or_ref_table(params, next(mem) == nil)
for key in pairs(mem) do tnew[key] = nil end
if pin ~= start_from then tnamed, tbl = tbl, {} end
tmp1 = tonumber(src[pin])
if tmp1 ~= nil and math.floor(tmp1) == tmp1 then
if tmp1 < 0 then tmp1 = -1 end
tmp2 = append_after - pin
for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end
pin = pin + tmp1 + 1
end
if tnamed ~= nil then
for key, val in pairs(tnamed) do tbl[key] = val end
end
return tbl, pin, tnew, mem
end
-- Load the optional arguments of some of the `mapping_*` and `renaming_*`
-- class of modifiers
local function load_callback_opts (src, n_skip, default_style, params)
local style, shf
local tmp = src[n_skip + 1]
if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end
if style == nil then style, shf = default_style, n_skip - 1
else shf = n_skip end
local n_exist, karg, varg = style[3], style[4], style[5]
tmp = style[6]
if tmp > -1 then
karg = src[tmp + shf]:match'^%s*(.-)%s*$'
if karg == '0' or karg:find'^%-?[1-9]%d*$' ~= nil then
karg = tonumber(karg)
n_exist = math.max(n_exist, karg)
end
end
tmp = style[7]
if tmp > -1 then
varg = src[tmp + shf]:match'^%s*(.-)%s*$'
if varg == '0' or varg:find'^%-?[1-9]%d*$' ~= nil then
varg = tonumber(varg)
n_exist = math.max(n_exist, varg)
end
end
local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf,
n_exist, params)
tmp = style[1]
if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then
tmp = tmp - 2 end
if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then
tmp = tmp - 1 end
return dest, argc, tmp, karg, varg, tnew, mem
end
-- Parse the arguments of some of the `mapping_*` and `renaming_*` class of
-- modifiers
local function load_replace_args (opts, whoami)
if opts[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No pattern string was given', 0) end
if opts[2] == nil then error(modulename ..
', ‘' .. whoami .. '’: No replacement string was given', 0) end
local ptn, repl, nmax, argc = opts[1], opts[2], tonumber(opts[3]), 3
if nmax ~= nil or (opts[3] or ''):match'^%s*$' ~= nil then argc = 4 end
local flg = opts[argc]
if flg ~= nil then flg = mkeywords[flg:match'^%s*(.-)%s*$'] end
if flg == 0 then flg = nil elseif flg ~= nil then argc = argc + 1 end
return ptn, repl, nmax, flg, argc, (nmax ~= nil and nmax < 1) or
(flg == 3 and ptn == repl)
end
-- Parse the arguments of the `with_*_matching` class of modifiers
local function load_pattern_args (opts, whoami)
local keyw
local ptns, state, nptns, cnt = {}, 0, 0, 1
for _, val in ipairs(opts) do
if state == 0 then
nptns, state = nptns + 1, -1
ptns[nptns] = { val, false, false }
else
keyw = val:match'^%s*(.*%S)'
if keyw == nil or mkeywords[keyw] == nil or (
state > 0 and mkeywords[keyw] > 0
) then break
else
state = mkeywords[keyw]
if state > 1 then ptns[nptns][2] = true end
if state == 3 then ptns[nptns][3] = true end
end
end
cnt = cnt + 1
end
if state == 0 then error(modulename .. ', ‘' .. whoami ..
'’: No pattern was given', 0) end
return ptns, nptns, cnt
end
-- Load the optional arguments of the `parsing`, `reinterpreting` and
-- `evaluating` modifiers
local function load_parse_opts (opts, start_from, isp, psp)
local tmp
local optslots, noptslots, argc, trimn, trimu, iplain, pplain =
{ true, true, true }, 3, start_from, true, false, true, true
repeat
noptslots, tmp = noptslots - 1, opts[argc]
if tmp == nil then break end
tmp = tmp:match'^%s*(.-)%s*$'
if optslots[1] ~= nil and trim_parse_opts[tmp] ~= nil then
tmp = trim_parse_opts[tmp]
trimn, trimu, optslots[1] = tmp[1], tmp[2], nil
elseif optslots[2] ~= nil and isep_parse_opts[tmp] ~= nil then
argc = argc + 1
iplain, isp, optslots[2] = isep_parse_opts[tmp],
opts[argc], nil
elseif optslots[3] ~= nil and psep_parse_opts[tmp] ~= nil then
argc = argc + 1
pplain, psp, optslots[3] = psep_parse_opts[tmp],
opts[argc], nil
else break end
argc = argc + 1
until noptslots < 1
return isp, iplain, psp, pplain, trimn, trimu, argc
end
-- Map parameters' values using a custom callback and a referenced table
local value_maps = {
[0] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do tbl[key] = fn() end
end,
[1] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[varg] = val
tbl[key] = fn()
end
end,
[2] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do
margs[karg] = key
tbl[key] = fn()
end
end,
[3] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[karg], margs[varg] = key, val
tbl[key] = fn()
end
end
}
-- Private table for `map_names()`
local name_thieves = {
[0] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[1] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[varg] = val
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[2] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg] = key
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[3] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg], rargs[varg] = key, val
steal_if_renamed(val, tbl, key, cache, fn())
end
end
}
-- Map parameters' names using a custom callback and a referenced table
local function map_names (tbl, rargs, karg, varg, looptype, fn)
local cache = {}
name_thieves[looptype](cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(cache) do tbl[key] = val end
end
-- Return a new table that contains `src` regrouped according to the numeric
-- suffixes in its keys
local function make_groups (src)
-- NOTE: `src` might be the original metatable!
local prefix, gid
local groups = {}
for key, val in pairs(src) do
-- `key` must only be a string or a number...
if type(key) == 'string' then
prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$'
gid = tonumber(gid) or ''
else
prefix, gid = '', key
end
if groups[gid] == nil then groups[gid] = {} end
if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then
prefix = tonumber(prefix)
if prefix < 1 then prefix = prefix - 1 end
end
groups[gid][prefix] = val
end
return groups
end
-- Split into parts a string containing the `$#` and `$@` placeholders and
-- return the information as a skeleton table, a canvas table and a length
local function parse_placeholder_string (target)
local idx, s_pos, skel, canvas = 1, 1, {}, {}
local e_pos = string.find(target, '%$[@#]', 1, false)
while e_pos ~= nil do
canvas[idx] = target:sub(s_pos, e_pos - 1)
skel[idx + 1] = target:sub(e_pos, e_pos + 1) == '$@'
idx = idx + 2
s_pos = e_pos + 2
e_pos = string.find(target, '%$[@#]', s_pos, false)
end
if (s_pos > target:len()) then idx = idx - 1
else canvas[idx] = target:sub(s_pos) end
return skel, canvas, idx
end
-- Populate a table by parsing a parameter string (heavy lifting for `parsing`,
-- `reinterpreting` and `evaluating`)
local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru)
local key, val, spos1, spos2, pos1, pos2
local pos3, idx, lenplone = 0, 1, #str + 1
if isp == nil or isp == '' then
if psp == nil or psp == '' then
if tru then tbl[idx] = str:match'^%s*(.-)%s*$'
else tbl[idx] = str end
return idx
end
spos1, spos2 = str:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = str:match'^%s*(.-)%s*$'
else val = str end
idx = idx + 1
else
key = get_parameter_name(str:sub(1, spos1 - 1))
val = str:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
return idx
end
if psp == nil or psp == '' then
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
if tru then val = val:match'^%s*(.-)%s*$' end
tbl[idx], idx = val, idx + 1
until pos2 == nil
return idx
end
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
spos1, spos2 = val:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = val:match'^%s*(.-)%s*$' end
idx = idx + 1
else
key = get_parameter_name(val:sub(1, spos1 - 1))
val = val:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
until pos2 == nil
return idx
end
-- Heavy lifting for `snapshotting` and `remembering`
local function make_child (ctx, src, whoami)
local len = tonumber(ctx.pipe[1])
if len == nil or len == 0 then
local stack = new_substack(ctx)
for key, val in pairs(src) do stack[key] = val end
return len == nil and 1 or 2
end
if len < 0 or math.floor(len) ~= len then error(modulename ..
', ‘' .. whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end
copy_table_maxn(new_substack(ctx), src, len)
return 2
end
-- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values`
local function set_strings_from_substack (ctx, dest, whoami)
if ctx.n_children < 1 then error(modulename ..
', ‘' .. whoami .. '’: There are no substacks to flush', 0) end
local currsnap = ctx.n_children
local stack = ctx.children[currsnap]
for key, val in pairs(memoryslots) do
if stack[key] ~= nil then dest[val] = stack[key] end
end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
end
-- Heavy lifting for `combining` and `combining_values`
local function combine_parameters (ctx, keyval_fn, whoami)
-- NOTE: `ctx.params` might be the original metatable! This function
-- MUST create a copy of it before returning
local opts = ctx.pipe
if ctx.pipe[1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No parameter name was provided', 0) end
local argc
local tbl, vars = ctx.params, {}
local sortfn, varsarg0, do_sort, tmp = load_sort_opt(opts[2])
if varsarg0 == 2 then tmp = opts[3] and opts[3]:match'^%s*(.-)%s*$' end
if tmp == 'with_flushed_glue' then
varsarg0 = varsarg0 + 1
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
set_strings_from_substack(ctx, vars, whoami)
else
if tmp == 'without_flushed_glue' then varsarg0 = varsarg0 + 1 end
argc = set_strings_from_opts(vars, opts, varsarg0 + 1)
end
if argc < varsarg0 then error(modulename ..
', ‘' .. whoami .. '’: No setting directive was given', 0) end
if next(tbl) == nil then
if vars.ifngiven ~= nil then ctx.params =
{ [get_parameter_name(ctx.pipe[1])] = vars.ifngiven }
elseif tbl == ctx.oparams then ctx.params = {} end
return argc
end
local cache, len
if do_sort then
local words
cache, words, len, tmp = get_key_list_sorted(tbl, sortfn)
for idx = 1, tmp do cache[len + idx] = words[idx] end
len = len + tmp
else
len, cache = 0, {}
for key in pairs(tbl) do
len = len + 1
cache[len] = key
end
end
local pmap, nss, kvs, pps = {}, 0, vars.pairsep or '', vars.itersep or ''
for idx = 1, len do
tmp, pmap[nss + 1] = cache[idx], pps
pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs)
nss = nss + 2
end
tmp = vars.oxfordsep or vars.lastsep
if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp
elseif nss > 2 and vars.lastsep ~= nil then
pmap[nss - 1] = vars.lastsep
end
pmap[1] = vars.header or ''
if vars.footer ~= nil then pmap[nss + 1] = vars.footer end
ctx.params = { [get_parameter_name(ctx.pipe[1])] = table.concat(pmap) }
return argc
end
-- Concatenate the numeric keys from the table of parameters to the numeric
-- keys from the table of options; non-numeric keys from the table of options
-- will prevail over colliding non-numeric keys from the table of parameters
local function concat_params (ctx)
local retval, tbl, nmax = {}, ctx.params, table.maxn(ctx.pipe)
if ctx.subset == 1 then
-- We need only the sequence
for key, val in ipairs(tbl) do retval[key + nmax] = val end
else
if ctx.subset == -1 then
for key in ipairs(tbl) do tbl[key] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
retval[key + nmax] = val
else retval[key] = val end
end
end
for key, val in pairs(ctx.pipe) do retval[key] = val end
return retval
end
-- Flush the parameters by calling a custom function for each value (after this
-- function has been invoked `ctx.params` will be no longer usable)
local function flush_params (ctx, fn)
local tbl = ctx.params
if ctx.subset == 1 then
for key, val in ipairs(tbl) do fn(key, val) end
return
end
if ctx.subset == -1 then
for key, val in ipairs(tbl) do tbl[key] = nil end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
return
end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
return
end
if ctx.subset ~= -1 then
for key, val in ipairs(tbl) do
fn(key, val)
tbl[key] = nil
end
end
for key, val in pairs(tbl) do fn(key, val) end
end
-- Flush the parameters by calling one of two custom functions for each value
-- (after this function has been invoked `ctx.params` will be no longer usable)
local function mixed_flush_params (ctx, fn_seq, fn_oth)
if ctx.subset == 1 then
for key, val in ipairs(ctx.params) do fn_seq(key, val) end
return
end
if ctx.subset == -1 then
flush_params(ctx, fn_oth)
return
end
local tbl = ctx.params
if ctx.sorttype > 0 then
local nums, words, nn, nw = get_key_list_sorted(tbl, natural_sort)
local sequence = {}
for key, val in ipairs(tbl) do sequence[key] = val end
if ctx.sorttype == 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
for idx = 1, nn do
if sequence[nums[idx]] then fn_seq(nums[idx], sequence[nums[idx]])
else fn_oth(nums[idx], tbl[nums[idx]]) end
end
if ctx.sorttype ~= 2 then
for idx = 1, nw do fn_oth(words[idx], tbl[words[idx]]) end
end
return
end
for key, val in ipairs(tbl) do
fn_seq(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn_oth(key, val) end
end
-- Finalize and return a concatenated list
local function finalize_and_return_concatenated_list (ctx, lst, len, modsize)
if len > 0 then
local tmp = ctx.oxfordsep or ctx.lastsep
if tmp ~= nil and len > modsize * 2 then
lst[len - modsize + 1] = tmp
elseif len > modsize and ctx.lastsep ~= nil then
lst[len - modsize + 1] = ctx.lastsep
end
lst[1] = ctx.header or ''
if ctx.footer ~= nil then lst[len + 1] = ctx.footer end
ctx.text = table.concat(lst)
else ctx.text = ctx.ifngiven or '' end
end
--- ---
--- PUBLIC ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Modifiers ]]--
-------------------
-- Syntax: #invoke:params|sequential|pipe to
library.sequential = function (ctx)
if ctx.subset == 1 then error(modulename ..
': The ‘sequential’ directive has been provided more than once', 0) end
if ctx.subset == -1 then error(modulename ..
': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end
if ctx.sorttype > 0 then error(modulename ..
': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end
ctx.iterfunc, ctx.subset = ipairs, 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|non-sequential|pipe to
library['non-sequential'] = function (ctx)
if ctx.subset == -1 then error(modulename ..
': The ‘non-sequential’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end
ctx.iterfunc, ctx.subset = pairs, -1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|all_sorted|pipe to
library.all_sorted = function (ctx)
if ctx.sorttype == 1 then error(modulename ..
': The ‘all_sorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘all_sorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 2 then error(modulename ..
': The two directives ‘reassorted’ and ‘sequential’ are in contradiction with each other', 0) end
ctx.sorttype = 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|reassorted|pipe to
library.reassorted = function (ctx)
if ctx.sorttype == 2 then error(modulename ..
': The ‘reassorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘reassorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘reassorted’ are in contradiction with each other', 0) end
ctx.sorttype = 2
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting|directives|...|pipe to
library.setting = function (ctx)
local argc = set_strings_from_opts(ctx, ctx.pipe, 1)
if argc < 2 then error(modulename ..
', ‘setting’: No directive was given', 0) end
return context_iterate(ctx, argc + 1)
end
-- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to
library.scoring = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘scoring’: No parameter name was provided', 0) end
local tmp
local retval, opts = 0, ctx.pipe
for _ in pairs(ctx.params) do retval = retval + 1 end
if opts[2] ~= nil then tmp = opts[2]:match'^%s*(.*%S)' end
if tmp == 'in_substack' then
new_substack(ctx)[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, 3)
end
ctx.params[get_parameter_name(opts[1])] = tostring(retval)
return context_iterate(ctx, tmp == 'here' and 3 or 2)
end
-- Syntax: #invoke:params|squeezing|pipe to
library.squeezing = function (ctx)
local store, indices, tbl, newlen = {}, {}, ctx.params, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
newlen = newlen + 1
indices[newlen], store[key], tbl[key] = key, val, nil
end
end
table.sort(indices)
for idx = 1, newlen do tbl[idx] = store[indices[idx]] end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|filling_the_gaps|pipe to
library.filling_the_gaps = function (ctx)
local newval, tbl, tmp, nmin, nmax, nnums =
ctx.pipe[1], ctx.params, {}, 1, nil, -1
if newval == nil then error(modulename ..
', ‘filling_the_gaps’: No value was provided', 0) end
for key, val in pairs(tbl) do
if type(key) == 'number' then
if nmax == nil then
if key < nmin then nmin = key end
nmax = key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
tmp[key], nnums = val, nnums + 1
end
end
if nmax ~= nil and nmax - nmin > nnums then
ctx.n_available = ctx.n_available + nmin + nnums - nmax
if ctx.n_available < 0 then error(modulename ..
', ‘filling_the_gaps’: It is possible to fill at most ' ..
tostring(maxfill) .. ' parameters', 0) end
for idx = nmin, nmax, 1 do tbl[idx] = newval end
for key, val in pairs(tmp) do tbl[key] = val end
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|clearing|pipe to
library.clearing = function (ctx)
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
end
end
for key, val in ipairs(numerics) do tbl[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|cutting|left cut|right cut|pipe to
library.cutting = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cutting’: Left cut must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cutting’: Right cut must be an integer number', 0) end
local tbl = ctx.params
local len = #tbl
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
local tot = lcut + rcut
if tot > 0 then
local cache = {}
if tot >= len then
for key in ipairs(tbl) do tbl[key] = nil end
tot = len
else
for idx = len - rcut + 1, len, 1 do tbl[idx] = nil end
for idx = 1, lcut, 1 do tbl[idx] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
if key > len then cache[key - tot] = val
else cache[key - lcut] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|cropping|left crop|right crop|pipe to
library.cropping = function (ctx)
local lcut = tonumber(ctx.pipe[1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cropping’: Left crop must be an integer number', 0) end
local rcut = tonumber(ctx.pipe[2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cropping’: Right crop must be an integer number', 0) end
local tbl = ctx.params
local nmin, nmax
for key in pairs(tbl) do
if type(key) == 'number' then
if nmin == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
if nmin ~= nil then
local len = nmax - nmin + 1
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
if lcut + rcut - len > -1 then
for key in pairs(tbl) do
if type(key) == 'number' then tbl[key] = nil end
end
elseif lcut + rcut > 0 then
for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end
for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end
local lshift = nmin + lcut - 1
if lshift > 0 then
for idx = lshift + 1, nmax, 1 do
tbl[idx - lshift], tbl[idx] =
tbl[idx], nil
end
end
end
end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|purging|start offset|length|pipe to
library.purging = function (ctx)
local idx = tonumber(ctx.pipe[1])
if idx == nil or math.floor(idx) ~= idx then error(modulename ..
', ‘purging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘purging’: Length must be an integer number', 0) end
local tbl = ctx.params
if len < 1 then
len = len + table.maxn(tbl)
if idx > len then return context_iterate(ctx, 3) end
len = len - idx + 1
end
ctx.params = copy_table_reduced(tbl, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|backpurging|start offset|length|pipe to
library.backpurging = function (ctx)
local last = tonumber(ctx.pipe[1])
if last == nil or math.floor(last) ~= last then error(modulename ..
', ‘backpurging’: Start offset must be an integer number', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘backpurging’: Length must be an integer number', 0) end
local idx
local tbl = ctx.params
if len > 0 then
idx = last - len + 1
else
for key in pairs(tbl) do
if type(key) == 'number' and (idx == nil or
key < idx) then idx = key end
end
if idx == nil then return context_iterate(ctx, 3) end
idx = idx - len
if last < idx then return context_iterate(ctx, 3) end
len = last - idx + 1
end
ctx.params = copy_table_reduced(ctx.params, idx, len)
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|shifting|addend|pipe to
library.shifting = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local nshift = tonumber(ctx.pipe[1])
if nshift == nil or nshift == 0 or math.floor(nshift) ~= nshift then
error(modulename .. ', ‘shifting’: A non-zero integer number must be provided', 0) end
local tbl = {}
for key, val in pairs(ctx.params) do
if type(key) == 'number' then tbl[key + nshift] = val
else tbl[key] = val end
end
ctx.params = tbl
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|reversing_numeric_names|pipe to
library.reversing_numeric_names = function (ctx)
local tbl, numerics, nmax = ctx.params, {}, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
if key > nmax then nmax = key end
end
end
for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pivoting_numeric_names|pipe to
--[[
library.pivoting_numeric_names = function (ctx)
local tbl = ctx.params
local shift = #tbl + 1
if shift < 2 then return library.reversing_numeric_names(ctx) end
local numerics = {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
end
end
for key, val in pairs(numerics) do tbl[shift - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|mirroring_numeric_names|pipe to
--[[
library.mirroring_numeric_names = function (ctx)
local nmax, nmin
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key] = val
tbl[key] = nil
if nmax == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
for key, val in pairs(numerics) do tbl[nmax + nmin - key] = val end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|swapping_numeric_names|pipe to
--[[
library.swapping_numeric_names = function (ctx)
local tmp
local tbl, cache, nsize = ctx.params, {}, 0
for key in pairs(tbl) do
if type(key) == 'number' then
nsize = nsize + 1
cache[nsize] = key
end
end
table.sort(cache)
for idx = math.floor(nsize / 2), 1, -1 do
tmp = tbl[cache[idx] ]
tbl[cache[idx] ] = tbl[cache[nsize - idx + 1] ]
tbl[cache[nsize - idx + 1] ] = tmp
end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to
library.sorting_sequential_values = function (ctx)
local sortfn
if ctx.pipe[1] ~= nil then
sortfn = sortfunctions[ctx.pipe[1]:match'^%s*(.-)%s*$']
end
if sortfn then table.sort(ctx.params, sortfn)
else table.sort(ctx.params) end -- i.e. either `false` or `nil`
if sortfn == nil then return context_iterate(ctx, 1) end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|splicing|[add to position]|position|increment|
-- [number of elements to write]|...|pipe to
library.splicing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp2, argc, pos, refp
local opts, tbl = ctx.pipe, ctx.params
local tmp1 = opts[1]
if tmp1 ~= nil then
tmp2 = tonumber(tmp1)
if tmp2 == nil or math.floor(tmp2) ~= tmp2 then
pos, argc, tmp2 = tonumber(opts[2]), 4,
tmp1:match'^%s*(.*%S)'
if tmp2 ~= nil then
refp = position_references[tmp2]
if refp == nil then error(modulename ..
', ‘splicing’: ‘' .. tostring(tmp2) ..
'’ is not a valid first argument', 0) end
else refp = 0 end
else pos, argc, refp = tmp2, 3, 0 end
else pos, argc, refp = tonumber(opts[2]), 4, 0 end
if pos == nil or math.floor(pos) ~= pos then error(modulename ..
', ‘splicing’: The position must be an integer number', 0) end
local len = tonumber(opts[argc - 1])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘splicing’: The increment must be an integer number', 0) end
local insn = tonumber(opts[argc])
if len == 0 and (insn == nil or insn < 1) then error(modulename ..
', ‘splicing’: When the increment is zero the number of elements to write cannot be zero', 0) end
if refp == 2 then
for _ in ipairs(tbl) do pos = pos + 1 end
refp = 0
end
tmp1, tmp2 = nil, nil
if refp ~= 0 or len ~= 0 then
for key, val in pairs(tbl) do
if type(key) == 'number' then
if tmp1 == nil then tmp1, tmp2 = key, key
elseif key < tmp1 then tmp1 = key
elseif key > tmp2 then tmp2 = key end
end
end
end
if tmp2 == nil then len = 0
elseif refp == 3 then pos = pos + tmp2
elseif refp == 1 then pos = pos + tmp1 end
if len > 0 and pos + len > tmp1 and pos <= tmp2 then
tbl = copy_table_expanded(tbl, pos, len)
elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then
tbl = copy_table_reduced(tbl, pos, -len)
else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end
ctx.params = tbl
if insn == nil or insn < 0 or math.floor(insn) ~= insn then
return context_iterate(ctx, argc)
end
tmp1 = argc - pos + 1
for key = pos, pos + insn - 1 do tbl[key] = opts[key + tmp1] end
return context_iterate(ctx, argc + insn + 1)
end
-- Syntax: #invoke:params|imposing|name|value|pipe to
library.imposing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘imposing’: Missing parameter name to impose', 0) end
ctx.params[get_parameter_name(ctx.pipe[1])] = ctx.pipe[2]
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|providing|name|value|pipe to
library.providing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘providing’: Missing parameter name to provide', 0) end
local key = get_parameter_name(ctx.pipe[1])
if ctx.params[key] == nil then ctx.params[key] = ctx.pipe[2] end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to
library.reassigning = function (ctx)
local opts, tbl = ctx.pipe, ctx.params
if opts[1] == nil then error(modulename ..
', ‘reassigning’: Missing source parameter', 0) end
if opts[2] == nil then error(modulename ..
', ‘reassigning’: Missing destination parameter', 0) end
local mode, argc
local src = get_parameter_name(opts[1])
local val = tbl[src]
if opts[3] ~= nil then mode = a_modes[opts[3]:match'^%s*(.-)%s*$'] end
if mode == nil then mode, argc = 0, 3 else argc = 4 end
if val == nil and mode > 1 then return context_iterate(ctx, argc) end
local dest = get_parameter_name(opts[2])
local tmp = tbl[dest] == nil
if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end
if tmp or mode < 4 then tbl[dest] = val end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|discarding|name|[how many]|pipe to
library.discarding = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘discarding’: Missing parameter name to discard', 0) end
local len = tonumber(ctx.pipe[2])
if len == nil then
ctx.params[get_parameter_name(ctx.pipe[1])] = nil
return context_iterate(ctx, 2)
end
local key = tonumber(ctx.pipe[1])
if key == nil or math.floor(key) ~= key then error(modulename ..
', ‘discarding’: A range was provided, but the initial parameter name is not an integer number', 0) end
if len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘discarding’: A range can only be an integer number greater than zero', 0) end
for idx = key, key + len - 1 do ctx.params[idx] = nil end
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|excluding_non-numeric_names|pipe to
library['excluding_non-numeric_names'] = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) ~= 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|excluding_numeric_names|pipe to
library.excluding_numeric_names = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) == 'number' then tmp[key] = nil end
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_name_matching = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, ptn
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_matching')
local tbl, newparams = ctx.params, {}
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
tmp = ptn[1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
newparams[tmp] = tbl[tmp]
else
for key, val in pairs(tbl) do
if tostring(key):find(ptn[1], 1, ptn[2]) then
newparams[key] = val
end
end
end
end
ctx.params = newparams
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_name_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_name_not_matching = function (ctx)
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_name_not_matching')
local tbl = ctx.params
if nptns == 1 and targets[1][3] then
local tmp = targets[1][1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tbl[tonumber(tmp)] = nil
else tbl[tmp] = nil end
return context_iterate(ctx, argc)
end
local yesmatch, ptn
for key in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if tostring(key) ~= ptn[1] then
yesmatch = false
break
end
elseif not tostring(key):find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]
-- |[target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_value_matching = function (ctx)
local nomatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_matching')
for key, val in pairs(tbl) do
nomatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val == ptn[1] then
nomatch = false
break
end
elseif val:find(ptn[1], 1, ptn[2]) then
nomatch = false
break
end
end
if nomatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]
-- |[and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_value_not_matching = function (ctx)
local yesmatch, ptn
local tbl = ctx.params
local targets, nptns, argc = load_pattern_args(ctx.pipe,
'with_value_not_matching')
for key, val in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val ~= ptn[1] then
yesmatch = false
break
end
elseif not val:find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to
library.keeping_at_most = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end
ctx.params = copy_table_maxn({}, ctx.params, len)
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|trimming_values|pipe to
library.trimming_values = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_lowercase|pipe to
library.mapping_to_lowercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:lower() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_to_uppercase|pipe to
library.mapping_to_uppercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:upper() end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mapping_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.mapping_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘mapping_by_calling’: No template name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
local model = { title = tname, args = margs }
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘mapping_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘mapping_by_invoking’: No function name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.values_only, ctx.params)
local model = { title = 'Module:' .. mname, args = margs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
value_maps[looptype](tbl, margs, karg, varg, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_magic = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘mapping_by_magic’: No parser function was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.values_only, ctx.params)
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:callParserFunction(magic, margs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.mapping_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'mapping_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
for key, val in pairs(tbl) do
if val == ptn then tbl[key] = repl end
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
for key, val in pairs(tbl) do
tbl[key] = val:gsub(ptn, repl, nmax)
end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_mixing|mixing string|pipe to
library.mapping_by_mixing = function (ctx)
if ctx.pipe[1] == nil then error(modulename ..
', ‘mapping_by_mixing’: No mixing string was provided', 0) end
local tbl, mix = ctx.params, ctx.pipe[1]
if mix == '$#' then
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 2)
end
local skel, cnv, n_parts = parse_placeholder_string(mix)
for key, val in pairs(tbl) do
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
tbl[key] = table.concat(cnv)
end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|mapping_to_names|pipe to
--[[
library.mapping_to_names = function (ctx)
local tbl = ctx.params
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|renaming_to_lowercase|pipe to
library.renaming_to_lowercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:lower()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_uppercase|pipe to
library.renaming_to_uppercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:upper()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to
library.renaming_to_sequence = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache, len
local tbl = ctx.params
local sortfn, argc, do_sort = load_sort_opt(ctx.pipe[1])
if do_sort then
local words, wl
cache, words, len, wl = get_key_list_sorted(tbl, sortfn)
for idx = 1, len do cache[idx] = tbl[cache[idx]] end
for idx = 1, wl do cache[len + idx] = tbl[words[idx]] end
else
len, cache = 0, {}
for _, val in pairs(tbl) do
len = len + 1
cache[len] = val
end
end
ctx.params = cache
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.renaming_by_calling = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘renaming_by_calling’: No template name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
local model = { title = tname, args = rargs }
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_invoking|module name|function
-- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of
-- additional arguments]|[argument 1]|[argument 2]|[...]|[argument
-- N]|pipe to
library.renaming_by_invoking = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘renaming_by_invoking’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘renaming_by_invoking’: No function name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 2, mapping_styles.names_only, ctx.params)
local model = { title = 'Module:' .. mname, args = rargs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘renaming_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
map_names(tbl, rargs, karg, varg, looptype, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.renaming_by_magic = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘renaming_by_magic’: No parser function was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, 1, mapping_styles.names_only, ctx.params)
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:callParserFunction(magic, rargs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.renaming_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die =
load_replace_args(ctx.pipe, 'renaming_by_replacing')
if die then return context_iterate(ctx, argc) end
local tbl = ctx.params
if flg == 3 then
ptn = get_parameter_name(ptn)
local val = tbl[ptn]
if val ~= nil then
tbl[ptn], tbl[get_parameter_name(repl)] = nil, val
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
local cache = {}
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache,
tostring(key):gsub(ptn, repl, nmax))
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to
library.renaming_by_mixing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘renaming_by_mixing’: No mixing string was provided', 0) end
local mix = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache = {}
if mix == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
else
local skel, canvas, n_parts = parse_placeholder_string(mix)
for key, val in pairs(ctx.params) do
for idx = 2, n_parts, 2 do
if skel[idx] then canvas[idx] = val
else canvas[idx] = tostring(key) end
end
cache[get_parameter_name(table.concat(canvas))] = val
end
end
ctx.params = cache
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|renaming_to_values|pipe to
--[[
library.renaming_to_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for _, val in pairs(ctx.params) do cache[val] = val end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|grouping_by_calling|template
-- name|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.grouping_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, argc, tbl, mem = load_child_opts(ctx.pipe, 2, 0, ctx.params)
local gargs = {}
for key, val in pairs(tmp) do
if type(key) == 'number' and key < 1 then gargs[key - 1] = val
else gargs[key] = val end
end
tmp = ctx.pipe[1]
if tmp ~= nil then tmp = tmp:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘grouping_by_calling’: No template name was provided', 0) end
local model = { title = tmp }
local groups = make_groups(tbl)
for gid, group in pairs(groups) do
for key, val in pairs(gargs) do group[key] = val end
group[0], model.args = gid, group
groups[gid] = ctx.frame:expandTemplate(model)
end
for key, val in pairs(mem) do groups[key] = val end
ctx.params = groups
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.parsing = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘parsing’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
parse_parameter_string(ctx.params, opts[1], isep, iplain, psep, pplain,
trimnamed, trimunnamed)
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|reinterpreting|parameter to reinterpret|[trim
-- flag]|[iteration delimiter setter]|[...]|[key-value delimiter
-- setter]|[...]|pipe to
library.reinterpreting = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘reinterpreting’: No parameter to reinterpret was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '|', '=')
local tbl, tmp = ctx.params, get_parameter_name(opts[1])
local str = tbl[tmp]
if str ~= nil then
tbl[tmp] = nil
parse_parameter_string(tbl, str, isep, iplain, psep, pplain,
trimnamed, trimunnamed)
end
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|evaluating|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.evaluating = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘evaluating’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc =
load_parse_opts(opts, 2, '!', ':')
if opts[1]:match'^%s*(.*%S)' == nil then
ctx.pipe = copy_or_ref_table(opts, opts ~= ctx.opipe)
return context_iterate(ctx, argc)
end
local new_opts, cache = {}, {}
local shift = parse_parameter_string(cache, opts[1], isep, iplain,
psep, pplain, trimnamed, trimunnamed) - argc
for key, val in pairs(opts) do
if type(key) ~= 'number' or key < 1 then new_opts[key] = val
elseif key >= argc then new_opts[key + shift] = val end
end
for key, val in pairs(cache) do new_opts[key] = val end
ctx.pipe = new_opts
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|mixing_names_and_values|mixing string|pipe to
library.mixing_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
if ctx.pipe[1] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end
local tmp
local mix_k = ctx.pipe[1]:match'^%s*(.-)%s*$'
local cache, mix_v = {}, ctx.pipe[2]
if mix_k == '$@' and mix_v == '$@' then
for _, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = val
end
elseif mix_k == '$@' and mix_v == '$#' then
for key, val in pairs(ctx.params) do
cache[get_parameter_name(val)] = tostring(key)
end
elseif mix_k == '$#' and mix_v == '$#' then
for key in pairs(ctx.params) do cache[key] = tostring(key) end
else
local skel_k, cnv_k, n_parts_k = parse_placeholder_string(mix_k)
local skel_v, cnv_v, n_parts_v = parse_placeholder_string(mix_v)
for key, val in pairs(ctx.params) do
tmp = tostring(key)
for idx = 2, n_parts_k, 2 do
if skel_k[idx] then cnv_k[idx] = val else cnv_k[idx] = tmp end
end
for idx = 2, n_parts_v, 2 do
if skel_v[idx] then cnv_v[idx] = val else cnv_v[idx] = tmp end
end
cache[get_parameter_name(table.concat(cnv_k))] =
table.concat(cnv_v)
end
end
ctx.params = cache
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|swapping_names_and_values|pipe to
--[[
library.swapping_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do cache[val] = key end
ctx.params = cache
return context_iterate(ctx, 1)
end
]]--
-- Syntax: #invoke:params|combining|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return key .. kvs .. val end,
'combining'
) + 1)
end
-- Syntax: #invoke:params|combining_values|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return val end,
'combining_values'
) + 1)
end
-- Syntax: #invoke:params|combining_by_calling|template name|new parameter
-- name|pipe to
library.combining_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tname = ctx.pipe[1]
if tname ~= nil then tname = tname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_calling’: No template name was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_calling’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] = ctx.frame:expandTemplate{
title = tname,
args = ctx.params
}
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|combining_by_invoking|module name|function name|new
-- parameter name|pipe to
library.combining_by_invoking = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local mname = ctx.pipe[1]
if mname ~= nil then mname = mname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No module name was provided', 0) end
local fname = ctx.pipe[2]
if fname ~= nil then fname = fname:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_invoking’: No function name was provided', 0) end
if ctx.pipe[3] == nil then error(modulename ..
', ‘combining_by_invoking’: No parameter name was provided', 0) end
local model = { title = 'Module:' .. mname, args = ctx.params }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[3])] =
tostring(mfunc(ctx.frame:newChild(model)))
}
return context_iterate(ctx, 4)
end
-- Syntax: #invoke:params|combining_by_magic|parser function|new parameter
-- name|pipe to
library.combining_by_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local magic = ctx.pipe[1]
if magic ~= nil then magic = magic:match'^%s*(.*%S)'
else error(modulename ..
', ‘combining_by_magic’: No parser function was provided', 0) end
if ctx.pipe[2] == nil then error(modulename ..
', ‘combining_by_magic’: No parameter name was provided', 0) end
ctx.params = {
[get_parameter_name(ctx.pipe[2])] =
ctx.frame:callParserFunction(magic, ctx.params)
}
return context_iterate(ctx, 3)
end
-- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to
library.snapshotting = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.params, 'snapshotting'))
end
-- Syntax: #invoke:params|remembering|[maximum number]|pipe to
library.remembering = function (ctx)
return context_iterate(ctx, make_child(ctx, ctx.oparams, 'remembering'))
end
-- Syntax: #invoke:params|entering_substack|[new]|pipe to
library.entering_substack = function (ctx)
local tbl, ncurrparent = ctx.params, ctx.n_parents + 1
if ctx.parents == nil then ctx.parents = { tbl }
else ctx.parents[ncurrparent] = tbl end
ctx.n_parents = ncurrparent
if ctx.pipe[1] ~= nil and ctx.pipe[1]:match'^%s*new%s*$' then
ctx.params = {}
return context_iterate(ctx, 2)
end
local currsnap = ctx.n_children
if currsnap > 0 then
ctx.params, ctx.children[currsnap], ctx.n_children =
ctx.children[currsnap], nil, currsnap - 1
else
local newparams = {}
for key, val in pairs(tbl) do newparams[key] = val end
ctx.params = newparams
end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|pulling|parameter name|pipe to
library.pulling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘pulling’: No parameter to pull was provided', 0) end
local tmp = ctx.n_parents
local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp]
tmp = get_parameter_name(opts[1])
if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|recalling|parameter name|pipe to
library.recalling = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘recalling’: No parameter to recall was provided', 0) end
local arg = get_parameter_name(opts[1])
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
-- Syntax: #invoke:params|finding|parameter name|pipe to
--[[
library.finding = function (ctx)
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘finding’: No parameter to find was provided', 0) end
local arg = get_parameter_name(opts[1])
local parent
for idx = ctx.n_parents, 1, -1 do
parent = ctx.parents[idx]
if parent[arg] ~= nil then
ctx.params[arg] = parent[arg]
return context_iterate(ctx, 2)
end
end
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|picking|number of parameters to pick|pipe to
--[[
library.picking = function (ctx)
local len = tonumber(ctx.pipe[1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end
if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len)
else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end
return context_iterate(ctx, 2)
end
]]--
-- Syntax: #invoke:params|detaching_substack|pipe to
library.detaching_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘detaching_substack’: No substack has been created', 0) end
local parent = ctx.parents[ncurrparent]
for key in pairs(ctx.params) do parent[key] = nil end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|dropping_substack|pipe to
library.dropping_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘dropping_substack’: No substack has been created', 0) end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents =
ctx.parents[ncurrparent], nil, ncurrparent - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|leaving_substack|pipe to
library.leaving_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘leaving_substack’: No substack has been created', 0) end
local currsnap = ctx.n_children + 1
if ctx.children == nil then ctx.children = { ctx.params }
else ctx.children[currsnap] = ctx.params end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children =
ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|merging_substack|pipe to
library.merging_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘merging_substack’: No substack has been created', 0) end
local parent, child = ctx.parents[ncurrparent], ctx.params
ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil,
ncurrparent - 1
for key, val in pairs(child) do parent[key] = val end
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|flushing|pipe to
library.flushing = function (ctx)
if ctx.n_children < 1 then error(modulename ..
', ‘flushing’: There are no substacks to flush', 0) end
local parent, currsnap = ctx.params, ctx.n_children
for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
return context_iterate(ctx, 1)
end
-- Syntax: #invoke:params|setting_by_flushing|pipe to
library.setting_by_flushing = function (ctx)
set_strings_from_substack(ctx, ctx, 'setting_by_flushing')
return context_iterate(ctx, 1)
end
--[[ Functions ]]--
-----------------------------
-- Syntax: #invoke:params|count
library.count = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local retval = 0
for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end
if ctx.subset == -1 then retval = retval - #ctx.params end
ctx.text = retval
return false
end
-- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]
-- |[...]|[item n]|[named item 1=value 1]|[...]|[named item n=value
-- n]|[...]
library.concat_and_call = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘concat_and_call’: No template name was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:expandTemplate{
title = tname,
args = concat_params(ctx)
}
return false
end
-- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend
-- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named
-- item n=value n]|[...]
library.concat_and_invoke = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘concat_and_invoke’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘concat_and_invoke’: No function name was provided', 0) end
remove_numeric_keys(opts, 1, 2)
local mfunc = require('Module:' .. mname)[fname]
if mfunc == nil then error(modulename ..
', ‘concat_and_invoke’: The function ‘' .. fname ..
'’ does not exist', 0) end
ctx.text = mfunc(ctx.frame:newChild{
title = 'Module:' .. mname,
args = concat_params(ctx)
})
return false
end
-- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend
-- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n=
-- value n]|[...]
library.concat_and_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘concat_and_magic’: No parser function was provided', 0) end
remove_numeric_keys(opts, 1, 1)
ctx.text = ctx.frame:callParserFunction(magic, concat_params(ctx))
return false
end
-- Syntax: #invoke:params|value_of|parameter name
library.value_of = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local opts = ctx.pipe
if opts[1] == nil then error(modulename ..
', ‘value_of’: No parameter name was provided', 0) end
local val
local key = opts[1]:match'^%s*(.-)%s*$'
if key == '0' or key:find'^%-?[1-9]%d*$' ~= nil then
key = tonumber(key)
val = ctx.params[key]
-- No worries: #ctx.params is unused when the modifier is in
-- first position (and therefore `ctx.params` is a metatable)
if val ~= nil and (
ctx.subset ~= -1 or key > #ctx.params or key < 1
) and (
ctx.subset ~= 1 or (key <= #ctx.params and key > 0)
) then
ctx.text = (ctx.header or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
else
val = ctx.params[key]
if ctx.subset ~= 1 and val ~= nil then ctx.text = (ctx.header
or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
end
return false
end
-- Syntax: #invoke:params|list
library.list = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss =
pps, key, kvs, val, nss + 4
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|list_values
library.list_values = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
-- NOTE: `library.coins()` and `library.unique_coins()` rely on us
local ret, nss, pps = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|list_maybe_with_names
library.list_maybe_with_names = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
mixed_flush_params(
ctx,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, '', '', val, nss + 4
end,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, key, kvs, val, nss + 4
end
)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|coins|[first coin = value 1]|[second coin = value
-- 2]|[...]|[last coin = value N]
--[[
library.coins = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do tbl[key] = opts[get_parameter_name(val)] end
return library.list_values(ctx)
end
]]--
-- Syntax: #invoke:params|unique_coins|[first coin = value 1]|[second coin =
-- value 2]|[...]|[last coin = value N]
--[[
library.unique_coins = function (ctx)
local tmp
local opts, tbl = ctx.pipe, ctx.params
for key, val in pairs(tbl) do
tmp = get_parameter_name(val)
tbl[key], opts[tmp] = opts[tmp], nil
end
return library.list_values(ctx)
end
]]
-- Syntax: #invoke:params|for_each|wikitext
library.for_each = function (ctx)
-- NOTE: `ctx.pipe` might be the original metatable!
local ret, nss, pps, txt = {}, 0, ctx.itersep or '', ctx.pipe[1] or ''
local skel, cnv, n_parts = parse_placeholder_string(txt)
flush_params(ctx, function (key, val)
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
ret[nss + 1], nss = pps, nss + 2
ret[nss] = table.concat(cnv)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each|module name|module function|[append
-- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]
-- |[named param n=value n]|[...]
library.invoke_for_each = function (ctx)
local mname, fname
local opts = ctx.pipe
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append 2]
-- |[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.magic_for_each = function (ctx)
local magic
local opts = ctx.pipe
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
table.insert(opts, 1, true)
flush_params(ctx, function (key, val)
opts[1], opts[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_value = function (ctx)
local tname
local opts = ctx.pipe
if opts[1] ~= nil then tname = opts[1]:match'^%s*(.*%S)' end
if tname == nil then error(modulename ..
', ‘call_for_each_value’: No template name was provided', 0) end
local model = { title = tname, args = opts }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.invoke_for_each_value = function (ctx)
local opts = ctx.pipe
local mname, fname
if opts[1] ~= nil then mname = opts[1]:match'^%s*(.*%S)' end
if mname == nil then error(modulename ..
', ‘invoke_for_each_value’: No module name was provided', 0) end
if opts[2] ~= nil then fname = opts[2]:match'^%s*(.*%S)' end
if fname == nil then error(modulename ..
', ‘invoke_for_each_value’: No function name was provided', 0) end
local model = { title = 'Module:' .. mname, args = opts }
local mfunc = require(model.title)[fname]
local ret, nss, ccs = {}, 0, ctx.itersep or ''
remove_numeric_keys(opts, 1, 1)
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]
-- |[append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named
-- param n=value n]|[...]
library.magic_for_each_value = function (ctx)
local opts = ctx.pipe
local magic
if opts[1] ~= nil then magic = opts[1]:match'^%s*(.*%S)' end
if magic == nil then error(modulename ..
', ‘magic_for_each_value’: No parser function was provided', 0) end
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
opts[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, opts)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_group|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_group = function (ctx)
-- NOTE: `ctx.pipe` and `ctx.params` might be the original metatables!
local tmp
if ctx.pipe[1] ~= nil then tmp = ctx.pipe[1]:match'^%s*(.*%S)' end
if tmp == nil then error(modulename ..
', ‘call_for_each_group’: No template name was provided', 0) end
local model = { title = tmp }
local opts, ret, nss, ccs = {}, {}, 0, ctx.itersep or ''
for key, val in pairs(ctx.pipe) do
if type(key) == 'number' then opts[key - 1] = val
else opts[key] = val end
end
ctx.pipe = opts
ctx.params = make_groups(ctx.params)
flush_params(ctx, function (gid, group)
for key, val in pairs(opts) do group[key] = val end
group[0], model.args, ret[nss + 1], nss = gid, group, ccs,
nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
--[[ First-position-only modifiers ]]--
---------------------------------------
-- Syntax: #invoke:params|new|pipe to
static_iface.new = function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, false)
ctx.params = {}
main_loop(ctx, context_iterate(ctx, 1))
return ctx.text
end
--[[ First-position-only functions ]]--
---------------------------------------
-- Syntax: #invoke:params|self
static_iface.self = function (frame)
return frame:getParent():getTitle()
end
--[[ Public metatable of functions ]]--
---------------------------------------
return setmetatable({}, {
__index = function (_, query)
local fname = query:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
': You must specify a function to call', 0) end
local func = static_iface[fname]
if func ~= nil then return func end
func = library[fname]
if func == nil then error(modulename ..
': The function ‘' .. fname .. '’ does not exist', 0) end
return function (child_frame)
local ctx = context_new(child_frame)
ctx.pipe = copy_or_ref_table(ctx.opipe, refpipe[fname])
ctx.params = copy_or_ref_table(ctx.oparams, refparams[fname])
main_loop(ctx, func)
return ctx.text
end
end
})
9ko1dij40e2ajwgg59fvqm72uoivi2f
Blake Griffin
0
11349495
37024640
37005147
2026-07-23T22:50:51Z
Sumo tomus
146587
File
37024640
wikitext
text/x-wiki
[[File:Blake Griffin.jpg|right|thumb|140px|upright|Griffin (2008)]]
'''Si Blake Austin Griffin''' (natawo kaniadtong Marso 16, 1989) usa ka Amerikanong kanhi propesyonal nga magduduwa [https://en.wikipedia.org/w/index.php?search=Basketball&title=Special%3ASearch&profile=advanced&fulltext=1&ns0=1 sa basketball] . Si Griffin nanguna nga nagduwa uban sa [https://en.wikipedia.org/w/index.php?search=Los+Angeles+Clippers&title=Special%3ASearch&profile=advanced&fulltext=1&ns0=1 Los Angeles Clippers] sa [[National Basketball Association]] (NBA) ug nagdula og college basketball alang sa Oklahoma Sooners, diin siya ginganlan nga consensus national college player of the year isip usa ka sophomore. Si Griffin napili nga unang overall sa Clippers sa 2009 NBA draft, ug ka unom ka beses nga napili sa NBA All-Star ug lima ka beses nga napili sa All-NBA . Kaniadtong Enero 2018, si Griffin gi-trade ngadto sa Detroit Pistons ug nagduwa alang kanila hangtod sa 2021.
4i75v7c8jqswvrr0uksbuqxk0d7y8ph
Kategoriya:Pransiyang pelikula
14
11354002
37024572
37020148
2026-07-23T14:27:38Z
Shrekiolous
144427
±[[Kategoriya:Pransiya]]→[[Kategoriya:Kultura sa Pransiya]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Mga pelikula sa nasud]] using [[Help:Gadget-HotCat|HotCat]]
37024572
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Pransiya|Pransiyang]]
[[Kategoriya:Mga pelikula sa nasud]]
sm7t1csm2h691tirqautn3ehxjcmv9l
37024573
37024572
2026-07-23T14:29:38Z
Shrekiolous
144427
removed [[Category:Kultura sa Pransiya]]; added [[Category:Kultura sa Pransya]] using [[Help:Gadget-HotCat|HotCat]]
37024573
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Pransya|Pransiyang]]
[[Kategoriya:Mga pelikula sa nasud]]
kdrbo0mn32eequq2qvo7cg07qph8ydj
Kategoriya:Pilipinong pelikula
14
11354104
37024571
37020559
2026-07-23T14:26:42Z
Shrekiolous
144427
±[[Kategoriya:Pilipinas]]→[[Kategoriya:Kultura sa Pilipinas]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Mga pelikula sa nasud]] using [[Help:Gadget-HotCat|HotCat]]
37024571
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Pilipinas|Pelikula]]
[[Kategoriya:Mga pelikula sa nasud]]
q7im59s39nraepkfinzu956owox9vks
Kategoriya:Indyang pelikula
14
11354175
37024569
37020723
2026-07-23T14:16:16Z
Shrekiolous
144427
±[[Kategoriya:Indiya]]→[[Kategoriya:Kultura sa Indiya]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Mga pelikula sa nasud]] using [[Help:Gadget-HotCat|HotCat]]
37024569
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Indiya|Pelikula]]
[[Kategoriya:Mga pelikula sa nasud]]
qtsvb0k9kft0awxpudr2lqkni7g8h71
Kategoriya:Kanadyanong pelikula
14
11354615
37024570
37022463
2026-07-23T14:25:55Z
Shrekiolous
144427
±[[Kategoriya:Kanada]]→[[Kategoriya:Kultura sa Kanada]]; ±[[Kategoriya:Pelikula]]→[[Kategoriya:Mga pelikula sa nasud]] using [[Help:Gadget-HotCat|HotCat]]
37024570
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Kanada|Pelikula]]
[[Kategoriya:Mga pelikula sa nasud]]
k3zzhn0kwwnm2xhqqptvmcza2uspxmf
Kategoriya:Mga pelikula sa nasud
14
11355087
37024539
2026-07-23T12:32:51Z
Shrekiolous
144427
Created page with "[[Kategoriya:Pelikula| ]] [[Kategoriya:Mga nasod| Pelikula]]"
37024539
wikitext
text/x-wiki
[[Kategoriya:Pelikula| ]]
[[Kategoriya:Mga nasod| Pelikula]]
k8gsmrnio8cqga7mqycj6z5lc3u8hsf
37024541
37024539
2026-07-23T13:28:36Z
Shrekiolous
144427
removed [[Category:Mga nasod]]; added [[Category:Mga kategoriya sa nasod]] using [[Help:Gadget-HotCat|HotCat]]
37024541
wikitext
text/x-wiki
[[Kategoriya:Pelikula| ]]
[[Kategoriya:Mga kategoriya sa nasod|Pelikula]]
kvq9fbsarm67h5u2uldc6knu7gswuby
Kategoriya:Mga kategoriya sa nasod
14
11355088
37024542
2026-07-23T13:30:55Z
Shrekiolous
144427
Created page with "[[Kategoriya:Mga nasod| ]] [[Kategoriya:Root| ]]"
37024542
wikitext
text/x-wiki
[[Kategoriya:Mga nasod| ]]
[[Kategoriya:Root| ]]
kw02ehorydoe8caws6b0mif8kr9gsxf
Kategoriya:Ōita Prefecture
14
11355089
37024545
2026-07-23T13:35:33Z
Fixer88
28406
Created page with "[[Kategoriya:Mga subdibisyon sa Hapon]]"
37024545
wikitext
text/x-wiki
[[Kategoriya:Mga subdibisyon sa Hapon]]
tpspdvfbrkz44t3chlctoeoveh58ek7
37024549
37024545
2026-07-23T13:37:50Z
Fixer88
28406
Fixer88 moved page [[Kategoriya:Ōita-ken]] to [[Kategoriya:Ōita Prefecture]]
37024545
wikitext
text/x-wiki
[[Kategoriya:Mga subdibisyon sa Hapon]]
tpspdvfbrkz44t3chlctoeoveh58ek7
Kategoriya:Ōita-ken
14
11355090
37024550
2026-07-23T13:37:50Z
Fixer88
28406
Fixer88 moved page [[Kategoriya:Ōita-ken]] to [[Kategoriya:Ōita Prefecture]]
37024550
wikitext
text/x-wiki
#REDIRECT [[:Kategoriya:Ōita Prefecture]]
0rz98qdu44yvguqwy28877tb8iwlxu9
Listahan sa mga iladong kompanya sa eroplano sa Equatorial Guinea
0
11355091
37024557
2026-07-23T13:46:16Z
Youravreageavaitor
141554
Created page with "{| class="wikitable" |+ !Kompanya !media !gitas-on sa kinabuhi !mga nota |- |[[CEIBA Intercontinental]] |[[Payl:CEIBA Intercontinental ATR 42-500 SDV-3.jpg|thumb]] |2007-aktibo | |- |[[Cronos Airlines]] | |2007-aktibo | |- |[[Ecuato Guineana]] |[[Payl:Fokker F-27 Friendship EGA - Equatorial Guinee Airlines F-BIUK, LBG Paris (Le Bourget), France PP1257672453.jpg|thumb]] |1986-2007 | |- |[[Guinea Ecuatorial Airlines]] |Payl:GEASA Yakovlev Yak-40 at Malabo Airport.jpeg|th..."
37024557
wikitext
text/x-wiki
{| class="wikitable"
|+
!Kompanya
!media
!gitas-on sa kinabuhi
!mga nota
|-
|[[CEIBA Intercontinental]]
|[[Payl:CEIBA Intercontinental ATR 42-500 SDV-3.jpg|thumb]]
|2007-aktibo
|
|-
|[[Cronos Airlines]]
|
|2007-aktibo
|
|-
|[[Ecuato Guineana]]
|[[Payl:Fokker F-27 Friendship EGA - Equatorial Guinee Airlines F-BIUK, LBG Paris (Le Bourget), France PP1257672453.jpg|thumb]]
|1986-2007
|
|-
|[[Guinea Ecuatorial Airlines]]
|[[Payl:GEASA Yakovlev Yak-40 at Malabo Airport.jpeg|thumb]]
|1996-2010s
|
|-
|[[Jetline]]
|[[Payl:Ильюшин Ил-62 4648414, Москва - Домодедово RP6570.jpg|thumb]]
|1999-?
|
|-
|[[Punto Azul]]
|[[Payl:PR-PSR E145 (8664101150).jpg|thumb]]
|2015-2019
|
|}
mqxvaxvjyoh42cd6ypfw36gs4bodmf6
Kategoriya:Haponng karton nga seryeng pantelebisyon
14
11355092
37024560
2026-07-23T13:52:14Z
Shrekiolous
144427
Created page with "[[Kategoriya:Haponng seryeng pantelebisyon]] [[Kategoriya:Karton nga seryeng pantelebisyon]]"
37024560
wikitext
text/x-wiki
[[Kategoriya:Haponng seryeng pantelebisyon]]
[[Kategoriya:Karton nga seryeng pantelebisyon]]
oij48n2ak1l5h2y2zejicwcnwwm4k61
CEIBA Intercontinental
0
11355093
37024561
2026-07-23T13:53:06Z
Youravreageavaitor
141554
Created page with "[[Payl:CEIBA Intercontinental ATR 42-500 SDV-1.jpg|thumb|CIEBA ATR 42s]] Ang CEIBA Intercontinental usa ka airline nga nagsilbing flag carrier sa Republika sa Equatorial Guinea. Natukod niadtong 2007, sa sinugdanan migamit kini sa 737 apan gihunong na ang paggamit niini nga matang sa ayroplano.<ref>https://www.planespotters.net/airline/Ceiba-Intercontinental</ref><ref>https://www.ch-aviation.com/airlines/CEI</ref> == mga pakisayran =="
37024561
wikitext
text/x-wiki
[[Payl:CEIBA Intercontinental ATR 42-500 SDV-1.jpg|thumb|CIEBA ATR 42s]]
Ang CEIBA Intercontinental usa ka airline nga nagsilbing flag carrier sa Republika sa Equatorial Guinea. Natukod niadtong 2007, sa sinugdanan migamit kini sa 737 apan gihunong na ang paggamit niini nga matang sa ayroplano.<ref>https://www.planespotters.net/airline/Ceiba-Intercontinental</ref><ref>https://www.ch-aviation.com/airlines/CEI</ref>
== mga pakisayran ==
nv8ohj0b0fwads0jmg7ly9cjsjf9b7a
37024562
37024561
2026-07-23T13:54:16Z
Youravreageavaitor
141554
37024562
wikitext
text/x-wiki
[[Payl:CEIBA Intercontinental ATR 42-500 SDV-1.jpg|thumb|CIEBA ATR 42s]]
Ang CEIBA Intercontinental usa ka airline nga nagsilbing flag carrier sa Republika sa Equatorial Guinea. Natukod niadtong 2007, sa sinugdanan migamit kini sa 737 apan gihunong na ang paggamit niini nga matang sa ayroplano.<ref>https://www.planespotters.net/airline/Ceiba-Intercontinental</ref><ref>https://www.ch-aviation.com/airlines/CEI</ref>
== Tan-awa usab ==
[[Listahan sa mga iladong kompanya sa eroplano sa Equatorial Guinea]]
== mga pakisayran ==
ifyw4b3k5f0uqv8m5ghoha1paxs4moo
Kategoriya:Haponng seryeng pantelebisyon
14
11355094
37024563
2026-07-23T13:54:29Z
Shrekiolous
144427
Created page with "[[Kategoriya:Seryeng pantelebisyon]] [[Kategoriya:Telebisyon sa Hapon]]"
37024563
wikitext
text/x-wiki
[[Kategoriya:Seryeng pantelebisyon]]
[[Kategoriya:Telebisyon sa Hapon]]
35kujdd969px74enw7c0pcetjklnuto
Kategoriya:Tokyo
14
11355095
37024566
2026-07-23T14:00:09Z
Fixer88
28406
Created page with "[[Kategoriya:Mga subdibisyon sa Hapon]]"
37024566
wikitext
text/x-wiki
[[Kategoriya:Mga subdibisyon sa Hapon]]
tpspdvfbrkz44t3chlctoeoveh58ek7
Kategoriya:Mga telebisyon sa nasud
14
11355096
37024567
2026-07-23T14:06:51Z
Shrekiolous
144427
Created page with "[[Kategoriya:Telebisyon| ]] [[Kategoriya:Mga kategoriya sa nasod|Telebisyon]]"
37024567
wikitext
text/x-wiki
[[Kategoriya:Telebisyon| ]]
[[Kategoriya:Mga kategoriya sa nasod|Telebisyon]]
tnzfnvb4hvmceem260hadkrdvz9e51l
Kategoriya:Telebisyon sa Hapon
14
11355097
37024568
2026-07-23T14:10:52Z
Shrekiolous
144427
Created page with "[[Kategoriya:Kultura sa Hapon]] [[Kategoriya:Mga telebisyon sa nasud|Hapon]]"
37024568
wikitext
text/x-wiki
[[Kategoriya:Kultura sa Hapon]]
[[Kategoriya:Mga telebisyon sa nasud|Hapon]]
6j3crh1tq7rcvi6naysdzsdd0pqbsat
Xã Mỹ Phong (munisipyo sa Tỉnh Tiền Giang)
0
11355098
37024577
2026-07-23T16:51:22Z
Vietic2
134088
Vietic2 moved page [[Xã Mỹ Phong (munisipyo sa Tỉnh Tiền Giang)]] to [[Mỹ Phong]]
37024577
wikitext
text/x-wiki
#REDIRECT [[Mỹ Phong]]
se4fpyvhvo33k5jbbohqw4086ibn0nt
Kategoriya:Balearic Islands
14
11355099
37024591
2026-07-23T19:36:43Z
Fixer88
28406
Created page with "[[Kategoriya:Mga subdibisyon sa Espanya]]"
37024591
wikitext
text/x-wiki
[[Kategoriya:Mga subdibisyon sa Espanya]]
jkvkvlwf586p8k0e6qn51dr6g321o64
Kategoriya:Heyograpiya sa Makedoniya sa munisipyo
14
11355100
37024602
2026-07-23T19:53:31Z
Fixer88
28406
Fixer88 moved page [[Kategoriya:Heyograpiya sa Makedoniya sa munisipyo]] to [[Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
37024602
wikitext
text/x-wiki
#REDIRECT [[:Kategoriya:Heyograpiya sa Amihanang Makedoniya sa munisipyo]]
1w62yrgkxumknuwbnrasieuy0uu6s4f
Kategoriya:Inglatera
14
11355101
37024629
2026-07-23T20:23:25Z
Fixer88
28406
Created page with "[[Kategoriya:Mga subdibisyon sa Hiniusang Gingharian]]"
37024629
wikitext
text/x-wiki
[[Kategoriya:Mga subdibisyon sa Hiniusang Gingharian]]
rfch5t7jidzsztz4h3e1v5hget02hxw
P. D. Eastman
0
11355103
37024649
2026-07-24T07:55:01Z
Shrekiolous
144427
Created page with "'''Philip Dey Eastman''' (Nobiyembre 25, 1909 – Enero 7, 1986), gianggaan '''P. D. Eastman''', usa ka Amerikanong screenwriter, tagsulat sa libro sa mga bata, ug ilustrador.<ref>http://www.pdeastmanbooks.com/</ref> == Mga reperensya == <references /> {{saha}} [[Kategoriya:Mga Amerikanong magsusulat]] [[Kategoriya:Mga natawo sa 1909]] [[Kategoriya:Mga namatay sa 1986]] [[Kategoriya:Mga natawo sa Nobiyembre 25]] [[Kategoriya:Mga namatay sa Enero 7]]"
37024649
wikitext
text/x-wiki
'''Philip Dey Eastman''' (Nobiyembre 25, 1909 – Enero 7, 1986), gianggaan '''P. D. Eastman''', usa ka Amerikanong screenwriter, tagsulat sa libro sa mga bata, ug ilustrador.<ref>http://www.pdeastmanbooks.com/</ref>
== Mga reperensya ==
<references />
{{saha}}
[[Kategoriya:Mga Amerikanong magsusulat]]
[[Kategoriya:Mga natawo sa 1909]]
[[Kategoriya:Mga namatay sa 1986]]
[[Kategoriya:Mga natawo sa Nobiyembre 25]]
[[Kategoriya:Mga namatay sa Enero 7]]
7pgyz1672voiuyy8maarya270y850sb