Wikipiideɛ
dgawiki
https://dga.wikipedia.org/wiki/A_Gamp%C9%9Bl%C9%9B_zu
MediaWiki 1.47.0-wmf.11
first-letter
Duoro bimbu zie
Be o yoŋ
Yeli
Toma daana
Toma daana yeli
Wikipedia
Wikipedia yeli
Duoro kɔre
Duoro kɔre yeli
MediaWiki
MediaWiki yeli
Tɛmpileti
Tɛmpileti yeli
Sombo
Sombo yeli
Gbuli
Gbuli yeli
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Alexander Kodwo Kom Abban
0
148
62597
58327
2026-07-15T22:43:16Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62597
wikitext
text/x-wiki
{{Databox|item=Q61694539}}
'''Alexander Kodwo Kom Abban'''<ref>https://web.archive.org/web/20221205165157/https://www.thepublisheronline.com/internal-auditors-must-be-the-eye-of-the-public-mp/mr-alexander-kodwo-kom-abban/</ref> e la Gaana pɔletesean ane [[begemaale die ayɔpõĩ mɛmba a Ghana republic anaare|begemaale die ayɔpõĩ mɛmba a Gaana republic anaare]] eŋɛ, a are ko [[Gomoa West|Gomoa West Gbandige]] a [[Central Region|central Irigyiŋ]] poɔ, a [[Wɔɔ paati|wɔɔ paate]] [[yuori]] eŋɛ.<ref>https://www.ghanaweb.com/person/Alexander-Kodwo-Kom-Abban-2263</ref>
== Nyɔvore Piiluu ane Ganzanne ==
Ba dɔge la Abban Disembare beri ayoɔbo 1973 ane o baa la [[Gomoa Dawurampong]] a central Irigyiŋ poɔ, [[Ghana|Gaana]]. O taa la Baŋkeŋ Masa lɔɔ degeree ane libi-yɛlɛ lɔɔ yi a [[Boston university school of Law|Boston univeniti sakuuri naŋ kyaare begɛ]] 2008 poɔ.<ref name=":0">https://ghanamps.com/mp/abban-alexander-kodwo-kom/</ref> O nyɛ la o Medical License yi a Medical ane Dental Council. O la taa la o science degeree bakyila Human Biology eŋɛ yi a [[Kwame Nkrumah University of Science and Technology|Kwame Nkrumah Univeniti ko Science ane Technology]], Bakyila Science degeree Medicine ane Surgery eŋɛ yi a sakue ŋa ne o zu. O gaa la niŋe de o Masa degeree Public Health yi a [[Hamburg Sakuuri ko Applied science]]. O la taa la German Sɛtefekate yi a [[Goethe Institut]] [[Accra]] poɔ.<ref name=":1">https://web.archive.org/web/20230924111854/https://www.moh.gov.gh/hon-alexander-kodwo-kom-abban/</ref>
== O Toma ==
Abban da e la [[Merɛ hakelteɛrɛ]] yi 2013 te tɔ 2014 a [[Ghana Stock Exchange|Gaana Stock Exchange]] zie. O meŋ da la e la lɛgekyiraa a [[Ghana Institute Management ane Public Administration|Gaana Institute Management ane Public Administration]] a yi 2009 te tɔ 2010. O meŋ da la e la wagere kyɛlee lɛgekyiraa a [[Ghana School of Law|Gaana School of Law]] a yi 2010 te tɔ 2015. O da e la die Ɔfesa yi 2009 te tɔ 2012 a [[Ghana Health Service|Gaana Health Service]] ane a Medical Ɔfesa ana tontonzie na ne o zu yi 2012 te tɔ 2016.<ref name=":1" />
== Pɔletese Yɛlɛ ==
Abban e la [[Wɔɔ paati|wɔɔ paate]] mɛmba.<ref name=":1" /> O e la begemaale die mɛmba koroo ko a begemaale die ayɔpõĩ a Gaana republic anaare eŋɛ, ko a Gomoa West Gbandige a [[Central Region|Central Irigyiŋ]] poɔ, Ghana.<ref name=":0" />
=== 2016 Nuuri Neɛbo ===
A [[2016 Ghana zaa gbuli nuuri neɛbo]] eŋɛ, Abban di la Gomoa West Gbandige begemaale die gyongyoŋ kogi. O da die la ne 22,741 nuuri naŋ e 49.6% kɔɔ poɔ a nuuri zaa naŋ neɛ kyɛ ka a [[Kataweɛ Paati|NDC]] begemaale die gyongyoŋ bie Samuel Fletcher nyɛ 21,004 nuuri naŋ e 45.8% kɔɔ poɔ a nuuri zaa naŋ neɛ, ka [[PPP]] begemaale die gyongyoŋ bie Charles Yawson nyɛ 2,086 nuuri naŋ e 4.6% kɔɔ poɔ a nuuri zaa naŋ neɛ ane a [[CPP]] begemaale die gyongyoŋ bie Stephen Afriyie nyɛ 0 nuuri naŋ e 0% kɔɔ poɔ a nuuri zaa naŋ neɛ.<ref>https://web.archive.org/web/20221205161445/https://ghanaelections.peacefmonline.com/pages/2016/parliament/central/gomoa_west/</ref>
== Kɔmatee ==
Abban da e la mɛmba ko a Gɔmenante yeltɔnyaa kɔmatee ane meŋ mɛmba ko a Laanfeeloŋ yɛlɛ kɔmatee.<ref name=":1" />
=== Minisa ===
Ona la Depete Minisa koro ko Laanfeeloŋ yɛlɛ.<ref>https://web.archive.org/web/20230601165426/https://newslinegh.com/2019/03/21/amend-section-37-of-the-ghs-teaching-hospitals-act-to-ensure-effective-functioning-kodwo-abban-appeals/</ref><ref>https://web.archive.org/web/20240610055017/https://presidency.gov.gh/index.php/briefing-room/press-releases/1557-new-deputy-ministerial-appointments</ref> O la e la Deɛpete Minisa koroo ko duori ŋmɛ.<ref>https://web.archive.org/web/20221205170953/https://businessdayghana.com/national-cyber-security-centre-develops-cii-to-ensure-cyber-resilience/deputy-communications-minister-alexander-kodwo-kom-abban/</ref><ref>https://dailyguidenetwork.com/breaking-news-president-sacks-deputy-minister/</ref><ref>https://www.myjoyonline.com/asset-declaration-bawumia-ofori-atta-osafo-maafo-kyei-mensah-bonsu-and-88-others-did-not-fully-comply/</ref>
====== 2020 Nuuri Neɛbo ======
Abban lee la a Gomoa West Gbandige begemaale die gyongyoŋ eŋɛ, a [[2020 Ghana zaa gbuli nuuri neɛbo]] wagere ko a NDC begemaale die gyongyoŋ bie [[Richard Gyan Mensah]]. O lee la ne 25,235 nuuri naŋ e 44.9% kɔɔ poɔ a nuuri zaa naŋ neɛ kyɛ ka Richard nyɛ 29,822 nuuri naŋ e 53.0% kɔɔ poɔ a nuuri zaa naŋ neɛ, ka a [[GUM]] begemaale die gyongyoŋ bie Edmond Panyin Enchill nyɛ 716 nuuri naŋ e 1.3% kɔɔ poɔ a nuuri zaa naŋ neɛ ane a PPP begemaale die gyongyoŋ bie Charles Yawson nyɛ 481 nuuri naŋ e 0.9% kɔɔ poɔ a nuuri zaa naŋ neɛ.<ref>https://mobile.ghanaweb.com/GhanaHomePage/ghanaelection2020/elections.constituency.results.php?mode=parliamentary&ID=90</ref><ref>https://web.archive.org/web/20240313170758/https://ghanaelections.peacefmonline.com/pages/2020/parliament/central/gomoa_west/</ref>
== Meŋɛ Yɛlɛ ==
O e la [[Kiristabie]] (Catholic). O kuli la Mrs Anastasia Antoinette Abban, ba taa la biiri banaare.
== Sommo Yizie ==
[[Category:8th Parliament of the 4th Republic of Ghana]]
[[Category:Dagaare]]
[[Category:Gampɛlɛ zaa]]
[[Category:Dɔɔ]]
[[Category:Dɔɔloŋ]]
[[Category:Africa]]
[[Category:Ghana]]
[[Category:West Africa]]
[[Category:7th Parliament of the 4th Republic of Ghana]]
qykinp1ydkjnbkzm075faki0yh4tt0w
Joseph Yieleh Chireh
0
820
62609
57997
2026-07-16T03:00:24Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62609
wikitext
text/x-wiki
{{Databox|item= Q1708293}}
'''Joseph Yieleh Chireh'''(Dɔge o la a 8 Gyuulae 1954 yuoni) o e la teeŋ karakye bege-ŋmaara, gɔvemente gbɛbogi ara a ko paaloŋ zaane yɛlɛ aneŋ pɔleteseɛŋ.<ref>https://web.archive.org/web/20210125034646/https://thebftonline.com/11/08/2020/fbnbanks-board-chair-retires/</ref><ref name=":0">https://web.archive.org/web/20110716172024/http://www.parliament.gh/hon_chireh_joseph_yieleh.html</ref> O da e la begimaala naŋ da are ko a Wa West nu-neɛ lombori. O toŋ la a begemaale toma dire anaare, anuu, ayoɔbo aneŋ ayɔpoi a ko a Republic of Ghana. O e la neɛ naŋ poɔ a Pan-African begemaale die yɛlɛ poɔ.<ref>http://parliamentafrica.com/photos-ghanas-representatives-at-the-pan-african-parliament-2/</ref>
== O Nyɔvore Piiluu Aneŋ O Sakuu ==
Ba dɔge la Chireh teŋa kaŋa ba naŋ boɔla [[Lassia Tuolu]] naŋ be a [[Upper West Irigyin]] paaloŋ a Gaana poɔ. O nyɛ la o sekondire sakuuri zannoo a yi Navrongo sakuuri poɔ, be ka o da zanne a yi neŋ gama mine ayi ba naŋ boɔla GCE ordinary aneŋ Advanced level certificate.<ref name=":1">https://web.archive.org/web/20210107221113/https://ukgcc.com.gh/hon-joseph-yieleh-chireh/</ref> O da leɛ gaa la nimitɔɔre a leɛ zanne a yi sakukpoŋ ŋa ba naŋ boɔla KNUST a 1975 yuoni poɔ a da yi neŋ gama mine ba naŋ boɔla Bachelor degree in pharmacy a 1979 yuoni poɔ. O da leɛ gaa la nimitɔɔre a lɛ te gaa [[begɛ Sakuuri]] ŋa ba naŋ boɔla Ghana School Of Law a 2001 yuoni poɔ a da nyɛ kpeɛŋu a leɛ [[bege-ŋmaara]] a 2006 yuoni poɔ.<ref name=":0" />
== Pͻletese ane Tonsonne Toma ==
O paale la a Kataweԑ Naa poͻ. Yieleh Chireh da e la a Dakogizusoba ko a Procurement Taskforce a PNDC Gͻbenԑnte deme naŋ da maale a 1991 yuoni poͻ. O naŋ da e Dakogizusoba o da soŋԑԑ kyԑ de weԑŋ ka ba peԑre yelba-erre mine kyaare a procurement Ministries, Departments ane Agencies (MDAs)lamboe mineŋ ba naŋ baŋe kyaare Laafēēloŋ Ministry, a Volta River Authority, Electricity Corporation of Ghana ane a Post & Telecommunications Corporation kore na meŋ.<ref name=":2">https://web.archive.org/web/20210110041159/https://www.fbnbankghana.com/about-us/the-leadership/board-of-directors/joseph-yieleh-chireh/</ref>
O da toŋ la vo-yaga poͻ a yi Irigyinale minista, Ambassador, begemaale neԑ a yi gaa Local Gͻbenԑnte ane Korre baabo Minista a la maaleŋ e Laafēēloŋ Minista.
=== Irgyinale Minista - Amabassador ===
Chireh da kpԑ a [[Kataweԑ Naa poͻ]] saŋa na ba naŋ da piili maale o a 1992 yuoni poͻ ka ba de Naaŋ pͻletese yԑlԑ a Ghana paaloŋ poͻ. [[Jerry Rawlings]] da iri o la ka o e a [[Upper West Irigyinale]] Minista a o [[gͻbenԑnte]] a 1993 yuoni poͻ.
O da toŋ la a vuo ŋa poͻ a yi 1993 a te ta a 1997 yuoni poͻ. Ba da la maale o la ka o e [[Ambassador Extraordinary ane Plenipotentiary]] a ko [[Algeria]] kyԑ la taa toma ane [[Tunisia]] paaloŋ meŋ, a [[Sahrawi Arab Democratic Republic]] ane [[Mauritania]] a yi a yuomo 1997 ane 2001 sogaŋ.<ref name=":0" /> O da e la a begemaale neԑ a ko a begemaale deri Anaare, Anuu, Ayoͻbo ane Ayopoi soba a yi yuompaalaa kyuu 2005 a te ta yuompaalaa kyuu 2021.
=== Begemaale Neԑ ===
==== 2004 nu-neԑ ====
O da ŋmԑ la kpamkpire ba naŋ da wa ŋmaa a Wa West gbandige paalaa na begemaale kogi eŋԑ a Ghana deme begemaaleba nu-neԑ a borenyԑ kyuu 2004 poͻ, a da di beŋ ka lԑ da taa o kpԑ ne a [[begemaale die Anaare ko a Republic of Ghana Anaare soba]] poͻ.<ref>http://library.fes.de/pdf-files/bueros/ghana/03610.pdf</ref> Ba da iri la Chireh ka o e a begemaale neԑ ko a Wa west gbandige a [[2004 yuoni Ghana deme zaa nu-neԑ]] poͻ.<ref name=":3">https://web.archive.org/web/20231006183443/https://ghanaelections.peacefmonline.com/pages/2004/upperwest/186/index.php</ref><ref name=":4">https://library.fes.de/pdf-files/bueros/ghana/03610.pdf</ref> O paa da are ko la a o gbandige a begemaale die Anaare soba ko a Republic of Ghana Anaare soba poͻ. O da die la ane noba 13,256 a yi neŋ noba 19,980 a noba zaa naŋ neԑ nuuri soŋ poͻ. A ŋaa da te manne la 66.3% a noba zaa naŋ neԑ nuuri soŋ poͻ. O da die la kyԑ ka o dataare Vaari Matthew Saa-hi ko [[People's National Convention]] ane Edward Yirimambo ko a [[Wͻͻ Naa]] le teŋԑ. Ba da nyԑ la noba 653 ane noba 6,071 naŋ tutaa a lԑ ne o zu a noba zaa naŋ wa neԑ nuuri soŋ baare poͻ. A ŋaa te manne ne la 3.3% ane 30.4% naŋ tutaa a lԑ ne o zu a noba zaa naŋ wa neԑ nuuri soŋ baare poͻ. Ba da iri la Chireh a [[Kataweԑ Naa]] yuori eŋԑ.<ref name=":3" /><ref name=":4" /> A nu-neԑ na poͻ, a Kataweԑ Naa da di la kogi-yaga 94 begemaale kogiri a yi ne 230 begemaale kogiri poͻ a begemaale die Anaare soba ko a republic of Ghana Anaare soba poͻ.<ref>https://www.fact-checkghana.com/statistics-presidential-parliamentary-election-results/</ref>
=== 2008,2012 nu-neԑ ===
O da la de la o kogi a 2008 poͻ<ref name=":5">http://www.ghanaweb.com/GhanaHomePage/election2008/parliament.constituency.php?ID=280</ref> o naŋ da wa di ane noba 10,468 naŋ te manne ne 50% kyԑ ka o kpamkpir-ŋmeԑrebԑ naŋ da peԑle o Dari Daniel Kuusongno a ko a Wͻͻ Naa, Edward B. Yirimanbo, naŋ da are oyoŋ a ba paale Naa kaŋa zaa poͻ ba da nyԑ la noba 4,455 naŋ te manne ne 21.3% ane noba 5,541 naŋ te manne ne 26.5% naŋ tutaa a lԑ ne o zu.<ref name=":5" /> A begemaale die Anuu soba poͻ, o da toŋ la a Foreign Affairs kͻmtii, Toma nyaabo, Social Welfare ane State Enterprises kͻmatii poͻ.<ref name=":6">https://web.archive.org/web/20110716172024/http://www.parliament.gh/hon_chireh_joseph_yieleh.html</ref>
Chireh da la maaeŋ di la o kogi a 2012 <ref>https://web.archive.org/web/20160413203042/http://ghanaelections.peacefmonline.com/pages/2012/constituency/186/</ref> begemaaleba nu-neԑ poͻ o naŋ da wa nyԑ noba 16,368 naŋ te manne ne 57.71% kyԑ ka o kpamkpir-ŋm tͻ ko a Wͻͻ Naa Adams Nuhu Timbile da nyԑ noba 9,918 naŋ te manne ne 34.97%<ref>https://web.archive.org/web/20230206111502/https://ghanaelections.peacefmonline.com/pages/2012/upperwest/wa_west/</ref>
=== 2016 nu-neԑ ===
Chireh da la maaleŋ di la a nu-neԑ a are ko a Wa West gbandige a gbԑԑ bonaare soba a begemaale die A yopoi soba poͻ. O da tage la noba 12,658, 42.49% kyԑ ka o dataare bayi Patrick Bandanaa, naŋ da are o yoŋ a ba paale Naa kaŋa zaa poͻ ane Dari Daniel Kuusongno ko a Wͻͻ Naa naŋ saa a 2008 da nyԑԑ noba 8,806, 29.56% ane 7,415%, 24.89% naŋ tutaa a lԑ ne o zu.<ref>https://web.archive.org/web/20231007065850/https://ghanaelections.peacefmonline.com/pages/2016/parliament/upperwest/wa_west/</ref>
A begemaale die Ayopoi soba ko a republic of Ghana Anaare soba poͻ, o da toŋ la a Subsidiary Legislation Kͻmatii, Local Gͻbenԑnte ne Korre Baabo Kͻmatii ane Noba iribu Kͻmatii poͻ.<ref name=":1" />
O naŋ da la maale o teԑroŋ ka o la maaleŋ gaa a na poͻ a begemaale die Anii poͻ la ka IGP kore gansԑgerԑ [[Peter Lanchene Toobu]] da daa o lͻͻ a yi ne o naŋ da nyԑ noba 755 kyԑ ka Chireh da nyԑ noba 317 a Kataweԑ Naa meŋԑ kpamkpire ŋmeԑbo poͻ.<ref>https://www.gbcghanaonline.com/news/politics/ex-igp-executive-secretary-beats-yieleh-chireh-in-wa-west/2019/</ref>
=== Minista ko a paaloŋ ===
A Gonzeԑ kyuu 2009 poͻ, a [[Ghana Yidaandͻͻ]] paalaa, J[[ohn Atta Mills]] da iri o la ka o e Minista ko Local Gͻbenԑnte ne Korre Baabo.<ref>http://www.ghanaweb.com/GhanaHomePage/NewsArchive/artikel.php?ID=157698</ref> O da toŋԑԑ la a e neԑ naŋ paale John Atta Mills kabinet ministare poͻ.<ref>https://www.myjoyonline.com/president-mills-holds-first-cabinet-meeting/</ref> O da toŋԑԑ la lԑŋ a te tͻ Borenyԑ kyuu beri anaare 2011 poͻ, saŋa na ba naŋ da wa iri o ka o leԑ Minista a ko Laafēēloŋ, Ghana Yidaandͻͻ John Evans Atta Mills naŋ da wa leԑrԑ o kabente ministare.<ref>http://www.ghanaweb.com/GhanaHomePage/NewsArchive/artikel.php?ID=200624</ref>
== Toma kpaaroŋ ==
O yuori kpԑ la Pharmacist ganeŋ a Ghana Pharmacy Council poͻ, o e la neԑ naŋ paale a pharmacy laŋgbuli deme kpaaroŋ a Ghana paaloŋ poͻ ane neԑ naŋ paale a West Africa post graduate college of pharmacist.<ref name=":1" /> O naŋ la e Lͻͻya a ko a kyԑ paale a Ghana Bar Association.<ref>https://web.archive.org/web/20240928151034/https://ghanamps.com/mps/details.php/?id=5409</ref><ref name=":2" />
== Dakogizusoba ko FBNBank Ghana ==
Chireh da e la lammo Dakogizusoba<ref name=":2" /> ko a FBNBank Ghana, a subsidiary of [[First Bank of Nigeria]] Limited yuomo ayi vuoŋ, yuomo ayoͻbo poͻ o da toŋԑԑ gbԑԑ boyi a yi 2014 a te tͻ 2020 yuoni poͻ.<ref>https://www.fbnbankghana.com/fbnbank-ghana-announces-retirement-of-board-chairman/</ref><ref>https://www.graphic.com.gh/business/business-news/fbnbank-ghana-announces-retirement-of-board-chairman.html</ref>
== Meŋԑ ==
Chireh e la Kristabie a de pͻge ka bat aa biiri banaare.<ref>https://web.archive.org/web/20121009071049/http://www.ghanadistricts.com/mps/?r=9&_=115&mpd=187</ref><ref name=":6" />
== Leԑ kaa kyԑ ==
Rawlings gͻbenԑnte
Mills gͻbenԑnte ministare yoe
Wa West gbandige
== Sommo Yizie ==
[[Category:8th Parliament of the 4th Republic of Ghana]]
[[Category:Dagaare]]
[[Category:Gampɛlɛ zaa]]
[[Category:Dɔɔ]]
[[Category:Dɔɔloŋ]]
[[Category:Africa]]
[[Category:Ghana]]
[[Category:West Africa]]
[[Category:7th Parliament of the 4th Republic of Ghana]]
bdvu29q0h6gwcav8phago8vezpb4tw3
Festivity of Saint Blaise, the patron of Dubrovnik
0
1734
62607
54323
2026-07-16T01:31:08Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62607
wikitext
text/x-wiki
{{Databox|item=Q12630967}}
'''Festivity of Saint Blaise, the patron of Dubrovnik''' (Croatian: Festa Svetog Vlaha, zaštitnika Dubrovnika) e la tigiri ba naŋ maŋ di a kyuu Fɛrboɔre 3 zaa a te piili a yuoni 972 AD wa tɔ ŋaaŋ a yi-velaa ŋa ba naŋ boɔla ka [[Dubrovnik]], Croatia a [[Saint Blaise]] bebiri tigiri diibo saŋa. A [[Tigre|tigiri]] ŋa diibo te kyaarɛɛ a gaŋdaa ŋa ba naŋ boɔla St. Blaise, o naŋ da soŋ a Dubrovnik noba a ku ba yiri a yi a Republic of Venice eŋaŋ. Noba yaga da wa la a [[Tigre|tigiri]] zie, a yi naba meŋ zaa da be la be, ziiri mine deme naŋ da peɛleba meŋ da be waɛɛ a tigir, a Croatia deme kyɛlɛɛ meŋ, aneŋ dɔgre paale zaane naŋ da peɛle meŋ da wa la a tigiri, yɔyɔɔreba mine, aneŋ nentegrɛ a yi teŋkponni aneŋ yie nembɛrɛ mine meŋ a yi a [[Roman Catholic Church]].<ref>https://web.archive.org/web/20160304143516/http://tzdubrovnik.hr/lang/en/get/sto_raditi/53036/festa_svetog_vlaha_dan_grada_dubrovnika.html</ref> Ba da nyɛ la o ka o waa UNESCO [[Intangible Cultural Heritage]] a yuoni 2009.<ref>http://www.unesco.org/culture/ich/en/RL/festivity-of-saint-blaise-the-patron-of-dubrovnik-00232</ref><ref>https://registar.kulturnadobra.hr/#/details/Z-3236</ref>
== Gaŋdaaloŋ ==
== Wuloo ==
[[Duoro kɔre:St._Blaise_-_National_Flag_of_the_Ragusan_Republic.png|thumb|200x200px|Flag of Dubrovnik Republic with Saint Blaise holding City model]]
[[Duoro kɔre:FESTA_SV._VLAHA_2014.JPG|thumb|200x200px|Procession held on 3 February 2014]]
== Sommo yizie ==
[[Gbuli:Winter events in Croatia]]
[[Gbuli:Tourist attractions in Dubrovnik]]
[[Gbuli:History of Dalmatia]]
[[Gbuli:Masterpieces of the Oral and Intangible Heritage of H]]
[[Gbuli:Culture of Croatia]]
[[Gbuli:Annual events in Croatia]]
[[Gbuli:Dagaare]]
[[Gbuli:Wiki World Heritage Intangible Contest 2023]]
bve4h5wleu8c9wcejb9gqt6ktmp752s
List of colleges of education in Nigeria
0
3006
62613
55156
2026-07-16T04:25:50Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62613
wikitext
text/x-wiki
{{Databox|item=Q20715835}}
A waa la 205 zannoo kologyiri aneŋ NCE Certificate-Awarding institutions mine naŋ be Nigeria paaloŋ poɔ, ka boma 27 <ref name="auto">"[https://web.archive.org/web/20210602213105/http://www.ncceonline.edu.ng/colleges.php NCCE Abuja]". ''www.ncceonline.edu.ng''. Retrieved 4 September 2021</ref> waa federal, 82 waa sommeŋa sakue kyɛ ka 54 meŋ waa gɔmenante kologyiri.<ref>NCCE, 2013</ref><ref>[http://pointblanknews.com/pbn/exclusive/nigerian-president-appoints-chairmen-for-67-parastatalsagencies/ “Nigerian President Appoints Chairmen For 67 Parastatals/Agencies"]. ''Pointblank News''. 23 April 2013. Retrieved 9 December 2014.</ref>
== Federal kologyiri ==
Federal Kolegyiri naŋ taaa gyeremɛ a Nigeria paaloŋ yoe la ama
{| class="wikitable sortable" border="1" style="width:100%; margin:auto; text-align:left"
|-
!Institution
!Location
!Type
!Host state
!Year of establishment
!width="25%"|Notes
|--valign="top"
| [[Federal College of Education (Special), Oyo]]<ref>[https://web.archive.org/web/20141210135943/http://www.thenationonlineng.net/archive2/tblnews_Detail.php?id=50994 "Details – The Nation Archive"]. ''thenationonlineng.net''. Archived from [http://www.thenationonlineng.net/archive2/tblnews_Detail.php?id=50994 the original] on 10 December 2014. Retrieved 9 December 2014.</ref>
| [[Oyo, Nigeria|Oyo]]
| Federal
| [[Oyo State]]
| 1977
|
|--valign="top"
| [[Adeyemi College of Education]]
| [[Ondo City|Ondo]]
| Federal
| [[Ondo State]]
| 1964
|--valign="top"
| [[Federal College of Education, Iwo]]<ref name="auto"/>
| [[Iwo, Osun|Iwo]]
| Federal
| [[Osun State]]
| 2020
|
|--valign="top"
| [[Federal College of Education (Technical), Asaba]]<ref>[http://www.vanguardngr.com/2010/03/asaba-college-to-commence-noun-programme/ Asaba College to commence NOUN programme]". ''Vanguard News''. 29 March 2010. Retrieved 9 December 2014.</ref>
| [[Asaba, Nigeria|Asaba]]
| Federal
| [[Delta State]]
| 1987
|
|--valign="top"
| [[Federal College of Education, Abeokuta]]
| [[Abeokuta|Osiele-Abeokuta]]<ref>https://web.archive.org/web/20141211060940/http://www.punchng.com/news/council-flays-posting-of-corps-members-as-teachers/</ref>
| Federal
| [[Ogun State]]
| 1976
|
|--valign="top"
| [[Federal College of Education, Kano]]<ref>http://saharareporters.com/2014/09/17/bomb-explosion-kills-10-federal-college-education-kano</ref><ref>http://www.aljazeera.com/news/africa/2014/09/deaths-attack-nigeria-teachers-college-2014917194449334646.html</ref>
| Kano City
| Federal
| [[Kano State]]
| 1961
|
|--valign="top"
| [[Federal College of Education, Eha-Amufu]]<ref>http://m.thenigerianvoice.com/news/89446/1/the-pitiable-state-of-federal-college-of-education.html</ref><ref>http://www.vanguardngr.com/2011/02/the-rot-continues-at-fce-eha-amufu/</ref>
| Eha-Amufu
|Federal
|[[Enugu State]]
|1981
|
|--valign="top"
| [[Federal College of Education, Okene]]<ref>https://web.archive.org/web/20121112170114/http://www.kogireports.com/tag/federal-college-of-education-okene</ref>
| [[Okene]]
| Federal
| [[Kogi State]]
| 1974
|
|--valign="top"
| [[Federal College of Education (Technical), Gombe]]<ref>http://www.vanguardngr.com/2012/06/soldier-kills-one-student-over-girlfriend-in-gombe/</ref>
| [[Gombe, Nigeria|Gombe]]
| Federal
| [[Gombe State]]
| 1977
|
|--valign="top"
| [[Federal College of Education (Technical), Omoku]]<ref>https://web.archive.org/web/20241229231335/https://www.thetidenewsonline.com/2009/11/28/fce-omoku-to-affiliate-with-unn/</ref><ref>https://web.archive.org/web/20150924091431/http://www.riversstate.gov.ng/item/777-fce-omoku-publishes-list-of-candidates-for-admission.html</ref>
| [[Omoku]]
| Federal
| [[Rivers State]]
| 1989
|
|--valign="top"
| [[Federal College of Education, Kontagora]]<ref>https://web.archive.org/web/20141115013454/http://www.thisdaylive.com/articles/explosion-rocks-federal-college-of-education-kontagora/193847</ref><ref>http://saharareporters.com/2014/11/12/female-suicide-bomber-hits-federal-college-education-niger-state</ref>
| [[Kontagora]]
| Federal
| [[Niger State]]
| 1958
|
|--valign="top"
| [[Federal College of Education, Zaria]]<ref>http://allafrica.com/stories/201402100381.html</ref>
| [[Zaria]]
| Federal
| [[Kaduna State]]
| 1962
|
|--valign="top"
| [[Federal College of Education, Pankshin]]<ref>http://www.premiumtimesng.com/news/156275-students-nigerias-colleges-education-lament-lecturers-strike.html</ref>
| [[Pankshin]]
| Federal
| [[Plateau State]]
| 1974
|
|--valign="top"
| [[Alvan Ikoku Federal College of Education]]<ref>https://web.archive.org/web/20160304002545/http://nannewsnigeria.com/provost-wants-alvan-ikoku-college-education-upgraded-university</ref>
| [[Owerri]]
| Federal
| [[Imo State]]
| 1963
|
|--valign="top"
| [[Federal College of Education, Yola]]<ref>https://web.archive.org/web/20160303230142/http://www.dailytrust.com.ng/daily/education/32899-fce-yola-goes-for-degree-programmes</ref>
| [[Yola, Nigeria|Yola]]
| Federal
| [[Adamawa State]]
| 1974
|
|--valign="top"
| [[Federal College of Education (Technical), Potiskum]]<ref>http://www.nigerianmuse.com/20130712021508zg/nm-projects/higher-education-in-nigeria/top-10-most-preferred-universities-polytechnic-and-college-of-education-in-nigeria/</ref>
| [[Potiskum]]
| Federal
| [[Yobe State]]
|1976
|
|--valign="top"
| [[Federal College of Education (Technical), Gusau]]<ref>http://www.vanguardngr.com/2014/10/provost-gets-5-years-jail-dta/</ref>
| [[Gusau]]
| Federal
| [[Zamfara State]]
| 1990
|
|--valign="top"
| [[Federal College of Education (Technical), Akoka]]<ref>https://web.archive.org/web/20141211060937/http://www.punchng.com/news/college-of-education-lecturers-vow-to-continue-month-long-strike/</ref><ref>http://www.premiumtimesng.com/news/155760-lecturers-in-nigerias-colleges-of-education-vow-to-continue-strike-as-meeting-with-fg-deadlocks.html</ref>
| [[Akoka]]
| Federa
| [[Lagos State]]
| 1967
|
|--valign="top"
| [[Federal College of Education, Katsina]]<ref>https://web.archive.org/web/20141127210415/http://leadership.ng/news/391697/fg-may-review-jamb-admission-policy</ref>
| [[Katsina]]
| Federal
| [[Katsina State]]
| 1976
|
|--valign="top"
| [[Federal College of Education (Technical), Bichi]]<ref>http://www.premiumtimesng.com/news/130885-nigerian-president-appoints-chairmen-for-67-parastatalsagencies.html</ref>
| [[Bichi]]
| Federal
| [[Kano State]]
| 1987
|
|--valign="top"
| [[Federal College of Education, Obudu]].<ref>https://www.vanguardngr.com/2013/07/obudu-cult-killings-kkk-leader-arrested/</ref><ref>http://www.vanguardngr.com/2011/09/fce-obudu-gets-provost/</ref>
| [[Obudu]]
| Federal
| [[Cross River State]]
| 1983
|--valign="top"
| [[Federal College of Education (Technical), Umunze]]<ref>https://web.archive.org/web/20141214141047/http://sunnewsonline.com/new/?p=24710</ref>
| [[Umunze]]
| Federal
| [[Anambra State]]
| 1989
|
|}
==Sommeŋa Kolegyiri==
Sommeŋa Kolegyiri mine naŋ be Nigeria paaloŋ yoe la ama
{| class="wikitable sortable" border="1" style="width:100%; margin:auto; text-align:left"
|-
!Institution
!Location
!Type
!Host state
!Year of establishment
!width="25%"|Notes
|--valign="top"
| [[Piaget College of Education]].<ref>https://www.piagetcoe.edu.ng/</ref>
| [[Abeokuta]]
| Private
| [[Ogun State]]
| 2015
|
|--valign="top"
| [[St. Augustine College of Education]]<ref>http://www.informationng.com/2012/10/in-st-augustines-college-of-education-akoka-the-cloud-is-gathering-again.html</ref>
| [[Akoka]]
| Private
| [[Lagos State]]
| 1971
|
|--valign="top"
| [[Our Saviour Institute of Science and Technology]]
| [[Enugu]]
| Private
| [[Enugu State]]
| 1989
|
|--valign="top"
| [[Delar College of Education]]<ref>http://allafrica.com/stories/200407280105.html</ref>
| [[Ibadan]]
| Private
| [[Oyo State]]
| 1990
|
|--valign="top"
| [[Yewa Central College of Education]]<ref>https://web.archive.org/web/20160306014716/https://thedegree.org/2009/06/22/appointment-of-new-professors-at-eau/</ref>
| Ayetoro
| Private
| [[Ogun State]]
|2004
|
|--valign="top"
| [[Institute of Ecumenical Education, (Thinkers Corner), Enugu]]<ref>https://books.google.com/books?id=04VwpwD7R_AC&pg=PA270</ref>
| [[Enugu]]
| Private
| [[Enugu State]]
| 190
|
|--valign="top"
| [[Ansar-Ud-Deen College of Education]]
| [[Isolo]]<ref>http://www.orijoreporter.com/fanimokun-calls-for-enrollment-of-more-christian-students-into-ansar-ud-deen-college-of-education/</ref><ref>https://web.archive.org/web/20141213213349/http://www.iconweekly.com/ansar-ud-deen-college-of-education-celebrates-10th-anniversary-in-grand-style/</ref>
| Private
| [[Lagos State]]
| 1953
|
|--valign="top"
| [[African Thinkers Community of Inquiry College of Education]].<ref>https://www.vanguardngr.com/2014/11/enugu-2015-election-nomination-scandal-top-govt-party-officials-swindled-aspirant-ani/</ref>
| [[Enugu]]
| Private
| [[Enugu State]]
| 1990
|
|--valign="top"
| [[City College of Education, Mararaba]]<ref>https://web.archive.org/web/20140110140258/http://allafrica.com/stories/200803190227.html</ref>
| Mararaba Gurku
| Private
| [[Nasarawa State]]
|
|
|--valign="top"
| [[Muftau Olanihun College of Education]]<ref>https://web.archive.org/web/20141216113355/http://www.mynewswatchtimesng.com/man-bags-3-year-jail-forging-ibadan-poly-certificate/</ref>
| [[Ibadan]]
| Private
| [[Oyo State]]
| 2003
|
|--valign="top"
| [[Havard Wilson College of Education]]<ref>https://web.archive.org/web/20141211060944/http://www.punchng.com/metro/septuagenarian-13-others-win-suvs-in-mtns-raffle/</ref>
| [[Aba, Abia|Aba]]
| Private
| [[Abia State]]
| 2001
|
|--valign="top"
| [[College of Education Offa]].<ref>https://www.academia.edu/120076169/Dr_Razaq_Oyewale_The_Man_Who_Made_Money_While_Making_a</ref>
| [[Offa]]
| Private
| [[Kwara State]]
| 1987
|
|--valign="top"
| [[Nigerian Army School of Education (NASE), Ilorin]]<ref>http://thenationonlineng.net/new/nigerian-army-school-may-offer-degrees-2/</ref>
| [[Ilorin]]
| Federal
| [[Kwara State]]
| 1970
|
|--valign="top"
| [[Nana Aishat Memorial College of Education]].<ref>https://web.archive.org/web/20201110174018/http://namcoed.edu.ng/</ref>
| [[Ilorin]]
| Private
| [[Kwara State]]
| 2009
|
|-
|}
==Gɔmenante kolegyiri yoe==
* [[Abia State College of Education (Technical)]]
* [[Adamawa State College of Education]]
* [[Adamu Augie College of Education]]
* [[Adamu Tafawa Balewa College of Education]]
* [[Adeniran Ogunsanya College of Education]]
* [[Akwa Ibom State College of Education]]
* [[Aminu Saleh College of Education]]
* [[Bilyaminu Othman College of Education]]
* [[College of Education and Legal Studies, Nguru]]
* [[College Of Education, Akamkpa]]
* [[College of Education, Akwanga]]
* [[College of Education, Billiri]]
* [[College of Education, Ekiadolor]]
* [[College of Education, Gindiri]]
* [[College of Education, Katsina-Ala]]
* [[College Of Education, Lanlate]]
* [[College of Education, Oju]]
* [[College of Education, Waka-Biu]]
* [[College of Education, Warri]]<ref>[https://coewarri.edu.ng/ "College of Education, Warri – College of Education, Warri".]</ref>
* [[Ebonyi State College of Education]]
* [[Edo State College of Education]]
* [[Enugu State College of Education (Technical)]]
* [[FCT College of Education]]
* [[Imo State College of Education]]
* [[Isa Kaita College of Education]]
* [[Isaac Jasper Boro College of Education]]
* [[Jigawa State College of Education]]
* [[Jigawa State College of Education and Legal Studies]]
* [[Kano State College of Education and Preliminary Studies]]<ref>[https://web.archive.org/web/20221126153052/http://kasceps.edu.ng/ KANO STATE COLLEGE OF EDUCATION AND PRELIMINARY STUDIES]". ''www.kasceps.edu.ng''.</ref>
* [[Kaduna State College of Education]]
* [[Kashim Ibrahim College of Education]]
* [[Kogi State College of Education, Ankpa]]
* [[Kogi State College of Education (Technical), Kabba]]<ref>“[http://www.kscoetechkabba.edu.ng/ Home]". ''kscoetechkabba.edu.ng''.</ref>
* [[Kwara State College of Education, Ilorin]]<ref>[https://www.kwcoeilorin.edu.ng/ Kwara State College of Education, Ilorin]". ''www.kwcoeilorin.edu.ng''.</ref>
* [[Kwara State College of Education (Technical), Lafiagi]]<ref>https://www.kwcoeilorin.edu.ng/</ref>
* [[Kwara State College of Education, Oro]]<ref>https://kwacoetl.edu.ng/</ref>
* [[Michael Otedola College of Primary Education]]<ref>https://mocped.edu.ng/</ref>
* [[Mohammed Goni College of Legal and Islamic Studies]]
* [[Moje College Of Education]]
* [[Niger State College of Education]]
* [[Nwafor Orizu College of Education]]
* [[Osun State College of Education, Ilesa]]
* [[Sa'adatu Rimi College of Education]]
* [[Shehu Shagari College of Education]]
* [[Sikiru Adetona College of Education Science and Technology]], Omu-Ajose, Ogun State
* [[Umar Ibn Ibrahim El Kanemi College of Science and Technology]]
* [[Umar Suleiman College of Education]]
* [[Yusuf Bala Usman College of Legal and General Studies]]<ref>https://web.archive.org/web/20241229000605/http://www.ybuc.edu.ng/</ref>
* [[Zamfara State College Of Education]]
==Leɛ kaa kyɛ meŋ==
*[[List of polytechnics in Nigeria]]
==Sommo Yizie ==
[[Category:dga]]
[[Category:Lists of universities and colleges in Nigeria|*Education]]
[[Category:Teachers colleges by country|Nigeria]]
{{Authority control}}
9j1w8xhcl8d11w23qgxq509m2c0js5b
Module:Params
828
4820
62615
62364
2026-07-16T06:49:31Z
Grufo
1773
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]]
62615
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 = {
duplicate = 0,
transfer = 1,
provide = 2,
spare = 3,
sacrifice = 4
}
-- 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
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
local argc = mode == nil and 3 or 4
if val == nil then return context_iterate(ctx, argc) end
local dest = get_parameter_name(opts[2])
if mode == 1 or mode == 4 or (mode == 3 and tbl[dest] == nil) then
tbl[src] = nil
end
if mode == nil or mode < 2 or tbl[dest] == nil 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
})
jm8x5ug81bre69dpt2csm0n3owsmu2i
Kofi Setordji
0
5424
62611
48860
2026-07-16T03:30:44Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62611
wikitext
text/x-wiki
{{Databox|item=Q3816136}}
'''Kofi Setordji''' (dɔgebo yuoni la 1957) e la nu de maale boŋveɛle soba naŋ be a [[Ghana|Gaana]] paaloo poɔ. O toma kyaare ne fotori maaloo, boŋsuuri maaloo, boma maaloo aneŋ pentuu.<ref>[https://artzuid.nl/en/artzuid-artists/kofi-setordji/ "Kofi Setordji artist profile"]. ''ARTZUID''. Tage 2025-05-22.</ref><ref>[https://smocontemporaryart.com/artists/285-kofi-setordji/biography/ "Kofi Setordji - Biography"]. ''SMO Contemporary Art''. Tage 2025-05-22.</ref><ref name=":0">[https://web.archive.org/web/20241127012820/https://www.nubukefoundation.org/artist.php?artist=S2xtM2dkY2lWRkVGS3Z2YzRsOGJ6Zz09 "Kofi Setordji"]. ''Nubuke Foundation''. Tage 2025-05-22.</ref>
== O sakuuri ane o toma ==
Ba dɔge la Setordji a yuoni 1957 a [[Accra|Aŋkaraa]] paaloo.<ref>Fall, N'Goné; Pivin, Jean Loup (2002). ''[https://books.google.com/books?id=aqZQAAAAMAAJ&q=kofi+setordji An Anthology of African Art: The Twentieth Century]''. D.A.P./Distributed Art Publishers. [[:en:Special:BookSources/978-1-891024-38-2|ISBN <bdi>978-1-891024-38-2</bdi>]].</ref><ref name=":1">''[https://books.google.com/books?id=n3TrAAAAMAAJ&q=kofi+setordji Revue noire]'' (in French). Publications Editions Bleu Outremer. 1999.</ref> O da gaayɛ a Mɛtɔdeese Sɛkɔndere Sakuuri a Aŋkaraa paaloo kyɛ leɛ gaa zanne nu toma bomaale. O da e la a Gaana deme bibiiri sini maala Ghanatta Yaw Boakye karɩmabie.<ref name=":2">[[doi:10.1162/AFAR_r_00125|"Kofi Setordji: Retrospective, 1997–2012"]]. ''African Arts''. '''47''' (1): 85–87. 2014-03-01. [[doi:10.1162/AFAR_r_00125]]. [[:en:ISSN_(identifier)|ISSN]] [https://search.worldcat.org/issn/0001-9933 0001-9933]. [[:en:S2CID_(identifier)|S2CID]] [https://api.semanticscholar.org/CorpusID:192974398 192974398].</ref> A yi yuomo 1984 wa tɔ 1987, Setordji da la e a Gaana deme boŋmaala aneŋ dɛndeɛnɛ ŋa baŋ naŋ boɔla Saka Acquaye.<ref name=":0" /><ref name=":1" /> O da piili tona la sandstone paaloo a yuoni 1985, kyɛ piili wuoro o boŋmaale waana a Accra paaloo wulo. O toma ŋa wuloo nyɛ la gyeremɛ yi paaloo mine, aŋa [[France|Farehe]], [[Italy|Itali]], [[Denmark|Dɛmak]], [[Germany|Gyaamani]], [[Austria|Ɔstoroleɛ]], [[South Africa|Saaf Afereka]] aneŋ a [[United States|Amɛreka]].<ref name=":0" /><ref name=":2" />
A yi o bomaale puoriŋ, Setordji e la nentegroo ko baapaaba naŋ be Accra paaloo. Ona la soba na naŋ waaneŋ ''Arthaus'', kpɛzie ko nu bʋomaale deme.<ref>Council, Ghana Studies (2008). ''[https://books.google.com/books?id=WQMOAQAAMAAJ&q=kofi+setordji Newsletter]''. Ghana Studies Council.</ref> A la yi lɛ ŋa puoriŋ, o la e la soba na naŋ paare maale [[Nubuke Foundation]] kyɛ la e a daarɛta koroo, bomaale zikpoŋ naŋ be a Accra paaloo.<ref>''[https://books.google.com/books?id=gJYnAQAAIAAJ&q=kofi+setordji African Business]''. IC Magazines. 2007.</ref><ref>[https://smocontemporaryart.com/artists/285-kofi-setordji/biography/ "Kofi Setordji - Biography"]. ''SMO Contemporary Art''. Retrieved 2022-04-02.</ref><ref>Lauer, Helen; Amfo, Nana Aba Appiah; Anderson, Jemima Asabea (2011). [https://books.google.com/books?id=uTUZ1y4HWocC&dq=kofi+setordji&pg=PA243 ''Identity Meets Nationality: Voices from the Humanities''.] African Books Collective. [[:en:ISBN_(identifier)|ISBN]] [[:en:Special:BookSources/978-9988-647-96-4|<bdi>978-9988-647-96-4</bdi>.]]</ref>
== O toma mine ==
Setordji toŋ kpoŋ kaŋa la ''Genocide'', zikpoŋ ba naŋ maŋ biŋne boma (daare, kue, boŋzagele leɛ de maale ane pentiŋ) oŋ maale kyaare a 1994 [[Rwandan Genocide]].<ref>''[https://books.google.com/books?id=VD7rAAAAMAAJ&q=kofi+setordji African Arts]''. African Studies Center, University of California, Los Angeles. 2007.</ref><ref>''[https://books.google.com/books?id=enJDQwAACAAJ&q=kofi+setordji Genocide: Painting, Sculpture Installation : Kofi Setordji : National Museum, Barnes Road, Accra]''. National Museum. 1999.</ref><ref>Kidenda, Mary Clare; Kriel, Lize; Wagner, Ernst (2022-04-06). ''[https://books.google.com/books?id=pVZuEAAAQBAJ&dq=kofi+setordji&pg=PA250 Visual Cultures of Africa]''. Waxmann Verlag. [[:en:ISBN_(identifier)|ISBN]] <bdi>[[:en:Special:BookSources/978-3-8309-4523-9|978-3-8309-4523-9]]</bdi>.</ref><ref>Gatore, Gilbert (2012-10-04). ''[https://books.google.com/books?id=NH3MZK55ttMC&dq=kofi+setordji&pg=PR14 The Past Ahead]''. Indiana University Press. [[:en:ISBN_(identifier)|ISBN]] <bdi>[[:en:Special:BookSources/978-0-253-00950-0|978-0-253-00950-0]]</bdi>.</ref><ref>Baderoon, Gabeba (2006). ''[https://books.google.com/books?id=OohPAAAAMAAJ&q=kofi+setordji Contemporary Commonwealth]''. Council of Trustees of the National Gallery of Victoria. [[:en:ISBN_(identifier)|ISBN]] <bdi>[[:en:Special:BookSources/978-0-7241-0266-2|978-0-7241-0266-2]]</bdi>.</ref> O da maale la a toma a yi a yuomo 1998 aneŋ 2000 puoŋ. A toma te kyaare la bomaale gyamaa ta 300 ka zɔɔre zie zaa paare a toma poɔŋ. Ka a lomboriŋ ka lɔɔyɛre ku a dambo be.<ref>Woets, Rhoda (2010). [https://www.jstor.org/stable/20744863 "Comprehend the Incomprehensible: Kofi Setordji's Travelling Memorial of the Rwanda Genocide"]. ''African Arts''. '''43''' (3): [[doi:10.1162/afar.2010.43.3.52|52–63. doi:10.1162/afar.2010.43.3.52]]. [[:en:ISSN_(identifier)|ISSN]] [https://search.worldcat.org/issn/0001-9933 0001-9933]. [[:en:JSTOR_(identifier)|JSTOR]] [https://www.jstor.org/stable/20744863 20744863]. [[:en:S2CID_(identifier)|S2CID]] [https://api.semanticscholar.org/CorpusID:57572395 57572395]</ref> A Dakar [[Biennale]] yuoni 2000 poɔ la ka o toma ŋa da yi.<ref>[[doi:10.1080/09528820108576892|Silva, Bisi (December 2000). "Dak'Art 2000: The millennium biennale?"]]. ''Third Text''. '''14''' (53): 103–106. [[doi:10.1080/09528820108576892]]. [[:en:ISSN_(identifier)|ISSN]] [https://search.worldcat.org/issn/0952-8822 0952-8822]. [[:en:S2CID_(identifier)|S2CID]] [https://api.semanticscholar.org/CorpusID:147101662 147101662].</ref>
Setordji bomaale kpoŋ kaŋa are la a [[National Theatre of Ghana]] a [[Accra|Accra]] paaloo poɔ. Yelizu ba naŋ ko a o toma ŋa la ''Entre Amies''.<ref>[https://www.modernghana.com/entertainment/23532/kofi-setordji-the-black-stars-of-ghana-art-district.html Dickersbach, Safia. "Kofi Setordji: The Black Stars of Ghana - Art District"]. ''Modern Ghana''. Retrieved 2025-05-22.</ref>
== Kyɔɔtaare ==
Setordji nyɛ a Kyɔɔtaa kpoŋ ŋa baŋ boɔla ka Leisure Award Sculptor a yuoni 1990 Kyɔɔtaa poɔŋ.<ref name=":0" /> A yuoni 2018 poɔ, o da la nyɛ la a [[Rockefeller Foundation]]'s Bellagio Creative Arts Fellowship Kyɔɔtaa.<ref>[https://books.google.com/books?id=WrYzAQAAIAAJ&q=kofi+setordji Gordon, Mark (2009). ''Contemporary Europe Art Guide'']. Distributed Art Pub Incorporated. [[:en:ISBN_(identifier)|ISBN]] <bdi>[[:en:Special:BookSources/978-3-7757-2336-7|978-3-7757-2336-7]]</bdi>.</ref><ref>"[https://www.artforum.com/news/rockefeller-foundation-s-bellagio-fellowship-recipients-announced-21288 Artforum.com]". ''www.artforum.com''. Retrieved 2025-05-22.</ref> Setordji da la a yɛlɩju a [[Nubuke Foundation]] toma gbielibo a yuoni 2012.<ref name=":2" />
== Toma ŋmeyaare mine ==
* Prête-moi ton Rêve (Lend me your dream) 2019-2020<ref>"[https://artssummary.com/2019/07/11/the-travelling-exhibition-prete-moi-ton-reve-lend-me-your-dream-opened-in-casablanca-on-june-18-2019-and-closes-in-marrakesh-in-2020/ The travelling exhibition "Prête-moi ton rêve" (Lend me Your Dream) opened in Casablanca on June 18, 2019 and closes in Marrakesh in 2020]". ''Arts Summary''. 2019-07-11. Retrieved 2025-05-22.</ref><ref>Momentum, The Art (2020-12-02). [https://theartmomentum.com/kofi-setordji-telling-our-own-stories/ "Kofi Setordji: Telling Our Own Stories"]. ''The Art Momentum''. Retrieved 2025-05-22.</ref>
* New Threads 2016<ref>[https://smocontemporaryart.com/exhibitions/34-new-threads/overview/ "New Threads | 10 October - 17 November 2016 - Overview".] ''SMO Contemporary Art''. Retrieved 2025-05-22.</ref>
* Kunsthalle Wien Museumsquartier 2004-2005<ref>[https://kunsthallewien.at/en/exhibition/africa-screams/ "Africa Screams"]. ''Kunsthalle Wien''. Retrieved 2025-05-22.</ref>
* [[Art Cologne]] 1996, [[Koelnmesse GmbH]] naŋ be [[Cologne]] a yuoni 1996<ref>ArtFacts. [https://artfacts.net/artist/kofi-setordji/7429 "Kofi Setordji | Artist"]. ''ArtFacts''. Retrieved 2025-05-22.</ref>
== Sommo yizie ==
[[Category:Dagaare]]
[[Category:Gaana deme bomaana]]
[[Category:1957 dɔgebo]]
[[Category:Nenvoe]]
[[Category:Bomaana naŋ yi Accra]]
8utzc3t6cmr4fag7vmx63grnyqo295z
Akyempem Tigiri
0
6153
62596
55646
2026-07-15T22:36:57Z
InternetArchiveBot
38
Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62596
wikitext
text/x-wiki
{{Databox|item=Q98608881}}
'''Akyempem''' '''Tigiri''' e la yuoni gbuli zaa [[Tigre|tigiri]] [[Agona]] Traditional Area namine ane noba naŋ maŋ di a [[Ashanti Region|Ashanti Irigyiŋ]] poɔ, [[Ghana]].<ref>https://web.archive.org/web/20200922063251/https://www.ghana.travel/events-festivals/festivals/</ref> Gbɛɛ yaga ba maŋ di o la Sentɔmbare kyuu poɔ.<ref>https://www.easytrackghana.com/cultural-overview-ghana_festivals.php</ref><ref>https://web.archive.org/web/20210120100250/http://ghanaculturepolitics.com/list-of-festivals-in-ghana/</ref><ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref><ref>http://ghanareview.com/festivals2.html</ref> Wagere kaŋa meŋ o maŋ di la Ɔɔtoore poɔ.<ref>https://touringghana.com/festivals/</ref>
== A tigiri diibu ==
A tigiri wagere, ba maŋ tuori de la sããba naŋ wa ka ba poŋ bondirii ne bonnyuuri ne ba. A noba maŋ su la sããkoŋ bonsuuri ane namine kpaaroŋ maŋ bebe la. Seɛre ane gaŋgarre ŋmeɛbo meŋ maŋ bebe la.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref> A tigiri wagere, ba maŋ maale la a bonfolo a tu sããkoŋ lesiri. [[Kaaloo]] meŋ maŋ bebe la ka ba naŋ puori a ŋmemɛ bareka ne zenlaanfeɛ ane ba baabo.<ref>https://tourghana.com/ghana-festivals/</ref>
== Sommo Yizie ==
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Mainpage]]
[[Gbuli:Ghana]]
[[Gbuli:Tigiri]]
[[Gbuli:Africa]]
[[Gbuli:West Africa]]
[[Gbuli:Dagaare]]
ic52qnen36k4nc348xs9hl4tja40xkw
Marufatu Abiola Bawuah
0
6177
62614
60336
2026-07-16T04:46:42Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62614
wikitext
text/x-wiki
{{Databox|item=Q69625990}}'''Marufatu Abiola Bawuah''' (dɔgebo bebiri la 25 September 1968) eɛ Ghanaian ‘libi-yela ning-kpong ane yaagu daana . A yuoni 2014, o saa eɛ toma neŋkpong /‘karichi-kpong nang kaara a United Bank ko Africa,
O da nyɛɛ kyɔɔtaare gyamaa yi o toma poɔ ka a mine e a 2016 Chartered Institute of Marketing Ghana Marketing Woman of the Year ane a Finance Personality ko a yuoni kyɔɔtaare .ang be a Ghana Accountancy ane Finance<ref>https://web.archive.org/web/20190905091933/https://www.myjoyonline.com/news/2019/january-14th/from-table-top-groundnut-seller-to-regional-ceo-of-uba-story-of-abiolambawuah.php</ref><ref>https://web.archive.org/web/20220406065438/https://www.pulse.com.gh/bi/lifestyle/meet-marufatu-abiola-bawuah-the-woman-who-went-from-being-a-table-top-groundnut/8fm7g7q</ref><ref>https://www.theafricareport.com/520/abiola-bawuah-people-power/</ref><ref>https://web.archive.org/web/20250222110017/https://thevaultzmag.com/profiles/as-with-the-butterfly-adversity-is-necessary-to-build-character-in-people-says-american-businessman-joseph-b-wirthlin/</ref><ref>https://www.ghanaweb.com/GhanaHomePage/business/UBA-Ghana-MD-Named-CIMG-Marketing-Woman-of-the-Year-2016-584097</ref>.
== Karemmo Yeltare ==
Bawuah guolibu zie eɛ Aflao kyɛ o naŋ da gaa senia Haai Sakuuri a Achimota School<ref>https://yen.com.gh/121252-from-table-top-groundnut-seller-regional-ceo-uba-story-abiola-m-bawuah.html</ref>.
A bezie ko a ‘wederoŋ toma , o taree daanhibu taabu jemaa yi a Harvard Business School, Columbia, University of New York, INSEAD ane Institut Villa Pierrefeu ang be Switzerland<ref>https://web.archive.org/web/20200519034037/https://thebftonline.com/2018/business/uba-appoints-abiola-bawuah-as-regional-ceo/</ref><ref>https://thecfomag.com/ubas-abiola-bawuah-now-cross-border-regional-ceo/</ref><ref>https://africaneyereport.com/uba-appoints-abiola-bawuah-as-regional-ceo-for-6-west-african-countries/</ref>.
== maalebo ==
Pampana o iye a paaluu chief executive officer (CEO) ku United Bank for Africa, ung kaara paalihi ayuobe (6)a paahi Ghana, Benin, Burkina Faso, Côte d'Ivoire, Liberia ane Sierra Leone<ref>https://www.pulse.com.gh/ece-frontpage/international-womens-day-2018-50fromghana-a-celebration-of-50-awesome-ghanaian-women/7jxf2yl</ref>.
== Toma ==
* Bawuah authored ''Chosen from the Darkness'' which is a memoir
* She founded a non-profit organization called Aboala Bawuah Foundation
== Yelsonne ane Kyɔɔtaare ==
* 1n 2016, she was honoured the Chartered Institute of Marketing Ghana (CIMG) Marketing Woman of the Year Award<ref>https://africaneyereport.com/uba-appoints-abiola-bawuah-as-regional-ceo-for-6-west-african-countries/</ref><ref>https://en.wikipedia.org/wiki/Marufatu_Abiola_Bawuah#cite_note-13</ref><ref>https://web.archive.org/web/20220406065435/https://kasapafmonline.com/2017/09/mtn-uba-ceos-crowned-2016-cimg-marketing-man-woman-of-the-year/</ref><ref>https://www.graphic.com.gh/business/business-news/mtn-uba-ceo-s-named-2016-cimg-marketing-personalities-of-the-year.html</ref>
* She won the 2016 Finance Personality of the Year Award at the Ghana Accountancy and Finance.
* Named as one of Africa's 50 Influential Women in business by the African Report in July 2018
* She awarded the EMY Awards Woman of the Year 2020<ref>https://web.archive.org/web/20200726053438/https://www.emyafrica.com/emyafrica-2020-winners/</ref>
== Meŋɛ Nyɔvore ==
O kulee sie a dogi biihi bata <ref>https://www.graphic.com.gh/news/general-news/marufatu-abiola-bawuah-a-journey-of-perseverance-to-the-top.html</ref>.
== Sommo Yizie ==
3s69d8vugsr9x0wdvqnjq7vozo0bpp0
Emmanuel Addai (footballer)
0
6247
62606
58586
2026-07-16T01:12:50Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62606
wikitext
text/x-wiki
{{Databox|item=Q118867746}}'''Emmanuel Addai''' (dɔgebo daare la Aŋjelɩŋje bebe fara a yuoni 1 2001) [[Gaana]] bole ŋmɛla a ko [[Azerbaijan Premier League club Qarabağ.]]<ref>https://web.archive.org/web/20230814182244/https://www.adalcorcon.com/jugador/addai</ref>
== Toma ==
[[Kumasi]] naŋ be a Gaana Paaluu poɔ la baŋ da dɔge o.<ref>https://web.archive.org/web/20230529070559/https://www.adalcorcon.com/noticia/el-extremo-emmanuel-addai-nuevo-refuerzo-para-el-alcorcon</ref> [[JMG Academy]] naŋ be [[Accra]] la ka Addai da di piili o toma. <ref>https://web.archive.org/web/20230814182245/https://as.com/futbol/emmanuel-addai-vestira-de-alfarero-tras-el-mercado-de-invierno-n/</ref> A poɔriŋ o da leɛ kpɛ [[French]] side FC 93 Bobigny a Aŋjelɩŋje kyuu yuoni 2021 poɔ.<ref>https://ghanasoccernet.com/ghanaian-youngster-emmanuel-addai-makes-ad-alcorcon-debut-in-win-over-deportivo-la-coruna</ref> O bole fara o da ŋmɛ la [[Championnat National]] naŋ paale ayi. O da die a goliri ayoɔbo.<ref>https://ghanasoccernet.com/ghanaian-forward-emmanuel-addai-delighted-with-promotion-to-la-liga-2-with-ad-alcorcon</ref>
A 12 July 2022, Addai da maale nɔdegere ne [[Spanish Primera Federación side AD Alcorcón.]] <ref>https://web.archive.org/web/20230814182244/https://www.adalcorcon.com/noticia/emmanuel-addai-seguira-en-la-ad-alcorcon-una-temporada-mas-con-opcion-de-una-segunda-adicional</ref> O da die [[Deportivo de La Coruna]] goliri ata a Jɩmbete kyuu beri pie aneŋ anaare daare a yuoni 2023. <ref>https://www.marca.com/futbol/segunda-division/cronica/2023/08/14/64da5ed922601d7b0c8b45a3.html</ref>
A 2024 Aŋjeleŋje kyuu a beri lezare aneŋ ata daare ka Addai da maale yuomo ayi nɔdegere ne [[Qarabag]].<ref>https://qarabagh.com/az/news/komandamizda-qanali-yarimmuedafieci/12919</ref>
== Sommo Yuomo ==
rublf4eem04djzz3evw9l4mz41tcoxa
Joburg Film Festival
0
6309
62608
56721
2026-07-16T02:46:21Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62608
wikitext
text/x-wiki
{{Databox|item=Q125601608}}
A '''Joburg Film Festival''' ('''JFF''') e la a tendaa zaa tigiri naŋ taa diibu ko a tenne naŋ kɔlaage a Johannesburg, Gauteng, South Africa.
== Yelkorɔ ==
Joburg Film Festival was naŋ da taa eebo a 2016.<ref>https://africultures.com/evenements/?no=50593</ref> Neŋ a COVID-19 baaloŋ zuiŋ, a 2021 and 2022 da ba tõɔ taa eebo.<ref>https://thecreativesnote.substack.com/p/the-joburg-film-festival-jff-returns-for-2024</ref> A 5th edition da nyɛ la eebo yi January 31 - February 5, 2023.<ref>https://africultures.com/evenements/?no=50593</ref>
== Bigruu ==
Joburg Film Festival (JFF) e la a international annual film festival naŋ da taa eebo ko a tenne naŋ kɔlage a Johannesburg ("Joburg"), Gauteng, South Africa<ref>https://joburgfilmfestival.co.za/</ref>.<ref>https://www.imdb.com/event/ev0054485/2024</ref><ref>https://filmfreeway.com/joburgfilmfestival</ref> A tigiri nyɛ la sommbo yi South African satellite television broadcast company MultiChoice.<ref>https://web.archive.org/web/20161029091935/www.thebioscope.co.za/2016/10/21/the-joburg-film-festival-2016/</ref><ref>https://web.archive.org/web/20250823103621/https://joburg.co.za/joburg-film-festival-2019/</ref>
== Kpaaroŋ sere ==
A tigiri da taa la a film screening schedule, naŋ e industry program neŋ panel discussions, yelyellee ane masterclasses, meŋ maŋ e educational youth program, a social event, ane a commercial content market JBX.
== Kyɔɔtaɛ ==
A kyɛɔtaɛ da taa la mannoo a 2025 da la a Best Feature Film, Best African Film, Best Documentary ane Best Joburg Produced Film (a Joburg-based filmmakers yoŋ la da naŋ baŋ nyɛ a kyɔɔtaare ŋa).<ref>https://www.imdb.com/event/evJoburg</ref>
== Dasaŋa kyɔɔtaa diribe ==
* Independent Feature 2023 - ''The Cloud and the Man'' (Manikbabur Megh) by Abhinandan Banerjee - Fiction 97 minutes.
== Sommo Yizie ==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
==Ziiri mine liŋkiri==
* {{official website|joburgfilmfestival.co.za}}
{{Authority control}}
[[Category:Festivals in Johannesburg]]
[[Category:Film festivals established in 2016]]
[[Category:Film festivals in South Africa]]
{{Africa-film-festival-stub}}
nspzkvm1osyea5077c9zklwpdhjzt2s
Apatwa Tigiri
0
6316
62598
57336
2026-07-15T23:00:02Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62598
wikitext
text/x-wiki
{{Databox|item=Q98558461}}'''Apatwa tigiri''' e la yuoni la yuoni zaa tigiri a namine naŋ be a Dixcove naŋ peɛle a Busua naŋ be a Western Region a Ghana paaloŋ poɔ. gbɛɛ yaga kyuure anii poɔ la ka ba maŋ di o.<ref>{{Cite web|title=Festivals Ghana - Easy Track Ghana|url=https://www.easytrackghana.com/cultural-overview-ghana_festivals.php|access-date=2020-08-22|website=www.easytrackghana.com}}</ref><ref>{{Cite web|date=2016-02-24|title=Festivals in Ghana|url=https://touringghana.com/festivals/|access-date=2020-08-22|website=touringghana.com|language=dga-GH}}</ref><ref>{{Cite web|title=The Consulate General Of The Republic of GHANA in The United Arab Emirates (Dubai)|url=https://www.ghanaconsulatedubai.com/tourism.html|access-date=2020-08-22|website=www.ghanaconsulatedubai.com}}</ref><ref>{{Cite web|title=GhanaReview International--- Ghana Tourism|url=http://ghanareview.com/festivals2.html|access-date=2020-08-22|website=ghanareview.com}}</ref><ref>{{Cite web|title=Ghana Festivals – Tour Ghana|url=https://tourghana.com/ghana-festivals/|access-date=2020-08-22|language=dga-GH}}{{bot=InternetArchiveBot |fix-attempted=yes }}</ref>
== A tigiri diibu ==
A tigiri ŋa diibo poɔ saama naŋ maŋ wa bondirii ane daa la ka ba maŋ de tuori ne a saama. A noba maŋ su saakomboma. A tigiri ŋa zie seɛre ane gaŋga ŋmɛ maŋ bebe.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== Tɔna ==
A tigiri ŋa maŋ di la, ka ka ba leɛ teɛre yelkoro naŋ e pare.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref>
==Sommo Yizie==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
jm43zk7r6h163vt28iwn0ef17oek87c
Ahobaa Tigiri
0
6394
62595
56751
2026-07-15T22:26:36Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62595
wikitext
text/x-wiki
{{Databox|item=Q98557763}}
'''Ahobaa Tigiri''' e la yuoni zaa tigiri Enyan-Kakraba naa ne o noba naŋ dire a zɛŋ peɛle yaaroŋ zie a Centra Region paaloŋ a Gaana poɔ. Doɔbo kyuu poɔ la ka ba maŋ di a tigiri ŋa.<ref>{{Cite web|title=How Well Do You Know The Festivals In Ghana?|url=https://www.businessghana.com/|access-date=2020-08-22|website=BusinessGhana}}</ref><ref>{{Cite web|title=The Consulate General Of The Republic of GHANA in The United Arab Emirates (Dubai)|url=https://www.ghanaconsulatedubai.com/tourism.html|access-date=2020-08-22|website=www.ghanaconsulatedubai.com}}</ref><ref>{{Cite web|title=GhanaReview International--- Ghana Tourism|url=https://ghanareview.com/festivals2.html|access-date=2020-08-22|website=ghanareview.com}}</ref><ref>{{Cite web|title=Ghana Festivals – Tour Ghana|url=https://tourghana.com/ghana-festivals/|access-date=2020-08-22|language=dga-GH}}{{|bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{Cite web|title=Festivals – Slutchtours|url=http://www.slutchtours.com/?page_id=21|access-date=2020-08-22|language=dga-GH|archive-date=2021-01-18|archive-url=https://web.archive.org/web/20210118192700/http://www.slutchtours.com/?page_id=21}}</ref>
== A Tigiri Daare ==
A tigiri bebiri, tuori de la a saama a poŋ ba daa ane bondirii. A naa ne o noba maŋ su la ba saaŋkompare bonsuuri kyɛ seɛrɛ ane boŋŋmɛrɛ lelaare a ziezaa<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== A tigiri tɔnɔ ==
A tigiri ŋa maŋ di la ka ba naa nyɛ a ba kpeemɛ ane a teŋɛ bonfolo tɔnɔ.<ref>https://touringghana.com/festivals/</ref>
==Sommo Yizie==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
166yf5ngb91w6hij1ad5rvu8ls9xjvb
Adikanfo Tigiri
0
6395
62593
57364
2026-07-15T22:14:23Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62593
wikitext
text/x-wiki
{{Databox|item=Q98608849}}
Adikanfo tigiri e la yuoni la yuoni zaa tigiri '''Hwidiem''' Naa ne o noba naŋ maŋ di '''[[Ahafo Region|Ahafo Irigyiŋ]]''' be la ka ba da boɔlɔ ka '''Bronŋ Ahafo''' paaloŋ a '''[[Ghana|Gaana]]''' poɔ.<ref>http://ghanastatebook.com/hwidiem-stake-book.html</ref> Gbɛɛ yaga Kpankyaa kyuu<ref>https://www.easytrackghana.com/cultural-overview-ghana_festivals.php</ref> poɔ la ka ba maŋ di a tigiri ŋa kyɛ nobamine meŋ yeli ka Toloŋ kyuu bee kɛkɛŋmɛ kyuu poɔ la ka ba maŋ di o.<ref name=":0">http://www.s158663955.websitehome.co.uk/ghanaculture/mod_print.php?sectionid=532</ref>
== A Tigiri Bebiri ==
A tigiri ŋa bebiri maŋ tuori de la a saama naŋ wa a tigiri a poŋ ba bondirii ane daa. A Naa ne o noba maŋ su la saaŋkompare bonsuuri, a yi be meŋ seɛrɛ ne gaŋgaɛ yɔre la a ziezaa.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref> A lɛ puoriŋ ba maŋ ko la donne a maale bɔgere a ko a ba ŋmemɛ ane a kpeemɛ.<ref name=":0" />
== A Tigiri Tɔnɔ ==
A tigiri ŋa maŋ di la ka ba leɛ teɛre yɛlɛ naŋ e pare.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref> A tigiri ŋa diibu maŋ wuli lɛ ana ta ka Hwidiem noba zo bee wuo yi Denkyira Ntomu a wa zɛŋ a be baŋ naŋ zɛŋ pampana.<ref name=":0" />
==Sommo Yizie==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
9pcf17zaa96pryj3na89iqcb05ilw50
Afringi Tigiri
0
6398
62594
57365
2026-07-15T22:19:54Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62594
wikitext
text/x-wiki
{{Databox|item=Q98683535}}
Afringi tigiri e la tigiri '''Yeji paaloŋ''' naa ne o noba naŋ maŋ di '''[[Bono East Region|Bono East rigion]]''' be la ka da boɔlɔ ka '''Brong Ahafo Region a Gaana''' poɔ. A tigiri ŋa a teŋɛ Ŋmemɛ ane Kpeemɛ la maŋ wuli daare na a tigiri naŋ na di.<ref>http://www.s158663955.websitehome.co.uk/ghanaculture/mod_print.php?sectionid=532</ref> <ref>https://www.blastours.com/west-africa-travel-destinations/regions-of-ghana/ghana-festivals/52-afringi-festival</ref>
== A Tigiri Bebiri ==
A tigiri ŋa diibu daare bee bebiri, ba maŋ tuori de la a saama naŋ maŋ wa a tigiri zie, a poŋ ba bondirii ane daa. A noba maŋ su la saaŋkompare bonsuuri, seɛre ane gaŋgaa ŋmeɛbo maŋ bebe.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== A Tigiri Tɔnɔ ==
A tigiri ŋa diibu maŋ di la ka o wuli yɛlɛ naŋ da e pare.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref> A tigiri maŋ wa ne la nɔlaŋ ko a teŋɛ noba. A tigiri ŋa diibu wagere maŋ wuli la saaŋpare yeltuuri a yuoni poɔ, kyɛ meŋ lɛ wuli lɛ a teŋyuobu yeltuuri.<ref>https://blastoursghana.com/ghana-festivals/</ref>
==Sommo Yizie==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
nxcwb8jmfdiyzpo242y9hcu2imnv58p
Bombei Tigiri
0
6439
62604
57344
2026-07-15T23:49:42Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62604
wikitext
text/x-wiki
{{Databox|item=Q98558338}}
'''Bombei''' '''Tigiri''' (Yam Festival) e la yuoni gbuli zaa bonde tigiri Ekyem Kofi naŋ peɛle Sekondi a [[Western Region|Western Irigyiŋ]] poɔ, [[Ghana]], namine ane noba naŋ maŋ di. Gbɛɛ yaga o maŋ di la Gyoonnoɔre kyuu poɔ.<ref>{{Cite web|date=2016-02-24|title=Festivals in Ghana|url=https://touringghana.com/festivals/|access-date=2020-08-22|website=touringghana.com|language=dga-GH}}</ref><ref>{{Cite web|title=The Consulate General Of The Republic of GHANA in The United Arab Emirates (Dubai)|url=https://www.ghanaconsulatedubai.com/tourism.html|access-date=2020-08-22|website=www.ghanaconsulatedubai.com}}</ref><ref>{{Cite web|title=GhanaReview International--- Ghana Tourism|url=http://ghanareview.com/festivals2.html|access-date=2020-08-22|website=ghanareview.com}}</ref><ref>{{Cite web|title=Ghana Festivals – Tour Ghana|url=https://tourghana.com/ghana-festivals/|access-date=2020-08-22|language=dga-GH}}{{bot=InternetArchiveBot |fix-attempted=yes }}</ref><ref>{{Cite web|title=Festivals – Slutchtours|url=http://www.slutchtours.com/?page_id=21|access-date=2020-08-22|language=dga-GH|archive-date=2021-01-18|archive-url=https://web.archive.org/web/20210118192700/http://www.slutchtours.com/?page_id=21}}</ref>
== A tigiri Diibu ==
A tigiri diibu wagere, sori maŋ yuo la ko saamba ka ba na wa poŋ bondirii ane bonnyuuri ko taa. A noba maŋ su la sããkoŋ bonsuuri ane namine kpaaroŋ vinviŋ maŋ bebe la. Seɛre ane gaŋgarre ŋmeɛbo meŋ maŋ bebe la.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== Tɔna ==
A tigiri ŋa maŋ di la na teɛre yɛlɛ naŋ daŋ e pare.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref>
== Sommo Yizie ==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
5l7z7ua9qvji2wmb07697fd39234ci6
Ayerye Tigiri
0
6440
62602
57341
2026-07-15T23:23:52Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62602
wikitext
text/x-wiki
{{Databox|item=Q98704484}}
'''Ayerye''' '''Tigiri''' e la yuoni gbuli zaa tigiri Akyemfo Nankesedo noba a Nkusukum Traditional Area naŋ be [[Saltpond]] a [[Central Region|Central Irigyiŋ]] poɔ, [[Ghana]], namine ane noba naŋ maŋ di.<ref name=":0">https://allafrica.com/stories/201310301419.html</ref><ref>http://ghheadlines.com/agency/all-africanews--ghana/20131030/558452/akyemfo-nankesedo-ayerye-festival-</ref><ref>https://www.businessghana.com/</ref> Gbɛɛ yaga o maŋ di la Nyɔgevenne kyuu poɔ.<ref>https://www.ghanaweb.com/GhanaHomePage/NewsArchive/Saltpond-Bakado-To-Celebrate-Ayerye-Festival-223561</ref><ref>https://blastoursghana.com/ghana-festivals/</ref><ref>http://www.s158663955.websitehome.co.uk/ghanaculture/mod_print.php?sectionid=534</ref> A Ekumfi Narkwa noba meŋ dire la a tigiri ŋa.<ref>https://web.archive.org/web/20240626120404/https://m.peacefmonline.com/pages/politics/politics/201112/83255.php</ref> A Enyam-Maim noba meŋ dire la a tigiri ŋa.<ref>https://web.archive.org/web/20210118192700/http://www.slutchtours.com/?page_id=21</ref>
== A tigiri diibu ==
A tigiri diibu wagere, sori maŋ yuo la ko saamba ka ba na wa poŋ bondirii ane bonnyuuri ko taa. A noba maŋ su la sããkoŋ bonsuuri ane namine kpaaroŋ vinviŋ maŋ bebe la.<ref>https://www.myjoyonline.com/news/nduom-expresses-worry-about-the-pace-of-development-in-the-central-region/</ref><ref>https://www.graphic.com.gh/news/politics/use-freedom-of-speech-responsibly-mfantseman-mp.html</ref> Seɛre ane gaŋgarre ŋmeɛbo meŋ maŋ bebe la.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== Tɔna ==
A tigiri ŋa maŋ di la na teɛre yɛlɛ naŋ daŋ e pare.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref> O meŋ maŋ la di la na eŋ ba sããkommine naŋ zɔɔ ko ba a yi Ghana Empire te tɔ Techiman ane a puoriŋ zie ba naŋ ziŋ pampana saŋa na ba naŋ wa di dɔgɛɛ nyu ba zu kõɔ.<ref name=":0" /> O meŋ maŋ la leɛ teɛre la a noba kyaare ba laŋyiri ka o e la forifori yi nembeɛ eŋɛ ane ka a seŋ ka ba kaara velaa.<ref>https://www.ghanaweb.com/GhanaHomePage/entertainment/Saltpond-Bakado-Ayerye-Festival-slated-for-November-30-223658</ref>
== Sommo Yizie ==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
7x0dhey2i6xhipc5bjaljd7fr5ay27l
Awubia Tigiri
0
6441
62601
57340
2026-07-15T23:19:47Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62601
wikitext
text/x-wiki
{{Databox|item=Q98801407}}
'''Awubia''' '''Tigiri''' e la yuoni gbuli zaa tigiri Awutu Traditional Area a Awutu Bereku naŋ be [[Central Region|Central Irigyiŋ]] poɔ, [[Ghana]], namine ane noba naŋ maŋ di.<ref>https://www.graphic.com.gh/news/general-news/the-awubia-festival-a-celebration-of-history-and-identity.html</ref><ref>https://web.archive.org/web/20220626014247/https://skyypowerfm.com/mtn-ghana-supports-awutu-awubia-festival-assures-of-supporting-30-more-traditional-festivities/</ref><ref>https://www.ghanaweb.com/GhanaHomePage/NewsArchive/Awutus-Mark-Awubia-Festival-1735</ref><ref>https://citinewsroom.com/2019/09/awutu-traditional-council-rebukes-ndc-communicator/</ref> A teŋɛ be la a [[Awutu Senya desekyere]] poɔ. Gbɛɛ yaga o maŋ di la Ɔɔgore te tɔ Sentɔmbare kyuu.<ref>https://blastoursghana.com/ghana-festivals/</ref><ref>https://www.graphic.com.gh/news/general-news/people-of-awutu-celebrate-awubia-festival-2.html</ref> A tigiri meŋ e la Awutu Awubia Tigiri.<ref>https://web.archive.org/web/20200114231307/http://24news.news/2018/09/08/awutu-awubia-festival-scenes/</ref>
== A tigiri diibu ==
A tigiri diibu wagere, sori maŋ yuo la ko saamba ka ba na wa poŋ bondirii ane bonnyuuri ko taa. A noba maŋ su la sããkoŋ bonsuuri ane namine kpaaroŋ vinviŋ maŋ bebe la. Seɛre ane gaŋgarre ŋmeɛbo meŋ maŋ bebe la.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== Tɔna ==
A tigiri ŋa maŋ di la na teɛre yɛlɛ naŋ daŋ e pare.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref> O duoro la dagerekɔlkya kyakya soŋ a noba laŋkpeɛbo poɔ ane korɔ ba noɔreyeni. O meŋ manna la a koɔbo vuo baaroo ane dagerekɔlkya boŋkoɔre deebo wagere vuo.<ref>https://web.archive.org/web/20181007081554/http://www.blastours.com/west-africa-travel-destinations/regions-of-ghana/ghana-festivals/66-awubia-festival</ref> Ba la yeli ka o meŋ maŋ di la na leɛ teɛre kũũni yɛlɛ.<ref>https://www.modernghana.com/news/485996/the-awubia-festival-a-celebration-of-history.html</ref><ref>https://tourghana.com/ghana-festivals/</ref>
== Sommo Yizie ==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
g7jnpz0razzjvov46qw85yggw4qw707
Apour Tigiri
0
6442
62600
57338
2026-07-15T23:01:22Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62600
wikitext
text/x-wiki
{{Databox|item=Q98802078}}
'''Apoo''' '''Tigiri''' e la yuoni gbuli zaa tigiri Nwoase ane Wenchi Traditional Area, a Nwoase ane Nsawkwa naŋ be [[Bono Region|Bono Irigyiŋ]], naŋ da daŋ e Brong Ahafo irigyiŋ, [[Ghana]], namine ane noba naŋ maŋ di.<ref>https://web.archive.org/web/20210811153900/https://www.nhoc.gov.gh/festivals</ref> Gbɛɛ yaga o maŋ di la Mɛnoɔre bee Gyoone kyuu Nsawkaw poɔ, Nyɔgevenne bee Disembare kyuu Nwoase teŋɛ poɔ ane Mɛnoɔre bee Gyoone kyuu Wenchi poɔ.<ref>https://blastoursghana.com/ghana-festivals/</ref>
== A tigiri diibu ==
A tigiri diibu wagere, sori maŋ yuo la ko saamba ka ba na wa poŋ bondirii ane bonnyuuri ko taa.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref> A noba maŋ su la sããkoŋ bonsuuri ane namine kpaaroŋ vinviŋ maŋ bebe la. Seɛre ane gaŋgarre ŋmeɛbo meŋ maŋ bebe la.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== Tɔna ==
A tigiri ŋa maŋ di la na teɛre yɛlɛ naŋ daŋ e pare. O maŋ di la na leɛ teɛre a noba yelfaare korɔ eebo zageroo.<ref>http://www.s158663955.websitehome.co.uk/ghanaculture/mod_print.php?sectionid=532</ref><ref>https://web.archive.org/web/20180520124122/http://www.blastours.com/west-africa-travel-destinations/regions-of-ghana/ghana-festivals/63-apour-festival</ref>
== Sommo Yizie ==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
tigl6rxdt2zztgu5x1n04in5a9k2717
Apiba Tigiri
0
6443
62599
57337
2026-07-15T23:00:32Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62599
wikitext
text/x-wiki
{{Databox|item=Q98557799}}
'''Apiriba''' '''Tigiri''' e la yuoni gbuli zaa tigiri Senya Beraku, Guan teŋɛ koroo kaŋa naŋ be a [[Central Region|Central Irigyiŋ]] poɔ, [[Ghana]], namine ane noba naŋ maŋ di. Gbɛɛ yaga o maŋ di la Gyoone kyuu poɔ. O maŋ wullo la kamaana fɔrɔ deebo piiluu ba naŋ bore Mɛnoɔre poɔ.<ref>https://www.easytrackghana.com/cultural-overview-ghana_festivals.php</ref><ref>https://touringghana.com/festivals/</ref><ref>https://tourghana.com/ghana-festivals/</ref><ref>https://web.archive.org/web/20210118192700/http://www.slutchtours.com/?page_id=21</ref><ref>https://www.businessghana.com/</ref>
== A tigiri diibu ==
A tigiri diibu wagere, lesiri seemaa naŋ maŋ be o toɔraa ka ba boɔlɔ mpotoroba maŋ maale la yi unleaven kamaana mɔle ne abɛ kãã. O maŋ di la yi ba gbɛre baloŋ ba naŋ boɔlɔ Seye bee prama, gaa o tɔ. Sori maŋ yuo la ko saamba ka ba na wa poŋ bondirii ane bonnyuuri ko taa. A noba maŋ su la sããkoŋ bonsuuri ane baloŋ mɛmbare ane nemberɛ lambo maŋ bebe la. Seɛre ane gaŋgarre ŋmeɛbo meŋ maŋ bebe la.<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref>
== Tɔna ==
A tigiri ŋa maŋ di la na teɛre yɛlɛ naŋ daŋ e pare.<ref>https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html</ref>
== Sommo Yizie ==
[[Gbuli:Dagaare]]
[[Gbuli:Ghana]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:mainpage]]
[[Gbuli:West Africa]]
[[Gbuli:tigiri]]
[[Gbuli:Afirika tige]]
5nhl85oddu4r9e0teujrzw0ykp07b0k
Bagri Tigiri
0
7025
62603
61701
2026-07-15T23:29:33Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62603
wikitext
text/x-wiki
{{databox|item=Q98684579}}
'''Bagri Tigri''' e la yuoni zaa tigri ŋa namine neŋ noba naŋ yi Jirapa, Lawra ne Nandom naŋ maŋ dire a Upper West irigyin naŋ be a Gaana poɔ. Ba maŋ di la a tigri ŋa April kyuu poɔ te ta January kyuu poɔ.<ref>[https://web.archive.org/web/20180520125734/http://www.blastours.com/west-africa-travel-destinations/regions-of-ghana/ghana-festivals/68-bagri-festival "Bagri Festival"] www.blastours.com. Archived from [https://www.blastours.com/west-africa-travel-destinations/regions-of-ghana/ghana-festivals/68-bagri-festival the original] on 2018-05-20. Retrieved 2020-08-27.</ref><ref>[http://www.s158663955.websitehome.co.uk/ghanaculture/mod_print.php?sectionid=530 "National Commission on Culture - Ghana - Upper West Region"]. ''www.s158663955.websitehome.co.uk''. Retrieved 2020-08-27.</ref>
== Diibu ==
A Tigri ŋa wagre, saamma maŋ nyɛ la bondirii neŋ bonnyuurii. A noba maŋ su la lesiri kparre ka namine meŋ laŋ. Boŋŋmeɛre neŋ seɛre maŋ be be la.<ref>[https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals "Major Festivals"] www.ghanaembassyiran.com. Retrieved 2020-08-21</ref>
== Tɔna ==
A tigri diibu maŋ wullo la yele naŋ e yuomo naŋ pare.<ref>[https://web.archive.org/web/20200815054207/https://ghanaconsulatedubai.com/tourism.html "The Consulate General Of The Republic of GHANA in The United Arab Emirates (Dubai)"]. ''www.ghanaconsulatedubai.com''. Archived from [https://www.ghanaconsulatedubai.com/tourism.html the original] on 2020-08-15. Retrieved 2020-08-21.</ref> A tigri maŋ la wullo la yele ne a Bagri deme naŋ maŋ e. A Bagri ŋa e la yuori a ko noba mine naŋ laŋ taa a taa sagediibu kaŋa naŋ vɛŋ ka ba yeni. A Bagri meŋ maŋ pɛge la o noba a yi yelfaarre poɔ.<ref>[https://blastours.com/home/2-uncategorised/68-bagri-festival "Bagri Festival"] blastours.com. Retrieved 2020-08-27</ref>
== Sommo Yizie ==
[[Gbuli:Culture connect Africa 2026]]
[[Gbuli:Dagaare]]
[[Gbuli:Tigiri]]
[[Gbuli:west Africa]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:Mainpage]]
[[Gbuli:Ghana]]
[[Gbuli:Tige]]
dxj7v4ee9jtf5d7fjhf6u7tytqnvqyo
Daa Tigiri
0
7057
62605
62382
2026-07-16T00:21:25Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62605
wikitext
text/x-wiki
{{databox|item=Q98636636}}
'''Daa Tigiri''' e la yuoni zaa tigiri Talensi noba gaŋ a zaa a Baare ane Tong Nayiri naŋ peɛle [[Bolgatanga]] a [[Upper East Region|Ɔpa Isi irigyin]] poɔ naŋ maŋ di [[Ghana]] poɔ<ref name=":0">https://www.a1radioonline.com/5552/daa-festival-celebration-hits-a-climax-with-tampana-dance/index.html</ref>. Ba maŋ di o la Ɔɔtoore kyuu poɔ<ref>https://www.easytrackghana.com/cultural-overview-ghana_festivals.php</ref><ref>https://www.ghanaweb.com/GhanaHomePage/entertainment/Citizens-of-Baare-celebrate-Daa-festival-93313</ref><ref>https://www.graphic.com.gh/entertainment/citizens-of-baare-celebrate-daa-festival.html</ref>
== Diibu ==
A tigiri diibu saŋa, ba maŋ tuori de la saama ka ba pɔŋ bondirii ane dãã. A noba maŋ su la lisire bonsuuri kyɛ ka namine lantaa. Tamana seɛre ne gaŋga ŋmɛ<ref>https://web.archive.org/web/20200926072838/http://ghanaembassyiran.com/en/page/majorfestivals</ref> meŋ maŋ bebe. Ba taa la lɛ ba naŋ maŋ su ba bonsuuri naŋ wulo ba lisiri ane lɛ ba saakommine naŋ yi ziiri kyɛ wa zeŋ zie na ba naŋ be pampana<ref name=":0" />.
== Tɔna ==
A tigiri maŋ de la ka ba wuli lɛ ba bonkɔɔre naŋ maale seŋ lɛ a yuoni zaa poɔ kyɛ la puori a ŋmɛmɛ bareka ne a teŋɛ emmaaroŋ<ref>https://www.modernghana.com/entertainment/1426/citizens-of-baare-celebrate-daa-festival.html</ref>.
== Sommo Yizie ==
[[Gbuli:Culture connect Africa 2026]]
[[Gbuli:Dagaare]]
[[Gbuli:Tigiri]]
[[Gbuli:west Africa]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:Mainpage]]
[[Gbuli:Ghana]]
[[Gbuli:Tige]]
q1nv9elxezfrylowgfg6qwmbv3e1ulc
Kamyshin Watermelon Festival
0
7236
62610
62246
2026-07-16T03:10:08Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62610
wikitext
text/x-wiki
{{databox|item=Q4211938}}
A '''Kamyshin Watermelon''' '''tigiri''' (Russian: Камышинский арбузный фестиваль) e la yuoni zaa Russian nimipɛle tigiri naŋ maŋ di Kamyshin teŋɛ a Volgograd Oblast poɔ. O naŋ yi ne a Moscow teŋɛ bebiri tigiri, a tigiri maŋ di la a teŋɛ dogebo bebiri a August kyuu baaraa saga a Watermelons, ka noba baŋ ne o ka o e a teŋɛ watermelon tenkpoŋ. <ref>http://eventsinrussia.com/en/event/20384</ref> <ref>https://www.rbth.com/document/5a2a553f85600a6f9410ddd3/amp</ref>Lamaale, dewulibo ane boma kɔɔroo maŋ be la a tenne zaa poɔ a bebiri na zaa a lane maakyio, ane sori zu seɛbo.
== Dakoroŋ ==
A tigiri bebe a yi a dakoroŋ mannoo na naŋ da e a yuoni 1722 poɔ, be ka Peter naŋ da gaa a teŋɛ a wagere na a Dmitrievsk yuori saga. A o be gaabo poɔ, o gaabo da yi la tɔna yaga o naŋ da wa di a ba teŋɛ wɔɔtamɛlɔ baare.<ref>https://volgaland.volsu.ru/en/object/81</ref> A yuoni 2007 poɔ,a wɔɔtamɛlɔɔ tigiri dɛndɛnsoba, Business System Group ko a tontnoɔre la da maale o a Kamyshinka River a Borodino baa nimitɔɔre. Ka a tigiri tage noba naŋ pare kɔɔ lantaa ane saama a teŋɛ zaa. A yi 2008, a Administration ko a teŋɛ Kamyshin la da maŋ maale a tigiri. Kyakya paaleba ba naŋ la eŋ la kultaa deme a yuoni poɔ, ka ba da piili a kyakya ŋa a yuoni 2017<ref>https://web.archive.org/web/20221205215919/https://arbuzfest.ru/o_festivale/istorija_festivalja.aspx</ref>.<ref>http://www.admkamyshin.info/2011/09/14/itogi-iv-kamyshinskogo-arbuznogo-festivalya-zelo-otmennyj-plod.html</ref><ref>https://web.archive.org/web/20231116222210/http://kamyshinstar.ru/?p=171</ref><ref>https://web.archive.org/web/20140202092000/http://www.volgograd-trv.ru/news.aspx?id=16422</ref>
== Organization ==
A yelnyɔgeraa ko a tigiri maŋ kyille la yuoni zaa, a yi a yelnyɔgeraa poɔ ko a tigiri.<ref>https://web.archive.org/web/20230223124814/https://arbuzfest.ru/o_festivale/predydushhie_festivali.aspx</ref> Nimipɛle noba maŋ poɔ la a Kamyshin Watermelon tigiri. A yi lɛ na noba naŋ maŋanne a yi 20 te ta 30 noba kɔɔ la maŋ gaa a tigiri, ka saama maŋ yi la Saratov, Moscow, Astrakhan, Krasnodar, ane tenne naŋ peɛle ane anaŋ naŋ e tɔbo (Ukraine, Kazakhstan, Germany, France). A saategeroŋ ko a tigiri la Governor ko Volgograd Oblast. A lantaa zie,a wɔɔtamɛlɔɔ arebo maŋ bene, ka noba naŋ ta 4,000 maŋ poɔ ka yaako boma maŋ ta 20 a maŋ wa wuli ba yaako ka noba da. Wɔɔtamɛlɔɔ naŋ baagere 60 ka ba.maŋ di wane a tigiri zie. A neɛ na naŋ maŋ benne a tigiri yelkɔrɔ la yeli ka wɔɔtamɛlɔɔ tegeroŋ da ta la 21.7 kg, ka o na la da nyɛ a a kyɔɔtaare a yuoni 2014 poɔ.<ref>https://web.archive.org/web/20260626170400/https://dacha.help/frukty-i-yagody/arbuznyy-festival-v-kamyshine-2019</ref>
== Sommo yizie ==
[[Gbuli:Culture connect Africa 2026]]
[[Gbuli:Dagaare]]
[[Gbuli:Tigiri]]
[[Gbuli:west Africa]]
[[Gbuli:Gampɛlɛ zaa]]
[[Gbuli:Africa]]
[[Gbuli:Mainpage]]
[[Gbuli:Ghana]]
[[Gbuli:Tige]]
1g6tbsz73cn31f70h1lni538dgc6qs6
La Binerie Mont-Royal
0
7266
62612
62273
2026-07-16T04:11:39Z
InternetArchiveBot
38
Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5
62612
wikitext
text/x-wiki
'''La Binerie Mont-Royal''' e la ŋmenaa bondimaali zie a Montreal, Quebec, Canada poɔ, ka ba maŋ maala Quebec saakonnoo bondirii a lanne bɛŋɛ.<ref>https://web.archive.org/web/20120314153817/http://www2.canada.com/montrealgazette/news/story.html?id=3868f345-f51b-4b2a-908f-5bba9639df6c</ref><ref name="Gazette" />
A bondirii ŋa da bebe a yuoni 1938 poɔ a Léonide Lussier, a bondimaale zie ŋa da e la Yves Beauchemin's selloo ane sini ka ba boɔlɔ ''The Alley Cat (Le Matou)'', ka ba da maale o sini a toma ŋa zie.<ref>http://www2.canoe.com/cgi-bin/imprimer.cgi?id=374184</ref><ref name="Canoe" /> A Jocelyne ane Philippe Brunet da da a yaako toma ŋa zie a yuoni 2005 poɔ, kyɛ ka o yaga zie ba kyilli. A lanne o bɛŋɛ kɔɔroo, a bondimaale zie ŋa maŋ poɔ la lisiri bondirii mine ka ana la tourtières, Pâté chinois, pouding chômeur, pea zeɛre ane spruce dãã .<ref>https://web.archive.org/web/20250123175129/https://ici.radio-canada.ca/info/videos/media-8168462/binerie-mont-royal-demenage</ref><ref name="voir" />
A bondimaale zie ŋa da be la a 367 east, Avenue du Mont-Royal, a Plateau Mont-Royal teŋkpoŋ poɔ kyɛ kaara a {{date|2019-08-31|MDY}}. O da leɛ wa yaare la a yuoni 2019 poɔ a Saint-Denis sori naŋ peɛle Rachel street.<ref>https://www.journaldemontreal.com/2019/07/28/une-institution-de-la-gastronomie-quebecoise-demenage</ref>
== Sommo yizie ==
0gxs81rovzy1d6524dpcgt24ph8yvyt