Wikipiideɛ dgawiki https://dga.wikipedia.org/wiki/A_Gamp%C9%9Bl%C9%9B_zu MediaWiki 1.47.0-wmf.7 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 Congolese rʋmba 0 1989 61848 58875 2026-06-23T14:35:31Z Jacques Ballieu 1785 61848 wikitext text/x-wiki {{Databox|item=Q3453150}} '''Congolese rumba''', yuori kaŋa la '''African rumba''', e la [[seɛre yieluŋ]] bɔgre naŋ yire a [[Congo Democratic Republic]] (naŋ da e [[Zaire]]) ane a [[Congo Republic]] (naŋ da e [[French Congo]]). Ne o lanleebu, kɔkɔre gaaloo ane yelbi-yelii, Congolese rumba nyɛ la donɛɛ zaa ŋmaa ŋmene kyigi emmo a e Africa music heritage kyɛlee. Disembare 2021 poɔ, ba da de o la poɔ a [[UNESCO]] [[intangible cultural heritage]] yoe pɛll poɔ.<ref name=":0">https://books.google.com/books?id=7VmcEAAAQBAJ</ref><ref>https://www.aljazeera.com/news/2021/12/15/congolese-rumba-added-unesco-heritage-list</ref><ref>https://en.unesco.org/news/43-elements-inscribed-unescos-intangible-cultural-heritage-lists</ref> O naŋ daara yire a soga-20th yuomo kɔɔre vuoŋ a Kinshasa tembeɛrɛ poɔ ane Brazzaville, a nempeɛle nuuri beebu wagere saŋa, Congolese rumba yi la yiele ŋmɛ tɛɛtɛɛ kyilluu sɛ lantaa, a de Kongolese ''maringa'' seɛre yieluŋ [[Cuban son]].<ref name=":4">https://books.google.com/books?id=N65pbr2hC4wC</ref><ref name=":1">https://books.google.com/books?id=fRycCwAAQBAJ&dq=rumba+from+yuka+and+Kongo+people&pg=PT151</ref><ref>https://www.economist.com/culture/2022/01/22/beneath-the-rhythm-congolese-rumba-is-a-link-to-the-past</ref> Congolese rumba tuuruŋ maŋ taa la guitar kɔkɔgaale, kɔkɔgaale lanleebu, toolere yelbie voone duobo sagebo ostinato eŋɛ bee duori tere yelŋmaa, ane seɛre toori.<ref>https://www.scmp.com/lifestyle/arts-culture/article/3159884/congolese-rumba-why-dance-recognised-unesco-special-and-what</ref><ref name=":5">https://hal.science/hal-03540376v3/document</ref> A bɔgre ŋa gbɛre na baŋ tu la gaa la a 1930s, saŋa na African yielyielbo, a gaŋaazaa bana naŋ yi a [[Congo Basin]], laŋ de guitar, [[pilintoore]], ane [[ikembe]] na yieli yiele saaŋkonnoŋ voriŋ naŋ laŋ ne Cuban son.<ref>https://books.google.com/books?id=9ETPEAAAQBAJ</ref><ref>https://books.google.com/books?id=0XYrEAAAQBAJ</ref><ref>https://books.google.com/books?id=vBpmDAAAQBAJ&dq=Congolese+rumba+folk+music&pg=PT153</ref><ref name=":2">https://www.southworld.net/dr-congo-dancing-to-the-rumba-rhythm/</ref><ref>https://web.archive.org/web/20240422022503/https://www.kcrw.com/music/shows/tom-schnabels-rhythm-planet/congolese-rumba</ref> A ŋaaŋ ko la [[soukous]] zɛgebo, bɔgre o yelsoore ama lanleebu toolere, kɔkɔ-kpeɛŋaa guitar kɔkɔre gaaloo bammo ane kɔkɔ-zuluŋ kpoŋ ane kɔkɔgaale yaga lanleebu tutaaloŋ vuo naŋ wulo o.<ref>https://books.google.com/books?id=A0XNvklcqbwC</ref> A gɔɔre ŋa nyɛ la yaarebo yuori zɛgebo Africa poɔ, a ta paalonne aŋa Tanzania, Kenya, Uganda, Rwanda, Zimbabwe, Madagascar, Zambia, Ivory Coast, Gambia, Nigeria, [[Ghana]], South Sudan, Senegal, Burundi, Malawi, ane Namibia. Ane meŋ, o nyɛ la tuubo [[Europe]] poɔ, a gaŋa zaa France, [[Belgium]], Germany, ane a UK poɔ, ane a US meŋ, a yi a Congolese yielyielbo yɔɔbo zuiŋ, ba naŋ yɔ yieli tige yaga zie paaloŋ yoboŋ. Yielyielbo teseŋ ŋa [[Henri Bowane]], [[Wendo Kolosoy]], [[Franco Luambo Makiadi]], [[Le Grand Kallé]], [[Nico Kasanda]], [[Tabu Ley Rochereau]], [[Sam Mangwana]], [[Papa Noel Nedule]], [[Vicky Longomba]], ane [[Papa Wemba]] e la yɛlɛ yaga a bɔgre ŋa, zɛgrɛ o torebogiri ane derɛ ziyuo yelpaala yiele dabie ennɛ o.<ref>https://books.google.com/books?id=XEeTAgAAQBAJ</ref><ref>https://books.google.com/books?id=XEeTAgAAQBAJ</ref><ref name=":0" /> == Yelkorɔ == === Yizie === Wulteroo ko a yelzu yiibo zie "rumba" la, ka o yi la a [[Kikongo]] yelbiri ''nkumba'', tɛge naŋ e "belly button" (nyuo), naŋ terɛ a yideme seɛre zannoo a [[Kingdom of Congo]] koroo gbaŋgbaliŋ, naŋ paale a zenɛ saŋa na [[Democratic Republic of a Congo]] lomboe mine, [[Republic of a Congo]], ane [[Angola]].<ref>https://books.google.com/books?id=JOlGAQAAMAAJ&q=rumba%20comes%20from%20nkumba</ref><ref>https://books.google.com/books?id=kbc7AQAAIAAJ&q=rumba%20comes%20from%20nkumba</ref><ref>https://books.google.com/books?id=91CnDwAAQBAJ</ref> O kaama lanleebu pare naŋ tage yi [[Bantu saaŋkonnoŋ]], yotegeroŋ a [[Palo Kongo]] ŋmene, naŋ tuuli leɛ te gaa a Kongo noba Spanish zenɛmɛ naŋ da de gaane Cuba ka gyeremɛ kyebe a 16th yuomo kɔɔre poɔ.<ref name=":1" /><ref>https://books.google.com/books?id=FaTfuuIlmqcC</ref><ref>https://books.google.com/books?id=A3ZLvBuyDHEC</ref><ref name=":3">https://books.google.com/books?id=zGC_ZNOrKDwC</ref> [[Miguel Ángel Barnet Lanza's treatise]], ''Congo Cults of Bantu yiibu zie eŋɛ Cuba'' poɔ manne ka Africans gbaŋgbaare yaga zie ba naŋ nyɔge wane [[Cuba]] da daŋ e la [[Bantu booree]], ane a zaa ka a puoriŋ, a [[Yoruba]] naŋ yi [[Nigeria]] da la pore yaga.<ref>https://journals.sagepub.com/doi/abs/10.1177/039219219704517912?journalCode=dioa</ref> A yiele lesiri, seɛre dɔlɔ ane seeloŋ yelerre da sɔgle biŋɛɛ la ŋmaara ne nandaari noba a irigyiŋ zaa poɔ naŋ taa nimize semmo noɔre Africans gbaŋgbaare yelsoore.<ref name=":2" /> Yiele tontomboma aŋa a [[gaŋgaa]], [[makuta]], [[catá]], [[yambu]], [[wulee]], [[güiro]], ane [[cajón de rumba]] la boma ba naŋ da maŋ de kuri bee ŋmɛ ne yieluŋ naŋ taa boɔloo ane sagebo ne saaŋkonnoŋ seeloŋ ane a kpeemɛ.<ref>https://books.google.com/books?id=lJkkAQAAIAAJ&q=rumba%20enslaved%20kongo%20people</ref> <ref name=":1" />Nentegerɛ aŋa [[Arsenio Rodríguez]] laŋ la saaŋkoŋ [[Bakongo]] voonoo ne [[Cuban son]].<ref name=":3" /> === Late 1920s–1950s === [[File:Un groupe de rumba congolais à Léopoldville.jpg|thumb|Un groupe de rumba congolais à Léopoldville]] A yi Phyllis Martin's ''Leisure ane Society naŋ be Colonial Brazzaville poɔ'', a noɔreyeni seɛre yiele yuori naŋ yire a [[Belgian Congo]] koroo ane [[French Congo]], pampana naŋ poɔ a [[Democratic Republic of the Congo]] ane [[Republic of the Congo]], seŋ anaŋ tutaa lɛ, da e la ''maringa''.<ref name=":4" /> ''Maringa'' da e la Bakongo seɛre naŋ yinne West African highlife ane yelkorɔ zannoo a [[Kingdom of Loango]] koroo koŋkoboŋ, a kɔlage ziiri naŋ be ana saŋa na Republic of Congo poɔ, Southern [[Gabon]], ane [[Cabinda]].<ref name=":5" /> A seɛre taa la gane fẽẽ ba naŋ maŋ maale ne gaŋgaa ba naŋ boɔloo patenge ko lanleebu sɔroo, pelentoɔ naŋ tona ŋa lomboe-ata-loŋkoro, ane ekoodẽɛ̃ ba naŋ boɔlɔ ''likembe'', ne mi-voone guoli ayɔpoi te tɔ awae.<ref name=":4" /> A maringa seɛreba gbɛ-binni tɛɛtɛɛ poɔ la seɛ nagebo lanleebu naŋ maŋ zuli a endaa tegeroŋ yi gbɛre ŋa wa gaa ne ŋa, naŋ teɛra a [[Afro-Cuban rumba seɛre]], a puoriŋ naŋ leɛ kyaare seɛ-korɔ ane yiele bɔgre.<ref name=":4" /> Laŋ noɔreyeni seɛre yuori yɔ la a Congo irigyiŋ zaa 1930 poɔ.<ref name=":4" /> Yiele ane yipɔge zanna karegyuu Kazadi wa Mukuna [[Kent State University]] poɔ manne ka irikɔɔdiŋ ziiri yaga deme ana wagere naŋ da maŋ mɔ la na leɛ manne a yelzu ''maringa'' a derɛ o lantaa ne a "rumba" paala kyɛ naŋ binne o yoe meŋa na.<ref name=":10">https://www.musicinafrica.net/magazine/brief-history-popular-music-drc</ref> 1934 poɔ, Jean Réal, Faranse nimipɛle daarɛta naŋ yi [[Martinique]], da kuri la a yelzu "Congo Rumba" o naŋ da nyɛ noɔreyeni yielyielbo ne ana yuori na Brazzaville poɔ.<ref>https://www.jstor.org/stable/30249807 wa Mukuna, Kazadi (1992). "The Genesis of Urban Music in Zaïre". ''African Music''. '''7''' (2): 72–84. ISSN 0065-4019. JSTOR 30249807</ref><ref name=":4" /> Clément Ossinondé, Congolese yielzanna zannoo gɔɔroŋ naŋ are [[Congolese yiele]] poɔ, yeli ka a Congolese yielyielbo zaa naŋ be a Congo Rumba, Gabriel Kakou ane Georges Mozebo da e la nenzuri boŋŋmeɛrɛba Congolese rumba yuori duobo bee zɛgebo poɔ ane lokal yieli yielyielbo naŋ puro yiri nyooroo bee wulluu eŋɛ.<ref name=":6">https://web.archive.org/web/20231028222619/https://www.dac-presse.com/voyage-musical-laller-et-retour-de-la-rumba/</ref><ref name=":8">https://www.librairiecharlemagne.com/livre/6787987-histoire-de-la-musique-congolaise-52-ans-de-la--clement-ossinonde-ed-ices</ref><ref>https://www.adiac-congo.com/content/musique-clement-ossinonde-en-sejour-brazzaville-129054</ref> ==== Ziyuo Congolese rumba leɛbo ==== 1937 naŋ wa tara, ka Réal leɛmaale o yelnare binni a nyoore bee wuli lokal yielyielbo ne ziyuo boŋŋmɛboma, naŋ yuo so-soŋ naŋ ba poɔrɔ ko Brazzaville yielŋmeɛrɛbɛ noba, naŋ poɔ Alphonse Samba, Michel Kouka, Georges Nganga, Côme Batoukama (guitars), Vital Kinzonzi (accordion), Emmanuel Dadet (saxophone, guitar, ane amine), ane Albert Loboko ([[banjo]], piano, guitar).<ref name=":6" /><ref>https://web.archive.org/web/20231028222612/https://www.dac-presse.com/albert-loboko-inspirateur-et-precurseur-des-notions-de-la-rumba-en-1932-congo-rumba/</ref> Brass bands anaare da maalaɛ la a puoriŋ Brazzaville poɔ, naŋ e a Fanfare Militaire, a Fanfare de la Milice, a Fanfare Catholique, ane a Fanfare Munisipale.<ref name=":7">https://web.archive.org/web/20240221023207/http://zenga-mambu.com/2019/09/07/les-deux-premiers-grands-orchestres-de-cuivres-de-brazzaville-et-de-kinshasa-en-1940/</ref> Dadet ane Antoine Kasongo la leɛ a Congolese yielŋmeɛrɛbɛ fɔrɔ naŋ nyɔge a Congolese noba saaŋkoŋ yiele leɛre lɛɛŋ wa tɔ zenɛ, a derɛ yelkaama bompaala ennɛ ba yiele poɔ.<ref name=":7" /> Dadet leɛ la a yielyiele na kaŋa naŋ baa a yiri poɔ a taa saxophone, clarinet ane guitar bammo fẽẽ zaa lantaa. [[Jazz]] soloists naŋ ko o nimivɛle eŋyuo, o maale la yiele gɔɔroŋ naŋ taa tontoŋ bontɛɛtɛɛ, naŋ taa kyenloo ne "free [[polyphony]]".<ref name=":7" />O seɛre band, "Melo-Congo," nyɛ la zɛgeroŋ yaga a nansaal-peɛle gambanneba poɔ, naŋ yire-erɛ yel-tɛɛtɛɛ naŋ yi dasaŋa seɛre; [[waltzes]] ane [[foxtrot]] te tɔ ana saŋa na ane pampana [[rumba]], [[biguines]], ane [[tangos]].<ref name=":4" /> O wane la lokal yielyielbo zɛgeroŋ duobo nimizeɛ yaga aŋa Pierre Mara, Georges Ondaye, Jean-Marie Okoko, Philippe Ngaba, Pierre Kanza, Casimir Bounda, Jean Dongou, Augustin Thony, André Tsimba, Pierre Loemba, Barète Mody, Pascal Kakou, Félix Maleka, ane Botokoua. A band nyɛ la eebo sonzaa lɛ, naŋ nyɛ eebo [[Poto-Poto]] poɔ a seɛre bar PICKUP poɔ, ane seɛre devuori zie aŋa Chez Faignond, Macumba, Beauté Brazza, Chez Ngambali, Mon Pays, ane Léopoldville.<ref name=":7" /><ref name=":4" /><ref name=":8" /> Ɔɔgore 1941 poɔ, Paul Kamba da mɛ la a Victoria Brazza noɔreyeni yielyielbo Poto-Poto poɔ, naŋ da poɔ Henri Pali Baudoin, Jacques Elenga Eboma, Jean Oddet Ekwaka, François Likundu, Moïse Dinga, Philippe Moukouami, Paul Monguele, François Lokwa, Paul Wonga, Joseph Bakalé, ane Auguste Boukaka.<ref name=":9">https://hal.science/hal-03540376v3/document</ref> A noɔreyeni yielyielbo lanleebu lombori de la a ''maringa'' lanleebu ane saaŋkoŋ yielyieli boma, naŋ poɔ a kɔkɔzuluŋ gaŋgaa, a ''patengé'', tolenlenne (reminiscent of [[maracas]] affixed to hunting dogs), [[tolenleŋkparre]] naŋ e ''ekonga'', a ''likembe'', ane ziyuo yieli boma aseŋ accordion, guitar, [[mandolin]], banjo, ane [[rackett]]. A ziyuo voonoo sɛɛte boma ane a maringa saaŋkonnoŋ boŋŋmɛ boma voonoo kpɛtaaloŋ daa yie la a e mannoo yelsoore ko a "ziyuo Congolese rumba".<ref name=":9" />[[File:Bar de rumba congolaise à Léopoldville de 1955 à 1965.jpg|thumb|Bar de rumba congolaise à Léopoldville de 1955 à 1965]] [[File:Des jeunes dansant dans un club de rumba congolaise.jpg|thumb|Des jeunes dansant dans un club de rumba congolaise]] A 1940s-50s soga, Cuban son yiele lambo, aseŋ [[Sexteto]] [[Habanero]], [[Trio Matamoros]], ane Los Guaracheros de Oriente, da ŋmɛ la [[Radio Congo Belge]] eŋɛ Léopoldville poɔ, a nyɛrɛ duobo zɛgeroŋ a paaloŋ poɔ a yuomo kɔɔre naŋ tu vuoŋ.<ref>''The Encyclopedia of Africa v. 1''. 2010 p. 407.</ref><ref>https://archive.org/details/latintingeimpact0000robe</ref> ''Maringa'' seɛre yiele—ane a zaa ka a ba taa baaloŋ ne Cuban rumba—da leɛ la "Congolese rumba", a e Sexteto Habanero ane Trio Matamoros bonlonnaa irekɔde gbɛɛ yaga ba naŋ da ma turi de ka o e "rumba".<ref name=":10" /> Yieli ŋmeɛreba tɛɛtɛɛ ane kpaaroone daa yie la a Congolese yiele zie, ane Paul Kamba, [[Zacharie Elenga]], ane [[Antoine Wendo Kolosoy]] naŋ nyɛ emmo wuli ka banna la fɔrɔ.<ref name=":8" /><ref name=":4" /><ref name=":6" /><ref>https://web.archive.org/web/20090101091525/http://aliaagency.com/artists/artist.php?id=10</ref> Elenga leɛre la a Congolese rumba lanleebu ne guitar solos de eŋ a yiele meɛbo ane mɛ yiele dannoo naŋ taa [[lanleebu guitar]], [[lead guitar]], [[bass kpara]], saxophone, ane gaŋgaŋmeɛre.<ref name=":11">https://hal.science/hal-03540376v3/document</ref> Kyɛ ka Kasongo's Odeon-Kinois orchestra, bee Harmonie Kinoise, wane ''sebene'', naŋ e pulluu noɔre mannoo kyɛlkyɛ, ne kpaamo a lanleebu guitar eŋɛ. Kasongo meŋ maale bee ŋmɛ la yiele yaga ko Olympia Editions.<ref name=":7" /><ref>https://www.congopage.com/le-sebene-dans-la-musique-congolaise-moderne</ref> 1948 poɔ, Antoine Wendo Kolosoy's irikɔɔdiŋ koɔroo ŋmɛ la "Marie-Louise", o sɛge tɔ ne guitar ŋmeɛrɛ [[Henri Bowane]] ka Greek Nico Jeronimidis, [[Ngoma Editions]] maale, a nyɛ eebo yaga sonzaa lɛ, a koɔre gaŋ miliyoŋ ayi kopiri.<ref name=":11" /> A ŋaa mɛ la Léopoldville ka o e Congolese rumba zikpoŋ "yiele wederoŋ", a irikɔɔdiŋ maaale zie naŋ teɛ ane irikɔɔdiŋ studios faramine naŋ kaara ane irikɔɔde maale lombori Greek boŋkoɔreba naŋ be.<ref name=":11" /> [[File:Franco Luambo au Congo belge.jpg|thumb|Franco Luambo au Congo belge]] 1950s piiluu vuoŋ, lokal yielyielbo da de la bamenne laŋ ne Congolese yiele irikɔɔde zibeɛrɛ naŋ e nansaale peɛle naŋ wa ziŋ be boma, aseŋ Ngoma, Cognolia, [[Opika]], [[Loningisa]], ane CEFA, a piili maala gɔɔre ire naŋ yinne Congolese rumba.<ref name=":6" /><ref name=":8" /> A gɔɔre ire ŋa, gbɛɛ yaga yelsoore naŋ maŋ e "slower tempo" ane voone tɛɛtɛɛ, boŋŋmɛ tɛɛtɛɛ sogaŋ, yiele naŋ da paale aŋa Zacharie Elenga, Antoine Wendo Kolosoy, ane Antoine Moundanda's "Paul Kamba Atiki Biso" (1950) ane Antoine Moundanda's "Mabele Ya Paulo" (1953), Ngoma Editions naŋ irikɔɔde.<ref name=":6" /><ref name=":8" /><ref>https://hal.science/hal-03540376v3/document</ref> A irikɔɔde magere ŋa meŋ ko la a Belgian Congo gbaŋgbale soŋ ka ba ŋmɛ yaaroo do ane yiri baabo boŋŋmɛ tɛɛtɛɛ deebo ane bands, aseŋ [[African Jazz]], [[OK Jazz]], Conga Jazz, Negro Band, ane Rumbanella Band.<ref name=":6" /><ref name=":8" /> Ane a zaa ka a band yoe gbɛɛ yaga maŋ poɔ la a yelbiri "jazz", Martin yeli ka "African ane Latin American gbɛre la ka yiele kaama nyɔgebo nimizeɛ yi". Ba da de la a yuori ŋa bonso bipɔle bilii da taa la dabẽɛ̃ ne a American sogyere, a gaŋa zaa African Americans, naŋ da be militiri kamp Léopoldville poɔ a Second World War wagere. Gambanneba aseŋ Isaac A. Kamola naŋ be Trinity College ane Shiera S. el-Malik naŋ be DePaul University da bo ka a Congolese "jazz" ama == Sommo Yizie == [[Category:Dagaare]] [[Category: gampɛlɛ zaa]] evvorb0krgj4p41ifsousurv9zxzo66 Module:Params 828 4820 61852 45235 2026-06-23T20:05:17Z Grufo 1773 Upstream updates 61852 Scribunto text/plain require[[strict]] --- --- --- LOCAL 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 -- 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 -- 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 -- 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 -- 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] = val src[skey] = nil end 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 --[[ 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 } -- Functions and modifiers MUST avoid these names too: `let` --[[ Module's private environment ]]-- -------------------------------------- -- 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, 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 = {} -- Create a new context local function context_new (child_frame) local ctx = {} ctx.frame = child_frame:getParent() ctx.opipe = child_frame.args ctx.oparams = ctx.frame.args ctx.firstposonly = static_iface ctx.iterfunc = pairs ctx.sorttype = 0 ctx.n_parents = 0 ctx.n_children = 0 ctx.n_available = maxfill return ctx 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 (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 amap, sep, argc = {}, string.byte('/'), start_from + 1 local vname local chr for idx = 1, #cmd do chr = cmd:byte(idx) if chr == sep then for key, val in ipairs(amap) do dest[val] = opts[argc] amap[key] = 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 push_cloned_stack (ctx, tbl) local newparams = {} local currsnap = ctx.n_children + 1 if ctx.children == nil then ctx.children = { newparams } else ctx.children[currsnap] = newparams end for key, val in pairs(tbl) do newparams[key] = val end ctx.n_children = currsnap 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 tmp = raw_arg:match'^%s*(.-)%s*$' if tmp == 'without_sorting' then return nil, 2, false end tmp = sortfunctions[tmp] if tmp == nil then return nil, 1, false end return tmp or nil, 2, true end -- Parse optional user arguments of type `...|[let]|[...][number of additional -- parameters]|[parameter 1]|[parameter 2]|[...]` local function load_child_opts (src, start_from, append_after) local tbl, pin = {}, start_from local names if src[pin] ~= nil and src[pin]:match'^%s*let%s*$' and src[pin + 1] ~= nil and src[pin + 2] ~= nil then names = {} repeat names[get_parameter_name(src[pin + 1])] = src[pin + 2] pin = pin + 3 until src[pin] == nil or not src[pin]:match'^%s*let%s*$' or src[pin + 1] == nil or src[pin + 2] == nil end local tmp = tonumber(src[pin]) if tmp ~= nil and math.floor(tmp) == tmp then if tmp < 0 then tmp = -1 end local shf = append_after - pin for idx = pin + 1, pin + tmp do tbl[idx + shf] = src[idx] end pin = pin + tmp + 1 end if names ~= nil then for key, val in pairs(names) do tbl[key] = val end end return tbl, pin 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) local style local 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, nargs = load_child_opts(src, style[2] + shf, n_exist) 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, nargs, tmp, karg, varg 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 ptns, state, nptns, cnt = {}, 0, 0, 1 local keyw 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` and `reinterpreting` modifiers local function load_parse_opts (opts, start_from, isp, psp) local tmp local optslots, noptslots, argc = { true, true, true }, 3, start_from local trimn, trimu, iplain, pplain = 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 = tmp[1], tmp[2] optslots[1] = nil elseif optslots[2] ~= nil and isep_parse_opts[tmp] ~= nil then argc = argc + 1 iplain, isp = isep_parse_opts[tmp], opts[argc] optslots[2] = nil elseif optslots[3] ~= nil and psep_parse_opts[tmp] ~= nil then argc = argc + 1 pplain, psp = psep_parse_opts[tmp], opts[argc] optslots[3] = 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] = key margs[varg] = 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] = key rargs[varg] = 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 local 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 skel = {} local canvas = {} local idx = 1 local s_pos = 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 local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru) local key local val local spos1 local spos2 local pos1 local pos2 local pos3 = 0 local idx = 1 local lenplone = #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] = val idx = 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 `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 tbl = ctx.params local vars = {} local sortfn, tmp, do_sort = load_sort_opt(opts[2]) local argc = set_strings(vars, opts, tmp + 1) if argc < tmp 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 local 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 cache = {} len = 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 = cache[idx] pmap[nss + 1] = 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 --[[ 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 = ipairs ctx.subset = 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 = pairs ctx.subset = -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(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|pipe to library.scoring = function (ctx) if ctx.pipe[1] == nil then error(modulename .. ', ‘scoring’: No parameter name was provided', 0) end local retval = 0 for _ in pairs(ctx.params) do retval = retval + 1 end ctx.params[get_parameter_name(ctx.pipe[1])] = tostring(retval) return context_iterate(ctx, 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] = key store[key] = val tbl[key] = 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 tbl, tmp, nmin, nmax, nnums = ctx.params, {}, 1, nil, -1 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 nnums = nnums + 1 tmp[key] = val 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] = '' end for key, val in pairs(tmp) do tbl[key] = val end end return context_iterate(ctx, 1) end -- Syntax: #invoke:params|clearing|pipe to library.clearing = function (ctx) local tbl = ctx.params 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 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 local 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] = val tbl[key] = 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 tbl, numerics = ctx.params, {} local nmax local nmin 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 tbl, cache, nsize = ctx.params, {}, 0 local tmp 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 opts, tbl = ctx.pipe, ctx.params local tmp1 = opts[1] local tmp2 local argc local pos local refp 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|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 targets, nptns, argc = load_pattern_args(ctx.pipe, 'with_name_matching') local tmp local ptn local tbl = ctx.params local newparams = {} 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 local 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 tbl = ctx.params local targets, nptns, argc = load_pattern_args(ctx.pipe, 'with_value_matching') local nomatch local ptn 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 tbl = ctx.params local targets, nptns, argc = load_pattern_args(ctx.pipe, 'with_value_not_matching') local yesmatch local ptn 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|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]|[...][number of additional parameters]|[parameter -- 1]|[parameter 2]|[...]|[parameter N]|pipe to library.mapping_by_calling = function (ctx) local opts = ctx.pipe local tname 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 = load_callback_opts(opts, 1, mapping_styles.values_only) local model = { title = tname, args = margs } value_maps[looptype](ctx.params, margs, karg, varg, function () return ctx.frame:expandTemplate(model) end) return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_invoking|module name|function -- name|[call style]|[let]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.mapping_by_invoking = function (ctx) local opts = ctx.pipe local mname local fname 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 = load_callback_opts(opts, 2, mapping_styles.values_only) 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](ctx.params, margs, karg, varg, function () return tostring(mfunc(ctx.frame:newChild(model))) end) return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_magic|parser function|[call -- style]|[let]|[...][number of additional arguments]|[argument -- 1]|[argument 2]|[...]|[argument N]|pipe to library.mapping_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 .. ', ‘mapping_by_magic’: No parser function was provided', 0) end local margs, argc, looptype, karg, varg = load_callback_opts(opts, 1, mapping_styles.values_only) value_maps[looptype](ctx.params, margs, karg, varg, function () return ctx.frame:callParserFunction(magic, margs) end) 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 mix = ctx.pipe[1] local tbl = ctx.params 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 tbl = ctx.params local sortfn, argc, do_sort = load_sort_opt(ctx.pipe[1]) local cache local len if do_sort then local words local 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 cache = {} len = 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]|[...][number of additional parameters]|[parameter -- 1]|[parameter 2]|[...]|[parameter N]|pipe to library.renaming_by_calling = function (ctx) local opts = ctx.pipe local tname 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 = load_callback_opts(opts, 1, mapping_styles.names_only) local model = { title = tname, args = rargs } map_names(ctx.params, rargs, karg, varg, looptype, function () return ctx.frame:expandTemplate(model) end) return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_invoking|module name|function -- name|[call style]|[let]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.renaming_by_invoking = function (ctx) local opts = ctx.pipe local mname local fname 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 = load_callback_opts(opts, 2, mapping_styles.names_only) 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(ctx.params, rargs, karg, varg, looptype, function () return tostring(mfunc(ctx.frame:newChild(model))) end) return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_magic|parser function|[call -- style]|[let]|[...][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 = load_callback_opts(opts, 1, mapping_styles.names_only) map_names(ctx.params, rargs, karg, varg, looptype, function () return ctx.frame:callParserFunction(magic, rargs) end) 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] = nil tbl[get_parameter_name(repl)] = 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]|[...]|[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 opts = ctx.pipe local tmp if opts[1] ~= nil then tmp = opts[1]: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 argc tmp, argc = load_child_opts(opts, 2, 0) 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 local groups = make_groups(ctx.params) for gid, group in pairs(groups) do for key, val in pairs(gargs) do group[key] = val end group[0] = gid model.args = group groups[gid] = ctx.frame:expandTemplate(model) 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 cache = {} local mix_k, mix_v = ctx.pipe[1]:match'^%s*(.-)%s*$', ctx.pipe[2] local tmp 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]|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]|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|pipe to library.snapshotting = function (ctx) push_cloned_stack(ctx, ctx.params) return context_iterate(ctx, 1) end -- Syntax: #invoke:params|remembering|pipe to library.remembering = function (ctx) push_cloned_stack(ctx, ctx.oparams) return context_iterate(ctx, 1) end -- Syntax: #invoke:params|entering_substack|[new]|pipe to library.entering_substack = function (ctx) local tbl = ctx.params local ncurrparent = 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.children[currsnap] = nil ctx.n_children = 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 parent local tmp = ctx.n_parents if tmp < 1 then parent = ctx.oparams else parent = ctx.parents[tmp] end 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|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.parents[ncurrparent] = nil ctx.n_parents = 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.parents[ncurrparent] = nil ctx.n_parents = ncurrparent - 1 ctx.n_children = 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 = ctx.parents[ncurrparent] local child = ctx.params ctx.params = parent ctx.parents[ncurrparent] = nil ctx.n_parents = 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 = ctx.params local currsnap = ctx.n_children for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end ctx.children[currsnap] = nil ctx.n_children = currsnap - 1 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 opts = ctx.pipe local tname 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 opts = ctx.pipe local mname local fname 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 opts = ctx.pipe local magic 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] = pps ret[nss + 2] = key ret[nss + 3] = kvs ret[nss + 4] = val nss = 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] = pps ret[nss + 2] = val nss = 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] = pps ret[nss + 2] = '' ret[nss + 3] = '' ret[nss + 4] = val nss = nss + 4 end, function (key, val) ret[nss + 1] = pps ret[nss + 2] = key ret[nss + 3] = kvs ret[nss + 4] = val nss = 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 opts, tbl = ctx.pipe, ctx.params local tmp 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] = pps ret[nss + 2] = table.concat(cnv) nss = nss + 2 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 opts = ctx.pipe local tname 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] = key opts[2] = val ret[nss + 1] = ccs ret[nss + 2] = ctx.frame:expandTemplate(model) nss = nss + 2 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 opts = ctx.pipe local mname local fname 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] = key opts[2] = val ret[nss + 1] = ccs ret[nss + 2] = mfunc(ctx.frame:newChild(model)) nss = nss + 2 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 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’: 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] = key opts[2] = val ret[nss + 1] = ccs ret[nss + 2] = ctx.frame:callParserFunction(magic, opts) nss = nss + 2 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 opts = ctx.pipe local tname 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] = val ret[nss + 1] = ccs ret[nss + 2] = ctx.frame:expandTemplate(model) nss = nss + 2 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 local 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] = val ret[nss + 1] = ccs ret[nss + 2] = mfunc(ctx.frame:newChild(model)) nss = nss + 2 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] = val ret[nss + 1] = ccs ret[nss + 2] = ctx.frame:callParserFunction(magic, opts) nss = nss + 2 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] = gid model.args = group ret[nss + 1] = ccs ret[nss + 2] = ctx.frame:expandTemplate(model) nss = nss + 2 end ) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end --- --- --- PUBLIC ENVIRONMENT --- --- ________________________________ --- --- --- --[[ 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 }) fdgmy2j5zj2k25i8s1rqr5wi8hre2zs Eve Bazaiba 0 5327 61864 61624 2026-06-24T09:59:40Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61864 wikitext text/x-wiki {{Databox|item=Q3577297}} '''Ève Bazaiba Masudi''' (née '''Ève Bazaiba''') (dɔgebo la 12 August 1965) e la Congolese lawyer, politician, ane human rights activist. Meŋ na paale a May 2019, o da toŋɛɛ Secretary General ko a Movement ko a Liberation naŋ be a Congo (MLC) political party. <ref name=":0">https://web.archive.org/web/20201002115916/https://www.digitalcongo.net/article-en/5cdc1dd2ae00cc0004adfe15/</ref>O e la a Deputy Prime Minister ane Minister ko a Environment yi a 2021.<ref>https://actualite.cd/2021/04/12/rdc-eve-bazaiba-vice-premier-ministre-en-charge-de-lenvironnement-et-developpement</ref> == Pampana Nyɔvooroŋ ane ganzanne == Ève Bazaiba dɔgebo zie la 12 August 1965 a Stanleyville (zenɛ bebiri naŋ e Kisangani), naŋ be a Democratic Republic naŋ e Congo<ref>https://en.m.wikipedia.org/wiki/%C3%88ve_Bazaiba#CITEREFMazanza_Kindulu2015</ref>. O zanɛɛ Latin ane Philosophy a Bosangani High School (Lycée Bosangani), naŋ be Kinshasa kyɛ baŋ gaa Cardinal Malula University, meŋ naŋ be Kinshasa, a baara neŋ Bachelor of International Relations degree.<ref name=":1">https://web.archive.org/web/20070706050622/http://www.congokulture.net/fem-eva-bazaiba.html#selection-1299.41-1299.148</ref> A 2010 Bazaiba da nyɛ la law degree yineŋ a Protestant University naŋ be Congo. == Toma == A 1988, Bazaiba da e la activist ko a Union kyaare Democracy ane Social Progress (UDPS) political party, naŋ taa yiibu a Étienne Tshisekedi. Ba da nyɔge o la gbɛɛ gyamaa a regime of Mobutu Sese Seko, imprisoned a pɔge o gbɛre anaare a regime of Laurent-Desire Kabila kyɛ meŋ da sued yi a government of Joseph Kabila kyaare corruption naŋ be a mining industry. A 2002, o da paale la a Sun City talks naŋ da piili a transitional government naŋ da de wederoŋ a 2006 vootu a Third Republic. A o party, naŋ e UDPS boycotted the elections, o da sɔre la Étienne Tshisekedi ane. party leadership ka ba nyɛ a waiver to contest. <ref>https://archive.today/20130701223924/http://www.liberation.fr/monde/010156080-en-rdc-avec-candidate-256-en-campagne-a-kinshasa</ref>A 2007, ba da vootu iri o la, a Senate a da e memba ko a Movement ko a Liberation naŋ be Congo MLC) political party, ka ( wederɛ da e Kinshasa Provincial Assembly.<ref>https://web.archive.org/web/20080705175435/http://www.digitalcongo.net/article/40400</ref> O naŋ da toŋ five-year term, o da e la president (chairperson) ko a socio-cultural commission naŋ be National Assembly kyaare a Democratic Republic of Congo. O e la advocate ko a human rights na kyaare women ane vulnerable groups.<ref name=":2">https://www.revue-internationale.com/2013/03/francophonie-portraits-de-deux-femmes-engagees/</ref> A 2011–2016 legislative session o da maale la bill naŋ kyaare special protections ko disabled persons. O naŋ la leɛ re-introduced a bill a 2019. <ref>https://web.archive.org/web/20250327190537/http://www.latempete.info/39508-2/</ref>A 2019, o da tona la Secretary General ko a MLC.<ref>https://www.crisisgroup.org/africa/central-africa/democratic-republic-congo/b140-dr-congo-bemba-earthquake</ref><ref name=":0" /> == Yiri Yele == Baizaba taa la serɛ neŋ biiri.<ref name=":1" /> == Tonnɔɛ Mine == Eva Baizaba la a president ko a League of Congolese Women kyaare a vootu (LIFCE).<ref name=":2" /> ==Meŋ kaa kyɛ== * [[Félix Tshisekedi]] * [[Jean-Pierre Bemba]] * [[Acacia Bandubola Mbongo]] == Toma mine yizie == {{refbegin}} * {{cite book| last = Mazanza Kindulu| first = Joseph-Roger| title = Les femmes dans l'espace décisionnel congolais| publisher = Editions L'Harmattan| date = 2015| language = French| url = https://books.google.com/books?id=GH9OCgAAQBAJ| isbn = 9782336388915}} {{refend}} == Sommo Yizie == t998c11gn7qjt3s00elrgp94h9e1yft Ethiopian International Film Festival 0 7152 61863 61658 2026-06-24T09:54:38Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61863 wikitext text/x-wiki A '''Ethiopian International Film Festival''' ('''EIFF''') e la yuoni zaa Ethiopian sini tigiri naŋ maŋ di a November a Addis Ababa poɔ. A tigiri da piili la a yuoni 2005 poɔ ka Linkage Arts Resource Center (LARC) da maale ka o wuli kyɛ zɛge a Ethiopian ane African sini.<ref>https://books.google.com/books?id=i_BMEAAAQBAJ&dq=ethiopian+international+film+festival&pg=PA116</ref> <ref>https://addisfortune.net/columns/the-89th-academy-awards/</ref> == Dakoroŋ ane piiluu == A 2004, a noba naŋ da maale Uganda's Amakula Internationa sini tigiri yɛleteɛ la a Yirgashewa Teshome ka ba de a tigiri ŋa gaa ne ba ziiri naŋ poɔ a Ethiopian a tendaazaa sini tigiri. A 2005, a tigiri dɛndeɛnsoba da di la Imperial Hotɛle poɔ ane sini ba naŋ maale ba teŋɛ yoŋ poɔ ka ba ŋmɛ a kyakya. A noba naŋ da nyɛ zunuo la ''Hermela'' (ሔርሜላ) (2005) ka Yonas Birhane Mewa , ''Kibrenek'', ane (''Gudifecha/Adoption) (''ጉዲፈቻ) a 2002 naŋ e nɔntaa laare sini ka Tatek Tadesse maale. Noba bayi naŋ da nyɛ a zunuo ba da boɔle ba la ka ka areko a Ethiopia a Amakula tigiri, ka ba koba LARC a dɛndɛnsoba kpeɛbo tɔna ko a tendaazaa sini tigiri. A ŋaa da vɛŋ la ka ba baŋ lɛ ba naŋ na baara a Ethiopian International Film Festival (EIFF).<ref>https://soas-repository.worktribe.com/output/366567/toolkit-ethiopia-and-amharic-cinema</ref><ref>https://brill.com/view/journals/mata/41/1/article-p453_27.xml</ref><ref name=":0">https://api.semanticscholar.org/CorpusID:186252129</ref> Ba naŋ wa tara a tigiri diibu anaare soba a yuoni 2009 poɔ, EIFF da.maane la o yaaroo naŋ seŋ lɛ, ka ba wuli sini 64 naŋ tenne 23 a bebie anii na poɔ kyɛ waane kyɔɔtaare 14 ziiri ka ba da maale a Ethiopian siniaale soŋ: noba naŋ lantaa maale sini soŋ, sɛgebo soŋ sini, sini ŋmaa soŋ, donni sini soŋ, neɛ naŋ maale soŋ, tiivi poɔ saabo soŋ, efuoni ŋmaara soŋ, dɔɔ naŋ deɛ soŋ, pɔge naŋ deɛ soŋ, dɔɔ naŋ soŋ deɛ soŋ, pɔge naŋ soŋ deɛ soŋ, nimie peɛmɛ soŋ, bonsuuri soŋ nyɔvore yɛlɛ yeleree kyɔɔtaare ane kaareba yelboɔraa kyɔɔtaare.<ref>https://web.archive.org/web/20251230070524/https://ethiopianfilminitiative.org/news/34-rotator/177-the-4th-ethiopian-international-film-festival-eiff</ref> A 7th Ethiopian International sini tigiri da di la Addis Ababa a yi 26 November te ta 2 December 2012. A yelzu ko a tigiri da la "Many Dreams, One Vision" ba kuri la a yelzu ŋa ka o kyaare ne a yuomo 50 ko a African Union yikpoŋ a Addis Ababa. Ba naŋ da wa yeli a ka noba wa poɔ a a tigiri ŋa a FM waalensi ane sommeŋɛ duoro gama poɔ, sini naŋ yi Africa, Europe, Asia, North ane South America da wa la a wa poɔ a tigiri ŋa poɔ. A tigiri AMA Art Moves Africa, Hubert3 Balls Fund, Cinema Mondial Tour & Jan Vrijmann<ref name=":0" /> la da soŋ ne libie. A kyɔɔtaare ta tere ta la awai ka ana la: maale soŋ, noba naŋ lantaa maale sini soŋ, sini sɛge soŋ,enfuoni ŋmaara soŋ, pɔge naŋ deɛ soŋ, dɔɔ naŋ deɛ soŋ, pɔge naŋ soŋ deɛ soŋ, dɔɔ naŋ soŋ deɛ soŋ ane kaareba yelboɔraa kyɔɔtaare.<ref name=":0" /> A o 10th EIFF tigiri da taa sini 100, sini ŋmaara, sellɛ,yelyaga sɛgebo donni sini pampana sini a ko a tendaazaa.<ref>https://web.archive.org/web/20230705210553/https://ethiopianfilminitiative.org/index.php?option=com_content&view=article&id=470:the-ethiopian-international-film-festival&catid=68&Itemid=113</ref> A 2024, ''Doka'' ''ka'' Kidist Yilma maale da la a neɛ naŋ nyɛ zunuo kpoŋ a tigiri poɔ. O da de la a kyɔɔtaare naŋ e a noba lantaa maale sini soŋ, tiivi zu sini soŋ, ( Kidist Yilma ane Beza Hailu) ane sini maale ennɛ soŋ. A 2025, tigiri da maale la o yuomo 20 o naŋ di.<ref>https://tvbrics.com/en/news/20th-ethiopian-international-film-festival-concludes-in-addis-ababa/</ref><ref>https://ethiopianreporter.com/148188/</ref> == Sommo yizie == 3sg658r8npn8j3vrfnqitovbe4d9o1x Delphic Games of the modern era 0 7154 61861 61667 2026-06-24T09:02:10Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61861 wikitext text/x-wiki {{Databox|item=Q1184697}} '''Delphic Games of the modern era''' da paalɛɛ a presentations, exhibitions, competitions ane tonnɔɛ mine naŋ be a six different fields of [[art]].<ref>{{Cite web|url=http://www.delphic-games.com/downloads/flyeruk.pdf|title=The Delphic Games of the modern era|access-date=2010-09-22|archive-url=https://web.archive.org/web/20110709012218/http://www.delphic-games.com/downloads/flyeruk.pdf|archive-date=2011-07-09|url-status=dead}}</ref> Ba da nyɛɛ daanoo yi Delphic Games ko ancient Greece. == Historical reference == [[Duoro_kɔre:Mousai_Helikon_Staatliche_Antikensammlungen_Schoen80_n1.jpg|left|thumb|218x218px|A [[Muse]] with [[Kithara]] on Mount [[Mount Helicon]], [[Achilles Painter]] (at 440-430 BC), State collections of antiquities [[Munich]], [[Germany]]]] [[Duoro_kɔre:Delphi_charioteer_front_DSC06255.JPG|thumb|295x295px|Statue of a charioteer (at 478-474 BC), Archaeological Museum [[Delphi]], [[Greece]]]] Boŋyeni yi a Panhellenic Games anaare da la a Pythian Games na be a Delphi. A maŋ taa eebo yuomo anaare zaa, o taa la athletics, theatre, music, poetry, ane painting ka ba daane a Apollo ŋmemɛ, a bondemannewullaa ko Oracle.<ref>[http://www.britannica.com/EBchecked/topic/485272/Pythian-Games Pythian Games], ''[[Encyclopædia Britannica]]''</ref> A yuoni ko a 394 A.D., Theodosius I, a emperor ko a Byzantine Empire da pɔgɛɛ a Panhellenic Games ka a paale a pagan events. Yi a 1912 te tɔ a 1948, kyaare a tonnoɔre ko Pierre de Coubertin, art competitions kyaare a Summer Olympics da taa la eebo ko teŋgyamaa. Medals da eɛ kyɔɔtaa ka ba da de ko a toma kyaare a sport.<ref>''Richard Stanton.'' The forgotten Olympic art competitions — The story of the Olympic art competitions of the 20th century. Trafford Publishing, 2001. {{ISBN|1-55212-606-4}}</ref> Yel-erre mine da bebe kyaare leɛkaabo ko a Pythian Games a archeological site a Delphi, na e a tonnoɔre yi a Greek poet Angelos Sikelianos<ref>{{Cite web|url=http://www.salamina-online.com/aggelos_sikelianos.htm|title=Aggelos Sikelianos|access-date=2010-04-06|archive-url=https://web.archive.org/web/20100216161053/http://www.salamina-online.com/aggelos_sikelianos.htm|archive-date=2010-02-16|url-status=dead}}</ref> ko a o pɔge Eva Palmer. A 1927, a dɛndɛŋ Delphic Tigiri da taa la diibu a Greece, k'a leɛkaabo da ba toɔ taa eebo. Beri ama poɔ ba maŋ taa la Delphi Tigiri, naŋ gaa tɔgele a Panhellenic counterparts. Ba taa la religious rituals ane tonɔɛ mine teseŋ poetry competition, religious offerings, sports ane course feasting.<ref>[http://www.greeka.com/sterea/delphi/delphi-festivals.htm Information about the Festivals of Delphi Greece]</ref> [[Duoro_kɔre:DF-1927_copy.jpg|thumb|233x233px|Poster of the Delphic Festival, 1927]] A 20th century yuoni sogaŋ, eebo kaŋa da la bebe la kyaare a Delphic Games leɛkaabo. Yi a 1990s, wederebe yi Argentina, Austria, China, Cyprus, Ecuador, France, Germany, Greece, Kazakhstan, Libya, Lithuania, Mexico, Nigeria, Philippines, Poland, Russia, Slovakia, ane a United States da laŋɛɛ taa maale a First International Delphic Games, naŋ da e a 2000 a Moscow, Russia (ba naŋ da na e a lɛ, a yelzu da taa la peɛroo yi Tbilisi, Georgia, be la a dɛndɛŋ Junior Delphic Games da taa eebo.) == Sommo Yizie == {{reflist|30em}} == Ziiri mine liŋkiri == * [http://www.delphic-games.com/ The official site of the IDC Berlin (Council)] * [https://web.archive.org/web/20110709011840/http://www.delphic-games.com/english/03games/chronology.htm Chronology of the Delphic Games (according to IDC Berlin)] * [https://web.archive.org/web/20120114112708/http://delphic-media.com/link__www_artsight_de_.html Delphic-Media] {{Webarchive|url=https://web.archive.org/web/20120114112708/http://delphic-media.com/link__www_artsight_de_.html|date=2012-01-14}} * [http://www.idcworld.org The official site of the IDC Moscow (Committee)] * [http://delphic.ru/menu/gmap.asp?0402 Chronology of Delphic Games (according to NDC Russia)] 1n8cl9afazq2oat744rf1vr95c5e8ku Dhaka International Film Festival 0 7174 61854 61731 2026-06-23T22:31:42Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61854 wikitext text/x-wiki '''Dhaka International Film Festival''' (Bengali: ঢাকা আন্তর্জাতিক চলচ্চিত্র উৎসব) e la yuoni ayi zaa tigiri naŋ maŋ di a Dhaka, Bangladesh piɔ. O da piili la a yuoni 1992, a tigiri pilluu o da maŋ di la yuoni zaa kyɛ leɛ wa diri yuomo ayi poɔ a 1995 poɔ. DIFF e la a sini tigiri kpoŋ kaŋa a Bangladesh poɔ , ka ba boɔrɔ ka ba poɔ tendaazaa sini a ko ba naŋ naŋ maale ba yiri sini kyɛ vɛŋ ka a baara ne ba yipɔge a Bangladesh. A tigiri Ahmed Muztaba Zamal da piili a Rainbow sini Society, naŋ taa a 2022, naŋ tuo maale a tigiri yuomo 20 a vɛŋ ka tendaazaa nyɛ ba. <ref>https://web.archive.org/web/20130808073944/http://www.banglanews24.com/English/detailsnews.php?nssl=7826f1c837ea29fd421a394177b821e6</ref><ref>http://wsimag.com/culture/617-dhaka-international-film-festival</ref><ref>https://web.archive.org/web/20140714185950/http://archive.thedailystar.net/newDesign/news-details.php?nid=206654</ref><ref>https://web.archive.org/web/20140714162546/http://archive.thedailystar.net/newDesign/news-details.php?nid=18536</ref> == Awards ceremonies == A ama naŋ tu e la a Dhaka International sini kyɔɔtaare naŋ di a yi a 1992. {| class="wikitable sortable" !Edition !Dates !Best Film !Best Director !Notes !Sources |- |1st |1992 | | | | |- |2nd |1993 | | | | |- |3rd |1994 | | | | |- |4th |1995 | | | | |- |5th |1997 | | | | |- |6th |January 20–28, 2000 |''A Scam in Verse'' |no award | | |- |7th |January 20–28, 2002 |''Future Diary: The Movie'' |no award |screened 100 films of 19 countries | |- |8th |January 15–23, 2004 |''Sulang Kirilli'' (''The Wind Bird'') |Anwar Jamal for ''Swaraaj'' (''The Little Republic'') |screened 100 films from 25 countries | |- |9th |January 17–25, 2006 |''Café Transit'' |Sekhar Das for ''Krantikaal'' |screened 150 films of 30 countries | |- |10th |January 10–18, 2008 |''Kargaran Mashgoul-e Karand'' (''Men at Work'') |no award |screened 31 films | |- |11th |January 14–22, 2010 |''The Other Bank'' |Mostofa Sarwar Farooki for ''Third Person Singular Number'' | | |- |12th |January 12–20, 2012 |no award |Sinan Çetin for ''Paper'' |screened 200 films from 55 countries | |- |13th |January 10–18, 2014 |no award |Parviz Shahbazi for ''Trapped'' |screened 150 films from 50 countries including the first film entirely in Chakma language, ''Mor Thengari'' | |- |14th |January 15–23, 2016 |''A Few Cubic Meters of Love'' |Tom Waller for ''The Last Executioner'' |screened 184 films from 60 countries | |- |15th |January 12–20, 2017 |''Daughter'' |Parviz Shahbazi for ''Malaria'' |screened 188 films from 67 countries | |- |16th |January 11–21, 2018 |''Zer'' |Onur Saylak for ''Daha'' |screened 216 films from 64 countries | |- |17th |January 10–18, 2019 |''Darak yry'' |Pooya Badkoobeh for ''Dressage'' |screened 218 films from 72 countries | |- |20th |January 15-23, 2022 |''Pebbles'' |Sujit Bidari for ''Butterfly on the Windowpane'' |screened 225 films from 70 countries | |- |21st |January 14-22, 2023 |''Bi-Madar'' |Ali Ghavitan for ''Zendegi va Zendegi'' |screened 252 films from 71 countries | |- |22nd |January 20-28, 2024 |''The Cord of Life'' |Jagath Manuwarna for ''Rahas Kiyana Kandu'' |screened 252 films from 71 countries | |- |23rd |January 11-19, 2025 |''Yakshanba'' |Haofeng Xu and Junfeng Xu for ''Men Qian Bao Di (100 Yards)'' |screened 220 films from 75 countries | |} == Meŋ la nyɛ == * Dhaka Festival * Cinemaking International Film Festival * Kolkata International Film Festival * Hyderabad Bengali Film Festival * National Film Awards (Bangladesh) * Meril Prothom Alo Awards * Babisas Award * Ifad Film Club Award == Sommo yizie == # 0bne3uoqhgr1eacpt7gqkqfa8ih2ytq International Delphic Council 0 7176 61857 61747 2026-06-23T23:59:48Z InternetArchiveBot 38 Rescuing 4 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61857 wikitext text/x-wiki {{Databox|item=Q1570976}} [[Duoro_kɔre:Delphi_temple_of_Apollo_dsc06283.jpg|thumb|200x200px|[[Delphi]], the ruins of the [[Apollo]] Temple, in whose honor the [[Pythian Games]] were held]] '''International Delphic Council''' (IDC) e la a bone na ba yire libie, charitable, non aligned, non-sectarian & non-someŋɛ toma (NGO), a tonzikpoŋ na be a Berlin, Germany. O da piilee a e League neŋ 20 Nations a 1994 a Berlin ka ba leɛ kaa a '''Delphic Games a Modern Era''',<ref>{{Cite web|url=http://www.delphic.org/english/04idc/idc.htm|title=The International Delphic Council (IDC)|access-date=2010-05-21|archive-url=https://web.archive.org/web/20110724215851/http://www.delphic.org/english/04idc/idc.htm|archive-date=2011-07-24|url-status=dead}}</ref> kyɛ a naŋ wuli ka kpaaroŋ kaŋa meŋ naŋ bebe, [[International Delphic Committee]], tonzikpoŋ zie na be Russia, da taa la piiluu ko a Russia NDC a da taa pommu yi a international Delphic Council a 2000 yuoni a da tona a CIS irigyin poɔ. == Tutaaloŋ Kyaare A International Delphic Games == [[Duoro_kɔre:Dancers_moskow_2000.jpg|thumb|200x200px|The first Delphic Games were held in 2000 in [[Moscow]], [[Russia]] with the motto: 'New Millennium". Shan Chong and Wang Lie ([[China]]). An award for artistic achievement in contemporary dance]] [[Duoro_kɔre:Orchestra_duesseldorf_2003.jpg|left|thumb|200x200px|The second Junior Delphic Games was held in 2003 in [[Düsseldorf]], [[Germany]]. State Youth Symphony Orchestra from [[Belarus]].]] [[Duoro_kɔre:Competition_baguio_2007.png|left|thumb|152x152px|The third Junior Delphic Games was held in 2007 in [[Baguio]], [[Philippines]] with the motto: 'building bridges with arts & cultures for our children's future'. Acoustic art competition, percussion]] [[Duoro_kɔre:Parade_jeju_2009.gif|thumb|152x152px|The third Delphic Games 2009 was held in 2009 in [[Jeju island]], [[South Korea]] with the motto: 'in tune with nature'. Parade at the streets]] A IDC, da laŋɛɛ adult ane junior Delphic Games yuomo anaare zaa - yuomo ayi tɔɔreŋ a kaŋa zaa poɔŋ teŋyuo mine poɔ. Tenne na naŋ taa teɛre da ŋmɛ la kyakya k'a a deɛne taa eebo a ba teŋɛ kyɛ a da taa la kaabo yi a International Amphictyony teseŋ lɛnɛɛ a IDC sobieŋ na senne a Delphic Games eebo. A Delphic Games po-eŋɛɛ '''Six Delphic Art Categories''', ka a be a sagedeebo ko a international institutions - a Kansil ko Europe, [[UNESCO]] ane ASEAN tenne.<ref>[http://delphic.de/uploads/media/unesco_letter_1997_01.pdf UNESCO letter 1997] {{webarchive|url=https://web.archive.org/web/20110718225618/http://delphic.de/uploads/media/unesco_letter_1997_01.pdf|date=2011-07-18}}</ref><ref>[http://delphic.de/uploads/media/council_of_europe_letter_01.pdf Council of Europe letter 1997] {{webarchive|url=https://web.archive.org/web/20110718225635/http://delphic.de/uploads/media/council_of_europe_letter_01.pdf|date=2011-07-18}}</ref><ref>[http://delphic.de/uploads/media/parlament_of_Georgia_letter.pdf Parliament of Georgia letter 1997] {{webarchive|url=https://web.archive.org/web/20110718225706/http://delphic.de/uploads/media/parlament_of_Georgia_letter.pdf|date=2011-07-18}}</ref><ref>[http://delphic.de/uploads/media/council_of_europe_2000_letter_01.pdf Council of Europe letter 2000] {{webarchive|url=https://web.archive.org/web/20110718225402/http://delphic.de/uploads/media/council_of_europe_2000_letter_01.pdf|date=2011-07-18}}</ref><ref>[http://delphic.de/uploads/media/council_of_europe_2003_01.pdf Council of Europe letter 2003] {{webarchive|url=https://web.archive.org/web/20110718225715/http://delphic.de/uploads/media/council_of_europe_2003_01.pdf|date=2011-07-18}}</ref><ref>[http://delphic.de/uploads/media/unesco_letter_2005_01.pdf UNESCO letter 2005] {{webarchive|url=https://web.archive.org/web/20110718225747/http://delphic.de/uploads/media/unesco_letter_2005_01.pdf|date=2011-07-18}}</ref><ref>[http://delphic.de/uploads/media/president_republic_of_philippines_01.pdf President Republic of Philippines 2007] {{webarchive|url=https://web.archive.org/web/20110718225814/http://delphic.de/uploads/media/president_republic_of_philippines_01.pdf|date=2011-07-18}}</ref> Yi 1997 wagere zaa international Delphic Games ayɔpoi la da taa eebo a - ata ko nembɛrɛ ka anaare meŋ ko a baapaaba. {| class="wikitable" !Year !Event !Location !Theme |- |1997 |the first Junior Delphic Games |[[Tbilisi]] / [[Georgia (country)|Georgia]] |A Day of Dreams |- |2000 |the first Delphic Games |[[Moscow]] / [[Russia]] |The New Millennium |- |2003 |the second Junior Delphic Games |[[Düsseldorf]] / [[Germany]] |Creativity & Peace |- |2005 |the second Delphic Games |[[Kuching]] / [[Malaysia]] |Revitalising Endangered Traditions |- |2007 |the third Junior Delphic Games |[[Baguio]] / [[Philippines]] |Bridging Arts & Culture for our Children's Future |- |2009 |the third Delphic Games |[[Jeju-si]] / [[South Korea]] |In Tune with Nature |- |2011 |the fourth Junior Delphic Games |[[Johannesburg]] / [[South Africa]] |Provoke, Innovate, Inspire |} === Events === A 14 March 2010 a International Delphic Council da maale la a dɛndɛŋ Delphic Games Festival a Grand Finale Show poɔ a ITB Berlin, A tendaa gbuli zaa exhibition na be a tourism. Ba da taa la Feast ko Delphic Games k'a yelnyɔgeraa da la: «''Arts ane Culture - an experience for all senses''».<ref>[https://web.archive.org/web/20160303195234/http://www.ortodance.ru/files/Delphic%20Games%20Celebration%20at%20ITB%20Berlin.pdf The IDC at the ITB Berlin. The Feast of Delphic Games - March 14th 2010] {{webarchive|url=https://web.archive.org/web/20120303163936/http://www.ortodance.ru/files/Delphic%20Games%20Celebration%20at%20ITB%20Berlin.pdf|date=2012-03-03}}</ref> A kpaaroŋ ŋa da taa la yitaaloŋ neŋ a UNESCO yelnyɔgeraa na: «2010 - Tendaa zaa yuoni kyaare a leɛkaabo ko saakonnoŋ».<ref>{{Cite web|url=http://www.peeep.us/0475af94|title=Document UNESCO-2010, INTERGOVERNMENTAL ORGANIZATIONS (IGO), page 19 - International Delphic Council|access-date=2010-04-21|archive-url=https://web.archive.org/web/20120306000735/http://www.peeep.us/0475af94|archive-date=2012-03-06|url-status=dead}}</ref> Saama ane exhibitors da taa la vuo ka ba di a Delphic Games tigiri ŋa a Grand Finale Show ko ITB Berlin a 2010.<ref>''Oliver Heilwagen''. [https://web.archive.org/web/20120306000742/http://www.peeep.us/e30b5bc0 Delphi goes Dancefloor] {{Webarchive|url=https://web.archive.org/web/20120306000742/http://www.peeep.us/e30b5bc0|date=2012-03-06}} 22.03.2010</ref> {| class="greytable" |+'''Diibu ko a Delphic Games –''' '''Grand Finale ko a ITB Berlin 2010''' | rowspan="2" align="center" width="35%" |[[Duoro_kɔre:Itb2010_kazakhstan_musicians.jpg|center|thumb|200x200px|Music ethnic group «Beles». Traditional melodies ([[Kazakhstan]])]] | width="2%" | | rowspan="2" align="center" width="29%" |[[Duoro_kɔre:Itb2010_german_pipeband.jpg|center|thumb|200x200px|Ensemble «Rhine Power Pipe Band» ([[Germany]]). Scottish music]] | width="2%" | | align="center" |[[Duoro_kɔre:Itb2010_korean_dancers.jpg|center|thumb|200x200px|Music group «Sound of Korea». Folk songs and dances ([[South Korea]])]] |- | |} Yele meŋ la paa a Delphic Games Festival diibu ko a ITB Berlin a 2011, tendaa zaa kyakya kyaare a yelsɛgebinnii ŋmaara mine zuiŋ - a Delphic Art Movie Award 2011 da taa la eebo. A ŋaa da taa la eebo yi a International Delphic Council.<ref>{{Cite web|url=http://www.newsmax.de/aufruf-zum-wettbewerb-um-den-delphic-art-movie-award-2011-dama-2011-news43415.html|title=Delphic Art Movie Award 2011|access-date=2010-10-31|archive-url=https://web.archive.org/web/20110719065702/http://www.newsmax.de/aufruf-zum-wettbewerb-um-den-delphic-art-movie-award-2011-dama-2011-news43415.html|archive-date=2011-07-19|url-status=dead}}</ref><ref>{{Cite web|title=Aufruf zum Wettbewerb um den DELPHIC ART MOVIE AWARD 2011 (DAMA 2011) - openPR|url=https://www.openpr.de/news/450780/Aufruf-zum-Wettbewerb-um-den-DELPHIC-ART-MOVIE-AWARD-2011-DAMA-2011.html|access-date=2020-12-29|website=www.openpr.de|date=23 July 2010|language=de}}</ref><ref>[https://web.archive.org/web/20110726094959/http://social.un.org/absolutewc/?e=566&c=0 Hosted by the International Delphic Council] {{webarchive|url=https://web.archive.org/web/20110726094959/http://social.un.org/absolutewc/?e=566&c=0|date=2011-07-26}}</ref> == Format ko a Delphic Games na be a Modern Era == === Delphic Arts ane saakonnoŋ kategɔɔre === A International Delphic Council (IDC) ane a hosting Nation's National Delphic Council (NDC) da pɔgɛɛ taa a iri a kyɔɔtaɛ yi a Delphic arts categories ayoɔbo poɔ ko a Delphic Games deɛne kaŋa zaa. Sub-categories ane Genres paa da taa la paabo neŋ a teŋɛ kaŋa zaa ane o kyakya ŋmereba tomaŋ. * '''Musical Arts & Sounds''' (i.e. Singing, instrumental, electronic sounds ...) * '''Performing Arts & Acrobatics'''(i.e. Dance, theater, circus ...) * '''Language Arts & Rhetoric''' (i.e. Literature, lectures, moderation ...) * '''Visual Arts & Crafts''' (i.e. Painting/graphics, sculpture/installation, photography/film, architecture, design, fashion, handicraft ...) * '''Social Arts & Communications''' (i.e. Communication, internet, media, pedagogic, didactic ...) * '''Ecological Arts & Architecture'''(i.e. Landscape and city planning, preservation and conservation of nature, buildings, memorials and monuments ...) === Expert Jury === A kyakya ŋmereba da wulee a ba toma kyaare a saakonnoŋ bee pampana ŋa deɛne kaama a na vɛŋ a ennyagere kaŋa bebe a deɛnoo poɔ. Independent artistic ane technical experts kyaare a deɛne ane bammo da taa la iribu a Games organising Committee poɔ a tendaa zaa poɔ ka ba soŋ toŋ a toma kyaare a kyɔɔtaa diribe. === Delphic Games kyɔɔtaɛ === A yelkpoŋ zaa na e a tɔnɔ a Games poɔ la a artistic competitions, presentations ane exhibitions. Exceptional artists da taa la kyɔɔtaɛ sonne a International Delphic Games teseŋ: * '''Delphic Medals Award'''- gold, silver ane bronze kyaare a comparable Delphic art categories. * '''Delphic Lyre Award''' - exceptional artistic yoŋ yoŋ tomaŋ kyaare a arts * '''Delphic Laurel Award''' - Toŋkopŋ toma yoŋ ane tontonneba bana toma na ba taa manne taa. * '''Delphic Certificate''' - ko tontonneba bana na taa nimizeeloŋ neŋ a toma. == IDC ane NDC Russia == Russia da la a piiluu kaŋa ko a International Delphic Movement a 1994, neŋ a 19 Nation sere mine.<ref>''L. Wartazarowa.''. [https://web.archive.org/web/20120307025241/http://www.greek.ru/news/news_detail.php?ID=677 Delphic Movement - bet on the youth] {{Webarchive|url=https://web.archive.org/web/20120307025241/http://www.greek.ru/news/news_detail.php?ID=677|date=2012-03-07}} // Greek.ru. — 21 мая 2003</ref> A 2003 puoriŋ, Russian websites gyamaa zie ane a central mass media da yeli ka Russia yoŋ la da taa a leɛ-kaabo kyaare a Delphic yelzu a 2000.<ref>''Oleg Dzüba.''. Oblivion and the revival of traditions. // «Парламентская газета» — 24 апреля 2008</ref> Neŋ a National Delphic Council iri baroo a International Delphic Council poɔŋ gba, a Russian noba ba naŋ da toŋ a International Delphic Games a 2007 ane 2009.<ref>''Маrina Chernyavskaya''. [http://www.art-education.ru/AE-magazine/archive/nomer-2-2008/chernavskaya/chernayskaya_03_05_2008.htm Delphic Games of the modern era] {{Webarchive|url=https://web.archive.org/web/20131021075657/http://www.art-education.ru/AE-magazine/archive/nomer-2-2008/chernavskaya/chernayskaya_03_05_2008.htm|date=2013-10-21}} //«Педагогика искусства» Москва, № 2 2008</ref><ref>''Маrina Chernyavskaya''. [http://www.art-education.ru/AE-magazine/archive/nomer-4-2009/chernyavskaya_30_11_2009.pdf Delphic Games - yesterday, today and tomorrow] {{Webarchive|url=https://web.archive.org/web/20110904094722/http://www.art-education.ru/AE-magazine/archive/nomer-4-2009/chernyavskaya_30_11_2009.pdf|date=2011-09-04}} //«Педагогика искусства» Москва, № 4 2009</ref> Ba da wuli k'a Delphic calendars da peɛre a kyɛpkyɛllebɛ bama.<ref name="delphic.de">''Delphic calendar 2009''. [http://delphic.de/uploads/media/calendar_2009_03.pdf Delphic Greetings from Baguio City to Jeju] {{webarchive|url=https://web.archive.org/web/20110718225008/http://delphic.de/uploads/media/calendar_2009_03.pdf|date=2011-07-18}}</ref> <ref name="ReferenceA">''Delphic calendar 2010''. [http://delphic.de/fileadmin/user_upload/Kalender/delphic_calendar_2010.pdf Delphic Games in Jeju. Impressions in drawings] {{webarchive|url=https://web.archive.org/web/20110718224731/http://delphic.de/fileadmin/user_upload/Kalender/delphic_calendar_2010.pdf|date=2011-07-18}}</ref> == Sinii sere == * [https://www.youtube.com/watch?v=g_0mUCWwkcw&feature=player_embedded Die Delphischen Spiele 1994 - 2007] * [https://www.youtube.com/watch?v=nKAFmZCXMN0&feature=player_embedded Die ersten Delphischen Jugendspiele 1997, Tiflis / Georgien] * [https://www.youtube.com/watch?v=yjLdE1T1VlY&feature=player_embedded Die ersten Delphischen Spiele 2000, Moskau / Russland] * [https://www.youtube.com/watch?v=UKA8yYSQW1c&feature=player_embedded Die zweiten Delphischen Jugendspiele 2003, Düsseldorf / Deutschland] * [https://www.youtube.com/watch?v=jDj7fEToZYo&feature=player_embedded Die zweiten Delphischen Spiele 2005, Kuching / Malaysia] * [https://www.youtube.com/watch?v=OaN_nwPHIGw&feature=player_embedded Die dritten Delphischen Jugendspiele 2007, Baguio City / Philippinen] * [https://www.youtube.com/watch?v=lkKAUEpFDA4 Die dritten Delphischen Spiele 2009, Jeju-si / Süd Korea] == Sommo Yizie == {{reflist|33em}}https://www.indelphic.org/ == Ziiri mine liŋkiri == {{Commons category|International Delphic Council}} * [http://www.delphics.org International Delphic Council] bb1y0o1tzzt65h8ycydtb2wkz6ogyz5 Ökofeszt 0 7180 61860 61756 2026-06-24T05:22:35Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61860 wikitext text/x-wiki {{Databox|item=Q8078926}} A '''Ökofeszt''' bee '''Ecofest''' da e la tigiri naŋ be a eco friendly ideas na be a Hungary. A dɛndɛŋ Ökofeszt da taa la diibu a Védegylet ane Zöld Fiatalok ane a da taa diibu a15 ane 16 April 2005 a Budapest.<ref>{{cite web|url=http://zofi.hu/%C3%B6kofeszt|title=Ökofeszt Zöld Fiatalok|publisher=zofi.hu|date=5 April 2005|accessdate=30 June 2012}}</ref><ref>{{cite web|url=http://est.hu/cikk/32052|title=Ökofeszt|publisher=est.hu|date=1 April 2005|accessdate=30 June 2012}}</ref> A yelnyɔgeraa ko a ''Politics Can Be Different'' na da taa piiluu a eponymous politikal paati 2009. Politics Can Be Different a da di a kogo neŋ a National Assembly a 2010 palamɛte kyakya .<ref>{{cite web|url=http://english.lehetmas.hu/|title=Ökofeszt|publisher=lehetmas.hu|date=30 June 2012|accessdate=30 June 2012}}</ref> A tigiri yelnyɔgeraa la environmental protection, sustainable development ane zɔɔre kyaare nannyigiluu ko Hungarian political elite. A public face ko a paati la [[András Schiffer]], naŋ da yeli yɛlɛ ko a Ökofeszt a 2005 a meŋ da e mɛmba ko s Hungarian Civil Liberties Union. == Kɔmmo == {| class="wikitable" !Year !City !Performer |- |2005<ref>{{cite web|url=http://zofi.hu/%C3%B6kofeszt|title=Ökofeszt Zöld Fiatalok|publisher=zofi.hu|date=5 April 2005|accessdate=30 June 2012}}</ref> |Budapest | * [[András Schiffer]] (ex-[[Member of Parliament|MP]] of Politics Can Be Different) * [[László Majtényi]] (lawyer) * [[István Elek]] (writer) * [[Péter Rauschenberger]] (philosopher) * [[András Lányi (writer)|András Lányi]] (writer) |} == Deɛne == {| class="wikitable" !Year !City !Performer |- |2005<ref>{{cite web|url=http://zofi.hu/%C3%B6kofeszt|title=Ökofeszt Zöld Fiatalok|publisher=zofi.hu|date=5 April 2005|accessdate=30 June 2012}}</ref> |Budapest | * Kaukázus * [[Besh o droM|Besh o drom]] * Fakutya táncház * [[Dawnstar (band)|Dawnstar]] * Tanu Tuva * Egy Kis Erzsi Zene |} == Sommo YIzie == {{Reflist|30em}} == Ziiri mine liŋkiri == * [https://web.archive.org/web/20150123015159/http://zofi.hu/%C3%B6kofeszt Ökofeszt Official Site] gco2mhtjcji03pbtcrcqjsyjhdcsrkq World Festival of Clowns in Yekaterinburg 0 7183 61849 61764 2026-06-23T14:37:04Z Jacques Ballieu 1785 /* About */ 61849 wikitext text/x-wiki {{Databox|item=Q20203401}} '''A World Festival of Clowns na be a Yekaterinburg''' e la tendaa zaa yuoni zaa clownery, na maŋ taa eebo a Yekaterinburg, Russia, yi 2008 wagere zaa. A organizers ko a tigiri ŋa la a People's artist ko Russia Anatoly Marchevsky ane People's artist ko Russia Alexander Kalmykov.<ref>Ланкина. Ю. Всемирный фестиваль клоунов. 2009. - С.3. - 38 стр</ref> == About == A tigiri yelnyɔgeraa la:<ref>Clowns from all over the world at the [[Yekaterinburg Circus]] Festival - http://rbth.com/news/2013/11/14/clowns_from_all_over_the_world_at_the_yekaterinburg_circus_festival_31711.html)</ref> * Saakonnoŋ arekoobo: noba naŋ be a tendaa zaa maŋ laŋɛɛ taa a tigiri ŋa: Germany, France, Italy, Spain, the US, China, Ukraine, Peru, Belarus, a Netherlands, Russia, Hungary, Denmark, Switzerland, Brazil, [[Belgium]], Israel, Canada, etc. * Tendaa zaa yeltare arekoobo kyaare saakonnoŋ ane deɛne yeltare; * A clown, mime, writer leɛ teɛre taa ane clown character "sad clown saane maaloo", People's Artist ko Armenian SSR - Leonid Yenghibarov. == Organising committee == A World Festival ko Clowns maŋ taa la kyɔɔroŋ yi Honoured Artist ko Russia Boris Vazhenin, People's artist ko Russia Anatoly Marchevsky ane People's artist ko Russia Alexander Kalmykov. == Periodicity == A World Festival ko Clowns e la yuoni zaa bone na maŋ taa diibu yi 2008 wagere zaa. {| class="wikitable" !Festival name !Year !Days !Participants |- |The 1st World Festival of Clowns in Yekaterinburg |2008 |April, 5-9 |[[David Larible]], David Shiner, Monty Clowns, Olivier Takwin and Olivier Deshavu, Sergey Prosvirnin and Sergey Yeroshenkov, Clown ˈBoˈ - Boris Oskotsky, Clowns Mick and Muck, Ruslan Marchevsky, acrobats ˈBrave Firefightersˈ etc. |- |The 2nd World Festival of Clowns in Yekaterinburg |2009 |November, 19-22 |Peter Shub, Housh-ma-Housh, Scott & Muriel, Los Rivelinos, Nikolai Yashukov, Nikolay Yermakov, Alexandra & Gavriil Sedovs, Adrey Dementyev-Kornilov etc. |- |The 3rd World Festival of Clowns in Yekaterinburg, in memory of Leonid Yenghibarov |2010 |November, 25-28 |Comic group Starbugs, Comic acrobats duo Los Manducas, Galina & Sonny Hayes, Clown May - People's artist of Russia Yevgeniy Maykhrovsky, Armen Asiryants, Clown Kharry - Igor Yashnikov, Anna Oprea - Human Slinky, Theatre Circus Ale Hop etc. |- |The 4th World Festival of Clowns in Yekaterinburg in memory of Yury Nikulin |2011 |November, 25-28 |Rob Torres, Zementovs, BonBon & Tina, Willer Nikolodi, Ildar Muhametzhanov & Ruslan Marchevsky, Davis Vassalo, Mayorovs etc. |- |The 5th World Festival of Clowns in Yekaterinburg |2012 |November, 22-25 |Housh-ma-Housh, Clown Henry (Brazil), Clown Barto, Le Rossyanns, Mik & Mak, Willer Nikolodi, Sergey+Sergey Prosvirnins, Daniel (Isrsael) etc.<ref>{{cite web|title=A gathering of clowns in Yekaterinburg, Russia|url=http://asiajourney.net/article/gathering-clowns-yekaterinburg-russia|publisher=Asian Journey|accessdate=9 September 2015|date=August 17, 2012}}</ref> |- |The 6th World Festival of Clowns in Yekaterinburg |2013 |November, 14-17 |[[Bello Nock]], Clown Francesco, [[Paul Morocco]] & Ole, Rob Lok, Lieutenanant Schmidt's Grandchildren, Los Revelinos, Jolly Roger |- |The 7th World Festival of Clowns in Yekaterinburg |2014 |November, 27-30 |Andre Astor & Oscar, Cesar Aedo, [[David Larible]], Equivokee, Furmanov brothers, Kai, Rivelinos |- |The 8th World Festival of Clowns in Yekaterinburg |2015 |November, 26-29 |Davis Vassalo, Valentin Urse, Rulo, Popeyto, Willer Nicolodi, Daniel Zafrani, Boris Nikishkin, Pavel Boyarinov |- |The 9th World Festival of Clowns in Yekaterinburg |2016 |November, 24-27 |Vik & Fabrini, Henry, Rob Torres, BonBon & Tina, Duet ˈLess Russianˈ, Juma, Boris Oskotsky, Trio ˈWithout Socksˈ, Boris Nikishkin |- |The 10th World Festival of Clowns in Yekaterinburg |2017 |November, 23-26 |[[Bello Nock]], Bella & Alex Sher, Housh-ma-Housh, Rivellino, Bartok, Alexey Bobylev, Mick & Mack, Clown Kharry - Igor Yashnikov |} == Enfuomo == <gallery class="center"> Duoro_kɔre:David_Larible_in_Stuttgart_2013-2.jpg|[[David Larible]] (Italy) Duoro_kɔre:David_Shiner_(Clown).jpg|David Shiner (the USA) Duoro_kɔre:Vik_&_Fabrini_2018_03_(40925998632).jpg|Vik & Fabrini (Brazil) Duoro_kɔre:Bello_Nock.jpg|[[Bello Nock]] (the USA) Duoro_kɔre:Rob_Torres_-_1.jpg|Rob Torres (the USA) Duoro_kɔre:TRUPPE_MAYOROV_Cirkusartisten_aus_Russland_Ukraine_Weissrussland.jpg|Mayorovs (Belarus, Russia, Ukraine) Duoro_kɔre:LES_ROSSYANN_Weisscloun_und_dummer_August.JPG|Duet ˈLess Russianˈ (France) Duoro_kɔre:Clowns_Weltkugel_schwebt.JPG|Francesco (France) </gallery> == Sommo yizie == {{Reflist}} iah02uuns8xh3l871bfpdudl8g8tm12 Ottawa Festivals 0 7184 61858 61766 2026-06-24T02:29:53Z InternetArchiveBot 38 Rescuing 2 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61858 wikitext text/x-wiki {{Databox|item=Q7109171}} '''Ottawa Festivals''', kpaaroŋ kaŋa na taa lammo ko [[Ottawa]], [[Ontario]] Canada, a naŋ sonna tigiri sere na be a Afirika. A da piili a 1996, a kpaaroŋ ŋa da taa la 53 tigiri sere na wulo sakonnoŋ lesiri tɛɛtɛɛ, arts, ane deɛne yeltare a paaloŋ poɔ. == A tigiri deme == * Winterlude * Ottawa Irish Festival * Maple Sugar Festival * Ottawa International Writers Festival - Spring Edition * Victoria Day Festival * Canadian Tulip Festival * Ottawa International Children's Festival * Ottawa Marathon * Carnival of Cultures * Canada Dance Festival * Magnetic North Theatre Festival * Italian Week * Westfest * Festival Franco Ontarien * Ottawa Fringe Festival * Ottawa Dragon Boat Festival * Summer Solstice Aboriginal Arts Festival * TD Canada Trust Ottawa International Jazz Festival * Canada Day Arts Festival * Unisong Canadian Choir Festival * Canada Day * Ottawa Bluesfest * Sound and Light Show on Parliament Hill/Son et lumière * HOPE Volleyball Summerfest * The Great India Festival (formerly, Festival of India)<ref>{{cite web|url=http://www.tgifOttawa.ca|title=TGIF Ottawa – The Great India Festival Ottawa}}</ref> * Ottawa Turkish Festival * Orchestras in the Park * Ottawa International Chamber Music Festival * Ottawa Lumière Festival * Navan Fair * Ottawa Greekfest * Ottawa Folk Festival * SuperEx * Ottawa Reggae Festival * [[Capital Pride (Ottawa)|Capital Pride]] * Capital Vélo Fest * Richmond Fair * Carp Fair * Metcalfe Fair * Fall Rhapsody * Ontario Council of Folk Festivals Conference * Ottawa International Animation Festival * Ottawa International Writers Festival - Fall Edition * Lebanorama * Ottawa Storytelling Festival * Canadian Folk Music Awards * 3i Summit: Imagine - Interact - Inspire * Christmas Lights Across Canada * Festival X * Music and Beyond * South Asian Festival * Summer Fling – A Theatrical Affair! * Latin Sparks Festival == Sommo Yizie == {{Reflist}}2. https://web.archive.org/web/20181211230607/http://www.ottawafestivals.ca/ottawa-411/ 3. https://web.archive.org/web/20190914065902/http://www.ottawafestivals.ca/ottawa-411/other-things-to-do/ 1deg26wbuycnzb8glnv3d5gvva8lgw7 Ariadna's Thread 0 7200 61853 61792 2026-06-23T21:04:02Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61853 wikitext text/x-wiki A '''Ariadna's Thread''' (Russian: Нить Ариадны) e la international tigiri gɔɔloŋ a ko noba naŋ daa yanyaare baaloŋ naŋ maŋ di a Moscow, Russia poɔ a yi a yioni 2010<ref>https://duma.mos.ru/ru/37/news/novosti/nit-ariadnyi-ukazyivaet-put-k-vostrebovannosti</ref><ref>https://tass.ru/obschestvo/1561114</ref><ref>https://kino.rambler.ru/other/40481407-festival-nit-ariadny-poluchil-prezidentskiy-grant-v-razmere-14-2-mln-rub/</ref><ref>https://vm.ru/culture/566436-festival-nit-ariadny-poluchil-prezidentskij-grant</ref>. A tigiri meŋ maŋ poɔ la scientific ane eebo yelyaga zannoo. A ziiri ba naŋ maŋ di a tigiri ŋa la : Yermolova Theater, sini yiri, Central yiri ko Scientists ko Russian Academy of Sciences, State Museum ko gɔɔloŋ A. Pushkin, Department of personal collections and the Museyon Center for Aesthetic Education of Children and Youth, Moscow Academic Art Lyceum ko a Russian gɔɔloŋ sakuuri, Scientific ane ebbo zie ko a bibiiri yanyaare ane baapaaleba yanyaare, ane deɛne zie ka A. Dzhigarkhanyan kaabo wagere na, kyuu deɛne.<ref>https://rg.ru/2014/11/12/festival-site.html</ref> == Yeleree == Noba maŋ maŋ poɔ a yɛlɛ ama poɔ, ba maŋ iri ba la ziiri ayɔpo: deɛne, yipɔge, enfuoni ŋmaabo,sini, gɔɔloŋ ane duori terebo.<ref>https://www.mos.ru/news/item/47717073/</ref><ref>https://web.archive.org/web/20200220003504/http://www.klubpsihiatrov.ru/ru/festival5/about</ref> == Sommo yizie == eo08gw0rwnsqj626rgbsmwt4tf207lf Dhaka Lit Fest 0 7201 61855 61794 2026-06-23T22:33:26Z InternetArchiveBot 38 Rescuing 3 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61855 wikitext text/x-wiki '''Dhaka Lit Fest''' ( ba.naŋ baŋ ne o meŋ ka '''Dhaka Literary Festival''' bee '''DLF''') e la yuoni zaa yipɔge tigiri naŋ maŋ di a Dhaka, Bangladesh poɔ. A yi a yuoni 2012, o maŋ di la yuoni zaa a November poɔ a Bangla Academy teŋɛ poɔ ka o maŋ di bebie ata, ane naasaale kɔkɔre. == Dakoroŋ == Dhaka Lit Fest da piili la a Hay tigiri Dhaka ane sommo yi a British Council Dhaka zie a yuoni 2011 poɔ. A yuoni 2015, o naŋ taa maale ennebe bata, Sadaf Saaz, Ahsan Akbar ane Kazi Anis Ahmed, leɛ maale la a tigiri yuori ka "Dhaka Lit Fest" ka ba na leɛ teɛre ba sagebo ka ba na zɛge la Dhaka, ane Bangladeshi yelbaŋyizie ane a yipɔge ko a tendaazaa.<ref name=":0">https://web.archive.org/web/20180526112649/http://www.dhakalitfest.com/story.html</ref><ref name=":1">http://www.thedailystar.net/star-weekend/spotlight/dhaka-lit-fest-the-gathering-literary-minds-178393</ref> A yi a July 2016 Dhaka naŋ da nyɛ zɔɔre tigiri tenne 19 la da ba la sage ka lanne ba di a tigiri.<ref name=":2">http://www.thedailystar.net/star-weekend/spotlight/dhaka-lit-fest-the-gathering-literary-minds-178393</ref> Ane a lɛ zaa a noba naŋ di la tigiri naŋ wulu ka Bangladesh na baŋ naŋ di a international yipɔge tigiri a nimipɛle zie nig<ref name=":3">https://kenanmalik.com/2019/11/02/the-importance-of-a-lit-fest-in-dhaka/</ref>ɛ.Casey Quackenbush da sɛge "Bangladesh, ka be la ka meŋɛ faabo ka duori terebe la ka nimie da boɔrɔ ne zɔɔre, a Dhaka yelbanyizie tigiri paa leɛ waa la.meŋɛ faabo zɔɔzɔɔ bone.<ref>https://www.dhakatribune.com/magazine/arts-letters/2016/09/05/dhaka-lit-fest-2016/</ref> A yuoni na, a yelzu sɛgerɛ da la V. S. Naipaul.<ref>https://www.thedailystar.net/literature/dhaka-lit-fest-2016-vs-naipaul-raises-the-curtains-1316218</ref> A yuoni 2017, Dhaka Lit Fest da iri la ka ba maale a kyɔɔtaare a DSC kyɔɔtaare ko a South Asian yelbanyizie<ref>https://timesofindia.indiatimes.com/business/india-business/2017-dsc-prize-winner-to-be-announced-at-dhaka-lit-fest/articleshow/59201732.cms</ref>. A neɛ naŋ nyɛ a zunuo da la Anuk Arudpragasam ko o selloo ŋa o naŋ sɛge;"The Story of a Brief Marriage.<ref>https://web.archive.org/web/20171215000913/http://dscprize.com/2017/11/18/anuk-arudpragasam-wins-dsc-prize-south-asian-literature-2017/</ref> == Organizers == A tigiri Bangladeshi naŋ sɛge Sadaf Saaz, Tahmima Anam, Ahsan Akbar ane Kazi Anis Ahmed la maale o ka o e Hay tigiri Dhaka.<ref name=":1" /> A yuoni 2015, noba naŋ da maale a tigiri ŋa la Sadaf Saaz (kyɛ meŋ la sini maala), Ahsan Akbar ane Kazi Anis Ahmed.<ref name=":0" /> == Saama == Saama naŋ yi tenne kyɛ wa a tigiri ŋa la V. S. Naipul, Amitav Ghosh, Abdulrazak Gurnah, Adunis, Shashi Tharoor, William Dalrymple (historian), Tilda Swinton, Marcel Theroux, Lionel Shriver, Shirshendu Mukhopadhyay, Mohammed Hanif, Nandita Das, Monica Ali, HM Naqvi, Tishani Doshi, Swapnamoy Chakraborty, James Meek (sɛgerɛ ), Jude Kelly, ane Jon Snow (duori terɛ), ane ba mine kaŋa. Bangladeshi sããtegerɛ mine la: Asaduzzaman Noor, Syed Manzoorul Islam, Imdadul Haq Milan, Kaiser Haq, Selina Hossain, Aly Zaker, Shaheen Akhtar, Nishat Majumdar, Raja Devasish Roy, ane Muktasree Chakmaamong, ane ba mine kaŋa. == Tuuri deebo == DLF ba poge o la a yiri ane a tendaazaa ane o naŋ sage di yipɔge leɛroo, faabo yi meŋɛ yelyaga yelibo poɔ ane ba naŋ maŋ laŋ a Bengali ane a tendaazaa yipɔge<ref name=":2" /><ref>https://theprint.in/opinion/shashi-tharoor-new-bangladesh-holds-on-to-tagores-memory-even-if-its-a-century-old-visit/319593/</ref><ref>https://www.thedailystar.net/shout/what-dhaka-lit-fest-2015-offered-176326</ref><ref>https://www.thedailystar.net/star-weekend/spotlight/dhaka-lit-fest-the-gathering-literary-minds-178393</ref><ref name=":3" />. A noba na naŋ maŋ soŋ ne a libie ba poge ba la yaga ane ba naŋ maŋ vɛŋ ka DLF e weɛlɛ ko neɛzaa ka o baŋ wa.<ref>https://www.newstatesman.com/2016/11/i-m-bangladesh-i-needed-put-few-thousand-miles-between-myself-and-hovel</ref> Noba mine meŋ naŋ maŋ kaara yeli ka DLF maaleba e la Anglophile bourgeois naŋ e a Western Bangladesh poɔ yaare la a duor ka a vɛŋ ka a tigiri yuori baara ane sɛgebo naasaale kɔkɔre poɔ kyɛ baara ba meŋɛ faabo a Dhaka poɔ<ref>https://web.archive.org/web/20180125141651/http://shampratikdeshkal.com/back-page/2016/11/24/4066</ref><ref>https://arts.bdnews24.com/?p=15695</ref><ref>https://web.archive.org/web/20180526183013/http://www.bdsfbd.com/%E0%A6%A2%E0%A6%BE%E0%A6%95%E0%A6%BE-%E0%A6%B2%E0%A6%BF%E0%A6%9F-%E0%A6%AB%E0%A7%87%E0%A6%B8%E0%A7%8D%E0%A6%9F/</ref><ref>https://opinion.bdnews24.com/bangla/archives/54577</ref><ref>https://web.archive.org/web/20180125141651/http://shampratikdeshkal.com/back-page/2016/11/24/4066</ref>. A noɔre ŋa kyɛrebo poɔ a noba naŋ maŋ maale a tigiri ŋa wuli la tɔna naŋ be Bengali-kɔkɔre yelebo poɔ ( ane yiri Bangladeshi kɔkɔrɛɛ<ref>https://en.prothomalo.com/lifestyle/news/204657/Dhaka-Lit-Fest-2019-ends-in-November-drizzle</ref> ) noba naŋ maŋ manne yɛlɛ, yeli ka a waabo naŋ faa e weɛlɛ ane a Bangladeshi yelbanyizie tigiri maaloo ane gbangbali poɔ yiibo zuiŋ<ref>https://web.archive.org/web/20191115000203/https://www.dhakalitfest.com/story</ref>. A noba yelibo ŋa saama naŋ maŋ wa a tigiri zie sagɛɛ la ka duori terebe meŋ sage.<ref>https://www.theguardian.com/commentisfree/2019/nov/10/literary-festivals-not-luxury-bauble-for-middle-classes</ref><ref>https://web.archive.org/web/20190324182052/http://www.daily-sun.com/arcprint/details/185702/Dhaka-Lit-Fest-and-Literary-Concerns/2016-11-21</ref><ref>https://theluxembourgreview.org/2016/04/07/dhaka-literature-festival-2015-an-overview/</ref><ref>http://www.thedailystar.net/star-weekend/spotlight/dhaka-lit-fest-the-gathering-literary-minds-178393</ref><ref>https://www.daily-sun.com/printversion/details/269630/Dhaka-Lit-Fest-to-widen-horizon-of-Bangla-literature</ref><ref>https://www.bssnews.net/?p=118735</ref><ref>http://thedailynewnation.com/news/234887/forums-like-dhaka-lit-fest-give-space-for-people-to-meet-interact.html</ref><ref>https://www.independent.co.uk/arts-entertainment/books/features/dhaka-lit-fest-bangladesh-monica-ali-will-self-a9158641.html</ref> == Sommo yizie == d9b508c1dmwtkfcrtm9nqkiv4hpgqv8 Eeron Bagany 0 7202 61856 61795 2026-06-23T22:49:41Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61856 wikitext text/x-wiki '''Eeron Bagany''', '''Iron Bagan''',<ref>https://web.archive.org/web/20230201141041/http://vestnikkavkaza.net/news/Ministry-of-Culture-of-the-Republic-The-Iron-Bagan-international-festival-of-the-Ossetian-beer-is-t.html</ref> bee '''Iron Bagany'''<ref>http://cominf.org/en/node/1166524661</ref> e la Ossetian dãã tigiri naŋ maŋ di a yuoni zaa a Northern ane Southern Ossetia poɔ. <ref name=":0">https://www.rbth.com/russian_kitchen/2016/12/07/how-to-make-ossetian-beer_654347</ref>A tigiri maŋ di la bebiyeni ka o na baŋ e Oktoberfest kaŋa.<ref name=":0" /><ref>https://www.rbth.com/russian_kitchen/2016/12/07/how-to-make-ossetian-beer_654347</ref> == History of Ossetian brewing culture and Ossetian beer == Ossetian dãã dɔgebonaŋ baŋ tuuli te ta la a mannoo naŋ wuli ka ba da nyɛ la Nart sagas, naŋ taa sini naŋ wulo lɛ ba naŋ e nyɛ a dãã. <ref name=":0" />A yi a sini na poɔ, warchief nyɛ la nuulee a wɛgaŋ poɔ ka dire hops mine ka o yie daadaa lɛ<ref name=":0" />. A naa de la a hopes kuli ne a te yeli ko o pɔge, matriarch Shatana, bone na naŋ e. O da de la a hopes poɔ ne kyizoŋ,,a paa eŋ kõɔ a dɔge ne a Ossetian dãã dɛndɛnsoba.<ref name=":0" /> beer is "significantly less intoxicating", has no foam, ranges from color dark brown to black, and is brewed without technology. It is traditionally brewed by the "oldest woman in the family". == Yelerre a tigiri poɔ == A tigiri saga,dãã ba naŋ maŋ duŋ a dakoroŋ na a nembɛrɛ maŋ nyɛ a la kaanyɛ a iri a neɛ na naŋ duŋ soŋ.<ref name=":0" /> == Sommo yizie == st0qti98hzocccero0llxyg1kstaff0 France 0 7204 61846 61811 2026-06-23T14:24:55Z Jacques Ballieu 1785 61846 wikitext text/x-wiki '''France''' yɛ ɔman a ɛwɔ [[Europa]]. [[File:Flag of France (2024–present).svg|thumb]] [[File:EU-France.svg|thumb]] [[File:Tour eiffel at sunrise from the trocadero.jpg|thumb]] [[Gbuli:Europa]] s0twk0uv5w0t89yb5mel4n8m7gnlmrs Schleswig-Holstein Gourmet Festival 0 7206 61859 61816 2026-06-24T03:21:35Z InternetArchiveBot 38 Rescuing 1 sources and tagging 0 as dead.) #IABot (v2.0.9.5 61859 wikitext text/x-wiki '''A SchleswigSchleswig-Holstein Gourmet Festival''' ('''SHGF''') la la tigiri naŋ piili a yuoni 1987 poɔ ka Gastliches Wikingland e. V. (English: ''Hospitable Viking Land Association)'' ''maŋ laŋ a noba a maale. A'' SHGF, naŋ be a Schleswig-Holstein, naŋ piili September kyuu yuoni poɔ kyɛ baare a March kyuu a ane kaŋa poɔ.<ref>https://books.google.com/books?id=y_gFAgpmu7gC&dq=%22Schleswig-Holstein+Gourmet+Festival%22+-Wikipedia+online%5D&pg=PA23</ref> == A tigiri == A tigiri saama 3000 la maŋ wa, a yi lɛ tontonoba naŋ maŋ wa lɛ meŋ la a tigiri. A tigiri zaa maŋ di la tonton zie kaŋa zaa gbɛɛ yaga hotɛle poɔ bee bondirii diibu zie, ka saana naŋ e bondimaala la maŋ maale a zimaane bondirii ka a hotɛle bondimaaleba maŋ soŋ. A saana bondimaala ŋa maŋ leɛrɛ la yuoni zaa. A yelnimizie ko a tigiri la ka ba pukyaare irigyin ane wagere baabo ne a Schleswig-Holstein bondirii poɔbo.<ref>http://www.faz.net/aktuell/reise/kulinarische-reisen-wo-gourmets-ihre-gaumen-kitzeln-br-112451.html</ref><ref>https://web.archive.org/web/20140826120612/http://www.schleswig-holstein.de/ArchivSH/PI/STK/2003/Gourmet_Festival_StK_260903.html</ref> == Dakoroŋ == A noba naŋ maŋ laŋ a yɛlɛ ŋa taa, Gastliches Wikingland e.V., da piili la a yuoni 1987 poɔ a yi bondi maale zie ŋa Hans Hansen-Mörck (1933–1994) ane hotɛle mine 11 ane bondimaale zie kaŋa a Schleswig-Flensburg distiriki naŋ pɔŋ saama bondiri a Schleswig-Holstein Musik tigiri , ka ba taa a kyɛluu ka ba na da maale a gourmet tigiri a zie na bebiri kaŋa. A Schleswig-Holstein Gourmet tigiri dɛndɛnsoba da di la Historischen Krug a tuuree poɔ. A tigiri saga,Hansen-Mörck maŋ yi ne bondirii maaloo gane <ref>https://en.wikipedia.org/wiki/Schleswig-Holstein_Gourmet_Festival#cite_ref-4</ref>saseɛ poɔ. A Gastliches Wikingland yidandɔɔ da be la Hansen-Mörck, Franz-Dieter Weiß, Heta Behmer, a yi a yuoni 1991 Klaus-Peter Willhöft.<ref>http://www.shz.de/lokales/wedel-schulauer-tageblatt/kulinarisches-spitzenevent-im-schulauer-faehrhaus-id5762951.html</ref> A yuoni 2020 poɔ, tontonziiri 16 naŋ yi a teŋɛ ziezaa da poɔ la a kyakya ŋa poɔ a lanne a neɛ naŋ piili a Ringhotel Waldschlösschen ko Schleswig a yi a 2020, hotɛle Wassersleben naŋ yi Harrislee<ref>https://www.gourmetfestival.de/festival/historie/</ref>. A yuoni 1987 poɔ, a Michelin Guide kyɔɔtaare da pare ayɔpoi ba naŋ ko tontonziiri a Schleswig-Holstein anii Michelin hotɛle a naŋ lantaa. A yuoni 2020, a Michelin Guide a Schleswig-Holstein poɔ da ko bonimaale zie ata kyɔɔtaare ŋmarebie ayi ane mine awai meŋ ne ŋmarebiyenaa.<ref>https://www.gourmetfestival.de/geschichte.html</ref> A yuoni 2000 poɔ, a “Tour de Gourmet Jeunesse” da wulee la ka o meŋ poɔ la a Schleswig-Holstein Gourmet tigir. A langboli na ba naŋ da pukyaare da e la noba naŋ ta yuomo18 te da 35. A zie na ba naŋ tu kyɛ yeli yɛlɛ ko noba a bondimaale ziiri a taa a kyilluu ka baabo naŋ maŋ wa la yuoni zaa kyɛ vɛŋ ka ba nyɛ tontonziiri ata poɔ.<ref>https://www.gourmetfestival.de/tourdegourmet.html</ref> A tigiri diibu 29 soba, a "Tour de Gourmet Solitaire" da poɔɛ la. O da e la yelpaalaa ka ba kpukyaare ne gyamaa noba naŋ ba be kultaa poɔ a nyɛ yuomo 40. A kyɛ meŋ, ba nyɛ la tontonziiri ata yuoni zaa. A piili deɛne maŋ e la tɛɛtɛɛ fee ne a tigiri yeleree meŋɛ.Internationally bondimaale nembɛrɛ maŋ toŋ la toma ne ba mine bondimaale nembɛrɛ ka ba maale a bondiparɛɛ anuu tigiri.<ref>https://www.gourmetfestival.de/auftaktgala.html</ref> == Bondimaale nembɛrɛ saama == A tigiri 34th SHGF a 2020 ane 2021 poɔ, saama18 bondimaale nembɛrɛ naŋ yi Germany, Denmark, France ane Switzerland na be la a tigiri naŋ e tontonziiri 16 tigiri zie. A bondimaale nenkpoŋ saana yuoni zaa a yi o naŋ piile ane nempaaleba. A bondimaale nembɛrɛ naŋ poɔ a Schleswig-Holstein Gourmet tigjri ŋa la : * Jacqueline Amirfallah * Henri Bach<ref name=":0">http://www.manager-magazin.de/lifestyle/genuss/a-438430.html</ref> * Wolfgang Becker<ref name=":1">https://www.gourmetfestival.de/</ref> * Boris Benecke * Ingo Bockler * Jean-Claude Bourgueil<ref name=":0" /> * Denis Feix * Rolf Fliegauf * Sebastian Frank (Koch) * Tommy Fries * Maria Groß * Nils Henkel * Sarah Henke * Kenneth Toft-Hansen * Dirk Hoberg<ref name=":1" /> * Jens Jakob<ref name=":1" /> * Thomas Kammeier * Michael Kempf<ref name=":1" /> * Johannes King * Kolja Kleeberg<ref name=":1" /> * Manuel Liepert * Christian Lohse<ref name=":1" /> * Thomas Martin<ref name=":1" /> * Anna Matscher * Peter Madsen * Thomas Merkle * René Mammen * Marco Müller<ref name=":1" /> * Nelson Müller * Hendrik Otto * Cornelia Poletto<ref name=":0" /> * Michael Röhm<ref name=":1" /> * Stefan Rottner * Christoph Rüffer<ref name=":1" /> * Jörg Sackmann<ref name=":1" /> * Peter Scharff (Koch) * Thorsten Schmidt * Achim Schwekendiek * Ronny Siewert * Patrick Spies * Diethard Urbansky<ref name=":1" /> * Joachim Wissler<ref name=":0" /> * Harald Wohlfahrt from the ''Schwarzwaldstube'' restaurant at ''Hotel Traube'' in Baiersbronn-Tonbach, guest chef in the ''Orangerie'' in the ''Maritim Seehotel'' on Timmendorfer Strand since 1990 * Tristan Brandt * Philipp Heid * Tony Hohlfeld * David Görne * Rainer Gassner * Philipp Stein * Sonja Frühsammer * Jens Rittmeyer * Ralf Jakumeit * Michael Hoffmann * Titti Qvarnström * Julia Komp * Daniel Gottschlich * Benedikt Faust * Kirill Kinfelt == Tuuri deebo == German duori terɛ n-tv yeli ka a 2021 ka a Gourmet tigiri a northernmost federal teŋɛ da leɛre la ka o pɛnnoo vuo ko a gourmets". A yuoni 2005 poɔ, Die Zeit yeli ka ka o wane la sasemaaroŋ ko a German cuisine," ka n-tv manne ka o e la tgiroŋ a yi Schleswig-Holstein cuisine eŋ yɛlɛ naŋ kyaare. == External links == * Schleswig-Holstein Gourmet Festival on the Website of Gastliches Wikingland e. V. == References == ki1pvgtbye4gjrmvnlpiy9wilap3alj Belgium 0 7207 61843 2026-06-23T14:12:50Z Jacques Ballieu 1785 Created page with "'''Belgium''' yela country ka [[Europe]] niŋ. A be la Western Europe poŋ, ka kpɛrɛ [[Netherlands]], [[Germany]], [[Luxembourg]] nɛ [[France]]. [[Brussels]] ka Belgium tɛŋa-kɔɔrɛ la." 61843 wikitext text/x-wiki '''Belgium''' yela country ka [[Europe]] niŋ. A be la Western Europe poŋ, ka kpɛrɛ [[Netherlands]], [[Germany]], [[Luxembourg]] nɛ [[France]]. [[Brussels]] ka Belgium tɛŋa-kɔɔrɛ la. t4cuuwim78qzn45iwffpnbit43yqdn6 61844 61843 2026-06-23T14:20:45Z Jacques Ballieu 1785 61844 wikitext text/x-wiki {{Databox | item = Q31 }} '''Belgium''' yela country ka [[Europe]] niŋ. A be la Western Europe poŋ, ka kpɛrɛ [[Netherlands]], [[Germany]], [[Luxembourg]] nɛ [[France]]. [[Brussels]] ka Belgium tɛŋa-kɔɔrɛ la. r59npkfexref3z9w4bwyy0zddkhvoob 61845 61844 2026-06-23T14:23:04Z Jacques Ballieu 1785 61845 wikitext text/x-wiki {{Databox | item = Q31 }} '''Belgium''' yela country ka [[Europe]] niŋ. A be la Western Europe poŋ, ka kpɛrɛ [[Netherlands]], [[Germany]], [[Luxembourg]] nɛ [[France]]. [[Brussels]] ka Belgium tɛŋa-kɔɔrɛ la. [[Gbuli:Europe]] 83tu1seu2j7aap8wo3fgw8og273l850 Baltai 0 7208 61847 2026-06-23T14:33:32Z Edith Tangkur 310 Creat article 61847 wikitext text/x-wiki '''Baltai''' (Mordvin: ''Балта́й'') e la saakonnoo tigiri ka Mordvin noba maŋ di, gbɛɛ yaga a Tatarstan poɔ. A tigiri yuori leɛre ka ''Feast of Honey'' a Tatar kɔkɔre poɔ, naŋ yi a yelbiri ŋa poɔ ''bal'' ka o muni la siiri, ane ''tuy'' ka o meŋ muni la diibo. Baltai maŋ di la a Yɔdaare ka a Whitsunday wa di baare, naŋ maŋ piili a mowing wagere. A tigiri maŋ taa saakonnoo yeleree tɛɛtɛɛ,lanne piroo pegebo, naŋ taa waaloŋ ne ŋmene baroo ane ba yipɔge. A Baltai tigiri maŋ e la saakonnoo tigiri a ko a Mordvin noba, ka ba leɛ teɛrɛ ba yiibo zie, yipɔge ane lisiri. A tigiri yel-tuoraa ŋa ka a mine na a piroo pegebo ane a seɛgɔlloo, maŋ wuli a Mordvin noba naŋ yi taa ne ŋmene boniri ane ba yipɔge. Ko naaloŋ a Saratov Oblast, Russia, nyɛ Baltay. == Meŋ la nyɛ == * Sabantuy * Çük == Yizie == * (in Russian) Национальный праздник | Новости администрации за июль 2002 года | Балаково в сети * 7hzmfynfdvu0o8mj8s01uyvcuwe1mmb AngloMockBa 0 7209 61850 2026-06-23T14:38:27Z Edith Tangkur 310 Creat article 61850 wikitext text/x-wiki '''AngloMockBa''' e la international/British-Russian gɔɔloŋ, bonsuuri, sini duoro yeŋ, ane yipɔge tigiri naŋ maŋ di a Moscow a yi 1–3 May. O e la a Jewel ko Russia tigiri ayi soba == External links == * AngloMockBa Liberatum Website * AngloMockBa Red Square PR Website * AngloMockBa Official Blog 1gz8phdw6qu46umv073i7hqihmg647r Great Kurultáj 0 7210 61851 2026-06-23T19:52:12Z Edith Tangkur 310 Creat article 61851 wikitext text/x-wiki '''A GreatGreat Kurultáj''', bee '''Kurultáj''', e la saakonnoo tigiri ko a Central Asian donnre tigiri, naŋ maŋ August daagboli dɛndɛnsoba a Bugac, Hungary poɔ. A tigiri yelboɔraa ka tage a nommo naŋ be a Eurasian donne wiri yipɔge ane yipɔge naŋ be a Hungarians ane ba yipɔge taaba, eastern Turkic noba ane Uralic noba. A Kurultáj dɛndɛnsoba da di la a Torgay irigyin a ko Kazakhstan a yuoni 2007 poɔ. Kurultáj e la tigiri ko wiri noba naŋ taa bambo ane noɔ naŋ bebe a wiri zɔɔbo poɔ. Kurultáj kaŋa zaa maŋ taa la wiri kawaare, wiri zɔɔ gantaa, saakonnoo wiri noba maŋ wa are la a peɛlɛ a wulee. A Kurultáj tigiri dɛndɛnsoba da di la a Hungary a yuoni 2008 poɔ.<ref>http://e-history.kz/media/upload/1846/2014/07/01/f88b174f8a3314c68ce6d01a974d6eb0.pdf</ref> Hungary e la European yoŋ teŋɛ naŋ biŋ a ba yipɔge kokpar deɛne, a kɔɔdɛne deɛne. <ref>https://www.deviantart.com/llmatako/art/KURULTAJ-464343863</ref> == Background == A Kurultáj yiibu zie da yi a donne noba ko a neɛtaa, gaŋ a zaa naaloŋ parɛɛ ka ba wa lantaa ka iri neɛ naŋ na leɛre a Khan zu. A yelbiri "kurultáj" ane o yitaaloŋ a Turkic kɔkɔrɛɛ poɔ leɛroo la "meeting of the tribes". A maŋ e la ane a yiiloŋ a gaŋ a zaa ba naŋ naŋ taa donne ba yipɔge poɔ. Hungarian donne yiiloŋ meŋ maŋ taa la lammo ŋa, a lammo ŋa yuori maŋ pore la a Byzantine ane Arab sɛgere poɔ. A lammo ama zie, yelinimiziiri mine da yɛlee la a gaŋ a zaa a nembɛrɛ maŋ laŋ la taa a manne yɛlɛ sɔgyare yɛlɛ. <ref>http://kurultaj.hu/english/</ref> === Turanist ideology === A Great Kurultáj e la Turanist tenne demɛ tigiri naŋ maŋ waane lammo a yi a Hungarian ane Turkic noba, a yi a Altaic kɔkɔre yideme na ba naŋ zagerebare. A Great Kurultáj ba da yeli la ba yɛlɛ ka ba leɛ kaa a ba yipɔge yɛlɛ ka lɛ soŋ ka Hungarian yipɔge baara.<ref>https://harpers.org/archive/2019/08/the-call-of-the-drums-hungarian-far-right/</ref><ref>https://www.codastory.com/rewriting-history/kurultaj-turanism-hungary/</ref><ref>https://www.gnxp.com/WordPress/2019/07/19/hungarian-nationalism-and-the-ghosts-of-turan/</ref> Tenne naŋ poɔ: # Asia (6):  Kazakhstan,  Uzbekistan,  Kyrgyzstan,  Turkmenistan,  South Korea,  Mongolia # Europe (7):  Azerbaijan,  Turkey,  Hungary,  Estonia,  Finland,  Bulgaria,  Greece === Turkic nations and states (22) === * Azerbaijan * Balkar * Bashkortostan * Chuvashia * Crimean Tatars * Cypriot Turks * Gagauzia * Karachay * Karakalpakstan * Kazakhstan * Kyrgyzstan * Kumykia * Madjars * Nogai * Sakha * Tatarstan * Turkey * Tuva * Turkmenistan * Uyghurs * Turkomans * Uzbekistan === Uralic nations and states (11) === * Csangos * Estonia * Finland * Hungary (Host) * Karelians * Khanty-Mansi * Mari El * Nenets * Sápmi * Szekely * Komi === Mongolic nations and states (3) === * Buryatia * Kalmykia * Mongolia === Northeast Caucasian states (3) === * Avar * Chechnya * Dagestan === Northwest Caucasian states (2) === * Adygea * Kabardin === Indo-European nations and states (3) === * Bulgaria * Greece * Hazara === Tungusic states (2) === * Evenki * Manchus === Others (1) === * South Korea<ref>https://kurultaj.hu/2017/09/a-kurultaj-bemutatkozott-az-eurazsiai-altaj-fesztivalon-del-koreaban/</ref> == Events == * 2008: Unknown * 2013: 9 to 11 August<ref>https://www.kyivpost.com/multimedia/photo/the-kurultaj-festival-takes-place-in-hungary-328266.html</ref> * 2014: da di la T Bugac a Southern Great Plain irigyin a Hungary poɔ<ref>http://dailynewshungary.com/kurultaj-nomadic-culture-and-tribal-traditions-photo-gallery/</ref> * 2015: ka Hungarian Turan Foundation da maale ane a Turkish Cooperation sombo ane Coordination Agency (TİKA) a ko a yuori ka Ancestors Day. Noba naŋ are a gɔbenenti gbɛbogriŋ Hungary ane Turkey da poɔ tigiri poɔ. <ref>https://www.dailysabah.com/history/2015/08/18/turkey-hungary-jointly-commemorate-atilla-the-hun</ref> * 2016: da di la 12 te ta 14 August Bugac poɔ<ref>http://kurultaj.hu/2016/01/a-2016-evi-kurultaj-idopontja-augusztus-12-13-14/</ref> * 2018: Unknown * 2020: Cancelled<sup>[''citation needed'']</sup> * 2022: Culture + music + sports (horse + archery + Guresh)<ref>https://kurultaj.hu/english/?fbclid=IwAR0muFyFqH3ItSSv4faipcWLBH3-NXUCgXYzzztXRefOaAaTTVQY6zbuTWI</ref> * Medalists:<ref>http://kurultaj.hu/2022/09/kurultaj-2022-hagyomanyorzo-sportversenyek-eredmenyei/?fbclid=IwAR1zx9RjtvIhkZM57o8YyXU4Mjc4Tp_0DpCFmEdM_214b7XDINqTXXJP1ig</ref> == Meŋ la nyɛ == * Altaic language * Bugac * Huns * Jirga * Pan-Turanism * Pan Turkism * World Turks Qurultai * List of festivals in Asia * List of festivals in Europe == Sommo yizie == men9jpft85dh6dtfksbsivtr9mpd365 Gion Matsuri 0 7211 61862 2026-06-24T09:40:25Z Edith Tangkur 310 Creat article 61862 wikitext text/x-wiki A '''Gion''' '''tigiri''' (祇園祭, ''Gion Matsuri'') e la a tigiri kpoŋ kaŋa ka noba baŋ o yɛlɛ a Japan poɔ, naŋ maŋ di yuoni zaa a July kyuu poɔ a Kyoto poɔ<ref name=":0">https://doi.org/10.1111%2Fj.1548-1425.2009.01135.x</ref>. Tigiri yaga maŋ di la central Kyoto ane a Yasaka Shrine, a tigiri gɔɔrɔ kɔtonne naŋ be a Kyoto's Gion ditirtiki poɔ, la ko o a yuori. O saga na o e la Shinto tigiri, ka o yelboɔraa da ka o maale kyɛ pɛge boma naŋ taa baaloŋ<ref>https://en.wikipedia.org/wiki/Gion_Matsuri#cite_ref-2</ref>. Yɛlɛ yaga maŋ e la a tigiri saga, kyɛ noba baŋ me o la a yi a ''Yamaboko Junkō'' (山鉾巡行) ayi yi be sori zu seɛre naŋ maŋ e a July 17 ane 24.<ref>https://doi.org/10.2307%2F594168</ref> A tensogɔ ata na zaa maŋ taa la o sori zu yi seɛbo ka ba maŋ boɔle a ka ''yoiyoiyoiyama'' (宵々々山), ''yoiyoiyama'' (宵々山), ane ''yoiyama'' (宵山). A y''oiyama'' tensogɔ, Kyoto's tenne soe maŋ bare la ko sori zu figeloo, ka a dakoroŋ yie na mine naŋ peɛle a sori maŋ yuo la ba dendoɛ ka noba tuuru, ka wulo heirloom e la ba yipɔge ka ba boɔlɔ Folding Screen tigiri (屏風祭り, ''Byōbu Matsuri''). A la waana.meŋ a sori maŋ pa la ne tensogɔ bondikɔɔre ka a mine la ''yakitori'' (barbecued chicken on skewers), ''taiyaki'', ''takoyaki'' (fried octopus balls), ''okonomiyaki'', Japanese yipɔge bonuure, ane bondinuure mine kaŋa. == Schedule of events == * July 2: ''Kujitorishiki'', a lottery to determine the order of floats in the parade, conducted at the municipal assembly hall * July 7: Shrine visit by ''chigo'' children of ''Ayagasaboko'' * July 10: Lantern parade to welcome ''mikoshi'' (御輿, 'portable shrines') * July 10: ''Mikoshi arai'', cleansing of ''mikoshi'' with sacred water from the Kamo River * July 10–13: Building of floats * July 13 (a.m.): Shrine visit by ''chigo'' children of ''Naginataboko'' * July 13 (p.m.): Shrine visit by ''chigo'' children of Kuse Shrine * July 14: ''Yoiyoiyoiyama'' * July 15: ''Yoiyoiyama'' * July 16: ''Yoiyama'' * July 16: ''Yoimiya shinshin hono shinji'', art performances * July 17: Parade of ''yamaboko'' floats * July 17: Parade of ''mikoshi'' from Yasaka Shrine * July 18–20: Building of floats * July 21: ''Yoiyoiyoiyama'' * July 22: ''Yoiyoiyama'' * July 23: ''Yoiyama'' * July 24: Parade of ''yamaboko'' float * July 24: Parade of ''hanagasa'' (花傘, 'flower parasols') * July 24: Parade of ''mikoshi'' to Yasaka Shrine * July 28: ''Mikoshi arai'', cleansing of ''mikoshi'' with sacred water from the Kamo River * July 31: Closing service at Eki Shrine === Hoko sori zu seɛbo === * Weight: about 12 tons<ref name=":0" /> * Height: about 27 meters (89 ft)<ref name=":0" /> * Wheel diameter: about 1.9 m (6 ft 3 in) * Attendants: about 30–40 naŋ ma tagera, gbɛɛyaga dɔba bayi la maŋ mɔnɔ === Yama sori zu seɛbo === * Weight: 1,200–1,600 kg (2,600–3,500 lb) * Height: about 6 m (20 ft) * Attendants: 14–24 noba na tage, bee tuo == Meŋ la nyɛ == * Gion cult * Japanese festivals == Notes == 39kb7hxz9q6ktfx46uh7vydqjccnynz Sed Festival 0 7212 61865 2026-06-24T10:21:18Z Eric Gangman 92 Bompaala maaloo 61865 wikitext text/x-wiki Sed Tigiri (hb-ed, a leɛroo boɔlaa la /sɛd/, ona la ka banaŋ baŋ ka o e Heb Sed bee Feast of the Tail (zoore)) e la a Egyptian deme paaloŋ poɔ tigiri kaŋa a Pharaoh daŋ da la e a Wederɛ. A yuori ŋa de yi la a Egyptian  deme ŋmene naŋ di wolf,  a ŋmene na kaŋa yuori la Wepwawet bee Sed. A yuori onaŋ ba e bone neɛzaa naŋ baŋ la a Feast of the Tail, a yuori ŋa de yi la doŋa zoore eŋɛ, bonso a zoore e na bone naŋ mare o puori, a saŋa na, Egyptian saadayel poɔ, a zoore ŋa e la bone naŋ leŋ eŋ a pharaoh gane eŋɛ. A zoore bile ŋa la maŋ bebe a paale tigiri diibu  daare  ka a doŋa gane toɔ e boŋgbuli. A Egyptian deme na baŋ maale la bɔgere a leɛre a ko a Pharaoh ka ona ba wa la toɔnɔ a paaloŋ kaara soŋ a yi onaŋ bale bee a ba la laara a yi onaŋ beɛrɛ baaloŋ. A baŋ kɔɔre, kyɛ ka ba di Sed tigiri a yi onaŋ di naa a zeŋ a kogi zu yuomo lezare pie, a paa yi be, yuomo ata de gɛrɛ o anaare soba poɔ, ba maŋ di la a tigiri ŋa. A tigiri ŋa diibu yelnyɔgeraa zaa la ka ba leɛ kaa a paaloŋ yelnyɔgeraa ane bone na ba naŋ sage di. Sed tigiri ŋa taa la yɛlɛ gyamaa aseŋ, bɔgre maaloo aseŋ puoru paala naŋ kpeɛrɛ a teŋɛ poɔ, aŋa a djed naŋ wa piili, a saɔrum bee bovine, phallic bondemannaa naŋ wulo faŋa, dɔɔ ba dɔgebo a pharaoh naa diibu na wagere. A tigiri ŋa diibu meŋ maŋ wullo la lɛ a pharaoh naŋ di naaloŋ a ɔpa ane Egypt puliŋ zaa. Pharaoh e la neɛ naŋ tuuru saaŋkoŋ yɛlɛ kaa a tara soŋ kyɛ o ba kɔɔre ta yuomo lezare ne pie a na pollɔ nɔɛ, see ka o wa di a tigiri ŋa ta taabo kaŋa. A ne a ŋaa zaa kyɛ Sed tigiri taa la danseɛ a ta ŋa kɔɔ a yi o piilu saŋa a wa tɔ ŋaa a Egypt poɔ. A sed tigiri ŋa e a tigiri kaŋa a Egypt paaloŋ poɔ naŋ yelsɛgebinne gyamaa naŋ tori a kyaare lɛ a tigiri ŋa yeltuuri naŋ tu, a yi Amenhotep III gbɛɛ yaga onaŋ maŋ wa yi a fIfth Dynasty King Neuserra a Abu Ghurab, naŋ be a Akhenaten meŋ naŋ be a Karnak paaloŋ ane meŋ ona la a soga poɔ iribu a yi Dynasty naaloŋ ayi soba na a yi a noba lezare na poɔ a  Osorkon naŋ be a Bubastis. A tigiri piilu a yi a dakoreŋ na Danseɛ bebe kperaa lɛ a kyaare lɛ a Pharaoh piilu a kyaare ne a Dynastiɔ piilu meŋ wagere na poɔ ane a Old Kingdom poɔ a kyaare ne Heb Sed, tigri diibu, a yi Dynasty Pharaoh Den ane ata Dynasty pharaoh Djoser. A Pyramid naŋ be a Djoser, a poɔ , a be meŋ taa la turibogi ayi, kusibe la be a Heb Sed merɛ sɛŋ, ona la be a pyramid soga poɔ. O meŋ da la wuli la a Heb Sed ziiri dendoɔre lambori kaŋa naŋ be a pyramid. A kusibe turibogiri ayi ama zaa taa la tontoɔre , ka ana la ka a maŋ wulu la Djoser naŋ be a Egypt sazu ane a sapare,a kuuni binzie la maŋ wuli ka ba baŋ toɔ kyoge tigiri diibu ka banaŋ wa toɔ tu a yeltuuri zaa iri bare a o kuu puoriŋ. Sed tigiri ŋa e la a tigiri koraa kaŋa naŋ daŋ bebe a taa danseɛ a kyaare ne a Dynasty pharaoh Papi I Meryre  ayoɔbo soba naŋ be a South Saqqara Stone Annal yelsɛge binne poɔ, a yelsɛge binne ama ta la yuomo lezaa ayi, aneazaa ka a saaŋ la. A yi be, yoe mine bebe ka ba maŋ de di ko a Papi I’s Sed tigiri ŋa saŋa. A ŋaa wa baare ba maŋ de la boma te tu a yeltuuri anaŋ zaa naŋ senne ka a e danseɛ ko a Sed tigri a yi Dynasty ayoɔbo puoriŋ. Middle Kingdom (A Soga poɔ Naayiri) A soga poɔ naayiri, wagere, na, a pharaoh faŋa na onaŋ da taa da leɛ la bone banaŋ te soore kaa sɛre kyɛ wa mɛ a biŋ a naayiri kore na poɔ. Amenemhat I, a yi a danseɛ anaŋ onaŋ wuli, a yi o birikyiri onaŋ de maale ne o bone sa wuli la o meŋa bie Senusret I. A yi lɛ onaŋ manne a yeltuuri ka tutaa na, a 9ut6071tz1thto4knuf09fz99tofdsp