Wikipedia cbk_zamwiki https://cbk-zam.wikipedia.org/wiki/El_Primero_Pagina MediaWiki 1.47.0-wmf.23 first-letter Medio Especial Discusión Usuario Discusión del usuario Wikipedia Discusión del Wikipedia File Discusión del file MediaWiki Discusión del MediaWiki Plantilla Discusión del plantilla Ayuda Discusión del ayuda Categoría Discusión del categoría TimedText TimedText talk Módulo Discusión del módulo Evento Evento discusión Nueva York (estado) 0 1701 118873 113601 2026-10-11T08:23:01Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Nueva York]] a [[Nueva York (estado)]] 113601 wikitext text/x-wiki {{Stub}} [[File:Map_of_USA_NY.svg|thumb]] :''Este artículo trata sobre el Estado de Nueva York. Para la ciudad homónima véase [[Nueva York]].'' {{Estado USA | Name = Nueva York | Fullname = State of New York | Flag = Flag of New York.svg | Seal = New York state seal.png | Map = Map of USA NY.svg | Nickname = Empire State | Motto = Excelsior | Capital = [[Albany (Nueva York)|Albany]] | OfficialLang = [[Idioma inglés|Inglés]] ([[de facto]]) | LargestCity = [[Nueva York|Ciudad de Nueva York]] | Governor = [[George Pataki]]<br />| Senators = [[Charles Schumer]] (D)<br />[[Hillary Rodham Clinton|Hillary Clinton]] (D) | PostalAbbreviation = NY | AreaRank = 27 | TotalArea = 141.205 | LandArea = 122.409 | WaterArea = 18.795 | PCWater = 13,3 | PopRank = 3| 2000Pop = 18.976.457 | DensityRank = 6 | 2000Density = 155,18 | AdmittanceOrder = 11º | AdmittanceDate = [[26 de julio]] de [[1788]] | TimeZone = Este: [[UTC]]-5/-4 | Latitude = 40°29'40"N a 45°0'42"N | Longitude = 71°47'25"O a 79°45'54"O | Width = 455 | Length = 530 | HighestPoint = [[Mount Marcy]]<ref name=usgs>{{cite web| year =[[29 de abril]] de [[2005]]| url =http://erg.usgs.gov/isb/pubs/booklets/elvadist/elvadist.html#Highest| title =Elevations and Distances in the United States| publisher =U.S Geological Survey| accessdate =6 de noviembre| accessyear =2006| archivedate =2008-06-01| archiveurl =https://web.archive.org/web/20080601170143/http://erg.usgs.gov/isb/pubs/booklets/elvadist/elvadist.html#Highest}}</ref> | HighestElev = 1.629 | MeanElev = 305 | LowestElev = [[Océano Atlántico]]<br />0 <ref name=usgs/>| ISOCode = US-NY | Website = www.state.ny.us }} '''Nueva York''' (en [[idioma inglés|inglés]] ''State of New York'') es uno de los maga 50 [[Estados de los Estados Unidos|Estados]] de [[Estados Unidos]], localizado na la region [[Mid-Atlantic]] del país, al nordeste del mismo. Su capital ay [[Albany (Nueva York)|Albany]]. Es el mayor centro [[finanzas|financiero]] y [[comercio|comercial]] del país, y el cuarto mayor centro industrial de Estados Unidos, por detrás de [[California]], [[Texas]] y [[Ohio]]. Con sus 19 millones de maga habitantes, Nueva York es el tercer estado mas poblado de Estados Unidos, detrás de de California y Texas. No debe confundirse con la ciudad homónima, la [[Ciudad de Nueva York]], localizada na el extremo sur del estado. Por ello, al estado se le suele llamar ''Estado de Nueva York''. La Ciudad de Nueva York no es sólo la mayor ciudad del estado, con sus 8,5 millones de habitantes (cerca de la mitad de la población estatal), sino también la mayor ciudad del país. El [[apodo]] de Nueva York es ''Empire State'' (Estado del Imperio). Los historiadores creen que este apodo bine de un comentario hecho por [[George Washington]] —una vez comentó que Nueva York era el centro del Imperio (americano). El [[lema]] del Estado es ''Excelsior'', una palabra [[latín|latina]] que signfica "Siempre Arriba", "Siempre en la Cumbre" o "Más Alto Aún". Nueva York ya ay colonizado originalmente por los maga [[Países Bajos|neerlandeses]], que llama ya a la región [[Nuevos Países Bajos]]. También fundada un asentamiento na la isla de [[Manhattan]], llamado [[Nueva Amsterdam]]. Cuando [[Inglaterra]] capturó el Estado de los neerlandeses, los ingleses renombraron tanto al Estado como a la ciudad localizada en Manhattan a ''Nueva York''. Nueva York fue una de las [[Trece Colonias|trece colonias]] británicas que se rebelaron en la [[Guerra de la Independencia de Estados Unidos]]. En este estado tuvieron lugar un tercio de todas las batallas de la guerra. Después de la guerra, Nueva York pasó a ser el 11º Estado en entrar a la Unión, el [[26 de julio]] de [[1788]]. Se convirtió en el más poblado del país por alrededor de [[1810]], aunque fue sobrepasado por California en la [[años 1960|década de 1960]] y por Texas en la [[años 1990|década de 1990]]. == Referencias == === Notas === <div class = "references-small"> <references/> </div> === Referencias generales === * [http://www.census.gov/ United States Census Bureau] * [https://web.archive.org/web/20140131171152/http://www.state.ny.us/ Web oficial del estado de Nueva York] * [http://www.ed.gov/index.jhtml United States Department of Education] * [http://www.bea.gov/ United States Department of Commerce] * [http://www.noaa.gov/ National Oceanic and Atmospheric Administration] * Klein, Milton M. The Empire State: ''A History of New York.'' Cornell University Press, 2001. ISBN 0-8014-3866-7 == Maga Enlace Externo == {{ipr|ccat=New York}} * [https://web.archive.org/web/20140131171152/http://www.state.ny.us/ Web oficial del Estado de Nueva York] * [http://www.iloveny.com/ Web oficial de turismo del Estado de Nueva York] {{Artículo destacado}} {{Wikiconcurso medalla artículo|Primer|6}} [[Categoría:Estados Unidos]] 49rutl5ax1lrx2ip2pysfha9y8ab1bi 118877 118873 2026-10-11T08:25:40Z ČarnaruskiVoin 13506 118877 wikitext text/x-wiki {{Stub}} [[File:Map_of_USA_NY.svg|thumb]] :''Este artículo trata sobre el Estado de Nueva York. Para la ciudad homónima véase [[Nueva York]].'' {{Estado USA | Name = Nueva York | Fullname = State of New York | Flag = Flag of New York.svg | Seal = New York state seal.png | Map = Map of USA NY.svg | Nickname = Empire State | Motto = Excelsior | Capital = [[Albany (Nueva York)|Albany]] | OfficialLang = [[Idioma inglés|Inglés]] ([[de facto]]) | LargestCity = [[Nueva York|Ciudad de Nueva York]] | Governor = [[George Pataki]]<br />| Senators = [[Charles Schumer]] (D)<br />[[Hillary Rodham Clinton|Hillary Clinton]] (D) | PostalAbbreviation = NY | AreaRank = 27 | TotalArea = 141.205 | LandArea = 122.409 | WaterArea = 18.795 | PCWater = 13,3 | PopRank = 3| 2000Pop = 18.976.457 | DensityRank = 6 | 2000Density = 155,18 | AdmittanceOrder = 11º | AdmittanceDate = [[26 de julio]] de [[1788]] | TimeZone = Este: [[UTC]]-5/-4 | Latitude = 40°29'40"N a 45°0'42"N | Longitude = 71°47'25"O a 79°45'54"O | Width = 455 | Length = 530 | HighestPoint = [[Mount Marcy]]<ref name=usgs>{{cite web| year =[[29 de abril]] de [[2005]]| url =http://erg.usgs.gov/isb/pubs/booklets/elvadist/elvadist.html#Highest| title =Elevations and Distances in the United States| publisher =U.S Geological Survey| accessdate =6 de noviembre| accessyear =2006| archivedate =2008-06-01| archiveurl =https://web.archive.org/web/20080601170143/http://erg.usgs.gov/isb/pubs/booklets/elvadist/elvadist.html#Highest}}</ref> | HighestElev = 1.629 | MeanElev = 305 | LowestElev = [[Océano Atlántico]]<br />0 <ref name=usgs/>| ISOCode = US-NY | Website = www.state.ny.us }} '''Nueva York''' (en [[idioma inglés|inglés]] ''State of New York'') es uno de los maga 50 [[Estados de los Estados Unidos|Estados]] de [[Estados Unidos]], localizado na la region [[Atlántico Medio de Estados Unidos|Atlántico Medio]] del país, al nordeste del mismo. Su capital ay [[Albany (Nueva York)|Albany]]. Es el mayor centro [[finanzas|financiero]] y [[comercio|comercial]] del país, y el cuarto mayor centro industrial de Estados Unidos, por detrás de [[California]], [[Texas]] y [[Ohio]]. Con sus 19 millones de maga habitantes, Nueva York es el tercer estado mas poblado de Estados Unidos, detrás de de California y Texas. No debe confundirse con la ciudad homónima, la [[Nueva York (ciudad)|Ciudad de Nueva York]], localizada na el extremo sur del estado. Por ello, al estado se le suele llamar ''Estado de Nueva York''. La Ciudad de Nueva York no es sólo la mayor ciudad del estado, con sus 8,5 millones de habitantes (cerca de la mitad de la población estatal), sino también la mayor ciudad del país. El [[apodo]] de Nueva York es ''Empire State'' (Estado del Imperio). Los historiadores creen que este apodo bine de un comentario hecho por [[George Washington]] —una vez comentó que Nueva York era el centro del Imperio (americano). El [[lema]] del Estado es ''Excelsior'', una palabra [[latín|latina]] que signfica "Siempre Arriba", "Siempre en la Cumbre" o "Más Alto Aún". Nueva York ya ay colonizado originalmente por los maga [[Países Bajos|neerlandeses]], que llama ya a la región [[Nuevos Países Bajos]]. También fundada un asentamiento na la isla de [[Manhattan]], llamado [[Nueva Amsterdam]]. Cuando [[Inglaterra]] capturó el Estado de los neerlandeses, los ingleses renombraron tanto al Estado como a la ciudad localizada en Manhattan a ''Nueva York''. Nueva York fue una de las [[Trece Colonias|trece colonias]] británicas que se rebelaron en la [[Guerra de la Independencia de Estados Unidos]]. En este estado tuvieron lugar un tercio de todas las batallas de la guerra. Después de la guerra, Nueva York pasó a ser el 11º Estado en entrar a la Unión, el [[26 de julio]] de [[1788]]. Se convirtió en el más poblado del país por alrededor de [[1810]], aunque fue sobrepasado por California en la [[años 1960|década de 1960]] y por Texas en la [[años 1990|década de 1990]]. == Referencias == === Notas === <div class = "references-small"> <references/> </div> === Referencias generales === * [http://www.census.gov/ United States Census Bureau] * [https://web.archive.org/web/20140131171152/http://www.state.ny.us/ Web oficial del estado de Nueva York] * [http://www.ed.gov/index.jhtml United States Department of Education] * [http://www.bea.gov/ United States Department of Commerce] * [http://www.noaa.gov/ National Oceanic and Atmospheric Administration] * Klein, Milton M. The Empire State: ''A History of New York.'' Cornell University Press, 2001. ISBN 0-8014-3866-7 == Maga Enlace Externo == {{ipr|ccat=New York}} * [https://web.archive.org/web/20140131171152/http://www.state.ny.us/ Web oficial del Estado de Nueva York] * [http://www.iloveny.com/ Web oficial de turismo del Estado de Nueva York] {{Artículo destacado}} {{Wikiconcurso medalla artículo|Primer|6}} [[Categoría:Estados Unidos]] 9m9pacqdnwxgf08hmi24z4shhlg6tnn Comoras 0 1997 118889 114709 2026-10-11T08:35:55Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Komoras]] a [[Comoras]] 114709 wikitext text/x-wiki {{Infobox_País | nombre_oficial = ''Union des Comores''<br />''Udzima wa Komori''<br />اتحاد القمر<br />Unión de las Komoras | nombre_común = Komoras | de = de | imagen_bandera = Flag of the Comoros.svg | imagen_escudo = Seal of the Comoros.svg | imagen_escudo_tamaño = 125px | símbolos = | imagen_mapa = LocationComoros.svg | lema_nacional = ''Unité - Justice - Progrès'' <br />([[Idioma francés|francés]]: ''«Unidad - Justicia - Progreso»'') | himno_nacional = ''[[Udzima wa ya Masiwa]]'' | capital = [[Moroni]] | capital_población = 40.000 ([[2002]]) | capital_coor_fmt = | capital_coor = 11_45_S_43_12_E_ 11°45' S 43°12' E | ciudad_principal = [[Moroni]] | idiomas_oficiales = [[idioma fransés|Fransés]]<br /> [[Idioma komorano|Komorano]]<br /> [[idioma árabe|Árabe]]<br /> | gobierno = [[República presidencial]] | dirigentes_títulos = [[Presidente]] | dirigentes_nombres = [[Ahmed Abdallah Mohamed Sambi]] | fundación = [[Independencia]] | fundación_hitos = &nbsp;• Fecha | fundación_fechas = De [[Francia]]<br />[[6 de julio]] de [[1975]] | superficie = 1.862 | superficie_puesto = 180 | superficie_agua = Despreciable | fronteras = 0&nbsp;[[kilómetro|km]] | costas = 340&nbsp;km | población = 651.901 ([[2004]]) | población_puesto = 157 | población_densidad = 300 | PIB = US$ 1.114 millones | PIB_año = 2005 | PIB_puesto = 171 | PIB_per_cápita = US$ 1.717 | IDH = 0.547 | IDH_año = 2003 | IDH_puesto = 132 | IDH_categoría = <span style="color:#ffcc00;">medio</span> | moneda = [[Franco comorano]] (<code>[[ISO 4217|KMF]]</code>) | gentilicio = Comorano, comorana | horario = [[Tiempo Coordinado Universal|UTC]]+3 | horario_verano = [[Tiempo Coordinado Universal|UTC]]+3 | cctld = .km | código_telefónico = 269 | prefijo_radiofónico = D6A-D6Z | código_ISO = 174 / COM / KM | miembro_de = [[Naciones Unidas|ONU]], [[Unión Africana|UA]] | notas = }} La '''Unión de las Komoras''' (hasta [[2002]] ''República Federal Islámica de las Komoras'') es un país formado por tres [[isla]]s en el sureste de [[Áfrika]], situado al extremo norte del [[Canal de Mozambiko]] en el [[Oséano Índico]], entre el norte de [[Madagaskar]] y el norte de [[Mozambique]]. El país consta en tres islas volcánicas: [[Gran Komora]] (''Ngazidja''), [[Mohéli]] (''Mwali'') y [[Anjouan]] (''Nzwani''), mientras que la vecina isla de [[Mayotte]], reclamada por Comoras, sigue perteneciendo a [[Francia]]. El territorio comprende además otras pequeñas islas. El nombre deriva de la palabra [[idioma árabe|árabe]] قمر (''qamar''), "luna". El nombre actual en árabe es precisamente "islas de la luna" (جزر القمر, ''ŷuzuru l-qamar''), y en su [[bandera]] aparece la media luna musulmana. == Historia == {{AP|Historia de Komoras}} A través de los siglos, las islas de Komoras fueron invadidas por una sucesión de diversos grupos desde la costa de África, el [[golfo Pérsico]], [[Indonesia]] y [[Madagascar]]. Los exploradores [[Portugal|portugueses]] visitaron el archipiélago en [[1505]] y causaron la destrucción de la economía comercial de las islas. Cuando el sultán de [[Omán]] logró expulsar a los portugueses de la región, quedaron bajo la influencia de [[Zanzíbar]] y el tráfico de esclavos de los pobladores de origen bantú aumentó considerablemente. Durante el [[siglo XIX]], después de la separación de Zanzíbar del sultanato de Omán, los europeos presionaron y [[Francia]] ocupó [[Mayotte]] en [[1841]] y posteriormente al resto del archipiélago entre [[1886]] y [[1909]]. En [[1912]] las islas estuvieron bajo la administración del [[gobernador general]] de Madagascar. Después, colonizadores franceses, compañías de dueños franceses y ricos mercantes árabes establecieron una economía basada en plantaciones que ahora abarca una tercera parte del territorio del país para exportar sus cultivos. En [[1946]] Francia le concede autonomía administrativa con el nombre de Territorio de Ultramar de las Islas Comoras. Un acuerdo fue rechazado por Francia en [[1973]] para conceder la independencia en [[1978]]. Sin embargo, el [[6 de julio]] de [[1975]], el parlamento comorano emitió una resolución declarando la independencia. Los diputados de Mayotte, que permanecía bajo control francés, se abstuvo. En dos referéndum, en diciembre de [[1974]] y febrero de [[1976]], la población de Mayotte voto contra la independencia de Francia (por 63.8% y 99.4% respectivamente). En [[1978]], el presidente [[Alí Solilih]] es derrocado y asesinado y el país adopta una nueva constitución y se adopta el nombre de ''República Federal Islámica de las Comoras'' bajo el mando de [[Ahmed Abdallah Abderramane]]; al año siguiente se establece el régimen de partido único. En [[1983]] y [[1985]] fracasan unos intentos de [[golpe de Estado]] contra Abdallah, pero éste es asesinado en [[1989]]. En [[1995]] un grupo de mercenarios europeos encabezados por [[Bob Denard]] y apoyados por soldados comoranos derrocan el gobierno y toman como rehén al presidente [[Said Mohamed Yohar]]; pero fuerzas francesas especiales llegan desde Mayotte para revertir el golpe. En [[1997]], las islas de Anjouan y Mohéli declaran su independencia de Comoras, pero el gobierno logra reestablecer el control sobre los rebeldes. '''Véase también:''' [[Historia de Comoras-Mayotte]] == Gobierno y Política == {{AP|Gobierno y política de Comoras}} La situación del país ha sido muy volátil desde su independencia en [[1975]], con golpes de estado e insurrecciones populares. El coronel [[Azali Assoumani]] tomó el poder en un sangriento golpe de estado en abril de [[1999]], derrocando al presidente interino [[Tadjiddine Ben Said Massounde]] que había tomado el puesto después de la misteriosa muerte del presidente electo [[Mohamed Taki Abdoulkarim]] en noviembre de [[1998]]. Después de los acuerdos de [[paz]] firmados el [[17 de febrero]] de [[2001]] entre el [[Gobierno]] y los separatistas se elaboró una [[Constitución]] aprobada en [[referéndum]] el [[23 de diciembre]] del mismo año, pasándose a denominar el país ''Unión de Comoras'', teniendo las islas de [[Gran Comora]], [[Anjouan]] y [[Mohéli]] amplia autonomía, con un Presidente propio y un texto constitucional también propio. La Presidencia de la unión se rota entre los candidatos de las tres islas al cabo de cuatro años. El presidente en ejercicio es [[Ahmed Abdallah Mohamed Sambi]] desde [[2006]]. == Organización político-administrativa == {{AP|Organización político-administrativa de Comoras}} Se divide en las tres islas principales: * [[Gran Comora]] (''Ngazidja'') * [[Anjouan]] (''Nzwani'') * [[Mohéli]] (Mwali) ''Nota'': Existen también cuatro municipalidades: [[Domoni]], [[Fomboni]], [[Moroni]] y [[Mutsamudu]] == Geografía == {{AP|Geografía de Comoras}} [[Archivo:Comoros Mayotte.PNG|300px|thumb|right|Mapa de Comoras y [[Mayotte]]]] Comoras es un pequeño país de [[África]] y forma parte del archipiélago de las Comoras, formado de noreste a sureste por la isla [[Gran Comora]] (''Ngazidja''), [[Mohéli]] (''Mwali''), y [[Anjouan]] (''Nzwani''). Al sureste, se encuentra la isla de [[Mayotte]], que aún pertenede a [[Francia]]. La capital es [[Moroni]] que se localiza en Gran Comora. Las islas tiene origen [[volcán]]ico, con un relieve montañoso y abrupto que alcanza su cima en el volcán activo [[Karthala]] de 2.361&nbsp;[[metro|m]] de altitud sobre el nivel de mar en la isla principal. El archipiélago constituye la [[ecorregión]] denominada [[selva de las Comoras]]. El pez [[celacanto]], llamado ''gombesa'' por los locales, puede ser encontrado en las aguas cercanas a estas islas. == Economía == {{AP|Economía de Comoras}} Comoras es uno de los países más pobres de África. Su economía está basada en el [[turismo]], la [[ayuda externa]], la [[economía de subsistencia|agricultura de subsistencia]], además de la [[pesca]] y la [[silvicultura]], sector líder de la economía del país. Los niveles de [[desempleo]] son muy altos y la población bajo el nivel de [[pobre]]za alcanza al 60% del total. El 80% de la población se dedica a la agricultura que sigue constituyendo buena parte de sus exportaciones. Posee inadecuados sistemas e transportes, una joven y rápida población en crecimiento, y pocos recursos naturales. El bajo nivel educacional de la fuerza de trabajo contrbuye a una actividad económica de subsistencia, y una fuerte dependencia en asistencia extranjera. El gobierno intenta aumentar el entrenamiento educacional y técnico, a privatizar las entidades comerciales e industriales, a implementar servicios de salud, a diversificar las exportaciones, promover el [[turismo]] y reducir el alto crecimiento poblacional. == Demografía == {{AP|Demografía de Comoras}} La etnia comorana que habita las islas principales (86% de la población), es de origen árabe y africano. El [[Islam]] es la religión dominante, y las escuelas coránicas para niños refuerzan su influencia. Aunque la cultura árabe está firmemente establecido en el archipiélago, una minoría sustancial de los ciudadanos de [[Mayotte]] son [[católico]]s y tienen una fuerte influencia de la cultura francesa. El idioma más común es el [[comorano]] (''shikomor''), dialecto del [[swahili]]. También se habla [[idioma francés|francés]], [[árabe]] y [[idioma malgache|malgache]]. Cerca del 57% de la población escribe con el [[alfabeto latino]], más que con el [[alfabeto árabe]]. == Cultura == {{AP|Cultura de Comoras}} {| border="1" align="center" cellpadding="2" cellspacing="0" |+ <font size="+1">'''Fiestas'''</font> |----- ! style="background:#efefef;" | Fecha ! style="background:#efefef;" | Nombre en castellano ! style="background:#efefef;" | Nombre local ! style="background:#efefef;" | Notas |----- | [[25 de mayo]] || Día de [[África]] || | |----- | [[6 de julio]] || Día de Independencia | || |----- | [[29 de noviembre]] | Aniversario de la muerte de [[Ahmed Abdallah Abderramane]] | | Recuerdo del asesinato del ex presidente en [[1989]] |} == Enlaces externos == {{commonscat|Comoros}} {{wikiatlas|Comoros}} Otros enlaces: * [http://www.comores-online.com/ Les Comores]. (en francés) * BBC News [http://news.bbc.co.uk/2/hi/africa/country_profiles/1070727.stm Country Profile]. (en inglés) * [http://www-sul.stanford.edu/depts/ssrg/africa/comoros.html Comoro Islands Resources Page] de la Biblioteca de la Universidad de Stanford. (en inglés) * [http://www.sas.upenn.edu/African_Studies/Country_Specific/Comoros.html African Studies Program] de la Universidad de Pennsylvania. (en inglés) * [http://lcweb2.loc.gov/frd/cs/kmtoc.html Country Studies] de la Biblioteca del Congreso Americano. (en inglés) * El Banco Mundial ofrece un excelente [https://web.archive.org/web/20070706064631/http://web.worldbank.org/WBSITE/EXTERNAL/COUNTRIES/AFRICAEXT/COMOROSEXTN/0,,menuPK:349943~pagePK:141159~piPK:141110~theSitePK:349937,00.html resumen del estado económico del país]. (en inglés) * Departamento de Estado de los Estados Unidos: [http://www.state.gov/r/pa/ei/bgn/5236.htm Background Notes]. (en inglés) * CIA [https://web.archive.org/web/20060930071921/https://www.odci.gov/cia/publications/factbook/geos/cn.html World Factbook]. (en inglés) * Hay una entrada para [http://www.nationsencyclopedia.com/Africa/Comoros.html Comoras] en la Enciclopedia de las Naciones. (en inglés) * IMF ([http://www.imf.org/external/country/COM/index.htm International Monetary Fund]) publica también sobre Comoras. (en inglés) * [http://www.anjouan.net/ Anjouan.net] [[Categoría:Maga Nacion na Africa]] dtb79t9z2ej3w086i4p8jtxb3sllfat 118891 118889 2026-10-11T08:37:16Z ČarnaruskiVoin 13506 118891 wikitext text/x-wiki {{Infobox_País | nombre_oficial = ''Union des Comores''<br />''Udzima wa Komori''<br />اتحاد القمر<br />Unión de las Comoras | nombre_común = Comoras | de = de | imagen_bandera = Flag of the Comoros.svg | imagen_escudo = Seal of the Comoros.svg | imagen_escudo_tamaño = 125px | símbolos = | imagen_mapa = LocationComoros.svg | lema_nacional = ''Unité - Justice - Progrès'' <br />([[Idioma francés|francés]]: ''«Unidad - Justicia - Progreso»'') | himno_nacional = ''[[Udzima wa ya Masiwa]]'' | capital = [[Moroni]] | capital_población = 40.000 ([[2002]]) | capital_coor_fmt = | capital_coor = 11_45_S_43_12_E_ 11°45' S 43°12' E | ciudad_principal = [[Moroni]] | idiomas_oficiales = [[idioma fransés|Fransés]]<br /> [[Idioma comorano|Comorano]]<br /> [[idioma árabe|Árabe]]<br /> | gobierno = [[República presidencial]] | dirigentes_títulos = [[Presidente]] | dirigentes_nombres = [[Ahmed Abdallah Mohamed Sambi]] | fundación = [[Independencia]] | fundación_hitos = &nbsp;• Fecha | fundación_fechas = De [[Francia]]<br />[[6 de julio]] de [[1975]] | superficie = 1.862 | superficie_puesto = 180 | superficie_agua = Despreciable | fronteras = 0&nbsp;[[kilómetro|km]] | costas = 340&nbsp;km | población = 651.901 ([[2004]]) | población_puesto = 157 | población_densidad = 300 | PIB = US$ 1.114 millones | PIB_año = 2005 | PIB_puesto = 171 | PIB_per_cápita = US$ 1.717 | IDH = 0.547 | IDH_año = 2003 | IDH_puesto = 132 | IDH_categoría = <span style="color:#ffcc00;">medio</span> | moneda = [[Franco comorano]] (<code>[[ISO 4217|KMF]]</code>) | gentilicio = Comorano, comorana | horario = [[Tiempo Coordinado Universal|UTC]]+3 | horario_verano = [[Tiempo Coordinado Universal|UTC]]+3 | cctld = .km | código_telefónico = 269 | prefijo_radiofónico = D6A-D6Z | código_ISO = 174 / COM / KM | miembro_de = [[Naciones Unidas|ONU]], [[Unión Africana|UA]] | notas = }} La '''Unión de las Comoras''' (hasta [[2002]] ''República Federal Islámica de las Komoras'') es un país formado por tres [[isla]]s en el sureste de [[Áfrika]], situado al extremo norte del [[Canal de Mozambiko]] en el [[Oséano Índico]], entre el norte de [[Madagaskar]] y el norte de [[Mozambique]]. El país consta en tres islas volcánicas: [[Gran Comora]] (''Ngazidja''), [[Mohéli]] (''Mwali'') y [[Anjouan]] (''Nzwani''), mientras que la vecina isla de [[Mayotte]], reclamada por Comoras, sigue perteneciendo a [[Francia]]. El territorio comprende además otras pequeñas islas. El nombre deriva de la palabra [[idioma árabe|árabe]] قمر (''qamar''), "luna". El nombre actual en árabe es precisamente "islas de la luna" (جزر القمر, ''ŷuzuru l-qamar''), y en su [[bandera]] aparece la media luna musulmana. == Historia == {{AP|Historia de Comoras}} A través de los siglos, las islas de Comoras fueron invadidas por una sucesión de diversos grupos desde la costa de África, el [[golfo Pérsico]], [[Indonesia]] y [[Madagascar]]. Los exploradores [[Portugal|portugueses]] visitaron el archipiélago en [[1505]] y causaron la destrucción de la economía comercial de las islas. Cuando el sultán de [[Omán]] logró expulsar a los portugueses de la región, quedaron bajo la influencia de [[Zanzíbar]] y el tráfico de esclavos de los pobladores de origen bantú aumentó considerablemente. Durante el [[siglo XIX]], después de la separación de Zanzíbar del sultanato de Omán, los europeos presionaron y [[Francia]] ocupó [[Mayotte]] en [[1841]] y posteriormente al resto del archipiélago entre [[1886]] y [[1909]]. En [[1912]] las islas estuvieron bajo la administración del [[gobernador general]] de Madagascar. Después, colonizadores franceses, compañías de dueños franceses y ricos mercantes árabes establecieron una economía basada en plantaciones que ahora abarca una tercera parte del territorio del país para exportar sus cultivos. En [[1946]] Francia le concede autonomía administrativa con el nombre de Territorio de Ultramar de las Islas Comoras. Un acuerdo fue rechazado por Francia en [[1973]] para conceder la independencia en [[1978]]. Sin embargo, el [[6 de julio]] de [[1975]], el parlamento comorano emitió una resolución declarando la independencia. Los diputados de Mayotte, que permanecía bajo control francés, se abstuvo. En dos referéndum, en diciembre de [[1974]] y febrero de [[1976]], la población de Mayotte voto contra la independencia de Francia (por 63.8% y 99.4% respectivamente). En [[1978]], el presidente [[Alí Solilih]] es derrocado y asesinado y el país adopta una nueva constitución y se adopta el nombre de ''República Federal Islámica de las Comoras'' bajo el mando de [[Ahmed Abdallah Abderramane]]; al año siguiente se establece el régimen de partido único. En [[1983]] y [[1985]] fracasan unos intentos de [[golpe de Estado]] contra Abdallah, pero éste es asesinado en [[1989]]. En [[1995]] un grupo de mercenarios europeos encabezados por [[Bob Denard]] y apoyados por soldados comoranos derrocan el gobierno y toman como rehén al presidente [[Said Mohamed Yohar]]; pero fuerzas francesas especiales llegan desde Mayotte para revertir el golpe. En [[1997]], las islas de Anjouan y Mohéli declaran su independencia de Comoras, pero el gobierno logra reestablecer el control sobre los rebeldes. '''Véase también:''' [[Historia de Comoras-Mayotte]] == Gobierno y Política == {{AP|Gobierno y política de Comoras}} La situación del país ha sido muy volátil desde su independencia en [[1975]], con golpes de estado e insurrecciones populares. El coronel [[Azali Assoumani]] tomó el poder en un sangriento golpe de estado en abril de [[1999]], derrocando al presidente interino [[Tadjiddine Ben Said Massounde]] que había tomado el puesto después de la misteriosa muerte del presidente electo [[Mohamed Taki Abdoulkarim]] en noviembre de [[1998]]. Después de los acuerdos de [[paz]] firmados el [[17 de febrero]] de [[2001]] entre el [[Gobierno]] y los separatistas se elaboró una [[Constitución]] aprobada en [[referéndum]] el [[23 de diciembre]] del mismo año, pasándose a denominar el país ''Unión de Comoras'', teniendo las islas de [[Gran Comora]], [[Anjouan]] y [[Mohéli]] amplia autonomía, con un Presidente propio y un texto constitucional también propio. La Presidencia de la unión se rota entre los candidatos de las tres islas al cabo de cuatro años. El presidente en ejercicio es [[Ahmed Abdallah Mohamed Sambi]] desde [[2006]]. == Organización político-administrativa == {{AP|Organización político-administrativa de Comoras}} Se divide en las tres islas principales: * [[Gran Comora]] (''Ngazidja'') * [[Anjouan]] (''Nzwani'') * [[Mohéli]] (Mwali) ''Nota'': Existen también cuatro municipalidades: [[Domoni]], [[Fomboni]], [[Moroni]] y [[Mutsamudu]] == Geografía == {{AP|Geografía de Comoras}} [[Archivo:Comoros Mayotte.PNG|300px|thumb|right|Mapa de Comoras y [[Mayotte]]]] Comoras es un pequeño país de [[África]] y forma parte del archipiélago de las Comoras, formado de noreste a sureste por la isla [[Gran Comora]] (''Ngazidja''), [[Mohéli]] (''Mwali''), y [[Anjouan]] (''Nzwani''). Al sureste, se encuentra la isla de [[Mayotte]], que aún pertenede a [[Francia]]. La capital es [[Moroni]] que se localiza en Gran Comora. Las islas tiene origen [[volcán]]ico, con un relieve montañoso y abrupto que alcanza su cima en el volcán activo [[Karthala]] de 2.361&nbsp;[[metro|m]] de altitud sobre el nivel de mar en la isla principal. El archipiélago constituye la [[ecorregión]] denominada [[selva de las Comoras]]. El pez [[celacanto]], llamado ''gombesa'' por los locales, puede ser encontrado en las aguas cercanas a estas islas. == Economía == {{AP|Economía de Comoras}} Comoras es uno de los países más pobres de África. Su economía está basada en el [[turismo]], la [[ayuda externa]], la [[economía de subsistencia|agricultura de subsistencia]], además de la [[pesca]] y la [[silvicultura]], sector líder de la economía del país. Los niveles de [[desempleo]] son muy altos y la población bajo el nivel de [[pobre]]za alcanza al 60% del total. El 80% de la población se dedica a la agricultura que sigue constituyendo buena parte de sus exportaciones. Posee inadecuados sistemas e transportes, una joven y rápida población en crecimiento, y pocos recursos naturales. El bajo nivel educacional de la fuerza de trabajo contrbuye a una actividad económica de subsistencia, y una fuerte dependencia en asistencia extranjera. El gobierno intenta aumentar el entrenamiento educacional y técnico, a privatizar las entidades comerciales e industriales, a implementar servicios de salud, a diversificar las exportaciones, promover el [[turismo]] y reducir el alto crecimiento poblacional. == Demografía == {{AP|Demografía de Comoras}} La etnia comorana que habita las islas principales (86% de la población), es de origen árabe y africano. El [[Islam]] es la religión dominante, y las escuelas coránicas para niños refuerzan su influencia. Aunque la cultura árabe está firmemente establecido en el archipiélago, una minoría sustancial de los ciudadanos de [[Mayotte]] son [[católico]]s y tienen una fuerte influencia de la cultura francesa. El idioma más común es el [[comorano]] (''shikomor''), dialecto del [[swahili]]. También se habla [[idioma francés|francés]], [[árabe]] y [[idioma malgache|malgache]]. Cerca del 57% de la población escribe con el [[alfabeto latino]], más que con el [[alfabeto árabe]]. == Cultura == {{AP|Cultura de Comoras}} {| border="1" align="center" cellpadding="2" cellspacing="0" |+ <font size="+1">'''Fiestas'''</font> |----- ! style="background:#efefef;" | Fecha ! style="background:#efefef;" | Nombre en castellano ! style="background:#efefef;" | Nombre local ! style="background:#efefef;" | Notas |----- | [[25 de mayo]] || Día de [[África]] || | |----- | [[6 de julio]] || Día de Independencia | || |----- | [[29 de noviembre]] | Aniversario de la muerte de [[Ahmed Abdallah Abderramane]] | | Recuerdo del asesinato del ex presidente en [[1989]] |} == Enlaces externos == {{commonscat|Comoros}} {{wikiatlas|Comoros}} Otros enlaces: * [http://www.comores-online.com/ Les Comores]. (en francés) * BBC News [http://news.bbc.co.uk/2/hi/africa/country_profiles/1070727.stm Country Profile]. (en inglés) * [http://www-sul.stanford.edu/depts/ssrg/africa/comoros.html Comoro Islands Resources Page] de la Biblioteca de la Universidad de Stanford. (en inglés) * [http://www.sas.upenn.edu/African_Studies/Country_Specific/Comoros.html African Studies Program] de la Universidad de Pennsylvania. (en inglés) * [http://lcweb2.loc.gov/frd/cs/kmtoc.html Country Studies] de la Biblioteca del Congreso Americano. (en inglés) * El Banco Mundial ofrece un excelente [https://web.archive.org/web/20070706064631/http://web.worldbank.org/WBSITE/EXTERNAL/COUNTRIES/AFRICAEXT/COMOROSEXTN/0,,menuPK:349943~pagePK:141159~piPK:141110~theSitePK:349937,00.html resumen del estado económico del país]. (en inglés) * Departamento de Estado de los Estados Unidos: [http://www.state.gov/r/pa/ei/bgn/5236.htm Background Notes]. (en inglés) * CIA [https://web.archive.org/web/20060930071921/https://www.odci.gov/cia/publications/factbook/geos/cn.html World Factbook]. (en inglés) * Hay una entrada para [http://www.nationsencyclopedia.com/Africa/Comoros.html Comoras] en la Enciclopedia de las Naciones. (en inglés) * IMF ([http://www.imf.org/external/country/COM/index.htm International Monetary Fund]) publica también sobre Comoras. (en inglés) * [http://www.anjouan.net/ Anjouan.net] [[Categoría:Maga Nacion na Africa]] gsfdril2hsxi25rre302ck1287zyguf Libia 0 7567 118886 112977 2026-10-11T08:35:12Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Libya]] a [[Libia]] sobre una redirección 112977 wikitext text/x-wiki [[Archivo:Libya in its region.svg|thumb]] [[Archivo:Flag of Libya.svg|thumb|250px]] '''Libia''' (na arabe: Lībiyā ليبيا, Nafusi: Libia) es un país de el region del Magreb del norte de [[Africa]]. Bordeado por el Mar Mediterráneo al norte, Libia se enfrenta a Egipto hacia el este, el Sudán, al sur este, [[Chad]] y [[Níger]], al sur, y Argelia y Túnez hacia el weste. Como resultado del [[Rebelión en Libia de 2011|levantamiento de 2011 Libia]], na el actualidad hay dos entidades que dicen ser el oficial del gobierno de Libia. El régimen de [[Muamar Gadafi]], que se refiere al país como Libya Popular y Socialista Arabe Libia, [[Trípoli]] y la mayoría de la mitad occidental del país. El Consejo Nacional de Transición de la República de Libia, dirigida por Mustafa Abdul Jalil, se basa en Bengasi y controla la mayoría de la mitad oriental del país. Francia y [[Portugal]] han reconocido oficialmente el Consejo como el único "representante legítimo" de Libia. Con una superficie de casi 1.800.000 kilometros cuadrados (700.000 millas cuadradas), Libia es el cuarto país más grande de África por área, y el mayor 17 º en el mundo. La capital, Trípoli, es el hogar de 1,7 millones de Libia de 6,4 millones personas. Las tres partes tradicionales del país son Tripolitania, Fezzan y Cirenaica. Libia tiene el IDH más alto na África y el cuarto mayor PIB (PPA) per cápita na África a partir de 2009, detrás de las Seychelles, [[Guinea Ecuatorial]] y [[Gabón]]. Estos son na gran parte debido a sus grandes reservas de petróleo y de populacion. Libia tiene las magas reservas más grandes décimo-probadas de petróleo de un país na el mundo y el producción de petróleo de más alto 17a. [[Categoría:Maga Nacion na Africa]] h0m8ccr31qhbgammeru83re4xvv60ou 118888 118886 2026-10-11T08:35:39Z ČarnaruskiVoin 13506 118888 wikitext text/x-wiki [[Archivo:Libya in its region.svg|thumb]] [[Archivo:Flag of Libya.svg|thumb|250px]] '''Libia''' (na arabe: Lībiyā ليبيا, Nafusi: Libia) es un país de el region del Magreb del norte de [[Africa]]. Bordeado por el Mar Mediterráneo al norte, Libia se enfrenta a Egipto hacia el este, el Sudán, al sur este, [[Chad]] y [[Níger]], al sur, y Argelia y Túnez hacia el weste. Como resultado del [[Rebelión en Libia de 2011|levantamiento de 2011 Libia]], na el actualidad hay dos entidades que dicen ser el oficial del gobierno de Libia. El régimen de [[Muamar Gadafi]], que se refiere al país como Libia Popular y Socialista Arabe Libia, [[Trípoli]] y la mayoría de la mitad occidental del país. El Consejo Nacional de Transición de la República de Libia, dirigida por Mustafa Abdul Jalil, se basa en Bengasi y controla la mayoría de la mitad oriental del país. Francia y [[Portugal]] han reconocido oficialmente el Consejo como el único "representante legítimo" de Libia. Con una superficie de casi 1.800.000 kilometros cuadrados (700.000 millas cuadradas), Libia es el cuarto país más grande de África por área, y el mayor 17 º en el mundo. La capital, Trípoli, es el hogar de 1,7 millones de Libia de 6,4 millones personas. Las tres partes tradicionales del país son Tripolitania, Fezzan y Cirenaica. Libia tiene el IDH más alto na África y el cuarto mayor PIB (PPA) per cápita na África a partir de 2009, detrás de las Seychelles, [[Guinea Ecuatorial]] y [[Gabón]]. Estos son na gran parte debido a sus grandes reservas de petróleo y de populacion. Libia tiene las magas reservas más grandes décimo-probadas de petróleo de un país na el mundo y el producción de petróleo de más alto 17a. [[Categoría:Maga Nacion na Africa]] dy5us04gzu4g0kt7gdgyw7ml83qv8mt Suazilandia 0 20061 118880 117149 2026-10-11T08:30:12Z ČarnaruskiVoin 13506 118880 wikitext text/x-wiki {{stub}} [[file:Flag of Eswatini.svg|thumb|160px|Flag of Eswatini]] [[file:Coat_of_arms_of_Eswatini.svg|thumb|160px|Coat of arms of Eswatini]] [[file: Location Eswatini AU Africa.svg|thumb|Location Eswatini]] '''Suazilandia''' o '''Esuatini''' (''Umbuso weSwatini'', ''Kingdom of Eswatini'') es un pais na [[Africa]] con las sus maga frontieras ay con [[Sudafrica]] y [[Mozambique]]. El ciudad capital y el ciudad mas importante es [[Mbabane]] y [[Lombamba]]. <br /> <br /> [[File:Eswatini Regions map.png|400px|Universal map of Eswatini]] [[File:Eswatini-demography.svg|thumb|Population development of Eswatini in 1000 inhabitants|<ref>[https://esa.un.org/unpd/wpp/DataQuery World Population Prospects – Population Division – United Nations 2020] Retrieved 2020-05-25</ref>]] [[File:Eswatini-population-pyramid-2020.jpg|thumb|Age pyramid of Eswatini|<ref>[https://www.cia.gov/library/publications/the-world-factbook/geos/wz.html Eswatini – People and Society], CIA-population: The World Factbook 2020-07, Retrieved 2020-08-15, english</ref>]] == External links == * [http://www.gov.sz/ The Government of The Kingdom of Eswatini], (Government website, English) * [https://www.thekingdomofeswatini.com/ The Kingdom of Eswatini – a royal experience], official Eswatini tourism website (richly illustrated, English) * [https://web.archive.org/web/20200803094854/http://sntc.org.sz/ Eswatini National Trust Commission – Conserving Eswatini's Natural and Cultural Heritage], (very extensive descriptions of history, culture and nature, English) * [http://www.biggameparks.org/ The Kingdom of Eswatini's Big Game Parks] (page about the three big game parks, english) * [https://web.archive.org/web/20181231101755/https://www.cia.gov/library/publications/resources/the-world-factbook/geos/wz.html Eswatini – CIA World Factbook] == References == <references/> {{commons|Eswatini}}<!--interwiki--> [[Categoría:Maga Nacion na Africa]] 7ozksfp3pqyetyxvso4r1wh1hx29y9t 118881 118880 2026-10-11T08:30:18Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Eswatini]] a [[Suazilandia]] 118880 wikitext text/x-wiki {{stub}} [[file:Flag of Eswatini.svg|thumb|160px|Flag of Eswatini]] [[file:Coat_of_arms_of_Eswatini.svg|thumb|160px|Coat of arms of Eswatini]] [[file: Location Eswatini AU Africa.svg|thumb|Location Eswatini]] '''Suazilandia''' o '''Esuatini''' (''Umbuso weSwatini'', ''Kingdom of Eswatini'') es un pais na [[Africa]] con las sus maga frontieras ay con [[Sudafrica]] y [[Mozambique]]. El ciudad capital y el ciudad mas importante es [[Mbabane]] y [[Lombamba]]. <br /> <br /> [[File:Eswatini Regions map.png|400px|Universal map of Eswatini]] [[File:Eswatini-demography.svg|thumb|Population development of Eswatini in 1000 inhabitants|<ref>[https://esa.un.org/unpd/wpp/DataQuery World Population Prospects – Population Division – United Nations 2020] Retrieved 2020-05-25</ref>]] [[File:Eswatini-population-pyramid-2020.jpg|thumb|Age pyramid of Eswatini|<ref>[https://www.cia.gov/library/publications/the-world-factbook/geos/wz.html Eswatini – People and Society], CIA-population: The World Factbook 2020-07, Retrieved 2020-08-15, english</ref>]] == External links == * [http://www.gov.sz/ The Government of The Kingdom of Eswatini], (Government website, English) * [https://www.thekingdomofeswatini.com/ The Kingdom of Eswatini – a royal experience], official Eswatini tourism website (richly illustrated, English) * [https://web.archive.org/web/20200803094854/http://sntc.org.sz/ Eswatini National Trust Commission – Conserving Eswatini's Natural and Cultural Heritage], (very extensive descriptions of history, culture and nature, English) * [http://www.biggameparks.org/ The Kingdom of Eswatini's Big Game Parks] (page about the three big game parks, english) * [https://web.archive.org/web/20181231101755/https://www.cia.gov/library/publications/resources/the-world-factbook/geos/wz.html Eswatini – CIA World Factbook] == References == <references/> {{commons|Eswatini}}<!--interwiki--> [[Categoría:Maga Nacion na Africa]] 7ozksfp3pqyetyxvso4r1wh1hx29y9t Yibuti 0 20062 118883 112967 2026-10-11T08:33:59Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Djibouti]] a [[Yibuti]] sobre una redirección 112967 wikitext text/x-wiki [[Archivo:Flag of Djibouti.svg|thumb|250px]] '''Djibouti,''' oficialmente '''República de Djibouti''' (Francés: République de Djibouti, Árabe: جمهورية جيبوتي ) es un país na [[Africa]] con las sus maga frontieras ay con [[Eritrea]], [[Etiopía]] y [[Somalia]]. El ciudad mas importante y el capital es el [[Djibouti (ciudad)|Cuidad de Djibouti]]. [[Categoría:Maga Nacion na Africa]] sj8ztrxea3oird9qvtyjk4g2ef08xqf 118885 118883 2026-10-11T08:34:52Z ČarnaruskiVoin 13506 118885 wikitext text/x-wiki [[Archivo:Flag of Djibouti.svg|thumb|250px]] '''Yibuti''', oficialmente '''República de Yibuti''' (Francés: République de Djibouti, Árabe: جمهورية جيبوتي ) es un país na [[Africa]] con las sus maga frontieras ay con [[Eritrea]], [[Etiopía]] y [[Somalia]]. El ciudad mas importante y el capital es la [[Cuidad de Yibuti]]. [[Categoría:Maga Nacion na Africa]] q6d5h65v3b89njwkbsifcg5938dqoln Lesoto 0 21119 118892 97478 2026-10-11T08:37:53Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Lesotho]] a [[Lesoto]] 97478 wikitext text/x-wiki {{stub}} [[Archivo:Flag of Lesotho.svg|thumb|250px]] '''Lesotho''' (''Muso oa Lesotho'', ''Kingdom of Lesotho'') es un pais na [[Africa]] con las sus maga frontieras ay con [[Sudafrica]]. El ciudad capital y el ciudad mas importante es [[Maseru]]. [[Categoría:Maga Nacion na Africa]] ome5ji4vij5v1dgedkanpxg2l6k6fyv 118894 118892 2026-10-11T08:38:27Z ČarnaruskiVoin 13506 118894 wikitext text/x-wiki {{stub}} [[Archivo:Flag of Lesotho.svg|thumb|250px]] '''Lesoto''' (''Muso oa Lesotho'', ''Kingdom of Lesotho'') es un pais na [[Africa]] con las sus maga frontieras ay con [[Sudafrica]]. El ciudad capital y el ciudad mas importante es [[Maseru]]. [[Categoría:Maga Nacion na Africa]] 0jakrr5a8obi8s9xlleogn8v3mpejf8 Catar 0 21165 118895 118840 2026-10-11T08:39:32Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Qatar]] a [[Catar]] 118840 wikitext text/x-wiki [[Archivo:Flag of Qatar.svg|thumb|250px|Bandera del Qatar]] '''Qatar''' (دولة قطر, ''Dawlat Qaṭar'', {{lang-es|Catar}}), oficialmente el [[Estado de Qatar]], es un nacion na [[Occidental Asia]]. Ta ocupa ele con el [[Geografia de Qatar|Peninsula de Qatar]] na el costa noreste del [[Arabigo Peninsula]] na el [[Medio Oriente]]; el unico frontera del pais es un [[frontera entre Arabia Saudita y Qatar]] al sur; y ta rodea el [[Persico Golfo]] con el resto del de suyo territorio. Ta separa el [[Golfo de Bahréin]], un ensenada del Persico Golfo, con Qatar del cercano [[Bahréin]]. El capital es [[Doha]], el hogar de mas del 80% del maga habitante del pais, y el terrestre superficie compuesto principalmente de plano y bajo desierto. Gobernao Qatar como un [[hereditario monarquía]] por el [[Casa de Thani]] desde que ya afirma si [[Mohamed bin Thani]] con "un acuerdo, hinde un formal tratao" ({{lang-en|an agreement, not a formal treaty}}) con [[Bretaña]] na 1868 que ya reconoce con el de suyo distinto estado. Despues del gobierno del [[otomano Imperio]], ya queda Qatar un [[britanico protectorao]] na 1916 y ya gana con el [[independencia]] na 1971. El actual [[emir]] si [[Tamim bin Hamad Al Thani]], que ta tene con casi todo el maga ejecutivo, legislativo y judicial autoridad na virtud del [[Constitucion de Qatar]]. Ta designa ele con el [[primer ministro de Qatar|primer ministro]] y el [[gabinete de Qatar|gabinete]] del pais. Puede el [[Consultivo Asamblea de Qatar]], parcialmente electo, bloquea con legislacion, y ta tene ele con un limitao capacidad de dimiti con maga ministro. A maga principio de 2017, el poblacion de Qatar fue 2.6 million: 313.000 maga qatari ciudadano y 2,3 maga millon de maga [[expatriao]]. El [[islam]] el [[oficial religon]]. Ta tene el pais con el aca-4 mas alto [[Lista de maga pais por IBP|IBP per capita]] na el mundo y el aca-11 mas alto [[Lista de maga pais por BNI|BNI per capita]]. Es el aca-42 pais na el [[Indice de Humano Desarrollo]], el aca-3 mas alto IHD na el [[arabe mundo]]. Qatar es uno del maga mayor mundial exportador de [[licuao natural gas]] y el mayor mundial emisor de [[dioxido de carbono]] per capita. Na el aca-21 siglo, ya emerge Qatar, y como un [[importante aliado extra-OTAN]] del [[Estados Unidos]], y como un medio potencia en el arabe mundo. Ya crece el de suyo economía rapidamente gracias al de suyo riqueza na maga recurso, y ya crece el de suyo geopolitico poder gracias al de suyo grupo de maga medio, el [[red de maga medio Al Jazeera]], que ya soporta para maga rebelde grupo financieramente durante el [[Arabe Primavera]]. Tambien ta forma Qatar con parte del [[Consejo de Cooperacion para el maga Arabe Estado del Golfo]]. == Etimologia == Ya documenta si [[Plinio el Viejo]], un romano escritor, con el mas antiguo relato sobre el maga habitante del peninsula alrededor del maga mediao del primer siglo AEC, refiriendo a ellos como el maga ''Catharrei'', un designacion baka derivao del nombre de un local prominente asentamiento. Un siglo mas tarde, ya produci si [[Claudio Ptolomeo]] con el primer conocio mapa que ta representa con el peninsula, refiriendo a el como ''Catara''. Tambien ya referencia el mapa con un pueblo nombrao ''Cadara'' al este del peninsula. Exclusivamente usao el termino ''Catara'' (el [[gentilicio]] ''Cataraei'') hasta el aca-19 siglo, despues del cual ya emerge ''Katara'' como el mas reconocio ortografia. Eventualmente, después de cuanto variacion —"Katr", "Kattar" y "Guttur"—, adoptao el moderno derivao Qatar como el nombre del pais. Na el [[moderno estandar arabe]], pronunciao el nombre como {{IPA-ar|ˈqɑtˤɑr|}}, mientras que na el [[arabe del Golfo|local dialecto]] es {{IPA-ar|ˈɡɪtˤɑr|}}. Na chavacano (y español) ta usa kita con maga diferente aproximacion del nombre, kay ta usa el [[fonologia del arabe]] con maga sonido hinde frecuentemente incuntrao na el de kanaton maga idioma. == Historia == {{AP|Historia de Qatar}} === Antigüedad === [[File:Excavated site on Al Khor Island.jpg|thumb|Excavacion de un sitio de [[maga casita|casita]] tinte na el [[isla de Jor]].]] Ta remonta a casi 50,000 maga año antes del presente el humano habitacion na Qatar. Na el peninsula desenterrao maga asentamiento y maga herramienta desde el [[Edad de Piedra]]. Na en abandonao costero asentamientos descubierto maga [[mesopotamico]] artefacto originario del [[periodo de El Obeid]] (c. 6500-3800 AEC.) [[Al Da'asa]], un asentamiento situao na el occidental costa de Qatar, el mas importante sitio de El Obeid na el pais y baka ya aloja con un chico campamento de temporada. Incuntrao na el [[isla de Jor]] maga materia del [[maga casita]] de [[Babilonia]], remontando al segundo milenio AEC. Ta atestigua esto al maga comercial relacion entre el maga habitante de Qatar y el maga casita na el actual [[Bahréin]]. Entre el maga descubrimiento ya tiene maga triturao [[concha]] de [[caracol]] y maga tiesto de maga vasija del maga casita. Sugerio que Qatar el mas temprano conocio sitio del produccion del tinte de maga concha, gracias a un industria de [[purpura de Tiro]] que ya existi na el costa controlao por el maga casita. Na 224 EC, ya logra el [[sasanida Imperio]] con el control del maga territorio que ta rodea con el Persico Golfo. Ya desempeña Qatar con un papel na el comercial actividad del maga sasanida, aportando con al menos dos maga mercancía: el maga preciosa [[perla]] y el purpura tinte. Bajo el sasanido reino, ya conoce manada habitante de oriental Arabia con el [[cristianismo]] despues del dispersion del religion hacia el este por parte del maga mesopotamico cristiano. Construio maga monasterio y establecio otro maga asentamiento durante este epoca. Durante el ultimo parte del era cristiana (i.e. antes del [[expansion del islam]]) ya comprende Qatar con un region conocio como ''Beth Qatraye'' (que na el [[siríaco idioma]] ta significa "casa del maga qatarí"). Hinde limitao el region a Qatar: ya inclui tambien con [[Bahréin]], el [[isla Tarut]], [[Al-Khatt]] y [[Al-Hasa]]. Na 628, ya envia el islamico profeta si [[Mahoma]] con un musulman a un gobernante na el este de Arabia llamado si [[Munzir ibn Sawa Al-Tamimi]] con un peticion de que ya acepta ele y el de suyo maga sujeto con el islam. Ya accede si Munzir a este peticion, y na consecuencia, [[conversion al islam|ya converti al islam]] el mayoria del maga tribu arabe del region. A maga mediao del siglo, ya causa el [[musulman conquista de Persia]] con el caida del [[sasanida Imperio]]. === Temprano y tardio islamico periodo (661–1783) === [[File:Abbasids850.png|thumb|left|El [[abasi califato]] na el de suyo mayor extension, c. 850 EC.]] Descrito Qatar como un famoso centro de cria de maga caballo y maga camello durante el [[omeya califato]]. Durante el aca-8 siglo, ya comenza a beneficiar del de suyo comercialmente estrategico posicion na el Persico Golfo y ya convirti na un centro de comercio de perlas. Durante el [[abasi califato]] ya ocurri sustancial desarrollo del perlero industria na el peninsula de Qatar. Ya hace el maga barco, que ya viaja de [[Basora]] al [[India]] y a [[China]], con maga escala na el maga puerto de Qatar durante este periodo. Na Qatar descubierto maga [[chino ceramica y porcelana]], maga [[cen]] de Occidental Africa y maga tailandes artefacto. Ta sugeri maga arqueologico resto, del aca-9 siglo, que ya utiliza el maga habitante de Qatar con el mayor riqueza para construi con maga vivienda y maga publico edificio de mayor calidad. Durante este periodo, construio mas de 100 maga casa de piedra, dos maga [[mezquita]] y un abasi fortaleza na [[Murwab]]. Cuando ya declina el prosperidad del califato na Iraq, ansina mismo ya declina na Qatar. Mencionao Qatar na el libro [[Mu'jam Al-Buldan]] por si [[Yaqut al-Hamawi]] del aca-13 siglo, que ya aludi al maga fino capa tejio a maga raya del maga qatari, y al habilidad del maga qatari na el mejora y acabado del maga [[lanza]]. Na 1253 ya controla el dinastia [[usfurida]] con el mayoria del occidental Arabia, pero na 1350 ya toma el principe de [[Ormuz (ciudad)|Ormuz]] con el control del region. Al reino ya proporciona el maga perla de Qatar con un principal fuente de maga ingreso. Na 1515, hace si [[Manuel I de Portugal]] con el Reino de Ormuz un vasallo de [[Portugal]]. Entonces ya apodera Portugal de un significativo parte de oriental Arabia na 1521. Na 1550, ya somete voluntariamente el maga habitante de [[Al-Hasa]] al dominio del maga otomano, prefiriendo con ellos al maga portugues. === Portugues era === Despues del caida del dinastía jabrid con el conquista de Bahréin por el maga portugues, ya queda el arabigo costa hasta [[Uqair|Al Hassa]] bajo el dominio y el influencia del portugues imperio, que ya elimina con maga intento del maga otomano de domina con el region, por el reconquista del [[castillo de Tarout]] o [[Asedio de Qatif (1551)]]. Excavao pa maga arqueologico descubrimiento desde uno del maga portugues fortaleza que ya servi de base para domina con el region como Ruwayda. Ta aparece el primero representacion de Qatar na el portugues mapa de si Luis Lázaro en 1563, mostrando con el "ciudad de Qatar" como una fortaleza. Expulsao el maga otomano, que ya mantene con un insignificante militar presencia na el area, por el tribu [[Bani Khalid (tribu)|Bani Khalid]] y [[Emirato de Bani Khalid|el de ellos emirato]] na 1670. === Bahreini y saudi gobierno (1783–1868) === [[File:Map of Catura (Qatar) 1794 (cropped).jpg|thumb|left|Un mapa de 1794 por si [[Samuel Dunn (matematico)|Samuel Dunn]] representando con ''Catura'' (al centro) na el [[occidental Arabia]].]] Na 1766, ya migra de [[Kuwait]] a [[Zubarah]] na Qatar maga miembro del familia [[Al Jalifa]] del tribal confederacion [[Utub]]. Al hora del de ellos llegada, ya ejerce el Bani Khalid con un debil autoridad sobre la peninsula, a pesar del hecho de que ya goberna el de ellos maga lejano pariente con el mas grande aldea. Na 1783, ya invadi y ya anexa maga clan del [[Bani Utbah]], y maga aliado arabe tribu, con [[Bahréin]] del maga persa. Ya impone el maga Al Khalifa con el de ellos autoridad sobre Bahréin y ya conserva ellos con el de ellos jurisdiccion sobre Zubarah. Tras el de suyo juramento como heredero principe del [[Emirato de Diriyah|maga wahabí]] na 1788, ya move si Saud ibn Abd al-Aziz para expandi con el wahabi territorio hacia el este, hacia el Persico Golfo y Qatar. Despues de derrota con el maga Bani Khalid na 1795, atacao el maga wahabi na dos maga frente. Ya asalta el maga otomano y el maga egipcio con el occidental frente, mientras que ya lanza el maga Al Khalifa na Bahréin y el maga [[omani]] con un ataque contra el oriental frente. Al entera del egipcio avance na el occidental frontera na 1811, ya reduci el emir wahabi con el de suyo maga guarnicion na Bahrein y Zubarah para redesplega con el maga tropa. Ya ventaja de este oportunidad si [[Said bin Sultain]], gobernante de [[Mascate]], y ya ataca con el maga wahabi guarnicion na el oriental costa, incendiando con el fortaleza de Zubarah. Despues de esto, efectivamente ya volve al poder el maga Al Khalifa. [[File:Qatar, Zubarah (10), ruined city.JPG|thumb|Un parcialmente restaurao seccion del ciudad na maga ruina de [[Zubarah]].]] Como castigo por el [[pirateria]], ya bombardea un buque del [[Britanico Compañia del maga Oriental India]] con [[Doha]] na 1821, destruyendo con el ciudad y obligando con maga ciento de maga residente a huir. Na 1825, establecio el [[Casa de Thani]] con el [[jeque]] si [[Mohamed bin Thani]] como el primero lider. Masquen considerao Qatar como un [[dependiente territorio]] de Bahréin, ya enfrenta el maga Al Khalifa al oposicion del maga local tribu. Na 1867, ya envia el Al Khalifa, junto con el gobernante de [[Abu Dhabi]], con un masivo naval fuerza a [[Al Wakrah (ciudad)|Al Wakrah]] na un esfuerzo por aplasta con el maga qatari rebelde. Ya lleva esto al [[guerra entre Qatar y Bahréin]] de 1867–68, donde ya saquea el maga fuerza de Bahréin y de Abu Dhabi con Doha y Al Wakrah. Ya viola el maga bahreini hostilidad con el [[perpetuo tregua de paz y amistad]] ({{lang-en|Perpetual Truce of Peace and Friendship}}) de 1861. Debio al conjunto incursion, además del qatari contraataque, ya impone el britanico politico residente, el coronel si [[Lewis Pelly]], con otro tregua na 1868. El de suyo mision a Bahréin y Qatar, y el resultante tratao de paz, fueron maga hito, porque ya reconoce ellos implícitamente con el distincion de Qatar de Bahréin y ya reconoce ellos explicitamente con el posicion de si Mohammed bin Thani. Ademas de censura con Bahrein por el de suyo incumplimiento del acuerdo, ya negocia si Pelly con maga qatari jeque representao por si Mohammed bin Thani. El maga negociacion fueron el primera etapa na el desarrollo de Qatar como un gobernante de maga jeque. === Otomano periodo (1871–1915) === [[File:Qatar in Stielers Handatlas 1891 59.JPG|thumb|Qatar na un mapa de 1891 por si [[Adolf Stieler]], con [[Al Bidda]] como el principal asentamiento.]] [[File:Olddoha2-771x410.jpg|thumb|left|Viejo ciudad de Doha, enero de 1904.]] [[File:Barzan towers 3.jpg|thumb|left|Maga [[torre de Barzan]] son maga torre de vigilancia construido a maga final del aca-19 siglo y renovao na 1910 por si el jeque [[Mohammed bin Jassim Al Thani]].]] Bajo el militar y politico presion del gobernador del otomano [[valiato de Bagdad]], si [[Midhat Baja]], ya somete el tribu gobernante Al Thani al otomano dominio na 1871. Ya impone el otomano gobierno con maga reformista medida (na turco, [[tanzimat]]) na cuanto al tributacion y el registro del propiedad para integra plenamente con este maga area na el imperio. A pesar del desaprobacion del maga local tribu, ya segui Al Thani a apoya con el otomano dominio. Ya estanca el maga qatari-otomano relacion, y na 1882 ya sufri dicho maga relacion con mas reves cuando ya nega el maga otomano a ayuda con si Al Thani na el de suyo expedicion a [[Khor Al Adaid]], ocupao por [[Abu Dhabi]]. Ademas, ya apoya el maga otomano con el otomano subdito si Mohammed bin Abdul Wahab, que ya intenta suplanta con si Al Thani como [[kaymakam]] de Qatar na 1888. Debio a esto, eventualmente ya rebela si Al Thani contra el maga otomano, que (segun ya cree si Al Thani) ya busca usurpa con el control del peninsula. Ya renuncia ele como kaymakam y ya deja de pagar con maga impuesto na agosto de 1892. Na febrero de 1893, ya llega si Mehmed Hafiz Pasha na Qatar con el fin del busqueda de maga hinde pagao impuesto y la resistencia al oposición de si Jassim bin Mohammed al maga propuesto otomano administrativo reforma. Temiendo que ya enfrenta al [[muerte]] o al [[carcel]], ya retira si Jassim a Al Wajbah (16&nbsp;km al oeste de Doha), acompañado por cuanto miembro del tribu. Ya incuntra negativa el exigencia de si Mehmed de que disolve si Jassim con el de suyo maga tropa y jura lealtad al maga otomano. Na marzo, ya encarcela si Mehmed con el hermano de Jassim y 13 maga prominente qatari tribal lider na el otomano [[corbeta]] ''Merrikh'' como castigo por el de suyo insubordinacion. Despues de que ya rechaza si Mehmed con un oferta para libera con el maga cautivo por una tarifa de 10.000 maga [[turco lira]], ya ordena ele con el avance de un columna de aproximadamente 200 maga soldao hacia el [[fortaleza de Al Wajbah]] de si Jassim bajo el mando de si Yusuf Effendi, ansina marcando con el inicio del [[batalla de Al Wajbah]]. El maga tropa de si Effendi fueron objeto de un intenso fuego de artilleria, por un considerable tropa de qatari infanteriía y caballeria, poco despues de llega a Al Wajbah. Ya retira ellos al fortaleza de Shebaka, antes de retira otra vez de un qatari incursion. Despues de este retiro al fortaleza de Al Bidda, ya sitia el avanzando columna de si Jassim con el fortaleza. El resultao fue el concesión de un derrota por parte del maga otomano, ademas el acuerdo de renuncia con el de ellos maga cautivo, a cambio del seguro paso del caballeria de si Mehmed Pachá a [[Hofuf]] por tierra. Masquen hinde ya gana Qatar con el lleno [[independencia]] del otomano Imperio, ya obliga el resultado del batalla con un tratao que mas tarde ya forma con el base del surgimiento de Qatar como autonomo pais dentro del imperio. === Britanico periodo (1916–1971) === [[File:Zubarah Fort1.jpg|thumb|left|El [[Fuerte de Zubarah]] construio na 1938.]] Por el [[anglo-otomano Acuerdo de 1913]], ya acorda el maga otomano renuncia con el de ellos reclamacion sobre Qatar y retira de Doha con el de ellos guarnicion. Sin embargo, con el estallido del [[Primer Mundial Guerra]], hinde hecho nada para llevar a cabo esto, y ya permanece el guarnicion na el fuerte de Doha, masquen ya disminui el de suyo numero a medida que ya deserta el maga hombre. Na 1915, con el presencia de maga britanico [[cañonera]] na el puerto, ya persuadi si Abdullah bin Jassim Al Thani (pro-britanico ele) con el resto para que abandona con el fuerte, ansina que cuando, siguiente el mañana, ya acerca el maga britanico tropa, incuntrao desierto el fortaleza. Ya convirti Qatar na britanico protectorao el 3 de noviembre de 1916, cuando ya firma el Reino Unido con un tratao con el jeque si Abdullah bin Jassim Al Thani para que somete Qatar al britanico [[maga Estado del Tregua|sistema de administracion por tregua]]. Ya reserva el tratado con el maga exterior asunto y el defensa al Reino Unido, pero ya permiti con el interno autonomia. Si bien ya acorda si Abdullah hinde entabla con maga relacion con ningun otro potencia sin el previo consentimiento del britanico gobierno, ya garantiza el segundo con el proteccion de Qatar contra la agresión por mar, ademas del provision del "maga buen oficina" ({{lang-en|good offices}}) na caso de ataque por tierra. Deliberadamente vago este segundo empresa. El 5 de mayo de 1935, mientras permiti con un petrolero concesion con el [[Anglo-Persian Oil Company]], ya firma si Abdullah con otro tratao con el britanico gobierno que ya concede a Qatar con proteccion contra maga interno y externo amenaza. Na 1939 descubierto maga reserva de petroleo por primera vez, masquen ya demora el [[Segundo Mundial Guerra]] con el explotacion y desarrollo. [[File:British stamp overprinted for use in Qatar 1 April 1957.jpg|right|thumb|Un britanico sello del [[serie Wilding]], emitio el 1 de abril de 1957, y sobreimpreso para uso na Qatar.]] Ya cambia el foco del maga britanico interes na Qatar despues del Segunda Mundial Guerra, gracias al [[independencia del India]], el [[Particion del India|creacion]] de [[Pakistan]] na 1947 y el desarrollo del petroleo na Qatar. Na 1949, ya significa el nombramiento del primer britanico politico funcionario na Doha, si John Wilton, con un fortalecimiento del maga anglo-qatari relacion. Ya comenza el maga exportacion de petroleo na 1949, despues del cual ya queda el maga petrolero ingreso el principal fuente de maga ingreso para el pais, kay ya declina el comercio de maga perla. Ya financia este maga ingreso con el expansion y modernizacion del [[infraestructura]] de Qatar. Cuando ya anuncia Gran Bretaña oficialmente na 1968 que ay retira del Persico Golfo na un plazo de tres maga año, ya uni Qatar al maga conversacion con Bahréin y otros siete [[maga Estado del Tregua]] para crea con un federacion. Debio a maga regional disputa, sin embargo, ya retira Qatar y Bahréin del maga conversacion y ya queda maga independiente estado separao del maga Estado del Tregua, que mas tarde ya queda el maga [[Emiratos Unidos del Arabo]]. === Independencia y mas tarde (1971–2000) === Na virtud de un acuerdo con el Reino Unido, el 3 de septiembre de 1971, terminao el "maga especial disposicion por maga tratao" ({{lang-en|special treaty arrangements}}) "incompatible con el pleno internacional responsabilidad como un soberano e independiente estado" ({{lang-en|inconsistent with full international responsibility as a sovereign and independent state}}). [[File:Corniche Doha Qatar.jpg|thumb|left|Maga tradicional [[dhow (nautica)|dhow]] frente al horizonte del Bahia del Oeste como visto desde el [[corniche de Doha]].]] Na 1991, ya desempeña Qatar con un significante papel na el [[guerra del Golfo]] particularmente durante el [[Batalla de Khafji]] donde ya recorre el maga qatari tanque con el maga calle del ciudad y ya proporciona con apoyo de combate al maga unidad del [[nacional guardia de Arabia Saudita]] que ya enfrenta con el maga tropas del [[iraqui ejercito]]. Ya permiti Qatar que el maga canadiense tropa del coalicion utiliza con el pais como [[Canada Dry One|aereo base]] para lanza con maga aeronave na servicio de [[aereo patrulla de combate]], ademas de permiti que el maga estadounidense y frances fuerza opera na el de suyo territorio. Na 1995, [[Golpe de estado na Qatar de 1995|ya toma control]] el emir si [[Hamad bin Jalifa Al Thani]] del de suyo padre si [[Jalifa bin Hamad Al Thani]], con el apoyo del maga armao fuerza y el gabinete, ademas de maga vecino estado y Francia. Bajo Emir Hamad, ya experimenta Qatar con un moderao grado de liberalizacion, incluio el lanzamiento de la cadena de television [[Al Jazeera]] (1996), el aprobacion del femenino sufragio o del derecho al voto na el maga municipal eleccion (1999), el redaccion del de suyo primer escrio constitucion (2005) y el inauguracion de un romano catolico iglesia (2008). === Aca-21 siglo === Ya crece rapidamente el economia de Qatar y el de suyo estatus como regional potencia na el decada de 2000. Segun el ONU, el economico crecimiento del nación, medido por el BIP, el mas rapido del mundo durante este decada. Ya radica el base de este crecimiento na el explotacion de [[natural gas]] na el Campo Norte durante el decada de 1990. Al mismo tiempo, ya triplica el poblacion entre 2001 y 2011, principalmente por el afluencia de [[expatriao|maga extranjero]]. Na 2003, ya servi Qatar como sede el del [[Central Mando del maga Estados Unidos]] y uno del maga principal sitio de lanzamiento del [[invasion de Irak de 2003]]. Na marzo de 2005, ya mata un [[ataque suicida]] con un britanico maestro al Doha Players Theatre, chocando con el pais, que hinde ya experimenta previamente con maga acto de [[terrorismo]]. Realizao el bombardeo por si Omar Ahmed Abdullah Ali, un egipcio residente na Qatar con maga presunto vinculo con [[Al Qaeda na el arabigo peninsula]]. Debio al aumentao influencia de Qatar y el de suyo papel durante el [[Arabe Primavera]], especialmente durante el [[rebelion en Bahréin de 2011-2012]], [[subsidiario guerra qatari-saudita|ya empeora maga tension de largo plazo con Arabia Saudita]], el vecino Emiratos Unidos del Arabo y Bahréin.{{cita requerida}} Na 2010, ya gana Qatar con el derecho de alberga con el [[Mundial Copa de Futbol de 2022]], ansina que ele el primer país del Medio Oriente seleccionao para alberga con el torneo. Ya aumenta el adjudicacion con el inversion y el maga desarrollo dentro del nacion durante el decada de 2010. Na junio de 2013, ya queda el jeque si [[Tamim bin Hamad Al Thani]] el emir de Qatar despues de que ya entrega el de suyo padre con el poder. Ya prioriza el jeque Tamim con el mejora del domestico bienestar del maga ciudadano, incluio el establecimiento de maga avanzao sistema de salud y educacion, ademas de un expansion del infraestructura del pais para alberga con el Mundial Copa de Futbol de 2022. Ya alberga Qatar con el Copa desde 21 de noviembre al 18 de diciembre, ansina que ele el primer pais de arabe y musulman mayoria na hace con esto, y el tercer asiatico pais na hace con esto despues del [[Mundial Copa de Futbol de 2002]] na Japón y Corea del Sur. == Cultura == {{VT|Lista de maga fiesta de Qatar}} Similar el [[cultura de Qatar]] al de otro maga pais na [[Oriental Arabia]], debio a un significante influencia del [[islam]]. Ya desempeña el [[nacional dia de Qatar]], celebrao anualmente el 18 de diciembre, con un papel importante na el desarrollo de un sentido de nacional identidad. Observao na recuerdo del ascension al trono de si [[Jassim bin Mohammed Al Thani]] y el de suyo posterior unificacion del maga diverso tribu del pais. El [[Cultural Festival de Doha]] es uno del maga cultural actividad que ta lleva a cabo anualmente el Qatari Ministerio de Cultura, Artes y Patrimonio, establecio na 2002 con el fin de difundi con el qatari cultura dentro y fuera de Qatar.{{cita requerida}} === Arte === {{AP|Maga practica de recoleccion del familia Al-Thani|Arte de Qatar|Publico arte na Qatar}} [[File:Old Palace at National Museum of Qatar.jpg|thumb|[[Nacional Museo de Qatar]] na Doha.]] Ya presta especial atencion al arte el maga qatari funcionario, especialmente el familia Al Thani y el hermana del emir de Qatar, si [[Al-Mayassa bint Hamad Al Thani]]. Ta lidera esta mujer con el Autoridad de [[maga Museo de Qatar]]. Considerao el [[Museo de islamico arte de Doha]] (inaugurao na 2008) como uno del maga mejor museo del region. Na cuanto a este y cuanto otro qatari museo, como el [[arabe Museo de arte moderno]], ta cae este maga museo bajo el autoridad del maga Museo de Qatar, que ta patrocina tambien con maga artistico evento na el extranjero, como maga grand exposicion de si Takahashi Murakami na Versalles (2010) y si Damien Hirst na Londres (2012). [[File:IslamicArtMuseumDohaSkyline.jpg|thumb|[[Museo de islamico arte de Doha]].]] Qatar el mayor comprador del mundo na el mercado del arte por valor. Ta desarrolla el qatari cultural sector para permiti que ta alcanza el pais con el mundial reconocimiento, al de suyo vez con el fin de contribui al desarrollo de un pais que ta confia principalmente na el de suyo industria del gas. === Literatura === Ta remonta al aca-19 siglo el [[literatura de Qatar]]. Originalmente, el [[arabe poesia|escrio poesia]] el mas comun forma de expresion. Ya forma si Abdul Jalil Al-Tabatabai y si Mohammed bin Abdullah bin Uthaymeen, dos maga poeta del maga principio del aca-19 siglo, con el corpus del mas antiguo escrio poesia de Qatar. Mas tarde ya cae el poesia na desgracia, despues de que ya comenza Qatar a cosecha con el maga beneficio del maga exportacion de petroleo a maga mediao del aca-20 siglo, ansina que ya abandona manada qatari con el de ellos [[maga beduino]] tradicion a favor de maga mas urbano estilo de vida. Debio al creciente numero de maga qatari que ya comenza a recibi con un formal educacion durante el decada de 1950, ademas de otro maga significativo social cambio, ya atestigua 1970 con el introduccion del primer [[antologia]] de maga [[cuento]], y na 1993 publicao el maga primer [[novela]] de local autoria. Ya retene el poesia —na particular, el predominante [[nabati]] forma— con algo de importancia, pero despues de poco ya eclipsa otro maga literario tipo conele. A diferencia del mayoria del otro maga formas de arte na el qatari sociedad, ya involucra el maga mujer na el movimiento del moderno literatura na un magnitud similar al del maga hombre. === Maga medio === [[File:Al Jazeera English Newsdesk.jpg|thumb|El redaccion de [[Al Jazeera English]], un qatari canal de maga noticia.]] Ya clasifica [[Freedom House]] con el [[maga medio de comunicacion na Qatar]] como "hinde libre" ({{lang-en|not free}}) na el informe del [[Freedom of the Press (informe)|Freedom of the Press]] ({{lang-en|Libertad del Prensa}}) de 2014. Ya inicia el televisivo transmision na 1970. [[Al Jazeera]] es un principal cadena de television con sede na Doha. Ya empeza Al Jazeera na 1996 como un satelite del cadena del mismo nombre, enfocando na el maga noticia na [[arabe idioma|arabe]], y desde entonces ya expandi a un global red de cuanto especializao canal de television. Hay maga informe de que comun el [[autocensura]] entre el maga periodista, particularmente na cuanto al gobierno y [[Casa de Thani|gobernante familia]] de Qatar. Ilegal el maga critica al gobierno, al emir y al gobernante familia na el maga medio de comunicacion. Segun el articulo 46 del periodistico ley, "hinde criticable el emir del estado de Qatar y hinde atribuio ningun declaracion a ele sino con un escrio permiso del gerente del de suyo oficina." Ademas, procesable el maga periodista por insulta con el islam. Na 2014, ratificao un Ley de Prevencion del Cibercrimen. Segun el maga informe, ta restringi el ley con el libertad del prensa y conlleva con maga pena de prision y maga multa por maga amplio razon, como poner na peligro con el local paz o publica con maga [[falso noticia]]. Ya declara el Centro del Golfo para el maga Humano Derecho que el ley es un amenaza al libertad de expresion y ta pedi con el revocacion de maga cierto articulo del ley. A pesar de todo esto, na maga reciente año hay un expansion del prensa. Actualmente hay [[Lista de maga periodico de Qatar|siete maga periodico na circulacion na Qatar]], publicao cuatro na arabe y tres na ingles. Tambien impreso na Qatar maga local edicion de maga periodico del India, Nepal y Sri Lanka.{{cita requerida}} Na cuanto al infraestructura de telecomunicacion, Qatar el pais del Medio Oriente mejor clasificao na el Indice de Preparacion del Red ({{lang-en|Network Readiness Index, NRI}}) del [[Mundial Economico Foro]], un indicator para determina con el nivel de desarrollo del maga tecnologia del [[informacion]] y el [[comunicacion]] de un pais. Clasificao Qatar numero 23 por lo general na el ranking del NRI de 2014, sin maga cambio desde 2013. === Musica === Basao el [[musica de Qatar]] na el poesia, canto y baile del [[maga beduino]]. Realizao el maga tradicional baile de Doha el maga viernes por el tarde; uno de aquel maga baile es el [[ardah]], un estilizada marcial baile interpretao por dos maga fila de maga bailarin, acompañao por un variedad de maga [[instrumento de percusion]], incluio ''[[al-ras (tambor)|al-ras]]'' (un gran [[tambor]] cuyo cuero calentao por un abierto fuego), maga [[pandereta]] y maga [[platillo]] con maga chico tambor. Otro maga instrumento de percusion utilizao na el folclorico musica son ''galahs'' (un alto vasija de barro) y maga vaso de [[hojalata]] conocio como ''tus'' o ''tasat'', tipicamente usao junto con un ''tabl'', un longitudinal tambor golpeao con un palo. Tambien comunmente usao maga [[instrumento de cuerda]], como el [[arabe laud]] o ''ud'' y el ''[[rebab]]''. === Deporte === El [[futbol]] el mas popular [[deporte na Qatar]], tanto na maga termino de maga jugador como de maga espectador. Poco despues del afiliacion del [[Asociacion de Futbol de Qatar]] con el [[FIFA]] na 1970, ya veni uno del maga primero internacional reconocimiento del pais na 1981, cuando ya emerge el [[seleccion de futbol sub-20 de Qatar]] como subcampeona a Occidental Alemania na el [[Mundial Copa de Juvenil Futbol de 1981]], tras un derrota de 4–0 na el final. A nivel superior, ya alberga Qatar tres maga vez con el [[Asiatico Copa]]: [[Asiatico Copa 1988|na 1988]], [[Asiatico Copa 2011|na 2011]] y [[Asiatico Copa 2023|na 2023]]. Por primera vez na el historia del pais, ya gana el [[seleccion de futbol de Qatar]] con el Asiatico Copa, na el [[Asiatico Copa 2019|edicion de 2019]] albergao por el Emiratos Unidos del Arabo, derrotando con [[seleccion de futbol de Japón|Japón]] 3–1 na el [[Final del Asiatico Copa 2019|final]]. Ya gana ellos con el siete maga partido, concediendo con un solo gol en todo el torneo (contra Japón, como notao mas arriba). Como maga anfitrion y maga vigente campeon na el siguiente edicion de 2023, ya retene exitosamente Qatar con el de suyo título, derrotando con [[seleccion de futbol de Jordania|Jordania]] na el [[Final del Asiatico Copa 2023|final]]. El 2 de diciembre de 2010, ya gana Qatar con el de suyo candidatura para alberga con el [[Mundial Copa de Futbol de 2022]], a pesar de nunca antes calificando para el [[maga final del Mundial Copa de Futbol]]. Ya construi el maga local organizador con siete maga nuevo estadio y ya expandi con un existente estadio para este evento. Ya saluda entusiasticamente el region del Persico Golfo con el ganador candidatura de Qatar para el Mundial Copa de 2022, kay ya representa ele con el primer seleccion un pais del Medio Oriente para alberga con el torneo. Al mismo tiempo, [[Qatargate|ya tiene mucho controversia]], incluio maga acusacion de [[soborno]] e interferencia na el investigacion del presunto soborno. Tambien ya opone el maga europeo asociacion de futbol a que ya celebra el Mundial Copa 2022 na Qatar por un variedad de maga razon, del impacto del maga calido temperatura na el fisico estado del maga jugador, al posible disrupcion na el maga calendario del maga europeo nacional liga si reprogramao el evento para el invierno. Na mayo de 2014, acusao un qatari oficial de futbol, si [[Mohammed bin Hammam]], de realiza con maga pago por un total de £3,000,000 a maga funcionario a cambio del de suyo apoyo al candidatura de Qatar. Ya absolve un investigacion del FIFA, sobre el proceso de licitacion na noviembre de 2014, con Qatar de cualquier delito. Ya produci ''[[The Guardian]]'', un britanico nacional diario, con un corto documentario llamao "El abuso y el explotacion del maga migrante trabajador preparando con el emirato para 2022" ({{lang-en|Abuse and exploitation of migrant workers preparing emirate for 2022}}). Ya informa un investigacion de 2014 por ''The Guardian'' que el maga migrante trabajador, que ya construi con maga lujoso oficina para el maga organizador del Mundial Copa 2022, hinde pagao na mas de un año, y ahora "ta trabaja ilegalmente na maga alojamiento infestao de maga cucaracha" ({{lang-en|working illegally from cockroach-infested lodgings}}). Para 2014, na cuanto al maga nepales migrante involucrao na el construccion de infraestructura para el Mundial Copa 2022, ya muri uno cada dos maga dia. Ya responde el organizador comite de Qatar 2022 a manada acusacion afirmando que organiza con el Mundial Copa na Qatar ya actua como un "catalizador para el cambio" ({{lang-en|catalyst for change}}) na el region. Segun un articul de febrero de 2021 na ''The Guardian'', ya muri alrededor de 6,500 maga migrante trabajador de construccion. Sin embargo, el Mundial Copa na Qatar el mas caro na el historia del competicion, con manada moderno tecnologia, y ya expresa mucho gente con el de suyo satisfaccion con el manejo del torneo por parte del pais. Estimao que ya alberga Qatar con un base de 1.6 maga millon de maga aficionao al [[futbol]] para el Mundial Copa 2022. Sin embargo, esperao que hasta con el trabajo de construccion na el pais, ya aumenta el maga disponible habitacion de hotel de 37,000 a 70,000 lang al final de 2021. Na diciembre de 2019, ya contacta el maga oficial del Qatari Mundial Copa con el maga organizador del [[Festival de Glastonbury]] na Inglaterra y el [[Festival de Coachella]] na el maga Estados Unidos, para planea con maga enorme camping na el desierto para maga mil de maga aficionao al futbol. Segun maga informe, ya tene el maga camping, na el maga afuera del ciudad, con maga bar con licencia, maga restaurante, maga instalacion de lavao y hasta entretenimiento (aparte del juego mismo). Masquen el futbol el mas popular deporte, ya experimenta otro maga deporte de equipo con considerable exito na el nivel superior. Na 2015, ya emerge el [[seleccion de balonmano de Qatar]] como subcampeon a [[Francia]] na el [[Mundial Campeonato de Masculino Balonmano de 2015]] como maga anfitrion, masquen ya mancha manada controversia (con respecto al anfitrion nacion y el de suyo equipo) con el torneo. Ademas, na 2014, ya gana Qatar con el mundial campeonato na el masculino torneo del [[Mundial Copa de Baloncesto 3x3]]. Popular el [[criquet]] entre el [[diaspora del sur de Asia]] na Qatar. El casual [[callejero críquet]] el mas popular formato del juego, pero desde 1999 el [[Qatar Cricket Association]] un miembro del [[Internacional Consejo de Críquet]] (ICC) y ta juga regularmente el maga masculino y femenino seleccion na el maga competicion del ICC. El primario campo de criquet na Qatar es el [[West End Park International Cricket Stadium]]. El baloncesto es un desarrollao deporte entre el maga asiaticos na Qatar. Ya alberga Qatar{{cita requerida}} con este maga torneo: el [[Campeonato de Asia del FIBA 2005]], el [[Campeonato 3x3 de Asia del FIBA 2013]], el [[Under-18 Campeonato de Asia del FIBA 2014]] y el [[Under-16 Campeonato de Asia del FIBA 2022]]. Ay alberga Qatar con el [[Mundial Copa de Baloncesto de 2027]], ansina que Qatar el primer arabe pais na alberga con el Mundial Copa de Baloncesto. Ya alberga el [[Khalifa International Tennis and Squash Complex]] na Doha con el [[WTA Finals]] na el femenino tenis entre 2008 y 2010. Ta celebra anualmente Doha con el [[Torneo de Qatar]] para el [[WTA]]-Premier. Desde 2002, ya alberga Qatar con el anual [[Tour de Qatar]], un ciclista carrera na seis maga etapa. Cada febrero, ta competi el maga ciclista na el maga carretera a traves del llanura de Qatar durante seis maga dia. Ta cubri cada etapa con un distancia de mas de 100&nbsp;km, masquen el contrarreloj usualmente un mas corto distancia. Ta organiza el Ciclista Federacion de Qatar ({{lang-en|Qatar Cycling Federation}}) con el Tour de Qatar para maga profesional ciclista na el categoria de Masculino Elite. Ta tene el equipo de paracaidismo del Ejercito de Qatar con cuanto diferente disciplina de paracaidismo clasificao entre el maga mejor nacion del mundo. Ta actua anualmente el equipo nacional de paracaidismo de Qatar durante el Nacional Dia de Qatar y otro maga gran evento, como el antedicho Mundial Campeonato de Masculino Balonmano de 2015. Cuatro maga vez ya alberga Doha con el oficial [[Mundial Campeonato de maga Club del FIVB]] y tres maga vez con el [[Mundial Campeonato de Femenino Voleibol del FIVB]], ademas de alberga con el [[Asiatico Campeonato de Masculino Voleibol]] na 1997. == Educacion == {{AP|Educacion na Qatar}} [[File:Entrance to Student Center in Education City.jpg|thumb|left|El Estudiantil Centro na el [[Ciudad del Educacion de Doha]]. Ta alberga el Ciudad del Educacion con maga vario educacional facilidad, incluio maga campus satelite de ocho maga internacional universidad.]] Ya contrata Qatar con el [[Corporacion RAND]] para reforma con el de suyo sistema de educacion K–12. Gracias al [[Qatar Foundation]], ya construi el pais con el [[Ciudad del Educacion de Doha]], un campus que ta alberga con maga local rama del [[Medico Centro Weill Cornell]], el [[Carnegie Mellon School of Computer Science]], el [[Universidad de Georgetown]], el [[Universidad del noroeste (Qatar)|Universidad del noroeste]], el [[Universidad de Texas A&M]], el [[Virginia Commonwealth University School of the Arts]] y otro maga occidental institucion. [[Maga pais por tasa de alfabetizacion|El tasa de analfabetismo]] fue de 3.1% para el maga hombre y 4.2% para el maga mujer na 2012, el mas bajo del [[arabeparlante]] mundo y el aca-86 na el mundo. Para el maga ciudadano, obligatorio el educacion K–12 (desde el jardin de maga infante hasta el secundario escuela) provisto por el qatari gobierno. El [[Universidad de Qatar]], fundao na 1973, el mas antiguo y mas grande institucion de superior educacion del pais. Na noviembre de 2002, ya crea el Emir si Hamad bin Khalifa Al Thani con el [[Supremo Consejo de Educacion (Qatar)|Supremo Consejo de Educacion]]. Ta dirige y ta controla el Consejo con el educacion para todo el maga edad, desde el preescolar nivel hasta el universitario nivel, incluio el iniciativo "Educacion para un nueva era" ({{lang-en|Education for a New Era}}), establecio para trata de posiciona con Qatar como un lider na el educativo reforma. Segun el [[Webometrics Ranking of World Universities]], el maga mejor clasificao universidad del pais son el [[Universidad de Qatar]] (aca-1,881 na el mundo), el [[Universidad de Texas A&M]] (aca-3,905) y el [[Medico Centro Weill Cornell]] (aca-6,855). [[File:QatarUniversityEastView.jpg|thumb|right|El [[Universidad de Qatar]], visto desde el este.]] Na 2009, ya establece Qatar con el [[Parque de Ciencia y Tecnologia de Qatar]] na el Ciudad del Educacion para vincula con aquel maga universidad con el industrial sector. El Ciudad del Educacion tambien el hogar de un totalmente [[acreditacion del educacion|acreditao]] escuela del [[Organizacion del Internacional Bachillerato]], [[Qatar Academy]]. Ademas, ya inaugura dos maga canadiense institucion —el [[College of the North Atlantic]] (sede na [[Terranova y Labrador]]) y el [[Universidad de Calgary]]— con maga campus na Doha. Tambien ya establece otro maga [[Educacion con maga fin de lucro|universidad con maga fin de lucro]] con maga campus na el ciudad. Na 2012, clasificao Qatar el tercero desde el ultimo lugar del 65 maga pais del [[OECD]] que ya participa na el [[informe PISA]] de [[matematica]], y maga habilidad de [[lectura]] para maga joven de 15 y 16 maga año, a pesar de tene con el mas alto ingreso per capita del mundo. Clasificao Qatar como el aca-50 na el [[global indice de innovacion]] na 2023, desde el aca-65 puesto na 2019. Como parte del de suyo nacional estrategia de desarrollo, ya esboza Qatar con un estrategico plan de 10 maga año para mejora con el nivel de educacion. Ya pone na marcha el gobierno con maga programa de educativo extension, como [[Al-Bairaq]]. Lanzao Al-Bairaq na 2010 con el fin de provee al maga estudiante de secundaria con el oportunidad de experimenta con un entorno de investigacion na el [[Centro de maga Avanzao Material]] del Universidad de Qatar. Ta abarca el programa con el maga campo [[CTIM]] y el maga [[idioma]]. Lanzao na 2006 como parte de un iniciativa del [[Qatar Foundation]], creao el [[Qatar National Research Fund]] con el fin obtene con maga publico fondo para el cientifico investigacion. Ta funciona el fondo como un medio para diversifica con economia del pais, pasando de un economia basao principalmente na el petroleo y el gas a un [[economia del conocimiento|economia basao na el conocimiento]]. Ya establece el Qatar Foundation con el [[Parque de Ciencia y Tecnologia de Qatar]] na marzo de 2009 como un intento de ayuda con el transicion del pais hacia una economia del conocimiento. Con un capital semilla de 800 maga millon de maga dolar e inicialmente albergando con 21 maga organizacion, ya queda el PCTQ el primer [[zona de libre comercio]] de Qatar. == Mira tambien == * [[Lista de maga tema relacionao con Qatar]] * [[Resumen de Qatar]] [[Categoría:Maga Nacion na Asia]] g2wqrr8w1tvhfnl9hmpe73qsr8prm9c 118897 118895 2026-10-11T08:40:21Z ČarnaruskiVoin 13506 118897 wikitext text/x-wiki [[Archivo:Flag of Qatar.svg|thumb|250px|Bandera del Qatar]] '''Qatar''' (دولة قطر, ''Dawlat Qaṭar''), oficialmente el [[Estado de Qatar]], es un nacion na [[Occidental Asia]]. Ta ocupa ele con el [[Geografia de Qatar|Peninsula de Qatar]] na el costa noreste del [[Arabigo Peninsula]] na el [[Medio Oriente]]; el unico frontera del pais es un [[frontera entre Arabia Saudita y Qatar]] al sur; y ta rodea el [[Persico Golfo]] con el resto del de suyo territorio. Ta separa el [[Golfo de Bahréin]], un ensenada del Persico Golfo, con Qatar del cercano [[Bahréin]]. El capital es [[Doha]], el hogar de mas del 80% del maga habitante del pais, y el terrestre superficie compuesto principalmente de plano y bajo desierto. Gobernao Qatar como un [[hereditario monarquía]] por el [[Casa de Thani]] desde que ya afirma si [[Mohamed bin Thani]] con "un acuerdo, hinde un formal tratao" ({{lang-en|an agreement, not a formal treaty}}) con [[Bretaña]] na 1868 que ya reconoce con el de suyo distinto estado. Despues del gobierno del [[otomano Imperio]], ya queda Qatar un [[britanico protectorao]] na 1916 y ya gana con el [[independencia]] na 1971. El actual [[emir]] si [[Tamim bin Hamad Al Thani]], que ta tene con casi todo el maga ejecutivo, legislativo y judicial autoridad na virtud del [[Constitucion de Qatar]]. Ta designa ele con el [[primer ministro de Qatar|primer ministro]] y el [[gabinete de Qatar|gabinete]] del pais. Puede el [[Consultivo Asamblea de Qatar]], parcialmente electo, bloquea con legislacion, y ta tene ele con un limitao capacidad de dimiti con maga ministro. A maga principio de 2017, el poblacion de Qatar fue 2.6 million: 313.000 maga qatari ciudadano y 2,3 maga millon de maga [[expatriao]]. El [[islam]] el [[oficial religon]]. Ta tene el pais con el aca-4 mas alto [[Lista de maga pais por IBP|IBP per capita]] na el mundo y el aca-11 mas alto [[Lista de maga pais por BNI|BNI per capita]]. Es el aca-42 pais na el [[Indice de Humano Desarrollo]], el aca-3 mas alto IHD na el [[arabe mundo]]. Qatar es uno del maga mayor mundial exportador de [[licuao natural gas]] y el mayor mundial emisor de [[dioxido de carbono]] per capita. Na el aca-21 siglo, ya emerge Qatar, y como un [[importante aliado extra-OTAN]] del [[Estados Unidos]], y como un medio potencia en el arabe mundo. Ya crece el de suyo economía rapidamente gracias al de suyo riqueza na maga recurso, y ya crece el de suyo geopolitico poder gracias al de suyo grupo de maga medio, el [[red de maga medio Al Jazeera]], que ya soporta para maga rebelde grupo financieramente durante el [[Arabe Primavera]]. Tambien ta forma Qatar con parte del [[Consejo de Cooperacion para el maga Arabe Estado del Golfo]]. == Etimologia == Ya documenta si [[Plinio el Viejo]], un romano escritor, con el mas antiguo relato sobre el maga habitante del peninsula alrededor del maga mediao del primer siglo AEC, refiriendo a ellos como el maga ''Catharrei'', un designacion baka derivao del nombre de un local prominente asentamiento. Un siglo mas tarde, ya produci si [[Claudio Ptolomeo]] con el primer conocio mapa que ta representa con el peninsula, refiriendo a el como ''Catara''. Tambien ya referencia el mapa con un pueblo nombrao ''Cadara'' al este del peninsula. Exclusivamente usao el termino ''Catara'' (el [[gentilicio]] ''Cataraei'') hasta el aca-19 siglo, despues del cual ya emerge ''Katara'' como el mas reconocio ortografia. Eventualmente, después de cuanto variacion —"Katr", "Kattar" y "Guttur"—, adoptao el moderno derivao Qatar como el nombre del pais. Na el [[moderno estandar arabe]], pronunciao el nombre como {{IPA-ar|ˈqɑtˤɑr|}}, mientras que na el [[arabe del Golfo|local dialecto]] es {{IPA-ar|ˈɡɪtˤɑr|}}. Na chavacano (y español) ta usa kita con maga diferente aproximacion del nombre, kay ta usa el [[fonologia del arabe]] con maga sonido hinde frecuentemente incuntrao na el de kanaton maga idioma. == Historia == {{AP|Historia de Qatar}} === Antigüedad === [[File:Excavated site on Al Khor Island.jpg|thumb|Excavacion de un sitio de [[maga casita|casita]] tinte na el [[isla de Jor]].]] Ta remonta a casi 50,000 maga año antes del presente el humano habitacion na Qatar. Na el peninsula desenterrao maga asentamiento y maga herramienta desde el [[Edad de Piedra]]. Na en abandonao costero asentamientos descubierto maga [[mesopotamico]] artefacto originario del [[periodo de El Obeid]] (c. 6500-3800 AEC.) [[Al Da'asa]], un asentamiento situao na el occidental costa de Qatar, el mas importante sitio de El Obeid na el pais y baka ya aloja con un chico campamento de temporada. Incuntrao na el [[isla de Jor]] maga materia del [[maga casita]] de [[Babilonia]], remontando al segundo milenio AEC. Ta atestigua esto al maga comercial relacion entre el maga habitante de Qatar y el maga casita na el actual [[Bahréin]]. Entre el maga descubrimiento ya tiene maga triturao [[concha]] de [[caracol]] y maga tiesto de maga vasija del maga casita. Sugerio que Qatar el mas temprano conocio sitio del produccion del tinte de maga concha, gracias a un industria de [[purpura de Tiro]] que ya existi na el costa controlao por el maga casita. Na 224 EC, ya logra el [[sasanida Imperio]] con el control del maga territorio que ta rodea con el Persico Golfo. Ya desempeña Qatar con un papel na el comercial actividad del maga sasanida, aportando con al menos dos maga mercancía: el maga preciosa [[perla]] y el purpura tinte. Bajo el sasanido reino, ya conoce manada habitante de oriental Arabia con el [[cristianismo]] despues del dispersion del religion hacia el este por parte del maga mesopotamico cristiano. Construio maga monasterio y establecio otro maga asentamiento durante este epoca. Durante el ultimo parte del era cristiana (i.e. antes del [[expansion del islam]]) ya comprende Qatar con un region conocio como ''Beth Qatraye'' (que na el [[siríaco idioma]] ta significa "casa del maga qatarí"). Hinde limitao el region a Qatar: ya inclui tambien con [[Bahréin]], el [[isla Tarut]], [[Al-Khatt]] y [[Al-Hasa]]. Na 628, ya envia el islamico profeta si [[Mahoma]] con un musulman a un gobernante na el este de Arabia llamado si [[Munzir ibn Sawa Al-Tamimi]] con un peticion de que ya acepta ele y el de suyo maga sujeto con el islam. Ya accede si Munzir a este peticion, y na consecuencia, [[conversion al islam|ya converti al islam]] el mayoria del maga tribu arabe del region. A maga mediao del siglo, ya causa el [[musulman conquista de Persia]] con el caida del [[sasanida Imperio]]. === Temprano y tardio islamico periodo (661–1783) === [[File:Abbasids850.png|thumb|left|El [[abasi califato]] na el de suyo mayor extension, c. 850 EC.]] Descrito Qatar como un famoso centro de cria de maga caballo y maga camello durante el [[omeya califato]]. Durante el aca-8 siglo, ya comenza a beneficiar del de suyo comercialmente estrategico posicion na el Persico Golfo y ya convirti na un centro de comercio de perlas. Durante el [[abasi califato]] ya ocurri sustancial desarrollo del perlero industria na el peninsula de Qatar. Ya hace el maga barco, que ya viaja de [[Basora]] al [[India]] y a [[China]], con maga escala na el maga puerto de Qatar durante este periodo. Na Qatar descubierto maga [[chino ceramica y porcelana]], maga [[cen]] de Occidental Africa y maga tailandes artefacto. Ta sugeri maga arqueologico resto, del aca-9 siglo, que ya utiliza el maga habitante de Qatar con el mayor riqueza para construi con maga vivienda y maga publico edificio de mayor calidad. Durante este periodo, construio mas de 100 maga casa de piedra, dos maga [[mezquita]] y un abasi fortaleza na [[Murwab]]. Cuando ya declina el prosperidad del califato na Iraq, ansina mismo ya declina na Qatar. Mencionao Qatar na el libro [[Mu'jam Al-Buldan]] por si [[Yaqut al-Hamawi]] del aca-13 siglo, que ya aludi al maga fino capa tejio a maga raya del maga qatari, y al habilidad del maga qatari na el mejora y acabado del maga [[lanza]]. Na 1253 ya controla el dinastia [[usfurida]] con el mayoria del occidental Arabia, pero na 1350 ya toma el principe de [[Ormuz (ciudad)|Ormuz]] con el control del region. Al reino ya proporciona el maga perla de Qatar con un principal fuente de maga ingreso. Na 1515, hace si [[Manuel I de Portugal]] con el Reino de Ormuz un vasallo de [[Portugal]]. Entonces ya apodera Portugal de un significativo parte de oriental Arabia na 1521. Na 1550, ya somete voluntariamente el maga habitante de [[Al-Hasa]] al dominio del maga otomano, prefiriendo con ellos al maga portugues. === Portugues era === Despues del caida del dinastía jabrid con el conquista de Bahréin por el maga portugues, ya queda el arabigo costa hasta [[Uqair|Al Hassa]] bajo el dominio y el influencia del portugues imperio, que ya elimina con maga intento del maga otomano de domina con el region, por el reconquista del [[castillo de Tarout]] o [[Asedio de Qatif (1551)]]. Excavao pa maga arqueologico descubrimiento desde uno del maga portugues fortaleza que ya servi de base para domina con el region como Ruwayda. Ta aparece el primero representacion de Qatar na el portugues mapa de si Luis Lázaro en 1563, mostrando con el "ciudad de Qatar" como una fortaleza. Expulsao el maga otomano, que ya mantene con un insignificante militar presencia na el area, por el tribu [[Bani Khalid (tribu)|Bani Khalid]] y [[Emirato de Bani Khalid|el de ellos emirato]] na 1670. === Bahreini y saudi gobierno (1783–1868) === [[File:Map of Catura (Qatar) 1794 (cropped).jpg|thumb|left|Un mapa de 1794 por si [[Samuel Dunn (matematico)|Samuel Dunn]] representando con ''Catura'' (al centro) na el [[occidental Arabia]].]] Na 1766, ya migra de [[Kuwait]] a [[Zubarah]] na Qatar maga miembro del familia [[Al Jalifa]] del tribal confederacion [[Utub]]. Al hora del de ellos llegada, ya ejerce el Bani Khalid con un debil autoridad sobre la peninsula, a pesar del hecho de que ya goberna el de ellos maga lejano pariente con el mas grande aldea. Na 1783, ya invadi y ya anexa maga clan del [[Bani Utbah]], y maga aliado arabe tribu, con [[Bahréin]] del maga persa. Ya impone el maga Al Khalifa con el de ellos autoridad sobre Bahréin y ya conserva ellos con el de ellos jurisdiccion sobre Zubarah. Tras el de suyo juramento como heredero principe del [[Emirato de Diriyah|maga wahabí]] na 1788, ya move si Saud ibn Abd al-Aziz para expandi con el wahabi territorio hacia el este, hacia el Persico Golfo y Qatar. Despues de derrota con el maga Bani Khalid na 1795, atacao el maga wahabi na dos maga frente. Ya asalta el maga otomano y el maga egipcio con el occidental frente, mientras que ya lanza el maga Al Khalifa na Bahréin y el maga [[omani]] con un ataque contra el oriental frente. Al entera del egipcio avance na el occidental frontera na 1811, ya reduci el emir wahabi con el de suyo maga guarnicion na Bahrein y Zubarah para redesplega con el maga tropa. Ya ventaja de este oportunidad si [[Said bin Sultain]], gobernante de [[Mascate]], y ya ataca con el maga wahabi guarnicion na el oriental costa, incendiando con el fortaleza de Zubarah. Despues de esto, efectivamente ya volve al poder el maga Al Khalifa. [[File:Qatar, Zubarah (10), ruined city.JPG|thumb|Un parcialmente restaurao seccion del ciudad na maga ruina de [[Zubarah]].]] Como castigo por el [[pirateria]], ya bombardea un buque del [[Britanico Compañia del maga Oriental India]] con [[Doha]] na 1821, destruyendo con el ciudad y obligando con maga ciento de maga residente a huir. Na 1825, establecio el [[Casa de Thani]] con el [[jeque]] si [[Mohamed bin Thani]] como el primero lider. Masquen considerao Qatar como un [[dependiente territorio]] de Bahréin, ya enfrenta el maga Al Khalifa al oposicion del maga local tribu. Na 1867, ya envia el Al Khalifa, junto con el gobernante de [[Abu Dhabi]], con un masivo naval fuerza a [[Al Wakrah (ciudad)|Al Wakrah]] na un esfuerzo por aplasta con el maga qatari rebelde. Ya lleva esto al [[guerra entre Qatar y Bahréin]] de 1867–68, donde ya saquea el maga fuerza de Bahréin y de Abu Dhabi con Doha y Al Wakrah. Ya viola el maga bahreini hostilidad con el [[perpetuo tregua de paz y amistad]] ({{lang-en|Perpetual Truce of Peace and Friendship}}) de 1861. Debio al conjunto incursion, además del qatari contraataque, ya impone el britanico politico residente, el coronel si [[Lewis Pelly]], con otro tregua na 1868. El de suyo mision a Bahréin y Qatar, y el resultante tratao de paz, fueron maga hito, porque ya reconoce ellos implícitamente con el distincion de Qatar de Bahréin y ya reconoce ellos explicitamente con el posicion de si Mohammed bin Thani. Ademas de censura con Bahrein por el de suyo incumplimiento del acuerdo, ya negocia si Pelly con maga qatari jeque representao por si Mohammed bin Thani. El maga negociacion fueron el primera etapa na el desarrollo de Qatar como un gobernante de maga jeque. === Otomano periodo (1871–1915) === [[File:Qatar in Stielers Handatlas 1891 59.JPG|thumb|Qatar na un mapa de 1891 por si [[Adolf Stieler]], con [[Al Bidda]] como el principal asentamiento.]] [[File:Olddoha2-771x410.jpg|thumb|left|Viejo ciudad de Doha, enero de 1904.]] [[File:Barzan towers 3.jpg|thumb|left|Maga [[torre de Barzan]] son maga torre de vigilancia construido a maga final del aca-19 siglo y renovao na 1910 por si el jeque [[Mohammed bin Jassim Al Thani]].]] Bajo el militar y politico presion del gobernador del otomano [[valiato de Bagdad]], si [[Midhat Baja]], ya somete el tribu gobernante Al Thani al otomano dominio na 1871. Ya impone el otomano gobierno con maga reformista medida (na turco, [[tanzimat]]) na cuanto al tributacion y el registro del propiedad para integra plenamente con este maga area na el imperio. A pesar del desaprobacion del maga local tribu, ya segui Al Thani a apoya con el otomano dominio. Ya estanca el maga qatari-otomano relacion, y na 1882 ya sufri dicho maga relacion con mas reves cuando ya nega el maga otomano a ayuda con si Al Thani na el de suyo expedicion a [[Khor Al Adaid]], ocupao por [[Abu Dhabi]]. Ademas, ya apoya el maga otomano con el otomano subdito si Mohammed bin Abdul Wahab, que ya intenta suplanta con si Al Thani como [[kaymakam]] de Qatar na 1888. Debio a esto, eventualmente ya rebela si Al Thani contra el maga otomano, que (segun ya cree si Al Thani) ya busca usurpa con el control del peninsula. Ya renuncia ele como kaymakam y ya deja de pagar con maga impuesto na agosto de 1892. Na febrero de 1893, ya llega si Mehmed Hafiz Pasha na Qatar con el fin del busqueda de maga hinde pagao impuesto y la resistencia al oposición de si Jassim bin Mohammed al maga propuesto otomano administrativo reforma. Temiendo que ya enfrenta al [[muerte]] o al [[carcel]], ya retira si Jassim a Al Wajbah (16&nbsp;km al oeste de Doha), acompañado por cuanto miembro del tribu. Ya incuntra negativa el exigencia de si Mehmed de que disolve si Jassim con el de suyo maga tropa y jura lealtad al maga otomano. Na marzo, ya encarcela si Mehmed con el hermano de Jassim y 13 maga prominente qatari tribal lider na el otomano [[corbeta]] ''Merrikh'' como castigo por el de suyo insubordinacion. Despues de que ya rechaza si Mehmed con un oferta para libera con el maga cautivo por una tarifa de 10.000 maga [[turco lira]], ya ordena ele con el avance de un columna de aproximadamente 200 maga soldao hacia el [[fortaleza de Al Wajbah]] de si Jassim bajo el mando de si Yusuf Effendi, ansina marcando con el inicio del [[batalla de Al Wajbah]]. El maga tropa de si Effendi fueron objeto de un intenso fuego de artilleria, por un considerable tropa de qatari infanteriía y caballeria, poco despues de llega a Al Wajbah. Ya retira ellos al fortaleza de Shebaka, antes de retira otra vez de un qatari incursion. Despues de este retiro al fortaleza de Al Bidda, ya sitia el avanzando columna de si Jassim con el fortaleza. El resultao fue el concesión de un derrota por parte del maga otomano, ademas el acuerdo de renuncia con el de ellos maga cautivo, a cambio del seguro paso del caballeria de si Mehmed Pachá a [[Hofuf]] por tierra. Masquen hinde ya gana Qatar con el lleno [[independencia]] del otomano Imperio, ya obliga el resultado del batalla con un tratao que mas tarde ya forma con el base del surgimiento de Qatar como autonomo pais dentro del imperio. === Britanico periodo (1916–1971) === [[File:Zubarah Fort1.jpg|thumb|left|El [[Fuerte de Zubarah]] construio na 1938.]] Por el [[anglo-otomano Acuerdo de 1913]], ya acorda el maga otomano renuncia con el de ellos reclamacion sobre Qatar y retira de Doha con el de ellos guarnicion. Sin embargo, con el estallido del [[Primer Mundial Guerra]], hinde hecho nada para llevar a cabo esto, y ya permanece el guarnicion na el fuerte de Doha, masquen ya disminui el de suyo numero a medida que ya deserta el maga hombre. Na 1915, con el presencia de maga britanico [[cañonera]] na el puerto, ya persuadi si Abdullah bin Jassim Al Thani (pro-britanico ele) con el resto para que abandona con el fuerte, ansina que cuando, siguiente el mañana, ya acerca el maga britanico tropa, incuntrao desierto el fortaleza. Ya convirti Qatar na britanico protectorao el 3 de noviembre de 1916, cuando ya firma el Reino Unido con un tratao con el jeque si Abdullah bin Jassim Al Thani para que somete Qatar al britanico [[maga Estado del Tregua|sistema de administracion por tregua]]. Ya reserva el tratado con el maga exterior asunto y el defensa al Reino Unido, pero ya permiti con el interno autonomia. Si bien ya acorda si Abdullah hinde entabla con maga relacion con ningun otro potencia sin el previo consentimiento del britanico gobierno, ya garantiza el segundo con el proteccion de Qatar contra la agresión por mar, ademas del provision del "maga buen oficina" ({{lang-en|good offices}}) na caso de ataque por tierra. Deliberadamente vago este segundo empresa. El 5 de mayo de 1935, mientras permiti con un petrolero concesion con el [[Anglo-Persian Oil Company]], ya firma si Abdullah con otro tratao con el britanico gobierno que ya concede a Qatar con proteccion contra maga interno y externo amenaza. Na 1939 descubierto maga reserva de petroleo por primera vez, masquen ya demora el [[Segundo Mundial Guerra]] con el explotacion y desarrollo. [[File:British stamp overprinted for use in Qatar 1 April 1957.jpg|right|thumb|Un britanico sello del [[serie Wilding]], emitio el 1 de abril de 1957, y sobreimpreso para uso na Qatar.]] Ya cambia el foco del maga britanico interes na Qatar despues del Segunda Mundial Guerra, gracias al [[independencia del India]], el [[Particion del India|creacion]] de [[Pakistan]] na 1947 y el desarrollo del petroleo na Qatar. Na 1949, ya significa el nombramiento del primer britanico politico funcionario na Doha, si John Wilton, con un fortalecimiento del maga anglo-qatari relacion. Ya comenza el maga exportacion de petroleo na 1949, despues del cual ya queda el maga petrolero ingreso el principal fuente de maga ingreso para el pais, kay ya declina el comercio de maga perla. Ya financia este maga ingreso con el expansion y modernizacion del [[infraestructura]] de Qatar. Cuando ya anuncia Gran Bretaña oficialmente na 1968 que ay retira del Persico Golfo na un plazo de tres maga año, ya uni Qatar al maga conversacion con Bahréin y otros siete [[maga Estado del Tregua]] para crea con un federacion. Debio a maga regional disputa, sin embargo, ya retira Qatar y Bahréin del maga conversacion y ya queda maga independiente estado separao del maga Estado del Tregua, que mas tarde ya queda el maga [[Emiratos Unidos del Arabo]]. === Independencia y mas tarde (1971–2000) === Na virtud de un acuerdo con el Reino Unido, el 3 de septiembre de 1971, terminao el "maga especial disposicion por maga tratao" ({{lang-en|special treaty arrangements}}) "incompatible con el pleno internacional responsabilidad como un soberano e independiente estado" ({{lang-en|inconsistent with full international responsibility as a sovereign and independent state}}). [[File:Corniche Doha Qatar.jpg|thumb|left|Maga tradicional [[dhow (nautica)|dhow]] frente al horizonte del Bahia del Oeste como visto desde el [[corniche de Doha]].]] Na 1991, ya desempeña Qatar con un significante papel na el [[guerra del Golfo]] particularmente durante el [[Batalla de Khafji]] donde ya recorre el maga qatari tanque con el maga calle del ciudad y ya proporciona con apoyo de combate al maga unidad del [[nacional guardia de Arabia Saudita]] que ya enfrenta con el maga tropas del [[iraqui ejercito]]. Ya permiti Qatar que el maga canadiense tropa del coalicion utiliza con el pais como [[Canada Dry One|aereo base]] para lanza con maga aeronave na servicio de [[aereo patrulla de combate]], ademas de permiti que el maga estadounidense y frances fuerza opera na el de suyo territorio. Na 1995, [[Golpe de estado na Qatar de 1995|ya toma control]] el emir si [[Hamad bin Jalifa Al Thani]] del de suyo padre si [[Jalifa bin Hamad Al Thani]], con el apoyo del maga armao fuerza y el gabinete, ademas de maga vecino estado y Francia. Bajo Emir Hamad, ya experimenta Qatar con un moderao grado de liberalizacion, incluio el lanzamiento de la cadena de television [[Al Jazeera]] (1996), el aprobacion del femenino sufragio o del derecho al voto na el maga municipal eleccion (1999), el redaccion del de suyo primer escrio constitucion (2005) y el inauguracion de un romano catolico iglesia (2008). === Aca-21 siglo === Ya crece rapidamente el economia de Qatar y el de suyo estatus como regional potencia na el decada de 2000. Segun el ONU, el economico crecimiento del nación, medido por el BIP, el mas rapido del mundo durante este decada. Ya radica el base de este crecimiento na el explotacion de [[natural gas]] na el Campo Norte durante el decada de 1990. Al mismo tiempo, ya triplica el poblacion entre 2001 y 2011, principalmente por el afluencia de [[expatriao|maga extranjero]]. Na 2003, ya servi Qatar como sede el del [[Central Mando del maga Estados Unidos]] y uno del maga principal sitio de lanzamiento del [[invasion de Irak de 2003]]. Na marzo de 2005, ya mata un [[ataque suicida]] con un britanico maestro al Doha Players Theatre, chocando con el pais, que hinde ya experimenta previamente con maga acto de [[terrorismo]]. Realizao el bombardeo por si Omar Ahmed Abdullah Ali, un egipcio residente na Qatar con maga presunto vinculo con [[Al Qaeda na el arabigo peninsula]]. Debio al aumentao influencia de Qatar y el de suyo papel durante el [[Arabe Primavera]], especialmente durante el [[rebelion en Bahréin de 2011-2012]], [[subsidiario guerra qatari-saudita|ya empeora maga tension de largo plazo con Arabia Saudita]], el vecino Emiratos Unidos del Arabo y Bahréin.{{cita requerida}} Na 2010, ya gana Qatar con el derecho de alberga con el [[Mundial Copa de Futbol de 2022]], ansina que ele el primer país del Medio Oriente seleccionao para alberga con el torneo. Ya aumenta el adjudicacion con el inversion y el maga desarrollo dentro del nacion durante el decada de 2010. Na junio de 2013, ya queda el jeque si [[Tamim bin Hamad Al Thani]] el emir de Qatar despues de que ya entrega el de suyo padre con el poder. Ya prioriza el jeque Tamim con el mejora del domestico bienestar del maga ciudadano, incluio el establecimiento de maga avanzao sistema de salud y educacion, ademas de un expansion del infraestructura del pais para alberga con el Mundial Copa de Futbol de 2022. Ya alberga Qatar con el Copa desde 21 de noviembre al 18 de diciembre, ansina que ele el primer pais de arabe y musulman mayoria na hace con esto, y el tercer asiatico pais na hace con esto despues del [[Mundial Copa de Futbol de 2002]] na Japón y Corea del Sur. == Cultura == {{VT|Lista de maga fiesta de Qatar}} Similar el [[cultura de Qatar]] al de otro maga pais na [[Oriental Arabia]], debio a un significante influencia del [[islam]]. Ya desempeña el [[nacional dia de Qatar]], celebrao anualmente el 18 de diciembre, con un papel importante na el desarrollo de un sentido de nacional identidad. Observao na recuerdo del ascension al trono de si [[Jassim bin Mohammed Al Thani]] y el de suyo posterior unificacion del maga diverso tribu del pais. El [[Cultural Festival de Doha]] es uno del maga cultural actividad que ta lleva a cabo anualmente el Qatari Ministerio de Cultura, Artes y Patrimonio, establecio na 2002 con el fin de difundi con el qatari cultura dentro y fuera de Qatar.{{cita requerida}} === Arte === {{AP|Maga practica de recoleccion del familia Al-Thani|Arte de Qatar|Publico arte na Qatar}} [[File:Old Palace at National Museum of Qatar.jpg|thumb|[[Nacional Museo de Qatar]] na Doha.]] Ya presta especial atencion al arte el maga qatari funcionario, especialmente el familia Al Thani y el hermana del emir de Qatar, si [[Al-Mayassa bint Hamad Al Thani]]. Ta lidera esta mujer con el Autoridad de [[maga Museo de Qatar]]. Considerao el [[Museo de islamico arte de Doha]] (inaugurao na 2008) como uno del maga mejor museo del region. Na cuanto a este y cuanto otro qatari museo, como el [[arabe Museo de arte moderno]], ta cae este maga museo bajo el autoridad del maga Museo de Qatar, que ta patrocina tambien con maga artistico evento na el extranjero, como maga grand exposicion de si Takahashi Murakami na Versalles (2010) y si Damien Hirst na Londres (2012). [[File:IslamicArtMuseumDohaSkyline.jpg|thumb|[[Museo de islamico arte de Doha]].]] Qatar el mayor comprador del mundo na el mercado del arte por valor. Ta desarrolla el qatari cultural sector para permiti que ta alcanza el pais con el mundial reconocimiento, al de suyo vez con el fin de contribui al desarrollo de un pais que ta confia principalmente na el de suyo industria del gas. === Literatura === Ta remonta al aca-19 siglo el [[literatura de Qatar]]. Originalmente, el [[arabe poesia|escrio poesia]] el mas comun forma de expresion. Ya forma si Abdul Jalil Al-Tabatabai y si Mohammed bin Abdullah bin Uthaymeen, dos maga poeta del maga principio del aca-19 siglo, con el corpus del mas antiguo escrio poesia de Qatar. Mas tarde ya cae el poesia na desgracia, despues de que ya comenza Qatar a cosecha con el maga beneficio del maga exportacion de petroleo a maga mediao del aca-20 siglo, ansina que ya abandona manada qatari con el de ellos [[maga beduino]] tradicion a favor de maga mas urbano estilo de vida. Debio al creciente numero de maga qatari que ya comenza a recibi con un formal educacion durante el decada de 1950, ademas de otro maga significativo social cambio, ya atestigua 1970 con el introduccion del primer [[antologia]] de maga [[cuento]], y na 1993 publicao el maga primer [[novela]] de local autoria. Ya retene el poesia —na particular, el predominante [[nabati]] forma— con algo de importancia, pero despues de poco ya eclipsa otro maga literario tipo conele. A diferencia del mayoria del otro maga formas de arte na el qatari sociedad, ya involucra el maga mujer na el movimiento del moderno literatura na un magnitud similar al del maga hombre. === Maga medio === [[File:Al Jazeera English Newsdesk.jpg|thumb|El redaccion de [[Al Jazeera English]], un qatari canal de maga noticia.]] Ya clasifica [[Freedom House]] con el [[maga medio de comunicacion na Qatar]] como "hinde libre" ({{lang-en|not free}}) na el informe del [[Freedom of the Press (informe)|Freedom of the Press]] ({{lang-en|Libertad del Prensa}}) de 2014. Ya inicia el televisivo transmision na 1970. [[Al Jazeera]] es un principal cadena de television con sede na Doha. Ya empeza Al Jazeera na 1996 como un satelite del cadena del mismo nombre, enfocando na el maga noticia na [[arabe idioma|arabe]], y desde entonces ya expandi a un global red de cuanto especializao canal de television. Hay maga informe de que comun el [[autocensura]] entre el maga periodista, particularmente na cuanto al gobierno y [[Casa de Thani|gobernante familia]] de Qatar. Ilegal el maga critica al gobierno, al emir y al gobernante familia na el maga medio de comunicacion. Segun el articulo 46 del periodistico ley, "hinde criticable el emir del estado de Qatar y hinde atribuio ningun declaracion a ele sino con un escrio permiso del gerente del de suyo oficina." Ademas, procesable el maga periodista por insulta con el islam. Na 2014, ratificao un Ley de Prevencion del Cibercrimen. Segun el maga informe, ta restringi el ley con el libertad del prensa y conlleva con maga pena de prision y maga multa por maga amplio razon, como poner na peligro con el local paz o publica con maga [[falso noticia]]. Ya declara el Centro del Golfo para el maga Humano Derecho que el ley es un amenaza al libertad de expresion y ta pedi con el revocacion de maga cierto articulo del ley. A pesar de todo esto, na maga reciente año hay un expansion del prensa. Actualmente hay [[Lista de maga periodico de Qatar|siete maga periodico na circulacion na Qatar]], publicao cuatro na arabe y tres na ingles. Tambien impreso na Qatar maga local edicion de maga periodico del India, Nepal y Sri Lanka.{{cita requerida}} Na cuanto al infraestructura de telecomunicacion, Qatar el pais del Medio Oriente mejor clasificao na el Indice de Preparacion del Red ({{lang-en|Network Readiness Index, NRI}}) del [[Mundial Economico Foro]], un indicator para determina con el nivel de desarrollo del maga tecnologia del [[informacion]] y el [[comunicacion]] de un pais. Clasificao Qatar numero 23 por lo general na el ranking del NRI de 2014, sin maga cambio desde 2013. === Musica === Basao el [[musica de Qatar]] na el poesia, canto y baile del [[maga beduino]]. Realizao el maga tradicional baile de Doha el maga viernes por el tarde; uno de aquel maga baile es el [[ardah]], un estilizada marcial baile interpretao por dos maga fila de maga bailarin, acompañao por un variedad de maga [[instrumento de percusion]], incluio ''[[al-ras (tambor)|al-ras]]'' (un gran [[tambor]] cuyo cuero calentao por un abierto fuego), maga [[pandereta]] y maga [[platillo]] con maga chico tambor. Otro maga instrumento de percusion utilizao na el folclorico musica son ''galahs'' (un alto vasija de barro) y maga vaso de [[hojalata]] conocio como ''tus'' o ''tasat'', tipicamente usao junto con un ''tabl'', un longitudinal tambor golpeao con un palo. Tambien comunmente usao maga [[instrumento de cuerda]], como el [[arabe laud]] o ''ud'' y el ''[[rebab]]''. === Deporte === El [[futbol]] el mas popular [[deporte na Qatar]], tanto na maga termino de maga jugador como de maga espectador. Poco despues del afiliacion del [[Asociacion de Futbol de Qatar]] con el [[FIFA]] na 1970, ya veni uno del maga primero internacional reconocimiento del pais na 1981, cuando ya emerge el [[seleccion de futbol sub-20 de Qatar]] como subcampeona a Occidental Alemania na el [[Mundial Copa de Juvenil Futbol de 1981]], tras un derrota de 4–0 na el final. A nivel superior, ya alberga Qatar tres maga vez con el [[Asiatico Copa]]: [[Asiatico Copa 1988|na 1988]], [[Asiatico Copa 2011|na 2011]] y [[Asiatico Copa 2023|na 2023]]. Por primera vez na el historia del pais, ya gana el [[seleccion de futbol de Qatar]] con el Asiatico Copa, na el [[Asiatico Copa 2019|edicion de 2019]] albergao por el Emiratos Unidos del Arabo, derrotando con [[seleccion de futbol de Japón|Japón]] 3–1 na el [[Final del Asiatico Copa 2019|final]]. Ya gana ellos con el siete maga partido, concediendo con un solo gol en todo el torneo (contra Japón, como notao mas arriba). Como maga anfitrion y maga vigente campeon na el siguiente edicion de 2023, ya retene exitosamente Qatar con el de suyo título, derrotando con [[seleccion de futbol de Jordania|Jordania]] na el [[Final del Asiatico Copa 2023|final]]. El 2 de diciembre de 2010, ya gana Qatar con el de suyo candidatura para alberga con el [[Mundial Copa de Futbol de 2022]], a pesar de nunca antes calificando para el [[maga final del Mundial Copa de Futbol]]. Ya construi el maga local organizador con siete maga nuevo estadio y ya expandi con un existente estadio para este evento. Ya saluda entusiasticamente el region del Persico Golfo con el ganador candidatura de Qatar para el Mundial Copa de 2022, kay ya representa ele con el primer seleccion un pais del Medio Oriente para alberga con el torneo. Al mismo tiempo, [[Qatargate|ya tiene mucho controversia]], incluio maga acusacion de [[soborno]] e interferencia na el investigacion del presunto soborno. Tambien ya opone el maga europeo asociacion de futbol a que ya celebra el Mundial Copa 2022 na Qatar por un variedad de maga razon, del impacto del maga calido temperatura na el fisico estado del maga jugador, al posible disrupcion na el maga calendario del maga europeo nacional liga si reprogramao el evento para el invierno. Na mayo de 2014, acusao un qatari oficial de futbol, si [[Mohammed bin Hammam]], de realiza con maga pago por un total de £3,000,000 a maga funcionario a cambio del de suyo apoyo al candidatura de Qatar. Ya absolve un investigacion del FIFA, sobre el proceso de licitacion na noviembre de 2014, con Qatar de cualquier delito. Ya produci ''[[The Guardian]]'', un britanico nacional diario, con un corto documentario llamao "El abuso y el explotacion del maga migrante trabajador preparando con el emirato para 2022" ({{lang-en|Abuse and exploitation of migrant workers preparing emirate for 2022}}). Ya informa un investigacion de 2014 por ''The Guardian'' que el maga migrante trabajador, que ya construi con maga lujoso oficina para el maga organizador del Mundial Copa 2022, hinde pagao na mas de un año, y ahora "ta trabaja ilegalmente na maga alojamiento infestao de maga cucaracha" ({{lang-en|working illegally from cockroach-infested lodgings}}). Para 2014, na cuanto al maga nepales migrante involucrao na el construccion de infraestructura para el Mundial Copa 2022, ya muri uno cada dos maga dia. Ya responde el organizador comite de Qatar 2022 a manada acusacion afirmando que organiza con el Mundial Copa na Qatar ya actua como un "catalizador para el cambio" ({{lang-en|catalyst for change}}) na el region. Segun un articul de febrero de 2021 na ''The Guardian'', ya muri alrededor de 6,500 maga migrante trabajador de construccion. Sin embargo, el Mundial Copa na Qatar el mas caro na el historia del competicion, con manada moderno tecnologia, y ya expresa mucho gente con el de suyo satisfaccion con el manejo del torneo por parte del pais. Estimao que ya alberga Qatar con un base de 1.6 maga millon de maga aficionao al [[futbol]] para el Mundial Copa 2022. Sin embargo, esperao que hasta con el trabajo de construccion na el pais, ya aumenta el maga disponible habitacion de hotel de 37,000 a 70,000 lang al final de 2021. Na diciembre de 2019, ya contacta el maga oficial del Qatari Mundial Copa con el maga organizador del [[Festival de Glastonbury]] na Inglaterra y el [[Festival de Coachella]] na el maga Estados Unidos, para planea con maga enorme camping na el desierto para maga mil de maga aficionao al futbol. Segun maga informe, ya tene el maga camping, na el maga afuera del ciudad, con maga bar con licencia, maga restaurante, maga instalacion de lavao y hasta entretenimiento (aparte del juego mismo). Masquen el futbol el mas popular deporte, ya experimenta otro maga deporte de equipo con considerable exito na el nivel superior. Na 2015, ya emerge el [[seleccion de balonmano de Qatar]] como subcampeon a [[Francia]] na el [[Mundial Campeonato de Masculino Balonmano de 2015]] como maga anfitrion, masquen ya mancha manada controversia (con respecto al anfitrion nacion y el de suyo equipo) con el torneo. Ademas, na 2014, ya gana Qatar con el mundial campeonato na el masculino torneo del [[Mundial Copa de Baloncesto 3x3]]. Popular el [[criquet]] entre el [[diaspora del sur de Asia]] na Qatar. El casual [[callejero críquet]] el mas popular formato del juego, pero desde 1999 el [[Qatar Cricket Association]] un miembro del [[Internacional Consejo de Críquet]] (ICC) y ta juga regularmente el maga masculino y femenino seleccion na el maga competicion del ICC. El primario campo de criquet na Qatar es el [[West End Park International Cricket Stadium]]. El baloncesto es un desarrollao deporte entre el maga asiaticos na Qatar. Ya alberga Qatar{{cita requerida}} con este maga torneo: el [[Campeonato de Asia del FIBA 2005]], el [[Campeonato 3x3 de Asia del FIBA 2013]], el [[Under-18 Campeonato de Asia del FIBA 2014]] y el [[Under-16 Campeonato de Asia del FIBA 2022]]. Ay alberga Qatar con el [[Mundial Copa de Baloncesto de 2027]], ansina que Qatar el primer arabe pais na alberga con el Mundial Copa de Baloncesto. Ya alberga el [[Khalifa International Tennis and Squash Complex]] na Doha con el [[WTA Finals]] na el femenino tenis entre 2008 y 2010. Ta celebra anualmente Doha con el [[Torneo de Qatar]] para el [[WTA]]-Premier. Desde 2002, ya alberga Qatar con el anual [[Tour de Qatar]], un ciclista carrera na seis maga etapa. Cada febrero, ta competi el maga ciclista na el maga carretera a traves del llanura de Qatar durante seis maga dia. Ta cubri cada etapa con un distancia de mas de 100&nbsp;km, masquen el contrarreloj usualmente un mas corto distancia. Ta organiza el Ciclista Federacion de Qatar ({{lang-en|Qatar Cycling Federation}}) con el Tour de Qatar para maga profesional ciclista na el categoria de Masculino Elite. Ta tene el equipo de paracaidismo del Ejercito de Qatar con cuanto diferente disciplina de paracaidismo clasificao entre el maga mejor nacion del mundo. Ta actua anualmente el equipo nacional de paracaidismo de Qatar durante el Nacional Dia de Qatar y otro maga gran evento, como el antedicho Mundial Campeonato de Masculino Balonmano de 2015. Cuatro maga vez ya alberga Doha con el oficial [[Mundial Campeonato de maga Club del FIVB]] y tres maga vez con el [[Mundial Campeonato de Femenino Voleibol del FIVB]], ademas de alberga con el [[Asiatico Campeonato de Masculino Voleibol]] na 1997. == Educacion == {{AP|Educacion na Qatar}} [[File:Entrance to Student Center in Education City.jpg|thumb|left|El Estudiantil Centro na el [[Ciudad del Educacion de Doha]]. Ta alberga el Ciudad del Educacion con maga vario educacional facilidad, incluio maga campus satelite de ocho maga internacional universidad.]] Ya contrata Qatar con el [[Corporacion RAND]] para reforma con el de suyo sistema de educacion K–12. Gracias al [[Qatar Foundation]], ya construi el pais con el [[Ciudad del Educacion de Doha]], un campus que ta alberga con maga local rama del [[Medico Centro Weill Cornell]], el [[Carnegie Mellon School of Computer Science]], el [[Universidad de Georgetown]], el [[Universidad del noroeste (Qatar)|Universidad del noroeste]], el [[Universidad de Texas A&M]], el [[Virginia Commonwealth University School of the Arts]] y otro maga occidental institucion. [[Maga pais por tasa de alfabetizacion|El tasa de analfabetismo]] fue de 3.1% para el maga hombre y 4.2% para el maga mujer na 2012, el mas bajo del [[arabeparlante]] mundo y el aca-86 na el mundo. Para el maga ciudadano, obligatorio el educacion K–12 (desde el jardin de maga infante hasta el secundario escuela) provisto por el qatari gobierno. El [[Universidad de Qatar]], fundao na 1973, el mas antiguo y mas grande institucion de superior educacion del pais. Na noviembre de 2002, ya crea el Emir si Hamad bin Khalifa Al Thani con el [[Supremo Consejo de Educacion (Qatar)|Supremo Consejo de Educacion]]. Ta dirige y ta controla el Consejo con el educacion para todo el maga edad, desde el preescolar nivel hasta el universitario nivel, incluio el iniciativo "Educacion para un nueva era" ({{lang-en|Education for a New Era}}), establecio para trata de posiciona con Qatar como un lider na el educativo reforma. Segun el [[Webometrics Ranking of World Universities]], el maga mejor clasificao universidad del pais son el [[Universidad de Qatar]] (aca-1,881 na el mundo), el [[Universidad de Texas A&M]] (aca-3,905) y el [[Medico Centro Weill Cornell]] (aca-6,855). [[File:QatarUniversityEastView.jpg|thumb|right|El [[Universidad de Qatar]], visto desde el este.]] Na 2009, ya establece Qatar con el [[Parque de Ciencia y Tecnologia de Qatar]] na el Ciudad del Educacion para vincula con aquel maga universidad con el industrial sector. El Ciudad del Educacion tambien el hogar de un totalmente [[acreditacion del educacion|acreditao]] escuela del [[Organizacion del Internacional Bachillerato]], [[Qatar Academy]]. Ademas, ya inaugura dos maga canadiense institucion —el [[College of the North Atlantic]] (sede na [[Terranova y Labrador]]) y el [[Universidad de Calgary]]— con maga campus na Doha. Tambien ya establece otro maga [[Educacion con maga fin de lucro|universidad con maga fin de lucro]] con maga campus na el ciudad. Na 2012, clasificao Qatar el tercero desde el ultimo lugar del 65 maga pais del [[OECD]] que ya participa na el [[informe PISA]] de [[matematica]], y maga habilidad de [[lectura]] para maga joven de 15 y 16 maga año, a pesar de tene con el mas alto ingreso per capita del mundo. Clasificao Qatar como el aca-50 na el [[global indice de innovacion]] na 2023, desde el aca-65 puesto na 2019. Como parte del de suyo nacional estrategia de desarrollo, ya esboza Qatar con un estrategico plan de 10 maga año para mejora con el nivel de educacion. Ya pone na marcha el gobierno con maga programa de educativo extension, como [[Al-Bairaq]]. Lanzao Al-Bairaq na 2010 con el fin de provee al maga estudiante de secundaria con el oportunidad de experimenta con un entorno de investigacion na el [[Centro de maga Avanzao Material]] del Universidad de Qatar. Ta abarca el programa con el maga campo [[CTIM]] y el maga [[idioma]]. Lanzao na 2006 como parte de un iniciativa del [[Qatar Foundation]], creao el [[Qatar National Research Fund]] con el fin obtene con maga publico fondo para el cientifico investigacion. Ta funciona el fondo como un medio para diversifica con economia del pais, pasando de un economia basao principalmente na el petroleo y el gas a un [[economia del conocimiento|economia basao na el conocimiento]]. Ya establece el Qatar Foundation con el [[Parque de Ciencia y Tecnologia de Qatar]] na marzo de 2009 como un intento de ayuda con el transicion del pais hacia una economia del conocimiento. Con un capital semilla de 800 maga millon de maga dolar e inicialmente albergando con 21 maga organizacion, ya queda el PCTQ el primer [[zona de libre comercio]] de Qatar. == Mira tambien == * [[Lista de maga tema relacionao con Qatar]] * [[Resumen de Qatar]] [[Categoría:Maga Nacion na Asia]] p3mbtkpy12dynhzdftiom567irjlft6 Nueva York (ciudad) 0 21301 118875 98029 2026-10-11T08:23:26Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[New York (ciudad)]] a [[Nueva York (ciudad)]] 98029 wikitext text/x-wiki [[File:NYC Montage 2014 4 - Jleon.jpg|thumb]] '''New York''' (''New York City'') el primero es una ciudad na estado de [[New York]], [[Estados Unidos]], tiene un estimado de 784.00 kilometro cuadrado. Comporme del 2017 census este tiene populacion de 8,622,698 personas. {{Stub}} [[categoría:Estados Unidos]] 2aynrcc2a5gjdsolr1cedd1i145e0n2 118878 118875 2026-10-11T08:26:53Z ČarnaruskiVoin 13506 118878 wikitext text/x-wiki [[File:NYC Montage 2014 4 - Jleon.jpg|thumb]] '''Nueva York''' (en [[idioma inglés|inglés]] ''New York'') el primero es una ciudad na estado de [[Nueva York (estado)|Nueva York]], [[Estados Unidos]], tiene un estimado de 784.00 kilometro cuadrado. Comporme del 2017 census este tiene populacion de 8,622,698 personas. {{Stub}} [[categoría:Estados Unidos]] io0tvcqpjpgaw18zm9vyilcjnhkwi1v Módulo:Params 828 25501 118872 118869 2026-10-11T04:24:30Z Grufo 16734 Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]] 118872 Scribunto text/plain require[[strict]] --- --- --- PRIVATE ENVIRONMENT --- --- ________________________________ --- --- --- --[[ Abstract utilities ]]-- ---------------------------- -- Helper function for `string.gsub()` (for managing zero-padded numbers) local function zero_padded (str) return ('%03d%s'):format(#str, str) end -- Helper function for `table.sort()` (for natural sorting) local function natural_sort (var1, var2) return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded) end -- Return a copy or a reference to a table local function copy_or_ref_table (src, refonly) if refonly then return src end local newtab = {} for key, val in pairs(src) do newtab[key] = val end return newtab end -- Copy at most N items (of all kinds) from `src` to `dest` and return `dest` local function copy_table_maxn (dest, src, len) local idx = 1 for key, val in pairs(src) do dest[key], idx = val, idx + 1 if idx > len then break end end return dest end -- Remove some numeric elements from a table, shifting everything to the left local function remove_numeric_keys (tbl, idx, len) local cache, tmp = {}, idx + len - 1 for key, val in pairs(tbl) do if type(key) == 'number' and key >= idx then if key > tmp then cache[key - len] = val end tbl[key] = nil end end for key, val in pairs(cache) do tbl[key] = val end end -- Make a reduced copy of a table (shifting in both directions if necessary) local function copy_table_reduced (tbl, idx, len) local ret, tmp = {}, idx + len - 1 if idx > 0 then for key, val in pairs(tbl) do if type(key) ~= 'number' or key < idx then ret[key] = val elseif key > tmp then ret[key - len] = val end end elseif tmp > 0 then local nshift = 1 - idx for key, val in pairs(tbl) do if type(key) ~= 'number' then ret[key] = val elseif key > tmp then ret[key - tmp] = val elseif key < idx then ret[key + nshift] = val end end else for key, val in pairs(tbl) do if type(key) ~= 'number' or key > tmp then ret[key] = val elseif key < idx then ret[key + len] = val end end end return ret end -- Make an expanded copy of a table (shifting in both directions if necessary) local function copy_table_expanded (tbl, idx, len) local ret, tmp = {}, idx + len - 1 if idx > 0 then for key, val in pairs(tbl) do if type(key) ~= 'number' or key < idx then ret[key] = val else ret[key + len] = val end end elseif tmp > 0 then local nshift = idx - 1 for key, val in pairs(tbl) do if type(key) ~= 'number' then ret[key] = val elseif key > 0 then ret[key + tmp] = val elseif key < 1 then ret[key + nshift] = val end end else for key, val in pairs(tbl) do if type(key) ~= 'number' or key > tmp then ret[key] = val else ret[key - len] = val end end end return ret end -- Given a table, create two new tables containing the sorted list of keys local function get_sorted_key_list (tbl, sort_fn) local nums, words, nn, nw = {}, {}, 1, 1 for key, val in pairs(tbl) do if type(key) == 'number' then nums[nn], nn = key, nn + 1 else words[nw], nw = key, nw + 1 end end table.sort(nums) table.sort(words, sort_fn) return nums, words, nn - 1, nw - 1 end -- Parse a parameter name string and return it as a string or a number local function get_param_name (par_str) local ret = par_str:match'^%s*(.-)%s*$' if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end return tonumber(ret) end -- Move a key from a table to another, but only if under a different name and -- always parsing numeric strings as numbers local function steal_if_renamed (val, src, skey, dest, dkey) local realkey = get_param_name(dkey) if skey ~= realkey then dest[realkey], src[skey] = val, nil end end --[[ Public strings ]]-- ------------------------ -- Special match keywords (functions and modifiers MUST avoid these names) local mkeywords = { ['or'] = 0, pattern = 1, plain = 2, strict = 3 } -- Sort functions (functions and modifiers MUST avoid these names) local sortfunctions = { alphabetically = false, naturally = natural_sort } -- Callback styles for the `mapping_*` and `renaming_*` class of modifiers -- (functions and modifiers MUST avoid these names) --[[ Meanings of the columns: col[1] = Loop type (0-3) col[2] = Number of module arguments that the style requires (1-3) col[3] = Minimum number of sequential parameters passed to the callback col[4] = Name of the callback parameter where to place each parameter name col[5] = Name of the callback parameter where to place each parameter value col[6] = Argument in the modifier's invocation that will override `col[4]` col[7] = Argument in the modifier's invocation that will override `col[5]` A value of `-1` indicates that no meaningful value is stored (i.e. `nil`) ]]-- local mapping_styles = { names_and_values = { 3, 2, 2, 1, 2, -1, -1 }, values_and_names = { 3, 2, 2, 2, 1, -1, -1 }, values_only = { 1, 2, 1, -1, 1, -1, -1 }, names_only = { 2, 2, 1, 1, -1, -1, -1 }, names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 }, names_only_as = { 2, 3, 0, -1, -1, 2, -1 }, values_only_as = { 1, 3, 0, -1, -1, -1, 2 }, blindly = { 0, 2, 0, -1, -1, -1, -1 } } -- Memory slots (functions and modifiers MUST avoid these names) local memoryslots = { h = 'header', f = 'footer', i = 'itersep', l = 'lastsep', n = 'ifngiven', p = 'pairsep', s = 'oxfordsep' } -- Possible trimming modes for the `parsing` modifier local trim_parse_opts = { trim_none = { false, false }, trim_positional = { false, true }, trim_named = { true, false }, trim_all = { true, true } } -- Possible string modes for the iteration separator in the `parsing` and -- `reinterpreting` modifiers local isep_parse_opts = { splitter_pattern = false, splitter_string = true } -- Possible string modes for the key-value separator in the `parsing` and -- `reinterpreting` modifiers local psep_parse_opts = { setter_pattern = false, setter_string = true } -- Possible position references for the `splicing` modifier local position_references = { add_nothing = 0, add_smallest_number = 1, add_last_of_sequence = 2, add_largest_number = 3 } -- Possible modes for the `reassigning` modifier local a_modes = { transfer = 0, clone = 1, rename = 2, copy = 3, sacrifice = 4, provide = 5, spare = 7 } -- Functions and modifiers MUST avoid these names too: `here`, `in_substack`, -- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue` -- `without_sorting` --[[ Private constants ]]-- --------------------------- -- Hard-coded name of the module (to avoid going through `frame:getTitle()`) local modulename = 'Module:Params' -- The functions listed here declare that they don't need the -- `frame:getParent().args` metatable to be copied into a regular table; if -- they are modifiers they also guarantee that they will make their own -- (modified) copy available local refparams = { call_for_each_group = true, combining = true, combining_by_calling = true, combining_values = true, concat_and_call = true, concat_and_invoke = true, concat_and_magic = true, count = true, grouping_by_calling = true, mixing_names_and_values = true, keeping_at_most = true, renaming_by_mixing = true, renaming_to_sequence = true, renaming_to_uppercase = true, renaming_to_lowercase = true, shifting = true, splicing = true, value_of = true, with_name_matching = true } -- Maximum number of numeric parameters that can be filled, if missing (we -- chose an arbitrary number for this constant; you can discuss about its -- optimal value at Module talk:Params) local maxfill = 1024 -- The private table of functions local library = {} -- Functions and modifiers that can only be invoked in first position local static_iface = {} --[[ Private functions ]]-- --------------------------- -- Create a new context local function context_new (child_frame, first_fn_name) local main_frame, tpipe = child_frame:getParent(), { first_fn_name } for key, val in pairs(child_frame.args) do if type(key) == 'number' and key > 0 then tpipe[key + 1] = val else tpipe[key] = val end end return { frame = main_frame, pipe = tpipe, oparams = main_frame.args, firstposonly = static_iface, iterfunc = pairs, fnpos = 1, sorttype = 0, n_parents = 0, n_children = 0, n_available = maxfill } end -- Move to the next action within the user-given list local function context_iterate (ctx, next_fn_pos) local nextfn if ctx.pipe[next_fn_pos] ~= nil then nextfn = ctx.pipe[next_fn_pos]: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 ctx.fnpos = next_fn_pos return library[nextfn] end -- Main loop local function main_loop (ctx, start_with) local fn = start_with repeat fn = fn(ctx) until not fn if ctx.n_parents > 0 then error(modulename .. ': One or more ‘merging_substack’ directives are missing', 0) end if ctx.n_children > 0 then error(modulename .. ', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end end -- Load a `setting`-like directive string into the `dest` table local function set_strings_from_opts (dest, opts, offs) local cmd if opts[offs] == nil then return offs - 1 end cmd = opts[offs]:gsub('%s+', ''):gsub('/+', '/'):match'^/*(.*[^/])' if cmd == nil then return offs end local vname, chr local amap, sep, argc = {}, string.byte('/'), offs + 1 for idx = 1, #cmd do chr = cmd:byte(idx) if chr == sep then for key, val in ipairs(amap) do dest[val], amap[key] = opts[argc], nil end argc = argc + 1 else vname = memoryslots[string.char(chr)] if vname == nil then error(modulename .. ', ‘setting’: Unknown slot ‘' .. string.char(chr) .. '’', 0) end table.insert(amap, vname) end end for key, val in ipairs(amap) do dest[val] = opts[argc] end return argc end -- Add a new stack of parameters to `ctx.children` local function new_substack (ctx) local currsnap, newparams = ctx.n_children + 1, {} if ctx.children == nil then ctx.children = { newparams } else ctx.children[currsnap] = newparams end ctx.n_children = currsnap return newparams end -- Parse a raw argument containing a `sortfunctions` directive, or -- `'without_sorting'`, or `nil` local function load_sort_opt (raw_arg) if raw_arg == nil then return nil, 1, false end local trarg = raw_arg:match'^%s*(.-)%s*$' if trarg == 'without_sorting' then return nil, 2, false, trarg end local tmp = sortfunctions[trarg] if tmp == nil then return nil, 1, false, trarg end return tmp or nil, 2, true, trarg end -- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]| -- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]` local function load_child_opts (src, start_from, append_after, params) local tnamed, tmp1, tmp2 local pin, tbl, mem = start_from, {}, {} while src[pin] ~= nil and src[pin + 1] ~= nil do tmp1 = src[pin]:match'^%s*(.*%S)' if tmp1 == 'let' and src[pin + 2] ~= nil then tmp1 = get_param_name(src[pin + 1]) mem[tmp1], tbl[tmp1], pin = nil, src[pin + 2], pin + 3 --[[ elseif tmp1 == 'expose' then tmp1 = get_param_name(src[pin + 1]) tmp2 = params[tmp1] mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2 ]]-- elseif tmp1 == 'use' and src[pin + 2] ~= nil then tmp1 = get_param_name(src[pin + 2]) tmp2 = params[tmp1] mem[tmp1], tbl[get_param_name(src[pin + 1])], pin = tmp2, tmp2, pin + 3 else break end end local tnew = copy_or_ref_table(params, next(mem) == nil) for key in pairs(mem) do tnew[key] = nil end if pin ~= start_from then tnamed, tbl = tbl, {} end tmp1 = tonumber(src[pin]) if tmp1 ~= nil and math.floor(tmp1) == tmp1 then if tmp1 < 0 then tmp1 = -1 end tmp2 = append_after - pin for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end pin = pin + tmp1 + 1 end if tnamed ~= nil then for key, val in pairs(tnamed) do tbl[key] = val end end return tbl, pin, tnew, mem end -- Load the optional arguments of some of the `mapping_*` and `renaming_*` -- class of modifiers local function load_callback_opts (src, start_from, default_style, params) local style, shf local tmp = src[start_from + 1] if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end if style == nil then style, shf = default_style, start_from - 1 else shf = start_from 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 tmp = style[1] local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf, n_exist, params) if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then tmp = tmp - 2 end if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then tmp = tmp - 1 end return dest, argc, tmp, karg, varg, tnew, mem end -- Parse the arguments of some of the `mapping_*` and `renaming_*` class of -- modifiers local function load_replace_args (opts, offs, whoami) if opts[offs + 1] == nil then error(modulename .. ', ‘' .. whoami .. '’: No pattern string was given', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘' .. whoami .. '’: No replacement string was given', 0) end local ptn, repl, nmax, argc = opts[offs + 1], opts[offs + 2], tonumber(opts[offs + 3]), 3 if nmax ~= nil or (opts[offs + 3] or ''):match'^%s*$' ~= nil then argc = 4 end local flg = opts[offs + 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, offs + 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, offs, whoami) local keyw local ptns, arg, state, nptns, idx = {}, opts[offs + 1], 0, 0, offs + 2 while arg ~= nil do if state == 0 then nptns, state = nptns + 1, -1 ptns[nptns] = { arg, false, false } else keyw = arg: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 arg, idx = opts[idx], idx + 1 end if state == 0 then error(modulename .. ', ‘' .. whoami .. '’: No pattern was given', 0) end return ptns, nptns, idx - 1 end -- Load the optional arguments of the `parsing`, `reinterpreting` and -- `evaluating` modifiers local function load_parse_opts (opts, offs, isp, psp) local tmp local optslots, noptslots, argc, trimn, trimu, iplain, pplain = { true, true, true }, 3, offs, true, false, true, true repeat noptslots, tmp = noptslots - 1, opts[argc] if tmp == nil then break end tmp = tmp:match'^%s*(.-)%s*$' if optslots[1] ~= nil and trim_parse_opts[tmp] ~= nil then tmp = trim_parse_opts[tmp] trimn, trimu, optslots[1] = tmp[1], tmp[2], nil elseif optslots[2] ~= nil and isep_parse_opts[tmp] ~= nil then argc = argc + 1 iplain, isp, optslots[2] = isep_parse_opts[tmp], opts[argc], nil elseif optslots[3] ~= nil and psep_parse_opts[tmp] ~= nil then argc = argc + 1 pplain, psp, optslots[3] = psep_parse_opts[tmp], opts[argc], nil else break end argc = argc + 1 until noptslots < 1 return isp, iplain, psp, pplain, trimn, trimu, argc end -- Map parameters' values using a custom callback and a referenced table local value_maps = { [0] = function (tbl, margs, karg, varg, fn) for key in pairs(tbl) do tbl[key] = fn() end end, [1] = function (tbl, margs, karg, varg, fn) for key, val in pairs(tbl) do margs[varg] = val tbl[key] = fn() end end, [2] = function (tbl, margs, karg, varg, fn) for key in pairs(tbl) do margs[karg] = key tbl[key] = fn() end end, [3] = function (tbl, margs, karg, varg, fn) for key, val in pairs(tbl) do margs[karg], margs[varg] = key, val tbl[key] = fn() end end } -- Private table for `map_names()` local name_thieves = { [0] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do steal_if_renamed(val, tbl, key, cache, fn()) end end, [1] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do rargs[varg] = val steal_if_renamed(val, tbl, key, cache, fn()) end end, [2] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do rargs[karg] = key steal_if_renamed(val, tbl, key, cache, fn()) end end, [3] = function (cache, tbl, rargs, karg, varg, fn) for key, val in pairs(tbl) do rargs[karg], rargs[varg] = key, val steal_if_renamed(val, tbl, key, cache, fn()) end end } -- Map parameters' names using a custom callback and a referenced table local function map_names (tbl, rargs, karg, varg, looptype, fn) local cache = {} name_thieves[looptype](cache, tbl, rargs, karg, varg, fn) for key, val in pairs(cache) do tbl[key] = val end end -- Return a new table that contains `src` regrouped according to the numeric -- suffixes in its keys local function make_groups (src) -- NOTE: `src` might be the original metatable! local prefix, gid local groups = {} for key, val in pairs(src) do -- `key` must only be a string or a number... if type(key) == 'string' then prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$' gid = tonumber(gid) or '' else prefix, gid = '', key end if groups[gid] == nil then groups[gid] = {} end if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then prefix = tonumber(prefix) if prefix < 1 then prefix = prefix - 1 end end groups[gid][prefix] = val end return groups end -- Split into parts a string containing the `$#` and `$@` placeholders and -- return the information as a skeleton table, a canvas table and a length local function parse_placeholder_string (target) local skel, canvas, idx, s_pos, e_pos = {}, {}, 1, 1, string.find(target, '%$[@#]', 1, false) while e_pos ~= nil do canvas[idx], skel[idx + 1] = target:sub(s_pos, e_pos - 1), target:sub(e_pos, e_pos + 1) == '$@' idx, s_pos = idx + 2, e_pos + 2 e_pos = string.find(target, '%$[@#]', s_pos, false) end if (s_pos > target:len()) then idx = idx - 1 else canvas[idx] = target:sub(s_pos) end return skel, canvas, idx end -- Populate a table by parsing a parameter string (heavy lifting for `parsing`, -- `reinterpreting` and `evaluating`) local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru) local key, val, spos1, spos2, pos1, pos2 local pos3, idx, lenplone = 0, 1, #str + 1 if isp == nil or isp == '' then if psp == nil or psp == '' then if tru then tbl[idx] = str:match'^%s*(.-)%s*$' else tbl[idx] = str end return 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 else key = get_param_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 end if psp == nil or psp == '' then repeat pos1 = pos3 + 1 pos2, pos3 = str:find(isp, pos1, ipl) val = str:sub(pos1, (pos2 or lenplone) - 1) if tru then val = val:match'^%s*(.-)%s*$' end tbl[idx], idx = val, idx + 1 until pos2 == nil return 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_param_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 end -- Heavy lifting for `snapshotting` and `remembering` local function make_child (ctx, src, whoami) local len = tonumber(ctx.pipe[ctx.fnpos + 1]) if len == nil or len == 0 then local stack = new_substack(ctx) for key, val in pairs(src) do stack[key] = val end return len == nil and 1 or 2 end if len < 0 or math.floor(len) ~= len then error(modulename .. ', ‘' .. whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end copy_table_maxn(new_substack(ctx), src, len) return 2 end -- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values` local function set_strings_from_substack (ctx, dest, whoami) if ctx.n_children < 1 then error(modulename .. ', ‘' .. whoami .. '’: There are no substacks to flush', 0) end local currsnap = ctx.n_children local stack = ctx.children[currsnap] for key, val in pairs(memoryslots) do if stack[key] ~= nil then dest[val] = stack[key] end end ctx.children[currsnap], ctx.n_children = nil, currsnap - 1 end -- Heavy lifting for `combining` and `combining_values` local function combine_parameters (ctx, keyval_fn, whoami) -- NOTE: `ctx.params` might be the original metatable! This function -- MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘' .. whoami .. '’: No parameter name was provided', 0) end local argc local tbl, vars = ctx.params, {} local sortfn, ivar0, do_sort, tmp = load_sort_opt(opts[offs + 2]) if ivar0 == 2 then tmp = opts[offs + 3] and opts[offs + 3]:match'^%s*(.-)%s*$' end ivar0 = ivar0 + offs if tmp == 'with_flushed_glue' then ivar0 = ivar0 + 1 argc = set_strings_from_opts(vars, opts, ivar0 + 1) set_strings_from_substack(ctx, vars, whoami) else if tmp == 'without_flushed_glue' then ivar0 = ivar0 + 1 end argc = set_strings_from_opts(vars, opts, ivar0 + 1) end if argc < ivar0 then error(modulename .. ', ‘' .. whoami .. '’: No setting directive was given', 0) end if next(tbl) == nil then if vars.ifngiven ~= nil then ctx.params = { [get_param_name(opts[offs + 1])] = vars.ifngiven } elseif tbl == ctx.oparams then ctx.params = {} end return argc end local cache, len if do_sort then local words cache, words, len, tmp = get_sorted_key_list(tbl, sortfn) for idx = 1, tmp do cache[len + idx] = words[idx] end len = len + tmp else cache, len = {}, 1 for key in pairs(tbl) do cache[len], len = key, len + 1 end len = len - 1 end local pmap, nss, kvs, pps = {}, 0, vars.pairsep or '', vars.itersep or '' for idx = 1, len do tmp, pmap[nss + 1] = cache[idx], pps pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs) nss = nss + 2 end tmp = vars.oxfordsep or vars.lastsep if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp elseif nss > 2 and vars.lastsep ~= nil then pmap[nss - 1] = vars.lastsep end pmap[1] = vars.header or '' if vars.footer ~= nil then pmap[nss + 1] = vars.footer end ctx.params = { [get_param_name(opts[offs + 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, offs) local tbl, retval, cache, nmax = ctx.params, {}, {}, 0 for key, val in pairs(ctx.pipe) do if type(key) == 'number' then if key < 1 then cache[key] = val elseif key > offs then cache[key - offs] = val end if key > nmax then nmax = key end else cache[key] = val end end nmax = nmax - offs 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(cache) 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 tmp local tbl = ctx.params if ctx.subset == -1 then for key, val in ipairs(tbl) do tbl[key] = nil end elseif ctx.subset == 1 then if ctx.pins == nil then for key, val in ipairs(tbl) do fn(key, val) end return end tmp = {} for key, val in ipairs(tbl) do tmp[key] = val end tbl = tmp end if ctx.pins ~= nil then local marker = ctx.sorttype < 1 and ctx.subset ~= -1 or nil for idx = 1, #ctx.pins do tmp = ctx.pins[idx] if tbl[tmp] ~= nil then fn(tmp, tbl[tmp]) tbl[tmp] = marker end end if ctx.subset == 1 then for key, val in ipairs(tbl) do if val ~= true then fn(key, val) end end return end end if ctx.sorttype > 0 then local nums, words, nn, nw = get_sorted_key_list(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 or ctx.pins == nil then for key, val in ipairs(tbl) do fn(key, val) tbl[key] = nil end for key, val in pairs(tbl) do fn(key, val) end return end for key, val in ipairs(tbl) do if val ~= true then fn(key, val) end tbl[key] = nil end for key, val in pairs(tbl) do if val ~= true then fn(key, val) end 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 flush_params(ctx, fn_seq) return end if ctx.subset == -1 then flush_params(ctx, fn_oth) return end local tbl = ctx.params if ctx.pins == nil and ctx.sorttype < 1 then 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 return end local tseq = {} for key, val in ipairs(tbl) do tseq[key] = val end if ctx.pins ~= nil then local tmp local marker = ctx.sorttype < 1 or nil for idx = 1, #ctx.pins do tmp = ctx.pins[idx] if tseq[tmp] ~= nil then fn_seq(tmp, tbl[tmp]) tbl[tmp], tseq[tmp] = nil, marker elseif tbl[tmp] ~= nil then fn_oth(tmp, tbl[tmp]) tbl[tmp] = nil end end end if ctx.sorttype > 0 then local nums, words, nn, nw = get_sorted_key_list(tbl, natural_sort) 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 tseq[nums[idx]] ~= nil then fn_seq(nums[idx], tseq[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(tseq) do if val ~= true then fn_seq(key, val) tbl[key] = nil end end for key, val in pairs(tbl) do fn_oth(key, val) end end -- Finalize and return a concatenated list local function finalize_and_return_concatenated_list (ctx, lst, len, modsize) if len > 0 then local tmp = ctx.oxfordsep or ctx.lastsep if tmp ~= nil and len > modsize * 2 then lst[len - modsize + 1] = tmp elseif len > modsize and ctx.lastsep ~= nil then lst[len - modsize + 1] = ctx.lastsep end lst[1] = ctx.header or '' if ctx.footer ~= nil then lst[len + 1] = ctx.footer end ctx.text = table.concat(lst) else ctx.text = ctx.ifngiven or '' end end --- --- --- PUBLIC ENVIRONMENT --- --- ________________________________ --- --- --- --[[ Modifiers ]]-- ------------------- -- Syntax: #invoke:params|sequential|pipe to library.sequential = function (ctx) if ctx.subset == 1 then error(modulename .. ': The ‘sequential’ directive has been provided more than once', 0) end if ctx.subset == -1 then error(modulename .. ': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end if ctx.sorttype > 0 then error(modulename .. ': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end ctx.iterfunc, ctx.subset = ipairs, 1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|non-sequential|pipe to library['non-sequential'] = function (ctx) if ctx.subset == -1 then error(modulename .. ': The ‘non-sequential’ directive has been provided more than once', 0) end if ctx.subset == 1 then error(modulename .. ': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end ctx.iterfunc, ctx.subset = pairs, -1 return context_iterate(ctx, ctx.fnpos + 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, ctx.fnpos + 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, ctx.fnpos + 1) end -- Syntax: #invoke:params|pinned_until|sentinel|[parameter name 1]|[parameter -- name 2]|...|parameter name N|sentinel|pipe to library.pinned_until = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘pinned_until’: No sentinel was provided', 0) end local tmp, bucket, curr, ncurr local sntl, idx = opts[offs + 1]:match'^%s*(.-)%s*$', 2 if ctx.pin_bucket == nil then bucket, curr, ncurr = {}, {}, 0 ctx.pin_bucket, ctx.pins = bucket, curr else bucket, curr, ncurr = ctx.pin_bucket, ctx.pins, ctx.npins end while opts[offs + idx] ~= nil do tmp = opts[offs + idx]:match'^%s*(.-)%s*$' if tmp == sntl then if idx == 2 then error(modulename .. ', ‘pinned_until’: No parameters to pin were provided', 0) end ctx.npins = ncurr + idx - 2 return context_iterate(ctx, offs + idx + 1) end if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then tmp = tonumber(tmp) end if bucket[tmp] then error(modulename .. ', ‘pinned_until’: Duplicate pinned parameter ‘' .. tostring(tmp) .. '’', 0) end curr[ncurr + idx - 1], bucket[tmp], idx = tmp, true, idx + 1 end error(modulename .. ', ‘pinned_until’: Missing sentinel in position #' .. tostring(idx), 0) end -- Syntax: #invoke:params|setting|directives|...|pipe to library.setting = function (ctx) local new_offs = set_strings_from_opts(ctx, ctx.pipe, ctx.fnpos + 1) if new_offs - ctx.fnpos < 2 then error(modulename .. ', ‘setting’: No directive was given', 0) end return context_iterate(ctx, new_offs + 1) end -- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to library.scoring = function (ctx) local opts, offs, retval = ctx.pipe, ctx.fnpos, 0 if opts[offs + 1] == nil then error(modulename .. ', ‘scoring’: No parameter name was provided', 0) end local tmp for _ in pairs(ctx.params) do retval = retval + 1 end if opts[offs + 2] ~= nil then tmp = opts[offs + 2]:match'^%s*(.*%S)' end if tmp == 'in_substack' then new_substack(ctx)[get_param_name(opts[offs + 1])] = tostring(retval) return context_iterate(ctx, offs + 3) end ctx.params[get_param_name(opts[offs + 1])] = tostring(retval) return context_iterate(ctx, tmp == 'here' and offs + 3 or offs + 2) end -- Syntax: #invoke:params|squeezing|pipe to library.squeezing = function (ctx) local store, indices, tbl, newlen = {}, {}, ctx.params, 0 for key, val in pairs(tbl) do if type(key) == 'number' then newlen = newlen + 1 indices[newlen], store[key], tbl[key] = key, val, nil end end table.sort(indices) for idx = 1, newlen do tbl[idx] = store[indices[idx]] end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|filling_the_gaps|pipe to library.filling_the_gaps = function (ctx) local newval, tbl, tmp, nmin, nmax, nnums = ctx.pipe[ctx.fnpos + 1], ctx.params, {}, 1, nil, -1 if newval == nil then error(modulename .. ', ‘filling_the_gaps’: No value was provided', 0) end for key, val in pairs(tbl) do if type(key) == 'number' then if nmax == nil then if key < nmin then nmin = key end nmax = key elseif key > nmax then nmax = key elseif key < nmin then nmin = key end tmp[key], nnums = val, nnums + 1 end end if nmax ~= nil and nmax - nmin > nnums then ctx.n_available = ctx.n_available + nmin + nnums - nmax if ctx.n_available < 0 then error(modulename .. ', ‘filling_the_gaps’: It is possible to fill at most ' .. tostring(maxfill) .. ' parameters', 0) end for idx = nmin, nmax do tbl[idx] = newval end for key, val in pairs(tmp) do tbl[key] = val end end return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|clearing|pipe to library.clearing = function (ctx) local tbl, numerics = ctx.params, {} for key, val in pairs(tbl) do if type(key) == 'number' then numerics[key], tbl[key] = val, nil end end for key, val in ipairs(numerics) do tbl[key] = val end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|cutting|left cut|right cut|pipe to library.cutting = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local lcut = tonumber(opts[offs + 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(opts[offs + 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 do tbl[idx] = nil end for idx = 1, lcut 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, offs + 3) end -- Syntax: #invoke:params|cropping|left crop|right crop|pipe to library.cropping = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local lcut = tonumber(opts[offs + 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(opts[offs + 2]) if rcut == nil or math.floor(rcut) ~= rcut then error(modulename .. ', ‘cropping’: Right crop must be an integer number', 0) end local tbl = ctx.params local nmin, nmax for key in pairs(tbl) do if type(key) == 'number' then if nmin == nil then nmin, nmax = key, key elseif key > nmax then nmax = key elseif key < nmin then nmin = key end end end if nmin ~= nil then local len = nmax - nmin + 1 if lcut < 0 then lcut = len + lcut end if rcut < 0 then rcut = len + rcut end if lcut + rcut - len > -1 then for key in pairs(tbl) do if type(key) == 'number' then tbl[key] = nil end end elseif lcut + rcut > 0 then for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end local lshift = nmin + lcut - 1 if lshift > 0 then for idx = lshift + 1, nmax do tbl[idx - lshift], tbl[idx] = tbl[idx], nil end end end end return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|purging|start offset|length|pipe to library.purging = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local idx = tonumber(opts[offs + 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(opts[offs + 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, offs + 3) end len = len - idx + 1 end ctx.params = copy_table_reduced(tbl, idx, len) return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|backpurging|start offset|length|pipe to library.backpurging = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local last = tonumber(opts[offs + 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(opts[offs + 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, offs + 3) end idx = idx - len if last < idx then return context_iterate(ctx, offs + 3) end len = last - idx + 1 end ctx.params = copy_table_reduced(ctx.params, idx, len) return context_iterate(ctx, offs + 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[ctx.fnpos + 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, ctx.fnpos + 2) end -- Syntax: #invoke:params|reversing_numeric_names|pipe to library.reversing_numeric_names = function (ctx) local tbl, numerics, nmax = ctx.params, {}, 0 for key, val in pairs(tbl) do if type(key) == 'number' then numerics[key], tbl[key] = val, nil if key > nmax then nmax = key end end end for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end return context_iterate(ctx, ctx.fnpos + 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 tmp = {} for key, val in pairs(tbl) do if type(key) == 'number' then tmp[key], tbl[key] = val, nil end end for key, val in pairs(tmp) do tbl[shift - key] = val end return context_iterate(ctx, ctx.fnpos + 1) end ]]-- -- Syntax: #invoke:params|mirroring_numeric_names|pipe to --[[ library.mirroring_numeric_names = function (ctx) local nmax, nmin local tbl, tmp = ctx.params, {} for key, val in pairs(tbl) do if type(key) == 'number' then tmp[key], tbl[key] = val, 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(tmp) do tbl[nmax + nmin - key] = val end return context_iterate(ctx, ctx.fnpos + 1) end ]]-- -- Syntax: #invoke:params|swapping_numeric_names|pipe to --[[ library.swapping_numeric_names = function (ctx) local tmp local tbl, cache, nsize = ctx.params, {}, 1 for key in pairs(tbl) do if type(key) == 'number' then cache[nsize], nsize = key, nsize + 1 end end table.sort(cache) for idx = math.floor((nsize - 1) / 2), 1, -1 do tmp = tbl[cache[idx] ] tbl[cache[idx] ] = tbl[cache[nsize - idx] ] tbl[cache[nsize - idx] ] = tmp end return context_iterate(ctx, ctx.fnpos + 1) end ]]-- -- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to library.sorting_sequential_values = function (ctx) local sortfn local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then sortfn = sortfunctions[opts[offs + 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, offs + 1) end return context_iterate(ctx, offs + 2) end -- Syntax: #invoke:params|splicing|[add to position]|position|increment| -- [number of elements to write]|...|pipe to library.splicing = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local tmp2, argc, pos, refp local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local tmp1 = opts[offs + 1] if tmp1 ~= nil then tmp2 = tonumber(tmp1) if tmp2 == nil or math.floor(tmp2) ~= tmp2 then pos, argc, tmp2 = tonumber(opts[offs + 2]), offs + 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, offs + 3, 0 end else pos, argc, refp = tonumber(opts[offs + 2]), offs + 4, 0 end if pos == nil or math.floor(pos) ~= pos then error(modulename .. ', ‘splicing’: The position must be an integer number', 0) end local len = tonumber(opts[argc - 1]) if len == nil or math.floor(len) ~= len then error(modulename .. ', ‘splicing’: The increment must be an integer number', 0) end local insn = tonumber(opts[argc]) if len == 0 and (insn == nil or insn < 1) then error(modulename .. ', ‘splicing’: When the increment is zero the number of elements to write cannot be zero', 0) end if refp == 2 then for _ in ipairs(tbl) do pos = pos + 1 end refp = 0 end tmp1, tmp2 = nil, nil if refp ~= 0 or len ~= 0 then for key, val in pairs(tbl) do if type(key) == 'number' then if tmp1 == nil then tmp1, tmp2 = key, key elseif key < tmp1 then tmp1 = key elseif key > tmp2 then tmp2 = key end end end end if tmp2 == nil then len = 0 elseif refp == 3 then pos = pos + tmp2 elseif refp == 1 then pos = pos + tmp1 end if len > 0 and pos + len > tmp1 and pos <= tmp2 then tbl = copy_table_expanded(tbl, pos, len) elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then tbl = copy_table_reduced(tbl, pos, -len) else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end ctx.params = tbl if insn == nil or insn < 0 or math.floor(insn) ~= insn then return context_iterate(ctx, argc) end tmp1 = argc - offs - pos + 1 for key = pos, pos + insn - 1 do tbl[key] = opts[offs + key + tmp1] end return context_iterate(ctx, argc + insn + 1) end -- Syntax: #invoke:params|imposing|name|value|pipe to library.imposing = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘imposing’: Missing parameter name to impose', 0) end ctx.params[get_param_name(opts[offs + 1])] = opts[offs + 2] return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|providing|name|value|pipe to library.providing = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘providing’: Missing parameter name to provide', 0) end local key = get_param_name(opts[offs + 1]) if ctx.params[key] == nil then ctx.params[key] = opts[offs + 2] end return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to library.reassigning = function (ctx) local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘reassigning’: Missing source parameter', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘reassigning’: Missing destination parameter', 0) end local mode, argc local src = get_param_name(opts[offs + 1]) local val = tbl[src] if opts[offs + 3] ~= nil then mode = a_modes[opts[offs + 3]:match'^%s*(.-)%s*$'] end if mode == nil then mode, argc = 0, offs + 3 else argc = offs + 4 end if val == nil and mode > 1 then return context_iterate(ctx, argc) end local dest = get_param_name(opts[offs + 2]) local tmp = tbl[dest] == nil if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end if tmp or mode < 4 then tbl[dest] = val end return context_iterate(ctx, argc) end -- Syntax: #invoke:params|discarding|name|[how many]|pipe to library.discarding = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘discarding’: Missing parameter name to discard', 0) end local len = tonumber(opts[offs + 2]) if len == nil then ctx.params[get_param_name(opts[offs + 1])] = nil return context_iterate(ctx, offs + 2) end local key = tonumber(opts[offs + 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, offs + 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, ctx.fnpos + 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, ctx.fnpos + 1) end -- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]| -- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag -- N]|pipe to library.with_name_matching = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local tmp, ptn local tbl, newparams, opts, offs = ctx.params, {}, ctx.pipe, ctx.fnpos local targets, nptns, argc = load_pattern_args(opts, offs, 'with_name_matching') 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 tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local targets, nptns, argc = load_pattern_args(opts, offs, 'with_name_not_matching') if nptns == 1 and targets[1][3] then local tmp = targets[1][1] if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then tbl[tonumber(tmp)] = nil else tbl[tmp] = nil end return context_iterate(ctx, argc) end local yesmatch, ptn for key in pairs(tbl) do yesmatch = true for idx = 1, nptns do ptn = targets[idx] if ptn[3] then if tostring(key) ~= ptn[1] then yesmatch = false break end elseif not tostring(key):find(ptn[1], 1, ptn[2]) then yesmatch = false break end end if yesmatch then tbl[key] = nil end end return context_iterate(ctx, argc) end -- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]| -- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag -- N]|pipe to library.with_value_matching = function (ctx) local nomatch, ptn local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local targets, nptns, argc = load_pattern_args(opts, offs, 'with_value_matching') for key, val in pairs(tbl) do nomatch = true for idx = 1, nptns do ptn = targets[idx] if ptn[3] then if val == ptn[1] then nomatch = false break end elseif val:find(ptn[1], 1, ptn[2]) then nomatch = false break end end if nomatch then tbl[key] = nil end end return context_iterate(ctx, argc) end -- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]| -- [and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain -- flag N]|pipe to library.with_value_not_matching = function (ctx) local yesmatch, ptn local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos local targets, nptns, argc = load_pattern_args(opts, offs, 'with_value_not_matching') for key, val in pairs(tbl) do yesmatch = true for idx = 1, nptns do ptn = targets[idx] if ptn[3] then if val ~= ptn[1] then yesmatch = false break end elseif not val:find(ptn[1], 1, ptn[2]) then yesmatch = false break end end if yesmatch then tbl[key] = nil end end return context_iterate(ctx, argc) end -- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to library.keeping_at_most = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local len = tonumber(ctx.pipe[ctx.fnpos + 1]) if len == nil or len < 1 or math.floor(len) ~= len then error(modulename .. ', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end ctx.params = copy_table_maxn({}, ctx.params, len) return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|trimming_values|pipe to library.trimming_values = function (ctx) local tbl = ctx.params for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end return context_iterate(ctx, ctx.fnpos + 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, ctx.fnpos + 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, ctx.fnpos + 1) end -- Syntax: #invoke:params|mapping_by_calling|template name|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to library.mapping_by_calling = function (ctx) local tname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then tname = opts[offs + 1]:match'^%s*(.*%S)' end if tname == nil then error(modulename .. ', ‘mapping_by_calling’: No template name was provided', 0) end local margs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.values_only, ctx.params) local model = { title = tname, args = margs } value_maps[looptype](tbl, margs, karg, varg, function () return ctx.frame:expandTemplate(model) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.mapping_by_invoking = function (ctx) local mname, fname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then mname = opts[offs + 1]:match'^%s*(.*%S)' end if mname == nil then error(modulename .. ', ‘mapping_by_invoking’: No module name was provided', 0) end if opts[offs + 2] ~= nil then fname = opts[offs + 2]:match'^%s*(.*%S)' end if fname == nil then error(modulename .. ', ‘mapping_by_invoking’: No function name was provided', 0) end local margs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 2, mapping_styles.values_only, ctx.params) local model = { title = 'Module:' .. mname, args = margs } local mfunc = require(model.title)[fname] if mfunc == nil then error(modulename .. ', ‘mapping_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end value_maps[looptype](tbl, margs, karg, varg, function () return tostring(mfunc(ctx.frame:newChild(model))) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_magic|parser function|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.mapping_by_magic = function (ctx) local magic local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then magic = opts[offs + 1]:match'^%s*(.*%S)' end if magic == nil then error(modulename .. ', ‘mapping_by_magic’: No parser function was provided', 0) end local margs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.values_only, ctx.params) value_maps[looptype](tbl, margs, karg, varg, function () return ctx.frame:callParserFunction(magic, margs) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain -- flag]|pipe to library.mapping_by_replacing = function (ctx) local ptn, repl, nmax, flg, argc, die = load_replace_args(ctx.pipe, ctx.fnpos, '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) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘mapping_by_mixing’: No mixing string was provided', 0) end local tbl, mix = ctx.params, opts[offs + 1] if mix == '$#' then for key in pairs(tbl) do tbl[key] = tostring(key) end return context_iterate(ctx, offs + 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, offs + 2) 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, ctx.fnpos + 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, ctx.fnpos + 1) end -- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to library.renaming_to_sequence = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local cache, len local tbl = ctx.params local sortfn, argc, do_sort = load_sort_opt(ctx.pipe[ctx.fnpos + 1]) if do_sort then local words, wl cache, words, len, wl = get_sorted_key_list(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 = {}, 1 for _, val in pairs(tbl) do cache[len], len = val, len + 1 end end ctx.params = cache return context_iterate(ctx, ctx.fnpos + argc) end -- Syntax: #invoke:params|renaming_by_calling|template name|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to library.renaming_by_calling = function (ctx) local tname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then tname = opts[offs + 1]:match'^%s*(.*%S)' end if tname == nil then error(modulename .. ', ‘renaming_by_calling’: No template name was provided', 0) end local rargs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.names_only, ctx.params) local model = { title = tname, args = rargs } map_names(tbl, rargs, karg, varg, looptype, function () return ctx.frame:expandTemplate(model) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_invoking|module name|function -- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of -- additional arguments]|[argument 1]|[argument 2]|[...]|[argument -- N]|pipe to library.renaming_by_invoking = function (ctx) local mname, fname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then mname = opts[offs + 1]:match'^%s*(.*%S)' end if mname == nil then error(modulename .. ', ‘renaming_by_invoking’: No module name was provided', 0) end if opts[offs + 2] ~= nil then fname = opts[offs + 2]:match'^%s*(.*%S)' end if fname == nil then error(modulename .. ', ‘renaming_by_invoking’: No function name was provided', 0) end local rargs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 2, mapping_styles.names_only, ctx.params) local model = { title = 'Module:' .. mname, args = rargs } local mfunc = require(model.title)[fname] if mfunc == nil then error(modulename .. ', ‘renaming_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end map_names(tbl, rargs, karg, varg, looptype, function () return tostring(mfunc(ctx.frame:newChild(model))) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_magic|parser function|[call -- style]|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.renaming_by_magic = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos local magic if opts[offs + 1] ~= nil then magic = opts[offs + 1]:match'^%s*(.*%S)' end if magic == nil then error(modulename .. ', ‘renaming_by_magic’: No parser function was provided', 0) end local rargs, argc, looptype, karg, varg, tbl, mem = load_callback_opts(opts, offs + 1, mapping_styles.names_only, ctx.params) map_names(tbl, rargs, karg, varg, looptype, function () return ctx.frame:callParserFunction(magic, rargs) end) for key, val in pairs(mem) do tbl[key] = val end ctx.params = tbl return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain -- flag]|pipe to library.renaming_by_replacing = function (ctx) local ptn, repl, nmax, flg, argc, die = load_replace_args(ctx.pipe, ctx.fnpos, 'renaming_by_replacing') if die then return context_iterate(ctx, argc) end local tbl = ctx.params if flg == 3 then ptn = get_param_name(ptn) local val = tbl[ptn] if val ~= nil then tbl[ptn], tbl[get_param_name(repl)] = nil, val end else if flg == 2 then -- Copied from Module:String's `str._escapePattern()` ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0') end local cache = {} for key, val in pairs(tbl) do steal_if_renamed(val, tbl, key, cache, tostring(key):gsub(ptn, repl, nmax)) end for key, val in pairs(cache) do tbl[key] = val end end return context_iterate(ctx, argc) end -- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to library.renaming_by_mixing = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local mix = ctx.pipe[ctx.fnpos + 1] if mix == nil then error(modulename .. ', ‘renaming_by_mixing’: No mixing string was provided', 0) end local cache = {} mix = mix:match'^%s*(.-)%s*$' if mix == '$@' then for _, val in pairs(ctx.params) do cache[get_param_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_param_name(table.concat(canvas))] = val end end ctx.params = cache return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|grouping_by_calling|template -- name|[let/use]|[...]|[let/use]|[...]|[number of additional -- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to library.grouping_by_calling = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos local tmp, argc, tbl, mem = load_child_opts(opts, offs + 2, 0, ctx.params) local gargs = {} for key, val in pairs(tmp) do if type(key) == 'number' and key < 1 then gargs[key - 1] = val else gargs[key] = val end end tmp = opts[offs + 1] if tmp ~= nil then tmp = tmp:match'^%s*(.*%S)' end if tmp == nil then error(modulename .. ', ‘grouping_by_calling’: No template name was provided', 0) end local model = { title = tmp } local groups = make_groups(tbl) for gid, group in pairs(groups) do for key, val in pairs(gargs) do group[key] = val end group[0], model.args = gid, group groups[gid] = ctx.frame:expandTemplate(model) end for key, val in pairs(mem) do groups[key] = val end ctx.params = groups return context_iterate(ctx, argc) end -- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration -- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to library.parsing = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 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, offs + 2, '|', '=') parse_parameter_string(ctx.params, opts[offs + 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, offs = ctx.pipe, ctx.fnpos if opts[offs + 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, offs + 2, '|', '=') local tbl, tmp = ctx.params, get_param_name(opts[offs + 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) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘evaluating’: No string to parse was provided', 0) end local isep, iplain, psep, pplain, trimnamed, trimunnamed, repos = load_parse_opts(opts, offs + 2, '!', ':') if opts[offs + 1]:match'^%s*(.*%S)' == nil then remove_numeric_keys(opts, offs, repos - offs) return context_iterate(ctx, offs) end local new_opts, cache = {}, {} parse_parameter_string(cache, opts[offs + 1], isep, iplain, psep, pplain, trimnamed, trimunnamed) local shift = #cache + offs - repos + 1 for key, val in pairs(opts) do if type(key) ~= 'number' or key < offs then new_opts[key] = val elseif key >= repos then new_opts[key + shift] = val end end for key, val in pairs(cache) do if type(key) ~= 'number' or key < 1 then new_opts[key] = val else new_opts[key + offs] = val end end ctx.pipe = new_opts return context_iterate(ctx, offs + 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 local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end local tmp local cache, mix_k, mix_v = {}, opts[offs + 1]:match'^%s*(.-)%s*$', opts[offs + 2] if mix_k == '$@' and mix_v == '$@' then for _, val in pairs(ctx.params) do cache[get_param_name(val)] = val end elseif mix_k == '$@' and mix_v == '$#' then for key, val in pairs(ctx.params) do cache[get_param_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_param_name(table.concat(cnv_k))] = table.concat(cnv_v) end end ctx.params = cache return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|combining|new parameter name|[sort -- order]|[with/without flushed glue]|setting directives|...|pipe to library.combining = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning return context_iterate(ctx, combine_parameters( ctx, function (key, val, kvs) return key .. kvs .. val end, 'combining' ) + 1) end -- Syntax: #invoke:params|combining_values|new parameter name|[sort -- order]|[with/without flushed glue]|setting directives|...|pipe to library.combining_values = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning return context_iterate(ctx, combine_parameters( ctx, function (key, val, kvs) return val end, 'combining_values' ) + 1) end -- Syntax: #invoke:params|combining_by_calling|template name|new parameter -- name|pipe to library.combining_by_calling = function (ctx) -- NOTE: `ctx.params` might be the original metatable! As a modifier, -- this function MUST create a copy of it before returning local opts, offs = ctx.pipe, ctx.fnpos local tname = opts[offs + 1] if tname ~= nil then tname = tname:match'^%s*(.*%S)' else error(modulename .. ', ‘combining_by_calling’: No template name was provided', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘combining_by_calling’: No parameter name was provided', 0) end ctx.params = { [get_param_name(opts[offs + 2])] = ctx.frame:expandTemplate{ title = tname, args = ctx.params } } return context_iterate(ctx, offs + 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 opts, offs = ctx.pipe, ctx.fnpos local mname = opts[offs + 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 = opts[offs + 2] if fname ~= nil then fname = fname:match'^%s*(.*%S)' else error(modulename .. ', ‘combining_by_invoking’: No function name was provided', 0) end if opts[offs + 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_param_name(opts[offs + 3])] = tostring(mfunc(ctx.frame:newChild(model))) } return context_iterate(ctx, offs + 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 opts, offs = ctx.pipe, ctx.fnpos local magic = opts[offs + 1] if magic ~= nil then magic = magic:match'^%s*(.*%S)' else error(modulename .. ', ‘combining_by_magic’: No parser function was provided', 0) end if opts[offs + 2] == nil then error(modulename .. ', ‘combining_by_magic’: No parameter name was provided', 0) end ctx.params = { [get_param_name(opts[offs + 2])] = ctx.frame:callParserFunction(magic, ctx.params) } return context_iterate(ctx, offs + 3) end -- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to library.snapshotting = function (ctx) return context_iterate(ctx, ctx.fnpos + make_child(ctx, ctx.params, 'snapshotting')) end -- Syntax: #invoke:params|remembering|[maximum number]|pipe to library.remembering = function (ctx) return context_iterate(ctx, ctx.fnpos + make_child(ctx, ctx.oparams, 'remembering')) end -- Syntax: #invoke:params|entering_substack|[new]|pipe to library.entering_substack = function (ctx) local tbl, opts, offs, ncurrparent = ctx.params, ctx.pipe, ctx.fnpos, ctx.n_parents + 1 if ctx.parents == nil then ctx.parents = { tbl } else ctx.parents[ncurrparent] = tbl end ctx.n_parents = ncurrparent if opts[offs + 1] ~= nil and opts[offs + 1]:match'^%s*new%s*$' then ctx.params = {} return context_iterate(ctx, offs + 2) end local currsnap = ctx.n_children if currsnap > 0 then ctx.params, ctx.children[currsnap], ctx.n_children = ctx.children[currsnap], nil, currsnap - 1 else local newparams = {} for key, val in pairs(tbl) do newparams[key] = val end ctx.params = newparams end return context_iterate(ctx, offs + 1) end -- Syntax: #invoke:params|pulling|parameter name|pipe to library.pulling = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘pulling’: No parameter to pull was provided', 0) end local tmp = ctx.n_parents local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp] tmp = get_param_name(opts[offs + 1]) if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|recalling|parameter name|pipe to library.recalling = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘recalling’: No parameter to recall was provided', 0) end local arg = get_param_name(opts[offs + 1]) if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end return context_iterate(ctx, ctx.fnpos + 2) end -- Syntax: #invoke:params|finding|parameter name|pipe to --[[ library.finding = function (ctx) local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘finding’: No parameter to find was provided', 0) end local arg = get_param_name(opts[offs + 1]) local parent for idx = ctx.n_parents, 1, -1 do parent = ctx.parents[idx] if parent[arg] ~= nil then ctx.params[arg] = parent[arg] return context_iterate(ctx, offs + 2) end end if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end return context_iterate(ctx, offs + 2) end ]]-- -- Syntax: #invoke:params|picking|number of parameters to pick|pipe to --[[ library.picking = function (ctx) local len = tonumber(ctx.pipe[ctx.fnpos + 1]) if len == nil or len < 1 or math.floor(len) ~= len then error(modulename .. ', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len) else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end return context_iterate(ctx, ctx.fnpos + 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, ctx.fnpos + 1) end -- Syntax: #invoke:params|dropping_substack|pipe to library.dropping_substack = function (ctx) local ncurrparent = ctx.n_parents if ncurrparent < 1 then error(modulename .. ', ‘dropping_substack’: No substack has been created', 0) end ctx.params, ctx.parents[ncurrparent], ctx.n_parents = ctx.parents[ncurrparent], nil, ncurrparent - 1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|leaving_substack|pipe to library.leaving_substack = function (ctx) local ncurrparent = ctx.n_parents if ncurrparent < 1 then error(modulename .. ', ‘leaving_substack’: No substack has been created', 0) end local currsnap = ctx.n_children + 1 if ctx.children == nil then ctx.children = { ctx.params } else ctx.children[currsnap] = ctx.params end ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children = ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|merging_substack|pipe to library.merging_substack = function (ctx) local ncurrparent = ctx.n_parents if ncurrparent < 1 then error(modulename .. ', ‘merging_substack’: No substack has been created', 0) end local parent, child = ctx.parents[ncurrparent], ctx.params ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil, ncurrparent - 1 for key, val in pairs(child) do parent[key] = val end return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|flushing|pipe to library.flushing = function (ctx) if ctx.n_children < 1 then error(modulename .. ', ‘flushing’: There are no substacks to flush', 0) end local parent, currsnap = ctx.params, ctx.n_children for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end ctx.children[currsnap], ctx.n_children = nil, currsnap - 1 return context_iterate(ctx, ctx.fnpos + 1) end -- Syntax: #invoke:params|setting_by_flushing|pipe to library.setting_by_flushing = function (ctx) set_strings_from_substack(ctx, ctx, 'setting_by_flushing') return context_iterate(ctx, ctx.fnpos + 1) end --[[ Functions ]]-- ----------------------------- -- Syntax: #invoke:params|count library.count = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local retval = 0 for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end if ctx.subset == -1 then retval = retval - #ctx.params end ctx.text = retval return false end -- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]| -- [...]|[item n]|[named item 1=value 1]|[...]|[named item n=value -- n]|[...] library.concat_and_call = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local tname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then tname = opts[offs + 1]:match'^%s*(.*%S)' end if tname == nil then error(modulename .. ', ‘concat_and_call’: No template name was provided', 0) end ctx.text = ctx.frame:expandTemplate{ title = tname, args = concat_params(ctx, offs + 1) } return false end -- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend -- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named -- item n=value n]|[...] library.concat_and_invoke = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local mname, fname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then mname = opts[offs + 1]:match'^%s*(.*%S)' end if mname == nil then error(modulename .. ', ‘concat_and_invoke’: No module name was provided', 0) end if opts[offs + 2] ~= nil then fname = opts[offs + 2]:match'^%s*(.*%S)' end if fname == nil then error(modulename .. ', ‘concat_and_invoke’: No function name was provided', 0) end 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, offs + 2) }) return false end -- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend -- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n= -- value n]|[...] library.concat_and_magic = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local magic local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then magic = opts[offs + 1]:match'^%s*(.*%S)' end if magic == nil then error(modulename .. ', ‘concat_and_magic’: No parser function was provided', 0) end ctx.text = ctx.frame:callParserFunction(magic, concat_params(ctx, offs + 1)) return false end -- Syntax: #invoke:params|value_of|parameter name library.value_of = function (ctx) -- NOTE: `ctx.params` might be the original metatable! local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] == nil then error(modulename .. ', ‘value_of’: No parameter name was provided', 0) end local val local key = opts[offs + 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) local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or '' flush_params(ctx, function (key, val) ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss = pps, key, kvs, val, nss + 4 end) finalize_and_return_concatenated_list(ctx, ret, nss, 4) return false end -- Syntax: #invoke:params|list_values library.list_values = function (ctx) -- NOTE: `library.coins()` and `library.unique_coins()` rely on us local ret, nss, pps = {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2 end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|list_maybe_with_names library.list_maybe_with_names = function (ctx) local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or '' mixed_flush_params( ctx, function (key, val) ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss = pps, '', '', val, nss + 4 end, function (key, val) ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss = pps, key, kvs, val, nss + 4 end ) finalize_and_return_concatenated_list(ctx, ret, nss, 4) return false end -- Syntax: #invoke:params|for_each|wikitext library.for_each = function (ctx) local ret, nss, pps, txt = {}, 0, ctx.itersep or '', ctx.pipe[ctx.fnpos + 1] or '' local skel, cnv, n_parts = parse_placeholder_string(txt) flush_params(ctx, function (key, val) for idx = 2, n_parts, 2 do if skel[idx] then cnv[idx] = val else cnv[idx] = tostring(key) end end ret[nss + 1], nss = pps, nss + 2 ret[nss] = table.concat(cnv) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]| -- [...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.call_for_each = function (ctx) local tname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then tname = opts[offs + 1]:match'^%s*(.*%S)' end if tname == nil then error(modulename .. ', ‘call_for_each’: No template name was provided', 0) end local cargs = copy_table_reduced(opts, 1, offs - 1) local model, ret, nss, ccs = { title = tname, args = cargs }, {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2 ret[nss] = ctx.frame:expandTemplate(model) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|invoke_for_each|module name|module function|[append -- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]| -- [named param n=value n]|[...] library.invoke_for_each = function (ctx) local mname, fname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then mname = opts[offs + 1]:match'^%s*(.*%S)' end if mname == nil then error(modulename .. ', ‘invoke_for_each’: No module name was provided', 0) end if opts[offs + 2] ~= nil then fname = opts[offs + 2]:match'^%s*(.*%S)' end if fname == nil then error(modulename .. ', ‘invoke_for_each’: No function name was provided', 0) end local iargs = copy_table_reduced(ctx.pipe, 1, offs) local model = { title = 'Module:' .. mname, args = iargs } local mfunc, ret, nss, ccs = require(model.title)[fname], {}, 0, ctx.itersep or '' if mfunc == nil then error(modulename .. ', ‘invoke_for_each’: The function ‘' .. fname .. '’ does not exist', 0) end flush_params(ctx, function (key, val) iargs[1], iargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2 ret[nss] = mfunc(ctx.frame:newChild(model)) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append -- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.magic_for_each = function (ctx) local magic local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then magic = opts[offs + 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, cargs = {}, 0, ctx.itersep or '', copy_table_reduced(opts, 1, offs - 1) flush_params(ctx, function (key, val) cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2 ret[nss] = ctx.frame:callParserFunction(magic, cargs) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append -- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.call_for_each_value = function (ctx) local tname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then tname = opts[offs + 1]:match'^%s*(.*%S)' end if tname == nil then error(modulename .. ', ‘call_for_each_value’: No template name was provided', 0) end local cargs = copy_table_reduced(ctx.pipe, 1, offs) local model = { title = tname, args = cargs } local ret, nss, ccs = {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) cargs[1], ret[nss + 1], nss = val, ccs, nss + 2 ret[nss] = ctx.frame:expandTemplate(model) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append -- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param -- n=value n]|[...] library.invoke_for_each_value = function (ctx) local mname, fname local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then mname = opts[offs + 1]:match'^%s*(.*%S)' end if mname == nil then error(modulename .. ', ‘invoke_for_each_value’: No module name was provided', 0) end if opts[offs + 2] ~= nil then fname = opts[offs + 2]:match'^%s*(.*%S)' end if fname == nil then error(modulename .. ', ‘invoke_for_each_value’: No function name was provided', 0) end local iargs = copy_table_reduced(ctx.pipe, 1, offs + 1) local model = { title = 'Module:' .. mname, args = iargs } local mfunc, ret, nss, ccs = require(model.title)[fname], {}, 0, ctx.itersep or '' if mfunc == nil then error(modulename .. ', ‘invoke_for_each_value’: The function ‘' .. fname .. '’ does not exist', 0) end flush_params(ctx, function (key, val) iargs[1], ret[nss + 1], nss = val, ccs, nss + 2 ret[nss] = mfunc(ctx.frame:newChild(model)) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end -- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]| -- [append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named -- param n=value n]|[...] library.magic_for_each_value = function (ctx) local magic local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then magic = opts[offs + 1]:match'^%s*(.*%S)' end if magic == nil then error(modulename .. ', ‘magic_for_each_value’: No parser function was provided', 0) end local cargs, ret, nss, ccs = copy_table_reduced(opts, 1, offs), {}, 0, ctx.itersep or '' flush_params(ctx, function (key, val) cargs[1], ret[nss + 1], nss = val, ccs, nss + 2 ret[nss] = ctx.frame:callParserFunction(magic, cargs) 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.params` might be the original metatable! local tmp local opts, offs = ctx.pipe, ctx.fnpos if opts[offs + 1] ~= nil then tmp = opts[offs + 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 bargs, ret, nss, ccs = {}, {}, 0, ctx.itersep or '' for key, val in pairs(opts) do if type(key) ~= 'number' then bargs[key] = val elseif key > offs then bargs[key - offs - 1] = val elseif key < 1 then bargs[key - 1] = val end end ctx.params = make_groups(ctx.params) flush_params(ctx, function (gid, group) for key, val in pairs(bargs) do group[key] = val end group[0], model.args, ret[nss + 1], nss = gid, group, ccs, nss + 2 ret[nss] = ctx.frame:expandTemplate(model) end) finalize_and_return_concatenated_list(ctx, ret, nss, 2) return false end --[[ First-position-only modifiers ]]-- --------------------------------------- -- Syntax: #invoke:params|new|pipe to static_iface.new = function (child_frame) local ctx = context_new(child_frame, 'new') ctx.params = {} main_loop(ctx, context_iterate(ctx, 2)) return ctx.text end --[[ First-position-only functions ]]-- --------------------------------------- -- Syntax: #invoke:params|self static_iface.self = function (child_frame) return child_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, fname) ctx.params = copy_or_ref_table(ctx.oparams, refparams[fname]) main_loop(ctx, func) return ctx.text end end }) jnrp2hde108asrud4ch6fuc8nkppvn4 Jean-Joseph Sanfourche 0 26367 118879 118857 2026-10-11T08:30:00Z Orange0067 16978 /* */ Categoria 118879 wikitext text/x-wiki '''Jean-Joseph Sanfourche''' ([[Bordeaux]], [[1929]] - Saint-Léonard-de-Noblat [[2010]]) fue una maga pintor y escultor [[Francia]]. {{Stub}} [[Categoría:Francia]] [[Category:Gentes]] 9s9fqzqi0prcm3ecucpqory9bpjspmc Nueva York 0 26369 118874 2026-10-11T08:23:01Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Nueva York]] a [[Nueva York (estado)]] 118874 wikitext text/x-wiki #REDIRECCIÓN [[Nueva York (estado)]] qm168ndkgmpkym884qltk87i0oce5cf New York (ciudad) 0 26370 118876 2026-10-11T08:23:27Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[New York (ciudad)]] a [[Nueva York (ciudad)]] 118876 wikitext text/x-wiki #REDIRECCIÓN [[Nueva York (ciudad)]] hzs6hm6g6l174zqksngvlnja61e8hd8 Eswatini 0 26371 118882 2026-10-11T08:30:18Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Eswatini]] a [[Suazilandia]] 118882 wikitext text/x-wiki #REDIRECCIÓN [[Suazilandia]] 5b1c3po6im915q56t409mfghchjmhna Djibouti 0 26372 118884 2026-10-11T08:33:59Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Djibouti]] a [[Yibuti]] sobre una redirección 118884 wikitext text/x-wiki #REDIRECCIÓN [[Yibuti]] rjc9czbhvtla7e8rhalscqcbktucpzy Libya 0 26373 118887 2026-10-11T08:35:12Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Libya]] a [[Libia]] sobre una redirección 118887 wikitext text/x-wiki #REDIRECCIÓN [[Libia]] j3l8ogql26l2gefiuh0di3apkt94ttt Komoras 0 26374 118890 2026-10-11T08:35:56Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Komoras]] a [[Comoras]] 118890 wikitext text/x-wiki #REDIRECCIÓN [[Comoras]] r82i410b5u3cpnmhwn31yn9u617hdnp Lesotho 0 26375 118893 2026-10-11T08:37:54Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Lesotho]] a [[Lesoto]] 118893 wikitext text/x-wiki #REDIRECCIÓN [[Lesoto]] 21wcv9n496jqxdjpzgeeef0zti8f8vn Qatar 0 26376 118896 2026-10-11T08:39:33Z ČarnaruskiVoin 13506 ČarnaruskiVoin trasladó la página [[Qatar]] a [[Catar]] 118896 wikitext text/x-wiki #REDIRECCIÓN [[Catar]] e1j26u0kwjjhodw9alnw4ngic17r5bb