Wikipedia
sowiki
https://so.wikipedia.org/wiki/Bogga_Hore
MediaWiki 1.47.0-wmf.20
first-letter
Media
Special
Talk
User
User talk
Wikipedia
Wikipedia talk
File
File talk
MediaWiki
MediaWiki talk
Template
Template talk
Help
Help talk
Category
Category talk
Portal
Portal talk
TimedText
TimedText talk
Module
Module talk
Event
Event talk
Template:User so
10
2018
309272
115363
2026-09-23T20:44:25Z
Isma4l
41797
/* */
309272
wikitext
text/x-wiki
{{userbox-level
| level =
| id = [[Af Soomaali|so]]
| info = Isticmaalahan '''[[:Category:User so|Soomaaliga]] waa''' '''[[:Category:User -N|afkiisa hooyo]]'''.
| usercategory = User so-N
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
8ljbylffiwbjw9emhqatjw0j8yu9qb5
309273
309272
2026-09-23T20:46:15Z
Isma4l
41797
/* */
309273
wikitext
text/x-wiki
{{userbox-level
| level =
| id = [[Af Soomaali|so]]
| info = Isticmaalahan '''[[Af Soomaali|Soomaaliga]] waa''' '''[[:Category:User -N|afkiisa hooyo]]'''.
| usercategory = User so-N
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
0m7zvmh6h3m9mq57b9a544m902lz2nq
309274
309273
2026-09-23T20:47:04Z
Isma4l
41797
/* */
309274
wikitext
text/x-wiki
{{userbox-level
| level =
| id = [[Af Soomaali|so]]
| info = Isticmaalahan '''[[:Category:User so|Soomaaliga]] waa''' '''[[Af Soomaali|afkiisa hooyo]]'''.
| usercategory = User so-N
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
78na174qcqi1nmgjcqrvn3gid1a5s7x
309275
309274
2026-09-23T20:48:25Z
Isma4l
41797
/* */
309275
wikitext
text/x-wiki
{{userbox-level
| level =
| id = [[Af Soomaali|so]]
| info = Isticmaalahan '''[[:Category:User so|Soomaaliga]] waa''' '''[[:Category:User so-N|afkiisa hooyo]]'''.
| usercategory = User so-N
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
smijtcs8vl6h9x7crgnkvc7sa9qsun6
Template:User so-1
10
2019
309281
115362
2026-09-23T21:00:11Z
Isma4l
41797
/* */
309281
wikitext
text/x-wiki
{{userbox-level
| level = 1
| id = [[Af Soomaali|so]]
| info = Isticmaalahan wuxuu '''[[:Category:User so|Soomaaliga]]''' ugu hadlaa si '''[[:Category:User so-1|aad u yar]]'''.
| usercategory = User so-1
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
t21q4bshfhz1bjq9smol26pwpn55mpp
Template:User so-2
10
2020
309280
115360
2026-09-23T20:59:21Z
Isma4l
41797
/* */
309280
wikitext
text/x-wiki
{{userbox-level
| level = 2
| id = [[Af Soomaali|so]]
| info = Isticmaalahan wuxuu '''[[:Category:User so|Soomaaliga]]''' ugu hadlaa si '''[[:Category:User so-2|dhaxdhaxaad ah]]'''.
| usercategory = User so-2
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
mv5h8r4hv7hmz8q9iq6bly66q20nw2z
Template:User so-3
10
2021
309278
115361
2026-09-23T20:57:21Z
Isma4l
41797
/* */
309278
wikitext
text/x-wiki
{{userbox-level
| level = 3
| id = [[Af Soomaali|so]]
| info = Isticmaalahan wuxuu '''[[:Category:User so|Soomaaliga]]''' ugu hadlaa si '''[[:Category:User so-3|aad u fiican]]'''.
| usercategory = User so-3
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
02id9hrgsw8j59kb6p1y8j0aqx7rsh9
Template:User so-4
10
2022
309276
115364
2026-09-23T20:50:14Z
Isma4l
41797
/* */
309276
wikitext
text/x-wiki
{{Sanduuqa Isticmaalada-Darajo
| level = 4
| id = [[Af Soomaali|so]]
| info = Isticmaalahan wuxuu '''[[:Category:User so|Soomaaliga]]''' ugu hadlaa sida afkiisa '''[[:Category:User so-4|hooyo]]''' oo kale.
| usercategory = User so-4
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
9zp6qfgz59fzcqla9n7n82b340qslxy
Template:User so-0
10
2036
309282
66672
2026-09-23T21:02:55Z
Isma4l
41797
/* */
309282
wikitext
text/x-wiki
{{userbox-level
| level = 0
| id = [[Af Soomaali|so]]
| info = Isticmaalahan waxba kama yaqaano '''[[:Category:User so|Soomaaliga]]''' (ama wuxuu ka yaqaanaa wax aad iyo '''[[:Category:User so-0|aad u yar]])'''.
| usercategory = User so-0
| nocat = {{{nocat|}}}
}}<noinclude>
{{Documentation|Template:User x}}
</noinclude>
smzhzscs0rkunegjtnbealqp7waf0t0
Category:User so
14
2055
309291
145754
2026-09-23T21:25:47Z
Isma4l
41797
/* */
309291
wikitext
text/x-wiki
Qaybtani waxay liis gareysaa isticmaalayaasha awoodda u leh inay ku hadlaan [[Af Soomaali|Soomaali]], iyadoo sidoo kale lagu saleyn karo heerka aqoontooda hadba inta ay le'eg tahay.
Waa inaad naftaada ku dartaa qaybtan, ama aad gelisaa sanduuqa isticmaalaha ee hoose boggaaga isticmaalaha taas oo si toos ah kuu dari doonta.
{|
{{yy|Template:User so|category=User so}}
|}
Si aad u caddeyso heerkaaga, waxaad naftaada ku dari kartaa mid ka mid ah hoos-qaybaha, ama aad gelisaa mid ka mid ah sanduuqyada isticmaalaha ee hoose boggaaga isticmaalaha taas oo si toos ah kuu gelin doonta hoos-qaybta ku habboon.
{{unbulleted list
|[[:Category:User so-5]]: Isticmaalayaasha leh heer xirfadeed oo Soomaali ah
|[[:Category:User so]]: Dadka ku dhashay ee ku hadla af Soomaaliga
|[[:Category:User so-4]]: Isticmaalayaasha leh heer Soomaali ah oo la mid ah dadka ku dhashay ee ku hadla
|[[:Category:User so-3]]: Isticmaalayaasha leh heer horumaray oo xiriirin kara af Soomaaliga
|[[:Category:User so-2]]: Isticmaalayaasha leh heer dhexe oo af Soomaali ah
|[[:Category:User so-1]]: Isticmaalayaasha leh heer aasaasi ah oo af Soomaali ah
}}
{{yytop}}
{{yy|User so-5}}
{{yy|User so}}
{{yy|User so-4}}
{{yy|User so-3}}
{{yy|User so-2}}
{{yy|User so-1}}
{{yyend}}
{{CatAutoTOC}}
[[Category:Wikipedians luuqad ahaan|so]]
t9mcfij2swcj2co44sdlhu8mmc7ok0l
309292
309291
2026-09-23T21:26:40Z
Isma4l
41797
/* */
309292
wikitext
text/x-wiki
Qaybtani waxay liis gareysaa isticmaalayaasha awoodda u leh inay ku hadlaan [[Af Soomaali|Soomaali]], iyadoo sidoo kale lagu saleyn karo heerka aqoontooda hadba inta ay le'eg tahay.
Waa inaad naftaada ku dartaa qaybtan, ama aad gelisaa sanduuqa isticmaalaha ee hoose boggaaga isticmaalaha taas oo si toos ah kuu dari doonta.
{|
{{yy|Template:User so|category=User so}}
|}
Si aad u caddeyso heerkaaga, waxaad naftaada ku dari kartaa mid ka mid ah hoos-qaybaha, ama aad gelisaa mid ka mid ah sanduuqyada isticmaalaha ee hoose boggaaga isticmaalaha taas oo si toos ah kuu gelin doonta hoos-qaybta ku habboon.
{{unbulleted list
|[[:Category:User so-5]]: Isticmaalayaasha leh heer xirfadeed oo Soomaali ah
|[[:Category:User so]]: Dadka ku dhashay ee ku hadla af Soomaaliga
|[[:Category:User so-4]]: Isticmaalayaasha leh heer Soomaali ah oo la mid ah dadka ku dhashay ee ku hadla
|[[:Category:User so-3]]: Isticmaalayaasha leh heer horumaray oo xiriirin kara af Soomaaliga
|[[:Category:User so-2]]: Isticmaalayaasha leh heer dhexe oo af Soomaali ah
|[[:Category:User so-1]]: Isticmaalayaasha leh heer aasaasi ah oo af Soomaali ah
}}
{{yytop}}
{{yy|User so-5}}
{{yy|User so}}
{{yy|User so-4}}
{{yy|User so-3}}
{{yy|User so-2}}
{{yy|User so-1}}
{{yyend}}
{{CatAutoTOC}}
[[Category:Luqadaha wikipediyaasha|so]]
llg5hnthnil4itq73hscu3kc80cztnl
Template:Transclusionless
10
10611
309277
114781
2026-09-23T20:52:13Z
Isma4l
41797
/* */
309277
wikitext
text/x-wiki
{{Mbox|image=[[File:Symbol template with no transclusions.svg|40px]]|text=Tusmadani {{Yesno|{{{should|}}}|yes=waa inay|no=waxay noqon kartaa}} lahayn [[Wikipedia:Transclusion|wax ku darid ah]]. Tani waxay sabab u tahay {{{reason|in lagu beddelo qalab ama qoraal, loo isticmaalo qayb ka mid ah habraac Wikipedia oo muddo gaaban ah ama aan firfircooneyn, ama sabab kale awgeed}}}.}}<!--
--><includeonly>__EXPECTUNUSEDTEMPLATE__{{#switch: {{SUBPAGENAME}} | testcases |doc |sandbox= |{{Category handler
| module = [[Category:Wikipedia transclusionless modules]]
| other = [[Category:Wikipedia transclusionless templates]]
| nocat = {{{nocat|}}}
}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
mr7efdxcp82d518uowz4wft32rbteai
309279
309277
2026-09-23T20:57:50Z
Isma4l
41797
/* */
309279
wikitext
text/x-wiki
{{Mbox|image=[[File:Symbol template with no transclusions.svg|40px]]|text=Tusmadani {{Yesno|{{{should|}}}|yes=waa inay|no=waxay noqon kartaa}} mid aan lahayn [[Wikipedia:Transclusion|wax ku darid ah]]. Tani waxay sabab u tahay {{{reason|in lagu beddelo qalab ama qoraal, loo isticmaalo qayb ka mid ah habraac Wikipedia oo muddo gaaban ah ama aan firfircooneyn, ama sabab kale awgeed}}}.}}<!--
--><includeonly>__EXPECTUNUSEDTEMPLATE__{{#switch: {{SUBPAGENAME}} | testcases |doc |sandbox= |{{Category handler
| module = [[Category:Wikipedia transclusionless modules]]
| other = [[Category:Wikipedia transclusionless templates]]
| nocat = {{{nocat|}}}
}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
9zjdja9w8mkv0ggnrb8sge5ug10p109
Xamag
0
12420
309244
188191
2026-09-23T15:25:24Z
~2026-51450-27
47524
Xamagta geedaha ka baxda oo la cuno ama si kale loo isticmaalo
309244
wikitext
text/x-wiki
[[File:AdhesivesForHouseUse004.jpg|400px|thumb|Xamagtu waa [[dareere]] isjiidanaya oo meesha la mariyo iskula dhejisa wixii taabta.]]
xamag kale ayaa jirta taasi oo laga soo guro ama ka baxda geedaha guntooda oo siyaabo Kala dawan loo isticmaali
'''Xamag'''
Xamag ([[Ingiriis]]: Glue) waa [[dareere]] isjiidanaya oo meesha la mariyo iskula dhejisa wixii taabta. Xamagtu waxay awood u leedahay in [[labo]] shey isku-qabato isla markaana isku xajiso in mudo ah.
Xamagtu waxay ka sameeysan tahay [[isku dhis]] kimikooyin ah, waxaana la ikhtiraacan horaantii 1900.
{{Gumud}}
[[Category:Aqoon]]
[[Category:Qoraal]]
4nf5mbyh5wvwrs7w1sjpr6isupm3ze9
309245
309244
2026-09-23T15:30:57Z
Isma4l
41797
Wuxuu dib u noqay badalkii uu sameeyay [[Special:Contributions/~2026-51450-27|~2026-51450-27]] ([[User talk:~2026-51450-27|wadahadal]]) kuna celiyay badalkii ka danbeeyay oo sameeyay [[User:Mystic212|Mystic212]]
188191
wikitext
text/x-wiki
[[File:AdhesivesForHouseUse004.jpg|400px|thumb|Xamagtu waa [[dareere]] isjiidanaya oo meesha la mariyo iskula dhejisa wixii taabta.]]
'''Xamag'''
Xamag ([[Ingiriis]]: Glue) waa [[dareere]] isjiidanaya oo meesha la mariyo iskula dhejisa wixii taabta. Xamagtu waxay awood u leedahay in [[labo]] shey isku-qabato isla markaana isku xajiso in mudo ah.
Xamagtu waxay ka sameeysan tahay [[isku dhis]] kimikooyin ah, waxaana la ikhtiraacan horaantii 1900.
{{Gumud}}
[[Category:Aqoon]]
[[Category:Qoraal]]
cy92evz9mu6i23lmobys9sy2e3k4ypj
309246
309245
2026-09-23T15:38:32Z
Isma4l
41797
309246
wikitext
text/x-wiki
[[File:AdhesivesForHouseUse004.jpg|thumb|right|Nitrocellulose adhesive waxaa laga soo saaray tuubo]]
'''Xabag''', oo sidoo kale loo yaqaanno '''koolo''', '''sement''', ama '''pastow''',<ref>{{cite encyclopedia|last=Pike|first=Roscoe|title=adhesive|url=https://www.britannica.com/EBchecked/topic/5823/adhesive|encyclopedia=Encyclopædia Britannica Online|publisher=Encyclopædia Britannica Inc.|access-date=9 April 2013}}</ref> waa shay kasta oo aan bir ahayn oo la dusha saaro mid ama labada dusha ee laba shay oo kala gooni ah taas oo isku xidha isla markaana ka celisa inay kala tagaan.<ref>{{cite book|last=Kinloch|first=A.J.|title=Adhesion and Adhesives: Science and Technology|year=1987|publisher=Chapman and Hall|location=London|isbn=0-412-27440-X |page=1|edition=Reprinted.}}</ref>
Isticmaalka xabagaha wuxuu leeyahay faa'iidooyin gaar ah marka la barbardhigo farsamooyinka kale ee isku xidhka sida tolidda, xajiyeyaasha farsamada, iyo alxanka. Kuwan waxaa ka mid ah awoodda lagu xidho agabka kala duwan, qaybinta culeyska oo waxtar badan leh oo ka dhexaysa wadajirka, kharash-ku-oolnimada habka mashiinka fudud, iyo dabacsanaan weyn oo naqshadaynta ah. Khasaarooyinka isticmaalka xabagta waxaa ka mid ah xasiloonida oo hoos u dhacda heerkulka sarreeya, daciifnimo qaraabo ah oo ku jirta xidhitaanka walxaha waaweyn ee leh aagga dusha sare ee yar, iyo dhib weyn oo ah kala soocidda walxaha inta lagu jiro tijaabinta.{{sfn|Kinloch|1987|page=2}} Xabagaha waxaa badanaa lagu habeeyaa habka dhejiska iyadoo ay ku xigto ''falcelin'' ama ''aan falcelin lahayn'', erey tilmaamaya in xabagta ay fal-gelayso kiimiko ahaan si ay u adkaato. Sidoo kale, waxaa lagu habeyn karaa iyadoo la raacayo marxaladdooda jireed ee bilowga ah ama in kaydkooda ceyriin uu ka yimid asal dabiici ah ama macmal ah.
Xabagaha waxaa laga heli karaa si dabiici ah ama waxaa lagu soo saari karaa si macmal ah. Isticmaalka ugu horreeya ee bini'aadamka ee walxaha xabagta oo kale ah wuxuu ahaa qiyaastii 200,000 sano ka hor,<ref name="Mazza">{{cite journal |doi=10.1016/j.jas.2006.01.006 |title=A new Palaeolithic discovery: tar-hafted stone tools in a European Mid-Pleistocene bone-bearing bed |date=January 2006|author=Mazza, P |journal=Journal of Archaeological Science |volume=33 |page=1310 |last2=Martini |first2=F |last3=Sala |first3=B |last4=Magi |first4=M |last5=Colombini |first5=M |last6=Giachi |first6=G |last7=Landucci |first7=F |last8=Lemorini |first8=C |last9=Modugno |first9=F |last10=Ribechini |first10=E| issue=9|bibcode=2006JArSc..33.1310M }}</ref> markii Neanderthals ay soo saareen daamur ka soo baxay foornada qallalan ee qolofka björken si loogu isticmaalo in lagu xiro qalabka dhagaxa ah gacan-qabashada alwaax.<ref>{{Cite journal|last1=Kozowyk|first1=P. R. B.|last2=Soressi|first2=M.|last3=Pomstra|first3=D.|last4=Langejans|first4=G. H. J.|date=2017-08-31|title=Experimental methods for the Palaeolithic dry distillation of birch bark: implications for the origin and development of Neandertal adhesive technology|journal=Scientific Reports|language=En|volume=7|issue=1|page=8033|doi=10.1038/s41598-017-08106-7|doi-access=free|pmid=28860591|issn=2045-2322|bibcode=2017NatSR...7.8033K|pmc=5579016}}</ref> Tixraacyadii ugu horreeyay ee xabagta ee suugaanta ayaa ka muuqday qiyaastii 2000 BC. Giriigga iyo Roomaanku waxay qayb libaax leh ka qaateen horumarinta xabagaha. Yurub dhexdeeda, koolada si weyn looma isticmaali jirin ilaa xilligii AD 1500–1700.<ref>{{Cite book |last1=Stamm |first1=A.J. |title=Principles of Wood Science and Technology |last2=Kuenzi |first2=E.W. |last3=Kollmann |first3=Franz F.P. |publisher=Springer Berlin Heidelberg |year=2012 |isbn=978-3-642-87931-9 |page=1}}</ref> Laga soo bilaabo waqtigaas ilaa 1900-meeyadii kororka isticmaalka xabagta iyo helitaankeedu wuxuu ahaa mid tartiib tartiib ah. Kaliya tan iyo qarnigii 20-aad ayuu horumarinta xabagaha macmalka ah si degdeg ah u dedejiyay, hal-abuurnimaduna waxay ka socotaa goobta ilaa maanta.
== Taariikhda ==
[[File:Animal glue liquid.jpg|thumbnail|left|Koolada xoolaha ee dareeraha ah]]
Caddayntii ugu horreysay ee isticmaalka xabagta bini'aadamka waxaa laga helay bartamaha Talyaaniga markii saddex qalab oo dhagax ah laga helay calaamado daamur qolof björken ah. Qalabkan waxaa loo asteeyay inay ahaayeen ilaa 200,000 oo sano ka hor intii aan la gaarin Paleolithic-ga Dhexe. Waa tusaalihii ugu horreeyay ee qalabka dhagaxa ee daamurku xidhay.<ref name="Mazza" />
Daraasad ku saabsan qadiimiga tijaabada ah oo la daabacay 2019 ayaa muujisay sida daamurka qolofka björken loo soo saari karo hab sahlan oo la heli karo. Waxay ku lug leedahay in si toos ah loo gubo qolofka björken ee hoos yimaada dusha sare ee dhagaxa ee jawi furan oo la ururiyo daamurka ka dhasha dhagaxa.<ref>{{Cite journal|last1=Schmidt|first1= P.|last2=Blessing|first2= M.|last3= Rageot|first3= M.|last4= Iovita|first4= R.|last5= Pfleging|first5= J.|last6= Nickel|first6= K. G.|last7= Righetti|first7= L. |last8=Tennie|first8= C.|title=Birch tar extraction does not prove Neanderthal behavioral complexity|journal=PNAS|doi=10.1073/pnas.1911137116|pmid=31427508|volume=116|pmc=6731756|year=2019|issue=36|pages=17707–17711|bibcode=2019PNAS..11617707S |doi-access=free}}</ref>
In kasta oo ay dhagayaan, xabagaha dhirta ku salaysan ee qaybta keliya ah waxay noqon karaan kuwo jaban oo u nugul xaaladaha deegaanka. Isticmaalkii ugu horreeyay ee xabagaha isku-dhafan waxaa laga helay Sibudu, Koonfur Afrika. Halkaan, qaybo dhagax ah oo 70,000 sano jir ah oo horay loogu geliyay gacan-qabashada faaska ayaa la helay iyagoo ay ku daboolan tahay xabag ka kooban xabagta dhirta iyo ocher cas (cilmiga birta dabiiciga ah) maadaama ku darida ocher xabagta dhirta ay soo saarto badeeco xoog leh oo ka ilaalinaysa xabagta inay burburto xaaladaha qoyan.<ref name="Wadley">{{cite journal |pmid=19433786 |date=Jun 2009|author1=Wadley, L |author2=Hodgskiss, T |author3=Grant, M |title=Implications for complex cognition from the hafting of tools with compound adhesives in the Middle Stone Age, South Africa |volume=106 |issue=24 |pages=9590–4 |issn=0027-8424 |doi=10.1073/pnas.0900957106 |journal=Proceedings of the National Academy of Sciences of the United States of America |pmc=2700998|bibcode = 2009PNAS..106.9590W |doi-access=free}}</ref> Awoodda ay u leeyihiin inay soo saaraan xabag xoog leh ayaa u oggolaatay dadkii Stone Age ee dhexe inay ku xiraan qaybaha dhagaxa ulaha oo leh kala duwanaansho badan, taas oo horseeday horumarinta qalab cusub.<ref>{{cite journal|last=Wadley|first=Lyn|title=Compound-Adhesive Manufacture as a Behavioral Proxy for Complex Cognition in the Middle Stone Age|journal=Current Anthropology|date=1 June 2010|volume=51|issue=s1|pages=S111–S119|doi=10.1086/649836|s2cid=56253913}}</ref> Daraasad lagu sameeyay agabka ka yimid Le Moustier ayaa tilmaamaysa in dadkii Paleolithic-ga Dhexe, oo laga yaabo inay ahaayeen Neanderthals, ay isticmaaleen koolo ka samaysan isku-dar ah ocher iyo bitumen si ay u sameeyaan gacmo-qabasho si loo gooyo oo loo xoqo qalabka dhagaxa.<ref>{{cite journal|first1=Patrick|last1= Schmidt|first2= Radu|last2= Iovita|first3= Armelle|last3= Charrié-Duhaut|first4= Gunther|last4= Möller|first5= Abay|last5= Namen|first6= Ewa|last6= Dutkiewicz|date=21 February 2024|url=https://www.researchgate.net/publication/378369816|title=Ochre-based compound adhesives at the Mousterian type-site document complex cognition and high investment|journal=Science Advances|volume=10|issue=8|article-number=eadl0822 |doi=10.1126/sciadv.adl0822|pmid=38381827 |pmc=10881035|bibcode=2024SciA...10L.822S }}</ref>
Tusaalooyin dhowaan la helay oo ah isticmaalka xabagta ee bini'aadamka taariikhda ka horreeya waxaa laga helay goobaha lagu aaso qabaa'ilkii hore. Qadiimiyayaasha baranayay goobaha ayaa ogaaday in qiyaastii 6,000 sano ka hor dadkii qabiilka ahaa ay meydkooda ku aaseen cunto laga helay dhalooyin dhoobo ah oo jabay oo lagu hagaajiyay resins-ka geedaha.{{sfn|Ebnesajjad|2010|p=137}} Baaritaan kale oo ay sameeyeen aqoonyahannada qadiimiga ayaa lagu ogaaday isticmaalka sementiga bituminous si loogu xiro indhaha fool-maroodiga taallooyinka macbisyada Babyloniyaanka ah ee soo jeeda qiyaastii 4000 BC.{{sfn|Mittal|Pizzi|2003|p=1}}
[[File:ReconstructedOetziAxe.jpg|thumb|upright|Dib-u-dhiska faaska Ötzi, kaas oo isticmaalay garaw sida xabag ah]]
Sannadkii 2000, warqad ayaa daaha ka qaaday helitaanka nin 5,200 sano jir ah oo loogu magac daray Tyrolean Iceman ama Ötzi, kaas oo lagu ilaaliyay baraf hoose oo ku dhow xadka Austria iyo Talyaaniga. Qaar ka mid ah alaabtiisii ayaa la helay isaga oo ay ku jiraan laba fallaarood oo wata madaxda fallaadhaha flint iyo hal geesiga naxaasta ah, mid walbana wuxuu caddayn u ahaa xabagta dabiiciga ah ee loo isticmaalo in lagu xiro qaybaha dhagaxa ama birta ulaha alwaaxa. Xabagta waxaa loo falanqeeyay inay tahay pitch, taas oo u baahan kululaynta daamurka inta ay soo saarayso. Soo-celinta daamurkan waxay u baahan tahay beddelka qolofka björken iyada oo la adeegsanayo kulayl, oo ah hab loo yaqaanno pyrolysis.<ref>Sauter F, Jordis U, Graf A, Werther W, Varmuza K. (2000). [http://www.arkat-usa.org/get-file.php?fileid=19868 Studies in organic archaeology I: identification of the prehistoric adhesive used by the "Tyrolean Iceman" to fix his weapons] ARKIVOC, 1:[5] 735–747</ref>
Tixraacyadii ugu horreeyay ee xabagta ee suugaanta ayaa ka muuqday qiyaastii 2000 BC. Diiwaanno taariikheed oo dheeraad ah oo ku saabsan isticmaalka xabagta waxaa laga helay xilliga u dhexeeya 1500–1000 BC. Agabka xilligan waxaa ka mid ah sawirro muujinaya hawlgallada alwaax-dheejinta iyo sanduuq ka samaysan alwaax iyo koolo oo ku yaal qabriga Boqor Tutankhamun.{{sfn|Ebnesajjad|2010|p=137}} Agabyada kale ee Masar ee qadiimiga ah waxay adeegsadaan xabagta xoolaha si loogu xiro ama loogu lamiyeeyo. Lamination-ka noocaas ah ee alwaaxa ee qaansooyinka iyo alaabta guriga ayaa la rumeysan yahay inay dheereeyeen noloshooda waxaana lagu fuliyay iyadoo la isticmaalayo casein (borotiinka caanaha) ku salaysan koolada. Masriyiinta qadiimiga ah waxay sidoo kale horumariyeen pastow ku salaysan istaariish si loogu xiro papyrus dharka iyo agab gypsum oo kale ah oo ka samaysan calcined gypsum.{{sfn|Mittal|Pizzi|2003|p=2}}
[[File:Molten beeswax.JPG|thumb|Maliinta shimbiraha|left]]
Laga soo bilaabo AD 1 ilaa 500 Giriigga iyo Roomaanku waxay qayb libaax leh ka qaateen horumarinta xabagaha. Veneer-ka alwaaxa iyo marquetry ayaa la horumariyay, soo-saaridda xabagta xoolaha iyo kaluunka waa la sifeeyay, waxaana la isticmaalay agabyo kale. Pastowga ku salaysan ukunta waxaa loo isticmaalay in lagu xiro caleemaha dahabka ah, waxayna ku dareen maaddooyin dabiici ah oo kala duwan sida dhiigga, lafta, maqaarka, caanaha, farmaajada, khudaarta, iyo badarka.{{sfn|Ebnesajjad|2010|p=137}} Giriiggu waxay bilaabeen isticmaalka slaked lime sida nuurad halka Roomaanku ay sii horumariyeen horumarinta nuuradda iyagoo ku daraya nuuradda dambaska foolkaanaha iyo ciidda. Agabkan, oo loo yaqaanno pozzolanic cement, waxaa loo isticmaalay dhismaha Roman Colosseum iyo Pantheon.{{sfn|Mittal|Pizzi|2003|p=2}} Roomaanku waxay sidoo kale ahaayeen dadkii ugu horreeyay ee la ogyahay inay isticmaaleen daamurka iyo malabka shimbiraha sida caulk iyo shaabeeye u dhexeeya looxyada alwaaxa ee doonyahooda iyo maraakiibtooda.{{sfn|Ebnesajjad|2010|p=137}}
Aasiya Dhexe, kor u kaca Mongols qiyaastii AD 1000 waxaa qayb ahaan loo aanayn karaa kala duwanaanshaha wanaagsan iyo awoodda qaansooyinka Genghis Khan. Qaansooyinkan waxaa laga sameeyay xudunta bambooka, oo wata geeso caloosha ah (u jeeda xagga qaanso-sidaha) iyo muruqyo dhabarka ah, oo isku xidhan oo wata xabagta xoolaha.<ref>{{cite book |last1=Ashton |first1=J. E.|last2=Halpin|first2=John C. |last3=Petit|first3=P.H.|title=Primer on Composite Materials: Analysis |date=1969 |publisher=Technomic Publishing|oclc=27238 |location=Westport, Connecticut |isbn=0-87762-754-1}}</ref>
[[File:Casein glue preparation.jpg|framed|right|Diyaarinta xabagta Casein]]
Yurub dhexdeeda, kooladu waxay gashay dayacaad ilaa xilligii AD 1500–1700.<ref>{{Cite book |last1=Stamm |first1=A.J. |title=Principles of Wood Science and Technology |last2=Kuenzi |first2=E.W. |last3=Kollmann |first3=Franz F.P. |publisher=Springer Berlin Heidelberg |year=2012 |isbn=978-3-642-87931-9 |page=1}}</ref> Waqtigan xaadirka ah, kuwa sameeya golaha wasiirada iyo alaabta guriga ee caanka ka ah adduunka sida Thomas Chippendale iyo Duncan Phyfe waxay bilaabeen inay isticmaalaan xabagta si ay alaabtooda isugu hayaan.{{sfn|Ebnesajjad|2010|p=137}} Sannadkii 1690, warshaddii ugu horreysay ee koolada ganacsiga ayaa la aasaasay Netherlands. Warshaddani waxay soo saartay koolo laga helay maqaarka xoolaha.{{sfn|Mittal|Pizzi|2003|p=3}} Sannadkii 1750, shatigii ugu horreeyay ee koolada Ingiriiska ayaa la bixiyay ee loogu talagalay xabagta kalluunka. Tobanaankii xigay ee qarnigii xigay waxay arkeen soo-saaridda xabagta casein ee Jarmalka iyo Switzerland.{{sfn|Ebnesajjad|2010|p=137}} Sannadkii 1876, shatigii ugu horreeyay ee Mareykanka (lambar 183,024) ayaa la siiyay walaalaha Ross ee soo-saaridda xabagta casein.{{sfn|Ebnesajjad|2010|p=137}}<ref>{{cite web|last=Ross|first=John|title=Improvement in Processes of Preparing Glue|url=http://patimg1.uspto.gov/.piw?Docid=00183024&homeurl=http%3A%2F%2Fpatft.uspto.gov%2Fnetacgi%2Fnph-Parser%3FSect2%3DPTO1%2526Sect2%3DHITOFF%2526p%3D1%2526u%3D%2Fnetahtml%2FPTO%2Fsearch-bool.html%2526r%3D1%2526f%3DG%2526l%3D50%2526d%3DPALL%2526S1%3D0183024.PN.%2526OS%3DPN%2F183024%2526RS%3DPN%2F183024&PageNum=&Rtype=&SectionNum=&idkey=NONE&Input=View+first+page|publisher=United States Patent and Trademark Office|access-date=14 April 2013|author2=Charles Ross|date=10 October 1876}}</ref>
Boostada ugu horreysay ee Mareykanka waxay isticmaashay xabagta ku salaysan istaariishka markii la soo saaray 1847. Shatigii ugu horreeyay ee Mareykanka (lambar 61,991) ee dextrin (oo ah badeecada istaariishka) xabagta ayaa la bixiyay 1867.{{sfn|Ebnesajjad|2010|p=137}}
Caagadda dabiiciga ah waxaa markii ugu horreysay loo isticmaalay agab xabagta ah 1830,<ref>{{cite web|title=Bonding- An Ancient Art|url=http://www.adhesives.org/adhesives-sealants/fastening-bonding/history-of-bonding/bonding-an-ancient-art|work=Adhesives.org|publisher=Adhesives and Sealants Council|access-date=14 April 2013}}</ref> taas oo calaamadisay barta billowga ah ee xabagta casriga ah.<ref>{{Cite book|last=Wypych|first=George|title=Handbook of Adhesion Promoters|publisher=Elsevier|year=2018|isbn=978-1-927885-30-7|page=2}}</ref> Sannadkii 1862, shatiga Ingiriiska (lambar 3288) ayaa la siiyay dahaarka birta leh naxaas iyadoo la adeegsanayo electrodeposition si loo helo xidhid adag oo loogu talagalay caagadda.{{sfn|Mittal|Pizzi|2003|p=3}} Horumarinta baabuurka iyo baahida loo qabo kuraasta shoogga caagadda waxay u baahdeen xidhitaanno adag oo waara oo caag iyo bir ah. Tani waxay kicisay horumarinta caagadda wareegsan ee lagu daweeyay aashitada adag. Sannadkii 1927, habkan waxaa loo isticmaalay in lagu soo saaro xabagta caagadda ah ee thermoplastic ee ku salaysan dareeraha birta ilaa xidhitaanka caagadda.{{sfn|Mittal|Pizzi|2003|p=4}}
Xabagta dhagaxa ah ee ku salaysan caagadda dabiiciga ah waxaa markii ugu horreysay lagu isticmaalay dhabarka waxaa sameeyay Henry Day (US Patent 3,965) 1845.{{sfn|Mittal|Pizzi|2003|p=4}} Markii dambe noocyada xabagtaan waxaa lagu isticmaalay qalliinka maro gadaal ah iyo cajaladaha korontada. Sannadkii 1925, warshadaha cajaladaha cadaadiska xasaasiga ah ayaa dhashay.{{sfn|Kinloch|1987|page=2}}
Maanta, xusuus-qoryaha dhejiska ah, cajaladda Scotch, iyo cajaladaha kale ayaa tusaale u ah xabagta cadaadiska xasaasiga ah (PSA).<ref>{{Cite book|chapter-url=https://books.google.com/books?id=QZcbSr8MW98C&pg=PA499|title=Adhesion Science and Engineering: Surfaces, Chemistry and Applications|chapter=Chapter 13: Effect of rheology on PSA performance|author1=David J. Yarusso |editor1=A.V. Pocius |editor2=David A. Dillard|date=2002|publisher=Elsevier|isbn=978-0-08-052598-3|language=en}}</ref>
Tallaabo muhiim ah oo ku jirta horumarinta caagagga macmalka ah waxay ahayd soo-bandhigidda caag thermoset ah oo loo yaqaanno Bakelite phenolic 1910.{{sfn|Ebnesajjad|2010|p=138}} L laba sano gudahood, resin phenolic waxaa lagu dabaqay plywood sida varnish dahaarka ah. Horraantii 1930-meeyadii, phenolics waxay muhiimad ka heleen sida resins xabagta.{{sfn|Mittal|Pizzi|2003}}
1920-meeyadii, 1930-meeyadii, iyo 1940-meeyadii waxay arkeen horumarro waaweyn oo ku saabsan horumarinta iyo soo-saaridda caagagga cusub iyo resins sababtoo ah Dagaalkii Koowaad iyo Labaad ee Adduunka. Horumarintani waxay si weyn u wanaajisay horumarinta xabagta iyadoo u oggolaanaysa isticmaalka agabyada cusub ee la soo saaray oo soo bandhigay sifooyin kala duwan. Iyada oo la beddelayo baahiyaha iyo tignoolajiyada weligood is beddesha, horumarinta xabagta cusub ee macmalka ah waxay sii socotaa ilaa maanta.{{sfn|Ebnesajjad|2010|p=138}} Si kastaba ha ahaatee, sababtoo ah kharashkooda hooseeya, xabagta dabiiciga ah ayaa weli ah kuwa inta badan la isticmaalo.{{sfn|Mittal|Pizzi|2003|p=10}}
== Noocyada ==
{{See also|List of glues}}
Xabagaha waxaa badanaa lagu habeeyaa habka dhejiska. Kuwan waxaa markaa loo habeeyaa xabagta falcelinta iyo aan falcelinta lahayn, taas oo tilmaamaysa in xabagta ay fal-gelayso kiimiko ahaan si ay u adkaato. Sidoo kale waxaa loo habayn karaa iyadoo la eegayo in kaydka cayriin uu ka yimid asal dabiici ah ama macmal ah, ama marxaladdooda jireed ee billowga ah.<ref>{{Cite web|url=https://roofonline.com/mil-hdbk-691b-department-of-defense-military-standardization-handbook-adhesive-bonding|title=MIL-HDBK-691B – Department of Defense – Military Standardization Handbook – Adhesive Bonding|page=47|website=Roof Online|access-date=2020-05-08}}</ref>
=== Falcelinta =
==== Aan falcelin lahayn ====
===== Qallajinta =====
Waxaa jira laba nooc oo xabag ah oo ku adkaada qalajinta: xabagta ku salaysan dareeraha iyo xabagta kala-baxa polymer, oo sidoo kale loo yaqaanno xabagta emulsion. Xabagta ku salaysan dareeraha waa isku-dar ah maaddooyinka (badanaa polymers) oo lagu milay dareeraha. Koolada cad ee Polyvinyl acetate, xabagta xiriirka iyo xabagta caagadda ah ayaa xubin ka ah qoyska xabagta qallajinta. Marka dareeraha uumiga baxo, xabagta ayaa adkaata. Iyadoo ku xiran halabuurka kiimikada ee xabagta, waxay ku dhegi doonaan agabyo kala duwan si ka yar ama ka badan.
Xabagta kala-baxa polymer waa kala-bax caano-cad oo inta badan ku saleysan polyvinyl acetate (PVAc). Waxaa si weyn loogu isticmaalaa warshadaha alwaaxa iyo baakadaha. Wax waxaa sidoo kale loogu isticmaalaa dharka iyo agabka dharka ku salaysan, iyo alaabta injineernimada ah sida koonisyada cod-baahiyaha.
===== Cadaadiska xasaasiga ah =====
{{Main|Pressure-sensitive adhesive}}
Xabagta cadaadiska xasaasiga ah (PSA) waxay samaysaa xidhitaan iyadoo la adeegsanayo cadaadis fudud si loo xiro xabagta iyo dhejiska. Waxaa loo qaabeeyey inay yeeshaan dheelitirka u dhexeeya socodka iyo is caabbinta socodka. Xidhitaanku wuxuu sameeyaa sababtoo ah xabagtu waa mid jilicsan oo ku filan inay qulqulaato (sida, qoyan) dhejiska. Xidhitaanku wuxuu leeyahay xoog sababtoo ah xabagtu waa mid adag oo ku filan inay u adkaysato socodka marka cadaadiska la saaro xidhitaanka. Marka xabagta iyo dhejiska ay ku dhow yihiin dhow, fal-dhexgalka molecular, sida xoogagga van der Waals, ayaa ku lug leh xidhitaanka, taas oo gacan weyn ka geisanaysa xooggeeda ugu dambeeya.
PSAs waxaa loogu talagalay codsiyada joogtada ah ama la saari karo. Tusaalooyinka codsiyada joogtada ah waxaa ka mid ah sumadaha badbaadada ee qalabka korontada, cajaladda foornada ee shaqada dhuumaha HVAC, golaha qurxinta gudaha baabuurka, iyo filimada qoyan ee dhawaqa/gariirka. Qaar ka mid ah PSAs joogtada ah ee waxqabadka sarreeya waxay muujinayaan qiyamka dhejiska sare waxayna taageeri karaan kiiloogaraam oo miisaan ah mitir laba jibaaran ee aagga xiriirka, xitaa heerkulka sarreeya. PSAs joogtada ah waxaa laga yaabaa inaysan weligood la saari karin (tusaale ahaan si loo soo ceshado alaabta khaldan) oo ay dhistaan xabag xidhitaan joogto ah saacado ama maalmo kadib.
Xabagta la saari karo waxaa loo qaabeeyey inay sameeyaan xidhitaan ku-meel-gaar ah, oo sida ugu habboon looga saari karo bilo ama sano iyada oo aan laga tegin haraaga dhejiska. Xabagta la saari karo waxaa loo isticmaalaa codsiyada sida filimada ilaalinta dusha sare, cajaladaha maaskarada, calaamadaha buug-yaraha iyo warqadaha xusuusin, calaamadaha koodhka bar-bar, calaamadaha calaamadaynta qiimaha, agabka xayeysiinta, iyo xiriirka maqaarka (daryeelka boogaha, elektaroodyada EKG, cajaladda ciyaaraha, dawooyinka xanuunka iyo daroogooyinka trans-dermal, iwm.). Qaar ka mid ah xabagta la saari karo waxaa loo qaabeeyey inay ku dhegaan oo kala tagaan si isdaba joog ah.<ref>{{cite web|last1=Barcode|first1=Barry|title=Rubber Acrylic Adhesive Labels|url=http://www.midcomdata.com/rubber-acrylic-adhesive-labels/|website=Midcomdata|date=23 July 2014}}</ref> Waxay leeyihiin xabag hoose, guud ahaanna ma taageeri karaan miisaan badan. Cadaadiska xasaasiga ah ee xabagta waxaa lagu isticmaalaa xusuusinaha Post-it.
Xabagta cadaadiska xasaasiga ah waxaa lagu soo saaraa qaade dareere ah ama qaab adag oo 100%. Maqaallada waxaa laga sameeyaa PSA dareere ah iyadoo la marinayo xabagta oo la qalajinayo dareeraha ama qaade biyaha. Waxaa laga yaabaa in si dheeraad ah loo kululeeyo si loo bilaabo falcelinta isku xidhka oo la kordhiyo miisaanka molecular. 100% PSA adag waxay noqon karaan polymers viscosity hoose oo la dahaaray oo markaas lagula falgelay shucaaca si loo kordhiyo miisaanka molecular oo loo sameeyo xabagta, ama waxay noqon karaan agab viscosity sarreeya oo la kululeeyo si loo yareeyo viscosity ku filan si loo oggolaado dahaarka, ka dibna qaboojiyo foomkooda ugu dambeeya. Maaddada ceyriin ee ugu weyn ee PSA waa polymers acrylate ku salaysan.
===== Xiriirka =====
{{See also|Contact adhesives}}
Xabagta xiriirka waxay samaysaa xidhitaan adkaysi u leh xiiridda oo wata waqti adkaansho degdeg ah. Badanaa waxaa lagu dabaqaa lakabyo dhuuban oo loogu isticmaalo laminate-yada, sida ku xiridda Formica dusha sare, iyo kabaha, sida ku xiridda lugaha hoose ee sare. Caagadda dabiiciga ah iyo polychloroprene (Neoprene) waa xabagta xiriirka ee caadiga ah. Labadan elastomers waxay maraan crystalization xiisad.
Xabagta xiriirka waa in lagu dabaqaa labada dusha sare oo la siiyaa xoogaa waqti ah si ay u qallalaan ka hor inta aan labada dusha la isku riixin. Qaar ka mid ah xabagta xiriirka waxay qaadataa ilaa 24 saacadood inay si buuxda u qallajiso ka hor inta aan dusha la isku haynin. Marka dusha la isku riixo, xidhitaanka wuxuu sameeyaa si aad u degdeg ah.<ref>{{cite web| url = http://composite.about.com/library/glossary/c/bldef-c1257.htm| title = Definition of ''contact adhesive'' on About.com| access-date = 25 September 2006}}</ref> Isku xiridda looma baahna sababtoo ah samaynta xidhitaanka degdegga ah.<ref>{{Cite book |last=Magazine |first=Wood |url=https://books.google.com/books?id=Ltsv0oq_C6EC&pg=PA9#v=onepage&q&f=false |title=Wood Magazine - Making Great Boxes |date=2006 |publisher=Sterling Publishing Company, Inc. |isbn=978-1-4027-0763-6 |language=en}}</ref>
===== Kulul =====
[[File:Stanley-Hot-Glue-Gun-GR35K.jpg|right|thumbnail|Qoriga koolada, oo ah tusaale ka mid ah xabagta kulul]]
{{Main|Hot-melt adhesive}}
Xabagta kulul, oo sidoo kale loo yaqaanno xabagta dhalaasha kulul, waa thermoplastics lagu dabaqo qaab dhalaalay (inta u dhaxaysa 65–180 °C) kuwaas oo adkaada marka la qaboojiyo si ay u sameeyaan xidhitaan adag oo u dhexeeya agabyo kala duwan. Xabagta dhalaasha kulul ee ku salaysan Ethylene-vinyl acetate ayaa si gaar ah caan ugu ah farsamada gacanta sababtoo ah sahlanaanta isticmaalkooda iyo agabka caadiga ah ee kala duwan ee ay ku biiri karaan. Qoriga koolada (oo midigta ka muuqda) waa hal hab oo lagu dabaqo xabagta kulul. Qoriga koolada wuxuu dhaliyaa xabagta adag, ka dibna u oggolaanaysa dareeraha inuu dhex maro foornadiisa ilaa agabka, halkaas oo uu ku adkaado.
Xabagta thermoplastic waxaa laga yaabaa inay soo saartay qiyaastii 1940 Procter & Gamble oo xal u ah dhibaatada ah in xabagta biyaha ku salaysan, ee caadi ahaan loogu isticmaalo baakadaha waqtigaas, ay ku guuldarraysteen cimilada qoyan, taas oo keentay inay baakadaha furmaan. Si kastaba ha ahaatee, xabagta biyaha ku salaysan ayaa weli ah kuwo aad u xiiso badan maadaama aysan inta badan ka koobnayn dareeraha uumiga.<ref>{{Cite journal |last1=Bhakare |first1=Madhuri A. |last2=Lokhande |first2=Kshama D. |last3=Bondarde |first3=Mahesh P. |last4=Dhumal |first4=Pratik S. |last5=Some |first5=Surajit |date=2023-02-15 |title=Dual functions of bioinspired, water-based, reusable composite as a highly efficient flame retardant and strong adhesive |url=https://www.sciencedirect.com/science/article/pii/S1385894722059010 |journal=Chemical Engineering Journal |volume=454 |article-number=140421 |doi=10.1016/j.cej.2022.140421 |issn=1385-8947}}</ref>
=== Falcelinta ===
==== Anaerobic ====
Xabagta anaerobic waxay adkaataa marka ay la xiriirto birta, iyada oo aan lahayn ogsajiin.<ref>{{cite web |title=About anaerobic adhesives |publisher=ThreeBond Holdings Co. |url=https://www.threebond.co.jp/en/technical/seminar/adhesion2.html |access-date=15 September 2018}}</ref> Si fiican ayay uga shaqeeyaan meel bannaan oo isku xiran, sida marka loo isticmaalo dareeraha xiritaanka dunta.
==== Qaybo badan leh ====
Xabagta qaybo badan leh waxay adkaadaan iyadoo la isku darayo laba qaybood ama ka badan oo fal-gelaya kiimiko ahaan. Falcelintani waxay keentaa in polymers-ku isku xirmaan acrylates, urethanes, iyo epoxies.
Waxaa jira dhowr kombinasyon oo ganacsi oo ah xabagta qaybo badan leh oo laga isticmaalo warshadaha. Qaar ka mid ah isku-darkaan waa:
* Polyester resin & polyurethane resin
* Polyols & polyurethane resin
* Acrylic polymers & polyurethane resins
Qaybaha shakhsi ahaaneed ee xabagta qaybo badan leh ma aha kuwo xabag ah dabiici ahaan. Qaybaha shakhsi ahaaneed waxay midba midka kale la falgalaan ka dib marka la isku daro waxayna muujiyaan xabag buuxda oo keliya marka la daweeyo. Resins-ka qaybo badan leh waxay noqon karaan kuwo dareere ku salaysan ama dareere la'aan ah. Dareerayaasha ku jira xabagta ayaa ah dhexdhexaad u ah polyester ama polyurethane resin. Dareeraha waa la qalajiyaa inta lagu jiro habka daweynta.
==== Xabagta la sii qaboojiyay ee horay loo sii daray ====
Xabagta la sii qaboojiyay ee horay loo sii daray (PMFs) waa xabag la isku daray, hawada laga saaray, la baakadeeyay, lana qaboojiyay.<ref>{{cite book|url=https://books.google.com/books?id=XiRdDgAAQBAJ|title=Polymeric Thermosetting Compounds|publisher=Apple Academic Press|author=Ralph D. Hermansen|page=31|date=16 March 2017|access-date=27 October 2017|isbn=978-1-77188-315-3}}</ref> Sida ay lagama maarmaanka u tahay in PMFs ay baraf ahaadaan intaan la isticmaalin ka hor, marka la qaboojiyo −80 °C waxaa lagu soo raraan baraf engegan waxaana looga baahan yahay in lagu keydiyo ama ka hooseeyo −40 °C.<ref>{{cite web|url=http://www.adhesivesmag.com/articles/93547-repackaging-options-for-two-component-adhesives-sealants-and-coatings|title=Repackaging Options for Two-Component Adhesives, Sealants and Coatings|publisher=Adhesives and Sealants Industry|date=5 January 2015|access-date=27 October 2017}}</ref> Xabagaha PMF waxay meesha ka saaraan qaladaadka isku-darka ee uu sameeyo isticmaalaha ugu dambeeya waxayna yareeyaan soo-gaaridda wakiillada adkeeya ee ka koobnaan kara waxyaabaha cuncunka ama sunta leh.<ref>{{cite book|title=Adhesives Technology for Electronic Applications: Materials, Processing, Reliability|publisher=Elsevier|author1=James J. Licari|author2=Dale W. Swanson|date=2011|page=121|access-date=27 October 2017|url=https://books.google.com/books?id=ZZ5kEWU5aHoC&q=Premixed+and+frozen+adhesives+history&pg=PA28|isbn=978-1-4377-7890-8}}</ref> PMFs waxaa ganacsi ahaan la soo bandhigay 1960-meeyadii waxaana badanaa lagu isticmaalaa hawada sare iyo difaaca.<ref>{{cite web|url=https://www.appli-tec.com/adhesives/history-of-frozen-adhesives/|title=History of Pre-Mixed and Frozen (PMF) Adhesives|publisher=Appli-tec|access-date=27 October 2017}}</ref>
==== Qayb-hal ====
Xabagaha qayb-hal ah waxay adkaadaan iyada oo loo marayo fal-gal kiimikaad oo ay la leeyihiin il tamar oo dibadda ah, sida shucaaca, kulaylka, iyo qoyaanka.
[[File:Steeldive SD8205-2.jpg|thumb|Saacad wadata muraayad weyneynaysa taariikhda. Muraayadda waxaa lagu dhejiyay xabag hufan oo UV rays ku adkaata dusha sare ee muraayadda saacadda.]]
Xabagaha ultraviolet (UV) ee ku adkaada iftiinka, oo sidoo kale loo yaqaanno agabka iftiinka ku adkaada (LCM), ayaa caan ka noqday qaybta wax-soo-saarka sababtoo ah waqtigooda adkaanshaha degdegga ah iyo xoogga xidhmo adag. Xabagaha iftiinka ku adkaada waxay ku adkaan karaan ilaa hal ilbiriqsi gudahood waxaana qaabab badan ay ku xidhi karaan substrates kala duwan (agab) oo ay u adkeysan karaan heerkulka daran. Tilmaamahan ayaa ka dhigaya xabagaha UV curing kuwo lagama maarmaan u ah soo-saaridda alaabta ee suuqyo badan oo warshadeed sida elektaroonigga, isgaarsiinta, caafimaadka, hawada sare, dhalada, iyo indhaha. Si ka duwan xabagaha dhaqameed, xabagaha UV ee iftiinka ku adkaada ma aha oo kaliya in ay isku xidhaan agabka laakiin sidoo-kale waxaa loo isticmaali karaa in lagu shaabadeeyo oo lagu daweeyo alaabta. Inta badan waxay ku saleysan yihiin akrilik.
Xabagaha kulaylka ku adkaada waxay ka kooban yihiin isku-dar hore loo sii sameeyay oo ah laba qaybood ama ka badan. Markა kulaylka la adeegsado qaybaha ayaa fal-gelaya oo isku xidhma. Noocyada xabagtan waxaa ka mid ah thermosetting polymer thermoset epoxies, urethanes, iyo polyimides.
Xabagaha qoyaanka ku adkaada waxay adkaadaan marka ay la falgalaan qoyaanka ka jira dusha sare ee substrate-ka ama hawada. Noocyada xabagtan waxaa ka mid ah cyanoacrylates iyo urethanes.
{{See also|List of polyurethane applications#Adhesives}}
=== Asal ahaan ===
==== Dabiici ah ====
Xabagaha dabiiciga ah waxaa laga sameeyaa ilaha dabiiciga ah sida borotiinka khudaarta (dextrin), resins-ka dabiiciga ah, ama xayawaanka (tusaale borotiinka caanaha casein<ref name="cornell">[https://www.ccmr.cornell.edu/education/ask/index.html?quid=160 CCMR – Ask A Scientist!]</ref> iyo xabagta xoolaha ee maqaarka ku salaysan). Kuwan waxaa badanaa loogu yeeraa bioadhesives.
Tusaale ahaan waa koolo fudud oo lagu sameeyo iyadoo la karkarinayo bur biyo ku jira. Xabagaha ku salaysan istaariishka waxaa lagu isticmaalaa soo-saaridda looxyada laalaaban iyo bacaha warqadda, duubista tuubooyinka warqadda, iyo xabagaha darbiyada. Xabagta casein waxaa badanaa loo isticmaalka in lagu dhejiyo sumadaha dhalada dhalada ah. Xabagaha xoolaha waxaa dhaqan ahaan loo isticmaali jiray buugaagta la xidho, ku biirista alwaaxa, iyo meelo kale oo badanimada laakiin hadda waxaa inta badan beddelay xabagta macmalka ah marka laga reebo codsiyada gaarka ah sida soo-saaridda iyo dayactirka qalabka muusigga ee xadhkaha leh. Albumen-ka laga soosaaray qaybta borotiinka ee dhiigga ayaa waxaa lagu isticmaali jiray warshadaha plywood. Masonite, oo ah alwaax adag, ayaa asal ahaan lagu xidhay iyadoo la adeegsanayo lignin alwaax dabiici ah, in kasta oo inta badan looxyada casriga ah ee Particle board-ka sida MDF ay isticmaalaan resins-ka kulaylka ku adkaada ee macmalka ah.
==== Macmal ah ====
Xabagaha macmalka ah waxaa laga sameeyaa xeryahooda dabiiciga ah.<ref>{{cite journal | last1=Mantanis | first1=George I. | last2=Athanassiadou | first2=Eleftheria Th. | last3=Barbu | first3=Marius C. | last4=Wijnendaele | first4=Kris | author1-link=George Mantanis |title=Adhesive systems used in the European particleboard, MDF and OSB industries | journal=Wood Material Science & Engineering | volume=13 | issue=2 | date=2018-03-15 | issn=1748-0272 | doi=10.1080/17480272.2017.1396622 | pages=104–116 }}</ref> Intooda badani waxay ku saleysan yihiin elastomers, thermoplastics, emulsions, iyo thermosets. Tusaalooyinka xabagaha kulaylka ku adkaada waa: epoxy, polyurethane, cyanoacrylate iyo acrylic polymers. Xabagta macmalka ah ee ugu horreysay ee ganacsi ahaan loo soo saaro waxay ahayd Karlsons Klister 1920-meeyadii.<ref>{{cite web| url = http://www.nyteknik.se/nyheter/innovation/article3208149.ece| title = Ny Teknik: Sverige fastnade tack vare åsnan| access-date = 15 August 2011}}</ref>
== Codsiga ==
Qalabka lagu mariyo xabagaha kala duwan waxaa loo qaabeeyey si waafaqsan xabagta la isticmaalayo iyo cabbirka aagga ay tahay in xabagta lagu mariyo. Xabagta waxaa lagu mariyaa mid ka mid ah ama labada shay ee la isku xidhayo. Cadadku waa la simaa waxaana la saaraa cadaadis si loogu caawiyo dhejinta isla markaana laga saaro xabagta xumbooyinka hawada.
Hababka caadiga ah ee lagu mariyo xabagta waxaa ka mid ah burushyada, rollers, iyadoo la isticmaalayo filimada ama xabadaha, qoryaha buufinta iyo qoryaha codsiga (tusaale, qoriga caulk). Dhammaan kuwan waxaa loo isticmaali karaa si gacmeed ah ama si otomaatig ah qayb uga ah mashiinka.
==Tixraac==
{{Reflist}}
19dpzt99buv33n42iqz0h64ab0u52eg
309247
309246
2026-09-23T15:38:49Z
Isma4l
41797
/* Falcelinta */
309247
wikitext
text/x-wiki
[[File:AdhesivesForHouseUse004.jpg|thumb|right|Nitrocellulose adhesive waxaa laga soo saaray tuubo]]
'''Xabag''', oo sidoo kale loo yaqaanno '''koolo''', '''sement''', ama '''pastow''',<ref>{{cite encyclopedia|last=Pike|first=Roscoe|title=adhesive|url=https://www.britannica.com/EBchecked/topic/5823/adhesive|encyclopedia=Encyclopædia Britannica Online|publisher=Encyclopædia Britannica Inc.|access-date=9 April 2013}}</ref> waa shay kasta oo aan bir ahayn oo la dusha saaro mid ama labada dusha ee laba shay oo kala gooni ah taas oo isku xidha isla markaana ka celisa inay kala tagaan.<ref>{{cite book|last=Kinloch|first=A.J.|title=Adhesion and Adhesives: Science and Technology|year=1987|publisher=Chapman and Hall|location=London|isbn=0-412-27440-X |page=1|edition=Reprinted.}}</ref>
Isticmaalka xabagaha wuxuu leeyahay faa'iidooyin gaar ah marka la barbardhigo farsamooyinka kale ee isku xidhka sida tolidda, xajiyeyaasha farsamada, iyo alxanka. Kuwan waxaa ka mid ah awoodda lagu xidho agabka kala duwan, qaybinta culeyska oo waxtar badan leh oo ka dhexaysa wadajirka, kharash-ku-oolnimada habka mashiinka fudud, iyo dabacsanaan weyn oo naqshadaynta ah. Khasaarooyinka isticmaalka xabagta waxaa ka mid ah xasiloonida oo hoos u dhacda heerkulka sarreeya, daciifnimo qaraabo ah oo ku jirta xidhitaanka walxaha waaweyn ee leh aagga dusha sare ee yar, iyo dhib weyn oo ah kala soocidda walxaha inta lagu jiro tijaabinta.{{sfn|Kinloch|1987|page=2}} Xabagaha waxaa badanaa lagu habeeyaa habka dhejiska iyadoo ay ku xigto ''falcelin'' ama ''aan falcelin lahayn'', erey tilmaamaya in xabagta ay fal-gelayso kiimiko ahaan si ay u adkaato. Sidoo kale, waxaa lagu habeyn karaa iyadoo la raacayo marxaladdooda jireed ee bilowga ah ama in kaydkooda ceyriin uu ka yimid asal dabiici ah ama macmal ah.
Xabagaha waxaa laga heli karaa si dabiici ah ama waxaa lagu soo saari karaa si macmal ah. Isticmaalka ugu horreeya ee bini'aadamka ee walxaha xabagta oo kale ah wuxuu ahaa qiyaastii 200,000 sano ka hor,<ref name="Mazza">{{cite journal |doi=10.1016/j.jas.2006.01.006 |title=A new Palaeolithic discovery: tar-hafted stone tools in a European Mid-Pleistocene bone-bearing bed |date=January 2006|author=Mazza, P |journal=Journal of Archaeological Science |volume=33 |page=1310 |last2=Martini |first2=F |last3=Sala |first3=B |last4=Magi |first4=M |last5=Colombini |first5=M |last6=Giachi |first6=G |last7=Landucci |first7=F |last8=Lemorini |first8=C |last9=Modugno |first9=F |last10=Ribechini |first10=E| issue=9|bibcode=2006JArSc..33.1310M }}</ref> markii Neanderthals ay soo saareen daamur ka soo baxay foornada qallalan ee qolofka björken si loogu isticmaalo in lagu xiro qalabka dhagaxa ah gacan-qabashada alwaax.<ref>{{Cite journal|last1=Kozowyk|first1=P. R. B.|last2=Soressi|first2=M.|last3=Pomstra|first3=D.|last4=Langejans|first4=G. H. J.|date=2017-08-31|title=Experimental methods for the Palaeolithic dry distillation of birch bark: implications for the origin and development of Neandertal adhesive technology|journal=Scientific Reports|language=En|volume=7|issue=1|page=8033|doi=10.1038/s41598-017-08106-7|doi-access=free|pmid=28860591|issn=2045-2322|bibcode=2017NatSR...7.8033K|pmc=5579016}}</ref> Tixraacyadii ugu horreeyay ee xabagta ee suugaanta ayaa ka muuqday qiyaastii 2000 BC. Giriigga iyo Roomaanku waxay qayb libaax leh ka qaateen horumarinta xabagaha. Yurub dhexdeeda, koolada si weyn looma isticmaali jirin ilaa xilligii AD 1500–1700.<ref>{{Cite book |last1=Stamm |first1=A.J. |title=Principles of Wood Science and Technology |last2=Kuenzi |first2=E.W. |last3=Kollmann |first3=Franz F.P. |publisher=Springer Berlin Heidelberg |year=2012 |isbn=978-3-642-87931-9 |page=1}}</ref> Laga soo bilaabo waqtigaas ilaa 1900-meeyadii kororka isticmaalka xabagta iyo helitaankeedu wuxuu ahaa mid tartiib tartiib ah. Kaliya tan iyo qarnigii 20-aad ayuu horumarinta xabagaha macmalka ah si degdeg ah u dedejiyay, hal-abuurnimaduna waxay ka socotaa goobta ilaa maanta.
== Taariikhda ==
[[File:Animal glue liquid.jpg|thumbnail|left|Koolada xoolaha ee dareeraha ah]]
Caddayntii ugu horreysay ee isticmaalka xabagta bini'aadamka waxaa laga helay bartamaha Talyaaniga markii saddex qalab oo dhagax ah laga helay calaamado daamur qolof björken ah. Qalabkan waxaa loo asteeyay inay ahaayeen ilaa 200,000 oo sano ka hor intii aan la gaarin Paleolithic-ga Dhexe. Waa tusaalihii ugu horreeyay ee qalabka dhagaxa ee daamurku xidhay.<ref name="Mazza" />
Daraasad ku saabsan qadiimiga tijaabada ah oo la daabacay 2019 ayaa muujisay sida daamurka qolofka björken loo soo saari karo hab sahlan oo la heli karo. Waxay ku lug leedahay in si toos ah loo gubo qolofka björken ee hoos yimaada dusha sare ee dhagaxa ee jawi furan oo la ururiyo daamurka ka dhasha dhagaxa.<ref>{{Cite journal|last1=Schmidt|first1= P.|last2=Blessing|first2= M.|last3= Rageot|first3= M.|last4= Iovita|first4= R.|last5= Pfleging|first5= J.|last6= Nickel|first6= K. G.|last7= Righetti|first7= L. |last8=Tennie|first8= C.|title=Birch tar extraction does not prove Neanderthal behavioral complexity|journal=PNAS|doi=10.1073/pnas.1911137116|pmid=31427508|volume=116|pmc=6731756|year=2019|issue=36|pages=17707–17711|bibcode=2019PNAS..11617707S |doi-access=free}}</ref>
In kasta oo ay dhagayaan, xabagaha dhirta ku salaysan ee qaybta keliya ah waxay noqon karaan kuwo jaban oo u nugul xaaladaha deegaanka. Isticmaalkii ugu horreeyay ee xabagaha isku-dhafan waxaa laga helay Sibudu, Koonfur Afrika. Halkaan, qaybo dhagax ah oo 70,000 sano jir ah oo horay loogu geliyay gacan-qabashada faaska ayaa la helay iyagoo ay ku daboolan tahay xabag ka kooban xabagta dhirta iyo ocher cas (cilmiga birta dabiiciga ah) maadaama ku darida ocher xabagta dhirta ay soo saarto badeeco xoog leh oo ka ilaalinaysa xabagta inay burburto xaaladaha qoyan.<ref name="Wadley">{{cite journal |pmid=19433786 |date=Jun 2009|author1=Wadley, L |author2=Hodgskiss, T |author3=Grant, M |title=Implications for complex cognition from the hafting of tools with compound adhesives in the Middle Stone Age, South Africa |volume=106 |issue=24 |pages=9590–4 |issn=0027-8424 |doi=10.1073/pnas.0900957106 |journal=Proceedings of the National Academy of Sciences of the United States of America |pmc=2700998|bibcode = 2009PNAS..106.9590W |doi-access=free}}</ref> Awoodda ay u leeyihiin inay soo saaraan xabag xoog leh ayaa u oggolaatay dadkii Stone Age ee dhexe inay ku xiraan qaybaha dhagaxa ulaha oo leh kala duwanaansho badan, taas oo horseeday horumarinta qalab cusub.<ref>{{cite journal|last=Wadley|first=Lyn|title=Compound-Adhesive Manufacture as a Behavioral Proxy for Complex Cognition in the Middle Stone Age|journal=Current Anthropology|date=1 June 2010|volume=51|issue=s1|pages=S111–S119|doi=10.1086/649836|s2cid=56253913}}</ref> Daraasad lagu sameeyay agabka ka yimid Le Moustier ayaa tilmaamaysa in dadkii Paleolithic-ga Dhexe, oo laga yaabo inay ahaayeen Neanderthals, ay isticmaaleen koolo ka samaysan isku-dar ah ocher iyo bitumen si ay u sameeyaan gacmo-qabasho si loo gooyo oo loo xoqo qalabka dhagaxa.<ref>{{cite journal|first1=Patrick|last1= Schmidt|first2= Radu|last2= Iovita|first3= Armelle|last3= Charrié-Duhaut|first4= Gunther|last4= Möller|first5= Abay|last5= Namen|first6= Ewa|last6= Dutkiewicz|date=21 February 2024|url=https://www.researchgate.net/publication/378369816|title=Ochre-based compound adhesives at the Mousterian type-site document complex cognition and high investment|journal=Science Advances|volume=10|issue=8|article-number=eadl0822 |doi=10.1126/sciadv.adl0822|pmid=38381827 |pmc=10881035|bibcode=2024SciA...10L.822S }}</ref>
Tusaalooyin dhowaan la helay oo ah isticmaalka xabagta ee bini'aadamka taariikhda ka horreeya waxaa laga helay goobaha lagu aaso qabaa'ilkii hore. Qadiimiyayaasha baranayay goobaha ayaa ogaaday in qiyaastii 6,000 sano ka hor dadkii qabiilka ahaa ay meydkooda ku aaseen cunto laga helay dhalooyin dhoobo ah oo jabay oo lagu hagaajiyay resins-ka geedaha.{{sfn|Ebnesajjad|2010|p=137}} Baaritaan kale oo ay sameeyeen aqoonyahannada qadiimiga ayaa lagu ogaaday isticmaalka sementiga bituminous si loogu xiro indhaha fool-maroodiga taallooyinka macbisyada Babyloniyaanka ah ee soo jeeda qiyaastii 4000 BC.{{sfn|Mittal|Pizzi|2003|p=1}}
[[File:ReconstructedOetziAxe.jpg|thumb|upright|Dib-u-dhiska faaska Ötzi, kaas oo isticmaalay garaw sida xabag ah]]
Sannadkii 2000, warqad ayaa daaha ka qaaday helitaanka nin 5,200 sano jir ah oo loogu magac daray Tyrolean Iceman ama Ötzi, kaas oo lagu ilaaliyay baraf hoose oo ku dhow xadka Austria iyo Talyaaniga. Qaar ka mid ah alaabtiisii ayaa la helay isaga oo ay ku jiraan laba fallaarood oo wata madaxda fallaadhaha flint iyo hal geesiga naxaasta ah, mid walbana wuxuu caddayn u ahaa xabagta dabiiciga ah ee loo isticmaalo in lagu xiro qaybaha dhagaxa ama birta ulaha alwaaxa. Xabagta waxaa loo falanqeeyay inay tahay pitch, taas oo u baahan kululaynta daamurka inta ay soo saarayso. Soo-celinta daamurkan waxay u baahan tahay beddelka qolofka björken iyada oo la adeegsanayo kulayl, oo ah hab loo yaqaanno pyrolysis.<ref>Sauter F, Jordis U, Graf A, Werther W, Varmuza K. (2000). [http://www.arkat-usa.org/get-file.php?fileid=19868 Studies in organic archaeology I: identification of the prehistoric adhesive used by the "Tyrolean Iceman" to fix his weapons] ARKIVOC, 1:[5] 735–747</ref>
Tixraacyadii ugu horreeyay ee xabagta ee suugaanta ayaa ka muuqday qiyaastii 2000 BC. Diiwaanno taariikheed oo dheeraad ah oo ku saabsan isticmaalka xabagta waxaa laga helay xilliga u dhexeeya 1500–1000 BC. Agabka xilligan waxaa ka mid ah sawirro muujinaya hawlgallada alwaax-dheejinta iyo sanduuq ka samaysan alwaax iyo koolo oo ku yaal qabriga Boqor Tutankhamun.{{sfn|Ebnesajjad|2010|p=137}} Agabyada kale ee Masar ee qadiimiga ah waxay adeegsadaan xabagta xoolaha si loogu xiro ama loogu lamiyeeyo. Lamination-ka noocaas ah ee alwaaxa ee qaansooyinka iyo alaabta guriga ayaa la rumeysan yahay inay dheereeyeen noloshooda waxaana lagu fuliyay iyadoo la isticmaalayo casein (borotiinka caanaha) ku salaysan koolada. Masriyiinta qadiimiga ah waxay sidoo kale horumariyeen pastow ku salaysan istaariish si loogu xiro papyrus dharka iyo agab gypsum oo kale ah oo ka samaysan calcined gypsum.{{sfn|Mittal|Pizzi|2003|p=2}}
[[File:Molten beeswax.JPG|thumb|Maliinta shimbiraha|left]]
Laga soo bilaabo AD 1 ilaa 500 Giriigga iyo Roomaanku waxay qayb libaax leh ka qaateen horumarinta xabagaha. Veneer-ka alwaaxa iyo marquetry ayaa la horumariyay, soo-saaridda xabagta xoolaha iyo kaluunka waa la sifeeyay, waxaana la isticmaalay agabyo kale. Pastowga ku salaysan ukunta waxaa loo isticmaalay in lagu xiro caleemaha dahabka ah, waxayna ku dareen maaddooyin dabiici ah oo kala duwan sida dhiigga, lafta, maqaarka, caanaha, farmaajada, khudaarta, iyo badarka.{{sfn|Ebnesajjad|2010|p=137}} Giriiggu waxay bilaabeen isticmaalka slaked lime sida nuurad halka Roomaanku ay sii horumariyeen horumarinta nuuradda iyagoo ku daraya nuuradda dambaska foolkaanaha iyo ciidda. Agabkan, oo loo yaqaanno pozzolanic cement, waxaa loo isticmaalay dhismaha Roman Colosseum iyo Pantheon.{{sfn|Mittal|Pizzi|2003|p=2}} Roomaanku waxay sidoo kale ahaayeen dadkii ugu horreeyay ee la ogyahay inay isticmaaleen daamurka iyo malabka shimbiraha sida caulk iyo shaabeeye u dhexeeya looxyada alwaaxa ee doonyahooda iyo maraakiibtooda.{{sfn|Ebnesajjad|2010|p=137}}
Aasiya Dhexe, kor u kaca Mongols qiyaastii AD 1000 waxaa qayb ahaan loo aanayn karaa kala duwanaanshaha wanaagsan iyo awoodda qaansooyinka Genghis Khan. Qaansooyinkan waxaa laga sameeyay xudunta bambooka, oo wata geeso caloosha ah (u jeeda xagga qaanso-sidaha) iyo muruqyo dhabarka ah, oo isku xidhan oo wata xabagta xoolaha.<ref>{{cite book |last1=Ashton |first1=J. E.|last2=Halpin|first2=John C. |last3=Petit|first3=P.H.|title=Primer on Composite Materials: Analysis |date=1969 |publisher=Technomic Publishing|oclc=27238 |location=Westport, Connecticut |isbn=0-87762-754-1}}</ref>
[[File:Casein glue preparation.jpg|framed|right|Diyaarinta xabagta Casein]]
Yurub dhexdeeda, kooladu waxay gashay dayacaad ilaa xilligii AD 1500–1700.<ref>{{Cite book |last1=Stamm |first1=A.J. |title=Principles of Wood Science and Technology |last2=Kuenzi |first2=E.W. |last3=Kollmann |first3=Franz F.P. |publisher=Springer Berlin Heidelberg |year=2012 |isbn=978-3-642-87931-9 |page=1}}</ref> Waqtigan xaadirka ah, kuwa sameeya golaha wasiirada iyo alaabta guriga ee caanka ka ah adduunka sida Thomas Chippendale iyo Duncan Phyfe waxay bilaabeen inay isticmaalaan xabagta si ay alaabtooda isugu hayaan.{{sfn|Ebnesajjad|2010|p=137}} Sannadkii 1690, warshaddii ugu horreysay ee koolada ganacsiga ayaa la aasaasay Netherlands. Warshaddani waxay soo saartay koolo laga helay maqaarka xoolaha.{{sfn|Mittal|Pizzi|2003|p=3}} Sannadkii 1750, shatigii ugu horreeyay ee koolada Ingiriiska ayaa la bixiyay ee loogu talagalay xabagta kalluunka. Tobanaankii xigay ee qarnigii xigay waxay arkeen soo-saaridda xabagta casein ee Jarmalka iyo Switzerland.{{sfn|Ebnesajjad|2010|p=137}} Sannadkii 1876, shatigii ugu horreeyay ee Mareykanka (lambar 183,024) ayaa la siiyay walaalaha Ross ee soo-saaridda xabagta casein.{{sfn|Ebnesajjad|2010|p=137}}<ref>{{cite web|last=Ross|first=John|title=Improvement in Processes of Preparing Glue|url=http://patimg1.uspto.gov/.piw?Docid=00183024&homeurl=http%3A%2F%2Fpatft.uspto.gov%2Fnetacgi%2Fnph-Parser%3FSect2%3DPTO1%2526Sect2%3DHITOFF%2526p%3D1%2526u%3D%2Fnetahtml%2FPTO%2Fsearch-bool.html%2526r%3D1%2526f%3DG%2526l%3D50%2526d%3DPALL%2526S1%3D0183024.PN.%2526OS%3DPN%2F183024%2526RS%3DPN%2F183024&PageNum=&Rtype=&SectionNum=&idkey=NONE&Input=View+first+page|publisher=United States Patent and Trademark Office|access-date=14 April 2013|author2=Charles Ross|date=10 October 1876}}</ref>
Boostada ugu horreysay ee Mareykanka waxay isticmaashay xabagta ku salaysan istaariishka markii la soo saaray 1847. Shatigii ugu horreeyay ee Mareykanka (lambar 61,991) ee dextrin (oo ah badeecada istaariishka) xabagta ayaa la bixiyay 1867.{{sfn|Ebnesajjad|2010|p=137}}
Caagadda dabiiciga ah waxaa markii ugu horreysay loo isticmaalay agab xabagta ah 1830,<ref>{{cite web|title=Bonding- An Ancient Art|url=http://www.adhesives.org/adhesives-sealants/fastening-bonding/history-of-bonding/bonding-an-ancient-art|work=Adhesives.org|publisher=Adhesives and Sealants Council|access-date=14 April 2013}}</ref> taas oo calaamadisay barta billowga ah ee xabagta casriga ah.<ref>{{Cite book|last=Wypych|first=George|title=Handbook of Adhesion Promoters|publisher=Elsevier|year=2018|isbn=978-1-927885-30-7|page=2}}</ref> Sannadkii 1862, shatiga Ingiriiska (lambar 3288) ayaa la siiyay dahaarka birta leh naxaas iyadoo la adeegsanayo electrodeposition si loo helo xidhid adag oo loogu talagalay caagadda.{{sfn|Mittal|Pizzi|2003|p=3}} Horumarinta baabuurka iyo baahida loo qabo kuraasta shoogga caagadda waxay u baahdeen xidhitaanno adag oo waara oo caag iyo bir ah. Tani waxay kicisay horumarinta caagadda wareegsan ee lagu daweeyay aashitada adag. Sannadkii 1927, habkan waxaa loo isticmaalay in lagu soo saaro xabagta caagadda ah ee thermoplastic ee ku salaysan dareeraha birta ilaa xidhitaanka caagadda.{{sfn|Mittal|Pizzi|2003|p=4}}
Xabagta dhagaxa ah ee ku salaysan caagadda dabiiciga ah waxaa markii ugu horreysay lagu isticmaalay dhabarka waxaa sameeyay Henry Day (US Patent 3,965) 1845.{{sfn|Mittal|Pizzi|2003|p=4}} Markii dambe noocyada xabagtaan waxaa lagu isticmaalay qalliinka maro gadaal ah iyo cajaladaha korontada. Sannadkii 1925, warshadaha cajaladaha cadaadiska xasaasiga ah ayaa dhashay.{{sfn|Kinloch|1987|page=2}}
Maanta, xusuus-qoryaha dhejiska ah, cajaladda Scotch, iyo cajaladaha kale ayaa tusaale u ah xabagta cadaadiska xasaasiga ah (PSA).<ref>{{Cite book|chapter-url=https://books.google.com/books?id=QZcbSr8MW98C&pg=PA499|title=Adhesion Science and Engineering: Surfaces, Chemistry and Applications|chapter=Chapter 13: Effect of rheology on PSA performance|author1=David J. Yarusso |editor1=A.V. Pocius |editor2=David A. Dillard|date=2002|publisher=Elsevier|isbn=978-0-08-052598-3|language=en}}</ref>
Tallaabo muhiim ah oo ku jirta horumarinta caagagga macmalka ah waxay ahayd soo-bandhigidda caag thermoset ah oo loo yaqaanno Bakelite phenolic 1910.{{sfn|Ebnesajjad|2010|p=138}} L laba sano gudahood, resin phenolic waxaa lagu dabaqay plywood sida varnish dahaarka ah. Horraantii 1930-meeyadii, phenolics waxay muhiimad ka heleen sida resins xabagta.{{sfn|Mittal|Pizzi|2003}}
1920-meeyadii, 1930-meeyadii, iyo 1940-meeyadii waxay arkeen horumarro waaweyn oo ku saabsan horumarinta iyo soo-saaridda caagagga cusub iyo resins sababtoo ah Dagaalkii Koowaad iyo Labaad ee Adduunka. Horumarintani waxay si weyn u wanaajisay horumarinta xabagta iyadoo u oggolaanaysa isticmaalka agabyada cusub ee la soo saaray oo soo bandhigay sifooyin kala duwan. Iyada oo la beddelayo baahiyaha iyo tignoolajiyada weligood is beddesha, horumarinta xabagta cusub ee macmalka ah waxay sii socotaa ilaa maanta.{{sfn|Ebnesajjad|2010|p=138}} Si kastaba ha ahaatee, sababtoo ah kharashkooda hooseeya, xabagta dabiiciga ah ayaa weli ah kuwa inta badan la isticmaalo.{{sfn|Mittal|Pizzi|2003|p=10}}
== Noocyada ==
{{See also|List of glues}}
Xabagaha waxaa badanaa lagu habeeyaa habka dhejiska. Kuwan waxaa markaa loo habeeyaa xabagta falcelinta iyo aan falcelinta lahayn, taas oo tilmaamaysa in xabagta ay fal-gelayso kiimiko ahaan si ay u adkaato. Sidoo kale waxaa loo habayn karaa iyadoo la eegayo in kaydka cayriin uu ka yimid asal dabiici ah ama macmal ah, ama marxaladdooda jireed ee billowga ah.<ref>{{Cite web|url=https://roofonline.com/mil-hdbk-691b-department-of-defense-military-standardization-handbook-adhesive-bonding|title=MIL-HDBK-691B – Department of Defense – Military Standardization Handbook – Adhesive Bonding|page=47|website=Roof Online|access-date=2020-05-08}}</ref>
=== Falcelinta ===
==== Aan falcelin lahayn ====
===== Qallajinta =====
Waxaa jira laba nooc oo xabag ah oo ku adkaada qalajinta: xabagta ku salaysan dareeraha iyo xabagta kala-baxa polymer, oo sidoo kale loo yaqaanno xabagta emulsion. Xabagta ku salaysan dareeraha waa isku-dar ah maaddooyinka (badanaa polymers) oo lagu milay dareeraha. Koolada cad ee Polyvinyl acetate, xabagta xiriirka iyo xabagta caagadda ah ayaa xubin ka ah qoyska xabagta qallajinta. Marka dareeraha uumiga baxo, xabagta ayaa adkaata. Iyadoo ku xiran halabuurka kiimikada ee xabagta, waxay ku dhegi doonaan agabyo kala duwan si ka yar ama ka badan.
Xabagta kala-baxa polymer waa kala-bax caano-cad oo inta badan ku saleysan polyvinyl acetate (PVAc). Waxaa si weyn loogu isticmaalaa warshadaha alwaaxa iyo baakadaha. Wax waxaa sidoo kale loogu isticmaalaa dharka iyo agabka dharka ku salaysan, iyo alaabta injineernimada ah sida koonisyada cod-baahiyaha.
===== Cadaadiska xasaasiga ah =====
{{Main|Pressure-sensitive adhesive}}
Xabagta cadaadiska xasaasiga ah (PSA) waxay samaysaa xidhitaan iyadoo la adeegsanayo cadaadis fudud si loo xiro xabagta iyo dhejiska. Waxaa loo qaabeeyey inay yeeshaan dheelitirka u dhexeeya socodka iyo is caabbinta socodka. Xidhitaanku wuxuu sameeyaa sababtoo ah xabagtu waa mid jilicsan oo ku filan inay qulqulaato (sida, qoyan) dhejiska. Xidhitaanku wuxuu leeyahay xoog sababtoo ah xabagtu waa mid adag oo ku filan inay u adkaysato socodka marka cadaadiska la saaro xidhitaanka. Marka xabagta iyo dhejiska ay ku dhow yihiin dhow, fal-dhexgalka molecular, sida xoogagga van der Waals, ayaa ku lug leh xidhitaanka, taas oo gacan weyn ka geisanaysa xooggeeda ugu dambeeya.
PSAs waxaa loogu talagalay codsiyada joogtada ah ama la saari karo. Tusaalooyinka codsiyada joogtada ah waxaa ka mid ah sumadaha badbaadada ee qalabka korontada, cajaladda foornada ee shaqada dhuumaha HVAC, golaha qurxinta gudaha baabuurka, iyo filimada qoyan ee dhawaqa/gariirka. Qaar ka mid ah PSAs joogtada ah ee waxqabadka sarreeya waxay muujinayaan qiyamka dhejiska sare waxayna taageeri karaan kiiloogaraam oo miisaan ah mitir laba jibaaran ee aagga xiriirka, xitaa heerkulka sarreeya. PSAs joogtada ah waxaa laga yaabaa inaysan weligood la saari karin (tusaale ahaan si loo soo ceshado alaabta khaldan) oo ay dhistaan xabag xidhitaan joogto ah saacado ama maalmo kadib.
Xabagta la saari karo waxaa loo qaabeeyey inay sameeyaan xidhitaan ku-meel-gaar ah, oo sida ugu habboon looga saari karo bilo ama sano iyada oo aan laga tegin haraaga dhejiska. Xabagta la saari karo waxaa loo isticmaalaa codsiyada sida filimada ilaalinta dusha sare, cajaladaha maaskarada, calaamadaha buug-yaraha iyo warqadaha xusuusin, calaamadaha koodhka bar-bar, calaamadaha calaamadaynta qiimaha, agabka xayeysiinta, iyo xiriirka maqaarka (daryeelka boogaha, elektaroodyada EKG, cajaladda ciyaaraha, dawooyinka xanuunka iyo daroogooyinka trans-dermal, iwm.). Qaar ka mid ah xabagta la saari karo waxaa loo qaabeeyey inay ku dhegaan oo kala tagaan si isdaba joog ah.<ref>{{cite web|last1=Barcode|first1=Barry|title=Rubber Acrylic Adhesive Labels|url=http://www.midcomdata.com/rubber-acrylic-adhesive-labels/|website=Midcomdata|date=23 July 2014}}</ref> Waxay leeyihiin xabag hoose, guud ahaanna ma taageeri karaan miisaan badan. Cadaadiska xasaasiga ah ee xabagta waxaa lagu isticmaalaa xusuusinaha Post-it.
Xabagta cadaadiska xasaasiga ah waxaa lagu soo saaraa qaade dareere ah ama qaab adag oo 100%. Maqaallada waxaa laga sameeyaa PSA dareere ah iyadoo la marinayo xabagta oo la qalajinayo dareeraha ama qaade biyaha. Waxaa laga yaabaa in si dheeraad ah loo kululeeyo si loo bilaabo falcelinta isku xidhka oo la kordhiyo miisaanka molecular. 100% PSA adag waxay noqon karaan polymers viscosity hoose oo la dahaaray oo markaas lagula falgelay shucaaca si loo kordhiyo miisaanka molecular oo loo sameeyo xabagta, ama waxay noqon karaan agab viscosity sarreeya oo la kululeeyo si loo yareeyo viscosity ku filan si loo oggolaado dahaarka, ka dibna qaboojiyo foomkooda ugu dambeeya. Maaddada ceyriin ee ugu weyn ee PSA waa polymers acrylate ku salaysan.
===== Xiriirka =====
{{See also|Contact adhesives}}
Xabagta xiriirka waxay samaysaa xidhitaan adkaysi u leh xiiridda oo wata waqti adkaansho degdeg ah. Badanaa waxaa lagu dabaqaa lakabyo dhuuban oo loogu isticmaalo laminate-yada, sida ku xiridda Formica dusha sare, iyo kabaha, sida ku xiridda lugaha hoose ee sare. Caagadda dabiiciga ah iyo polychloroprene (Neoprene) waa xabagta xiriirka ee caadiga ah. Labadan elastomers waxay maraan crystalization xiisad.
Xabagta xiriirka waa in lagu dabaqaa labada dusha sare oo la siiyaa xoogaa waqti ah si ay u qallalaan ka hor inta aan labada dusha la isku riixin. Qaar ka mid ah xabagta xiriirka waxay qaadataa ilaa 24 saacadood inay si buuxda u qallajiso ka hor inta aan dusha la isku haynin. Marka dusha la isku riixo, xidhitaanka wuxuu sameeyaa si aad u degdeg ah.<ref>{{cite web| url = http://composite.about.com/library/glossary/c/bldef-c1257.htm| title = Definition of ''contact adhesive'' on About.com| access-date = 25 September 2006}}</ref> Isku xiridda looma baahna sababtoo ah samaynta xidhitaanka degdegga ah.<ref>{{Cite book |last=Magazine |first=Wood |url=https://books.google.com/books?id=Ltsv0oq_C6EC&pg=PA9#v=onepage&q&f=false |title=Wood Magazine - Making Great Boxes |date=2006 |publisher=Sterling Publishing Company, Inc. |isbn=978-1-4027-0763-6 |language=en}}</ref>
===== Kulul =====
[[File:Stanley-Hot-Glue-Gun-GR35K.jpg|right|thumbnail|Qoriga koolada, oo ah tusaale ka mid ah xabagta kulul]]
{{Main|Hot-melt adhesive}}
Xabagta kulul, oo sidoo kale loo yaqaanno xabagta dhalaasha kulul, waa thermoplastics lagu dabaqo qaab dhalaalay (inta u dhaxaysa 65–180 °C) kuwaas oo adkaada marka la qaboojiyo si ay u sameeyaan xidhitaan adag oo u dhexeeya agabyo kala duwan. Xabagta dhalaasha kulul ee ku salaysan Ethylene-vinyl acetate ayaa si gaar ah caan ugu ah farsamada gacanta sababtoo ah sahlanaanta isticmaalkooda iyo agabka caadiga ah ee kala duwan ee ay ku biiri karaan. Qoriga koolada (oo midigta ka muuqda) waa hal hab oo lagu dabaqo xabagta kulul. Qoriga koolada wuxuu dhaliyaa xabagta adag, ka dibna u oggolaanaysa dareeraha inuu dhex maro foornadiisa ilaa agabka, halkaas oo uu ku adkaado.
Xabagta thermoplastic waxaa laga yaabaa inay soo saartay qiyaastii 1940 Procter & Gamble oo xal u ah dhibaatada ah in xabagta biyaha ku salaysan, ee caadi ahaan loogu isticmaalo baakadaha waqtigaas, ay ku guuldarraysteen cimilada qoyan, taas oo keentay inay baakadaha furmaan. Si kastaba ha ahaatee, xabagta biyaha ku salaysan ayaa weli ah kuwo aad u xiiso badan maadaama aysan inta badan ka koobnayn dareeraha uumiga.<ref>{{Cite journal |last1=Bhakare |first1=Madhuri A. |last2=Lokhande |first2=Kshama D. |last3=Bondarde |first3=Mahesh P. |last4=Dhumal |first4=Pratik S. |last5=Some |first5=Surajit |date=2023-02-15 |title=Dual functions of bioinspired, water-based, reusable composite as a highly efficient flame retardant and strong adhesive |url=https://www.sciencedirect.com/science/article/pii/S1385894722059010 |journal=Chemical Engineering Journal |volume=454 |article-number=140421 |doi=10.1016/j.cej.2022.140421 |issn=1385-8947}}</ref>
=== Falcelinta ===
==== Anaerobic ====
Xabagta anaerobic waxay adkaataa marka ay la xiriirto birta, iyada oo aan lahayn ogsajiin.<ref>{{cite web |title=About anaerobic adhesives |publisher=ThreeBond Holdings Co. |url=https://www.threebond.co.jp/en/technical/seminar/adhesion2.html |access-date=15 September 2018}}</ref> Si fiican ayay uga shaqeeyaan meel bannaan oo isku xiran, sida marka loo isticmaalo dareeraha xiritaanka dunta.
==== Qaybo badan leh ====
Xabagta qaybo badan leh waxay adkaadaan iyadoo la isku darayo laba qaybood ama ka badan oo fal-gelaya kiimiko ahaan. Falcelintani waxay keentaa in polymers-ku isku xirmaan acrylates, urethanes, iyo epoxies.
Waxaa jira dhowr kombinasyon oo ganacsi oo ah xabagta qaybo badan leh oo laga isticmaalo warshadaha. Qaar ka mid ah isku-darkaan waa:
* Polyester resin & polyurethane resin
* Polyols & polyurethane resin
* Acrylic polymers & polyurethane resins
Qaybaha shakhsi ahaaneed ee xabagta qaybo badan leh ma aha kuwo xabag ah dabiici ahaan. Qaybaha shakhsi ahaaneed waxay midba midka kale la falgalaan ka dib marka la isku daro waxayna muujiyaan xabag buuxda oo keliya marka la daweeyo. Resins-ka qaybo badan leh waxay noqon karaan kuwo dareere ku salaysan ama dareere la'aan ah. Dareerayaasha ku jira xabagta ayaa ah dhexdhexaad u ah polyester ama polyurethane resin. Dareeraha waa la qalajiyaa inta lagu jiro habka daweynta.
==== Xabagta la sii qaboojiyay ee horay loo sii daray ====
Xabagta la sii qaboojiyay ee horay loo sii daray (PMFs) waa xabag la isku daray, hawada laga saaray, la baakadeeyay, lana qaboojiyay.<ref>{{cite book|url=https://books.google.com/books?id=XiRdDgAAQBAJ|title=Polymeric Thermosetting Compounds|publisher=Apple Academic Press|author=Ralph D. Hermansen|page=31|date=16 March 2017|access-date=27 October 2017|isbn=978-1-77188-315-3}}</ref> Sida ay lagama maarmaanka u tahay in PMFs ay baraf ahaadaan intaan la isticmaalin ka hor, marka la qaboojiyo −80 °C waxaa lagu soo raraan baraf engegan waxaana looga baahan yahay in lagu keydiyo ama ka hooseeyo −40 °C.<ref>{{cite web|url=http://www.adhesivesmag.com/articles/93547-repackaging-options-for-two-component-adhesives-sealants-and-coatings|title=Repackaging Options for Two-Component Adhesives, Sealants and Coatings|publisher=Adhesives and Sealants Industry|date=5 January 2015|access-date=27 October 2017}}</ref> Xabagaha PMF waxay meesha ka saaraan qaladaadka isku-darka ee uu sameeyo isticmaalaha ugu dambeeya waxayna yareeyaan soo-gaaridda wakiillada adkeeya ee ka koobnaan kara waxyaabaha cuncunka ama sunta leh.<ref>{{cite book|title=Adhesives Technology for Electronic Applications: Materials, Processing, Reliability|publisher=Elsevier|author1=James J. Licari|author2=Dale W. Swanson|date=2011|page=121|access-date=27 October 2017|url=https://books.google.com/books?id=ZZ5kEWU5aHoC&q=Premixed+and+frozen+adhesives+history&pg=PA28|isbn=978-1-4377-7890-8}}</ref> PMFs waxaa ganacsi ahaan la soo bandhigay 1960-meeyadii waxaana badanaa lagu isticmaalaa hawada sare iyo difaaca.<ref>{{cite web|url=https://www.appli-tec.com/adhesives/history-of-frozen-adhesives/|title=History of Pre-Mixed and Frozen (PMF) Adhesives|publisher=Appli-tec|access-date=27 October 2017}}</ref>
==== Qayb-hal ====
Xabagaha qayb-hal ah waxay adkaadaan iyada oo loo marayo fal-gal kiimikaad oo ay la leeyihiin il tamar oo dibadda ah, sida shucaaca, kulaylka, iyo qoyaanka.
[[File:Steeldive SD8205-2.jpg|thumb|Saacad wadata muraayad weyneynaysa taariikhda. Muraayadda waxaa lagu dhejiyay xabag hufan oo UV rays ku adkaata dusha sare ee muraayadda saacadda.]]
Xabagaha ultraviolet (UV) ee ku adkaada iftiinka, oo sidoo kale loo yaqaanno agabka iftiinka ku adkaada (LCM), ayaa caan ka noqday qaybta wax-soo-saarka sababtoo ah waqtigooda adkaanshaha degdegga ah iyo xoogga xidhmo adag. Xabagaha iftiinka ku adkaada waxay ku adkaan karaan ilaa hal ilbiriqsi gudahood waxaana qaabab badan ay ku xidhi karaan substrates kala duwan (agab) oo ay u adkeysan karaan heerkulka daran. Tilmaamahan ayaa ka dhigaya xabagaha UV curing kuwo lagama maarmaan u ah soo-saaridda alaabta ee suuqyo badan oo warshadeed sida elektaroonigga, isgaarsiinta, caafimaadka, hawada sare, dhalada, iyo indhaha. Si ka duwan xabagaha dhaqameed, xabagaha UV ee iftiinka ku adkaada ma aha oo kaliya in ay isku xidhaan agabka laakiin sidoo-kale waxaa loo isticmaali karaa in lagu shaabadeeyo oo lagu daweeyo alaabta. Inta badan waxay ku saleysan yihiin akrilik.
Xabagaha kulaylka ku adkaada waxay ka kooban yihiin isku-dar hore loo sii sameeyay oo ah laba qaybood ama ka badan. Markა kulaylka la adeegsado qaybaha ayaa fal-gelaya oo isku xidhma. Noocyada xabagtan waxaa ka mid ah thermosetting polymer thermoset epoxies, urethanes, iyo polyimides.
Xabagaha qoyaanka ku adkaada waxay adkaadaan marka ay la falgalaan qoyaanka ka jira dusha sare ee substrate-ka ama hawada. Noocyada xabagtan waxaa ka mid ah cyanoacrylates iyo urethanes.
{{See also|List of polyurethane applications#Adhesives}}
=== Asal ahaan ===
==== Dabiici ah ====
Xabagaha dabiiciga ah waxaa laga sameeyaa ilaha dabiiciga ah sida borotiinka khudaarta (dextrin), resins-ka dabiiciga ah, ama xayawaanka (tusaale borotiinka caanaha casein<ref name="cornell">[https://www.ccmr.cornell.edu/education/ask/index.html?quid=160 CCMR – Ask A Scientist!]</ref> iyo xabagta xoolaha ee maqaarka ku salaysan). Kuwan waxaa badanaa loogu yeeraa bioadhesives.
Tusaale ahaan waa koolo fudud oo lagu sameeyo iyadoo la karkarinayo bur biyo ku jira. Xabagaha ku salaysan istaariishka waxaa lagu isticmaalaa soo-saaridda looxyada laalaaban iyo bacaha warqadda, duubista tuubooyinka warqadda, iyo xabagaha darbiyada. Xabagta casein waxaa badanaa loo isticmaalka in lagu dhejiyo sumadaha dhalada dhalada ah. Xabagaha xoolaha waxaa dhaqan ahaan loo isticmaali jiray buugaagta la xidho, ku biirista alwaaxa, iyo meelo kale oo badanimada laakiin hadda waxaa inta badan beddelay xabagta macmalka ah marka laga reebo codsiyada gaarka ah sida soo-saaridda iyo dayactirka qalabka muusigga ee xadhkaha leh. Albumen-ka laga soosaaray qaybta borotiinka ee dhiigga ayaa waxaa lagu isticmaali jiray warshadaha plywood. Masonite, oo ah alwaax adag, ayaa asal ahaan lagu xidhay iyadoo la adeegsanayo lignin alwaax dabiici ah, in kasta oo inta badan looxyada casriga ah ee Particle board-ka sida MDF ay isticmaalaan resins-ka kulaylka ku adkaada ee macmalka ah.
==== Macmal ah ====
Xabagaha macmalka ah waxaa laga sameeyaa xeryahooda dabiiciga ah.<ref>{{cite journal | last1=Mantanis | first1=George I. | last2=Athanassiadou | first2=Eleftheria Th. | last3=Barbu | first3=Marius C. | last4=Wijnendaele | first4=Kris | author1-link=George Mantanis |title=Adhesive systems used in the European particleboard, MDF and OSB industries | journal=Wood Material Science & Engineering | volume=13 | issue=2 | date=2018-03-15 | issn=1748-0272 | doi=10.1080/17480272.2017.1396622 | pages=104–116 }}</ref> Intooda badani waxay ku saleysan yihiin elastomers, thermoplastics, emulsions, iyo thermosets. Tusaalooyinka xabagaha kulaylka ku adkaada waa: epoxy, polyurethane, cyanoacrylate iyo acrylic polymers. Xabagta macmalka ah ee ugu horreysay ee ganacsi ahaan loo soo saaro waxay ahayd Karlsons Klister 1920-meeyadii.<ref>{{cite web| url = http://www.nyteknik.se/nyheter/innovation/article3208149.ece| title = Ny Teknik: Sverige fastnade tack vare åsnan| access-date = 15 August 2011}}</ref>
== Codsiga ==
Qalabka lagu mariyo xabagaha kala duwan waxaa loo qaabeeyey si waafaqsan xabagta la isticmaalayo iyo cabbirka aagga ay tahay in xabagta lagu mariyo. Xabagta waxaa lagu mariyaa mid ka mid ah ama labada shay ee la isku xidhayo. Cadadku waa la simaa waxaana la saaraa cadaadis si loogu caawiyo dhejinta isla markaana laga saaro xabagta xumbooyinka hawada.
Hababka caadiga ah ee lagu mariyo xabagta waxaa ka mid ah burushyada, rollers, iyadoo la isticmaalayo filimada ama xabadaha, qoryaha buufinta iyo qoryaha codsiga (tusaale, qoriga caulk). Dhammaan kuwan waxaa loo isticmaali karaa si gacmeed ah ama si otomaatig ah qayb uga ah mashiinka.
==Tixraac==
{{Reflist}}
k4p3i9jko58yq516wamli0uprsx3hxp
Module:Location map
828
19923
309248
281496
2026-09-23T16:01:15Z
Isma4l
41797
Cusboonaysiin
309248
Scribunto
text/plain
require('strict')
local p = {}
local getArgs = require('Module:Arguments').getArgs
local function round(n, decimals)
local pow = 10^(decimals or 0)
return math.floor(n * pow + 0.5) / pow
end
function p.getMapParams(map, frame)
if not map then
error('The name of the location map definition to use must be specified', 2)
end
local moduletitle = mw.title.new('Module:Location map/data/' .. map)
if not moduletitle then
error(string.format('%q is not a valid name for a location map definition', map), 2)
elseif moduletitle.exists then
local mapData = mw.loadData('Module:Location map/data/' .. map)
return function(name, params)
if name == nil then
return 'Module:Location map/data/' .. map
elseif mapData[name] == nil then
return ''
elseif params then
return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain()
else
return mapData[name]
end
end
else
error('Unable to find the specified location map definition: "Module:Location map/data/' .. map .. '" does not exist', 2)
end
end
function p.data(frame, args, map)
if not args then
args = getArgs(frame, {frameOnly = true})
end
if not map then
map = p.getMapParams(args[1], frame)
end
local params = {}
for k,v in ipairs(args) do
if k > 2 then
params[k-2] = v
end
end
return map(args[2], #params ~= 0 and params)
end
local hemisphereMultipliers = {
longitude = { W = -1, w = -1, E = 1, e = 1 },
latitude = { S = -1, s = -1, N = 1, n = 1 }
}
local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction)
if decimal then
if degrees then
error('Decimal and DMS degrees cannot both be provided for ' .. direction, 2)
elseif minutes then
error('Minutes can only be provided with DMS degrees for ' .. direction, 2)
elseif seconds then
error('Seconds can only be provided with DMS degrees for ' .. direction, 2)
elseif hemisphere then
error('A hemisphere can only be provided with DMS degrees for ' .. direction, 2)
end
local retval = tonumber(decimal)
if retval then
return retval
end
error('The value "' .. decimal .. '" provided for ' .. direction .. ' is not valid', 2)
elseif seconds and not minutes then
error('Seconds were provided for ' .. direction .. ' without minutes also being provided', 2)
elseif not degrees then
if minutes then
error('Minutes were provided for ' .. direction .. ' without degrees also being provided', 2)
elseif hemisphere then
error('A hemisphere was provided for ' .. direction .. ' without degrees also being provided', 2)
end
return nil
end
decimal = tonumber(degrees)
if not decimal then
error('The degree value "' .. degrees .. '" provided for ' .. direction .. ' is not valid', 2)
elseif minutes and not tonumber(minutes) then
error('The minute value "' .. minutes .. '" provided for ' .. direction .. ' is not valid', 2)
elseif seconds and not tonumber(seconds) then
error('The second value "' .. seconds .. '" provided for ' .. direction .. ' is not valid', 2)
end
decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600
if hemisphere then
local multiplier = hemisphereMultipliers[direction][hemisphere]
if not multiplier then
error('The hemisphere "' .. hemisphere .. '" provided for ' .. direction .. ' is not valid', 2)
end
decimal = decimal * multiplier
end
return decimal
end
-- Finds a parameter in a transclusion of {{Coord}}.
local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign
local lat, long = mw.ustring.match(coord,'<span class="p%-latitude latitude">([^<]+)</span><span class="p%-longitude longitude">([^<]+)</span>')
if lat then
return tonumber(para == 'longitude' and long or lat)
end
local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NS] %-?[%.%d]+°[EW]') or '', '[ °]')
if para == 'longitude' then result = {result[3], result[4]} end
if not tonumber(result[1]) or not result[2] then
mw.log('Malformed coordinates value')
mw.logObject(para, 'para')
mw.logObject(coord, 'coord')
return error('Malformed coordinates value', 2)
end
return tonumber(result[1]) * hemisphereMultipliers[para][result[2]]
end
-- effectively make removeBlanks false for caption and maplink, and true for everything else
-- if useWikidata is present but blank, convert it to false instead of nil
-- p.top, p.bottom, and their callers need to use this
function p.valueFunc(key, value)
if value then
value = mw.text.trim(value)
end
if value ~= '' or key == 'caption' or key == 'maplink' then
return value
elseif key == 'useWikidata' then
return false
end
end
local function getContainerImage(args, map)
if args.AlternativeMap then
return args.AlternativeMap
elseif args.relief then
local digits = mw.ustring.match(args.relief,'^[1-9][0-9]?$') -- image1 to image99
if digits then
local imageDigits = map('image' .. digits)
if imageDigits ~= '' then return imageDigits end
end
local yesNo = require('Module:Yesno')
if yesNo(args.relief,true) then
local image1 = map('image1')
if image1 ~= '' then return image1 end
end
end
return map('image')
end
function p.top(frame, args, map)
if not args then
args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc})
end
if not map then
map = p.getMapParams(args[1], frame)
end
local width
local default_as_number = tonumber(mw.ustring.match(tostring(args.default_width),"%d*"))
if not args.width then
width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1))
elseif mw.ustring.sub(args.width, -2) == 'px' then
width = mw.ustring.sub(args.width, 1, -3)
else
width = args.width
end
local width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0;
if width_as_number == 0 then
-- check to see if width is junk. If it is, then use default calculation
width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1))
width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0;
end
if args.max_width ~= "" and args.max_width ~= nil then
-- check to see if width bigger than max_width
local max_as_number = tonumber(mw.ustring.match(args.max_width,"%d*")) or 0;
if width_as_number>max_as_number and max_as_number>0 then
width = args.max_width;
end
end
local retval = frame:extensionTag{name = 'templatestyles', args = {src = 'Module:Location map/styles.css'}}
if args.float == 'center' then
retval = retval .. '<div class="center">'
end
if args.caption and args.caption ~= '' and args.border ~= 'infobox' then
retval = retval .. '<div class="locmap noresize thumb '
if args.float == '"left"' or args.float == 'left' then
retval = retval .. 'floatleft'
elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' then
retval = retval .. 'tnone'
else
retval = retval .. 'floatright'
end
retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px'
if args.border == 'none' then
retval = retval .. ';border:none'
elseif args.border then
retval = retval .. ';border-color:' .. args.border
end
retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. (args.border ~= 'none' and ';border:1px solid lightgray">' or '">')
else
retval = retval .. '<div class="locmap" style="width:' .. width .. 'px;'
if args.float == '"left"' or args.float == 'left' then
retval = retval .. 'float:left;clear:left'
elseif args.float == '"center"' or args.float == 'center' then
retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto'
elseif args.float == '"none"' or args.float == 'none' then
retval = retval .. 'float:none;clear:none'
else
retval = retval .. 'float:right;clear:right'
end
retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">'
end
local image = getContainerImage(args, map)
local currentTitle = mw.title.getCurrentTitle()
retval = string.format(
'%s[[File:%s|%spx|%s%s|class=notpageimage noviewer]]',
retval,
image,
width,
args.alt or ((args.label or currentTitle.text) .. ' is located in ' .. map('name')),
args.maplink and ('|link=' .. args.maplink) or ''
)
if args.caption and args.caption ~= '' then
if (currentTitle.namespace == 0) and mw.ustring.find(args.caption, '##') then
retval = retval .. '[[Category:Pages using location map with a double number sign in the caption]]'
end
end
if args.overlay_image then
return retval .. '<div style="position:absolute;top:0;left:0">[[File:' .. args.overlay_image .. '|' .. width .. 'px|class=notpageimage noviewer]]</div>'
else
return retval
end
end
function p.bottom(frame, args, map)
if not args then
args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc})
end
if not map then
map = p.getMapParams(args[1], frame)
end
local retval = '</div>'
local currentTitle = mw.title.getCurrentTitle()
if not args.caption or args.border == 'infobox' then
if args.border then
retval = retval .. '<div style="padding-top:0.2em">'
else
retval = retval .. '<div style="font-size:91%;padding-top:3px">'
end
retval = retval
.. (args.caption or (args.label or currentTitle.text) .. ' (' .. map('name') .. ')')
.. '</div>'
elseif args.caption ~= '' then
-- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image
retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:File:' .. getContainerImage(args, map) .. '| ]]</div>' .. args.caption .. '</div>'
end
if args.switcherLabel then
retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>'
elseif args.autoSwitcherLabel then
retval = retval .. '<span class="switcher-label" style="display:none">Show map of ' .. map('name') .. '</span>'
end
retval = retval .. '</div></div>'
if args.caption_undefined then
mw.log('Removed parameter caption_undefined used.')
local parent = frame:getParent()
if parent then
mw.log('Parent is ' .. parent:getTitle())
end
mw.logObject(args, 'args')
if currentTitle.namespace == 0 then
retval = retval .. '[[Category:Location maps with removed parameters|caption_undefined]]'
end
end
if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then
mw.log('Removed parameter used in map definition ' .. map())
if currentTitle.namespace == 0 then
local key = (map('skew') ~= '' and 'skew' or '') ..
(map('lat_skew') ~= '' and 'lat_skew' or '') ..
(map('crosses180') ~= '' and 'crosses180' or '') ..
(map('type') ~= '' and 'type' or '')
retval = retval .. '[[Category:Location maps with removed parameters|' .. key .. ' ]]'
end
end
if string.find(map('name'), '|', 1, true) then
mw.log('Pipe used in name of map definition ' .. map())
if currentTitle.namespace == 0 then
retval = retval .. '[[Category:Location maps with a name containing a pipe]]'
end
end
if args.float == 'center' then
retval = retval .. '</div>'
end
return retval
end
local function markOuterDiv(x, y, imageDiv, labelDiv, label_size)
return mw.html.create('div')
:addClass('od')
:addClass('notheme') -- T236137
:cssText('top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%;font-size:' .. label_size .. '%')
:node(imageDiv)
:node(labelDiv)
end
local function markImageDiv(mark, marksize, label, link, alt, title)
local builder = mw.html.create('div')
:addClass('id')
:cssText('left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px')
:attr('title', title)
if marksize ~= 0 then
builder:wikitext(string.format(
'[[File:%s|%dx%dpx|%s|link=%s%s|class=notpageimage noviewer]]',
mark,
marksize,
marksize,
label,
link,
alt and ('|alt=' .. alt) or ''
))
end
return builder
end
local function markLabelDiv(label, label_size, label_width, position, background, x, marksize)
if tonumber(label_size) == 0 then
return mw.html.create('div'):addClass('l0'):wikitext(label)
end
local builder = mw.html.create('div')
:cssText('width:' .. label_width .. 'em')
local distance = round(marksize / 2 + 1)
if position == 'top' then -- specified top
builder:addClass('pv'):cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em')
elseif position == 'bottom' then -- specified bottom
builder:addClass('pv'):cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em')
elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left
builder:addClass('pl'):cssText('right:' .. distance .. 'px')
else -- specified right or autodetected to right
builder:addClass('pr'):cssText('left:' .. distance .. 'px')
end
builder = builder:tag('div')
:wikitext(label)
if background then
builder:cssText('background-color:' .. background)
end
return builder:done()
end
local function getX(longitude, left, right)
local width = (right - left) % 360
if width == 0 then
width = 360
end
local distanceFromLeft = (longitude - left) % 360
-- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter
if distanceFromLeft - width / 2 >= 180 then
distanceFromLeft = distanceFromLeft - 360
end
return 100 * distanceFromLeft / width
end
local function getY(latitude, top, bottom)
return 100 * (top - latitude) / (top - bottom)
end
function p.mark(frame, args, map)
if not args then
args = getArgs(frame, {wrappers = 'Template:Location map~'})
end
local mapnames = {}
if not map then
if args[1] then
map = {}
for mapname in mw.text.gsplit(args[1], '#', true) do
map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame)
mapnames[#mapnames + 1] = mapname
end
if #map == 1 then map = map[1] end
else
map = p.getMapParams('World', frame)
args[1] = 'World'
end
end
if type(map) == 'table' then
local outputs = {}
local oldargs = args[1]
for k,v in ipairs(map) do
args[1] = mapnames[k]
outputs[k] = tostring(p.mark(frame, args, v))
end
args[1] = oldargs
return table.concat(outputs, '#PlaceList#') .. '#PlaceList#'
end
local x, y, longitude, latitude
longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude')
latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude')
if args.excludefrom then
-- If this mark is to be excluded from certain maps entirely (useful in the context of multiple maps)
for exclusionmap in mw.text.gsplit(args.excludefrom, '#', true) do
-- Check if this map is excluded. If so, return an empty string.
if args[1] == exclusionmap then
return ''
end
end
end
local builder = mw.html.create()
local currentTitle = mw.title.getCurrentTitle()
if args.coordinates then
-- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]]
-- if longitude or latitude then
-- error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided')
-- end
longitude = coord2text('longitude', args.coordinates)
latitude = coord2text('latitude', args.coordinates)
elseif not longitude and not latitude and args.useWikidata then
-- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't.
local entity = mw.wikibase.getEntity()
if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then
local value = entity.claims.P625[1].mainsnak.datavalue.value
longitude, latitude = value.longitude, value.latitude
end
if args.link and (currentTitle.namespace == 0) then
builder:wikitext('[[Category:Location maps with linked markers with coordinates from Wikidata]]')
end
end
if not longitude then
error('No value was provided for longitude')
elseif not latitude then
error('No value was provided for latitude')
end
if currentTitle.namespace > 0 then
if (not args.lon_deg) ~= (not args.lat_deg) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Degrees]]')
elseif (not args.lon_min) ~= (not args.lat_min) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Minutes]]')
elseif (not args.lon_sec) ~= (not args.lat_sec) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Seconds]]')
elseif (not args.lon_dir) ~= (not args.lat_dir) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Hemisphere]]')
elseif (not args.long) ~= (not args.lat) then
builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Decimal]]')
end
end
if ((tonumber(args.lat_deg) or 0) < 0) and ((tonumber(args.lat_min) or 0) ~= 0 or (tonumber(args.lat_sec) or 0) ~= 0 or (args.lat_dir and args.lat_dir ~='')) then
builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]')
end
if ((tonumber(args.lon_deg) or 0) < 0) and ((tonumber(args.lon_min) or 0) ~= 0 or (tonumber(args.lon_sec) or 0) ~= 0 or (args.lon_dir and args.lon_dir ~= '')) then
builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]')
end
if (((tonumber(args.lat_min) or 0) < 0) or ((tonumber(args.lat_sec) or 0) < 0)) then
builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]')
end
if (((tonumber(args.lon_min) or 0) < 0) or ((tonumber(args.lon_sec) or 0) < 0)) then
builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]')
end
if args.skew or args.lon_shift or args.markhigh then
mw.log('Removed parameter used in invocation.')
local parent = frame:getParent()
if parent then
mw.log('Parent is ' .. parent:getTitle())
end
mw.logObject(args, 'args')
if currentTitle.namespace == 0 then
local key = (args.skew and 'skew' or '') ..
(args.lon_shift and 'lon_shift' or '') ..
(args.markhigh and 'markhigh' or '')
builder:wikitext('[[Category:Location maps with removed parameters|' .. key ..' ]]')
end
end
if map('x') ~= '' then
x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude })))
else
x = tonumber(getX(longitude, map('left'), map('right')))
end
if map('y') ~= '' then
y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude })))
else
y = tonumber(getY(latitude, map('top'), map('bottom')))
end
if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then
mw.log('Mark placed outside map boundaries without outside flag set. x = ' .. x .. ', y = ' .. y)
local parent = frame:getParent()
if parent then
mw.log('Parent is ' .. parent:getTitle())
end
mw.logObject(args, 'args')
if currentTitle.namespace == 0 then
local key = currentTitle.prefixedText
builder:wikitext('[[Category:Location maps with marks outside map and outside parameter not set|' .. key .. ' ]]')
end
end
local mark = args.mark or map('mark')
if mark == '' then
mark = 'Red pog.svg'
end
local marksize = tonumber(args.marksize) or tonumber(map('marksize')) or 8
local imageDiv = markImageDiv(mark, marksize, args.label or mw.title.getCurrentTitle().text, args.link or '', args.alt, args[2])
local label_size = args.label_size or 91
local labelDiv
if args.label and args.position ~= 'none' then
labelDiv = markLabelDiv(args.label, label_size, args.label_width or 6, args.position, args.background, x, marksize)
end
return builder:node(markOuterDiv(x, y, imageDiv, labelDiv, label_size))
end
local function switcherSeparate(s)
if s == nil then return {} end
local retval = {}
for i in string.gmatch(s .. '#', '([^#]*)#') do
i = mw.text.trim(i)
retval[#retval + 1] = (i ~= '' and i)
end
return retval
end
function p.infobox_pushpin_map(frame)
--This function is designed to be invoked from an infobox template
--* Some parameters (generally starting with "pushpin_") are meant to be exposed as parameters
-- in the outer infobox, settable by editors
--* Others are meant to be "hidden" (e.g., only set inside the infobox template code)
-- First get the combined arguments from both parent and invocation frame
local raw_args = getArgs(frame,{parentFirst=true})
--If no map is supplied, return.
if not raw_args['pushpin_map'] then
return
end
-- Now get arguments from just the invocation frame
local frame_args = getArgs(frame,{frameOnly=true})
-- parsed_args will have the resulting merged parameters
local parsed_args = {}
-- Default to using wikidata coodinates if no other coordiantes supplied.
if raw_args.useWikidata == nil then
parsed_args.useWikidata = true
else
parsed_args.useWikidata = raw_args.useWikidata
end
-- Parse the arguments
parsed_args[1] = raw_args['pushpin_map']
parsed_args.float = frame_args.float or 'center'
parsed_args.border = frame_args.border or 'infobox'
parsed_args.default_width = frame_args.default_width
parsed_args.max_width = frame_args.max_width
parsed_args.coordinates = raw_args['coordinates']
parsed_args.caption = raw_args['pushpin_caption']
parsed_args.relief = raw_args['pushpin_relief']
parsed_args.label = raw_args['pushpin_label']
parsed_args.label_size = raw_args['pushpin_label_size']
parsed_args.position = raw_args['pushpin_label_position']
parsed_args.mark = raw_args['pushpin_mark']
parsed_args.marksize = raw_args['pushpin_mark_size']
parsed_args.alt = raw_args['pushpin_alt']
parsed_args.background = raw_args['pushpin_background']
parsed_args.width = raw_args['pushpin_map_size']
local map = {}
local caption_list = {}
for mapname in string.gmatch(parsed_args[1], '[^#]+') do
map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame)
end
if parsed_args['caption'] then
for caption in mw.text.gsplit(parsed_args['caption'], '##', true) do
caption_list[#caption_list + 1] = caption
end
end
if #map == 1 then
map = map[1]
if not parsed_args.caption then
parsed_args.caption = 'Location within ' .. map('name')
end
end
if type(map) == 'table' then
mw.log('----')
mw.logObject(map)
if #caption_list > #map then
error(string.format('%d captions were provided, but only %d maps were provided', #caption_list, #map))
elseif not parsed_args.caption then
-- Set a default caption for each of the multiple maps
for i=1, #map do
caption_list[#caption_list + 1] = 'Location within '.. map[i]('name')
end
end
local outputs = {}
parsed_args.autoSwitcherLabel = true
for k,v in ipairs(map) do
parsed_args.caption = caption_list[k]
outputs[k] = p.main(frame, parsed_args, v)
end
return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>'
else
return p.top(frame, parsed_args, map) .. tostring( p.mark(frame, parsed_args, map) ) .. p.bottom(frame, parsed_args, map)
end
end
function p.main(frame, args, map)
local caption_list = {}
if not args then
args = getArgs(frame, {wrappers = 'Template:Location map', valueFunc = p.valueFunc})
end
if args.useWikidata == nil then
args.useWikidata = true
end
if not map then
if args[1] then
map = {}
for mapname in string.gmatch(args[1], '[^#]+') do
map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame)
end
if args['caption'] then
if args['caption'] == "" then
while #caption_list < #map do
caption_list[#caption_list + 1] = args['caption']
end
else
for caption in mw.text.gsplit(args['caption'], '##', true) do
caption_list[#caption_list + 1] = caption
end
end
end
if #map == 1 then map = map[1] end
else
map = p.getMapParams('World', frame)
end
end
if type(map) == 'table' then
local altmaps = switcherSeparate(args.AlternativeMap)
if #altmaps > #map then
error(string.format('%d AlternativeMaps were provided, but only %d maps were provided', #altmaps, #map))
end
local overlays = switcherSeparate(args.overlay_image)
if #overlays > #map then
error(string.format('%d overlay_images were provided, but only %d maps were provided', #overlays, #map))
end
if #caption_list > #map then
error(string.format('%d captions were provided, but only %d maps were provided', #caption_list, #map))
end
local outputs = {}
args.autoSwitcherLabel = true
for k,v in ipairs(map) do
args.AlternativeMap = altmaps[k]
args.overlay_image = overlays[k]
args.caption = caption_list[k]
outputs[k] = p.main(frame, args, v)
end
return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>'
else
return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map)
end
end
return p
3pqbnkg8pemwulwnvka0szt6hqc0tii
Template:Infobox gasiirad
10
20191
309250
170602
2026-09-23T16:04:02Z
Isma4l
41797
/* */
309250
wikitext
text/x-wiki
{{Infobox
| child = {{{embed|}}}
| bodyclass = ib-islands vcard
| templatestyles = Template:Infobox islands/styles.css
| titleclass = fn org
| title = {{#ifeq:{{{embed|}}}|yes|{{#if:{{{name|}}}|<div class="ib-islands-title-embed">{{{name|}}}</div>|}}|{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}}}
| above = {{#ifeq:{{{disputed|}}}|yes|{{#if:{{{type|}}}|Khilaaf dhuleed Disputed {{{type}}}|Khilaaf dhuleed Jasiirad Disputed island}}{{#ifeq:{{{plural}}}|yes|s<br>|<br>}}}}<!--
-->{{#if:{{{local_name|}}}<!--
-->|<div class="nickname">{{{local_name}}}</div><!--
-->|{{#if:{{{native_name|}}}<!--
-->|<div class="ib-islands-native">{{#if:{{{native_name_link|}}}|{{{native_name_link|}}} Magaca hooyo|Magaca hooyo}}: <div class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang|}}}}}">{{{native_name|}}}</div></div><!--
-->}}<!--
-->}}<!--
-->{{#if:{{{nickname|}}}|<div class="ib-islands-nick">Naanaysta: {{{nickname|}}}</div>}}
| autoheaders = y
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright=1.16|alt={{{image_alt|}}}}}
| caption = {{{image_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=frameless|upright=1.16|alt={{{map_alt|}}}}}
| caption2 = {{{map_caption|}}}
| image3 = {{#invoke:Location map|infobox_pushpin_map
| default_width = 260
}}
| image4 = {{#invoke:Infobox mapframe
| auto
| onByDefault = {{#if:{{{pushpin_map|}}}{{{image_map|}}}|no|yes}}
| mapframe-zoom = 7
| mapframe-marker-color = #a8bdec
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Khariidadda interactive ee {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| label1 = Magacyada kale{{pluralize from text|{{{other_names|}}}|plural=s}}
| data1 = {{{other_names|}}}
| label2 = Asalka erayga
| data2 = {{{etymology|}}}
| header3 = {{#ifeq:{{{embed|}}}|yes||Juquraafi}}
| label4 = Goobta
| data4 = {{{location|}}}
| label5 = Iskudraarka
| data5 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates}}}|type:isle}}}}
| label6 = OS grid reference Ordnance Survey National Grid
| data6 = {{#if:{{{grid_reference|}}}| {{gbmappingsmall|{{{grid_reference|}}}|25|{{{grid_reference|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }} }}
| label7 = Nooca Island Types of islands
| data7 = {{{island_type|}}}
| label8 = Jasiiradaha isku xiran Archipelago
| class8 = note
| data8 = {{{archipelago|}}}
| label9 = {{nowrap|La deris ah}}
| data9 = {{{waterbody|}}}
| label10 = Wadarta jasiiradaha
| data10 = {{{total_islands|}}}
| label11 = Jasiiradaha waaweyn
| data11 = {{{major_islands|}}}
| label12 = Baaxadda
| data12 = {{Infobox islands/area| km2 = {{{area_km2|}}} | sqmi = {{{area_sqmi|}}} | m2 = {{{area_m2|}}} | sqft = {{{area_sqft|}}} | ha = {{{area_ha|}}} | acre = {{{area_acre|}}} }}{{{area_footnotes|}}}
| label13 = Kaalinta baaxadda List of islands by area
| data13 = {{{rank|}}}
| label14 = Dhererka
| data14 = {{Infobox islands/length | km = {{{length_km|}}} | mi = {{{length_mi|}}} | m = {{{length_m|}}} | ft = {{{length_ft|}}} }}{{{length_footnotes|}}}
| label15 = Ballaca
| data15 = {{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|{{convert<!--
-->|{{if empty|{{{width_min_km|}}}|{{{width_min_mi|}}}|{{{width_min_m|}}}|{{{width_min_ft|}}}}}<!--
-->|-<!--
-->|{{if empty|{{{width_max_km|}}}|{{{width_max_mi|}}}|{{{width_max_m|}}}|{{{width_max_ft|}}}}}<!--
-->|{{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->|km<!--
-->|{{#if:{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->|mi<!--
-->|{{#if:{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->|m<!--
-->|{{#if:{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|ft}}<!--
-->}}<!--
-->}}<!--
-->}}<!--
-->|abbr=on}}<!--
-->|{{Infobox islands/length | km = {{{width_km|}}} | mi = {{{width_mi|}}} | m = {{{width_m|}}} | ft = {{{width_ft|}}} }}<!--
-->}}{{{width_footnotes|}}}
| label16 = Xeebta
| data16 = {{Infobox islands/length | km = {{{coastline_km|}}} | mi = {{{coastline_mi|}}} | m = {{{coastline_m|}}} | ft = {{{coastline_ft|}}} }}{{{coastline_footnotes|}}}
| label17 = Meesha ugu sarreysa sareynta
| data17 = {{Infobox islands/length | m = {{{elevation_m|}}} | ft = {{{elevation_ft|}}} }}{{{elevation_footnotes|}}}
| label18 = Meesha ugu sarreysa barta
| data18 = {{{highest_mount|}}}
<!-- end geography -->
| header22 = Maamulka
| data23 = {{#switch:{{{country|}}}|=
|None|none={{#if:{{{treaty_system|}}}||<div>'''{{{country}}}'''</div>}}
|#default=<div>'''{{{country}}}'''</div>
}}
| data24 = {{#if:{{{treaty_system|}}}|Waxaa maamula heshiiska {{{treaty_system|}}}}}
| header25 = _BLANK_
| label26 = {{longitem|{{{country_admin_divisions_title|}}}}}
| data26 = {{{country_admin_divisions|}}}
| label27 = {{longitem|{{{country_admin_divisions_title_1|}}}}}
| data27 = {{{country_admin_divisions_1|}}}
| label28 = {{longitem|{{{country_admin_divisions_title_2|}}}}}
| data28 = {{{country_admin_divisions_2|}}}
| label29 = {{longitem|{{{country_admin_divisions_title_3|}}}}}
| data29 = {{{country_admin_divisions_3|}}}
| label30 = {{longitem|{{{country_admin_divisions_title_4|}}}}}
| data30 = {{{country_admin_divisions_4|}}}
| label31 = Caasimadda magaalada
| data31 = {{#if: {{{country_capital_and_largest_city|}}}||{{{country_capital|}}}}}
| label32 = {{longitem|Ugu weyn {{if empty|{{{country_largest_city_type|}}}|deegaanka}}}}
| data32 = {{#if: {{{country_capital_and_largest_city|}}}||{{#if: {{{country_largest_city|}}}|{{{country_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}}}
| label33 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country_largest_city_type|}}}|magaalada}}}}
| data33 = {{#if: {{{country_capital_and_largest_city|}}}|{{{country_capital_and_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}
| label34 = {{longitem|{{{country_leader_title|}}}}}
| data34 = {{{country_leader_name|}}}
| label35 = Baaxadda la daboolay
| data35 = {{Infobox islands/area| km2 = {{{country_area_km2|}}} | sqmi = {{{country_area_sqmi|}}} | m2 = {{{country_area_m2|}}} | sqft = {{{country_area_sqft|}}} | ha = {{{country_area_ha|}}} | acre = {{{country_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country_area|}}}
| header36 = {{#ifeq:{{{disputed|}}}|yes|Waxaa dalbanaya}}
| data37 = {{#if:{{{country1|}}}|{{#ifeq:{{{disputed|}}}|yes|<div class="ib-islands-country2">|<div class="ib-islands-country">}}{{{country1|}}}</div>}}
| label38 = {{longitem|{{{country1_admin_divisions_title|}}}}}
| data38 = {{{country1_admin_divisions|}}}
| label39 = {{longitem|{{{country1_admin_divisions_title_1|}}}}}
| data39 = {{{country1_admin_divisions_1|}}}
| label40 = {{longitem|{{{country1_admin_divisions_title_2|}}}}}
| data40 = {{{country1_admin_divisions_2|}}}
| label41 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country1_largest_city_type|}}}|city}}|city|magaalada}}}}
| data41 = {{#if: {{{country1_capital_and_largest_city|}}}||{{{country1_capital|}}}}}
| label42 = {{longitem|Ugu weyn {{if empty|{{{country1_largest_city_type|}}}|deegaanka}}}}
| data42 = {{#if: {{{country1_capital_and_largest_city|}}}||{{#if: {{{country1_largest_city|}}}|{{{country1_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}}}
| label43 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country1_largest_city_type|}}}|city}}}}
| data43 = {{#if: {{{country1_capital_and_largest_city|}}}|{{{country1_capital_and_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}
| label44 = {{longitem|{{{country1_leader_title|}}}}}
| data44 = {{{country1_leader_name|}}}
| label45 = Baaxadda la daboolay
| data45 = {{Infobox islands/area| km2 = {{{country1_area_km2|}}} | sqmi = {{{country1_area_sqmi|}}} | m2 = {{{country1_area_m2|}}} | sqft = {{{country1_area_sqft|}}} | ha = {{{country1_area_ha|}}} | acre = {{{country1_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country1_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country1_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country1_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country1_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country1_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country1_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country1_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country1_area|}}}
| data54 = {{#if:{{{country2|}}}|<div class="ib-islands-country">{{{country2|}}}</div>}}
| label55 = {{longitem|{{{country2_admin_divisions_title|}}}}}
| data55 = {{{country2_admin_divisions|}}}
| label56 = {{longitem|{{{country2_admin_divisions_title_1|}}}}}
| data56 = {{{country2_admin_divisions_1|}}}
| label57 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country2_largest_city_type|}}}|city}}|city|magaalada}}}}
| data57 = {{#if: {{{country2_capital_and_largest_city|}}}||{{{country2_capital|}}}}}
| label58 = {{longitem|Ugu weyn {{if empty|{{{country2_largest_city_type|}}}|deegaanka}}}}
| data58 = {{#if: {{{country2_capital_and_largest_city|}}}||{{#if: {{{country2_largest_city|}}}|{{{country2_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}}}
| label59 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country2_largest_city_type|}}}|city}}}}
| data59 = {{#if: {{{country2_capital_and_largest_city|}}}|{{{country2_capital_and_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}
| label60 = {{longitem|{{{country2_leader_title|}}}}}
| data60 = {{{country2_leader_name|}}}
| label61 = Baaxadda la daboolay
| data61 = {{Infobox islands/area| km2 = {{{country2_area_km2|}}} | sqmi = {{{country2_area_sqmi|}}} | m2 = {{{country2_area_m2|}}} | sqft = {{{country2_area_sqft|}}} | ha = {{{country2_area_ha|}}} | acre = {{{country2_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country2_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country2_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country2_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country2_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country2_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country2_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country2_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country2_area|}}}
| data62 = {{#if:{{{country3|}}}|<div class="ib-islands-country">{{{country3|}}}</div>}}
| label63 = {{{country3_admin_divisions_title|}}}
| data63 = {{{country3_admin_divisions|}}}
| label64 = {{{country3_admin_divisions_title_1|}}}
| data64 = {{{country3_admin_divisions_1|}}}
| label65 = Caasimadda {{#ifeq: {{if empty|{{{country3_largest_city_type|}}}|city}}|city|magaalada}}
| data65 = {{#if: {{{country3_capital_and_largest_city|}}}||{{{country3_capital|}}}}}
| label66 = Ugu weyn {{if empty|{{{country3_largest_city_type|}}}|deegaanka}}
| data66 = {{#if: {{{country3_capital_and_largest_city|}}}||{{#if: {{{country3_largest_city|}}}|{{{country3_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}}}
| label67 = Caasimadda iyo tan ugu weyn {{if empty|{{{country3_largest_city_type|}}}|city}}
| data67 = {{#if: {{{country3_capital_and_largest_city|}}}|{{{country3_capital_and_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}
| label68 = {{{country3_leader_title|}}}
| data68 = {{{country3_leader_name|}}}
| label69 = Baaxadda la daboolay
| data69 = {{Infobox islands/area| km2 = {{{country3_area_km2|}}} | sqmi = {{{country3_area_sqmi|}}} | m2 = {{{country3_area_m2|}}} | sqft = {{{country3_area_sqft|}}} | ha = {{{country3_area_ha|}}} | acre = {{{country3_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country3_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country3_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country3_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country3_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country3_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country3_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country3_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country3_area|}}}
| data70 = {{#if:{{{country4|}}}|<div class="ib-islands-country">{{{country4|}}}</div>}}
| label71 = {{{country4_admin_divisions_title|}}}
| data71 = {{{country4_admin_divisions|}}}
| label72 = {{{country4_admin_divisions_title_1|}}}
| data72 = {{{country4_admin_divisions_1|}}}
| label73 = Caasimadda {{#ifeq: {{if empty|{{{country4_largest_city_type|}}}|city}}|city|magaalada}}
| data73 = {{#if: {{{country4_capital_and_largest_city|}}}||{{{country4_capital|}}}}}
| label74 = Ugu weyn {{if empty|{{{country4_largest_city_type|}}}|deegaanka}}
| data74 = {{#if: {{{country4_capital_and_largest_city|}}}||{{#if: {{{country4_largest_city|}}}|{{{country4_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}}}
| label75 = Caasimadda iyo tan ugu weyn {{if empty|{{{country4_largest_city_type|}}}|city}}
| data75 = {{#if: {{{country4_capital_and_largest_city|}}}|{{{country4_capital_and_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}
| label76 = {{{country4_leader_title|}}}
| data76 = {{{country4_leader_name|}}}
| label77 = Baaxadda la daboolay
| data77 = {{Infobox islands/area| km2 = {{{country4_area_km2|}}} | sqmi = {{{country4_area_sqmi|}}} | m2 = {{{country4_area_m2|}}} | sqft = {{{country4_area_sqft|}}} | ha = {{{country4_area_ha|}}} | acre = {{{country4_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country4_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country4_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country4_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country4_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country4_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country4_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country4_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country4_area|}}}
| data78 = {{#if:{{{country5|}}}|<div class="ib-islands-country">{{{country5|}}}</div>}}
| label79 = {{{country5_admin_divisions_title|}}}
| data79 = {{{country5_admin_divisions|}}}
| label80 = {{{country5_admin_divisions_title_1|}}}
| data80 = {{{country5_admin_divisions_1|}}}
| label81 = Caasimadda {{#ifeq: {{if empty|{{{country5_largest_city_type|}}}|city}}|city|magaalada}}
| data81 = {{#if: {{{country5_capital_and_largest_city|}}}||{{{country5_capital|}}}}}
| label82 = Ugu weyn {{if empty|{{{country5_largest_city_type|}}}|deegaanka}}
| data82 = {{#if: {{{country5_capital_and_largest_city|}}}||{{#if: {{{country5_largest_city|}}}|{{{country5_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}}}
| label83 = Caasimadda iyo tan ugu weyn {{if empty|{{{country5_largest_city_type|}}}|city}}
| data83 = {{#if: {{{country5_capital_and_largest_city|}}}|{{{country5_capital_and_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}
| label84 = {{{country5_leader_title|}}}
| data84 = {{{country5_leader_name|}}}
| label85 = Baaxadda la daboolay
| data85 = {{Infobox islands/area| km2 = {{{country5_area_km2|}}} | sqmi = {{{country5_area_sqmi|}}} | m2 = {{{country5_area_m2|}}} | sqft = {{{country5_area_sqft|}}} | ha = {{{country5_area_ha|}}} | acre = {{{country5_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country5_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country5_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country5_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country5_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country5_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country5_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country5_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country5_area|}}}
| data86 = {{#if:{{{country6|}}}|<div class="ib-islands-country">{{{country6|}}}</div>}}
| label87 = {{{country6_admin_divisions_title|}}}
| data87 = {{{country6_admin_divisions|}}}
| label88 = {{{country6_admin_divisions_title_1|}}}
| data88 = {{{country6_admin_divisions_1|}}}
| label89 = Caasimadda {{#ifeq: {{if empty|{{{country6_largest_city_type|}}}|city}}|city|magaalada}}
| data89 = {{#if: {{{country6_capital_and_largest_city|}}}||{{{country6_capital|}}}}}
| label90 = Ugu weyn {{if empty|{{{country6_largest_city_type|}}}|deegaanka}}
| data90 = {{#if: {{{country6_capital_and_largest_city|}}}||{{#if: {{{country6_largest_city|}}}|{{{country6_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}}}
| label91 = Caasimadda iyo tan ugu weyn {{if empty|{{{country6_largest_city_type|}}}|city}}
| data91 = {{#if: {{{country6_capital_and_largest_city|}}}|{{{country6_capital_and_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}
| label92 = {{{country6_leader_title|}}}
| data92 = {{{country6_leader_name|}}}
| label93 = Baaxadda la daboolay
| data93 = {{Infobox islands/area| km2 = {{{country6_area_km2|}}} | sqmi = {{{country6_area_sqmi|}}} | m2 = {{{country6_area_m2|}}} | sqft = {{{country6_area_sqft|}}} | ha = {{{country6_area_ha|}}} | acre = {{{country6_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country6_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country6_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country6_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country6_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country6_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country6_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country6_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country6_area|}}}
| data94 = {{#if:{{{country7|}}}|<div class="ib-islands-country">{{{country7|}}}</div>}}
| label95 = {{{country7_admin_divisions_title|}}}
| data95 = {{{country7_admin_divisions|}}}
| label96 = {{{country7_admin_divisions_title_1|}}}
| data96 = {{{country7_admin_divisions_1|}}}
| label97 = Caasimadda {{#ifeq: {{if empty|{{{country7_largest_city_type|}}}|city}}|city|magaalada}}
| data97 = {{#if: {{{country7_capital_and_largest_city|}}}||{{{country7_capital|}}}}}
| label98 = Ugu weyn {{if empty|{{{country7_largest_city_type|}}}|deegaanka}}
| data98 = {{#if: {{{country7_capital_and_largest_city|}}}||{{#if: {{{country7_largest_city|}}}|{{{country7_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}}}
| label99 = Caasimadda iyo tan ugu weyn {{if empty|{{{country7_largest_city_type|}}}|city}}
| data99 = {{#if: {{{country7_capital_and_largest_city|}}}|{{{country7_capital_and_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}
| label100 = {{{country7_leader_title|}}}
| data100 = {{{country7_leader_name|}}}
| label101 = Baaxadda la daboolay
| data101 = {{Infobox islands/area| km2 = {{{country7_area_km2|}}} | sqmi = {{{country7_area_sqmi|}}} | m2 = {{{country7_area_m2|}}} | sqft = {{{country7_area_sqft|}}} | ha = {{{country7_area_ha|}}} | acre = {{{country7_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country7_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country7_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country7_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country7_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country7_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country7_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country7_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country7_area|}}}
| data102 = {{#if:{{{country8|}}}|<div class="ib-islands-country">{{{country8|}}}</div>}}
| label103 = {{{country8_admin_divisions_title|}}}
| data103 = {{{country8_admin_divisions|}}}
| label104 = {{{country8_admin_divisions_title_1|}}}
| data104 = {{{country8_admin_divisions_1|}}}
| label105 = Caasimadda {{#ifeq: {{if empty|{{{country8_largest_city_type|}}}|city}}|city|magaalada}}
| data105 = {{#if: {{{country8_capital_and_largest_city|}}}||{{{country8_capital|}}}}}
| label106 = Ugu weyn {{if empty|{{{country8_largest_city_type|}}}|deegaanka}}
| data106 = {{#if: {{{country8_capital_and_largest_city|}}}||{{#if: {{{country8_largest_city|}}}|{{{country8_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}}}
| label107 = Caasimadda iyo tan ugu weyn {{if empty|{{{country8_largest_city_type|}}}|city}}
| data107 = {{#if: {{{country8_capital_and_largest_city|}}}|{{{country8_capital_and_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}
| label108 = {{{country8_leader_title|}}}
| data108 = {{{country8_leader_name|}}}
| label109 = Baaxadda la daboolay
| data109 = {{Infobox islands/area| km2 = {{{country8_area_km2|}}} | sqmi = {{{country8_area_sqmi|}}} | m2 = {{{country8_area_m2|}}} | sqft = {{{country8_area_sqft|}}} | ha = {{{country8_area_ha|}}} | acre = {{{country8_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country8_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country8_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country8_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country8_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country8_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country8_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country8_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country8_area|}}}
<!-- end administration -->
| header110 = Dadweynaha
| label111 = Qowmiyadda/Abtirsiinta
| data111 = {{{demonym|}}}
| label112 = Tirada dadka
| data112 = {{{population|}}} {{#if:{{{population_as_of|}}}|({{{population_as_of|}}})}}{{{population_footnotes|}}}
| label113 = Kaalinta dadka List of islands by population
| data113 = {{#if:{{{population_rank|}}}|{{{population_rank|}}} {{#if:{{{population_rank_max|}}}|inta u dhaxaysa out of {{{population_rank_max|}}} }} }}
| label114 = Cufnaanta dadka
| data114 = {{Infobox islands/density| km2 = {{{density_km2|}}}| sqmi = {{{density_sqmi|}}} }}{{{density_footnotes|}}}
| label115 = Kaalinta cufnaanta dadka List of islands by population density
| data115 = {{{density_rank|}}}
| label116 = Luqadaha
| data116 = {{{languages|}}}
| label117 = Qowmiyadaha
| data117 = {{{ethnic_groups|}}}
<!-- end demographics -->
| header118 = Macluumaad dheeraad ah
<!-- ***Time Zones*** -->
| label119 = {{#if:{{both|{{if empty|{{{timezone1|}}}|{{{timezone|}}}}}|{{{timezone2|}}}}}|Aagagga waqtiga Time zones|Aagga waqtiga Time zone}}
| data119 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{if empty|{{{timezone1|}}}|{{{timezone}}}}} {{#if:{{{utc_offset1|}}}{{{utc_offset|}}}|([[UTC{{if empty|{{{utc_offset1|}}}|{{{utc_offset}}}}}]])}}
| 2= {{#if:{{{timezone2|}}}|{{{timezone2}}} {{#if:{{{utc_offset2|}}}|([[UTC{{{utc_offset2}}}]])}} }} }}}}
| label120 = <span class="nowrap"> • Xagaaga Daylight saving time DST</span>
| data120 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{if empty|{{{timezone1_DST|}}}|{{{timezone_DST|}}}}} ([[UTC{{if empty|{{{utc_offset1_DST|}}}|{{{utc_offset_DST|}}}}}]])}}
| 2= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{#if:{{{timezone2_DST|}}}|{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST|}}}]])}} }}
}}}}
<!-- ***Area codes*** -->
| label121 = {{if empty|{{{postal_code_type|}}}|Koodka boostada}}
| data121 = {{{postal_code|}}}
| label122 = {{if empty|{{{area_code_type|}}}|Telephone numbering plan Koodka deegaankaArea code{{pluralize from text|{{{area_code|}}}|plural=s}}}}
| data122 = {{{area_code|}}}
| label123 = Diiwaangelinta gaadiidka Vehicle registration plate
| data123 = {{{registration_plate|}}}
| label124 = {{if empty|{{{iso_code_type|}}}|ISO 3166-2 ISO code}}
| data124 = {{{iso_code|}}}
| label125 = Bogga rasmiga ah
| data125 = {{{website|}}}
| data126 = {{{additional_info|}}}
| header127 = <nowiki />
| data128 = {{{misc|}}}
{{{module|}}}
| below = {{{footnotes|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|Category:Pages using infobox islands with unknown parameters _VALUE_ {{PAGENAME}}}}|preview=Page using Template:Infobox islands with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y|pushpin_map_args=y| additional_info | archipelago | area_acre | area_code | area_code_type | area_footnotes | area_ha | area_km2 | area_m2 | area_sqft | area_sqmi | coastline_footnotes | coastline_ft | coastline_km | coastline_m | coastline_mi | coordinates | country | country_admin_divisions | country_admin_divisions_1 | country_admin_divisions_2 | country_admin_divisions_3 | country_admin_divisions_4 | country_admin_divisions_title | country_admin_divisions_title_1 | country_admin_divisions_title_2 | country_admin_divisions_title_3 | country_admin_divisions_title_4 | country_area | country_area_acre | country_area_ha | country_area_km2 | country_area_m2 | country_area_sqft | country_area_sqmi | country_capital | country_capital_and_largest_city | country_largest_city | country_largest_city_population | country_largest_city_type | country_leader_name | country_leader_title | country1 | country1_admin_divisions | country1_admin_divisions_title | country1_area | country1_area_acre | country1_area_ha | country1_area_sqft | country1_area_sqmi | country1_capital | country1_capital_and_largest_city | country1_largest_city | country1_largest_city_population | country1_largest_city_type | country1_leader_name | country1_leader_title | country2 | country2_admin_divisions | country2_admin_divisions_title | country2_area | country2_area_acre | country2_area_ha | country2_area_sqft | country2_area_sqmi | country2_capital | country2_capital_and_largest_city | country2_largest_city | country2_largest_city_population | country2_largest_city_type | country2_leader_name | country2_leader_title | country3 | country3_admin_divisions | country3_admin_divisions_title | country3_area | country3_area_acre | country3_area_ha | country3_area_sqft | country3_area_sqmi | country3_capital | country3_capital_and_largest_city | country3_largest_city | country3_largest_city_population | country3_largest_city_type | country3_leader_name | country3_leader_title | country4 | country4_admin_divisions | country4_admin_divisions_title | country4_area | country4_area_acre | country4_area_ha | country4_area_sqft | country4_area_sqmi | country4_capital | country4_capital_and_largest_city | country4_largest_city | country4_largest_city_population | country4_largest_city_type | country4_leader_name | country4_leader_title | country5 | country5_admin_divisions | country5_admin_divisions_title | country5_area | country5_area_acre | country5_area_ha | country5_area_sqft | country5_area_sqmi | country5_capital | country5_capital_and_largest_city | country5_largest_city | country5_largest_city_population | country5_largest_city_type | country5_leader_name | country5_leader_title | country6 | country6_admin_divisions | country6_admin_divisions_title | country6_area | country6_area_acre | country6_area_ha | country6_area_sqft | country6_area_sqmi | country6_capital | country6_capital_and_largest_city | country6_largest_city | country6_largest_city_population | country6_largest_city_type | country6_leader_name | country6_leader_title | country7 | country7_admin_divisions | country7_admin_divisions_title | country7_area | country7_area_acre | country7_area_ha | country7_area_sqft | country7_area_sqmi | country7_capital | country7_capital_and_largest_city | country7_largest_city | country7_largest_city_population | country7_largest_city_type | country7_leader_name | country7_leader_title | country8 | country8_admin_divisions | country8_admin_divisions_title | country8_area | country8_area_acre | country8_area_ha | country8_area_sqft | country8_area_sqmi | country8_capital | country8_capital_and_largest_city | country8_largest_city | country8_largest_city_population | country8_largest_city_type | country8_leader_name | country8_leader_title | country1_admin_divisions_1 | country1_admin_divisions_2 | country1_admin_divisions_title_1 | country1_admin_divisions_title_2 | country1_area_km2 | country1_area_m2 | country2_admin_divisions_1 | country2_admin_divisions_title_1 | country2_area_km2 | country2_area_m2 | country3_admin_divisions_1 | country3_admin_divisions_title_1 | country3_area_km2 | country3_area_m2 | country4_admin_divisions_1 | country4_admin_divisions_title_1 | country4_area_km2 | country4_area_m2 | country5_admin_divisions_1 | country5_admin_divisions_title_1 | country5_area_km2 | country5_area_m2 | country6_admin_divisions_1 | country6_admin_divisions_title_1 | country6_area_km2 | country6_area_m2 | country7_admin_divisions_1 | country7_admin_divisions_title_1 | country7_area_km2 | country7_area_m2 | country8_admin_divisions_1 | country8_admin_divisions_title_1 | country8_area_km2 | country8_area_m2 | demonym | density_footnotes | density_km2 | density_rank | density_sqmi | disputed | elevation_footnotes | elevation_ft | elevation_m | embed | ethnic_groups | etymology | footnotes | grid_reference | highest_mount | image | image_alt | image_caption | image_map | image_size | island_type | iso_code | iso_code_type | languages | length_footnotes | length_ft | length_km | length_m | length_mi | local_name | location | major_islands | map_alt | map_caption | map_size | misc | module | name | native_name | native_name_lang | native_name_link | nickname | other_names | plural | population | population_as_of | population_footnotes | population_rank | population_rank_max | postal_code | postal_code_type | rank | registration_plate | timezone | timezone_DST | timezone1 | timezone1_DST | timezone2 | timezone2_DST | total_islands | treaty_system | type | utc_offset | utc_offset_DST | utc_offset1 | utc_offset1_DST | utc_offset2 | utc_offset2_DST | waterbody | website | width_footnotes | width_ft | width_km | width_m | width_max_ft | width_max_km | width_max_m | width_max_mi | width_mi | width_min_ft | width_min_km | width_min_m | width_min_mi }}{{#invoke:Check for conflicting parameters|check
| template = Template:Infobox islands
| cat = main otherCategory:Pages using infobox islands with conflicting parameters
| width_min_km; width_min_mi; width_min_m; width_min_ft
| width_max_km; width_max_mi; width_max_m; width_max_ft
| timezone1; timezone
| utc_offset1; utc_offset
| timezone1_DST; timezone_DST
| utc_offset1_DST; utc_offset_DST
}}<noinclude>
{{documentation}}
<!-- categories links go in /doc, not here -->
</noinclude>
hekiguwkjyhzcrvruv32dbzzc5qgwtf
309254
309250
2026-09-23T16:19:24Z
Isma4l
41797
/* */
309254
wikitext
text/x-wiki
{{Infobox
| child = {{{embed|}}}
| bodyclass = ib-islands vcard
| templatestyles = Template:Infobox islands/styles.css
| titleclass = fn org
| title = {{#ifeq:{{{embed|}}}|yes|{{#if:{{{name|}}}|<div class="ib-islands-title-embed">{{{name|}}}</div>|}}|{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}}}
| above = {{#ifeq:{{{disputed|}}}|yes|{{#if:{{{type|}}}|Khilaaf dhuleed Disputed {{{type}}}|Khilaaf dhuleed Jasiirad Disputed island}}{{#ifeq:{{{plural}}}|yes|s<br>|<br>}}}}<!--
-->{{#if:{{{local_name|}}}<!--
-->|<div class="nickname">{{{local_name}}}</div><!--
-->|{{#if:{{{native_name|}}}<!--
-->|<div class="ib-islands-native">{{#if:{{{native_name_link|}}}|{{{native_name_link|}}} Magaca hooyo|Magaca hooyo}}: <div class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang|}}}}}">{{{native_name|}}}</div></div><!--
-->}}<!--
-->}}<!--
-->{{#if:{{{nickname|}}}|<div class="ib-islands-nick">Naanaysta: {{{nickname|}}}</div>}}
| autoheaders = y
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright=1.16|alt={{{image_alt|}}}}}
| caption = {{{image_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=frameless|upright=1.16|alt={{{map_alt|}}}}}
| caption2 = {{{map_caption|}}}
| image3 = {{#invoke:Location map|infobox_pushpin_map
| default_width = 260
}}
| image4 = {{#invoke:Infobox mapframe
| auto
| onByDefault = {{#if:{{{pushpin_map|}}}{{{image_map|}}}|no|yes}}
| mapframe-zoom = 7
| mapframe-marker-color = #a8bdec
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Khariidadda interactive ee {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| label1 = Magacyada kale{{pluralize from text|{{{other_names|}}}|plural=s}}
| data1 = {{{other_names|}}}
| label2 = Asalka erayga
| data2 = {{{etymology|}}}
| header3 = {{#ifeq:{{{embed|}}}|yes||Juquraafi}}
| label4 = Goobta
| data4 = {{{location|}}}
| label5 = Isku daraarka
| data5 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates}}}|type:isle}}}}
| label6 = Tixraaca shabakadda OS
| data6 = {{#if:{{{grid_reference|}}}| {{gbmappingsmall|{{{grid_reference|}}}|25|{{{grid_reference|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }} }}
| label7 = Nooca
| data7 = {{{island_type|}}}
| label8 = Jasiiradaha isku xiran
| class8 = note
| data8 = {{{archipelago|}}}
| label9 = {{nowrap|La deris ah}}
| data9 = {{{waterbody|}}}
| label10 = Wadarta jasiiradaha
| data10 = {{{total_islands|}}}
| label11 = Jasiiradaha waaweyn
| data11 = {{{major_islands|}}}
| label12 = Baaxadda
| data12 = {{Infobox islands/area| km2 = {{{area_km2|}}} | sqmi = {{{area_sqmi|}}} | m2 = {{{area_m2|}}} | sqft = {{{area_sqft|}}} | ha = {{{area_ha|}}} | acre = {{{area_acre|}}} }}{{{area_footnotes|}}}
| label13 = Kaalinta baaxadda
| data13 = {{{rank|}}}
| label14 = Dhererka
| data14 = {{Infobox islands/length | km = {{{length_km|}}} | mi = {{{length_mi|}}} | m = {{{length_m|}}} | ft = {{{length_ft|}}} }}{{{length_footnotes|}}}
| label15 = Ballaca
| data15 = {{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|{{convert<!--
-->|{{if empty|{{{width_min_km|}}}|{{{width_min_mi|}}}|{{{width_min_m|}}}|{{{width_min_ft|}}}}}<!--
-->|-<!--
-->|{{if empty|{{{width_max_km|}}}|{{{width_max_mi|}}}|{{{width_max_m|}}}|{{{width_max_ft|}}}}}<!--
-->|{{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->|km<!--
-->|{{#if:{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->|mi<!--
-->|{{#if:{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->|m<!--
-->|{{#if:{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|ft}}<!--
-->}}<!--
-->}}<!--
-->}}<!--
-->|abbr=on}}<!--
-->|{{Infobox islands/length | km = {{{width_km|}}} | mi = {{{width_mi|}}} | m = {{{width_m|}}} | ft = {{{width_ft|}}} }}<!--
-->}}{{{width_footnotes|}}}
| label16 = Xeebta
| data16 = {{Infobox islands/length | km = {{{coastline_km|}}} | mi = {{{coastline_mi|}}} | m = {{{coastline_m|}}} | ft = {{{coastline_ft|}}} }}{{{coastline_footnotes|}}}
| label17 = Meesha ugu sarreysa sareynta
| data17 = {{Infobox islands/length | m = {{{elevation_m|}}} | ft = {{{elevation_ft|}}} }}{{{elevation_footnotes|}}}
| label18 = Meesha ugu sarreysa barta
| data18 = {{{highest_mount|}}}
<!-- end geography -->
| header22 = Maamulka
| data23 = {{#switch:{{{country|}}}|=
|None|none={{#if:{{{treaty_system|}}}||<div>'''{{{country}}}'''</div>}}
|#default=<div>'''{{{country}}}'''</div>
}}
| data24 = {{#if:{{{treaty_system|}}}|Waxaa maamula heshiiska {{{treaty_system|}}}}}
| header25 = _BLANK_
| label26 = {{longitem|{{{country_admin_divisions_title|}}}}}
| data26 = {{{country_admin_divisions|}}}
| label27 = {{longitem|{{{country_admin_divisions_title_1|}}}}}
| data27 = {{{country_admin_divisions_1|}}}
| label28 = {{longitem|{{{country_admin_divisions_title_2|}}}}}
| data28 = {{{country_admin_divisions_2|}}}
| label29 = {{longitem|{{{country_admin_divisions_title_3|}}}}}
| data29 = {{{country_admin_divisions_3|}}}
| label30 = {{longitem|{{{country_admin_divisions_title_4|}}}}}
| data30 = {{{country_admin_divisions_4|}}}
| label31 = Caasimadda magaalada
| data31 = {{#if: {{{country_capital_and_largest_city|}}}||{{{country_capital|}}}}}
| label32 = {{longitem|Ugu weyn {{if empty|{{{country_largest_city_type|}}}|deegaanka}}}}
| data32 = {{#if: {{{country_capital_and_largest_city|}}}||{{#if: {{{country_largest_city|}}}|{{{country_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}}}
| label33 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country_largest_city_type|}}}|magaalada}}}}
| data33 = {{#if: {{{country_capital_and_largest_city|}}}|{{{country_capital_and_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}
| label34 = {{longitem|{{{country_leader_title|}}}}}
| data34 = {{{country_leader_name|}}}
| label35 = Baaxadda la daboolay
| data35 = {{Infobox islands/area| km2 = {{{country_area_km2|}}} | sqmi = {{{country_area_sqmi|}}} | m2 = {{{country_area_m2|}}} | sqft = {{{country_area_sqft|}}} | ha = {{{country_area_ha|}}} | acre = {{{country_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country_area|}}}
| header36 = {{#ifeq:{{{disputed|}}}|yes|Waxaa dalbanaya}}
| data37 = {{#if:{{{country1|}}}|{{#ifeq:{{{disputed|}}}|yes|<div class="ib-islands-country2">|<div class="ib-islands-country">}}{{{country1|}}}</div>}}
| label38 = {{longitem|{{{country1_admin_divisions_title|}}}}}
| data38 = {{{country1_admin_divisions|}}}
| label39 = {{longitem|{{{country1_admin_divisions_title_1|}}}}}
| data39 = {{{country1_admin_divisions_1|}}}
| label40 = {{longitem|{{{country1_admin_divisions_title_2|}}}}}
| data40 = {{{country1_admin_divisions_2|}}}
| label41 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country1_largest_city_type|}}}|city}}|city|magaalada}}}}
| data41 = {{#if: {{{country1_capital_and_largest_city|}}}||{{{country1_capital|}}}}}
| label42 = {{longitem|Ugu weyn {{if empty|{{{country1_largest_city_type|}}}|deegaanka}}}}
| data42 = {{#if: {{{country1_capital_and_largest_city|}}}||{{#if: {{{country1_largest_city|}}}|{{{country1_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}}}
| label43 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country1_largest_city_type|}}}|city}}}}
| data43 = {{#if: {{{country1_capital_and_largest_city|}}}|{{{country1_capital_and_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}
| label44 = {{longitem|{{{country1_leader_title|}}}}}
| data44 = {{{country1_leader_name|}}}
| label45 = Baaxadda la daboolay
| data45 = {{Infobox islands/area| km2 = {{{country1_area_km2|}}} | sqmi = {{{country1_area_sqmi|}}} | m2 = {{{country1_area_m2|}}} | sqft = {{{country1_area_sqft|}}} | ha = {{{country1_area_ha|}}} | acre = {{{country1_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country1_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country1_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country1_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country1_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country1_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country1_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country1_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country1_area|}}}
| data54 = {{#if:{{{country2|}}}|<div class="ib-islands-country">{{{country2|}}}</div>}}
| label55 = {{longitem|{{{country2_admin_divisions_title|}}}}}
| data55 = {{{country2_admin_divisions|}}}
| label56 = {{longitem|{{{country2_admin_divisions_title_1|}}}}}
| data56 = {{{country2_admin_divisions_1|}}}
| label57 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country2_largest_city_type|}}}|city}}|city|magaalada}}}}
| data57 = {{#if: {{{country2_capital_and_largest_city|}}}||{{{country2_capital|}}}}}
| label58 = {{longitem|Ugu weyn {{if empty|{{{country2_largest_city_type|}}}|deegaanka}}}}
| data58 = {{#if: {{{country2_capital_and_largest_city|}}}||{{#if: {{{country2_largest_city|}}}|{{{country2_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}}}
| label59 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country2_largest_city_type|}}}|city}}}}
| data59 = {{#if: {{{country2_capital_and_largest_city|}}}|{{{country2_capital_and_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}
| label60 = {{longitem|{{{country2_leader_title|}}}}}
| data60 = {{{country2_leader_name|}}}
| label61 = Baaxadda la daboolay
| data61 = {{Infobox islands/area| km2 = {{{country2_area_km2|}}} | sqmi = {{{country2_area_sqmi|}}} | m2 = {{{country2_area_m2|}}} | sqft = {{{country2_area_sqft|}}} | ha = {{{country2_area_ha|}}} | acre = {{{country2_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country2_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country2_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country2_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country2_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country2_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country2_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country2_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country2_area|}}}
| data62 = {{#if:{{{country3|}}}|<div class="ib-islands-country">{{{country3|}}}</div>}}
| label63 = {{{country3_admin_divisions_title|}}}
| data63 = {{{country3_admin_divisions|}}}
| label64 = {{{country3_admin_divisions_title_1|}}}
| data64 = {{{country3_admin_divisions_1|}}}
| label65 = Caasimadda {{#ifeq: {{if empty|{{{country3_largest_city_type|}}}|city}}|city|magaalada}}
| data65 = {{#if: {{{country3_capital_and_largest_city|}}}||{{{country3_capital|}}}}}
| label66 = Ugu weyn {{if empty|{{{country3_largest_city_type|}}}|deegaanka}}
| data66 = {{#if: {{{country3_capital_and_largest_city|}}}||{{#if: {{{country3_largest_city|}}}|{{{country3_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}}}
| label67 = Caasimadda iyo tan ugu weyn {{if empty|{{{country3_largest_city_type|}}}|city}}
| data67 = {{#if: {{{country3_capital_and_largest_city|}}}|{{{country3_capital_and_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}
| label68 = {{{country3_leader_title|}}}
| data68 = {{{country3_leader_name|}}}
| label69 = Baaxadda la daboolay
| data69 = {{Infobox islands/area| km2 = {{{country3_area_km2|}}} | sqmi = {{{country3_area_sqmi|}}} | m2 = {{{country3_area_m2|}}} | sqft = {{{country3_area_sqft|}}} | ha = {{{country3_area_ha|}}} | acre = {{{country3_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country3_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country3_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country3_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country3_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country3_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country3_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country3_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country3_area|}}}
| data70 = {{#if:{{{country4|}}}|<div class="ib-islands-country">{{{country4|}}}</div>}}
| label71 = {{{country4_admin_divisions_title|}}}
| data71 = {{{country4_admin_divisions|}}}
| label72 = {{{country4_admin_divisions_title_1|}}}
| data72 = {{{country4_admin_divisions_1|}}}
| label73 = Caasimadda {{#ifeq: {{if empty|{{{country4_largest_city_type|}}}|city}}|city|magaalada}}
| data73 = {{#if: {{{country4_capital_and_largest_city|}}}||{{{country4_capital|}}}}}
| label74 = Ugu weyn {{if empty|{{{country4_largest_city_type|}}}|deegaanka}}
| data74 = {{#if: {{{country4_capital_and_largest_city|}}}||{{#if: {{{country4_largest_city|}}}|{{{country4_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}}}
| label75 = Caasimadda iyo tan ugu weyn {{if empty|{{{country4_largest_city_type|}}}|city}}
| data75 = {{#if: {{{country4_capital_and_largest_city|}}}|{{{country4_capital_and_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}
| label76 = {{{country4_leader_title|}}}
| data76 = {{{country4_leader_name|}}}
| label77 = Baaxadda la daboolay
| data77 = {{Infobox islands/area| km2 = {{{country4_area_km2|}}} | sqmi = {{{country4_area_sqmi|}}} | m2 = {{{country4_area_m2|}}} | sqft = {{{country4_area_sqft|}}} | ha = {{{country4_area_ha|}}} | acre = {{{country4_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country4_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country4_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country4_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country4_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country4_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country4_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country4_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country4_area|}}}
| data78 = {{#if:{{{country5|}}}|<div class="ib-islands-country">{{{country5|}}}</div>}}
| label79 = {{{country5_admin_divisions_title|}}}
| data79 = {{{country5_admin_divisions|}}}
| label80 = {{{country5_admin_divisions_title_1|}}}
| data80 = {{{country5_admin_divisions_1|}}}
| label81 = Caasimadda {{#ifeq: {{if empty|{{{country5_largest_city_type|}}}|city}}|city|magaalada}}
| data81 = {{#if: {{{country5_capital_and_largest_city|}}}||{{{country5_capital|}}}}}
| label82 = Ugu weyn {{if empty|{{{country5_largest_city_type|}}}|deegaanka}}
| data82 = {{#if: {{{country5_capital_and_largest_city|}}}||{{#if: {{{country5_largest_city|}}}|{{{country5_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}}}
| label83 = Caasimadda iyo tan ugu weyn {{if empty|{{{country5_largest_city_type|}}}|city}}
| data83 = {{#if: {{{country5_capital_and_largest_city|}}}|{{{country5_capital_and_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}
| label84 = {{{country5_leader_title|}}}
| data84 = {{{country5_leader_name|}}}
| label85 = Baaxadda la daboolay
| data85 = {{Infobox islands/area| km2 = {{{country5_area_km2|}}} | sqmi = {{{country5_area_sqmi|}}} | m2 = {{{country5_area_m2|}}} | sqft = {{{country5_area_sqft|}}} | ha = {{{country5_area_ha|}}} | acre = {{{country5_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country5_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country5_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country5_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country5_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country5_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country5_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country5_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country5_area|}}}
| data86 = {{#if:{{{country6|}}}|<div class="ib-islands-country">{{{country6|}}}</div>}}
| label87 = {{{country6_admin_divisions_title|}}}
| data87 = {{{country6_admin_divisions|}}}
| label88 = {{{country6_admin_divisions_title_1|}}}
| data88 = {{{country6_admin_divisions_1|}}}
| label89 = Caasimadda {{#ifeq: {{if empty|{{{country6_largest_city_type|}}}|city}}|city|magaalada}}
| data89 = {{#if: {{{country6_capital_and_largest_city|}}}||{{{country6_capital|}}}}}
| label90 = Ugu weyn {{if empty|{{{country6_largest_city_type|}}}|deegaanka}}
| data90 = {{#if: {{{country6_capital_and_largest_city|}}}||{{#if: {{{country6_largest_city|}}}|{{{country6_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}}}
| label91 = Caasimadda iyo tan ugu weyn {{if empty|{{{country6_largest_city_type|}}}|city}}
| data91 = {{#if: {{{country6_capital_and_largest_city|}}}|{{{country6_capital_and_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}
| label92 = {{{country6_leader_title|}}}
| data92 = {{{country6_leader_name|}}}
| label93 = Baaxadda la daboolay
| data93 = {{Infobox islands/area| km2 = {{{country6_area_km2|}}} | sqmi = {{{country6_area_sqmi|}}} | m2 = {{{country6_area_m2|}}} | sqft = {{{country6_area_sqft|}}} | ha = {{{country6_area_ha|}}} | acre = {{{country6_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country6_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country6_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country6_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country6_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country6_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country6_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country6_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country6_area|}}}
| data94 = {{#if:{{{country7|}}}|<div class="ib-islands-country">{{{country7|}}}</div>}}
| label95 = {{{country7_admin_divisions_title|}}}
| data95 = {{{country7_admin_divisions|}}}
| label96 = {{{country7_admin_divisions_title_1|}}}
| data96 = {{{country7_admin_divisions_1|}}}
| label97 = Caasimadda {{#ifeq: {{if empty|{{{country7_largest_city_type|}}}|city}}|city|magaalada}}
| data97 = {{#if: {{{country7_capital_and_largest_city|}}}||{{{country7_capital|}}}}}
| label98 = Ugu weyn {{if empty|{{{country7_largest_city_type|}}}|deegaanka}}
| data98 = {{#if: {{{country7_capital_and_largest_city|}}}||{{#if: {{{country7_largest_city|}}}|{{{country7_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}}}
| label99 = Caasimadda iyo tan ugu weyn {{if empty|{{{country7_largest_city_type|}}}|city}}
| data99 = {{#if: {{{country7_capital_and_largest_city|}}}|{{{country7_capital_and_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}
| label100 = {{{country7_leader_title|}}}
| data100 = {{{country7_leader_name|}}}
| label101 = Baaxadda la daboolay
| data101 = {{Infobox islands/area| km2 = {{{country7_area_km2|}}} | sqmi = {{{country7_area_sqmi|}}} | m2 = {{{country7_area_m2|}}} | sqft = {{{country7_area_sqft|}}} | ha = {{{country7_area_ha|}}} | acre = {{{country7_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country7_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country7_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country7_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country7_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country7_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country7_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country7_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country7_area|}}}
| data102 = {{#if:{{{country8|}}}|<div class="ib-islands-country">{{{country8|}}}</div>}}
| label103 = {{{country8_admin_divisions_title|}}}
| data103 = {{{country8_admin_divisions|}}}
| label104 = {{{country8_admin_divisions_title_1|}}}
| data104 = {{{country8_admin_divisions_1|}}}
| label105 = Caasimadda {{#ifeq: {{if empty|{{{country8_largest_city_type|}}}|city}}|city|magaalada}}
| data105 = {{#if: {{{country8_capital_and_largest_city|}}}||{{{country8_capital|}}}}}
| label106 = Ugu weyn {{if empty|{{{country8_largest_city_type|}}}|deegaanka}}
| data106 = {{#if: {{{country8_capital_and_largest_city|}}}||{{#if: {{{country8_largest_city|}}}|{{{country8_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}}}
| label107 = Caasimadda iyo tan ugu weyn {{if empty|{{{country8_largest_city_type|}}}|city}}
| data107 = {{#if: {{{country8_capital_and_largest_city|}}}|{{{country8_capital_and_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}
| label108 = {{{country8_leader_title|}}}
| data108 = {{{country8_leader_name|}}}
| label109 = Baaxadda la daboolay
| data109 = {{Infobox islands/area| km2 = {{{country8_area_km2|}}} | sqmi = {{{country8_area_sqmi|}}} | m2 = {{{country8_area_m2|}}} | sqft = {{{country8_area_sqft|}}} | ha = {{{country8_area_ha|}}} | acre = {{{country8_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country8_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country8_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country8_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country8_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country8_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country8_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country8_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country8_area|}}}
<!-- end administration -->
| header110 = Dadweynaha
| label111 = Qowmiyadda
| data111 = {{{demonym|}}}
| label112 = Tirada dadka
| data112 = {{{population|}}} {{#if:{{{population_as_of|}}}|({{{population_as_of|}}})}}{{{population_footnotes|}}}
| label113 = Kaalinta dadka
| data113 = {{#if:{{{population_rank|}}}|{{{population_rank|}}} {{#if:{{{population_rank_max|}}}|inta u dhaxaysa out of {{{population_rank_max|}}} }} }}
| label114 = Cufnaanta dadka
| data114 = {{Infobox islands/density| km2 = {{{density_km2|}}}| sqmi = {{{density_sqmi|}}} }}{{{density_footnotes|}}}
| label115 = Kaalinta cufnaanta dadka
| data115 = {{{density_rank|}}}
| label116 = Luuqadaha
| data116 = {{{languages|}}}
| label117 = Qowmiyadaha
| data117 = {{{ethnic_groups|}}}
<!-- end demographics -->
| header118 = Macluumaad dheeraad ah
<!-- ***Time Zones*** -->
| label119 = {{#if:{{both|{{if empty|{{{timezone1|}}}|{{{timezone|}}}}}|{{{timezone2|}}}}}|Aagagga waqtiga Time zones|Aagga waqtiga Time zone}}
| data119 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{if empty|{{{timezone1|}}}|{{{timezone}}}}} {{#if:{{{utc_offset1|}}}{{{utc_offset|}}}|([[UTC{{if empty|{{{utc_offset1|}}}|{{{utc_offset}}}}}]])}}
| 2= {{#if:{{{timezone2|}}}|{{{timezone2}}} {{#if:{{{utc_offset2|}}}|([[UTC{{{utc_offset2}}}]])}} }} }}}}
| label120 = <span class="nowrap"> • Xagaaga </span>
| data120 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{if empty|{{{timezone1_DST|}}}|{{{timezone_DST|}}}}} ([[UTC{{if empty|{{{utc_offset1_DST|}}}|{{{utc_offset_DST|}}}}}]])}}
| 2= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{#if:{{{timezone2_DST|}}}|{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST|}}}]])}} }}
}}}}
<!-- ***Area codes*** -->
| label121 = {{if empty|{{{postal_code_type|}}}|Koodka boostada}}
| data121 = {{{postal_code|}}}
| label122 = {{if empty|{{{area_code_type|}}}|Telephone numbering plan Koodka deegaankaArea code{{pluralize from text|{{{area_code|}}}|plural=s}}}}
| data122 = {{{area_code|}}}
| label123 = Diiwaangelinta gaadiidka
| data123 = {{{registration_plate|}}}
| label124 = {{if empty|{{{iso_code_type|}}}|ISO 3166-2 ISO code}}
| data124 = {{{iso_code|}}}
| label125 = Mareegta rasmiga ah
| data125 = {{{website|}}}
| data126 = {{{additional_info|}}}
| header127 = <nowiki />
| data128 = {{{misc|}}}
{{{module|}}}
| below = {{{footnotes|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|Category:Pages using infobox islands with unknown parameters _VALUE_ {{PAGENAME}}}}|preview=Page using Template:Infobox islands with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y|pushpin_map_args=y| additional_info | archipelago | area_acre | area_code | area_code_type | area_footnotes | area_ha | area_km2 | area_m2 | area_sqft | area_sqmi | coastline_footnotes | coastline_ft | coastline_km | coastline_m | coastline_mi | coordinates | country | country_admin_divisions | country_admin_divisions_1 | country_admin_divisions_2 | country_admin_divisions_3 | country_admin_divisions_4 | country_admin_divisions_title | country_admin_divisions_title_1 | country_admin_divisions_title_2 | country_admin_divisions_title_3 | country_admin_divisions_title_4 | country_area | country_area_acre | country_area_ha | country_area_km2 | country_area_m2 | country_area_sqft | country_area_sqmi | country_capital | country_capital_and_largest_city | country_largest_city | country_largest_city_population | country_largest_city_type | country_leader_name | country_leader_title | country1 | country1_admin_divisions | country1_admin_divisions_title | country1_area | country1_area_acre | country1_area_ha | country1_area_sqft | country1_area_sqmi | country1_capital | country1_capital_and_largest_city | country1_largest_city | country1_largest_city_population | country1_largest_city_type | country1_leader_name | country1_leader_title | country2 | country2_admin_divisions | country2_admin_divisions_title | country2_area | country2_area_acre | country2_area_ha | country2_area_sqft | country2_area_sqmi | country2_capital | country2_capital_and_largest_city | country2_largest_city | country2_largest_city_population | country2_largest_city_type | country2_leader_name | country2_leader_title | country3 | country3_admin_divisions | country3_admin_divisions_title | country3_area | country3_area_acre | country3_area_ha | country3_area_sqft | country3_area_sqmi | country3_capital | country3_capital_and_largest_city | country3_largest_city | country3_largest_city_population | country3_largest_city_type | country3_leader_name | country3_leader_title | country4 | country4_admin_divisions | country4_admin_divisions_title | country4_area | country4_area_acre | country4_area_ha | country4_area_sqft | country4_area_sqmi | country4_capital | country4_capital_and_largest_city | country4_largest_city | country4_largest_city_population | country4_largest_city_type | country4_leader_name | country4_leader_title | country5 | country5_admin_divisions | country5_admin_divisions_title | country5_area | country5_area_acre | country5_area_ha | country5_area_sqft | country5_area_sqmi | country5_capital | country5_capital_and_largest_city | country5_largest_city | country5_largest_city_population | country5_largest_city_type | country5_leader_name | country5_leader_title | country6 | country6_admin_divisions | country6_admin_divisions_title | country6_area | country6_area_acre | country6_area_ha | country6_area_sqft | country6_area_sqmi | country6_capital | country6_capital_and_largest_city | country6_largest_city | country6_largest_city_population | country6_largest_city_type | country6_leader_name | country6_leader_title | country7 | country7_admin_divisions | country7_admin_divisions_title | country7_area | country7_area_acre | country7_area_ha | country7_area_sqft | country7_area_sqmi | country7_capital | country7_capital_and_largest_city | country7_largest_city | country7_largest_city_population | country7_largest_city_type | country7_leader_name | country7_leader_title | country8 | country8_admin_divisions | country8_admin_divisions_title | country8_area | country8_area_acre | country8_area_ha | country8_area_sqft | country8_area_sqmi | country8_capital | country8_capital_and_largest_city | country8_largest_city | country8_largest_city_population | country8_largest_city_type | country8_leader_name | country8_leader_title | country1_admin_divisions_1 | country1_admin_divisions_2 | country1_admin_divisions_title_1 | country1_admin_divisions_title_2 | country1_area_km2 | country1_area_m2 | country2_admin_divisions_1 | country2_admin_divisions_title_1 | country2_area_km2 | country2_area_m2 | country3_admin_divisions_1 | country3_admin_divisions_title_1 | country3_area_km2 | country3_area_m2 | country4_admin_divisions_1 | country4_admin_divisions_title_1 | country4_area_km2 | country4_area_m2 | country5_admin_divisions_1 | country5_admin_divisions_title_1 | country5_area_km2 | country5_area_m2 | country6_admin_divisions_1 | country6_admin_divisions_title_1 | country6_area_km2 | country6_area_m2 | country7_admin_divisions_1 | country7_admin_divisions_title_1 | country7_area_km2 | country7_area_m2 | country8_admin_divisions_1 | country8_admin_divisions_title_1 | country8_area_km2 | country8_area_m2 | demonym | density_footnotes | density_km2 | density_rank | density_sqmi | disputed | elevation_footnotes | elevation_ft | elevation_m | embed | ethnic_groups | etymology | footnotes | grid_reference | highest_mount | image | image_alt | image_caption | image_map | image_size | island_type | iso_code | iso_code_type | languages | length_footnotes | length_ft | length_km | length_m | length_mi | local_name | location | major_islands | map_alt | map_caption | map_size | misc | module | name | native_name | native_name_lang | native_name_link | nickname | other_names | plural | population | population_as_of | population_footnotes | population_rank | population_rank_max | postal_code | postal_code_type | rank | registration_plate | timezone | timezone_DST | timezone1 | timezone1_DST | timezone2 | timezone2_DST | total_islands | treaty_system | type | utc_offset | utc_offset_DST | utc_offset1 | utc_offset1_DST | utc_offset2 | utc_offset2_DST | waterbody | website | width_footnotes | width_ft | width_km | width_m | width_max_ft | width_max_km | width_max_m | width_max_mi | width_mi | width_min_ft | width_min_km | width_min_m | width_min_mi }}{{#invoke:Check for conflicting parameters|check
| template = Template:Infobox islands
| cat = main otherCategory:Pages using infobox islands with conflicting parameters
| width_min_km; width_min_mi; width_min_m; width_min_ft
| width_max_km; width_max_mi; width_max_m; width_max_ft
| timezone1; timezone
| utc_offset1; utc_offset
| timezone1_DST; timezone_DST
| utc_offset1_DST; utc_offset_DST
}}<noinclude>
{{documentation}}
<!-- categories links go in /doc, not here -->
</noinclude>
1yop87vy9geweol5ru8o4e3miqf50bd
309255
309254
2026-09-23T16:20:55Z
Isma4l
41797
/* */
309255
wikitext
text/x-wiki
{{Infobox
| child = {{{embed|}}}
| bodyclass = ib-islands vcard
| templatestyles = Template:Infobox islands/styles.css
| titleclass = fn org
| title = {{#ifeq:{{{embed|}}}|yes|{{#if:{{{name|}}}|<div class="ib-islands-title-embed">{{{name|}}}</div>|}}|{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}}}
| above = {{#ifeq:{{{disputed|}}}|yes|{{#if:{{{type|}}}|Khilaaf dhuleed Disputed {{{type}}}|Khilaaf dhuleed Jasiirad Disputed island}}{{#ifeq:{{{plural}}}|yes|s<br>|<br>}}}}<!--
-->{{#if:{{{local_name|}}}<!--
-->|<div class="nickname">{{{local_name}}}</div><!--
-->|{{#if:{{{native_name|}}}<!--
-->|<div class="ib-islands-native">{{#if:{{{native_name_link|}}}|{{{native_name_link|}}} Magaca hooyo|Magaca hooyo}}: <div class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang|}}}}}">{{{native_name|}}}</div></div><!--
-->}}<!--
-->}}<!--
-->{{#if:{{{nickname|}}}|<div class="ib-islands-nick">Naanaysta: {{{nickname|}}}</div>}}
| autoheaders = y
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright=1.16|alt={{{image_alt|}}}}}
| caption = {{{image_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=frameless|upright=1.16|alt={{{map_alt|}}}}}
| caption2 = {{{map_caption|}}}
| image3 = {{#invoke:Location map|infobox_pushpin_map
| default_width = 260
}}
| image4 = {{#invoke:Infobox mapframe
| auto
| onByDefault = {{#if:{{{pushpin_map|}}}{{{image_map|}}}|no|yes}}
| mapframe-zoom = 7
| mapframe-marker-color = #a8bdec
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Khariidadda interactive ee {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| label1 = Magacyada kale{{pluralize from text|{{{other_names|}}}|plural=s}}
| data1 = {{{other_names|}}}
| label2 = Asalka erayga
| data2 = {{{etymology|}}}
| header3 = {{#ifeq:{{{embed|}}}|yes||Juquraafi}}
| label4 = Goobta
| data4 = {{{location|}}}
| label5 = Isku duwayaasha
| data5 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates}}}|type:isle}}}}
| label6 = Tixraaca shabakadda OS
| data6 = {{#if:{{{grid_reference|}}}| {{gbmappingsmall|{{{grid_reference|}}}|25|{{{grid_reference|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }} }}
| label7 = Nooca
| data7 = {{{island_type|}}}
| label8 = Jasiiradaha isku xiran
| class8 = note
| data8 = {{{archipelago|}}}
| label9 = {{nowrap|La deris ah}}
| data9 = {{{waterbody|}}}
| label10 = Wadarta jasiiradaha
| data10 = {{{total_islands|}}}
| label11 = Jasiiradaha waaweyn
| data11 = {{{major_islands|}}}
| label12 = Baaxadda
| data12 = {{Infobox islands/area| km2 = {{{area_km2|}}} | sqmi = {{{area_sqmi|}}} | m2 = {{{area_m2|}}} | sqft = {{{area_sqft|}}} | ha = {{{area_ha|}}} | acre = {{{area_acre|}}} }}{{{area_footnotes|}}}
| label13 = Kaalinta baaxadda
| data13 = {{{rank|}}}
| label14 = Dhererka
| data14 = {{Infobox islands/length | km = {{{length_km|}}} | mi = {{{length_mi|}}} | m = {{{length_m|}}} | ft = {{{length_ft|}}} }}{{{length_footnotes|}}}
| label15 = Ballaca
| data15 = {{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|{{convert<!--
-->|{{if empty|{{{width_min_km|}}}|{{{width_min_mi|}}}|{{{width_min_m|}}}|{{{width_min_ft|}}}}}<!--
-->|-<!--
-->|{{if empty|{{{width_max_km|}}}|{{{width_max_mi|}}}|{{{width_max_m|}}}|{{{width_max_ft|}}}}}<!--
-->|{{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->|km<!--
-->|{{#if:{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->|mi<!--
-->|{{#if:{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->|m<!--
-->|{{#if:{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|ft}}<!--
-->}}<!--
-->}}<!--
-->}}<!--
-->|abbr=on}}<!--
-->|{{Infobox islands/length | km = {{{width_km|}}} | mi = {{{width_mi|}}} | m = {{{width_m|}}} | ft = {{{width_ft|}}} }}<!--
-->}}{{{width_footnotes|}}}
| label16 = Xeebta
| data16 = {{Infobox islands/length | km = {{{coastline_km|}}} | mi = {{{coastline_mi|}}} | m = {{{coastline_m|}}} | ft = {{{coastline_ft|}}} }}{{{coastline_footnotes|}}}
| label17 = Meesha ugu sarreysa sareynta
| data17 = {{Infobox islands/length | m = {{{elevation_m|}}} | ft = {{{elevation_ft|}}} }}{{{elevation_footnotes|}}}
| label18 = Meesha ugu sarreysa barta
| data18 = {{{highest_mount|}}}
<!-- end geography -->
| header22 = Maamulka
| data23 = {{#switch:{{{country|}}}|=
|None|none={{#if:{{{treaty_system|}}}||<div>'''{{{country}}}'''</div>}}
|#default=<div>'''{{{country}}}'''</div>
}}
| data24 = {{#if:{{{treaty_system|}}}|Waxaa maamula heshiiska {{{treaty_system|}}}}}
| header25 = _BLANK_
| label26 = {{longitem|{{{country_admin_divisions_title|}}}}}
| data26 = {{{country_admin_divisions|}}}
| label27 = {{longitem|{{{country_admin_divisions_title_1|}}}}}
| data27 = {{{country_admin_divisions_1|}}}
| label28 = {{longitem|{{{country_admin_divisions_title_2|}}}}}
| data28 = {{{country_admin_divisions_2|}}}
| label29 = {{longitem|{{{country_admin_divisions_title_3|}}}}}
| data29 = {{{country_admin_divisions_3|}}}
| label30 = {{longitem|{{{country_admin_divisions_title_4|}}}}}
| data30 = {{{country_admin_divisions_4|}}}
| label31 = Caasimadda magaalada
| data31 = {{#if: {{{country_capital_and_largest_city|}}}||{{{country_capital|}}}}}
| label32 = {{longitem|Ugu weyn {{if empty|{{{country_largest_city_type|}}}|deegaanka}}}}
| data32 = {{#if: {{{country_capital_and_largest_city|}}}||{{#if: {{{country_largest_city|}}}|{{{country_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}}}
| label33 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country_largest_city_type|}}}|magaalada}}}}
| data33 = {{#if: {{{country_capital_and_largest_city|}}}|{{{country_capital_and_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}
| label34 = {{longitem|{{{country_leader_title|}}}}}
| data34 = {{{country_leader_name|}}}
| label35 = Baaxadda la daboolay
| data35 = {{Infobox islands/area| km2 = {{{country_area_km2|}}} | sqmi = {{{country_area_sqmi|}}} | m2 = {{{country_area_m2|}}} | sqft = {{{country_area_sqft|}}} | ha = {{{country_area_ha|}}} | acre = {{{country_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country_area|}}}
| header36 = {{#ifeq:{{{disputed|}}}|yes|Waxaa dalbanaya}}
| data37 = {{#if:{{{country1|}}}|{{#ifeq:{{{disputed|}}}|yes|<div class="ib-islands-country2">|<div class="ib-islands-country">}}{{{country1|}}}</div>}}
| label38 = {{longitem|{{{country1_admin_divisions_title|}}}}}
| data38 = {{{country1_admin_divisions|}}}
| label39 = {{longitem|{{{country1_admin_divisions_title_1|}}}}}
| data39 = {{{country1_admin_divisions_1|}}}
| label40 = {{longitem|{{{country1_admin_divisions_title_2|}}}}}
| data40 = {{{country1_admin_divisions_2|}}}
| label41 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country1_largest_city_type|}}}|city}}|city|magaalada}}}}
| data41 = {{#if: {{{country1_capital_and_largest_city|}}}||{{{country1_capital|}}}}}
| label42 = {{longitem|Ugu weyn {{if empty|{{{country1_largest_city_type|}}}|deegaanka}}}}
| data42 = {{#if: {{{country1_capital_and_largest_city|}}}||{{#if: {{{country1_largest_city|}}}|{{{country1_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}}}
| label43 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country1_largest_city_type|}}}|city}}}}
| data43 = {{#if: {{{country1_capital_and_largest_city|}}}|{{{country1_capital_and_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}
| label44 = {{longitem|{{{country1_leader_title|}}}}}
| data44 = {{{country1_leader_name|}}}
| label45 = Baaxadda la daboolay
| data45 = {{Infobox islands/area| km2 = {{{country1_area_km2|}}} | sqmi = {{{country1_area_sqmi|}}} | m2 = {{{country1_area_m2|}}} | sqft = {{{country1_area_sqft|}}} | ha = {{{country1_area_ha|}}} | acre = {{{country1_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country1_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country1_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country1_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country1_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country1_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country1_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country1_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country1_area|}}}
| data54 = {{#if:{{{country2|}}}|<div class="ib-islands-country">{{{country2|}}}</div>}}
| label55 = {{longitem|{{{country2_admin_divisions_title|}}}}}
| data55 = {{{country2_admin_divisions|}}}
| label56 = {{longitem|{{{country2_admin_divisions_title_1|}}}}}
| data56 = {{{country2_admin_divisions_1|}}}
| label57 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country2_largest_city_type|}}}|city}}|city|magaalada}}}}
| data57 = {{#if: {{{country2_capital_and_largest_city|}}}||{{{country2_capital|}}}}}
| label58 = {{longitem|Ugu weyn {{if empty|{{{country2_largest_city_type|}}}|deegaanka}}}}
| data58 = {{#if: {{{country2_capital_and_largest_city|}}}||{{#if: {{{country2_largest_city|}}}|{{{country2_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}}}
| label59 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country2_largest_city_type|}}}|city}}}}
| data59 = {{#if: {{{country2_capital_and_largest_city|}}}|{{{country2_capital_and_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}
| label60 = {{longitem|{{{country2_leader_title|}}}}}
| data60 = {{{country2_leader_name|}}}
| label61 = Baaxadda la daboolay
| data61 = {{Infobox islands/area| km2 = {{{country2_area_km2|}}} | sqmi = {{{country2_area_sqmi|}}} | m2 = {{{country2_area_m2|}}} | sqft = {{{country2_area_sqft|}}} | ha = {{{country2_area_ha|}}} | acre = {{{country2_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country2_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country2_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country2_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country2_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country2_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country2_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country2_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country2_area|}}}
| data62 = {{#if:{{{country3|}}}|<div class="ib-islands-country">{{{country3|}}}</div>}}
| label63 = {{{country3_admin_divisions_title|}}}
| data63 = {{{country3_admin_divisions|}}}
| label64 = {{{country3_admin_divisions_title_1|}}}
| data64 = {{{country3_admin_divisions_1|}}}
| label65 = Caasimadda {{#ifeq: {{if empty|{{{country3_largest_city_type|}}}|city}}|city|magaalada}}
| data65 = {{#if: {{{country3_capital_and_largest_city|}}}||{{{country3_capital|}}}}}
| label66 = Ugu weyn {{if empty|{{{country3_largest_city_type|}}}|deegaanka}}
| data66 = {{#if: {{{country3_capital_and_largest_city|}}}||{{#if: {{{country3_largest_city|}}}|{{{country3_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}}}
| label67 = Caasimadda iyo tan ugu weyn {{if empty|{{{country3_largest_city_type|}}}|city}}
| data67 = {{#if: {{{country3_capital_and_largest_city|}}}|{{{country3_capital_and_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}
| label68 = {{{country3_leader_title|}}}
| data68 = {{{country3_leader_name|}}}
| label69 = Baaxadda la daboolay
| data69 = {{Infobox islands/area| km2 = {{{country3_area_km2|}}} | sqmi = {{{country3_area_sqmi|}}} | m2 = {{{country3_area_m2|}}} | sqft = {{{country3_area_sqft|}}} | ha = {{{country3_area_ha|}}} | acre = {{{country3_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country3_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country3_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country3_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country3_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country3_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country3_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country3_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country3_area|}}}
| data70 = {{#if:{{{country4|}}}|<div class="ib-islands-country">{{{country4|}}}</div>}}
| label71 = {{{country4_admin_divisions_title|}}}
| data71 = {{{country4_admin_divisions|}}}
| label72 = {{{country4_admin_divisions_title_1|}}}
| data72 = {{{country4_admin_divisions_1|}}}
| label73 = Caasimadda {{#ifeq: {{if empty|{{{country4_largest_city_type|}}}|city}}|city|magaalada}}
| data73 = {{#if: {{{country4_capital_and_largest_city|}}}||{{{country4_capital|}}}}}
| label74 = Ugu weyn {{if empty|{{{country4_largest_city_type|}}}|deegaanka}}
| data74 = {{#if: {{{country4_capital_and_largest_city|}}}||{{#if: {{{country4_largest_city|}}}|{{{country4_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}}}
| label75 = Caasimadda iyo tan ugu weyn {{if empty|{{{country4_largest_city_type|}}}|city}}
| data75 = {{#if: {{{country4_capital_and_largest_city|}}}|{{{country4_capital_and_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}
| label76 = {{{country4_leader_title|}}}
| data76 = {{{country4_leader_name|}}}
| label77 = Baaxadda la daboolay
| data77 = {{Infobox islands/area| km2 = {{{country4_area_km2|}}} | sqmi = {{{country4_area_sqmi|}}} | m2 = {{{country4_area_m2|}}} | sqft = {{{country4_area_sqft|}}} | ha = {{{country4_area_ha|}}} | acre = {{{country4_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country4_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country4_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country4_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country4_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country4_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country4_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country4_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country4_area|}}}
| data78 = {{#if:{{{country5|}}}|<div class="ib-islands-country">{{{country5|}}}</div>}}
| label79 = {{{country5_admin_divisions_title|}}}
| data79 = {{{country5_admin_divisions|}}}
| label80 = {{{country5_admin_divisions_title_1|}}}
| data80 = {{{country5_admin_divisions_1|}}}
| label81 = Caasimadda {{#ifeq: {{if empty|{{{country5_largest_city_type|}}}|city}}|city|magaalada}}
| data81 = {{#if: {{{country5_capital_and_largest_city|}}}||{{{country5_capital|}}}}}
| label82 = Ugu weyn {{if empty|{{{country5_largest_city_type|}}}|deegaanka}}
| data82 = {{#if: {{{country5_capital_and_largest_city|}}}||{{#if: {{{country5_largest_city|}}}|{{{country5_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}}}
| label83 = Caasimadda iyo tan ugu weyn {{if empty|{{{country5_largest_city_type|}}}|city}}
| data83 = {{#if: {{{country5_capital_and_largest_city|}}}|{{{country5_capital_and_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}
| label84 = {{{country5_leader_title|}}}
| data84 = {{{country5_leader_name|}}}
| label85 = Baaxadda la daboolay
| data85 = {{Infobox islands/area| km2 = {{{country5_area_km2|}}} | sqmi = {{{country5_area_sqmi|}}} | m2 = {{{country5_area_m2|}}} | sqft = {{{country5_area_sqft|}}} | ha = {{{country5_area_ha|}}} | acre = {{{country5_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country5_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country5_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country5_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country5_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country5_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country5_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country5_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country5_area|}}}
| data86 = {{#if:{{{country6|}}}|<div class="ib-islands-country">{{{country6|}}}</div>}}
| label87 = {{{country6_admin_divisions_title|}}}
| data87 = {{{country6_admin_divisions|}}}
| label88 = {{{country6_admin_divisions_title_1|}}}
| data88 = {{{country6_admin_divisions_1|}}}
| label89 = Caasimadda {{#ifeq: {{if empty|{{{country6_largest_city_type|}}}|city}}|city|magaalada}}
| data89 = {{#if: {{{country6_capital_and_largest_city|}}}||{{{country6_capital|}}}}}
| label90 = Ugu weyn {{if empty|{{{country6_largest_city_type|}}}|deegaanka}}
| data90 = {{#if: {{{country6_capital_and_largest_city|}}}||{{#if: {{{country6_largest_city|}}}|{{{country6_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}}}
| label91 = Caasimadda iyo tan ugu weyn {{if empty|{{{country6_largest_city_type|}}}|city}}
| data91 = {{#if: {{{country6_capital_and_largest_city|}}}|{{{country6_capital_and_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}
| label92 = {{{country6_leader_title|}}}
| data92 = {{{country6_leader_name|}}}
| label93 = Baaxadda la daboolay
| data93 = {{Infobox islands/area| km2 = {{{country6_area_km2|}}} | sqmi = {{{country6_area_sqmi|}}} | m2 = {{{country6_area_m2|}}} | sqft = {{{country6_area_sqft|}}} | ha = {{{country6_area_ha|}}} | acre = {{{country6_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country6_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country6_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country6_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country6_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country6_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country6_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country6_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country6_area|}}}
| data94 = {{#if:{{{country7|}}}|<div class="ib-islands-country">{{{country7|}}}</div>}}
| label95 = {{{country7_admin_divisions_title|}}}
| data95 = {{{country7_admin_divisions|}}}
| label96 = {{{country7_admin_divisions_title_1|}}}
| data96 = {{{country7_admin_divisions_1|}}}
| label97 = Caasimadda {{#ifeq: {{if empty|{{{country7_largest_city_type|}}}|city}}|city|magaalada}}
| data97 = {{#if: {{{country7_capital_and_largest_city|}}}||{{{country7_capital|}}}}}
| label98 = Ugu weyn {{if empty|{{{country7_largest_city_type|}}}|deegaanka}}
| data98 = {{#if: {{{country7_capital_and_largest_city|}}}||{{#if: {{{country7_largest_city|}}}|{{{country7_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}}}
| label99 = Caasimadda iyo tan ugu weyn {{if empty|{{{country7_largest_city_type|}}}|city}}
| data99 = {{#if: {{{country7_capital_and_largest_city|}}}|{{{country7_capital_and_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}
| label100 = {{{country7_leader_title|}}}
| data100 = {{{country7_leader_name|}}}
| label101 = Baaxadda la daboolay
| data101 = {{Infobox islands/area| km2 = {{{country7_area_km2|}}} | sqmi = {{{country7_area_sqmi|}}} | m2 = {{{country7_area_m2|}}} | sqft = {{{country7_area_sqft|}}} | ha = {{{country7_area_ha|}}} | acre = {{{country7_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country7_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country7_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country7_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country7_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country7_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country7_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country7_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country7_area|}}}
| data102 = {{#if:{{{country8|}}}|<div class="ib-islands-country">{{{country8|}}}</div>}}
| label103 = {{{country8_admin_divisions_title|}}}
| data103 = {{{country8_admin_divisions|}}}
| label104 = {{{country8_admin_divisions_title_1|}}}
| data104 = {{{country8_admin_divisions_1|}}}
| label105 = Caasimadda {{#ifeq: {{if empty|{{{country8_largest_city_type|}}}|city}}|city|magaalada}}
| data105 = {{#if: {{{country8_capital_and_largest_city|}}}||{{{country8_capital|}}}}}
| label106 = Ugu weyn {{if empty|{{{country8_largest_city_type|}}}|deegaanka}}
| data106 = {{#if: {{{country8_capital_and_largest_city|}}}||{{#if: {{{country8_largest_city|}}}|{{{country8_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}}}
| label107 = Caasimadda iyo tan ugu weyn {{if empty|{{{country8_largest_city_type|}}}|city}}
| data107 = {{#if: {{{country8_capital_and_largest_city|}}}|{{{country8_capital_and_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}
| label108 = {{{country8_leader_title|}}}
| data108 = {{{country8_leader_name|}}}
| label109 = Baaxadda la daboolay
| data109 = {{Infobox islands/area| km2 = {{{country8_area_km2|}}} | sqmi = {{{country8_area_sqmi|}}} | m2 = {{{country8_area_m2|}}} | sqft = {{{country8_area_sqft|}}} | ha = {{{country8_area_ha|}}} | acre = {{{country8_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country8_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country8_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country8_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country8_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country8_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country8_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country8_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country8_area|}}}
<!-- end administration -->
| header110 = Dadweynaha
| label111 = Qowmiyadda
| data111 = {{{demonym|}}}
| label112 = Tirada dadka
| data112 = {{{population|}}} {{#if:{{{population_as_of|}}}|({{{population_as_of|}}})}}{{{population_footnotes|}}}
| label113 = Kaalinta dadka
| data113 = {{#if:{{{population_rank|}}}|{{{population_rank|}}} {{#if:{{{population_rank_max|}}}|inta u dhaxaysa out of {{{population_rank_max|}}} }} }}
| label114 = Cufnaanta dadka
| data114 = {{Infobox islands/density| km2 = {{{density_km2|}}}| sqmi = {{{density_sqmi|}}} }}{{{density_footnotes|}}}
| label115 = Kaalinta cufnaanta dadka
| data115 = {{{density_rank|}}}
| label116 = Luuqadaha
| data116 = {{{languages|}}}
| label117 = Qowmiyadaha
| data117 = {{{ethnic_groups|}}}
<!-- end demographics -->
| header118 = Macluumaad dheeraad ah
<!-- ***Time Zones*** -->
| label119 = {{#if:{{both|{{if empty|{{{timezone1|}}}|{{{timezone|}}}}}|{{{timezone2|}}}}}|Aagagga waqtiga Time zones|Aagga waqtiga Time zone}}
| data119 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{if empty|{{{timezone1|}}}|{{{timezone}}}}} {{#if:{{{utc_offset1|}}}{{{utc_offset|}}}|([[UTC{{if empty|{{{utc_offset1|}}}|{{{utc_offset}}}}}]])}}
| 2= {{#if:{{{timezone2|}}}|{{{timezone2}}} {{#if:{{{utc_offset2|}}}|([[UTC{{{utc_offset2}}}]])}} }} }}}}
| label120 = <span class="nowrap"> • Xagaaga </span>
| data120 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{if empty|{{{timezone1_DST|}}}|{{{timezone_DST|}}}}} ([[UTC{{if empty|{{{utc_offset1_DST|}}}|{{{utc_offset_DST|}}}}}]])}}
| 2= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{#if:{{{timezone2_DST|}}}|{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST|}}}]])}} }}
}}}}
<!-- ***Area codes*** -->
| label121 = {{if empty|{{{postal_code_type|}}}|Koodka boostada}}
| data121 = {{{postal_code|}}}
| label122 = {{if empty|{{{area_code_type|}}}|Telephone numbering plan Koodka deegaankaArea code{{pluralize from text|{{{area_code|}}}|plural=s}}}}
| data122 = {{{area_code|}}}
| label123 = Diiwaangelinta gaadiidka
| data123 = {{{registration_plate|}}}
| label124 = {{if empty|{{{iso_code_type|}}}|ISO 3166-2 ISO code}}
| data124 = {{{iso_code|}}}
| label125 = Mareegta rasmiga ah
| data125 = {{{website|}}}
| data126 = {{{additional_info|}}}
| header127 = <nowiki />
| data128 = {{{misc|}}}
{{{module|}}}
| below = {{{footnotes|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|Category:Pages using infobox islands with unknown parameters _VALUE_ {{PAGENAME}}}}|preview=Page using Template:Infobox islands with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y|pushpin_map_args=y| additional_info | archipelago | area_acre | area_code | area_code_type | area_footnotes | area_ha | area_km2 | area_m2 | area_sqft | area_sqmi | coastline_footnotes | coastline_ft | coastline_km | coastline_m | coastline_mi | coordinates | country | country_admin_divisions | country_admin_divisions_1 | country_admin_divisions_2 | country_admin_divisions_3 | country_admin_divisions_4 | country_admin_divisions_title | country_admin_divisions_title_1 | country_admin_divisions_title_2 | country_admin_divisions_title_3 | country_admin_divisions_title_4 | country_area | country_area_acre | country_area_ha | country_area_km2 | country_area_m2 | country_area_sqft | country_area_sqmi | country_capital | country_capital_and_largest_city | country_largest_city | country_largest_city_population | country_largest_city_type | country_leader_name | country_leader_title | country1 | country1_admin_divisions | country1_admin_divisions_title | country1_area | country1_area_acre | country1_area_ha | country1_area_sqft | country1_area_sqmi | country1_capital | country1_capital_and_largest_city | country1_largest_city | country1_largest_city_population | country1_largest_city_type | country1_leader_name | country1_leader_title | country2 | country2_admin_divisions | country2_admin_divisions_title | country2_area | country2_area_acre | country2_area_ha | country2_area_sqft | country2_area_sqmi | country2_capital | country2_capital_and_largest_city | country2_largest_city | country2_largest_city_population | country2_largest_city_type | country2_leader_name | country2_leader_title | country3 | country3_admin_divisions | country3_admin_divisions_title | country3_area | country3_area_acre | country3_area_ha | country3_area_sqft | country3_area_sqmi | country3_capital | country3_capital_and_largest_city | country3_largest_city | country3_largest_city_population | country3_largest_city_type | country3_leader_name | country3_leader_title | country4 | country4_admin_divisions | country4_admin_divisions_title | country4_area | country4_area_acre | country4_area_ha | country4_area_sqft | country4_area_sqmi | country4_capital | country4_capital_and_largest_city | country4_largest_city | country4_largest_city_population | country4_largest_city_type | country4_leader_name | country4_leader_title | country5 | country5_admin_divisions | country5_admin_divisions_title | country5_area | country5_area_acre | country5_area_ha | country5_area_sqft | country5_area_sqmi | country5_capital | country5_capital_and_largest_city | country5_largest_city | country5_largest_city_population | country5_largest_city_type | country5_leader_name | country5_leader_title | country6 | country6_admin_divisions | country6_admin_divisions_title | country6_area | country6_area_acre | country6_area_ha | country6_area_sqft | country6_area_sqmi | country6_capital | country6_capital_and_largest_city | country6_largest_city | country6_largest_city_population | country6_largest_city_type | country6_leader_name | country6_leader_title | country7 | country7_admin_divisions | country7_admin_divisions_title | country7_area | country7_area_acre | country7_area_ha | country7_area_sqft | country7_area_sqmi | country7_capital | country7_capital_and_largest_city | country7_largest_city | country7_largest_city_population | country7_largest_city_type | country7_leader_name | country7_leader_title | country8 | country8_admin_divisions | country8_admin_divisions_title | country8_area | country8_area_acre | country8_area_ha | country8_area_sqft | country8_area_sqmi | country8_capital | country8_capital_and_largest_city | country8_largest_city | country8_largest_city_population | country8_largest_city_type | country8_leader_name | country8_leader_title | country1_admin_divisions_1 | country1_admin_divisions_2 | country1_admin_divisions_title_1 | country1_admin_divisions_title_2 | country1_area_km2 | country1_area_m2 | country2_admin_divisions_1 | country2_admin_divisions_title_1 | country2_area_km2 | country2_area_m2 | country3_admin_divisions_1 | country3_admin_divisions_title_1 | country3_area_km2 | country3_area_m2 | country4_admin_divisions_1 | country4_admin_divisions_title_1 | country4_area_km2 | country4_area_m2 | country5_admin_divisions_1 | country5_admin_divisions_title_1 | country5_area_km2 | country5_area_m2 | country6_admin_divisions_1 | country6_admin_divisions_title_1 | country6_area_km2 | country6_area_m2 | country7_admin_divisions_1 | country7_admin_divisions_title_1 | country7_area_km2 | country7_area_m2 | country8_admin_divisions_1 | country8_admin_divisions_title_1 | country8_area_km2 | country8_area_m2 | demonym | density_footnotes | density_km2 | density_rank | density_sqmi | disputed | elevation_footnotes | elevation_ft | elevation_m | embed | ethnic_groups | etymology | footnotes | grid_reference | highest_mount | image | image_alt | image_caption | image_map | image_size | island_type | iso_code | iso_code_type | languages | length_footnotes | length_ft | length_km | length_m | length_mi | local_name | location | major_islands | map_alt | map_caption | map_size | misc | module | name | native_name | native_name_lang | native_name_link | nickname | other_names | plural | population | population_as_of | population_footnotes | population_rank | population_rank_max | postal_code | postal_code_type | rank | registration_plate | timezone | timezone_DST | timezone1 | timezone1_DST | timezone2 | timezone2_DST | total_islands | treaty_system | type | utc_offset | utc_offset_DST | utc_offset1 | utc_offset1_DST | utc_offset2 | utc_offset2_DST | waterbody | website | width_footnotes | width_ft | width_km | width_m | width_max_ft | width_max_km | width_max_m | width_max_mi | width_mi | width_min_ft | width_min_km | width_min_m | width_min_mi }}{{#invoke:Check for conflicting parameters|check
| template = Template:Infobox islands
| cat = main otherCategory:Pages using infobox islands with conflicting parameters
| width_min_km; width_min_mi; width_min_m; width_min_ft
| width_max_km; width_max_mi; width_max_m; width_max_ft
| timezone1; timezone
| utc_offset1; utc_offset
| timezone1_DST; timezone_DST
| utc_offset1_DST; utc_offset_DST
}}<noinclude>
{{documentation}}
<!-- categories links go in /doc, not here -->
</noinclude>
lnflmwenbil5fu6a7d68ck0lfaglgx3
309256
309255
2026-09-23T16:25:59Z
Isma4l
41797
/* */
309256
wikitext
text/x-wiki
{{Infobox
| child = {{{embed|}}}
| bodyclass = ib-islands vcard
| templatestyles = Template:Infobox islands/styles.css
| titleclass = fn org
| title = {{#ifeq:{{{embed|}}}|yes|{{#if:{{{name|}}}|<div class="ib-islands-title-embed">{{{name|}}}</div>|}}|{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}}}
| above = {{#ifeq:{{{disputed|}}}|yes|{{#if:{{{type|}}}|Khilaaf dhuleed Disputed {{{type}}}|Khilaaf dhuleed Jasiirad Disputed island}}{{#ifeq:{{{plural}}}|yes|s<br>|<br>}}}}<!--
-->{{#if:{{{local_name|}}}<!--
-->|<div class="nickname">{{{local_name}}}</div><!--
-->|{{#if:{{{native_name|}}}<!--
-->|<div class="ib-islands-native">{{#if:{{{native_name_link|}}}|{{{native_name_link|}}} Magaca hooyo|Magaca hooyo}}: <div class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang|}}}}}">{{{native_name|}}}</div></div><!--
-->}}<!--
-->}}<!--
-->{{#if:{{{nickname|}}}|<div class="ib-islands-nick">Naanaysta: {{{nickname|}}}</div>}}
| autoheaders = y
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright=1.16|alt={{{image_alt|}}}}}
| caption = {{{image_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=frameless|upright=1.16|alt={{{map_alt|}}}}}
| caption2 = {{{map_caption|}}}
| image3 = {{#invoke:Location map|infobox_pushpin_map
| default_width = 260
}}
| image4 = {{#invoke:Infobox mapframe
| auto
| onByDefault = {{#if:{{{pushpin_map|}}}{{{image_map|}}}|no|yes}}
| mapframe-zoom = 7
| mapframe-marker-color = #a8bdec
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Khariidadda interactive ee {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| label1 = Magacyada kale{{pluralize from text|{{{other_names|}}}|plural=s}}
| data1 = {{{other_names|}}}
| label2 = Asalka erayga
| data2 = {{{etymology|}}}
| header3 = {{#ifeq:{{{embed|}}}|yes||Juquraafi}}
| label4 = Goobta
| data4 = {{{location|}}}
| label5 = Isku duwayaasha
| data5 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates}}}|type:isle}}}}
| label6 = Tixraaca shabakadda OS
| data6 = {{#if:{{{grid_reference|}}}| {{gbmappingsmall|{{{grid_reference|}}}|25|{{{grid_reference|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }} }}
| label7 = Nooca
| data7 = {{{island_type|}}}
| label8 = Jasiiradaha isku xiran
| class8 = note
| data8 = {{{archipelago|}}}
| label9 = {{nowrap|La deris ah}}
| data9 = {{{waterbody|}}}
| label10 = Wadarta jasiiradaha
| data10 = {{{total_islands|}}}
| label11 = Jasiiradaha waaweyn
| data11 = {{{major_islands|}}}
| label12 = Baaxadda
| data12 = {{Infobox islands/area| km2 = {{{area_km2|}}} | sqmi = {{{area_sqmi|}}} | m2 = {{{area_m2|}}} | sqft = {{{area_sqft|}}} | ha = {{{area_ha|}}} | acre = {{{area_acre|}}} }}{{{area_footnotes|}}}
| label13 = Kaalinta baaxadda
| data13 = {{{rank|}}}
| label14 = Dhererka
| data14 = {{Infobox islands/length | km = {{{length_km|}}} | mi = {{{length_mi|}}} | m = {{{length_m|}}} | ft = {{{length_ft|}}} }}{{{length_footnotes|}}}
| label15 = Ballaca
| data15 = {{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|{{convert<!--
-->|{{if empty|{{{width_min_km|}}}|{{{width_min_mi|}}}|{{{width_min_m|}}}|{{{width_min_ft|}}}}}<!--
-->|-<!--
-->|{{if empty|{{{width_max_km|}}}|{{{width_max_mi|}}}|{{{width_max_m|}}}|{{{width_max_ft|}}}}}<!--
-->|{{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->|km<!--
-->|{{#if:{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->|mi<!--
-->|{{#if:{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->|m<!--
-->|{{#if:{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|ft}}<!--
-->}}<!--
-->}}<!--
-->}}<!--
-->|abbr=on}}<!--
-->|{{Infobox islands/length | km = {{{width_km|}}} | mi = {{{width_mi|}}} | m = {{{width_m|}}} | ft = {{{width_ft|}}} }}<!--
-->}}{{{width_footnotes|}}}
| label16 = Xeebta
| data16 = {{Infobox islands/length | km = {{{coastline_km|}}} | mi = {{{coastline_mi|}}} | m = {{{coastline_m|}}} | ft = {{{coastline_ft|}}} }}{{{coastline_footnotes|}}}
| label17 = Meesha ugu sarreysa sareynta
| data17 = {{Infobox islands/length | m = {{{elevation_m|}}} | ft = {{{elevation_ft|}}} }}{{{elevation_footnotes|}}}
| label18 = Meesha ugu sarreysa barta
| data18 = {{{highest_mount|}}}
<!-- end geography -->
| header22 = Maamulka
| data23 = {{#switch:{{{country|}}}|=
|None|none={{#if:{{{treaty_system|}}}||<div>'''{{{country}}}'''</div>}}
|#default=<div>'''{{{country}}}'''</div>
}}
| data24 = {{#if:{{{treaty_system|}}}|Waxaa maamula heshiiska {{{treaty_system|}}}}}
| header25 = _BLANK_
| label26 = {{longitem|{{{country_admin_divisions_title|}}}}}
| data26 = {{{country_admin_divisions|}}}
| label27 = {{longitem|{{{country_admin_divisions_title_1|}}}}}
| data27 = {{{country_admin_divisions_1|}}}
| label28 = {{longitem|{{{country_admin_divisions_title_2|}}}}}
| data28 = {{{country_admin_divisions_2|}}}
| label29 = {{longitem|{{{country_admin_divisions_title_3|}}}}}
| data29 = {{{country_admin_divisions_3|}}}
| label30 = {{longitem|{{{country_admin_divisions_title_4|}}}}}
| data30 = {{{country_admin_divisions_4|}}}
| label31 = Caasimadda magaalada
| data31 = {{#if: {{{country_capital_and_largest_city|}}}||{{{country_capital|}}}}}
| label32 = {{longitem|Ugu weyn {{if empty|{{{country_largest_city_type|}}}|deegaanka}}}}
| data32 = {{#if: {{{country_capital_and_largest_city|}}}||{{#if: {{{country_largest_city|}}}|{{{country_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}}}
| label33 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country_largest_city_type|}}}|magaalada}}}}
| data33 = {{#if: {{{country_capital_and_largest_city|}}}|{{{country_capital_and_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}
| label34 = {{longitem|{{{country_leader_title|}}}}}
| data34 = {{{country_leader_name|}}}
| label35 = Baaxadda la daboolay
| data35 = {{Infobox islands/area| km2 = {{{country_area_km2|}}} | sqmi = {{{country_area_sqmi|}}} | m2 = {{{country_area_m2|}}} | sqft = {{{country_area_sqft|}}} | ha = {{{country_area_ha|}}} | acre = {{{country_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country_area|}}}
| header36 = {{#ifeq:{{{disputed|}}}|yes|Waxaa dalbanaya}}
| data37 = {{#if:{{{country1|}}}|{{#ifeq:{{{disputed|}}}|yes|<div class="ib-islands-country2">|<div class="ib-islands-country">}}{{{country1|}}}</div>}}
| label38 = {{longitem|{{{country1_admin_divisions_title|}}}}}
| data38 = {{{country1_admin_divisions|}}}
| label39 = {{longitem|{{{country1_admin_divisions_title_1|}}}}}
| data39 = {{{country1_admin_divisions_1|}}}
| label40 = {{longitem|{{{country1_admin_divisions_title_2|}}}}}
| data40 = {{{country1_admin_divisions_2|}}}
| label41 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country1_largest_city_type|}}}|city}}|city|magaalada}}}}
| data41 = {{#if: {{{country1_capital_and_largest_city|}}}||{{{country1_capital|}}}}}
| label42 = {{longitem|Ugu weyn {{if empty|{{{country1_largest_city_type|}}}|deegaanka}}}}
| data42 = {{#if: {{{country1_capital_and_largest_city|}}}||{{#if: {{{country1_largest_city|}}}|{{{country1_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}}}
| label43 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country1_largest_city_type|}}}|city}}}}
| data43 = {{#if: {{{country1_capital_and_largest_city|}}}|{{{country1_capital_and_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}
| label44 = {{longitem|{{{country1_leader_title|}}}}}
| data44 = {{{country1_leader_name|}}}
| label45 = Baaxadda la daboolay
| data45 = {{Infobox islands/area| km2 = {{{country1_area_km2|}}} | sqmi = {{{country1_area_sqmi|}}} | m2 = {{{country1_area_m2|}}} | sqft = {{{country1_area_sqft|}}} | ha = {{{country1_area_ha|}}} | acre = {{{country1_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country1_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country1_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country1_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country1_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country1_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country1_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country1_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country1_area|}}}
| data54 = {{#if:{{{country2|}}}|<div class="ib-islands-country">{{{country2|}}}</div>}}
| label55 = {{longitem|{{{country2_admin_divisions_title|}}}}}
| data55 = {{{country2_admin_divisions|}}}
| label56 = {{longitem|{{{country2_admin_divisions_title_1|}}}}}
| data56 = {{{country2_admin_divisions_1|}}}
| label57 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country2_largest_city_type|}}}|city}}|city|magaalada}}}}
| data57 = {{#if: {{{country2_capital_and_largest_city|}}}||{{{country2_capital|}}}}}
| label58 = {{longitem|Ugu weyn {{if empty|{{{country2_largest_city_type|}}}|deegaanka}}}}
| data58 = {{#if: {{{country2_capital_and_largest_city|}}}||{{#if: {{{country2_largest_city|}}}|{{{country2_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}}}
| label59 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country2_largest_city_type|}}}|city}}}}
| data59 = {{#if: {{{country2_capital_and_largest_city|}}}|{{{country2_capital_and_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}
| label60 = {{longitem|{{{country2_leader_title|}}}}}
| data60 = {{{country2_leader_name|}}}
| label61 = Baaxadda la daboolay
| data61 = {{Infobox islands/area| km2 = {{{country2_area_km2|}}} | sqmi = {{{country2_area_sqmi|}}} | m2 = {{{country2_area_m2|}}} | sqft = {{{country2_area_sqft|}}} | ha = {{{country2_area_ha|}}} | acre = {{{country2_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country2_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country2_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country2_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country2_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country2_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country2_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country2_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country2_area|}}}
| data62 = {{#if:{{{country3|}}}|<div class="ib-islands-country">{{{country3|}}}</div>}}
| label63 = {{{country3_admin_divisions_title|}}}
| data63 = {{{country3_admin_divisions|}}}
| label64 = {{{country3_admin_divisions_title_1|}}}
| data64 = {{{country3_admin_divisions_1|}}}
| label65 = Caasimadda {{#ifeq: {{if empty|{{{country3_largest_city_type|}}}|city}}|city|magaalada}}
| data65 = {{#if: {{{country3_capital_and_largest_city|}}}||{{{country3_capital|}}}}}
| label66 = Ugu weyn {{if empty|{{{country3_largest_city_type|}}}|deegaanka}}
| data66 = {{#if: {{{country3_capital_and_largest_city|}}}||{{#if: {{{country3_largest_city|}}}|{{{country3_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}}}
| label67 = Caasimadda iyo tan ugu weyn {{if empty|{{{country3_largest_city_type|}}}|city}}
| data67 = {{#if: {{{country3_capital_and_largest_city|}}}|{{{country3_capital_and_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}
| label68 = {{{country3_leader_title|}}}
| data68 = {{{country3_leader_name|}}}
| label69 = Baaxadda la daboolay
| data69 = {{Infobox islands/area| km2 = {{{country3_area_km2|}}} | sqmi = {{{country3_area_sqmi|}}} | m2 = {{{country3_area_m2|}}} | sqft = {{{country3_area_sqft|}}} | ha = {{{country3_area_ha|}}} | acre = {{{country3_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country3_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country3_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country3_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country3_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country3_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country3_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country3_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country3_area|}}}
| data70 = {{#if:{{{country4|}}}|<div class="ib-islands-country">{{{country4|}}}</div>}}
| label71 = {{{country4_admin_divisions_title|}}}
| data71 = {{{country4_admin_divisions|}}}
| label72 = {{{country4_admin_divisions_title_1|}}}
| data72 = {{{country4_admin_divisions_1|}}}
| label73 = Caasimadda {{#ifeq: {{if empty|{{{country4_largest_city_type|}}}|city}}|city|magaalada}}
| data73 = {{#if: {{{country4_capital_and_largest_city|}}}||{{{country4_capital|}}}}}
| label74 = Ugu weyn {{if empty|{{{country4_largest_city_type|}}}|deegaanka}}
| data74 = {{#if: {{{country4_capital_and_largest_city|}}}||{{#if: {{{country4_largest_city|}}}|{{{country4_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}}}
| label75 = Caasimadda iyo tan ugu weyn {{if empty|{{{country4_largest_city_type|}}}|city}}
| data75 = {{#if: {{{country4_capital_and_largest_city|}}}|{{{country4_capital_and_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}
| label76 = {{{country4_leader_title|}}}
| data76 = {{{country4_leader_name|}}}
| label77 = Baaxadda la daboolay
| data77 = {{Infobox islands/area| km2 = {{{country4_area_km2|}}} | sqmi = {{{country4_area_sqmi|}}} | m2 = {{{country4_area_m2|}}} | sqft = {{{country4_area_sqft|}}} | ha = {{{country4_area_ha|}}} | acre = {{{country4_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country4_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country4_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country4_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country4_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country4_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country4_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country4_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country4_area|}}}
| data78 = {{#if:{{{country5|}}}|<div class="ib-islands-country">{{{country5|}}}</div>}}
| label79 = {{{country5_admin_divisions_title|}}}
| data79 = {{{country5_admin_divisions|}}}
| label80 = {{{country5_admin_divisions_title_1|}}}
| data80 = {{{country5_admin_divisions_1|}}}
| label81 = Caasimadda {{#ifeq: {{if empty|{{{country5_largest_city_type|}}}|city}}|city|magaalada}}
| data81 = {{#if: {{{country5_capital_and_largest_city|}}}||{{{country5_capital|}}}}}
| label82 = Ugu weyn {{if empty|{{{country5_largest_city_type|}}}|deegaanka}}
| data82 = {{#if: {{{country5_capital_and_largest_city|}}}||{{#if: {{{country5_largest_city|}}}|{{{country5_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}}}
| label83 = Caasimadda iyo tan ugu weyn {{if empty|{{{country5_largest_city_type|}}}|city}}
| data83 = {{#if: {{{country5_capital_and_largest_city|}}}|{{{country5_capital_and_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}
| label84 = {{{country5_leader_title|}}}
| data84 = {{{country5_leader_name|}}}
| label85 = Baaxadda la daboolay
| data85 = {{Infobox islands/area| km2 = {{{country5_area_km2|}}} | sqmi = {{{country5_area_sqmi|}}} | m2 = {{{country5_area_m2|}}} | sqft = {{{country5_area_sqft|}}} | ha = {{{country5_area_ha|}}} | acre = {{{country5_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country5_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country5_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country5_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country5_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country5_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country5_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country5_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country5_area|}}}
| data86 = {{#if:{{{country6|}}}|<div class="ib-islands-country">{{{country6|}}}</div>}}
| label87 = {{{country6_admin_divisions_title|}}}
| data87 = {{{country6_admin_divisions|}}}
| label88 = {{{country6_admin_divisions_title_1|}}}
| data88 = {{{country6_admin_divisions_1|}}}
| label89 = Caasimadda {{#ifeq: {{if empty|{{{country6_largest_city_type|}}}|city}}|city|magaalada}}
| data89 = {{#if: {{{country6_capital_and_largest_city|}}}||{{{country6_capital|}}}}}
| label90 = Ugu weyn {{if empty|{{{country6_largest_city_type|}}}|deegaanka}}
| data90 = {{#if: {{{country6_capital_and_largest_city|}}}||{{#if: {{{country6_largest_city|}}}|{{{country6_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}}}
| label91 = Caasimadda iyo tan ugu weyn {{if empty|{{{country6_largest_city_type|}}}|city}}
| data91 = {{#if: {{{country6_capital_and_largest_city|}}}|{{{country6_capital_and_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}
| label92 = {{{country6_leader_title|}}}
| data92 = {{{country6_leader_name|}}}
| label93 = Baaxadda la daboolay
| data93 = {{Infobox islands/area| km2 = {{{country6_area_km2|}}} | sqmi = {{{country6_area_sqmi|}}} | m2 = {{{country6_area_m2|}}} | sqft = {{{country6_area_sqft|}}} | ha = {{{country6_area_ha|}}} | acre = {{{country6_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country6_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country6_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country6_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country6_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country6_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country6_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country6_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country6_area|}}}
| data94 = {{#if:{{{country7|}}}|<div class="ib-islands-country">{{{country7|}}}</div>}}
| label95 = {{{country7_admin_divisions_title|}}}
| data95 = {{{country7_admin_divisions|}}}
| label96 = {{{country7_admin_divisions_title_1|}}}
| data96 = {{{country7_admin_divisions_1|}}}
| label97 = Caasimadda {{#ifeq: {{if empty|{{{country7_largest_city_type|}}}|city}}|city|magaalada}}
| data97 = {{#if: {{{country7_capital_and_largest_city|}}}||{{{country7_capital|}}}}}
| label98 = Ugu weyn {{if empty|{{{country7_largest_city_type|}}}|deegaanka}}
| data98 = {{#if: {{{country7_capital_and_largest_city|}}}||{{#if: {{{country7_largest_city|}}}|{{{country7_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}}}
| label99 = Caasimadda iyo tan ugu weyn {{if empty|{{{country7_largest_city_type|}}}|city}}
| data99 = {{#if: {{{country7_capital_and_largest_city|}}}|{{{country7_capital_and_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}
| label100 = {{{country7_leader_title|}}}
| data100 = {{{country7_leader_name|}}}
| label101 = Baaxadda la daboolay
| data101 = {{Infobox islands/area| km2 = {{{country7_area_km2|}}} | sqmi = {{{country7_area_sqmi|}}} | m2 = {{{country7_area_m2|}}} | sqft = {{{country7_area_sqft|}}} | ha = {{{country7_area_ha|}}} | acre = {{{country7_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country7_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country7_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country7_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country7_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country7_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country7_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country7_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country7_area|}}}
| data102 = {{#if:{{{country8|}}}|<div class="ib-islands-country">{{{country8|}}}</div>}}
| label103 = {{{country8_admin_divisions_title|}}}
| data103 = {{{country8_admin_divisions|}}}
| label104 = {{{country8_admin_divisions_title_1|}}}
| data104 = {{{country8_admin_divisions_1|}}}
| label105 = Caasimadda {{#ifeq: {{if empty|{{{country8_largest_city_type|}}}|city}}|city|magaalada}}
| data105 = {{#if: {{{country8_capital_and_largest_city|}}}||{{{country8_capital|}}}}}
| label106 = Ugu weyn {{if empty|{{{country8_largest_city_type|}}}|deegaanka}}
| data106 = {{#if: {{{country8_capital_and_largest_city|}}}||{{#if: {{{country8_largest_city|}}}|{{{country8_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}}}
| label107 = Caasimadda iyo tan ugu weyn {{if empty|{{{country8_largest_city_type|}}}|city}}
| data107 = {{#if: {{{country8_capital_and_largest_city|}}}|{{{country8_capital_and_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}
| label108 = {{{country8_leader_title|}}}
| data108 = {{{country8_leader_name|}}}
| label109 = Baaxadda la daboolay
| data109 = {{Infobox islands/area| km2 = {{{country8_area_km2|}}} | sqmi = {{{country8_area_sqmi|}}} | m2 = {{{country8_area_m2|}}} | sqft = {{{country8_area_sqft|}}} | ha = {{{country8_area_ha|}}} | acre = {{{country8_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country8_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country8_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country8_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country8_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country8_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country8_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country8_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country8_area|}}}
<!-- end administration -->
| header110 = Dadweynaha
| label111 = Qowmiyadda
| data111 = {{{demonym|}}}
| label112 = Tirada dadka
| data112 = {{{population|}}} {{#if:{{{population_as_of|}}}|({{{population_as_of|}}})}}{{{population_footnotes|}}}
| label113 = Kaalinta dadka
| data113 = {{#if:{{{population_rank|}}}|{{{population_rank|}}} {{#if:{{{population_rank_max|}}}|inta u dhaxaysa out of {{{population_rank_max|}}} }} }}
| label114 = Cufnaanta dadka
| data114 = {{Infobox islands/density| km2 = {{{density_km2|}}}| sqmi = {{{density_sqmi|}}} }}{{{density_footnotes|}}}
| label115 = Kaalinta cufnaanta dadka
| data115 = {{{density_rank|}}}
| label116 = Luuqadaha
| data116 = {{{languages|}}}
| label117 = Qowmiyadaha
| data117 = {{{ethnic_groups|}}}
<!-- end demographics -->
| header118 = Macluumaad dheeraad ah
<!-- ***Time Zones*** -->
| label119 = {{#if:{{both|{{if empty|{{{timezone1|}}}|{{{timezone|}}}}}|{{{timezone2|}}}}}|Aagagga waqtiga Time zones|Aagga waqtiga Time zone}}
| data119 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{if empty|{{{timezone1|}}}|{{{timezone}}}}} {{#if:{{{utc_offset1|}}}{{{utc_offset|}}}|([[UTC{{if empty|{{{utc_offset1|}}}|{{{utc_offset}}}}}]])}}
| 2= {{#if:{{{timezone2|}}}|{{{timezone2}}} {{#if:{{{utc_offset2|}}}|([[UTC{{{utc_offset2}}}]])}} }} }}}}
| label120 = <span class="nowrap"> • Xagaaga </span>
| data120 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{if empty|{{{timezone1_DST|}}}|{{{timezone_DST|}}}}} ([[UTC{{if empty|{{{utc_offset1_DST|}}}|{{{utc_offset_DST|}}}}}]])}}
| 2= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{#if:{{{timezone2_DST|}}}|{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST|}}}]])}} }}
}}}}
<!-- ***Area codes*** -->
| label121 = {{if empty|{{{postal_code_type|}}}|Koodka boostada}}
| data121 = {{{postal_code|}}}
| label122 = {{if empty|{{{area_code_type|}}}|Telephone numbering plan Koodka deegaankaArea code{{pluralize from text|{{{area_code|}}}|plural=s}}}}
| data122 = {{{area_code|}}}
| label123 = Diiwaangelinta gaadiidka
| data123 = {{{registration_plate|}}}
| label124 = {{if empty|{{{iso_code_type|}}}|ISO 3166-2 ISO code}}
| data124 = {{{iso_code|}}}
| label125 = Mareegta rasmiga ah
| data125 = {{{website|}}}
| data126 = {{{additional_info|}}}
| header127 = <nowiki />
| data128 = {{{misc|}}}
{{{module|}}}
| below = {{{footnotes|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|}}|preview=Page using Template:Infobox islands with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y|pushpin_map_args=y| additional_info | archipelago | area_acre | area_code | area_code_type | area_footnotes | area_ha | area_km2 | area_m2 | area_sqft | area_sqmi | coastline_footnotes | coastline_ft | coastline_km | coastline_m | coastline_mi | coordinates | country | country_admin_divisions | country_admin_divisions_1 | country_admin_divisions_2 | country_admin_divisions_3 | country_admin_divisions_4 | country_admin_divisions_title | country_admin_divisions_title_1 | country_admin_divisions_title_2 | country_admin_divisions_title_3 | country_admin_divisions_title_4 | country_area | country_area_acre | country_area_ha | country_area_km2 | country_area_m2 | country_area_sqft | country_area_sqmi | country_capital | country_capital_and_largest_city | country_largest_city | country_largest_city_population | country_largest_city_type | country_leader_name | country_leader_title | country1 | country1_admin_divisions | country1_admin_divisions_title | country1_area | country1_area_acre | country1_area_ha | country1_area_sqft | country1_area_sqmi | country1_capital | country1_capital_and_largest_city | country1_largest_city | country1_largest_city_population | country1_largest_city_type | country1_leader_name | country1_leader_title | country2 | country2_admin_divisions | country2_admin_divisions_title | country2_area | country2_area_acre | country2_area_ha | country2_area_km2 | country2_area_m2 | country2_area_sqft | country2_area_sqmi | country2_capital | country2_capital_and_largest_city | country2_largest_city | country2_largest_city_population | country2_largest_city_type | country2_leader_name | country2_leader_title | country3 | country3_admin_divisions | country3_admin_divisions_title | country3_area | country3_area_acre | country3_area_ha | country3_area_km2 | country3_area_m2 | country3_area_sqft | country3_area_sqmi | country3_capital | country3_capital_and_largest_city | country3_largest_city | country3_largest_city_population | country3_largest_city_type | country3_leader_name | country3_leader_title | country4 | country4_admin_divisions | country4_admin_divisions_title | country4_area | country4_area_acre | country4_area_ha | country4_area_km2 | country4_area_m2 | country4_area_sqft | country4_area_sqmi | country4_capital | country4_capital_and_largest_city | country4_largest_city | country4_largest_city_population | country4_largest_city_type | country4_leader_name | country4_leader_title | country5 | country5_admin_divisions | country5_admin_divisions_title | country5_area | country5_area_acre | country5_area_ha | country5_area_km2 | country5_area_m2 | country5_area_sqft | country5_area_sqmi | country5_capital | country5_capital_and_largest_city | country5_largest_city | country5_largest_city_population | country5_largest_city_type | country5_leader_name | country5_leader_title | country6 | country6_admin_divisions | country6_admin_divisions_title | country6_area | country6_area_acre | country6_area_ha | country6_area_km2 | country6_area_m2 | country6_area_sqft | country6_area_sqmi | country6_capital | country6_capital_and_largest_city | country6_largest_city | country6_largest_city_population | country6_largest_city_type | country6_leader_name | country6_leader_title | country7 | country7_admin_divisions | country7_admin_divisions_title | country7_area | country7_area_acre | country7_area_ha | country7_area_km2 | country7_area_m2 | country7_area_sqft | country7_area_sqmi | country7_capital | country7_capital_and_largest_city | country7_largest_city | country7_largest_city_population | country7_largest_city_type | country7_leader_name | country7_leader_title | country8 | country8_admin_divisions | country8_admin_divisions_title | country8_area | country8_area_acre | country8_area_ha | country8_area_km2 | country8_area_m2 | country8_area_sqft | country8_area_sqmi | country8_capital | country8_capital_and_largest_city | country8_largest_city_population | country8_largest_city_type | country8_leader_name | country8_leader_title | country1_admin_divisions_1 | country1_admin_divisions_2 | country1_admin_divisions_title_1 | country1_admin_divisions_title_2 | country1_area_km2 | country1_area_m2 | country2_admin_divisions_1 | country2_admin_divisions_title_1 | country2_area_km2 | country2_area_m2 | country3_admin_divisions_1 | country3_admin_divisions_title_1 | country3_area_km2 | country3_area_m2 | country4_admin_divisions_1 | country4_admin_divisions_title_1 | country4_area_km2 | country4_area_m2 | country5_admin_divisions_1 | country5_admin_divisions_title_1 | country5_area_km2 | country5_area_m2 | country6_admin_divisions_1 | country6_admin_divisions_title_1 | country6_area_km2 | country6_area_m2 | country7_admin_divisions_1 | country7_admin_divisions_title_1 | country7_area_km2 | country7_area_m2 | country8_admin_divisions_1 | country8_admin_divisions_title_1 | country8_area_km2 | country8_area_m2 | demonym | density_footnotes | density_km2 | density_rank | density_sqmi | disputed | elevation_footnotes | elevation_ft | elevation_m | embed | ethnic_groups | etymology | footnotes | grid_reference | highest_mount | image | image_alt | image_caption | image_map | image_size | island_type | iso_code | iso_code_type | languages | length_footnotes | length_ft | length_km | length_m | length_mi | local_name | location | major_islands | map_alt | map_caption | map_size | misc | module | name | native_name | native_name_lang | native_name_link | nickname | other_names | plural | population | population_as_of | population_footnotes | population_rank | population_rank_max | postal_code | postal_code_type | rank | registration_plate | timezone | timezone_DST | timezone1 | timezone1_DST | timezone2 | timezone2_DST | total_islands | treaty_system | type | utc_offset | utc_offset_DST | utc_offset1 | utc_offset1_DST | utc_offset2 | utc_offset2_DST | waterbody | website | width_footnotes | width_ft | width_km | width_m | width_max_ft | width_max_km | width_max_m | width_max_mi | width_mi | width_min_ft | width_min_km | width_min_m | width_min_mi }}{{#invoke:Check for conflicting parameters|check
| template = Template:Infobox islands
| width_min_km; width_min_mi; width_min_m; width_min_ft
| width_max_km; width_max_mi; width_max_m; width_max_ft
| timezone1; timezone
| utc_offset1; utc_offset
| timezone1_DST; timezone_DST
| utc_offset1_DST; utc_offset_DST
}}<noinclude>
{{documentation}}
<!-- categories links go in /doc, not here -->
</noinclude>
cos8cel3lvte1dsprtmtgykloxqb0v5
309257
309256
2026-09-23T16:30:29Z
Isma4l
41797
/* */
309257
wikitext
text/x-wiki
{{Infobox
| child = {{{embed|}}}
| bodyclass = ib-islands vcard
| templatestyles = Template:Infobox islands/styles.css
| titleclass = fn org
| title = {{#ifeq:{{{embed|}}}|yes|{{#if:{{{name|}}}|<div class="ib-islands-title-embed">{{{name|}}}</div>|}}|{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}}}
| above = {{#ifeq:{{{disputed|}}}|yes|{{#if:{{{type|}}}|Khilaaf dhuleed Disputed {{{type}}}|Khilaaf dhuleed Jasiirad Disputed island}}{{#ifeq:{{{plural}}}|yes|s<br>|<br>}}}}<!--
-->{{#if:{{{local_name|}}}<!--
-->|<div class="nickname">{{{local_name}}}</div><!--
-->|{{#if:{{{native_name|}}}<!--
-->|<div class="ib-islands-native">{{#if:{{{native_name_link|}}}|{{{native_name_link|}}} Magaca hooyo|Magaca hooyo}}: <div class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang|}}}}}">{{{native_name|}}}</div></div><!--
-->}}<!--
-->}}<!--
-->{{#if:{{{nickname|}}}|<div class="ib-islands-nick">Naanaysta: {{{nickname|}}}</div>}}
| autoheaders = y
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright=1.16|alt={{{image_alt|}}}}}
| caption = {{{image_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=frameless|upright=1.16|alt={{{map_alt|}}}}}
| caption2 = {{{map_caption|}}}
| image3 = {{#invoke:Location map|infobox_pushpin_map
| default_width = 260
}}
| image4 = {{#invoke:Infobox mapframe
| auto
| onByDefault = {{#if:{{{pushpin_map|}}}{{{image_map|}}}|no|yes}}
| mapframe-zoom = 7
| mapframe-marker-color = #a8bdec
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Khariidadda interactive ee {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| label1 = Magacyada kale{{pluralize from text|{{{other_names|}}}|plural=s}}
| data1 = {{{other_names|}}}
| label2 = Asalka erayga
| data2 = {{{etymology|}}}
| header3 = {{#ifeq:{{{embed|}}}|yes||Juquraafi}}
| label4 = Goobta
| data4 = {{{location|}}}
| label5 = Isku duwayaasha
| data5 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates}}}|type:isle}}}}
| label6 = Tixraaca shabakadda OS
| data6 = {{#if:{{{grid_reference|}}}| {{gbmappingsmall|{{{grid_reference|}}}|25|{{{grid_reference|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }} }}
| label7 = Nooca
| data7 = {{{island_type|}}}
| label8 = Jasiiradaha isku xiran
| class8 = note
| data8 = {{{archipelago|}}}
| label9 = {{nowrap|La deris ah}}
| data9 = {{{waterbody|}}}
| label10 = Wadarta jasiiradaha
| data10 = {{{total_islands|}}}
| label11 = Jasiiradaha waaweyn
| data11 = {{{major_islands|}}}
| label12 = Baaxadda
| data12 = {{Infobox islands/area| km2 = {{{area_km2|}}} | sqmi = {{{area_sqmi|}}} | m2 = {{{area_m2|}}} | sqft = {{{area_sqft|}}} | ha = {{{area_ha|}}} | acre = {{{area_acre|}}} }}{{{area_footnotes|}}}
| label13 = Kaalinta baaxadda
| data13 = {{{rank|}}}
| label14 = Dhererka
| data14 = {{Infobox islands/length | km = {{{length_km|}}} | mi = {{{length_mi|}}} | m = {{{length_m|}}} | ft = {{{length_ft|}}} }}{{{length_footnotes|}}}
| label15 = Ballaca
| data15 = {{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|{{convert<!--
-->|{{if empty|{{{width_min_km|}}}|{{{width_min_mi|}}}|{{{width_min_m|}}}|{{{width_min_ft|}}}}}<!--
-->|-<!--
-->|{{if empty|{{{width_max_km|}}}|{{{width_max_mi|}}}|{{{width_max_m|}}}|{{{width_max_ft|}}}}}<!--
-->|{{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->|km<!--
-->|{{#if:{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->|mi<!--
-->|{{#if:{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->|m<!--
-->|{{#if:{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|ft}}<!--
-->}}<!--
-->}}<!--
-->}}<!--
-->|abbr=on}}<!--
-->|{{Infobox islands/length | km = {{{width_km|}}} | mi = {{{width_mi|}}} | m = {{{width_m|}}} | ft = {{{width_ft|}}} }}<!--
-->}}{{{width_footnotes|}}}
| label16 = Xeebta
| data16 = {{Infobox islands/length | km = {{{coastline_km|}}} | mi = {{{coastline_mi|}}} | m = {{{coastline_m|}}} | ft = {{{coastline_ft|}}} }}{{{coastline_footnotes|}}}
| label17 = Meesha ugu sarreysa sareynta
| data17 = {{Infobox islands/length | m = {{{elevation_m|}}} | ft = {{{elevation_ft|}}} }}{{{elevation_footnotes|}}}
| label18 = Meesha ugu sarreysa barta
| data18 = {{{highest_mount|}}}
<!-- end geography -->
| header22 = Maamulka
| data23 = {{#switch:{{{country|}}}|=
|None|none={{#if:{{{treaty_system|}}}||<div>'''{{{country}}}'''</div>}}
|#default=<div>'''{{{country}}}'''</div>
}}
| data24 = {{#if:{{{treaty_system|}}}|Waxaa maamula heshiiska {{{treaty_system|}}}}}
| header25 = _BLANK_
| label26 = {{longitem|{{{country_admin_divisions_title|}}}}}
| data26 = {{{country_admin_divisions|}}}
| label27 = {{longitem|{{{country_admin_divisions_title_1|}}}}}
| data27 = {{{country_admin_divisions_1|}}}
| label28 = {{longitem|{{{country_admin_divisions_title_2|}}}}}
| data28 = {{{country_admin_divisions_2|}}}
| label29 = {{longitem|{{{country_admin_divisions_title_3|}}}}}
| data29 = {{{country_admin_divisions_3|}}}
| label30 = {{longitem|{{{country_admin_divisions_title_4|}}}}}
| data30 = {{{country_admin_divisions_4|}}}
| label31 = Caasimadda magaalada
| data31 = {{#if: {{{country_capital_and_largest_city|}}}||{{{country_capital|}}}}}
| label32 = {{longitem|Ugu weyn {{if empty|{{{country_largest_city_type|}}}|deegaanka}}}}
| data32 = {{#if: {{{country_capital_and_largest_city|}}}||{{#if: {{{country_largest_city|}}}|{{{country_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}}}
| label33 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country_largest_city_type|}}}|magaalada}}}}
| data33 = {{#if: {{{country_capital_and_largest_city|}}}|{{{country_capital_and_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}
| label34 = {{longitem|{{{country_leader_title|}}}}}
| data34 = {{{country_leader_name|}}}
| label35 = Baaxadda la daboolay
| data35 = {{Infobox islands/area| km2 = {{{country_area_km2|}}} | sqmi = {{{country_area_sqmi|}}} | m2 = {{{country_area_m2|}}} | sqft = {{{country_area_sqft|}}} | ha = {{{country_area_ha|}}} | acre = {{{country_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country_area|}}}
| header36 = {{#ifeq:{{{disputed|}}}|yes|Waxaa dalbanaya}}
| data37 = {{#if:{{{country1|}}}|{{#ifeq:{{{disputed|}}}|yes|<div class="ib-islands-country2">|<div class="ib-islands-country">}}{{{country1|}}}</div>}}
| label38 = {{longitem|{{{country1_admin_divisions_title|}}}}}
| data38 = {{{country1_admin_divisions|}}}
| label39 = {{longitem|{{{country1_admin_divisions_title_1|}}}}}
| data39 = {{{country1_admin_divisions_1|}}}
| label40 = {{longitem|{{{country1_admin_divisions_title_2|}}}}}
| data40 = {{{country1_admin_divisions_2|}}}
| label41 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country1_largest_city_type|}}}|city}}|city|magaalada}}}}
| data41 = {{#if: {{{country1_capital_and_largest_city|}}}||{{{country1_capital|}}}}}
| label42 = {{longitem|Ugu weyn {{if empty|{{{country1_largest_city_type|}}}|deegaanka}}}}
| data42 = {{#if: {{{country1_capital_and_largest_city|}}}||{{#if: {{{country1_largest_city|}}}|{{{country1_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}}}
| label43 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country1_largest_city_type|}}}|city}}}}
| data43 = {{#if: {{{country1_capital_and_largest_city|}}}|{{{country1_capital_and_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}
| label44 = {{longitem|{{{country1_leader_title|}}}}}
| data44 = {{{country1_leader_name|}}}
| label45 = Baaxadda la daboolay
| data45 = {{Infobox islands/area| km2 = {{{country1_area_km2|}}} | sqmi = {{{country1_area_sqmi|}}} | m2 = {{{country1_area_m2|}}} | sqft = {{{country1_area_sqft|}}} | ha = {{{country1_area_ha|}}} | acre = {{{country1_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country1_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country1_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country1_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country1_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country1_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country1_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country1_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country1_area|}}}
| data54 = {{#if:{{{country2|}}}|<div class="ib-islands-country">{{{country2|}}}</div>}}
| label55 = {{longitem|{{{country2_admin_divisions_title|}}}}}
| data55 = {{{country2_admin_divisions|}}}
| label56 = {{longitem|{{{country2_admin_divisions_title_1|}}}}}
| data56 = {{{country2_admin_divisions_1|}}}
| label57 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country2_largest_city_type|}}}|city}}|city|magaalada}}}}
| data57 = {{#if: {{{country2_capital_and_largest_city|}}}||{{{country2_capital|}}}}}
| label58 = {{longitem|Ugu weyn {{if empty|{{{country2_largest_city_type|}}}|deegaanka}}}}
| data58 = {{#if: {{{country2_capital_and_largest_city|}}}||{{#if: {{{country2_largest_city|}}}|{{{country2_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}}}
| label59 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country2_largest_city_type|}}}|city}}}}
| data59 = {{#if: {{{country2_capital_and_largest_city|}}}|{{{country2_capital_and_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}
| label60 = {{longitem|{{{country2_leader_title|}}}}}
| data60 = {{{country2_leader_name|}}}
| label61 = Baaxadda la daboolay
| data61 = {{Infobox islands/area| km2 = {{{country2_area_km2|}}} | sqmi = {{{country2_area_sqmi|}}} | m2 = {{{country2_area_m2|}}} | sqft = {{{country2_area_sqft|}}} | ha = {{{country2_area_ha|}}} | acre = {{{country2_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country2_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country2_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country2_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country2_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country2_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country2_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country2_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country2_area|}}}
| data62 = {{#if:{{{country3|}}}|<div class="ib-islands-country">{{{country3|}}}</div>}}
| label63 = {{{country3_admin_divisions_title|}}}
| data63 = {{{country3_admin_divisions|}}}
| label64 = {{{country3_admin_divisions_title_1|}}}
| data64 = {{{country3_admin_divisions_1|}}}
| label65 = Caasimadda {{#ifeq: {{if empty|{{{country3_largest_city_type|}}}|city}}|city|magaalada}}
| data65 = {{#if: {{{country3_capital_and_largest_city|}}}||{{{country3_capital|}}}}}
| label66 = Ugu weyn {{if empty|{{{country3_largest_city_type|}}}|deegaanka}}
| data66 = {{#if: {{{country3_capital_and_largest_city|}}}||{{#if: {{{country3_largest_city|}}}|{{{country3_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}}}
| label67 = Caasimadda iyo tan ugu weyn {{if empty|{{{country3_largest_city_type|}}}|city}}
| data67 = {{#if: {{{country3_capital_and_largest_city|}}}|{{{country3_capital_and_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}
| label68 = {{{country3_leader_title|}}}
| data68 = {{{country3_leader_name|}}}
| label69 = Baaxadda la daboolay
| data69 = {{Infobox islands/area| km2 = {{{country3_area_km2|}}} | sqmi = {{{country3_area_sqmi|}}} | m2 = {{{country3_area_m2|}}} | sqft = {{{country3_area_sqft|}}} | ha = {{{country3_area_ha|}}} | acre = {{{country3_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country3_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country3_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country3_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country3_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country3_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country3_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country3_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country3_area|}}}
| data70 = {{#if:{{{country4|}}}|<div class="ib-islands-country">{{{country4|}}}</div>}}
| label71 = {{{country4_admin_divisions_title|}}}
| data71 = {{{country4_admin_divisions|}}}
| label72 = {{{country4_admin_divisions_title_1|}}}
| data72 = {{{country4_admin_divisions_1|}}}
| label73 = Caasimadda {{#ifeq: {{if empty|{{{country4_largest_city_type|}}}|city}}|city|magaalada}}
| data73 = {{#if: {{{country4_capital_and_largest_city|}}}||{{{country4_capital|}}}}}
| label74 = Ugu weyn {{if empty|{{{country4_largest_city_type|}}}|deegaanka}}
| data74 = {{#if: {{{country4_capital_and_largest_city|}}}||{{#if: {{{country4_largest_city|}}}|{{{country4_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}}}
| label75 = Caasimadda iyo tan ugu weyn {{if empty|{{{country4_largest_city_type|}}}|city}}
| data75 = {{#if: {{{country4_capital_and_largest_city|}}}|{{{country4_capital_and_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}
| label76 = {{{country4_leader_title|}}}
| data76 = {{{country4_leader_name|}}}
| label77 = Baaxadda la daboolay
| data77 = {{Infobox islands/area| km2 = {{{country4_area_km2|}}} | sqmi = {{{country4_area_sqmi|}}} | m2 = {{{country4_area_m2|}}} | sqft = {{{country4_area_sqft|}}} | ha = {{{country4_area_ha|}}} | acre = {{{country4_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country4_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country4_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country4_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country4_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country4_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country4_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country4_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country4_area|}}}
| data78 = {{#if:{{{country5|}}}|<div class="ib-islands-country">{{{country5|}}}</div>}}
| label79 = {{{country5_admin_divisions_title|}}}
| data79 = {{{country5_admin_divisions|}}}
| label80 = {{{country5_admin_divisions_title_1|}}}
| data80 = {{{country5_admin_divisions_1|}}}
| label81 = Caasimadda {{#ifeq: {{if empty|{{{country5_largest_city_type|}}}|city}}|city|magaalada}}
| data81 = {{#if: {{{country5_capital_and_largest_city|}}}||{{{country5_capital|}}}}}
| label82 = Ugu weyn {{if empty|{{{country5_largest_city_type|}}}|deegaanka}}
| data82 = {{#if: {{{country5_capital_and_largest_city|}}}||{{#if: {{{country5_largest_city|}}}|{{{country5_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}}}
| label83 = Caasimadda iyo tan ugu weyn {{if empty|{{{country5_largest_city_type|}}}|city}}
| data83 = {{#if: {{{country5_capital_and_largest_city|}}}|{{{country5_capital_and_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}
| label84 = {{{country5_leader_title|}}}
| data84 = {{{country5_leader_name|}}}
| label85 = Baaxadda la daboolay
| data85 = {{Infobox islands/area| km2 = {{{country5_area_km2|}}} | sqmi = {{{country5_area_sqmi|}}} | m2 = {{{country5_area_m2|}}} | sqft = {{{country5_area_sqft|}}} | ha = {{{country5_area_ha|}}} | acre = {{{country5_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country5_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country5_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country5_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country5_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country5_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country5_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country5_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country5_area|}}}
| data86 = {{#if:{{{country6|}}}|<div class="ib-islands-country">{{{country6|}}}</div>}}
| label87 = {{{country6_admin_divisions_title|}}}
| data87 = {{{country6_admin_divisions|}}}
| label88 = {{{country6_admin_divisions_title_1|}}}
| data88 = {{{country6_admin_divisions_1|}}}
| label89 = Caasimadda {{#ifeq: {{if empty|{{{country6_largest_city_type|}}}|city}}|city|magaalada}}
| data89 = {{#if: {{{country6_capital_and_largest_city|}}}||{{{country6_capital|}}}}}
| label90 = Ugu weyn {{if empty|{{{country6_largest_city_type|}}}|deegaanka}}
| data90 = {{#if: {{{country6_capital_and_largest_city|}}}||{{#if: {{{country6_largest_city|}}}|{{{country6_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}}}
| label91 = Caasimadda iyo tan ugu weyn {{if empty|{{{country6_largest_city_type|}}}|city}}
| data91 = {{#if: {{{country6_capital_and_largest_city|}}}|{{{country6_capital_and_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}
| label92 = {{{country6_leader_title|}}}
| data92 = {{{country6_leader_name|}}}
| label93 = Baaxadda la daboolay
| data93 = {{Infobox islands/area| km2 = {{{country6_area_km2|}}} | sqmi = {{{country6_area_sqmi|}}} | m2 = {{{country6_area_m2|}}} | sqft = {{{country6_area_sqft|}}} | ha = {{{country6_area_ha|}}} | acre = {{{country6_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country6_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country6_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country6_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country6_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country6_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country6_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country6_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country6_area|}}}
| data94 = {{#if:{{{country7|}}}|<div class="ib-islands-country">{{{country7|}}}</div>}}
| label95 = {{{country7_admin_divisions_title|}}}
| data95 = {{{country7_admin_divisions|}}}
| label96 = {{{country7_admin_divisions_title_1|}}}
| data96 = {{{country7_admin_divisions_1|}}}
| label97 = Caasimadda {{#ifeq: {{if empty|{{{country7_largest_city_type|}}}|city}}|city|magaalada}}
| data97 = {{#if: {{{country7_capital_and_largest_city|}}}||{{{country7_capital|}}}}}
| label98 = Ugu weyn {{if empty|{{{country7_largest_city_type|}}}|deegaanka}}
| data98 = {{#if: {{{country7_capital_and_largest_city|}}}||{{#if: {{{country7_largest_city|}}}|{{{country7_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}}}
| label99 = Caasimadda iyo tan ugu weyn {{if empty|{{{country7_largest_city_type|}}}|city}}
| data99 = {{#if: {{{country7_capital_and_largest_city|}}}|{{{country7_capital_and_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}
| label100 = {{{country7_leader_title|}}}
| data100 = {{{country7_leader_name|}}}
| label101 = Baaxadda la daboolay
| data101 = {{Infobox islands/area| km2 = {{{country7_area_km2|}}} | sqmi = {{{country7_area_sqmi|}}} | m2 = {{{country7_area_m2|}}} | sqft = {{{country7_area_sqft|}}} | ha = {{{country7_area_ha|}}} | acre = {{{country7_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country7_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country7_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country7_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country7_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country7_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country7_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country7_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country7_area|}}}
| data102 = {{#if:{{{country8|}}}|<div class="ib-islands-country">{{{country8|}}}</div>}}
| label103 = {{{country8_admin_divisions_title|}}}
| data103 = {{{country8_admin_divisions|}}}
| label104 = {{{country8_admin_divisions_title_1|}}}
| data104 = {{{country8_admin_divisions_1|}}}
| label105 = Caasimadda {{#ifeq: {{if empty|{{{country8_largest_city_type|}}}|city}}|city|magaalada}}
| data105 = {{#if: {{{country8_capital_and_largest_city|}}}||{{{country8_capital|}}}}}
| label106 = Ugu weyn {{if empty|{{{country8_largest_city_type|}}}|deegaanka}}
| data106 = {{#if: {{{country8_capital_and_largest_city|}}}||{{#if: {{{country8_largest_city|}}}|{{{country8_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}}}
| label107 = Caasimadda iyo tan ugu weyn {{if empty|{{{country8_largest_city_type|}}}|city}}
| data107 = {{#if: {{{country8_capital_and_largest_city|}}}|{{{country8_capital_and_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}
| label108 = {{{country8_leader_title|}}}
| data108 = {{{country8_leader_name|}}}
| label109 = Baaxadda la daboolay
| data109 = {{Infobox islands/area| km2 = {{{country8_area_km2|}}} | sqmi = {{{country8_area_sqmi|}}} | m2 = {{{country8_area_m2|}}} | sqft = {{{country8_area_sqft|}}} | ha = {{{country8_area_ha|}}} | acre = {{{country8_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country8_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country8_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country8_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country8_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country8_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country8_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country8_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country8_area|}}}
<!-- end administration -->
| header110 = Dadweynaha
| label111 = Qowmiyadda
| data111 = {{{demonym|}}}
| label112 = Tirada dadka
| data112 = {{{population|}}} {{#if:{{{population_as_of|}}}|({{{population_as_of|}}})}}{{{population_footnotes|}}}
| label113 = Kaalinta dadka
| data113 = {{#if:{{{population_rank|}}}|{{{population_rank|}}} {{#if:{{{population_rank_max|}}}|inta u dhaxaysa out of {{{population_rank_max|}}} }} }}
| label114 = Cufnaanta dadka
| data114 = {{Infobox islands/density| km2 = {{{density_km2|}}}| sqmi = {{{density_sqmi|}}} }}{{{density_footnotes|}}}
| label115 = Kaalinta cufnaanta dadka
| data115 = {{{density_rank|}}}
| label116 = Luuqadaha
| data116 = {{{languages|}}}
| label117 = Qowmiyadaha
| data117 = {{{ethnic_groups|}}}
<!-- end demographics -->
| header118 = Macluumaad dheeraad ah
<!-- ***Time Zones*** -->
| label119 = {{#if:{{both|{{if empty|{{{timezone1|}}}|{{{timezone|}}}}}|{{{timezone2|}}}}}|Aagagga waqtiga Time zones|Aagga waqtiga Time zone}}
| data119 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{if empty|{{{timezone1|}}}|{{{timezone}}}}} {{#if:{{{utc_offset1|}}}{{{utc_offset|}}}|([[UTC{{if empty|{{{utc_offset1|}}}|{{{utc_offset}}}}}]])}}
| 2= {{#if:{{{timezone2|}}}|{{{timezone2}}} {{#if:{{{utc_offset2|}}}|([[UTC{{{utc_offset2}}}]])}} }} }}}}
| label120 = <span class="nowrap"> • Xagaaga </span>
| data120 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{if empty|{{{timezone1_DST|}}}|{{{timezone_DST|}}}}} ([[UTC{{if empty|{{{utc_offset1_DST|}}}|{{{utc_offset_DST|}}}}}]])}}
| 2= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{#if:{{{timezone2_DST|}}}|{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST|}}}]])}} }}
}}}}
<!-- ***Area codes*** -->
| label121 = {{if empty|{{{postal_code_type|}}}|Koodka boostada}}
| data121 = {{{postal_code|}}}
| label122 = {{if empty|{{{area_code_type|}}}|Telephone numbering plan Koodka deegaankaArea code{{pluralize from text|{{{area_code|}}}|plural=s}}}}
| data122 = {{{area_code|}}}
| label123 = Diiwaangelinta gaadiidka
| data123 = {{{registration_plate|}}}
| label124 = {{if empty|{{{iso_code_type|}}}|ISO 3166-2 ISO code}}
| data124 = {{{iso_code|}}}
| label125 = Mareegta rasmiga ah
| data125 = {{{website|}}}
| data126 = {{{additional_info|}}}
| header127 = <nowiki />
| data128 = {{{misc|}}}
{{{module|}}}
| below = {{{footnotes|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|}}|preview=Page using Template:Infobox islands with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y|pushpin_map_args=y| additional_info | archipelago | area_acre | area_code | area_code_type | area_footnotes | area_ha | area_km2 | area_m2 | area_sqft | area_sqmi | coastline_footnotes | coastline_ft | coastline_km | coastline_m | coastline_mi | coordinates | country | country_admin_divisions | country_admin_divisions_1 | country_admin_divisions_2 | country_admin_divisions_3 | country_admin_divisions_4 | country_admin_divisions_title | country_admin_divisions_title_1 | country_admin_divisions_title_2 | country_admin_divisions_title_3 | country_admin_divisions_title_4 | country_area | country_area_acre | country_area_ha | country_area_km2 | country_area_m2 | country_area_sqft | country_area_sqmi | country_capital | country_capital_and_largest_city | country_largest_city | country_largest_city_population | country_largest_city_type | country_leader_name | country_leader_title | country1 | country1_admin_divisions | country1_admin_divisions_title | country1_area | country1_area_acre | country1_area_ha | country1_area_sqft | country1_area_sqmi | country1_capital | country1_capital_and_largest_city | country1_largest_city | country1_largest_city_population | country1_largest_city_type | country1_leader_name | country1_leader_title | country2 | country2_admin_divisions | country2_admin_divisions_title | country2_area | country2_area_acre | country2_area_ha | country2_area_sqft | country2_area_sqmi | country2_capital | country2_capital_and_largest_city | country2_largest_city_population | country2_largest_city_type | country2_leader_name | country2_leader_title | country3 | country3_admin_divisions | country3_admin_divisions_title | country3_area | country3_area_acre | country3_area_ha | country3_area_sqft | country3_area_sqmi | country3_capital | country3_capital_and_largest_city | country3_largest_city_population | country3_largest_city_type | country3_leader_name | country3_leader_title | country4 | country4_admin_divisions | country4_admin_divisions_title | country4_area | country4_area_acre | country4_area_ha | country4_area_km2 | country4_area_m2 | country4_area_sqft | country4_area_sqmi | country4_capital | country4_capital_and_largest_city | country4_largest_city | country4_largest_city_population | country4_largest_city_type | country4_leader_name | country4_leader_title | country5 | country5_admin_divisions | country5_admin_divisions_title | country5_area | country5_area_acre | country5_area_ha | country5_area_km2 | country5_area_m2 | country5_area_sqft | country5_area_sqmi | country5_capital | country5_capital_and_largest_city | country5_largest_city | country5_largest_city_population | country5_largest_city_type | country5_leader_name | country5_leader_title | country6 | country6_admin_divisions | country6_admin_divisions_title | country6_area | country6_area_acre | country6_area_ha | country6_area_km2 | country6_area_m2 | country6_area_sqft | country6_area_sqmi | country6_capital | country6_capital_and_largest_city | country6_largest_city_population | country6_largest_city_type | country6_leader_name | country6_leader_title | country7 | country7_admin_divisions | country7_admin_divisions_title | country7_area | country7_area_acre | country7_area_ha | country7_area_km2 | country7_area_m2 | country7_area_sqft | country7_area_sqmi | country7_capital | country7_capital_and_largest_city | country7_largest_city_population | country7_largest_city_type | country7_leader_name | country7_leader_title | country8 | country8_admin_divisions | country8_admin_divisions_title | country8_area | country8_area_acre | country8_area_ha | country8_area_km2 | country8_area_m2 | country8_area_sqft | country8_sqmi | country8_capital | country8_capital_and_largest_city | country8_largest_city | country8_largest_city_population | country8_largest_city_type | country8_leader_name | country8_leader_title | country1_admin_divisions_1 | country1_admin_divisions_2 | country1_admin_divisions_title_1 | country1_admin_divisions_title_2 | country1_area_km2 | country1_area_m2 | country2_admin_divisions_1 | country2_admin_divisions_title_1 | country2_area_km2 | country2_area_m2 | country3_admin_divisions_1 | country3_admin_divisions_title_1 | country3_area_km2 | country3_area_m2 | country4_admin_divisions_1 | country4_admin_divisions_title_1 | country4_area_km2 | country4_area_m2 | country5_admin_divisions_1 | country5_admin_divisions_title_1 | country5_area_km2 | country5_area_m2 | country6_admin_divisions_1 | country6_admin_divisions_title_1 | country6_area_km2 | country6_area_m2 | country7_admin_divisions_1 | country7_admin_divisions_title_1 | country7_area_km2 | country7_area_m2 | country8_admin_divisions_1 | country8_admin_divisions_title_1 | country8_area_km2 | country8_area_m2 | demonym | density_footnotes | density_km2 | density_rank | density_sqmi | disputed | elevation_footnotes | elevation_ft | elevation_m | embed | ethnic_groups | etymology | footnotes | grid_reference | highest_mount | image | image_alt | image_caption | image_map | image_size | island_type | iso_code | iso_code_type | languages | length_footnotes | length_ft | length_km | length_m | length_mi | local_name | location | major_islands | map_alt | map_caption | map_size | misc | module | name | native_name | native_name_lang | native_name_link | nickname | other_names | plural | population | population_as_of | population_footnotes | population_rank | population_rank_max | postal_code | postal_code_type | rank | registration_plate | timezone | timezone_DST | timezone1 | timezone1_DST | timezone2 | timezone2_DST | total_islands | treaty_system | type | utc_offset | utc_offset_DST | utc_offset1 | utc_offset1_DST | utc_offset2 | utc_offset2_DST | waterbody | website | width_footnotes | width_ft | width_km | width_m | width_max_ft | width_max_km | width_max_m | width_max_mi | width_mi | width_min_ft | width_min_km | width_min_m | width_min_mi }}{{#invoke:Check for conflicting parameters|check
| template = Template:Infobox islands
| cat =
| width_min_km; width_min_mi; width_min_m; width_min_ft
| width_max_km; width_max_mi; width_max_m; width_max_ft
| timezone1; timezone
| utc_offset1; utc_offset
| timezone1_DST; timezone_DST
| utc_offset1_DST; utc_offset_DST
}}<noinclude>
{{documentation}}
<!-- categories links go in /doc, not here -->
</noinclude>
nludgllcej6zq0tunhje9yinn5d5euf
309258
309257
2026-09-23T16:33:37Z
Isma4l
41797
/* */
309258
wikitext
text/x-wiki
{{Infobox
| child = {{{embed|}}}
| bodyclass = ib-islands vcard
| templatestyles = Template:Infobox islands/styles.css
| titleclass = fn org
| title = {{#ifeq:{{{embed|}}}|yes|{{#if:{{{name|}}}|<div class="ib-islands-title-embed">{{{name|}}}</div>|}}|{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}}}
| above = {{#ifeq:{{{disputed|}}}|yes|{{#if:{{{type|}}}|Khilaaf dhuleed Disputed {{{type}}}|Khilaaf dhuleed Jasiirad Disputed island}}{{#ifeq:{{{plural}}}|yes|s<br>|<br>}}}}<!--
-->{{#if:{{{local_name|}}}<!--
-->|<div class="nickname">{{{local_name}}}</div><!--
-->|{{#if:{{{native_name|}}}<!--
-->|<div class="ib-islands-native">{{#if:{{{native_name_link|}}}|{{{native_name_link|}}} Magaca hooyo|Magaca hooyo}}: <div class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang|}}}}}">{{{native_name|}}}</div></div><!--
-->}}<!--
-->}}<!--
-->{{#if:{{{nickname|}}}|<div class="ib-islands-nick">Naanaysta: {{{nickname|}}}</div>}}
| autoheaders = y
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright=1.16|alt={{{image_alt|}}}}}
| caption = {{{image_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=frameless|upright=1.16|alt={{{map_alt|}}}}}
| caption2 = {{{map_caption|}}}
| image3 = {{#invoke:Location map|infobox_pushpin_map
| default_width = 260
}}
| image4 = {{#invoke:Infobox mapframe
| auto
| onByDefault = {{#if:{{{pushpin_map|}}}{{{image_map|}}}|no|yes}}
| mapframe-zoom = 7
| mapframe-marker-color = #a8bdec
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Khariidadda interactive ee {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| label1 = Magacyada kale{{pluralize from text|{{{other_names|}}}|plural=s}}
| data1 = {{{other_names|}}}
| label2 = Asalka erayga
| data2 = {{{etymology|}}}
| header3 = {{#ifeq:{{{embed|}}}|yes||Juquraafi}}
| label4 = Goobta
| data4 = {{{location|}}}
| label5 = Isku duwayaasha
| data5 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates}}}|type:isle}}}}
| label6 = Tixraaca shabakadda OS
| data6 = {{#if:{{{grid_reference|}}}| {{gbmappingsmall|{{{grid_reference|}}}|25|{{{grid_reference|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }} }}
| label7 = Nooca
| data7 = {{{island_type|}}}
| label8 = Jasiiradaha isku xiran
| class8 = note
| data8 = {{{archipelago|}}}
| label9 = {{nowrap|La deris ah}}
| data9 = {{{waterbody|}}}
| label10 = Wadarta jasiiradaha
| data10 = {{{total_islands|}}}
| label11 = Jasiiradaha waaweyn
| data11 = {{{major_islands|}}}
| label12 = Baaxadda
| data12 = {{Infobox islands/area| km2 = {{{area_km2|}}} | sqmi = {{{area_sqmi|}}} | m2 = {{{area_m2|}}} | sqft = {{{area_sqft|}}} | ha = {{{area_ha|}}} | acre = {{{area_acre|}}} }}{{{area_footnotes|}}}
| label13 = Kaalinta baaxadda
| data13 = {{{rank|}}}
| label14 = Dhererka
| data14 = {{Infobox islands/length | km = {{{length_km|}}} | mi = {{{length_mi|}}} | m = {{{length_m|}}} | ft = {{{length_ft|}}} }}{{{length_footnotes|}}}
| label15 = Ballaca
| data15 = {{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|{{convert<!--
-->|{{if empty|{{{width_min_km|}}}|{{{width_min_mi|}}}|{{{width_min_m|}}}|{{{width_min_ft|}}}}}<!--
-->|-<!--
-->|{{if empty|{{{width_max_km|}}}|{{{width_max_mi|}}}|{{{width_max_m|}}}|{{{width_max_ft|}}}}}<!--
-->|{{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->|km<!--
-->|{{#if:{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->|mi<!--
-->|{{#if:{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->|m<!--
-->|{{#if:{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|ft}}<!--
-->}}<!--
-->}}<!--
-->}}<!--
-->|abbr=on}}<!--
-->|{{Infobox islands/length | km = {{{width_km|}}} | mi = {{{width_mi|}}} | m = {{{width_m|}}} | ft = {{{width_ft|}}} }}<!--
-->}}{{{width_footnotes|}}}
| label16 = Xeebta
| data16 = {{Infobox islands/length | km = {{{coastline_km|}}} | mi = {{{coastline_mi|}}} | m = {{{coastline_m|}}} | ft = {{{coastline_ft|}}} }}{{{coastline_footnotes|}}}
| label17 = Meesha ugu sarreysa sareynta
| data17 = {{Infobox islands/length | m = {{{elevation_m|}}} | ft = {{{elevation_ft|}}} }}{{{elevation_footnotes|}}}
| label18 = Meesha ugu sarreysa barta
| data18 = {{{highest_mount|}}}
<!-- end geography -->
| header22 = Maamulka
| data23 = {{#switch:{{{country|}}}|=
|None|none={{#if:{{{treaty_system|}}}||<div>'''{{{country}}}'''</div>}}
|#default=<div>'''{{{country}}}'''</div>
}}
| data24 = {{#if:{{{treaty_system|}}}|Waxaa maamula heshiiska {{{treaty_system|}}}}}
| header25 = _BLANK_
| label26 = {{longitem|{{{country_admin_divisions_title|}}}}}
| data26 = {{{country_admin_divisions|}}}
| label27 = {{longitem|{{{country_admin_divisions_title_1|}}}}}
| data27 = {{{country_admin_divisions_1|}}}
| label28 = {{longitem|{{{country_admin_divisions_title_2|}}}}}
| data28 = {{{country_admin_divisions_2|}}}
| label29 = {{longitem|{{{country_admin_divisions_title_3|}}}}}
| data29 = {{{country_admin_divisions_3|}}}
| label30 = {{longitem|{{{country_admin_divisions_title_4|}}}}}
| data30 = {{{country_admin_divisions_4|}}}
| label31 = Caasimadda magaalada
| data31 = {{#if: {{{country_capital_and_largest_city|}}}||{{{country_capital|}}}}}
| label32 = {{longitem|Ugu weyn {{if empty|{{{country_largest_city_type|}}}|deegaanka}}}}
| data32 = {{#if: {{{country_capital_and_largest_city|}}}||{{#if: {{{country_largest_city|}}}|{{{country_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}}}
| label33 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country_largest_city_type|}}}|magaalada}}}}
| data33 = {{#if: {{{country_capital_and_largest_city|}}}|{{{country_capital_and_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}
| label34 = {{longitem|{{{country_leader_title|}}}}}
| data34 = {{{country_leader_name|}}}
| label35 = Baaxadda la daboolay
| data35 = {{Infobox islands/area| km2 = {{{country_area_km2|}}} | sqmi = {{{country_area_sqmi|}}} | m2 = {{{country_area_m2|}}} | sqft = {{{country_area_sqft|}}} | ha = {{{country_area_ha|}}} | acre = {{{country_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country_area|}}}
| header36 = {{#ifeq:{{{disputed|}}}|yes|Waxaa dalbanaya}}
| data37 = {{#if:{{{country1|}}}|{{#ifeq:{{{disputed|}}}|yes|<div class="ib-islands-country2">|<div class="ib-islands-country">}}{{{country1|}}}</div>}}
| label38 = {{longitem|{{{country1_admin_divisions_title|}}}}}
| data38 = {{{country1_admin_divisions|}}}
| label39 = {{longitem|{{{country1_admin_divisions_title_1|}}}}}
| data39 = {{{country1_admin_divisions_1|}}}
| label40 = {{longitem|{{{country1_admin_divisions_title_2|}}}}}
| data40 = {{{country1_admin_divisions_2|}}}
| label41 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country1_largest_city_type|}}}|city}}|city|magaalada}}}}
| data41 = {{#if: {{{country1_capital_and_largest_city|}}}||{{{country1_capital|}}}}}
| label42 = {{longitem|Ugu weyn {{if empty|{{{country1_largest_city_type|}}}|deegaanka}}}}
| data42 = {{#if: {{{country1_capital_and_largest_city|}}}||{{#if: {{{country1_largest_city|}}}|{{{country1_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}}}
| label43 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country1_largest_city_type|}}}|city}}}}
| data43 = {{#if: {{{country1_capital_and_largest_city|}}}|{{{country1_capital_and_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}
| label44 = {{longitem|{{{country1_leader_title|}}}}}
| data44 = {{{country1_leader_name|}}}
| label45 = Baaxadda la daboolay
| data45 = {{Infobox islands/area| km2 = {{{country1_area_km2|}}} | sqmi = {{{country1_area_sqmi|}}} | m2 = {{{country1_area_m2|}}} | sqft = {{{country1_area_sqft|}}} | ha = {{{country1_area_ha|}}} | acre = {{{country1_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country1_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country1_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country1_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country1_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country1_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country1_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country1_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country1_area|}}}
| data54 = {{#if:{{{country2|}}}|<div class="ib-islands-country">{{{country2|}}}</div>}}
| label55 = {{longitem|{{{country2_admin_divisions_title|}}}}}
| data55 = {{{country2_admin_divisions|}}}
| label56 = {{longitem|{{{country2_admin_divisions_title_1|}}}}}
| data56 = {{{country2_admin_divisions_1|}}}
| label57 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country2_largest_city_type|}}}|city}}|city|magaalada}}}}
| data57 = {{#if: {{{country2_capital_and_largest_city|}}}||{{{country2_capital|}}}}}
| label58 = {{longitem|Ugu weyn {{if empty|{{{country2_largest_city_type|}}}|deegaanka}}}}
| data58 = {{#if: {{{country2_capital_and_largest_city|}}}||{{#if: {{{country2_largest_city|}}}|{{{country2_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}}}
| label59 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country2_largest_city_type|}}}|city}}}}
| data59 = {{#if: {{{country2_capital_and_largest_city|}}}|{{{country2_capital_and_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}
| label60 = {{longitem|{{{country2_leader_title|}}}}}
| data60 = {{{country2_leader_name|}}}
| label61 = Baaxadda la daboolay
| data61 = {{Infobox islands/area| km2 = {{{country2_area_km2|}}} | sqmi = {{{country2_area_sqmi|}}} | m2 = {{{country2_area_m2|}}} | sqft = {{{country2_area_sqft|}}} | ha = {{{country2_area_ha|}}} | acre = {{{country2_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country2_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country2_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country2_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country2_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country2_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country2_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country2_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country2_area|}}}
| data62 = {{#if:{{{country3|}}}|<div class="ib-islands-country">{{{country3|}}}</div>}}
| label63 = {{{country3_admin_divisions_title|}}}
| data63 = {{{country3_admin_divisions|}}}
| label64 = {{{country3_admin_divisions_title_1|}}}
| data64 = {{{country3_admin_divisions_1|}}}
| label65 = Caasimadda {{#ifeq: {{if empty|{{{country3_largest_city_type|}}}|city}}|city|magaalada}}
| data65 = {{#if: {{{country3_capital_and_largest_city|}}}||{{{country3_capital|}}}}}
| label66 = Ugu weyn {{if empty|{{{country3_largest_city_type|}}}|deegaanka}}
| data66 = {{#if: {{{country3_capital_and_largest_city|}}}||{{#if: {{{country3_largest_city|}}}|{{{country3_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}}}
| label67 = Caasimadda iyo tan ugu weyn {{if empty|{{{country3_largest_city_type|}}}|city}}
| data67 = {{#if: {{{country3_capital_and_largest_city|}}}|{{{country3_capital_and_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}
| label68 = {{{country3_leader_title|}}}
| data68 = {{{country3_leader_name|}}}
| label69 = Baaxadda la daboolay
| data69 = {{Infobox islands/area| km2 = {{{country3_area_km2|}}} | sqmi = {{{country3_area_sqmi|}}} | m2 = {{{country3_area_m2|}}} | sqft = {{{country3_area_sqft|}}} | ha = {{{country3_area_ha|}}} | acre = {{{country3_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country3_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country3_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country3_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country3_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country3_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country3_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country3_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country3_area|}}}
| data70 = {{#if:{{{country4|}}}|<div class="ib-islands-country">{{{country4|}}}</div>}}
| label71 = {{{country4_admin_divisions_title|}}}
| data71 = {{{country4_admin_divisions|}}}
| label72 = {{{country4_admin_divisions_title_1|}}}
| data72 = {{{country4_admin_divisions_1|}}}
| label73 = Caasimadda {{#ifeq: {{if empty|{{{country4_largest_city_type|}}}|city}}|city|magaalada}}
| data73 = {{#if: {{{country4_capital_and_largest_city|}}}||{{{country4_capital|}}}}}
| label74 = Ugu weyn {{if empty|{{{country4_largest_city_type|}}}|deegaanka}}
| data74 = {{#if: {{{country4_capital_and_largest_city|}}}||{{#if: {{{country4_largest_city|}}}|{{{country4_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}}}
| label75 = Caasimadda iyo tan ugu weyn {{if empty|{{{country4_largest_city_type|}}}|city}}
| data75 = {{#if: {{{country4_capital_and_largest_city|}}}|{{{country4_capital_and_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}
| label76 = {{{country4_leader_title|}}}
| data76 = {{{country4_leader_name|}}}
| label77 = Baaxadda la daboolay
| data77 = {{Infobox islands/area| km2 = {{{country4_area_km2|}}} | sqmi = {{{country4_area_sqmi|}}} | m2 = {{{country4_area_m2|}}} | sqft = {{{country4_area_sqft|}}} | ha = {{{country4_area_ha|}}} | acre = {{{country4_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country4_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country4_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country4_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country4_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country4_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country4_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country4_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country4_area|}}}
| data78 = {{#if:{{{country5|}}}|<div class="ib-islands-country">{{{country5|}}}</div>}}
| label79 = {{{country5_admin_divisions_title|}}}
| data79 = {{{country5_admin_divisions|}}}
| label80 = {{{country5_admin_divisions_title_1|}}}
| data80 = {{{country5_admin_divisions_1|}}}
| label81 = Caasimadda {{#ifeq: {{if empty|{{{country5_largest_city_type|}}}|city}}|city|magaalada}}
| data81 = {{#if: {{{country5_capital_and_largest_city|}}}||{{{country5_capital|}}}}}
| label82 = Ugu weyn {{if empty|{{{country5_largest_city_type|}}}|deegaanka}}
| data82 = {{#if: {{{country5_capital_and_largest_city|}}}||{{#if: {{{country5_largest_city|}}}|{{{country5_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}}}
| label83 = Caasimadda iyo tan ugu weyn {{if empty|{{{country5_largest_city_type|}}}|city}}
| data83 = {{#if: {{{country5_capital_and_largest_city|}}}|{{{country5_capital_and_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}
| label84 = {{{country5_leader_title|}}}
| data84 = {{{country5_leader_name|}}}
| label85 = Baaxadda la daboolay
| data85 = {{Infobox islands/area| km2 = {{{country5_area_km2|}}} | sqmi = {{{country5_area_sqmi|}}} | m2 = {{{country5_area_m2|}}} | sqft = {{{country5_area_sqft|}}} | ha = {{{country5_area_ha|}}} | acre = {{{country5_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country5_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country5_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country5_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country5_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country5_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country5_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country5_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country5_area|}}}
| data86 = {{#if:{{{country6|}}}|<div class="ib-islands-country">{{{country6|}}}</div>}}
| label87 = {{{country6_admin_divisions_title|}}}
| data87 = {{{country6_admin_divisions|}}}
| label88 = {{{country6_admin_divisions_title_1|}}}
| data88 = {{{country6_admin_divisions_1|}}}
| label89 = Caasimadda {{#ifeq: {{if empty|{{{country6_largest_city_type|}}}|city}}|city|magaalada}}
| data89 = {{#if: {{{country6_capital_and_largest_city|}}}||{{{country6_capital|}}}}}
| label90 = Ugu weyn {{if empty|{{{country6_largest_city_type|}}}|deegaanka}}
| data90 = {{#if: {{{country6_capital_and_largest_city|}}}||{{#if: {{{country6_largest_city|}}}|{{{country6_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}}}
| label91 = Caasimadda iyo tan ugu weyn {{if empty|{{{country6_largest_city_type|}}}|city}}
| data91 = {{#if: {{{country6_capital_and_largest_city|}}}|{{{country6_capital_and_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}
| label92 = {{{country6_leader_title|}}}
| data92 = {{{country6_leader_name|}}}
| label93 = Baaxadda la daboolay
| data93 = {{Infobox islands/area| km2 = {{{country6_area_km2|}}} | sqmi = {{{country6_area_sqmi|}}} | m2 = {{{country6_area_m2|}}} | sqft = {{{country6_area_sqft|}}} | ha = {{{country6_area_ha|}}} | acre = {{{country6_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country6_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country6_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country6_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country6_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country6_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country6_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country6_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country6_area|}}}
| data94 = {{#if:{{{country7|}}}|<div class="ib-islands-country">{{{country7|}}}</div>}}
| label95 = {{{country7_admin_divisions_title|}}}
| data95 = {{{country7_admin_divisions|}}}
| label96 = {{{country7_admin_divisions_title_1|}}}
| data96 = {{{country7_admin_divisions_1|}}}
| label97 = Caasimadda {{#ifeq: {{if empty|{{{country7_largest_city_type|}}}|city}}|city|magaalada}}
| data97 = {{#if: {{{country7_capital_and_largest_city|}}}||{{{country7_capital|}}}}}
| label98 = Ugu weyn {{if empty|{{{country7_largest_city_type|}}}|deegaanka}}
| data98 = {{#if: {{{country7_capital_and_largest_city|}}}||{{#if: {{{country7_largest_city|}}}|{{{country7_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}}}
| label99 = Caasimadda iyo tan ugu weyn {{if empty|{{{country7_largest_city_type|}}}|city}}
| data99 = {{#if: {{{country7_capital_and_largest_city|}}}|{{{country7_capital_and_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}
| label100 = {{{country7_leader_title|}}}
| data100 = {{{country7_leader_name|}}}
| label101 = Baaxadda la daboolay
| data101 = {{Infobox islands/area| km2 = {{{country7_area_km2|}}} | sqmi = {{{country7_area_sqmi|}}} | m2 = {{{country7_area_m2|}}} | sqft = {{{country7_area_sqft|}}} | ha = {{{country7_area_ha|}}} | acre = {{{country7_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country7_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country7_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country7_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country7_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country7_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country7_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country7_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country7_area|}}}
| data102 = {{#if:{{{country8|}}}|<div class="ib-islands-country">{{{country8|}}}</div>}}
| label103 = {{{country8_admin_divisions_title|}}}
| data103 = {{{country8_admin_divisions|}}}
| label104 = {{{country8_admin_divisions_title_1|}}}
| data104 = {{{country8_admin_divisions_1|}}}
| label105 = Caasimadda {{#ifeq: {{if empty|{{{country8_largest_city_type|}}}|city}}|city|magaalada}}
| data105 = {{#if: {{{country8_capital_and_largest_city|}}}||{{{country8_capital|}}}}}
| label106 = Ugu weyn {{if empty|{{{country8_largest_city_type|}}}|deegaanka}}
| data106 = {{#if: {{{country8_capital_and_largest_city|}}}||{{#if: {{{country8_largest_city|}}}|{{{country8_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}}}
| label107 = Caasimadda iyo tan ugu weyn {{if empty|{{{country8_largest_city_type|}}}|city}}
| data107 = {{#if: {{{country8_capital_and_largest_city|}}}|{{{country8_capital_and_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}
| label108 = {{{country8_leader_title|}}}
| data108 = {{{country8_leader_name|}}}
| label109 = Baaxadda la daboolay
| data109 = {{Infobox islands/area| km2 = {{{country8_area_km2|}}} | sqmi = {{{country8_area_sqmi|}}} | m2 = {{{country8_area_m2|}}} | sqft = {{{country8_area_sqft|}}} | ha = {{{country8_area_ha|}}} | acre = {{{country8_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country8_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country8_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country8_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country8_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country8_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country8_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country8_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country8_area|}}}
<!-- end administration -->
| header110 = Dadweynaha
| label111 = Qowmiyadda
| data111 = {{{demonym|}}}
| label112 = Tirada dadka
| data112 = {{{population|}}} {{#if:{{{population_as_of|}}}|({{{population_as_of|}}})}}{{{population_footnotes|}}}
| label113 = Kaalinta dadka
| data113 = {{#if:{{{population_rank|}}}|{{{population_rank|}}} {{#if:{{{population_rank_max|}}}|inta u dhaxaysa out of {{{population_rank_max|}}} }} }}
| label114 = Cufnaanta dadka
| data114 = {{Infobox islands/density| km2 = {{{density_km2|}}}| sqmi = {{{density_sqmi|}}} }}{{{density_footnotes|}}}
| label115 = Kaalinta cufnaanta dadka
| data115 = {{{density_rank|}}}
| label116 = Luuqadaha
| data116 = {{{languages|}}}
| label117 = Qowmiyadaha
| data117 = {{{ethnic_groups|}}}
<!-- end demographics -->
| header118 = Macluumaad dheeraad ah
<!-- ***Time Zones*** -->
| label119 = {{#if:{{both|{{if empty|{{{timezone1|}}}|{{{timezone|}}}}}|{{{timezone2|}}}}}|Aagagga waqtiga Time zones|Aagga waqtiga Time zone}}
| data119 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{if empty|{{{timezone1|}}}|{{{timezone}}}}} {{#if:{{{utc_offset1|}}}{{{utc_offset|}}}|([[UTC{{if empty|{{{utc_offset1|}}}|{{{utc_offset}}}}}]])}}
| 2= {{#if:{{{timezone2|}}}|{{{timezone2}}} {{#if:{{{utc_offset2|}}}|([[UTC{{{utc_offset2}}}]])}} }} }}}}
| label120 = <span class="nowrap"> • Xagaaga </span>
| data120 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{if empty|{{{timezone1_DST|}}}|{{{timezone_DST|}}}}} ([[UTC{{if empty|{{{utc_offset1_DST|}}}|{{{utc_offset_DST|}}}}}]])}}
| 2= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{#if:{{{timezone2_DST|}}}|{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST|}}}]])}} }}
}}}}
<!-- ***Area codes*** -->
| label121 = {{if empty|{{{postal_code_type|}}}|Koodka boostada}}
| data121 = {{{postal_code|}}}
| label122 = {{if empty|{{{area_code_type|}}}|Telephone numbering plan Koodka deegaankaArea code{{pluralize from text|{{{area_code|}}}|plural=s}}}}
| data122 = {{{area_code|}}}
| label123 = Diiwaangelinta gaadiidka
| data123 = {{{registration_plate|}}}
| label124 = {{if empty|{{{iso_code_type|}}}|ISO 3166-2 ISO code}}
| data124 = {{{iso_code|}}}
| label125 = Mareegta rasmiga ah
| data125 = {{{website|}}}
| data126 = {{{additional_info|}}}
| header127 = <nowiki />
| data128 = {{{misc|}}}
{{{module|}}}
| below = {{{footnotes|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|}}|preview=Page using Template:Infobox islands with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y|pushpin_map_args=y| additional_info | archipelago | area_acre | area_code | area_code_type | area_footnotes | area_ha | area_km2 | area_m2 | area_sqft | area_sqmi | coastline_footnotes | coastline_ft | coastline_km | coastline_m | coastline_mi | coordinates | country | country_admin_divisions | country_admin_divisions_1 | country_admin_divisions_2 | country_admin_divisions_3 | country_admin_divisions_4 | country_admin_divisions_title | country_admin_divisions_title_1 | country_admin_divisions_title_2 | country_admin_divisions_title_3 | country_admin_divisions_title_4 | country_area | country_area_acre | country_area_ha | country_area_km2 | country_area_m2 | country_area_sqft | country_area_sqmi | country_capital | country_capital_and_largest_city | country_largest_city | country_largest_city_population | country_largest_city_type | country_leader_name | country_leader_title | country1 | country1_admin_divisions | country1_admin_divisions_title | country1_area | country1_area_acre | country1_area_ha | country1_area_sqft | country1_area_sqmi | country1_capital | country1_capital_and_largest_city | country1_largest_city | country1_largest_city_population | country1_largest_city_type | country1_leader_name | country1_leader_title | country2 | country2_admin_divisions | country2_admin_divisions_title | country2_area | country2_area_acre | country2_area_ha | country2_area_sqft | country2_area_sqmi | country2_capital | country2_capital_and_largest_city | country2_largest_city | country2_largest_city_population | country2_largest_city_type | country2_leader_name | country2_leader_title | country3 | country3_admin_divisions | country3_admin_divisions_title | country3_area | country3_area_acre | country3_area_ha | country3_area_sqft | country3_area_sqmi | country3_capital | country3_capital_and_largest_city | country3_largest_city | country3_largest_city_population | country3_largest_city_type | country3_leader_name | country3_leader_title | country4 | country4_admin_divisions | country4_admin_divisions_title | country4_area | country4_area_acre | country4_area_ha | country4_area_sqft | country4_area_sqmi | country4_capital | country4_capital_and_largest_city | country4_largest_city | country4_largest_city_population | country4_largest_city_type | country4_leader_name | country4_leader_title | country5 | country5_admin_divisions | country5_admin_divisions_title | country5_area | country5_area_acre | country5_area_ha | country5_area_sqft | country5_area_sqmi | country5_capital | country5_capital_and_largest_city | country5_largest_city | country5_largest_city_population | country5_largest_city_type | country5_leader_name | country5_leader_title | country6 | country6_admin_divisions | country6_admin_divisions_title | country6_area | country6_area_acre | country6_area_ha | country6_area_sqft | country6_area_sqmi | country6_capital | country6_capital_and_largest_city | country6_largest_city | country6_largest_city_population | country6_largest_city_type | country6_leader_name | country6_leader_title | country7 | country7_admin_divisions | country7_admin_divisions_title | country7_area | country7_area_acre | country7_area_ha | country7_area_sqft | country7_area_sqmi | country7_capital | country7_capital_and_largest_city | country7_largest_city | country7_largest_city_population | country7_largest_city_type | country7_leader_name | country7_leader_title | country8 | country8_admin_divisions | country8_admin_divisions_title | country8_area | country8_area_acre | country8_area_ha | country8_area_sqft | country8_area_sqmi | country8_capital | country8_capital_and_largest_city | country8_largest_city | country8_largest_city_population | country8_largest_city_type | country8_leader_name | country8_leader_title | country1_admin_divisions_1 | country1_admin_divisions_2 | country1_admin_divisions_title_1 | country1_admin_divisions_title_2 | country1_area_km2 | country1_area_m2 | country2_admin_divisions_1 | country2_admin_divisions_title_1 | country2_area_km2 | country2_area_m2 | country3_admin_divisions_1 | country3_admin_divisions_title_1 | country3_area_km2 | country3_area_m2 | country4_admin_divisions_1 | country4_admin_divisions_title_1 | country4_area_km2 | country4_area_m2 | country5_admin_divisions_1 | country5_admin_divisions_title_1 | country5_area_km2 | country5_area_m2 | country6_admin_divisions_1 | country6_admin_divisions_title_1 | country6_area_km2 | country6_area_m2 | country7_admin_divisions_1 | country7_admin_divisions_title_1 | country7_area_km2 | country7_area_m2 | country8_admin_divisions_1 | country8_admin_divisions_title_1 | country8_area_km2 | country8_area_m2 | demonym | density_footnotes | density_km2 | density_rank | density_sqmi | disputed | elevation_footnotes | elevation_ft | elevation_m | embed | ethnic_groups | etymology | footnotes | grid_reference | highest_mount | image | image_alt | image_caption | image_map | image_size | island_type | iso_code | iso_code_type | languages | length_footnotes | length_ft | length_km | length_m | length_mi | local_name | location | major_islands | map_alt | map_caption | map_size | misc | module | name | native_name | native_name_lang | native_name_link | nickname | other_names | plural | population | population_as_of | population_footnotes | population_rank | population_rank_max | postal_code | postal_code_type | rank | registration_plate | timezone | timezone_DST | timezone1 | timezone1_DST | timezone2 | timezone2_DST | total_islands | treaty_system | type | utc_offset | utc_offset_DST | utc_offset1 | utc_offset1_DST | utc_offset2 | utc_offset2_DST | waterbody | website | width_footnotes | width_ft | width_km | width_m | width_max_ft | width_max_km | width_max_m | width_max_mi | width_mi | width_min_ft | width_min_km | width_min_m | width_min_mi }}<noinclude>
{{documentation}}
<!-- categories links go in /doc, not here -->
</noinclude>
2e98z3zvnlinzeeumgzit18p3v13gat
309259
309258
2026-09-23T16:36:29Z
Isma4l
41797
/* */
309259
wikitext
text/x-wiki
{{Infobox
| child = {{{embed|}}}
| bodyclass = ib-islands vcard
| templatestyles = Template:Infobox islands/styles.css
| titleclass = fn org
| title = {{#ifeq:{{{embed|}}}|yes|{{#if:{{{name|}}}|<div class="ib-islands-title-embed">{{{name|}}}</div>|}}|{{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}}}
| above = {{#ifeq:{{{disputed|}}}|yes|{{#if:{{{type|}}}|Khilaaf dhuleed Disputed {{{type}}}|Khilaaf dhuleed Jasiirad Disputed island}}{{#ifeq:{{{plural}}}|yes|s<br>|<br>}}}}<!--
-->{{#if:{{{local_name|}}}<!--
-->|<div class="nickname">{{{local_name}}}</div><!--
-->|{{#if:{{{native_name|}}}<!--
-->|<div class="ib-islands-native">{{#if:{{{native_name_link|}}}|{{{native_name_link|}}} Magaca hooyo|Magaca hooyo}}: <div class="nickname" {{#if:{{{native_name_lang|}}}|lang="{{{native_name_lang|}}}}}">{{{native_name|}}}</div></div><!--
-->}}<!--
-->}}<!--
-->{{#if:{{{nickname|}}}|<div class="ib-islands-nick">Naanaysta: {{{nickname|}}}</div>}}
| autoheaders = y
| image = {{#invoke:InfoboxImage|InfoboxImage|image={{{image|}}}|size={{{image_size|}}}|sizedefault=frameless|upright=1.16|alt={{{image_alt|}}}}}
| caption = {{{image_caption|}}}
| image2 = {{#invoke:InfoboxImage|InfoboxImage|image={{{image_map|}}}|size={{{map_size|}}}|sizedefault=frameless|upright=1.16|alt={{{map_alt|}}}}}
| caption2 = {{{map_caption|}}}
| image3 = {{#invoke:Location map|infobox_pushpin_map
| default_width = 260
}}
| image4 = {{#invoke:Infobox mapframe
| auto
| onByDefault = {{#if:{{{pushpin_map|}}}{{{image_map|}}}|no|yes}}
| mapframe-zoom = 7
| mapframe-marker-color = #a8bdec
| mapframe-frame-width = 250
| mapframe-wikidata = yes
| mapframe-caption = Khariidadda interactive ee {{if empty|{{{name|}}}|{{PAGENAMEBASE}}}}
}}
| label1 = Magacyada kale{{pluralize from text|{{{other_names|}}}|plural=s}}
| data1 = {{{other_names|}}}
| label2 = Asalka erayga
| data2 = {{{etymology|}}}
| header3 = {{#ifeq:{{{embed|}}}|yes||Juquraafi}}
| label4 = Goobta
| data4 = {{{location|}}}
| label5 = Isku duwayaasha
| data5 = {{#if:{{{coordinates|}}}|{{#invoke:Coordinates|coordinsert|{{{coordinates}}}|type:isle}}}}
| label6 = Tixraaca shabakadda OS
| data6 = {{#if:{{{grid_reference|}}}| {{gbmappingsmall|{{{grid_reference|}}}|25|{{{grid_reference|}}}|name={{if empty|{{{name|}}}|{{PAGENAMEBASE}}}} }} }}
| label7 = Nooca
| data7 = {{{island_type|}}}
| label8 = Jasiiradaha isku xiran
| class8 = note
| data8 = {{{archipelago|}}}
| label9 = {{nowrap|La deris ah}}
| data9 = {{{waterbody|}}}
| label10 = Wadarta jasiiradaha
| data10 = {{{total_islands|}}}
| label11 = Jasiiradaha waaweyn
| data11 = {{{major_islands|}}}
| label12 = Baaxadda
| data12 = {{Infobox islands/area| km2 = {{{area_km2|}}} | sqmi = {{{area_sqmi|}}} | m2 = {{{area_m2|}}} | sqft = {{{area_sqft|}}} | ha = {{{area_ha|}}} | acre = {{{area_acre|}}} }}{{{area_footnotes|}}}
| label13 = Kaalinta baaxadda
| data13 = {{{rank|}}}
| label14 = Dhererka
| data14 = {{Infobox islands/length | km = {{{length_km|}}} | mi = {{{length_mi|}}} | m = {{{length_m|}}} | ft = {{{length_ft|}}} }}{{{length_footnotes|}}}
| label15 = Ballaca
| data15 = {{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|{{convert<!--
-->|{{if empty|{{{width_min_km|}}}|{{{width_min_mi|}}}|{{{width_min_m|}}}|{{{width_min_ft|}}}}}<!--
-->|-<!--
-->|{{if empty|{{{width_max_km|}}}|{{{width_max_mi|}}}|{{{width_max_m|}}}|{{{width_max_ft|}}}}}<!--
-->|{{#if:{{both|{{{width_min_km|}}}|{{{width_max_km|}}}}}<!--
-->|km<!--
-->|{{#if:{{both|{{{width_min_mi|}}}|{{{width_max_mi|}}}}}<!--
-->|mi<!--
-->|{{#if:{{both|{{{width_min_m|}}}|{{{width_max_m|}}}}}<!--
-->|m<!--
-->|{{#if:{{both|{{{width_min_ft|}}}|{{{width_max_ft|}}}}}<!--
-->|ft}}<!--
-->}}<!--
-->}}<!--
-->}}<!--
-->|abbr=on}}<!--
-->|{{Infobox islands/length | km = {{{width_km|}}} | mi = {{{width_mi|}}} | m = {{{width_m|}}} | ft = {{{width_ft|}}} }}<!--
-->}}{{{width_footnotes|}}}
| label16 = Xeebta
| data16 = {{Infobox islands/length | km = {{{coastline_km|}}} | mi = {{{coastline_mi|}}} | m = {{{coastline_m|}}} | ft = {{{coastline_ft|}}} }}{{{coastline_footnotes|}}}
| label17 = Meesha ugu sarreysa sareynta
| data17 = {{Infobox islands/length | m = {{{elevation_m|}}} | ft = {{{elevation_ft|}}} }}{{{elevation_footnotes|}}}
| label18 = Meesha ugu sarreysa barta
| data18 = {{{highest_mount|}}}
<!-- end geography -->
| header22 = Maamulka
| data23 = {{#switch:{{{country|}}}|=
|None|none={{#if:{{{treaty_system|}}}||<div>'''{{{country}}}'''</div>}}
|#default=<div>'''{{{country}}}'''</div>
}}
| data24 = {{#if:{{{treaty_system|}}}|Waxaa maamula heshiiska {{{treaty_system|}}}}}
| header25 = _BLANK_
| label26 = {{longitem|{{{country_admin_divisions_title|}}}}}
| data26 = {{{country_admin_divisions|}}}
| label27 = {{longitem|{{{country_admin_divisions_title_1|}}}}}
| data27 = {{{country_admin_divisions_1|}}}
| label28 = {{longitem|{{{country_admin_divisions_title_2|}}}}}
| data28 = {{{country_admin_divisions_2|}}}
| label29 = {{longitem|{{{country_admin_divisions_title_3|}}}}}
| data29 = {{{country_admin_divisions_3|}}}
| label30 = {{longitem|{{{country_admin_divisions_title_4|}}}}}
| data30 = {{{country_admin_divisions_4|}}}
| label31 = Caasimadda magaalada
| data31 = {{#if: {{{country_capital_and_largest_city|}}}||{{{country_capital|}}}}}
| label32 = {{longitem|Ugu weyn {{if empty|{{{country_largest_city_type|}}}|deegaanka}}}}
| data32 = {{#if: {{{country_capital_and_largest_city|}}}||{{#if: {{{country_largest_city|}}}|{{{country_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}}}
| label33 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country_largest_city_type|}}}|magaalada}}}}
| data33 = {{#if: {{{country_capital_and_largest_city|}}}|{{{country_capital_and_largest_city|}}}{{#if: {{{country_largest_city_population|}}}| (pop. {{{country_largest_city_population|}}})}}}}
| label34 = {{longitem|{{{country_leader_title|}}}}}
| data34 = {{{country_leader_name|}}}
| label35 = Baaxadda la daboolay
| data35 = {{Infobox islands/area| km2 = {{{country_area_km2|}}} | sqmi = {{{country_area_sqmi|}}} | m2 = {{{country_area_m2|}}} | sqft = {{{country_area_sqft|}}} | ha = {{{country_area_ha|}}} | acre = {{{country_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country_area|}}}
| header36 = {{#ifeq:{{{disputed|}}}|yes|Waxaa dalbanaya}}
| data37 = {{#if:{{{country1|}}}|{{#ifeq:{{{disputed|}}}|yes|<div class="ib-islands-country2">|<div class="ib-islands-country">}}{{{country1|}}}</div>}}
| label38 = {{longitem|{{{country1_admin_divisions_title|}}}}}
| data38 = {{{country1_admin_divisions|}}}
| label39 = {{longitem|{{{country1_admin_divisions_title_1|}}}}}
| data39 = {{{country1_admin_divisions_1|}}}
| label40 = {{longitem|{{{country1_admin_divisions_title_2|}}}}}
| data40 = {{{country1_admin_divisions_2|}}}
| label41 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country1_largest_city_type|}}}|city}}|city|magaalada}}}}
| data41 = {{#if: {{{country1_capital_and_largest_city|}}}||{{{country1_capital|}}}}}
| label42 = {{longitem|Ugu weyn {{if empty|{{{country1_largest_city_type|}}}|deegaanka}}}}
| data42 = {{#if: {{{country1_capital_and_largest_city|}}}||{{#if: {{{country1_largest_city|}}}|{{{country1_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}}}
| label43 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country1_largest_city_type|}}}|city}}}}
| data43 = {{#if: {{{country1_capital_and_largest_city|}}}|{{{country1_capital_and_largest_city|}}}{{#if: {{{country1_largest_city_population|}}}| (pop. {{{country1_largest_city_population|}}})}}}}
| label44 = {{longitem|{{{country1_leader_title|}}}}}
| data44 = {{{country1_leader_name|}}}
| label45 = Baaxadda la daboolay
| data45 = {{Infobox islands/area| km2 = {{{country1_area_km2|}}} | sqmi = {{{country1_area_sqmi|}}} | m2 = {{{country1_area_m2|}}} | sqft = {{{country1_area_sqft|}}} | ha = {{{country1_area_ha|}}} | acre = {{{country1_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country1_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country1_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country1_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country1_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country1_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country1_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country1_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country1_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country1_area|}}}
| data54 = {{#if:{{{country2|}}}|<div class="ib-islands-country">{{{country2|}}}</div>}}
| label55 = {{longitem|{{{country2_admin_divisions_title|}}}}}
| data55 = {{{country2_admin_divisions|}}}
| label56 = {{longitem|{{{country2_admin_divisions_title_1|}}}}}
| data56 = {{{country2_admin_divisions_1|}}}
| label57 = {{longitem|Caasimadda {{#ifeq: {{if empty|{{{country2_largest_city_type|}}}|city}}|city|magaalada}}}}
| data57 = {{#if: {{{country2_capital_and_largest_city|}}}||{{{country2_capital|}}}}}
| label58 = {{longitem|Ugu weyn {{if empty|{{{country2_largest_city_type|}}}|deegaanka}}}}
| data58 = {{#if: {{{country2_capital_and_largest_city|}}}||{{#if: {{{country2_largest_city|}}}|{{{country2_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}}}
| label59 = {{longitem|Caasimadda iyo tan ugu weyn {{if empty|{{{country2_largest_city_type|}}}|city}}}}
| data59 = {{#if: {{{country2_capital_and_largest_city|}}}|{{{country2_capital_and_largest_city|}}}{{#if: {{{country2_largest_city_population|}}}| (pop. {{{country2_largest_city_population|}}})}}}}
| label60 = {{longitem|{{{country2_leader_title|}}}}}
| data60 = {{{country2_leader_name|}}}
| label61 = Baaxadda la daboolay
| data61 = {{Infobox islands/area| km2 = {{{country2_area_km2|}}} | sqmi = {{{country2_area_sqmi|}}} | m2 = {{{country2_area_m2|}}} | sqft = {{{country2_area_sqft|}}} | ha = {{{country2_area_ha|}}} | acre = {{{country2_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country2_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country2_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country2_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country2_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country2_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country2_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country2_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country2_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country2_area|}}}
| data62 = {{#if:{{{country3|}}}|<div class="ib-islands-country">{{{country3|}}}</div>}}
| label63 = {{{country3_admin_divisions_title|}}}
| data63 = {{{country3_admin_divisions|}}}
| label64 = {{{country3_admin_divisions_title_1|}}}
| data64 = {{{country3_admin_divisions_1|}}}
| label65 = Caasimadda {{#ifeq: {{if empty|{{{country3_largest_city_type|}}}|city}}|city|magaalada}}
| data65 = {{#if: {{{country3_capital_and_largest_city|}}}||{{{country3_capital|}}}}}
| label66 = Ugu weyn {{if empty|{{{country3_largest_city_type|}}}|deegaanka}}
| data66 = {{#if: {{{country3_capital_and_largest_city|}}}||{{#if: {{{country3_largest_city|}}}|{{{country3_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}}}
| label67 = Caasimadda iyo tan ugu weyn {{if empty|{{{country3_largest_city_type|}}}|city}}
| data67 = {{#if: {{{country3_capital_and_largest_city|}}}|{{{country3_capital_and_largest_city|}}}{{#if: {{{country3_largest_city_population|}}}| (pop. {{{country3_largest_city_population|}}})}}}}
| label68 = {{{country3_leader_title|}}}
| data68 = {{{country3_leader_name|}}}
| label69 = Baaxadda la daboolay
| data69 = {{Infobox islands/area| km2 = {{{country3_area_km2|}}} | sqmi = {{{country3_area_sqmi|}}} | m2 = {{{country3_area_m2|}}} | sqft = {{{country3_area_sqft|}}} | ha = {{{country3_area_ha|}}} | acre = {{{country3_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country3_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country3_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country3_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country3_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country3_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country3_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country3_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country3_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country3_area|}}}
| data70 = {{#if:{{{country4|}}}|<div class="ib-islands-country">{{{country4|}}}</div>}}
| label71 = {{{country4_admin_divisions_title|}}}
| data71 = {{{country4_admin_divisions|}}}
| label72 = {{{country4_admin_divisions_title_1|}}}
| data72 = {{{country4_admin_divisions_1|}}}
| label73 = Caasimadda {{#ifeq: {{if empty|{{{country4_largest_city_type|}}}|city}}|city|magaalada}}
| data73 = {{#if: {{{country4_capital_and_largest_city|}}}||{{{country4_capital|}}}}}
| label74 = Ugu weyn {{if empty|{{{country4_largest_city_type|}}}|deegaanka}}
| data74 = {{#if: {{{country4_capital_and_largest_city|}}}||{{#if: {{{country4_largest_city|}}}|{{{country4_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}}}
| label75 = Caasimadda iyo tan ugu weyn {{if empty|{{{country4_largest_city_type|}}}|city}}
| data75 = {{#if: {{{country4_capital_and_largest_city|}}}|{{{country4_capital_and_largest_city|}}}{{#if: {{{country4_largest_city_population|}}}| (pop. {{{country4_largest_city_population|}}})}}}}
| label76 = {{{country4_leader_title|}}}
| data76 = {{{country4_leader_name|}}}
| label77 = Baaxadda la daboolay
| data77 = {{Infobox islands/area| km2 = {{{country4_area_km2|}}} | sqmi = {{{country4_area_sqmi|}}} | m2 = {{{country4_area_m2|}}} | sqft = {{{country4_area_sqft|}}} | ha = {{{country4_area_ha|}}} | acre = {{{country4_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country4_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country4_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country4_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country4_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country4_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country4_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country4_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country4_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country4_area|}}}
| data78 = {{#if:{{{country5|}}}|<div class="ib-islands-country">{{{country5|}}}</div>}}
| label79 = {{{country5_admin_divisions_title|}}}
| data79 = {{{country5_admin_divisions|}}}
| label80 = {{{country5_admin_divisions_title_1|}}}
| data80 = {{{country5_admin_divisions_1|}}}
| label81 = Caasimadda {{#ifeq: {{if empty|{{{country5_largest_city_type|}}}|city}}|city|magaalada}}
| data81 = {{#if: {{{country5_capital_and_largest_city|}}}||{{{country5_capital|}}}}}
| label82 = Ugu weyn {{if empty|{{{country5_largest_city_type|}}}|deegaanka}}
| data82 = {{#if: {{{country5_capital_and_largest_city|}}}||{{#if: {{{country5_largest_city|}}}|{{{country5_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}}}
| label83 = Caasimadda iyo tan ugu weyn {{if empty|{{{country5_largest_city_type|}}}|city}}
| data83 = {{#if: {{{country5_capital_and_largest_city|}}}|{{{country5_capital_and_largest_city|}}}{{#if: {{{country5_largest_city_population|}}}| (pop. {{{country5_largest_city_population|}}})}}}}
| label84 = {{{country5_leader_title|}}}
| data84 = {{{country5_leader_name|}}}
| label85 = Baaxadda la daboolay
| data85 = {{Infobox islands/area| km2 = {{{country5_area_km2|}}} | sqmi = {{{country5_area_sqmi|}}} | m2 = {{{country5_area_m2|}}} | sqft = {{{country5_area_sqft|}}} | ha = {{{country5_area_ha|}}} | acre = {{{country5_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country5_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country5_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country5_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country5_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country5_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country5_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country5_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country5_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country5_area|}}}
| data86 = {{#if:{{{country6|}}}|<div class="ib-islands-country">{{{country6|}}}</div>}}
| label87 = {{{country6_admin_divisions_title|}}}
| data87 = {{{country6_admin_divisions|}}}
| label88 = {{{country6_admin_divisions_title_1|}}}
| data88 = {{{country6_admin_divisions_1|}}}
| label89 = Caasimadda {{#ifeq: {{if empty|{{{country6_largest_city_type|}}}|city}}|city|magaalada}}
| data89 = {{#if: {{{country6_capital_and_largest_city|}}}||{{{country6_capital|}}}}}
| label90 = Ugu weyn {{if empty|{{{country6_largest_city_type|}}}|deegaanka}}
| data90 = {{#if: {{{country6_capital_and_largest_city|}}}||{{#if: {{{country6_largest_city|}}}|{{{country6_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}}}
| label91 = Caasimadda iyo tan ugu weyn {{if empty|{{{country6_largest_city_type|}}}|city}}
| data91 = {{#if: {{{country6_capital_and_largest_city|}}}|{{{country6_capital_and_largest_city|}}}{{#if: {{{country6_largest_city_population|}}}| (pop. {{{country6_largest_city_population|}}})}}}}
| label92 = {{{country6_leader_title|}}}
| data92 = {{{country6_leader_name|}}}
| label93 = Baaxadda la daboolay
| data93 = {{Infobox islands/area| km2 = {{{country6_area_km2|}}} | sqmi = {{{country6_area_sqmi|}}} | m2 = {{{country6_area_m2|}}} | sqft = {{{country6_area_sqft|}}} | ha = {{{country6_area_ha|}}} | acre = {{{country6_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country6_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country6_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country6_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country6_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country6_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country6_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country6_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country6_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country6_area|}}}
| data94 = {{#if:{{{country7|}}}|<div class="ib-islands-country">{{{country7|}}}</div>}}
| label95 = {{{country7_admin_divisions_title|}}}
| data95 = {{{country7_admin_divisions|}}}
| label96 = {{{country7_admin_divisions_title_1|}}}
| data96 = {{{country7_admin_divisions_1|}}}
| label97 = Caasimadda {{#ifeq: {{if empty|{{{country7_largest_city_type|}}}|city}}|city|magaalada}}
| data97 = {{#if: {{{country7_capital_and_largest_city|}}}||{{{country7_capital|}}}}}
| label98 = Ugu weyn {{if empty|{{{country7_largest_city_type|}}}|deegaanka}}
| data98 = {{#if: {{{country7_capital_and_largest_city|}}}||{{#if: {{{country7_largest_city|}}}|{{{country7_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}}}
| label99 = Caasimadda iyo tan ugu weyn {{if empty|{{{country7_largest_city_type|}}}|city}}
| data99 = {{#if: {{{country7_capital_and_largest_city|}}}|{{{country7_capital_and_largest_city|}}}{{#if: {{{country7_largest_city_population|}}}| (pop. {{{country7_largest_city_population|}}})}}}}
| label100 = {{{country7_leader_title|}}}
| data100 = {{{country7_leader_name|}}}
| label101 = Baaxadda la daboolay
| data101 = {{Infobox islands/area| km2 = {{{country7_area_km2|}}} | sqmi = {{{country7_area_sqmi|}}} | m2 = {{{country7_area_m2|}}} | sqft = {{{country7_area_sqft|}}} | ha = {{{country7_area_ha|}}} | acre = {{{country7_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country7_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country7_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country7_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country7_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country7_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country7_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country7_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country7_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country7_area|}}}
| data102 = {{#if:{{{country8|}}}|<div class="ib-islands-country">{{{country8|}}}</div>}}
| label103 = {{{country8_admin_divisions_title|}}}
| data103 = {{{country8_admin_divisions|}}}
| label104 = {{{country8_admin_divisions_title_1|}}}
| data104 = {{{country8_admin_divisions_1|}}}
| label105 = Caasimadda {{#ifeq: {{if empty|{{{country8_largest_city_type|}}}|city}}|city|magaalada}}
| data105 = {{#if: {{{country8_capital_and_largest_city|}}}||{{{country8_capital|}}}}}
| label106 = Ugu weyn {{if empty|{{{country8_largest_city_type|}}}|deegaanka}}
| data106 = {{#if: {{{country8_capital_and_largest_city|}}}||{{#if: {{{country8_largest_city|}}}|{{{country8_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}}}
| label107 = Caasimadda iyo tan ugu weyn {{if empty|{{{country8_largest_city_type|}}}|city}}
| data107 = {{#if: {{{country8_capital_and_largest_city|}}}|{{{country8_capital_and_largest_city|}}}{{#if: {{{country8_largest_city_population|}}}| (pop. {{{country8_largest_city_population|}}})}}}}
| label108 = {{{country8_leader_title|}}}
| data108 = {{{country8_leader_name|}}}
| label109 = Baaxadda la daboolay
| data109 = {{Infobox islands/area| km2 = {{{country8_area_km2|}}} | sqmi = {{{country8_area_sqmi|}}} | m2 = {{{country8_area_m2|}}} | sqft = {{{country8_area_sqft|}}} | ha = {{{country8_area_ha|}}} | acre = {{{country8_area_acre|}}} | pct = {{#ifexpr: {{both|{{{country8_area_km2|}}} | {{{area_km2|}}} }} | {{pct | {{{country8_area_km2|}}} | {{{area_km2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqmi|}}} | {{{area_sqmi|}}} }} | {{pct | {{{country8_area_sqmi|}}} | {{{area_sqmi|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_m2|}}} | {{{area_m2|}}} }} | {{pct | {{{country8_area_m2|}}} | {{{area_m2|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_sqft|}}} | {{{area_sqft|}}} }} | {{pct | {{{country8_area_sqft|}}} | {{{area_sqft|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_ha|}}} | {{{area_ha|}}} }} | {{pct | {{{country8_area_ha|}}} | {{{area_ha|}}} | 1 |%=}} | {{#ifexpr: {{both|{{{country8_area_acre|}}} | {{{area_acre|}}} }} | {{pct | {{{country8_area_acre|}}} | {{{area_acre|}}} | 1 |%=}} | }} }} }} }} }} }} }}{{{country8_area|}}}
<!-- end administration -->
| header110 = Dadweynaha
| label111 = Qowmiyadda
| data111 = {{{demonym|}}}
| label112 = Tirada dadka
| data112 = {{{population|}}} {{#if:{{{population_as_of|}}}|({{{population_as_of|}}})}}{{{population_footnotes|}}}
| label113 = Kaalinta dadka
| data113 = {{#if:{{{population_rank|}}}|{{{population_rank|}}} {{#if:{{{population_rank_max|}}}|inta u dhaxaysa out of {{{population_rank_max|}}} }} }}
| label114 = Cufnaanta dadka
| data114 = {{Infobox islands/density| km2 = {{{density_km2|}}}| sqmi = {{{density_sqmi|}}} }}{{{density_footnotes|}}}
| label115 = Kaalinta cufnaanta dadka
| data115 = {{{density_rank|}}}
| label116 = Luuqadaha
| data116 = {{{languages|}}}
| label117 = Qowmiyadaha
| data117 = {{{ethnic_groups|}}}
<!-- end demographics -->
| header118 = Macluumaad dheeraad ah
<!-- ***Time Zones*** -->
| label119 = {{#if:{{both|{{if empty|{{{timezone1|}}}|{{{timezone|}}}}}|{{{timezone2|}}}}}|Aagagga waqtiga|Aagga waqtiga}}
| data119 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{if empty|{{{timezone1|}}}|{{{timezone}}}}} {{#if:{{{utc_offset1|}}}{{{utc_offset|}}}|([[UTC{{if empty|{{{utc_offset1|}}}|{{{utc_offset}}}}}]])}}
| 2= {{#if:{{{timezone2|}}}|{{{timezone2}}} {{#if:{{{utc_offset2|}}}|([[UTC{{{utc_offset2}}}]])}} }} }}}}
| label120 = <span class="nowrap"> • Xagaaga </span>
| data120 = {{#if:{{{timezone1|}}}{{{timezone|}}}|
{{unbulleted list
| 1= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{if empty|{{{timezone1_DST|}}}|{{{timezone_DST|}}}}} ([[UTC{{if empty|{{{utc_offset1_DST|}}}|{{{utc_offset_DST|}}}}}]])}}
| 2= {{#if:{{{timezone1_DST|}}}{{{timezone_DST|}}}|{{#if:{{{timezone2_DST|}}}|{{{timezone2_DST}}} ([[UTC{{{utc_offset2_DST|}}}]])}} }}
}}}}
<!-- ***Area codes*** -->
| label121 = {{if empty|{{{postal_code_type|}}}|Koodka boostada}}
| data121 = {{{postal_code|}}}
| label122 = {{if empty|{{{area_code_type|}}}|Telephone numbering plan Koodka deegaankaArea code{{pluralize from text|{{{area_code|}}}|plural=s}}}}
| data122 = {{{area_code|}}}
| label123 = Diiwaangelinta gaadiidka
| data123 = {{{registration_plate|}}}
| label124 = {{if empty|{{{iso_code_type|}}}|ISO 3166-2 ISO code}}
| data124 = {{{iso_code|}}}
| label125 = Mareegta rasmiga ah
| data125 = {{{website|}}}
| data126 = {{{additional_info|}}}
| header127 = <nowiki />
| data128 = {{{misc|}}}
{{{module|}}}
| below = {{{footnotes|}}}
}}{{#invoke:Check for unknown parameters|check|unknown={{main other|}}|preview=Page using Template:Infobox islands with unknown parameter "_VALUE_"|ignoreblank=y|mapframe_args=y|pushpin_map_args=y| additional_info | archipelago | area_acre | area_code | area_code_type | area_footnotes | area_ha | area_km2 | area_m2 | area_sqft | area_sqmi | coastline_footnotes | coastline_ft | coastline_km | coastline_m | coastline_mi | coordinates | country | country_admin_divisions | country_admin_divisions_1 | country_admin_divisions_2 | country_admin_divisions_3 | country_admin_divisions_4 | country_admin_divisions_title | country_admin_divisions_title_1 | country_admin_divisions_title_2 | country_admin_divisions_title_3 | country_admin_divisions_title_4 | country_area | country_area_acre | country_area_ha | country_area_km2 | country_area_m2 | country_area_sqft | country_area_sqmi | country_capital | country_capital_and_largest_city | country_largest_city | country_largest_city_population | country_largest_city_type | country_leader_name | country_leader_title | country1 | country1_admin_divisions | country1_admin_divisions_title | country1_area | country1_area_acre | country1_area_ha | country1_area_sqft | country1_area_sqmi | country1_capital | country1_capital_and_largest_city | country1_largest_city | country1_largest_city_population | country1_largest_city_type | country1_leader_name | country1_leader_title | country2 | country2_admin_divisions | country2_admin_divisions_title | country2_area | country2_area_acre | country2_area_ha | country2_area_sqft | country2_area_sqmi | country2_capital | country2_capital_and_largest_city | country2_largest_city | country2_largest_city_population | country2_largest_city_type | country2_leader_name | country2_leader_title | country3 | country3_admin_divisions | country3_admin_divisions_title | country3_area | country3_area_acre | country3_area_ha | country3_area_sqft | country3_area_sqmi | country3_capital | country3_capital_and_largest_city | country3_largest_city | country3_largest_city_population | country3_largest_city_type | country3_leader_name | country3_leader_title | country4 | country4_admin_divisions | country4_admin_divisions_title | country4_area | country4_area_acre | country4_area_ha | country4_area_sqft | country4_area_sqmi | country4_capital | country4_capital_and_largest_city | country4_largest_city | country4_largest_city_population | country4_largest_city_type | country4_leader_name | country4_leader_title | country5 | country5_admin_divisions | country5_admin_divisions_title | country5_area | country5_area_acre | country5_area_ha | country5_area_sqft | country5_area_sqmi | country5_capital | country5_capital_and_largest_city | country5_largest_city | country5_largest_city_population | country5_largest_city_type | country5_leader_name | country5_leader_title | country6 | country6_admin_divisions | country6_admin_divisions_title | country6_area | country6_area_acre | country6_area_ha | country6_area_sqft | country6_area_sqmi | country6_capital | country6_capital_and_largest_city | country6_largest_city | country6_largest_city_population | country6_largest_city_type | country6_leader_name | country6_leader_title | country7 | country7_admin_divisions | country7_admin_divisions_title | country7_area | country7_area_acre | country7_area_ha | country7_area_sqft | country7_area_sqmi | country7_capital | country7_capital_and_largest_city | country7_largest_city | country7_largest_city_population | country7_largest_city_type | country7_leader_name | country7_leader_title | country8 | country8_admin_divisions | country8_admin_divisions_title | country8_area | country8_area_acre | country8_area_ha | country8_area_sqft | country8_area_sqmi | country8_capital | country8_capital_and_largest_city | country8_largest_city | country8_largest_city_population | country8_largest_city_type | country8_leader_name | country8_leader_title | country1_admin_divisions_1 | country1_admin_divisions_2 | country1_admin_divisions_title_1 | country1_admin_divisions_title_2 | country1_area_km2 | country1_area_m2 | country2_admin_divisions_1 | country2_admin_divisions_title_1 | country2_area_km2 | country2_area_m2 | country3_admin_divisions_1 | country3_admin_divisions_title_1 | country3_area_km2 | country3_area_m2 | country4_admin_divisions_1 | country4_admin_divisions_title_1 | country4_area_km2 | country4_area_m2 | country5_admin_divisions_1 | country5_admin_divisions_title_1 | country5_area_km2 | country5_area_m2 | country6_admin_divisions_1 | country6_admin_divisions_title_1 | country6_area_km2 | country6_area_m2 | country7_admin_divisions_1 | country7_admin_divisions_title_1 | country7_area_km2 | country7_area_m2 | country8_admin_divisions_1 | country8_admin_divisions_title_1 | country8_area_km2 | country8_area_m2 | demonym | density_footnotes | density_km2 | density_rank | density_sqmi | disputed | elevation_footnotes | elevation_ft | elevation_m | embed | ethnic_groups | etymology | footnotes | grid_reference | highest_mount | image | image_alt | image_caption | image_map | image_size | island_type | iso_code | iso_code_type | languages | length_footnotes | length_ft | length_km | length_m | length_mi | local_name | location | major_islands | map_alt | map_caption | map_size | misc | module | name | native_name | native_name_lang | native_name_link | nickname | other_names | plural | population | population_as_of | population_footnotes | population_rank | population_rank_max | postal_code | postal_code_type | rank | registration_plate | timezone | timezone_DST | timezone1 | timezone1_DST | timezone2 | timezone2_DST | total_islands | treaty_system | type | utc_offset | utc_offset_DST | utc_offset1 | utc_offset1_DST | utc_offset2 | utc_offset2_DST | waterbody | website | width_footnotes | width_ft | width_km | width_m | width_max_ft | width_max_km | width_max_m | width_max_mi | width_mi | width_min_ft | width_min_km | width_min_m | width_min_mi }}<noinclude>
{{documentation}}
<!-- categories links go in /doc, not here -->
</noinclude>
b5gk2duatnss6bny0ivve3euxbeowze
Template:Infobox islands/area
10
20193
309251
160754
2026-09-23T16:04:55Z
Isma4l
41797
309251
wikitext
text/x-wiki
{{#if:{{both|{{{km2|}}}|{{{sqmi|}}}}}
|<!-- sqmi and km2 -->{{formatnum:{{{km2}}}}} km<sup>2</sup> ({{formatnum:{{{sqmi}}}}} sq mi)
|{{#if:{{{km2|}}}{{{sqmi|}}}
|{{convinfobox|{{{km2|}}}|km2|{{{sqmi|}}}|sqmi|disp={{#if:{{{pct|}}}|x|b}}|{{#if:{{{pct|}}}| (}}}}{{#if:{{{pct|}}}|; {{{pct}}}%)}}
|{{#if:{{both|{{{ha|}}}|{{{acre|}}}}}
|<!-- acre and ha (and no sqmi and no km2) -->{{formatnum:{{{ha}}}}} ha ({{formatnum:{{{acre}}}}} acres)
|{{#if:{{{ha|}}}{{{acre|}}}
|{{convinfobox|{{{ha|}}}|ha|{{{acre|}}}|acre|disp={{#if:{{{pct|}}}|x|b}}|{{#if:{{{pct|}}}| (}}}}{{#if:{{{pct|}}}|; {{{pct}}}%)}}
|{{#if:{{both|{{{sqft|}}}|{{{m2|}}}}}
|<!-- sqft and m2 (and no sqmi, no km2, no ha, no acre) -->{{formatnum:{{{m2}}}}} m<sup>2</sup> ({{formatnum:{{{sqft}}}}} sq ft)
|{{#if:{{{sqft|}}}{{{m2|}}}
|{{convinfobox|{{{m2|}}}|m2|{{{sqft|}}}|sqft|disp={{#if:{{{pct|}}}|x|b}}|{{#if:{{{pct|}}}| (}}}}{{#if:{{{pct|}}}|; {{{pct}}}%)}}
}}
}}
}}
}}
}}
}}<noinclude>{{documentation}}</noinclude>
2y1vjhffkbdb6s0yrlw90u2elza17dg
Template:Infobox islands/length
10
20194
309253
160756
2026-09-23T16:06:16Z
Isma4l
41797
309253
wikitext
text/x-wiki
{{#if:{{{km|}}}
|{{#if:{{{mi|}}}<!-- mi and km -->
|{{formatnum:{{{km}}}}} km ({{formatnum:{{{mi}}}}} mi)
|{{formatnum:{{{km}}}}} km ({{#expr: ({{formatnum:{{{km}}}|R}})/1.609344 round ({{precision|{{formatnum:{{{km}}}|R}}}}+1)}} mi)
}}
|{{#if:{{{mi|}}}<!-- mi and no km -->
|{{formatnum:{{{mi}}}}} mi ({{#expr: ({{formatnum:{{{mi}}}|R}})*1.609344 round ({{precision|{{formatnum:{{{mi}}}|R}}}}-0)}} km)
|{{#if:{{{m|}}}
|{{#if:{{{ft|}}}<!-- ft and m (and no mi and no km) -->
|{{formatnum:{{{m}}}}} m ({{formatnum:{{{ft}}}}} ft)
|{{formatnum:{{{m}}}}} m ({{#expr: ({{formatnum:{{{m}}}|R}})*3.2808399 round ({{precision|{{formatnum:{{{m}}}|R}}}}-0)}} ft)
}}
|{{#if:{{{ft|}}}<!-- ft and no m (and no mi and no km -->
|{{formatnum:{{{ft}}}}} ft ({{#expr: ({{formatnum:{{{ft}}}|R}})/3.2808399 round ({{precision|{{formatnum:{{{ft}}}|R}}}}+1)}} m)
}}
|{{#if:{{{nmi|}}}<!-- nmi (and no mi and no km -->
|{{formatnum:{{{nmi}}}}} nmi ({{#expr: ({{formatnum:{{{nmi}}}|R}})/1.15078 round ({{precision|{{formatnum:{{{nmi}}}|R}}}}+1)}} mi; {{formatnum:{{{nmi}}}|R}})/1.852 round ({{precision|{{formatnum:{{{nmi}}}|R}}}}+1)}} km)
}}
}}
}}<noinclude>{{documentation}}</noinclude>
4p7sh6md3nu3y5jaa0a8h1qu0tu8f6c
Template:Infobox gasiirad/deegaan
10
22883
309252
170604
2026-09-23T16:05:43Z
Isma4l
41797
309252
wikitext
text/x-wiki
{{#if:{{{km2|}}}
|{{#if:{{{sqmi|}}}<!-- sqmi and km2 -->
|{{formatnum:{{{km2}}}}}/km<sup>2</sup> ({{formatnum:{{{sqmi}}}}}/sq mi)
|{{formatnum:{{{km2}}}}}/km<sup>2</sup> ({{#expr: ({{formatnum:{{{km2}}}|R}})*2.58998811 round ({{precision|{{formatnum:{{{km2}}}|R}}}}-0)}}/sq mi)
}}
|{{#if:{{{sqmi|}}}<!-- sqmi and no km2 -->
|{{formatnum:{{{sqmi}}}}}/sq mi ({{#expr: ({{formatnum:{{{sqmi}}}|R}})/2.58998811 round ({{precision|{{formatnum:{{{sqmi}}}|R}}}}+1)}}/km<sup>2</sup>)
|{{#if:{{{m2|}}}
|{{#if:{{{sqft|}}}<!-- sqft and m2 (and no sqmi and no km2) -->
|{{formatnum:{{{m2}}}}}/m<sup>2</sup> ({{formatnum:{{{sqft}}}}}/sq ft)
|{{formatnum:{{{m2}}}}}/m<sup>2</sup> ({{#expr: ({{formatnum:{{{m2}}}|R}})/10.7639104 round ({{precision|{{formatnum:{{{m2}}}|R}}}}+1)}}/sq ft)
}}
|{{#if:{{{sqft|}}}<!-- sqft and no m2 (and no sqmi and no km2 -->
|{{formatnum:{{{sqft}}}}}/sq ft ({{#expr: ({{formatnum:{{{sqft}}}|R}})*10.7639104 round ({{precision|{{formatnum:{{{sqft}}}|R}}}}-0)}}/m<sup>2</sup>)
}}
}}
}}
}}<noinclude>{{documentation}}</noinclude>
8t6czsyzlkviet3tsaqqdmthgar3n2m
Template:User x
10
47300
309283
295413
2026-09-23T21:05:10Z
Isma4l
41797
/* Sidoo kale eeg */
309283
wikitext
text/x-wiki
{{Documentation subpage|templates badan oo ku yaalla [[:Category:Language user templates]]|override=user x}}<includeonly>
{{Transclusionless|reason=waxay qayb ka tahay gomo templates ah, kuwaas oo qaarkood laga yaabo inaan la isticmaalin}}
</includeonly>
== Adeegsiga ==
* {{Strong|Ha koobiyeyn}} isha koodka (source) sanduuqan isticmaalaha. Haddii kale, waxaad halis ugu jirtaa in boggaaga isticmaalaha uu galo qayb khaldan, ama aad abuurto sanduuqyo isticmaale oo nuqul ah.
* Sanduuqan isticmaalaha dhig boggaaga isticmaalaha sidan: <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>}}</nowiki></code>
* Sanduuqan isticmaalaha geli [[WP:Babel|Babel]] sidan: <code><nowiki>{{Babel|</nowiki>{{#invoke:String|sub|{{BASEPAGENAME}}|6}}<nowiki>}}</nowiki></code>{{#ifexist: Template:{{BASEPAGENAME}}-f
| <nowiki/>
* Nooca dheddigga, eeg: {{tl|{{BASEPAGENAME}}-f}}.
}}{{#ifeq: {{#invoke:ustring|sub|\{{BASEPAGENAME}}|-2|-1}} | -0
|| <nowiki />
* Template-kan wuxuu si otomaatig ah ugu dari doonaa boggaaga qaybaha (categories) soo socda:
** {{#ifexist: Category:{{BASEPAGENAME}}-N
| [[:Category:{{BASEPAGENAME}}-N]]
| {{#ifexist: Category:{{BASEPAGENAME}}
| [[:Category:{{BASEPAGENAME}}]]
| {{#ifexist: Category:{{#invoke:String|sub|{{BASEPAGENAME}}|1|-3}}
| [[:Category:{{#invoke:String|sub|{{BASEPAGENAME}}|1|-3}}]]
| [[:Category:Wikipedians by language]]
}}
}}
}}
}}
== Sidoo kale eeg ==
* [[:Category:Language user templates]]
* [[:Category:Wikipedians luuqad ahaan]]
* {{Tl|Languages}}
{{Languages
|1 = {{#if: {{#invoke:ISO 639 name|iso_639_code_exists|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}}}
| {{ISO 639 name|{{#invoke:String|match|s={{BASEPAGENAME}}|pattern=[a-z][a-z][a-z]?|start=5|plain=false|nomatch=mis}}}}| {{ISO 639 name|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}<noinclude>en</noinclude>}}
}}
|2 = {{#if: {{#invoke:ISO 639 name|iso_639_code_exists|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}}}
| {{#invoke:String|match|s={{BASEPAGENAME}}|pattern=[a-z][a-z][a-z]?|start=5|plain=false|nomatch=mis}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}<noinclude>en</noinclude>
}}
|level = 6
|sections = {{#if: {{#invoke:ISO 639 name|iso_639_code_exists|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}}}
| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}
| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}<noinclude>en</noinclude>
}}
}}<includeonly>{{Sandbox other||{{Category handler|template=1|1={{#ifexist: Category:{{BASEPAGENAME}}-N
| [[Category:{{resolve category redirect|{{BASEPAGENAME}}-N}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N]]
| {{#ifexist: Category:{{resolve category redirect|{{BASEPAGENAME}}}}
| [[Category:{{resolve category redirect|{{BASEPAGENAME}}}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
| {{#ifexist: Category:{{#invoke:Ustring|sub|{{BASEPAGENAME}}|1|-3}}
| [[Category:{{resolve category redirect|{{#invoke:Ustring|sub|{{BASEPAGENAME}}|1|-3}}}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}]]
| [[Category:Malformed language user templates|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
}}
}}
}}{{#ifexist: Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N
| [[Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N]]
| {{#ifexist: Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}
| [[Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
| {{#ifexist: Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}
| [[Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}]]
| [[Category:Language user templates|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
}}
}}
}}|nocat={{{nocat|}}}
}}}}</includeonly><noinclude>{{Documentation}}</noinclude>
lfwfq3qfmy3f2x75o8kql76q3y7xwgu
309293
309283
2026-09-23T21:27:46Z
Isma4l
41797
/* Sidoo kale eeg */
309293
wikitext
text/x-wiki
{{Documentation subpage|templates badan oo ku yaalla [[:Category:Language user templates]]|override=user x}}<includeonly>
{{Transclusionless|reason=waxay qayb ka tahay gomo templates ah, kuwaas oo qaarkood laga yaabo inaan la isticmaalin}}
</includeonly>
== Adeegsiga ==
* {{Strong|Ha koobiyeyn}} isha koodka (source) sanduuqan isticmaalaha. Haddii kale, waxaad halis ugu jirtaa in boggaaga isticmaalaha uu galo qayb khaldan, ama aad abuurto sanduuqyo isticmaale oo nuqul ah.
* Sanduuqan isticmaalaha dhig boggaaga isticmaalaha sidan: <code><nowiki>{{</nowiki>{{BASEPAGENAME}}<nowiki>}}</nowiki></code>
* Sanduuqan isticmaalaha geli [[WP:Babel|Babel]] sidan: <code><nowiki>{{Babel|</nowiki>{{#invoke:String|sub|{{BASEPAGENAME}}|6}}<nowiki>}}</nowiki></code>{{#ifexist: Template:{{BASEPAGENAME}}-f
| <nowiki/>
* Nooca dheddigga, eeg: {{tl|{{BASEPAGENAME}}-f}}.
}}{{#ifeq: {{#invoke:ustring|sub|\{{BASEPAGENAME}}|-2|-1}} | -0
|| <nowiki />
* Template-kan wuxuu si otomaatig ah ugu dari doonaa boggaaga qaybaha (categories) soo socda:
** {{#ifexist: Category:{{BASEPAGENAME}}-N
| [[:Category:{{BASEPAGENAME}}-N]]
| {{#ifexist: Category:{{BASEPAGENAME}}
| [[:Category:{{BASEPAGENAME}}]]
| {{#ifexist: Category:{{#invoke:String|sub|{{BASEPAGENAME}}|1|-3}}
| [[:Category:{{#invoke:String|sub|{{BASEPAGENAME}}|1|-3}}]]
| [[:Category:Wikipedians by language]]
}}
}}
}}
}}
== Sidoo kale eeg ==
* [[:Category:Language user templates]]
* [[:Category:Luqadaha wikipediyaasha]]
* {{Tl|Languages}}
{{Languages
|1 = {{#if: {{#invoke:ISO 639 name|iso_639_code_exists|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}}}
| {{ISO 639 name|{{#invoke:String|match|s={{BASEPAGENAME}}|pattern=[a-z][a-z][a-z]?|start=5|plain=false|nomatch=mis}}}}| {{ISO 639 name|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}<noinclude>en</noinclude>}}
}}
|2 = {{#if: {{#invoke:ISO 639 name|iso_639_code_exists|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}}}
| {{#invoke:String|match|s={{BASEPAGENAME}}|pattern=[a-z][a-z][a-z]?|start=5|plain=false|nomatch=mis}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}<noinclude>en</noinclude>
}}
|level = 6
|sections = {{#if: {{#invoke:ISO 639 name|iso_639_code_exists|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}}}
| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}
| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}<noinclude>en</noinclude>
}}
}}<includeonly>{{Sandbox other||{{Category handler|template=1|1={{#ifexist: Category:{{BASEPAGENAME}}-N
| [[Category:{{resolve category redirect|{{BASEPAGENAME}}-N}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N]]
| {{#ifexist: Category:{{resolve category redirect|{{BASEPAGENAME}}}}
| [[Category:{{resolve category redirect|{{BASEPAGENAME}}}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
| {{#ifexist: Category:{{#invoke:Ustring|sub|{{BASEPAGENAME}}|1|-3}}
| [[Category:{{resolve category redirect|{{#invoke:Ustring|sub|{{BASEPAGENAME}}|1|-3}}}}| {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}]]
| [[Category:Malformed language user templates|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
}}
}}
}}{{#ifexist: Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N
| [[Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}-N]]
| {{#ifexist: Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}
| [[Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
| {{#ifexist: Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}
| [[Category:User templates {{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6|-3}}]]
| [[Category:Language user templates|{{#invoke:Ustring|sub|\{{BASEPAGENAME}}|6}}]]
}}
}}
}}|nocat={{{nocat|}}}
}}}}</includeonly><noinclude>{{Documentation}}</noinclude>
ak2mqbdpt2hy8aqyfcddoorjjpsv1ap
Borgsum
0
50053
309271
303990
2026-09-23T20:19:08Z
Psittacuso
47529
/* Taariikhda */ +image
309271
wikitext
text/x-wiki
{{Infobox German location
|name = Borgsum<br><small>Borigsem</small>
|image_photo = Pincerno - Borgsum 1.JPG
|image_caption = Mishiinka dabaysha ee ku taal Borgsum
|image_coa =
|coordinates = {{coord|54|42|N|8|28|E|format=dms|display=inline,title}}
|image_plan = Borgsum in NF.PNG
|state =
|district = Nordfriesland
|Amt = Föhr-Amrum
|elevation = 5
|area = 5.51
|postal_code = 25938
|area_code = 04683
|licence = NF
|Gemeindeschlüssel = 01 0 54 015
|website = [http://www.borgsum-auf-foehr.de/ www.borgsum-auf-foehr.de]
|mayor = Norbert Nielsen
}}
'''Borgsum''' ([[Fering]]: ''Borigsem'') waa [[Municipalities of Germany|degmo]] ku taal jasiiradda [[Föhr]] ee gobolka [[Nordfriesland]], ee [[Schleswig-Holstein]], [[Jarmalka]].
==Taariikhda==
[[Image:Lembecksburg auf Föhr Panorama.jpg|thumb|300px|left|''Lembecksburg'']]
[[Image:Lembecksburg Zusammengesetztes Orthophoto des GDI-SH2.jpg|thumb|left|''Lembecksburg'']]
Magacu wuxuu ka dhigan yahay "Degsiimada qalcadda". Qalcaddan la tilmaamay waa ''Lembecksburg'', oo dhab ahaantii ah gidaar wareegsan oo qarniyadii dhexe ah oo dhexroorkiisu yahay 95 mitir iyo dhererkiisu yahay toban mitir. Sida lagu sheegay sheekooyinkii hore, waxaa la dhisay qarnigii 9-aad oo ahayd saldhig adag oo lagula dagaallamayay [[Viking|Fiking-yada]] waxaana loogu magac daray raggii knight-ka ahaa ee Klaus Lembeck kaas oo la sheegay inuu halkaas deganaa isagoo ah maamulaha boqorka [[Valdemar IV of Denmark]] qarnigii 14-aad. Si kastaba ha ahaatee, ka dib markii uu jabiyay dhaartiisii fudal, Lembeck waxaa la sheegay inuu go'doomiyay ciidankii boqorka. Waa la isku khilaafay inuu Lembeck abid cag saaray jasiiradda.<ref>{{cite book|title=Sagen und Sagenhaftes von der Insel Föhr [Tales and Legends from Föhr Island]|editor-first=H. |editor-last=Philippsen |language=German |publisher=H. Lühr & Dircks |location=[[Garding]] |year=1928 |edition=2nd |pages=65–69}}</ref> Si kastaba ha ahaatee, natiijooyinka qaddiimiga ah ee jasiiradda Sylt dabayaaqadii 1970-meeyadii waxay soo jeedinayaan in Lembecksburg iyo xarumaha la midka ah ee ku yaal Sylt ay dib ugu noqdaan maalmihii Boqortooyada Roomaanka.<ref>{{cite book|first=Gerhard |last=Mildenberger |title=Germanische Burgen |trans-title=Germanic Castles |language=German |publisher=Aschendorff |location=Münster |year=1978 |isbn= 3-402-05844-8 |page=76 |url=https://books.google.com/books?id=A_u5AAAAIAAJ&q=Lembecksburg}}</ref>
1991 kii [[wind mill|mishiinka dabaysha]] ayaa laga dhisay halkii mishiinkii hore ee burbursanaa. Maanta, Borgsum waxay leedahay ku dhowaad 350 degmo.
==Siyaasadda==
Tan iyo doorashadii golaha deegaanka ee 2008, ururka muwaadiniinta ''BWG'' wuxuu haystaa lix ka mid ah sagaalka kursi ee golaha degmada. Kursi kalena waxaa haya ''ABB''. Kursiga sagaalaad waa mid banaan, ma jiraan xisbiyo waaweyn oo Jarmal ah oo ku matalaya golaha.
==Dhaqaalaha==
Borgsum waxaa ku badan beeraha iyo dalxiiska. Intaa waxaa dheer, waxaa jira dhowr ganacsi oo farsamo gacmeed ah.
==Tixraac==
{{Reflist}}
==Xiriirinta dibadda==
*{{commons category-inline}}
*[http://www.borgsum-auf-foehr.de Borgsum]
{{authority control}}
5ecfkpbmbtvojp9bu0hivvcld6omgbb
Module:Category pair
828
50932
309356
305435
2026-09-23T22:21:44Z
Isma4l
41797
309356
Scribunto
text/plain
require('strict')
local getArgs = require('Module:Arguments').getArgs
local hatnote = require('Module:Hatnote')._hatnote
local formatLink = require('Module:Format link')._formatLink
local p = {}
local catNS = mw.site.namespaces.Category.id -- lambarka meesha magaca qaybta (category namespace)
local function exists(title)
local success, result = pcall(function() return title.exists end)
return success and result
end
-- Hirgelinta Lua ee [[Template:CategoryPair]]
-- Cabirrada (Arguments):
-- prevTitle -- shayga mw.title.Title ee qaybta ka horreysa
-- nextTitle -- shayga mw.title.Title ee qaybta xigta
-- Waxay soo celisaa:
-- xusuusin (hatnote) oo dhaysa "sidoo kale eeg" mid ama labada (iyadoo ku xiran in ay jiraan iyo in kale)
function p._pair(prevTitle, nextTitle)
prevTitle = prevTitle and exists(prevTitle) and formatLink{link = prevTitle.fullText}
nextTitle = nextTitle and exists(nextTitle) and formatLink{link = nextTitle.fullText}
local note = ''
if prevTitle and nextTitle then -- haddii labaduba jiraan
note = mw.ustring.format('Sidoo kale eeg %s-dii hore iyo %s-ta xiga', prevTitle, nextTitle)
elseif prevTitle then -- haddii ay jirto prevTitle kaliya
note = mw.ustring.format('Sidoo kale eeg %s-dii hore', prevTitle)
elseif nextTitle then -- haddii ay jirto nextTitle kaliya
note = mw.ustring.format('Sidoo kale eeg %s-ta xiga', nextTitle)
else -- haddii kale midkoodna ma jiro
return mw.title.getCurrentTitle().namespace == catNS and '[[Category:Pages using category pair with no output]]' or ''
end
return hatnote(note, {extraclasses = 'seealso'})
end
function p.catPair(frame)
local args = getArgs(frame, {wrappers={'Template:Category pair'}})
local prevTitle = args[1] and mw.title.new(args[1], catNS)
local nextTitle = args[2] and mw.title.new(args[2], catNS)
return p._pair(prevTitle, nextTitle)
end
function p.prevCat(frame)
local args = getArgs(frame, {wrappers={'Template:Preceding category'}})
local prevTitle = args[1] and mw.title.new(args[1], catNS)
return p._pair(prevTitle, nil)
end
function p.nextCat(frame)
local args = getArgs(frame, {wrappers={'Template:Succeeding category'}})
local nextTitle = args[1] and mw.title.new(args[1], catNS)
return p._pair(nil, nextTitle)
end
return p
ndtkdpr6nj1p3gctwc69b2t4hmk14g0
Template:Userbox table userbox
10
52114
309289
307970
2026-09-23T21:23:40Z
Isma4l
41797
/* */
309289
wikitext
text/x-wiki
<includeonly>|- style="margin:0;padding:0;"
|align=left|{{#invoke:template wrapper|link|_template={{{1|}}}|_exclude=comment|_alias-map=2:1,3:2,4:3,5:4,6:5,7:6,8:7,9:8,10:9,11:10,12:11,13:12,14:13}}
|align=center|{{#invoke:template wrapper|wrap|_template={{{1|}}}|_exclude=comment|_alias-map=2:1,3:2,4:3,5:4,6:5,7:6,8:7,9:8,10:9,11:10,12:11,13:12,14:13|nocat=true|category=no|categories=no|left=yes|float=left|margin=0}}
|{{What links here|{{transclude|{{{1|error}}}}}|bogag isku xiran|ns=all}}{{#if:{{{comment|}}}|<br />{{small|{{{comment}}}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
1v4ubk11qpwn1mrrw7t423pdx9h3iis
Template:Userbox table top
10
52115
309290
307971
2026-09-23T21:25:15Z
Isma4l
41797
309290
wikitext
text/x-wiki
<includeonly>{| style="color:inherit;margin:0;padding:0;"
{{#if:{{{1|}}}|{{!}}+'''<big>{{{1|}}}</big>'''<br/>}}
|- style="font-size:85%;margin:0;padding:0;"
{{#ifeq:{{{headers|yes}}}|yes|
!width=390 align="center"{{!}}{{{col1|''[[Help:Wikitext|Wikitext]]''}}}
!width=250 align="center"{{!}}{{{col2|''[[Wikipedia:Userboxes|sanduuqa isticmaalaha]]''}}}
!align=center{{!}}{{{col3|''[[Wikipedia:User pages|Meesha loo isticmaalo]]''}}}|
!width=390{{!}}
!width=250{{!}}
!{{!}}
}}</includeonly><noinclude>{{documentation|Template:Yy/doc}}</noinclude>
f178f1hpulkyl3rs139v7hagwn2nu9w
Template:Infobox islands/styles.css
10
53008
309249
2026-09-23T16:03:05Z
Isma4l
41797
Bog cusub: /* {{pp-template}} */ .ib-islands-title-embed { background-color: #efefef; font-weight: bold; padding: 0.3em 0; } .ib-islands-nick, .ib-islands-native { font-size: 85%; } .ib-islands-native > div { display: inline; } .ib-islands .infobox-header { background-color: #efefef; } .ib-islands-country { border-top: 1px solid black; font-weight: bold; } .ib-islands-country2 { font-weight: bold; } .ib-islands .infobox-below { text-align: left; border-top: #aaa 1px solid; }
309249
sanitized-css
text/css
/* {{pp-template}} */
.ib-islands-title-embed {
background-color: #efefef;
font-weight: bold;
padding: 0.3em 0;
}
.ib-islands-nick,
.ib-islands-native {
font-size: 85%;
}
.ib-islands-native > div {
display: inline;
}
.ib-islands .infobox-header {
background-color: #efefef;
}
.ib-islands-country {
border-top: 1px solid black;
font-weight: bold;
}
.ib-islands-country2 {
font-weight: bold;
}
.ib-islands .infobox-below {
text-align: left;
border-top: #aaa 1px solid;
}
6cgkecs2ieurfhrqbacsa7oqjpp1gbi
Template:DateStyle
10
53009
309261
2026-09-23T17:38:56Z
Isma4l
41797
Bog cusub: {{#ifexpr: {{#switch:{{lc:{{{cal|{{{calendar|j}}}}}}}} |j|julian|n|nativity|nativity style=(({{#time:Y|{{{1|}}}}} mod 100 = 0) and ({{#time:Y|{{{1|}}}}} mod 400 != 0)) |a|as|annunciation|annunciation style=((({{#time:Y|{{{1|}}}}} + 1) mod 100 = 0) and (({{#time:Y|{{{1|}}}}} + 1) mod 400 != 0)) |#default=0 }} and ({{#time:n|{{{1|}}}}} = 3) and ({{#time:j|{{{1|}}}}} = 1) and ({{#invoke:String|find|source={{{1|}}}|target=%f[%d]29%f[%D]|plain=false}} > 0) |{{#invoke:Calen...
309261
wikitext
text/x-wiki
{{#ifexpr:
{{#switch:{{lc:{{{cal|{{{calendar|j}}}}}}}}
|j|julian|n|nativity|nativity style=(({{#time:Y|{{{1|}}}}} mod 100 = 0) and ({{#time:Y|{{{1|}}}}} mod 400 != 0))
|a|as|annunciation|annunciation style=((({{#time:Y|{{{1|}}}}} + 1) mod 100 = 0) and (({{#time:Y|{{{1|}}}}} + 1) mod 400 != 0))
|#default=0
}}
and ({{#time:n|{{{1|}}}}} = 3)
and ({{#time:j|{{{1|}}}}} = 1)
and ({{#invoke:String|find|source={{{1|}}}|target=%f[%d]29%f[%D]|plain=false}} > 0)
|{{#invoke:Calendar|convert
|{{#time:Y|{{{1|}}}}}
|2
|29
|cal={{{cal|{{{calendar|j}}}}}}
|out={{{out|}}}
|output={{{output|}}}
|to={{{to|}}}
|format={{{format|}}}
|wd={{{wd|0}}}
|wm={{{wm|0}}}
|wy={{{wy|0}}}
|ym={{{ym|}}}
|sb={{{sb|0}}}
|showyear={{{showyear|{{{year|1}}}}}}
|stylelink={{{stylelink|{{{link|1}}}}}}
}}|{{#invoke:Calendar|convert
|{{#time:Y|{{{1|}}}}}
|{{#time:n|{{{1|}}}}}
|{{#time:j|{{{1|}}}}}
|cal={{{cal|{{{calendar|j}}}}}}
|out={{{out|}}}
|output={{{output|}}}
|to={{{to|}}}
|format={{{format|}}}
|wd={{{wd|0}}}
|wm={{{wm|0}}}
|wy={{{wy|0}}}
|ym={{{ym|}}}
|sb={{{sb|0}}}
|showyear={{{showyear|{{{year|1}}}}}}
|stylelink={{{stylelink|{{{link|1}}}}}}
}}}}<noinclude>
{{Documentation}}
</noinclude>
ke5508hey4umnckhvbdj4348k80mprk
Module:Calendrical Calculations
828
53010
309262
2026-09-23T17:45:53Z
Isma4l
41797
Bog cusub: -- This code is from Appendix D of Calendrical Calculations by Dershowitz and Reingold, 4th ed., translated from Lisp to Lua local getArgs = require('Module:Arguments').getArgs local p = {} local M = {} -- This namespace is to get around Lua's local variable limit of 200 local unpack_args = table.unpack or unpack local NIL = {} -- Lisp NIL when it is being used as the empty list. local function _is_nil(x) return x == nil or x == NIL end local function _truth(x) return...
309262
Scribunto
text/plain
-- This code is from Appendix D of Calendrical Calculations by Dershowitz and Reingold, 4th ed., translated from Lisp to Lua
local getArgs = require('Module:Arguments').getArgs
local p = {}
local M = {} -- This namespace is to get around Lua's local variable limit of 200
local unpack_args = table.unpack or unpack
local NIL = {} -- Lisp NIL when it is being used as the empty list.
local function _is_nil(x)
return x == nil or x == NIL
end
local function _truth(x)
return x ~= nil and x ~= false and x ~= NIL
end
local function _list(...)
local n = select('#', ...)
if n == 0 then return NIL end
local t = {}
for i = 1, n do
local v = select(i, ...)
if v == nil then v = NIL end
t[i] = v
end
return t
end
local function _length(t)
if _is_nil(t) then return 0 end
return #t
end
local function _nth(i, t)
if _is_nil(t) then return NIL end
local v = t[i + 1]
if v == nil then return NIL end
return v
end
local function _rest(t)
if _is_nil(t) or #t <= 1 then return NIL end
local r = {}
for i = 2, #t do r[#r + 1] = t[i] end
return r
end
local function _butlast(t)
if _is_nil(t) or #t <= 1 then return NIL end
local r = {}
for i = 1, #t - 1 do r[#r + 1] = t[i] end
return r
end
local function _append(...)
local r = {}
for n = 1, select('#', ...) do
local t = select(n, ...)
if not _is_nil(t) then
for i = 1, #t do r[#r + 1] = t[i] end
end
end
if #r == 0 then return NIL end
return r
end
local function _equal(a, b)
if _is_nil(a) and _is_nil(b) then return true end
if type(a) ~= type(b) then return false end
if type(a) ~= 'table' then return a == b end
if #a ~= #b then return false end
for i = 1, #a do
if not _equal(a[i], b[i]) then return false end
end
return true
end
local function _member(x, t)
if _is_nil(t) then return false end
for i = 1, #t do
if _equal(x, t[i]) then return true end
end
return false
end
local function _apply(op, t)
if op == '*' then
local r = 1
if not _is_nil(t) then for i = 1, #t do r = r * t[i] end end
return r
elseif op == '+' then
local r = 0
if not _is_nil(t) then for i = 1, #t do r = r + t[i] end end
return r
end
error('Unsupported Lisp apply operator: ' .. tostring(op))
end
local function _round(x)
local lo = math.floor(x)
local frac = x - lo
if frac < 0.5 then return lo end
if frac > 0.5 then return lo + 1 end
-- Common Lisp ROUND uses ties-to-even.
if lo % 2 == 0 then return lo else return lo + 1 end
end
local function _integerp(x)
return type(x) == 'number' and x == math.floor(x)
end
local function _format_value(v)
if _is_nil(v) then return '' end
if type(v) == 'boolean' then return v and '1' or '0' end -- Return 1 for true and 0 for false
if type(v) ~= 'table' then return tostring(v) end
local parts = {}
for i = 1, #v do
if type(v[i]) == 'table' then -- Handle functions that return tables
parts[i] = '(' .. _format_value(v[i]) .. ')'
else
parts[i] = _format_value(v[i])
end
end
return table.concat(parts, '-')
end
local function make_public(func, do_unpack)
-- This is not in the book, but is necessary to make the functions work with #invoke on Wikipedia
if do_unpack == nil then do_unpack = true end
return function(frame)
local args = getArgs(frame)
-- Convert arguments from strings to numbers, because it breaks otherwise
local numArgs = {}
for i, v in ipairs(args) do numArgs[i] = tonumber(v) or v end
local result
if do_unpack then result = func(unpack_args(numArgs)) -- Pass arguments individually: func(arg1, arg2, ...)
else result = func(numArgs) end -- Pass argumemts as a single table: func({arg1, arg2, ...})
if type(result) == 'table' and args.index then
-- If the user provided an 'index' parameter in the template, like {{#invoke:Calendrical Calculations|clock_from_moment|739737.12|index=1}}, then use it
local val = result[tonumber(args.index) or args.index]
return _format_value(val)
end
return _format_value(result)
end
end
local function normalize_calendar_name(value)
local name = mw.ustring.lower(mw.text.trim(tostring(value or '')))
name = mw.ustring.gsub(name, '[%s%-]+', '_')
name = mw.ustring.gsub(name, '_calendar$', '')
if name == '' then
error('A source and output calendar must both be specified', 0)
end
if not mw.ustring.match(name, '^[a-z][a-z0-9_]*$') then
error(string.format('Invalid calendar name: %s', tostring(value)), 0)
end
return name
end
local function convert_calendar_date(source_name, output_name, date)
local source = normalize_calendar_name(source_name)
local output = normalize_calendar_name(output_name)
local fixed_function_name = 'fixed_from_' .. source
local output_function_name = output .. '_from_fixed'
local fixed_function = M[fixed_function_name .. '_for_wikipedia'] or M[fixed_function_name]
local output_function = M[output_function_name .. '_for_wikipedia'] or M[output_function_name]
if type(fixed_function) ~= 'function' then
error(string.format('The calendar %q does not provide %s', source_name, fixed_function_name), 0)
end
if type(output_function) ~= 'function' then
error(string.format('The calendar %q does not provide %s', output_name, output_function_name), 0)
end
if #date == 0 then
error('At least one date component must be supplied', 0)
end
return output_function(fixed_function(date))
end
function M.convert(source_name, output_name, ...)
-- This is also not in the book, but makes it easier to convert calendars from Wikipedia
local date = {}
for i = 1, select('#', ...) do
date[i] = select(i, ...)
end
return convert_calendar_date(source_name, output_name, date)
end
function M.sum(f, i, predicate)
local s = 0
while predicate(i) do s = s + f(i); i = i + 1 end
return s
end
function M.prod(f, i, predicate)
local product = 1
while predicate(i) do product = product * f(i); i = i + 1 end
return product
end
function M.sigma(lists, f)
if _is_nil(lists) or #lists == 0 then return 0 end
local n = _length(lists[1])
local s = 0
for i = 1, n do
local args = {}
for j = 1, #lists do args[j] = lists[j][i] end
s = s + f(unpack_args(args))
end
return s
end
function M.next(i, predicate)
while not predicate(i) do i = i + 1 end
return i
end
function M.final(i, predicate)
while predicate(i) do i = i + 1 end
return i - 1
end
function M.binary_search(lo, hi, test, finished)
local l, h = lo, hi
while not finished(l, h) do
local x = (l + h) / 2
if test(x) then h = x else l = x end
end
return (l + h) / 2
end
function M.invert_angular(f, y, range)
local varepsilon = 1 / 100000
return M.binary_search(range[1], range[2],
function(x) return ((f(x) - y) % 360) < 180 end,
function(l, h) return (h - l) < varepsilon end)
end
----- D.1 Basics -----
-- TYPE day-of-week
-- Residue class for Sunday.
M.SUNDAY = 0
-- TYPE day-of-week
-- Residue class for Monday.
M.MONDAY = 1
-- TYPE day-of-week
-- Residue class for Tuesday.
M.TUESDAY = 2
-- TYPE day-of-week
-- Residue class for Wednesday.
M.WEDNESDAY = 3
-- TYPE day-of-week
-- Residue class for Thursday.
M.THURSDAY = 4
-- TYPE day-of-week
-- Residue class for Friday.
M.FRIDAY = 5
-- TYPE day-of-week
-- Residue class for Saturday.
M.SATURDAY = 6
-- TYPE boolean
-- Constant representing false.
M.FALSE = false
-- TYPE boolean
-- Constant representing true.
M.TRUE = true
-- TYPE string
-- Used to denote nonexistent dates.
M.BOGUS = "bogus"
-- TYPE fixed-date -> day-of-week
-- The residue class of the day of the week of date.
function M.day_of_week_from_fixed(date)
return ((date - M.rd(0) - M.SUNDAY) % 7)
end
-- TYPE moment -> moment
-- Identity function for fixed dates/moments. If internal
-- timekeeping is shifted, change epoch to be RD date of
-- origin of internal count. epoch should be an integer.
function M.rd(tee)
local epoch = 0
return (tee - epoch)
end
-- TYPE moment
-- Fixed time of start of the julian day number.
M.JD_EPOCH = M.rd(-1721424.5)
-- TYPE julian-day-number -> moment
-- Moment of julian day number jd.
function M.moment_from_jd(jd)
return (jd + M.JD_EPOCH)
end
-- TYPE moment -> julian-day-number
-- Julian day number of moment tee.
function M.jd_from_moment(tee)
return (tee - M.JD_EPOCH)
end
-- TYPE fixed-date
-- Fixed time of start of the modified julian day number.
M.MJD_EPOCH = M.rd(678576)
-- TYPE julian-day-number -> fixed-date
-- Fixed date of modified julian day number mjd.
function M.fixed_from_mjd(mjd)
return (mjd + M.MJD_EPOCH)
end
-- TYPE fixed-date -> julian-day-number
-- Modified julian day number of fixed date.
function M.mjd_from_fixed(date)
return (date - M.MJD_EPOCH)
end
-- TYPE fixed-date
-- Fixed date of the start of the Unix second count.
M.UNIX_EPOCH = M.rd(719163)
-- TYPE second -> moment
-- Fixed date from Unix second count s
function M.moment_from_unix(s)
return (M.UNIX_EPOCH + (s / 24 / 60 / 60))
end
-- TYPE moment -> second
-- Unix second count from moment tee
function M.unix_from_moment(tee)
return (24 * 60 * 60 * (tee - M.UNIX_EPOCH))
end
-- TYPE julian-day-number -> fixed-date
-- Fixed date of julian day number jd.
function M.fixed_from_jd(jd)
return math.floor(M.moment_from_jd(jd))
end
-- TYPE fixed-date -> julian-day-number
-- Julian day number of fixed date.
function M.jd_from_fixed(date)
return M.jd_from_moment(date)
end
-- TYPE (real nonzero-real) -> integer
-- Whole part of m/n.
function M.quotient(m, n)
return math.floor((m) / (n))
end
-- TYPE (integer nonzero-integer) -> integer
-- The value of (x mod y) with y instead of 0.
function M.amod(x, y)
return (y + (x % (-y)))
end
-- TYPE (real real real) -> real
-- The value of x shifted into the range
-- [a..b). Returns x if a=b.
function M.mod3(x, a, b)
if _truth(((a == b))) then
return x
else
return (a + ((x - a) % (b - a)))
end
end
-- TYPE (real list-of-reals) -> real
-- Sum powers of x with coefficients (from order 0 up)
-- in list a.
function M.poly(x, a)
if _truth(_equal(a, NIL)) then
return 0
else
return (_nth(0, a) + (x * M.poly(x, _rest(a))))
end
end
-- TYPE standard-date -> standard-month
-- Month field of date = (year month day).
function M.standard_month(date)
return _nth(1, date)
end
-- TYPE standard-date -> standard-day
-- Day field of date = (year month day).
function M.standard_day(date)
return _nth(2, date)
end
-- TYPE standard-date -> standard-year
-- Year field of date = (year month day).
function M.standard_year(date)
return _nth(0, date)
end
-- TYPE clock-time -> hour
function M.hour(clock)
return _nth(0, clock)
end
-- TYPE clock-time -> minute
function M.minute(clock)
return _nth(1, clock)
end
-- TYPE clock-time -> second
function M.seconds(clock)
return _nth(2, clock)
end
-- TYPE (hour minute second) -> clock-time
function M.time_of_day(hour, minute, second)
return _list(hour, minute, second)
end
-- TYPE moment -> fixed-date
-- Fixed-date from moment tee.
function M.fixed_from_moment(tee)
return math.floor(tee)
end
-- TYPE real -> {-1,0,+1}
-- Sign of y.
function M.sign(y)
if _truth(((y < 0))) then
return -1
elseif _truth(((y > 0))) then
return 1
else
return 0
end
end
-- TYPE moment -> time
-- Time from moment tee.
function M.time_from_moment(tee)
return (tee % 1)
end
-- TYPE list-of-moments -> list-of-fixed-dates
-- List of fixed dates corresponding to list ell
-- of moments.
function M.list_of_fixed_from_moments(ell)
if _truth(_equal(ell, NIL)) then
return NIL
else
return _append(_list(M.fixed_from_moment(_nth(0, ell))), M.list_of_fixed_from_moments(_rest(ell)))
end
end
-- TYPE (moment moment) -> interval
-- Half-open interval [t0..t1).
function M.interval(t0, t1)
return _list(t0, t1)
end
-- TYPE (moment moment) -> interval
-- Closed interval [t0..t1].
function M.interval_closed(t0, t1)
return _list(t0, t1)
end
-- TYPE interval -> moment
-- Start t0 of range [t0..t1) or [t0..t1].
function M.begin(range)
return _nth(0, range)
end
-- TYPE interval -> moment
-- End t1 of range [t0..t1) or [t0..t1].
function M.end_(range)
return _nth(1, range)
end
-- TYPE (moment interval) -> boolean
-- True if tee is in half-open range.
function M.in_range_p(tee, range)
return (_truth(((M.begin(range) <= tee))) and _truth(((tee < M.end_(range)))))
end
-- TYPE (list-of-moments interval) -> list-of-moments
-- Those moments in list ell that occur in range.
function M.list_range(ell, range)
if _truth(_equal(ell, NIL)) then
return NIL
else
local r = M.list_range(_rest(ell), range)
if _truth(M.in_range_p(_nth(0, ell), range)) then
return _append(_list(_nth(0, ell)), r)
else
return r
end
end
end
-- TYPE (nonegative-real positive-real
-- TYPE nonegative-real interval) -> list-of-moments
-- List of occurrences of moment p of c-day cycle
-- within range.
-- cap-Delta is position in cycle of RD moment 0.
function M.positions_in_range(p, c, cap_Delta, range)
local a = M.begin(range)
local b = M.end_(range)
local date = M.mod3((p - cap_Delta), a, (a + c))
if _truth(((date >= b))) then
return NIL
else
return _append(_list(date), M.positions_in_range(p, c, cap_Delta, M.interval((a + c), b)))
end
end
-- TYPE (list-of-reals list-of-rationals list-of-rationals)
-- TYPE -> real
-- The number corresponding to a in radix notation
-- with base b for whole part and c for fraction.
function M.from_radix(a, b, c)
return (M.sum(function(i) return (_nth(i, a) * M.prod(function(j) return _nth(j, _append(b, c)) end, i, function(j) return _truth(((j < (_length(b) + _length(c))))) end)) end, 0, function(i) return _truth(((i < _length(a)))) end) / _apply("*", c))
end
-- TYPE (real list-of-rationals list-of-rationals)
-- TYPE -> list-of-reals
-- The radix notation corresponding to x
-- with base b for whole part and c for fraction.
function M.to_radix(x, b, c)
if _truth(_is_nil(c)) then
if _truth(_is_nil(b)) then
return _list(x)
else
return _append(M.to_radix(M.quotient(x, _nth((_length(b) - 1), b)), _butlast(b), NIL), _list((x % _nth((_length(b) - 1), b))))
end
else
return M.to_radix((x * _apply("*", c)), _append(b, c))
end
end
-- TYPE clock-time -> time
-- Time of day from hms = hour:minute:second.
function M.time_from_clock(hms)
return (M.from_radix(hms, NIL, _list(24, 60, 60)) / 24)
end
-- TYPE moment -> clock-time
-- Clock time hour:minute:second from moment tee.
function M.clock_from_moment(tee)
return _rest(M.to_radix(tee, NIL, _list(24, 60, 60)))
end
-- TYPE angle -> list-of-reals
-- List of degrees-arcminutes-arcseconds from angle alpha
-- in degrees.
function M.angle_from_degrees(alpha)
local dms = M.to_radix(math.abs(alpha), NIL, _list(60, 60))
if _truth(((alpha >= 0))) then
return dms
else
return _list((-_nth(0, dms)), (-_nth(1, dms)), (-_nth(2, dms)))
end
end
-- TYPE (egyptian-year egyptian-month egyptian-day)
-- TYPE -> egyptian-date
function M.egyptian_date(year, month, day)
return _list(year, month, day)
end
-- TYPE fixed-date
-- Fixed date of start of the Egyptian (Nabonasser)
-- calendar.
-- JD 1448638 = February 26, 747 BCE (Julian).
M.EGYPTIAN_EPOCH = M.fixed_from_jd(1448638)
-- TYPE egyptian-date -> fixed-date
-- Fixed date of Egyptian date e-date.
function M.fixed_from_egyptian(e_date)
local month = M.standard_month(e_date)
local day = M.standard_day(e_date)
local year = M.standard_year(e_date)
return (M.EGYPTIAN_EPOCH + (365 * (year - 1)) + (30 * (month - 1)) + day + -1)
end
-- TYPE egyptian-date -> fixed-date
-- Fixed date of Egyptian date e-date.
function M.alt_fixed_from_egyptian(e_date)
return (M.EGYPTIAN_EPOCH + M.sigma(_list(_list(365, 30, 1), e_date), function(a, e_date) return (a * (e_date - 1)) end))
end
-- TYPE fixed-date -> egyptian-date
-- Egyptian equivalent of fixed date.
function M.egyptian_from_fixed(date)
local days = (date - M.EGYPTIAN_EPOCH)
local year = (M.quotient(days, 365) + 1)
local month = (M.quotient((days % 365), 30) + 1)
local day = (days - (365 * (year - 1)) - (30 * (month - 1)) - -1)
return M.egyptian_date(year, month, day)
end
-- TYPE (armenian-year armenian-month armenian-day)
-- TYPE -> armenian-date
function M.armenian_date(year, month, day)
return _list(year, month, day)
end
-- TYPE fixed-date
-- Fixed date of start of the Armenian calendar.
-- = July 11, 552 CE (Julian).
M.ARMENIAN_EPOCH = M.rd(201443)
-- TYPE armenian-date -> fixed-date
-- Fixed date of Armenian date a-date.
function M.fixed_from_armenian(a_date)
local month = M.standard_month(a_date)
local day = M.standard_day(a_date)
local year = M.standard_year(a_date)
return (M.ARMENIAN_EPOCH + (M.fixed_from_egyptian(M.egyptian_date(year, month, day)) - M.EGYPTIAN_EPOCH))
end
-- TYPE fixed-date -> armenian-date
-- Armenian equivalent of fixed date.
function M.armenian_from_fixed(date)
return M.egyptian_from_fixed((date + (M.EGYPTIAN_EPOCH - M.ARMENIAN_EPOCH)))
end
-- TYPE (day-of-week fixed-date) -> fixed-date
-- Fixed date of the k-day on or before fixed date.
-- k=0 means Sunday, k=1 means Monday, and so on.
function M.kday_on_or_before(k, date)
return (date - M.day_of_week_from_fixed((date - k)))
end
-- TYPE (day-of-week fixed-date) -> fixed-date
-- Fixed date of the k-day on or after fixed date.
-- k=0 means Sunday, k=1 means Monday, and so on.
function M.kday_on_or_after(k, date)
return M.kday_on_or_before(k, (date + 6))
end
-- TYPE (day-of-week fixed-date) -> fixed-date
-- Fixed date of the k-day nearest fixed date.
-- k=0 means Sunday, k=1 means Monday, and so on.
function M.kday_nearest(k, date)
return M.kday_on_or_before(k, (date + 3))
end
-- TYPE (day-of-week fixed-date) -> fixed-date
-- Fixed date of the k-day before fixed date.
-- k=0 means Sunday, k=1 means Monday, and so on.
function M.kday_before(k, date)
return M.kday_on_or_before(k, (date - 1))
end
-- TYPE (day-of-week fixed-date) -> fixed-date
-- Fixed date of the k-day after fixed date.
-- k=0 means Sunday, k=1 means Monday, and so on.
function M.kday_after(k, date)
return M.kday_on_or_before(k, (date + 7))
end
-- TYPE integer -> akan-name
-- The n-th name of the Akan cycle.
function M.akan_day_name(n)
return M.akan_name(M.amod(n, 6), M.amod(n, 7))
end
-- TYPE (akan-prefix akan-stem) -> akan-name
function M.akan_name(prefix, stem)
return _list(prefix, stem)
end
-- TYPE akan-name -> akan-prefix
function M.akan_prefix(name)
return _nth(0, name)
end
-- TYPE akan-name -> akan-stem
function M.akan_stem(name)
return _nth(1, name)
end
-- TYPE (akan-name akan-name) -> nonnegative-integer
-- Number of names from Akan name a-name1 to the
-- next occurrence of Akan name a-name2.
function M.akan_name_difference(a_name1, a_name2)
local prefix1 = M.akan_prefix(a_name1)
local prefix2 = M.akan_prefix(a_name2)
local stem1 = M.akan_stem(a_name1)
local stem2 = M.akan_stem(a_name2)
local prefix_difference = (prefix2 - prefix1)
local stem_difference = (stem2 - stem1)
return M.amod((prefix_difference + (36 * (stem_difference - prefix_difference))), 42)
end
-- TYPE fixed-date
-- RD date of an epoch (day 0) of Akan day cycle.
M.AKAN_DAY_NAME_EPOCH = M.rd(37)
-- TYPE fixed-date -> akan-name
-- Akan name for date.
function M.akan_name_from_fixed(date)
return M.akan_day_name((date - M.AKAN_DAY_NAME_EPOCH))
end
-- TYPE (akan-name fixed-date) -> fixed-date
-- Fixed date of latest date on or before fixed date
-- that has Akan name.
function M.akan_day_name_on_or_before(name, date)
return M.mod3(M.akan_name_difference(M.akan_name_from_fixed(0), name), date, (date - 42))
end
----- D.2 The Gregorian Calendar -----
-- TYPE (gregorian-year gregorian-month gregorian-day)
-- TYPE -> gregorian-date
function M.gregorian_date(year, month, day)
return _list(year, month, day)
end
-- TYPE fixed-date
-- Fixed date of start of the (proleptic) Gregorian
-- calendar.
M.GREGORIAN_EPOCH = M.rd(1)
-- TYPE standard-month
-- January on Julian/Gregorian calendar.
M.JANUARY = 1
-- TYPE standard-month
-- February on Julian/Gregorian calendar.
M.FEBRUARY = 2
-- TYPE standard-month
-- March on Julian/Gregorian calendar.
M.MARCH = 3
-- TYPE standard-month
-- April on Julian/Gregorian calendar.
M.APRIL = 4
-- TYPE standard-month
-- May on Julian/Gregorian calendar.
M.MAY = 5
-- TYPE standard-month
-- June on Julian/Gregorian calendar.
M.JUNE = 6
-- TYPE standard-month
-- July on Julian/Gregorian calendar.
M.JULY = 7
-- TYPE standard-month
-- August on Julian/Gregorian calendar.
M.AUGUST = 8
-- TYPE standard-month
-- September on Julian/Gregorian calendar.
M.SEPTEMBER = 9
-- TYPE standard-month
-- October on Julian/Gregorian calendar.
M.OCTOBER = 10
-- TYPE standard-month
-- November on Julian/Gregorian calendar.
M.NOVEMBER = 11
-- TYPE standard-month
-- December on Julian/Gregorian calendar.
M.DECEMBER = 12
-- TYPE gregorian-year -> boolean
-- True if g-year is a leap year on the Gregorian
-- calendar.
function M.gregorian_leap_year_p(g_year)
return (_truth((((g_year % 4) == 0))) and _truth((not _truth(_member((g_year % 400), _list(100, 200, 300))))))
end
-- TYPE gregorian-date -> fixed-date
-- Fixed date equivalent to the Gregorian date g-date.
function M.fixed_from_gregorian(g_date)
local month = M.standard_month(g_date)
local day = M.standard_day(g_date)
local year = M.standard_year(g_date)
return ((M.GREGORIAN_EPOCH - 1) + (365 * (year - 1)) + M.quotient((year - 1), 4) + (-M.quotient((year - 1), 100)) + M.quotient((year - 1), 400) + M.quotient(((367 * month) - 362), 12) + (function() if _truth(((month <= 2))) then return 0 else return (function() if _truth(M.gregorian_leap_year_p(year)) then return -1 else return -2 end end)() end end)() + day)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of January 1 in g-year.
function M.gregorian_new_year(g_year)
return M.fixed_from_gregorian(M.gregorian_date(g_year, M.JANUARY, 1))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of December 31 in g-year.
function M.gregorian_year_end(g_year)
return M.fixed_from_gregorian(M.gregorian_date(g_year, M.DECEMBER, 31))
end
-- TYPE gregorian-year -> range
-- The range of moments in Gregorian year g-year.
function M.gregorian_year_range(g_year)
return M.interval(M.gregorian_new_year(g_year), M.gregorian_new_year((g_year + 1)))
end
-- TYPE fixed-date -> gregorian-year
-- Gregorian year corresponding to the fixed date.
function M.gregorian_year_from_fixed(date)
local d0 = (date - M.GREGORIAN_EPOCH)
local n400 = M.quotient(d0, 146097)
local d1 = (d0 % 146097)
local n100 = M.quotient(d1, 36524)
local d2 = (d1 % 36524)
local n4 = M.quotient(d2, 1461)
local d3 = (d2 % 1461)
local n1 = M.quotient(d3, 365)
local year = ((400 * n400) + (100 * n100) + (4 * n4) + n1)
if _truth((_truth(((n100 == 4))) or _truth(((n1 == 4))))) then
return year
else
return (year + 1)
end
end
-- TYPE fixed-date -> gregorian-date
-- Gregorian (year month day) corresponding to fixed date.
function M.gregorian_from_fixed(date)
local year = M.gregorian_year_from_fixed(date)
local prior_days = (date - M.gregorian_new_year(year))
local correction = (function() if _truth(((date < M.fixed_from_gregorian(M.gregorian_date(year, M.MARCH, 1))))) then return 0 else return (function() if _truth(M.gregorian_leap_year_p(year)) then return 1 else return 2 end end)() end end)()
local month = M.quotient(((12 * (prior_days + correction)) + 373), 367)
local day = ((date - M.fixed_from_gregorian(M.gregorian_date(year, month, 1))) + 1)
return M.gregorian_date(year, month, day)
end
-- TYPE (gregorian-date gregorian-date) -> integer
-- Number of days from Gregorian date g-date1 until
-- g-date2.
function M.gregorian_date_difference(g_date1, g_date2)
return (M.fixed_from_gregorian(g_date2) - M.fixed_from_gregorian(g_date1))
end
-- TYPE gregorian-date -> positive-integer
-- Day number in year of Gregorian date g-date.
function M.day_number(g_date)
return M.gregorian_date_difference(M.gregorian_date((M.standard_year(g_date) - 1), M.DECEMBER, 31), g_date)
end
-- TYPE gregorian-date -> nonnegative-integer
-- Days remaining in year after Gregorian date g-date.
function M.days_remaining(g_date)
return M.gregorian_date_difference(g_date, M.gregorian_date(M.standard_year(g_date), M.DECEMBER, 31))
end
-- TYPE (gregorian-year gregorian-month) -> gregorian-day
-- Last day of month g-month in Gregorian year g-year.
function M.last_day_of_gregorian_month(g_year, g_month)
return M.gregorian_date_difference(M.gregorian_date(g_year, g_month, 1), M.gregorian_date((function() if _truth(((g_month == 12))) then return (g_year + 1) else return g_year end end)(), M.amod((g_month + 1), 12), 1))
end
-- TYPE gregorian-date -> fixed-date
-- Alternative calculation of fixed date equivalent to the
-- Gregorian date g-date.
function M.alt_fixed_from_gregorian(g_date)
local month = M.standard_month(g_date)
local day = M.standard_day(g_date)
local year = M.standard_year(g_date)
local m_prime = ((month - 3) % 12)
local y_prime = (year - M.quotient(m_prime, 10))
return ((M.GREGORIAN_EPOCH - 1) + -306 + (365 * y_prime) + M.sigma(_list(M.to_radix(y_prime, _list(4, 25, 4)), _list(97, 24, 1, 0)), function(y, a) return (y * a) end) + M.quotient(((3 * m_prime) + 2), 5) + (30 * m_prime) + day)
end
-- TYPE fixed-date -> gregorian-date
-- Alternative calculation of Gregorian (year month day)
-- corresponding to fixed date.
function M.alt_gregorian_from_fixed(date)
local y = M.gregorian_year_from_fixed(((M.GREGORIAN_EPOCH - 1) + date + 306))
local prior_days = (date - M.fixed_from_gregorian(M.gregorian_date((y - 1), M.MARCH, 1)))
local month = M.amod((M.quotient(((5 * prior_days) + 2), 153) + 3), 12)
local year = (y - M.quotient((month + 9), 12))
local day = ((date - M.fixed_from_gregorian(M.gregorian_date(year, month, 1))) + 1)
return M.gregorian_date(year, month, day)
end
-- TYPE fixed-date -> gregorian-year
-- Gregorian year corresponding to the fixed date.
function M.alt_gregorian_year_from_fixed(date)
local approx = M.quotient((date - M.GREGORIAN_EPOCH - -2), (146097 / 400))
local start = (M.GREGORIAN_EPOCH + (365 * approx) + M.sigma(_list(M.to_radix(approx, _list(4, 25, 4)), _list(97, 24, 1, 0)), function(y, a) return (y * a) end))
if _truth(((date < start))) then
return approx
else
return (approx + 1)
end
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of United States Independence Day in
-- Gregorian year g-yaer.
function M.independence_day(g_year)
return M.fixed_from_gregorian(M.gregorian_date(g_year, M.JULY, 4))
end
-- TYPE (integer day-of-week gregorian-date) -> fixed-date
-- If n>0, return the n-th k-day on or after
-- g-date. If n<0, return the n-th k-day on or
-- before g-date. If n=0 return bogus. A k-day of
-- 0 means Sunday, 1 means Monday, and so on.
function M.nth_kday(n, k, g_date)
if _truth(((n > 0))) then
return ((7 * n) + M.kday_before(k, M.fixed_from_gregorian(g_date)))
elseif _truth(((n < 0))) then
return ((7 * n) + M.kday_after(k, M.fixed_from_gregorian(g_date)))
else
return M.BOGUS
end
end
-- TYPE (day-of-week gregorian-date) -> fixed-date
-- Fixed date of first k-day on or after Gregorian date
-- g-date. A k-day of 0 means Sunday, 1 means Monday,
-- and so on.
function M.first_kday(k, g_date)
return M.nth_kday(1, k, g_date)
end
-- TYPE (day-of-week gregorian-date) -> fixed-date
-- Fixed date of last k-day on or before Gregorian date
-- g-date. A k-day of 0 means Sunday, 1 means Monday,
-- and so on.
function M.last_kday(k, g_date)
return M.nth_kday(-1, k, g_date)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of United States Labor Day in Gregorian
-- year g-year (the first Monday in September).
function M.labor_day(g_year)
return M.first_kday(M.MONDAY, M.gregorian_date(g_year, M.SEPTEMBER, 1))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of United States Memorial Day in Gregorian
-- year g-year (the last Monday in May).
function M.memorial_day(g_year)
return M.last_kday(M.MONDAY, M.gregorian_date(g_year, M.MAY, 31))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of United States Election Day in Gregorian
-- year g-year (the Tuesday after the first Monday in
-- November).
function M.election_day(g_year)
return M.first_kday(M.TUESDAY, M.gregorian_date(g_year, M.NOVEMBER, 2))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of the start of United States daylight
-- saving time in Gregorian year g-year (the second
-- Sunday in March).
function M.daylight_saving_start(g_year)
return M.nth_kday(2, M.SUNDAY, M.gregorian_date(g_year, M.MARCH, 1))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of the end of United States daylight saving
-- time in Gregorian year g-year (the first Sunday in
-- November).
function M.daylight_saving_end(g_year)
return M.first_kday(M.SUNDAY, M.gregorian_date(g_year, M.NOVEMBER, 1))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Christmas in Gregorian year g-year.
function M.christmas(g_year)
return M.fixed_from_gregorian(M.gregorian_date(g_year, M.DECEMBER, 25))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Advent in Gregorian year g-year
-- (the Sunday closest to November 30).
function M.advent(g_year)
return M.kday_nearest(M.SUNDAY, M.fixed_from_gregorian(M.gregorian_date(g_year, M.NOVEMBER, 30)))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Epiphany in U.S. in Gregorian year
-- g-year (the first Sunday after January 1).
function M.epiphany(g_year)
return M.first_kday(M.SUNDAY, M.gregorian_date(g_year, M.JANUARY, 2))
end
-- TYPE range -> list-of-fixed-dates
-- List of Fridays within range of dates
-- that are day 13 of Gregorian months.
function M.unlucky_fridays_in_range(range)
local a = M.begin(range)
local b = M.end_(range)
local fri = M.kday_on_or_after(M.FRIDAY, a)
local date = M.gregorian_from_fixed(fri)
if _truth(M.in_range_p(fri, range)) then
return _append((function() if _truth(((M.standard_day(date) == 13))) then return _list(fri) else return NIL end end)(), M.unlucky_fridays_in_range(M.interval((fri + 1), b)))
else
return NIL
end
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of Fridays within Gregorian year g-year
-- that are day 13 of Gregorian months.
function M.unlucky_fridays(g_year)
return M.unlucky_fridays_in_range(M.gregorian_year_range(g_year))
end
----- D.3 The Julian Calendar -----
-- TYPE standard-year -> julian-year
-- Negative value to indicate a BCE Julian year.
function M.bce(n)
return (-n)
end
-- TYPE standard-year -> julian-year
-- Positive value to indicate a CE Julian year.
function M.ce(n)
return n
end
-- TYPE (julian-year julian-month julian-day)
-- TYPE -> julian-date
function M.julian_date(year, month, day)
return _list(year, month, day)
end
-- TYPE julian-year -> boolean
-- True if j-year is a leap year on the Julian calendar.
function M.julian_leap_year_p(j_year)
return (((j_year % 4) == (function() if _truth(((j_year > 0))) then return 0 else return 3 end end)()))
end
-- TYPE fixed-date
-- Fixed date of start of the Julian calendar.
M.JULIAN_EPOCH = M.fixed_from_gregorian(M.gregorian_date(0, M.DECEMBER, 30))
-- TYPE julian-date -> fixed-date
-- Fixed date equivalent to the Julian date j-date.
function M.fixed_from_julian(j_date)
local month = M.standard_month(j_date)
local day = M.standard_day(j_date)
local year = M.standard_year(j_date)
local y = (function() if _truth(((year < 0))) then return (year + 1) else return year end end)()
return ((M.JULIAN_EPOCH - 1) + (365 * (y - 1)) + M.quotient((y - 1), 4) + M.quotient(((367 * month) - 362), 12) + (function() if _truth(((month <= 2))) then return 0 else return (function() if _truth(M.julian_leap_year_p(year)) then return -1 else return -2 end end)() end end)() + day)
end
-- TYPE fixed-date -> julian-date
-- Julian (year month day) corresponding to fixed date.
function M.julian_from_fixed(date)
local approx = M.quotient(((4 * (date - M.JULIAN_EPOCH)) + 1464), 1461)
local year = (function() if _truth(((approx <= 0))) then return (approx - 1) else return approx end end)()
local prior_days = (date - M.fixed_from_julian(M.julian_date(year, M.JANUARY, 1)))
local correction = (function() if _truth(((date < M.fixed_from_julian(M.julian_date(year, M.MARCH, 1))))) then return 0 else return (function() if _truth(M.julian_leap_year_p(year)) then return 1 else return 2 end end)() end end)()
local month = M.quotient(((12 * (prior_days + correction)) + 373), 367)
local day = ((date - M.fixed_from_julian(M.julian_date(year, month, 1))) + 1)
return M.julian_date(year, month, day)
end
-- TYPE roman-event
-- Class of Kalends.
M.KALENDS = 1
-- TYPE roman-event
-- Class of Nones.
M.NONES = 2
-- TYPE roman-event
-- Class of Ides.
M.IDES = 3
-- TYPE (roman-year roman-month roman-event roman-count
-- TYPE roman-leap) -> roman-date
function M.roman_date(year, month, event, count, leap)
return _list(year, month, event, count, leap)
end
-- TYPE roman-date -> roman-year
function M.roman_year(date)
return _nth(0, date)
end
-- TYPE roman-date -> roman-month
function M.roman_month(date)
return _nth(1, date)
end
-- TYPE roman-date -> roman-event
function M.roman_event(date)
return _nth(2, date)
end
-- TYPE roman-date -> roman-count
function M.roman_count(date)
return _nth(3, date)
end
-- TYPE roman-date -> roman-leap
function M.roman_leap(date)
return _nth(4, date)
end
-- TYPE roman-month -> ides
-- Date of Ides in Roman month.
function M.ides_of_month(month)
if _truth(_member(month, _list(M.MARCH, M.MAY, M.JULY, M.OCTOBER))) then
return 15
else
return 13
end
end
-- TYPE roman-month -> nones
-- Date of Nones in Roman month.
function M.nones_of_month(month)
return (M.ides_of_month(month) - 8)
end
-- TYPE roman-date -> fixed-date
-- Fixed date for Roman name r-date.
function M.fixed_from_roman(r_date)
local leap = M.roman_leap(r_date)
local count = M.roman_count(r_date)
local event = M.roman_event(r_date)
local month = M.roman_month(r_date)
local year = M.roman_year(r_date)
return ((function() if _truth(((event == M.KALENDS))) then return M.fixed_from_julian(M.julian_date(year, month, 1)) elseif _truth(((event == M.NONES))) then return M.fixed_from_julian(M.julian_date(year, month, M.nones_of_month(month))) elseif _truth(((event == M.IDES))) then return M.fixed_from_julian(M.julian_date(year, month, M.ides_of_month(month))) else return NIL end end)() + (-count) + (function() if _truth((_truth(M.julian_leap_year_p(year)) and _truth(((month == M.MARCH))) and _truth(((event == M.KALENDS))) and _truth(((16 >= count) and (count >= 6))))) then return 0 else return 1 end end)() + (function() if _truth(leap) then return 1 else return 0 end end)())
end
-- TYPE fixed-date -> roman-date
-- Roman name for fixed date.
function M.roman_from_fixed(date)
local j_date = M.julian_from_fixed(date)
local month = M.standard_month(j_date)
local day = M.standard_day(j_date)
local year = M.standard_year(j_date)
local month_prime = M.amod((month + 1), 12)
local year_prime = (function() if _truth(((month_prime ~= 1))) then return year else return (function() if _truth(((year ~= -1))) then return (year + 1) else return 1 end end)() end end)()
local kalends1 = M.fixed_from_roman(M.roman_date(year_prime, month_prime, M.KALENDS, 1, false))
if _truth(((day == 1))) then
return M.roman_date(year, month, M.KALENDS, 1, false)
elseif _truth(((day <= M.nones_of_month(month)))) then
return M.roman_date(year, month, M.NONES, ((M.nones_of_month(month) - day) + 1), false)
elseif _truth(((day <= M.ides_of_month(month)))) then
return M.roman_date(year, month, M.IDES, ((M.ides_of_month(month) - day) + 1), false)
elseif _truth((_truth(((month ~= M.FEBRUARY))) or _truth((not _truth(M.julian_leap_year_p(year)))))) then
return M.roman_date(year_prime, month_prime, M.KALENDS, ((kalends1 - date) + 1), false)
elseif _truth(((day < 25))) then
return M.roman_date(year, M.MARCH, M.KALENDS, (30 - day), false)
else
return M.roman_date(year, M.MARCH, M.KALENDS, (31 - day), ((day == 25)))
end
end
-- TYPE julian-year
-- Year on the Julian calendar of the founding of Rome.
M.YEAR_ROME_FOUNDED = M.bce(753)
-- TYPE auc-year -> julian-year
-- Julian year equivalent to AUC year
function M.julian_year_from_auc(year)
if _truth(((1 <= year) and (year <= (-M.YEAR_ROME_FOUNDED)))) then
return (year + M.YEAR_ROME_FOUNDED + -1)
else
return (year + M.YEAR_ROME_FOUNDED)
end
end
-- TYPE julian-year -> auc-year
-- Year AUC equivalent to Julian year
function M.auc_year_from_julian(year)
if _truth(((M.YEAR_ROME_FOUNDED <= year) and (year <= -1))) then
return (year - M.YEAR_ROME_FOUNDED - -1)
else
return (year - M.YEAR_ROME_FOUNDED)
end
end
-- TYPE (olympiad-cycle olympiad-year) -> olympiad
function M.olympiad(cycle, year)
return _list(cycle, year)
end
-- TYPE olympiad -> olympiad-cycle
function M.olympiad_cycle(o_date)
return _nth(0, o_date)
end
-- TYPE olympiad -> olympiad-year
function M.olympiad_year(o_date)
return _nth(1, o_date)
end
-- TYPE julian-year
-- Start of the Olympiads.
M.OLYMPIAD_START = M.bce(776)
-- TYPE olympiad -> julian-year
-- Julian year corresponding to Olympian o-date.
function M.julian_year_from_olympiad(o_date)
local cycle = M.olympiad_cycle(o_date)
local year = M.olympiad_year(o_date)
local years = (M.OLYMPIAD_START + (4 * (cycle - 1)) + year + -1)
if _truth(((years < 0))) then
return years
else
return (years + 1)
end
end
-- TYPE julian-year -> olympiad
-- Olympiad corresponding to Julian year j-year.
function M.olympiad_from_julian_year(j_year)
local years = (j_year - M.OLYMPIAD_START - (function() if _truth(((j_year < 0))) then return 0 else return 1 end end)())
return M.olympiad((M.quotient(years, 4) + 1), ((years % 4) + 1))
end
-- TYPE real -> angle
-- TYPE list-of-reals -> list-of-angles
-- x degrees.
-- For typesetting purposes.
function M.deg(x)
return x
end
-- TYPE season
-- Longitude of sun at vernal equinox.
M.SPRING = M.deg(0)
-- TYPE season
-- Longitude of sun at summer solstice.
M.SUMMER = M.deg(90)
-- TYPE season
-- Longitude of sun at autumnal equinox.
M.AUTUMN = M.deg(180)
-- TYPE season
-- Longitude of sun at winter solstice.
M.WINTER = M.deg(270)
-- TYPE (season gregorian-year positive-real moment)
-- TYPE -> list-of-moments
-- Moments of season in Gregorian year g-year.
-- Seasonal year is cap-L days, seasons are given as
-- longitudes and are of equal length,
-- and a seasonal year started at moment start.
function M.cycle_in_gregorian(season, g_year, cap_L, start)
local year = M.gregorian_year_range(g_year)
local pos = ((season / M.deg(360)) * cap_L)
local cap_Delta = (pos - (start % cap_L))
return M.positions_in_range(pos, cap_L, cap_Delta, year)
end
-- TYPE (season gregorian-year) -> list-of-moments
-- Moment(s) of Julian season in Gregorian year g-year.
function M.julian_season_in_gregorian(season, g_year)
local cap_Y = (365 + M.hr(6))
local offset = ((season / M.deg(360)) * cap_Y)
return M.cycle_in_gregorian(season, g_year, cap_Y, (M.fixed_from_julian(M.julian_date(M.bce(1), M.MARCH, 23)) + offset))
end
-- TYPE (julian-month julian-day gregorian-year)
-- TYPE -> list-of-fixed-dates
-- List of the fixed dates of Julian month j-month, day
-- j-day that occur in Gregorian year g-year.
function M.julian_in_gregorian(j_month, j_day, g_year)
local jan1 = M.gregorian_new_year(g_year)
local y = M.standard_year(M.julian_from_fixed(jan1))
local y_prime = (function() if _truth(((y == -1))) then return 1 else return (y + 1) end end)()
local date0 = M.fixed_from_julian(M.julian_date(y, j_month, j_day))
local date1 = M.fixed_from_julian(M.julian_date(y_prime, j_month, j_day))
return M.list_range(_list(date0, date1), M.gregorian_year_range(g_year))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of zero or one fixed dates of Eastern Orthodox
-- Christmas in Gregorian year g-year.
function M.eastern_orthodox_christmas(g_year)
return M.julian_in_gregorian(M.DECEMBER, 25, g_year)
end
----- D.4 The Coptic and Ethiopic Calendars -----
-- TYPE (coptic-year coptic-month coptic-day) -> coptic-date
function M.coptic_date(year, month, day)
return _list(year, month, day)
end
-- TYPE fixed-date
-- Fixed date of start of the Coptic calendar.
M.COPTIC_EPOCH = M.fixed_from_julian(M.julian_date(M.ce(284), M.AUGUST, 29))
-- TYPE coptic-year -> boolean
-- True if c-year is a leap year on the Coptic calendar.
function M.coptic_leap_year_p(c_year)
return (((c_year % 4) == 3))
end
-- TYPE coptic-date -> fixed-date
-- Fixed date of Coptic date c-date.
function M.fixed_from_coptic(c_date)
local month = M.standard_month(c_date)
local day = M.standard_day(c_date)
local year = M.standard_year(c_date)
return (M.COPTIC_EPOCH + -1 + (365 * (year - 1)) + M.quotient(year, 4) + (30 * (month - 1)) + day)
end
-- TYPE fixed-date -> coptic-date
-- Coptic equivalent of fixed date.
function M.coptic_from_fixed(date)
local year = M.quotient(((4 * (date - M.COPTIC_EPOCH)) + 1463), 1461)
local month = (M.quotient((date - M.fixed_from_coptic(M.coptic_date(year, 1, 1))), 30) + 1)
local day = (date - -1 - M.fixed_from_coptic(M.coptic_date(year, month, 1)))
return M.coptic_date(year, month, day)
end
-- TYPE (ethiopic-year ethiopic-month ethiopic-day)
-- TYPE -> ethiopic-date
function M.ethiopic_date(year, month, day)
return _list(year, month, day)
end
-- TYPE fixed-date
-- Fixed date of start of the Ethiopic calendar.
M.ETHIOPIC_EPOCH = M.fixed_from_julian(M.julian_date(M.ce(8), M.AUGUST, 29))
-- TYPE ethiopic-date -> fixed-date
-- Fixed date of Ethiopic date e-date.
function M.fixed_from_ethiopic(e_date)
local month = M.standard_month(e_date)
local day = M.standard_day(e_date)
local year = M.standard_year(e_date)
return (M.ETHIOPIC_EPOCH + (M.fixed_from_coptic(M.coptic_date(year, month, day)) - M.COPTIC_EPOCH))
end
-- TYPE fixed-date -> ethiopic-date
-- Ethiopic equivalent of fixed date.
function M.ethiopic_from_fixed(date)
return M.coptic_from_fixed((date + (M.COPTIC_EPOCH - M.ETHIOPIC_EPOCH)))
end
-- TYPE (coptic-month coptic-day gregorian-year)
-- TYPE -> list-of-fixed-dates
-- List of the fixed dates of Coptic month c-month, day
-- c-day that occur in Gregorian year g-year.
function M.coptic_in_gregorian(c_month, c_day, g_year)
local jan1 = M.gregorian_new_year(g_year)
local y = M.standard_year(M.coptic_from_fixed(jan1))
local date0 = M.fixed_from_coptic(M.coptic_date(y, c_month, c_day))
local date1 = M.fixed_from_coptic(M.coptic_date((y + 1), c_month, c_day))
return M.list_range(_list(date0, date1), M.gregorian_year_range(g_year))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of zero or one fixed dates of Coptic Christmas
-- in Gregorian year g-year.
function M.coptic_christmas(g_year)
return M.coptic_in_gregorian(4, 29, g_year)
end
----- D.5 The ISO Calendar -----
-- TYPE (iso-year iso-week iso-day) -> iso-date
function M.iso_date(year, week, day)
return _list(year, week, day)
end
-- TYPE iso-date -> iso-week
function M.iso_week(date)
return _nth(1, date)
end
-- TYPE iso-date -> day-of-week
function M.iso_day(date)
return _nth(2, date)
end
-- TYPE iso-date -> iso-year
function M.iso_year(date)
return _nth(0, date)
end
-- TYPE iso-date -> fixed-date
-- Fixed date equivalent to ISO i-date.
function M.fixed_from_iso(i_date)
local week = M.iso_week(i_date)
local day = M.iso_day(i_date)
local year = M.iso_year(i_date)
return (M.nth_kday(week, M.SUNDAY, M.gregorian_date((year - 1), M.DECEMBER, 28)) + day)
end
-- TYPE fixed-date -> iso-date
-- ISO (year week day) corresponding to the fixed date.
function M.iso_from_fixed(date)
local approx = M.gregorian_year_from_fixed((date - 3))
local year = (function() if _truth(((date >= M.fixed_from_iso(M.iso_date((approx + 1), 1, 1))))) then return (approx + 1) else return approx end end)()
local week = (M.quotient((date - M.fixed_from_iso(M.iso_date(year, 1, 1))), 7) + 1)
local day = M.amod((date - M.rd(0)), 7)
return M.iso_date(year, week, day)
end
-- TYPE iso-year -> boolean
-- True if i-year is a long (53-week) year.
function M.iso_long_year_p(i_year)
local jan1 = M.day_of_week_from_fixed(M.gregorian_new_year(i_year))
local dec31 = M.day_of_week_from_fixed(M.gregorian_year_end(i_year))
return (_truth(((jan1 == M.THURSDAY))) or _truth(((dec31 == M.THURSDAY))))
end
----- D.6 The Icelandic Calendar -----
-- TYPE (icelandic-year icelandic-season
-- TYPE icelandic-week icelandic-weekday) -> icelandic-date
function M.icelandic_date(year, season, week, weekday)
return _list(year, season, week, weekday)
end
-- TYPE icelandic-date -> icelandic-year
function M.icelandic_year(i_date)
return _nth(0, i_date)
end
-- TYPE icelandic-date -> icelandic-season
function M.icelandic_season(i_date)
return _nth(1, i_date)
end
-- TYPE icelandic-date -> icelandic-week
function M.icelandic_week(i_date)
return _nth(2, i_date)
end
-- TYPE icelandic-date -> icelandic-weekday
function M.icelandic_weekday(i_date)
return _nth(3, i_date)
end
-- TYPE fixed-date
-- Fixed date of start of the Icelandic calendar.
M.ICELANDIC_EPOCH = M.fixed_from_gregorian(M.gregorian_date(1, M.APRIL, 19))
-- TYPE icelandic-year -> fixed-date
-- Fixed date of start of Icelandic year i-year.
function M.icelandic_summer(i_year)
local apr19 = (M.ICELANDIC_EPOCH + (365 * (i_year - 1)) + M.sigma(_list(M.to_radix(i_year, _list(4, 25, 4)), _list(97, 24, 1, 0)), function(y, a) return (y * a) end))
return M.kday_on_or_after(M.THURSDAY, apr19)
end
-- TYPE icelandic-year -> fixed-date
-- Fixed date of start of Icelandic winter season
-- in Icelandic year i-year.
function M.icelandic_winter(i_year)
return (M.icelandic_summer((i_year + 1)) - 180)
end
-- TYPE icelandic-date -> fixed-date
-- Fixed date equivalent to Icelandic i-date.
function M.fixed_from_icelandic(i_date)
local year = M.icelandic_year(i_date)
local season = M.icelandic_season(i_date)
local week = M.icelandic_week(i_date)
local weekday = M.icelandic_weekday(i_date)
local start = (function() if _truth(((season == M.SUMMER))) then return M.icelandic_summer(year) else return M.icelandic_winter(year) end end)()
local shift = (function() if _truth(((season == M.SUMMER))) then return M.THURSDAY else return M.SATURDAY end end)()
return (start + (7 * (week - 1)) + ((weekday - shift) % 7))
end
-- TYPE fixed-date -> icelandic-date
-- Icelandic (year season week weekday) corresponding to
-- the fixed date.
function M.icelandic_from_fixed(date)
local approx = M.quotient((date - M.ICELANDIC_EPOCH - -369), (146097 / 400))
local year = (function() if _truth(((date >= M.icelandic_summer(approx)))) then return approx else return (approx - 1) end end)()
local season = (function() if _truth(((date < M.icelandic_winter(year)))) then return M.SUMMER else return M.WINTER end end)()
local start = (function() if _truth(((season == M.SUMMER))) then return M.icelandic_summer(year) else return M.icelandic_winter(year) end end)()
local week = (M.quotient((date - start), 7) + 1)
local weekday = M.day_of_week_from_fixed(date)
return M.icelandic_date(year, season, week, weekday)
end
-- TYPE icelandic-year -> boolean
-- True if Icelandic i-year is a leap year (53 weeks)
-- on the Icelandic calendar.
function M.icelandic_leap_year_p(i_year)
return (((M.icelandic_summer((i_year + 1)) - M.icelandic_summer(i_year)) ~= 364))
end
-- TYPE icelandic-date -> icelandic-month
-- Month of i-date on the Icelandic calendar.
-- Epagomenae are ~month~ 0.
function M.icelandic_month(i_date)
local date = M.fixed_from_icelandic(i_date)
local year = M.icelandic_year(i_date)
local season = M.icelandic_season(i_date)
local summer = M.icelandic_summer(year)
local midsummer = (M.icelandic_winter(year) - 90)
local start = (function() if _truth(((season == M.WINTER))) then return M.icelandic_winter(year) elseif _truth(((date >= midsummer))) then return (midsummer - 90) elseif _truth(((date < (summer + 90)))) then return summer else return midsummer end end)()
local month = (M.quotient((date - start), 30) + 1)
-- This part isn't in the book, but I added it so I can put the Icelandic day of the month on Wikipedia
local day = (function() if _truth(((month == 0))) then return (date - (summer + 90) + 1) else return (((date - start) % 30) + 1) end end)()
return _list(month, day)
end
-- TYPE fixed-date -> (icelandic-month icelandic-day)
-- This isn't in the book but I need it for Wikipedia
function M.icelandic_month_from_fixed(date)
return M.icelandic_month(M.icelandic_from_fixed(date))
end
----- D.7 The Islamic Calendar -----
-- TYPE (islamic-year islamic-month islamic-day)
-- TYPE -> islamic-date
function M.islamic_date(year, month, day)
return _list(year, month, day)
end
-- TYPE fixed-date
-- Fixed date of start of the Islamic calendar.
M.ISLAMIC_EPOCH = M.fixed_from_julian(M.julian_date(M.ce(622), M.JULY, 16))
-- TYPE islamic-year -> boolean
-- True if i-year is an Islamic leap year.
function M.islamic_leap_year_p(i_year)
return ((((14 + (11 * i_year)) % 30) < 11))
end
-- TYPE islamic-date -> fixed-date
-- Fixed date equivalent to Islamic date i-date.
function M.fixed_from_islamic(i_date)
local month = M.standard_month(i_date)
local day = M.standard_day(i_date)
local year = M.standard_year(i_date)
return ((M.ISLAMIC_EPOCH - 1) + ((year - 1) * 354) + M.quotient((3 + (11 * year)), 30) + (29 * (month - 1)) + M.quotient(month, 2) + day)
end
-- TYPE fixed-date -> islamic-date
-- Islamic date (year month day) corresponding to fixed
-- date.
function M.islamic_from_fixed(date)
local year = M.quotient(((30 * (date - M.ISLAMIC_EPOCH)) + 10646), 10631)
local prior_days = (date - M.fixed_from_islamic(M.islamic_date(year, 1, 1)))
local month = M.quotient(((11 * prior_days) + 330), 325)
local day = ((date - M.fixed_from_islamic(M.islamic_date(year, month, 1))) + 1)
return M.islamic_date(year, month, day)
end
-- TYPE (islamic-month islamic-day gregorian-year)
-- TYPE -> list-of-fixed-dates
-- List of the fixed dates of Islamic month i-month, day
-- i-day that occur in Gregorian year g-year.
function M.islamic_in_gregorian(i_month, i_day, g_year)
local jan1 = M.gregorian_new_year(g_year)
local y = M.standard_year(M.islamic_from_fixed(jan1))
local date0 = M.fixed_from_islamic(M.islamic_date(y, i_month, i_day))
local date1 = M.fixed_from_islamic(M.islamic_date((y + 1), i_month, i_day))
local date2 = M.fixed_from_islamic(M.islamic_date((y + 2), i_month, i_day))
return M.list_range(_list(date0, date1, date2), M.gregorian_year_range(g_year))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed dates of Mawlid an-Nabi occurring in
-- Gregorian year g-year.
function M.mawlid(g_year)
return M.islamic_in_gregorian(3, 12, g_year)
end
----- D.8 The Hebrew Calendar -----
-- TYPE (hebrew-year hebrew-month hebrew-day) -> hebrew-date
function M.hebrew_date(year, month, day)
return _list(year, month, day)
end
-- TYPE hebrew-month
-- Nisan is month number 1.
M.NISAN = 1
-- TYPE hebrew-month
-- Iyyar is month number 2.
M.IYYAR = 2
-- TYPE hebrew-month
-- Sivan is month number 3.
M.SIVAN = 3
-- TYPE hebrew-month
-- Tammuz is month number 4.
M.TAMMUZ = 4
-- TYPE hebrew-month
-- Av is month number 5.
M.AV = 5
-- TYPE hebrew-month
-- Elul is month number 6.
M.ELUL = 6
-- TYPE hebrew-month
-- Tishri is month number 7.
M.TISHRI = 7
-- TYPE hebrew-month
-- Marheshvan is month number 8.
M.MARHESHVAN = 8
-- TYPE hebrew-month
-- Kislev is month number 9.
M.KISLEV = 9
-- TYPE hebrew-month
-- Tevet is month number 10.
M.TEVET = 10
-- TYPE hebrew-month
-- Shevat is month number 11.
M.SHEVAT = 11
-- TYPE hebrew-month
-- Adar is month number 12.
M.ADAR = 12
-- TYPE hebrew-month
-- Adar II is month number 13.
M.ADARII = 13
-- TYPE hebrew-year -> boolean
-- True if h-year is a leap year on Hebrew calendar.
function M.hebrew_leap_year_p(h_year)
return (((((7 * h_year) + 1) % 19) < 7))
end
-- TYPE hebrew-year -> hebrew-month
-- Last month of Hebrew year h-year.
function M.last_month_of_hebrew_year(h_year)
if _truth(M.hebrew_leap_year_p(h_year)) then
return M.ADARII
else
return M.ADAR
end
end
-- TYPE hebrew-year -> boolean
-- True if h-year is a sabbatical year on the Hebrew
-- calendar.
function M.hebrew_sabbatical_year_p(h_year)
return (((h_year % 7) == 0))
end
-- TYPE fixed-date
-- Fixed date of start of the Hebrew calendar, that is,
-- Tishri 1, 1 AM.
M.HEBREW_EPOCH = M.fixed_from_julian(M.julian_date(M.bce(3761), M.OCTOBER, 7))
-- TYPE (hebrew-year hebrew-month) -> rational-moment
-- Moment of mean conjunction of h-month in Hebrew
-- h-year.
function M.molad(h_year, h_month)
local y = (function() if _truth(((h_month < M.TISHRI))) then return (h_year + 1) else return h_year end end)()
local months_elapsed = ((h_month - M.TISHRI) + M.quotient(((235 * y) - 234), 19))
return (M.HEBREW_EPOCH + (-876 / 25920) + (months_elapsed * (29 + M.hr(12) + (793 / 25920))))
end
-- TYPE hebrew-year -> integer
-- Number of days elapsed from the (Sunday) noon prior
-- to the epoch of the Hebrew calendar to the mean
-- conjunction (molad) of Tishri of Hebrew year h-year,
-- or one day later.
function M.hebrew_calendar_elapsed_days(h_year)
local months_elapsed = M.quotient(((235 * h_year) - 234), 19)
local parts_elapsed = (12084 + (13753 * months_elapsed))
local days = ((29 * months_elapsed) + M.quotient(parts_elapsed, 25920))
if _truth(((((3 * (days + 1)) % 7) < 3))) then
return (days + 1)
else
return days
end
end
-- TYPE hebrew-year -> 0-2
-- Delays to start of Hebrew year h-year to keep ordinary
-- year in range 353-
function M.hebrew_year_length_correction(h_year)
local ny0 = M.hebrew_calendar_elapsed_days((h_year - 1))
local ny1 = M.hebrew_calendar_elapsed_days(h_year)
local ny2 = M.hebrew_calendar_elapsed_days((h_year + 1))
if _truth((((ny2 - ny1) == 356))) then
return 2
elseif _truth((((ny1 - ny0) == 382))) then
return 1
else
return 0
end
end
-- TYPE hebrew-year -> fixed-date
-- Fixed date of Hebrew new year h-year.
function M.hebrew_new_year(h_year)
return (M.HEBREW_EPOCH + M.hebrew_calendar_elapsed_days(h_year) + M.hebrew_year_length_correction(h_year))
end
-- TYPE (hebrew-year hebrew-month) -> hebrew-day
-- Last day of month h-month in Hebrew year h-year.
function M.last_day_of_hebrew_month(h_year, h_month)
if _truth((_truth(_member(h_month, _list(M.IYYAR, M.TAMMUZ, M.ELUL, M.TEVET, M.ADARII))) or _truth((_truth(((h_month == M.ADAR))) and _truth((not _truth(M.hebrew_leap_year_p(h_year)))))) or _truth((_truth(((h_month == M.MARHESHVAN))) and _truth((not _truth(M.long_marheshvan_p(h_year)))))) or _truth((_truth(((h_month == M.KISLEV))) and _truth(M.short_kislev_p(h_year)))))) then
return 29
else
return 30
end
end
-- TYPE hebrew-year -> boolean
-- True if Marheshvan is long in Hebrew year h-year.
function M.long_marheshvan_p(h_year)
return _member(M.days_in_hebrew_year(h_year), _list(355, 385))
end
-- TYPE hebrew-year -> boolean
-- True if Kislev is short in Hebrew year h-year.
function M.short_kislev_p(h_year)
return _member(M.days_in_hebrew_year(h_year), _list(353, 383))
end
-- TYPE hebrew-year -> {353,354,355,383,384,385}
-- Number of days in Hebrew year h-year.
function M.days_in_hebrew_year(h_year)
return (M.hebrew_new_year((h_year + 1)) - M.hebrew_new_year(h_year))
end
-- TYPE hebrew-date -> fixed-date
-- Fixed date of Hebrew date h-date.
function M.fixed_from_hebrew(h_date)
local month = M.standard_month(h_date)
local day = M.standard_day(h_date)
local year = M.standard_year(h_date)
return (M.hebrew_new_year(year) + day + -1 + (function() if _truth(((month < M.TISHRI))) then return (M.sum(function(m) return M.last_day_of_hebrew_month(year, m) end, M.TISHRI, function(m) return _truth(((m <= M.last_month_of_hebrew_year(year)))) end) + M.sum(function(m) return M.last_day_of_hebrew_month(year, m) end, M.NISAN, function(m) return _truth(((m < month))) end)) else return M.sum(function(m) return M.last_day_of_hebrew_month(year, m) end, M.TISHRI, function(m) return _truth(((m < month))) end) end end)())
end
-- TYPE fixed-date -> hebrew-date
-- Hebrew (year month day) corresponding to fixed date.
-- The fraction can be approximated by 365.25.
function M.hebrew_from_fixed(date)
local approx = (M.quotient((date - M.HEBREW_EPOCH), (35975351 / 98496)) + 1)
local year = M.final((approx - 1), function(y) return _truth(((M.hebrew_new_year(y) <= date))) end)
local start = (function() if _truth(((date < M.fixed_from_hebrew(M.hebrew_date(year, M.NISAN, 1))))) then return M.TISHRI else return M.NISAN end end)()
local month = M.next(start, function(m) return _truth(((date <= M.fixed_from_hebrew(M.hebrew_date(year, m, M.last_day_of_hebrew_month(year, m)))))) end)
local day = ((date - M.fixed_from_hebrew(M.hebrew_date(year, month, 1))) + 1)
return M.hebrew_date(year, month, day)
end
-- TYPE duration -> fixed-date
-- Fixed date of the molad that occurs moon days
-- and fractional days into the week.
function M.fixed_from_molad(moon)
local r = (((74377 * moon) - (2879 / 2160)) % 7)
return M.fixed_from_moment((M.molad(1, M.TISHRI) + (r * 765433)))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Yom Kippur occurring in Gregorian year
-- g-year.
function M.yom_kippur(g_year)
local h_year = ((g_year - M.gregorian_year_from_fixed(M.HEBREW_EPOCH)) + 1)
return M.fixed_from_hebrew(M.hebrew_date(h_year, M.TISHRI, 10))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Passover occurring in Gregorian year
-- g-year.
function M.passover(g_year)
local h_year = (g_year - M.gregorian_year_from_fixed(M.HEBREW_EPOCH))
return M.fixed_from_hebrew(M.hebrew_date(h_year, M.NISAN, 15))
end
-- TYPE fixed-date -> omer-count
-- Number of elapsed weeks and days in the omer at date.
-- Returns bogus if that date does not fall during the
-- omer.
function M.omer(date)
local c = (date - M.passover(M.gregorian_year_from_fixed(date)))
if _truth(((1 <= c) and (c <= 49))) then
return _list(M.quotient(c, 7), (c % 7))
else
return M.BOGUS
end
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Purim occurring in Gregorian year g-year.
function M.purim(g_year)
local h_year = (g_year - M.gregorian_year_from_fixed(M.HEBREW_EPOCH))
local last_month = M.last_month_of_hebrew_year(h_year)
return M.fixed_from_hebrew(M.hebrew_date(h_year, last_month, 14))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Ta’anit Esther occurring in
-- Gregorian year g-year.
function M.ta_anit_esther(g_year)
local purim_date = M.purim(g_year)
if _truth(((M.day_of_week_from_fixed(purim_date) == M.SUNDAY))) then
return (purim_date - 3)
else
return (purim_date - 1)
end
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Tishah be-Av occurring in
-- Gregorian year g-year.
function M.tishah_be_av(g_year)
local h_year = (g_year - M.gregorian_year_from_fixed(M.HEBREW_EPOCH))
local av9 = M.fixed_from_hebrew(M.hebrew_date(h_year, M.AV, 9))
if _truth(((M.day_of_week_from_fixed(av9) == M.SATURDAY))) then
return (av9 + 1)
else
return av9
end
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Yom ha-Zikkaron occurring in Gregorian
-- year g-year.
function M.yom_ha_zikkaron(g_year)
local h_year = (g_year - M.gregorian_year_from_fixed(M.HEBREW_EPOCH))
local iyyar4 = M.fixed_from_hebrew(M.hebrew_date(h_year, M.IYYAR, 4))
if _truth(_member(M.day_of_week_from_fixed(iyyar4), _list(M.THURSDAY, M.FRIDAY))) then
return M.kday_before(M.WEDNESDAY, iyyar4)
elseif _truth(((M.SUNDAY == M.day_of_week_from_fixed(iyyar4)))) then
return (iyyar4 + 1)
else
return iyyar4
end
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed dates of Sh’ela occurring in
-- Gregorian year g-year.
function M.sh_ela(g_year)
return M.coptic_in_gregorian(3, 26, g_year)
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed date of Birkath ha-Hama occurring in
-- Gregorian year g-year, if it occurs.
function M.birkath_ha_hama(g_year)
local dates = M.coptic_in_gregorian(7, 30, g_year)
if _truth((_truth((not _truth(_equal(dates, NIL)))) and _truth((((M.standard_year(M.coptic_from_fixed(_nth(0, dates))) % 28) == 17))))) then
return dates
else
return NIL
end
end
-- TYPE (season gregorian-year) -> list-of-moments
-- Moment(s) of season in Gregorian year g-year
-- per Samuel.
function M.samuel_season_in_gregorian(season, g_year)
local cap_Y = (365 + M.hr(6))
local offset = ((season / M.deg(360)) * cap_Y)
return M.cycle_in_gregorian(season, g_year, cap_Y, (M.fixed_from_hebrew(M.hebrew_date(1, M.ADAR, 21)) + M.hr(18) + offset))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed date of Birkath ha-Hama occurring in
-- Gregorian year g-year, if it occurs.
function M.alt_birkath_ha_hama(g_year)
local cap_Y = (365 + M.hr(6))
local season = (M.SPRING + (M.hr(6) * (M.deg(360) / cap_Y)))
local moments = M.samuel_season_in_gregorian(season, g_year)
if _truth((_truth((not _truth(_equal(moments, NIL)))) and _truth(((M.day_of_week_from_fixed(_nth(0, moments)) == M.WEDNESDAY))) and _truth(((M.time_from_moment(_nth(0, moments)) == M.hr(0)))))) then
return _list(M.fixed_from_moment(_nth(0, moments)))
else
return NIL
end
end
-- TYPE (season gregorian-year) -> list-of-moments
-- Moment(s) of season in Gregorian year g-year
-- per R. Adda bar Ahava.
function M.adda_season_in_gregorian(season, g_year)
local cap_Y = (365 + M.hr((5 + (3791 / 4104))))
local offset = ((season / M.deg(360)) * cap_Y)
return M.cycle_in_gregorian(season, g_year, cap_Y, (M.fixed_from_hebrew(M.hebrew_date(1, M.ADAR, 28)) + M.hr(18) + offset))
end
-- TYPE (hebrew-month hebrew-day gregorian-year)
-- TYPE -> list-of-fixed-dates
-- List of the fixed dates of Hebrew month h-month, day
-- h-day that occur in Gregorian year g-year.
function M.hebrew_in_gregorian(h_month, h_day, g_year)
local jan1 = M.gregorian_new_year(g_year)
local y = M.standard_year(M.hebrew_from_fixed(jan1))
local date0 = M.fixed_from_hebrew(M.hebrew_date(y, h_month, h_day))
local date1 = M.fixed_from_hebrew(M.hebrew_date((y + 1), h_month, h_day))
local date2 = M.fixed_from_hebrew(M.hebrew_date((y + 2), h_month, h_day))
return M.list_range(_list(date0, date1, date2), M.gregorian_year_range(g_year))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- Fixed date(s) of first day of Hanukkah
-- occurring in Gregorian year g-year.
function M.hanukkah(g_year)
return M.hebrew_in_gregorian(M.KISLEV, 25, g_year)
end
-- TYPE (hebrew-date hebrew-year) -> fixed-date
-- Fixed date of the anniversary of Hebrew birthdate
-- occurring in Hebrew h-year.
function M.hebrew_birthday(birthdate, h_year)
local birth_day = M.standard_day(birthdate)
local birth_month = M.standard_month(birthdate)
local birth_year = M.standard_year(birthdate)
if _truth(((birth_month == M.last_month_of_hebrew_year(birth_year)))) then
return M.fixed_from_hebrew(M.hebrew_date(h_year, M.last_month_of_hebrew_year(h_year), birth_day))
else
return (M.fixed_from_hebrew(M.hebrew_date(h_year, birth_month, 1)) + birth_day + -1)
end
end
-- TYPE (hebrew-date gregorian-year)
-- TYPE -> list-of-fixed-dates
-- List of the fixed dates of Hebrew birthday
-- that occur in Gregorian g-year.
function M.hebrew_birthday_in_gregorian(birthdate, g_year)
local jan1 = M.gregorian_new_year(g_year)
local y = M.standard_year(M.hebrew_from_fixed(jan1))
local date0 = M.hebrew_birthday(birthdate, y)
local date1 = M.hebrew_birthday(birthdate, (y + 1))
local date2 = M.hebrew_birthday(birthdate, (y + 2))
return M.list_range(_list(date0, date1, date2), M.gregorian_year_range(g_year))
end
-- TYPE (hebrew-date hebrew-year) -> fixed-date
-- Fixed date of the anniversary of Hebrew death-date
-- occurring in Hebrew h-year.
function M.yahrzeit(death_date, h_year)
local death_day = M.standard_day(death_date)
local death_month = M.standard_month(death_date)
local death_year = M.standard_year(death_date)
if _truth((_truth(((death_month == M.MARHESHVAN))) and _truth(((death_day == 30))) and _truth((not _truth(M.long_marheshvan_p((death_year + 1))))))) then
return (M.fixed_from_hebrew(M.hebrew_date(h_year, M.KISLEV, 1)) - 1)
elseif _truth((_truth(((death_month == M.KISLEV))) and _truth(((death_day == 30))) and _truth(M.short_kislev_p((death_year + 1))))) then
return (M.fixed_from_hebrew(M.hebrew_date(h_year, M.TEVET, 1)) - 1)
elseif _truth(((death_month == M.ADARII))) then
return M.fixed_from_hebrew(M.hebrew_date(h_year, M.last_month_of_hebrew_year(h_year), death_day))
elseif _truth((_truth(((death_day == 30))) and _truth(((death_month == M.ADAR))) and _truth((not _truth(M.hebrew_leap_year_p(h_year)))))) then
return M.fixed_from_hebrew(M.hebrew_date(h_year, M.SHEVAT, 30))
else
return (M.fixed_from_hebrew(M.hebrew_date(h_year, death_month, 1)) + death_day + -1)
end
end
-- TYPE (hebrew-date gregorian-year)
-- TYPE -> list-of-fixed-dates
-- List of the fixed dates of death-date (yahrzeit)
-- that occur in Gregorian year g-year.
function M.yahrzeit_in_gregorian(death_date, g_year)
local jan1 = M.gregorian_new_year(g_year)
local y = M.standard_year(M.hebrew_from_fixed(jan1))
local date0 = M.yahrzeit(death_date, y)
local date1 = M.yahrzeit(death_date, (y + 1))
local date2 = M.yahrzeit(death_date, (y + 2))
return M.list_range(_list(date0, date1, date2), M.gregorian_year_range(g_year))
end
-- TYPE (list-of-weekdays integer) -> list-of-weekdays
-- Shift each weekday on list l by cap-Delta days
function M.shift_days(l, cap_Delta)
if _truth(_equal(l, NIL)) then
return NIL
else
return _append(_list(((_nth(0, l) + cap_Delta) % 7)), M.shift_days(_rest(l), cap_Delta))
end
end
-- TYPE (hebrew-month hebrew-day) -> list-of-weekdays
-- Possible days of week
function M.possible_hebrew_days(h_month, h_day)
local h_date0 = M.hebrew_date(5, M.NISAN, 1)
local h_year = (function() if _truth(((h_month > M.ELUL))) then return 6 else return 5 end end)()
local h_date = M.hebrew_date(h_year, h_month, h_day)
local n = (M.fixed_from_hebrew(h_date) - M.fixed_from_hebrew(h_date0))
local basic = _list(M.TUESDAY, M.THURSDAY, M.SATURDAY)
local extra = (function() if _truth((_truth(((h_month == M.MARHESHVAN))) and _truth(((h_day == 30))))) then return NIL elseif _truth((_truth(((h_month == M.KISLEV))) and _truth(((h_day < 30))))) then return _list(M.MONDAY, M.WEDNESDAY, M.FRIDAY) elseif _truth((_truth(((h_month == M.KISLEV))) and _truth(((h_day == 30))))) then return _list(M.MONDAY) elseif _truth(_member(h_month, _list(M.TEVET, M.SHEVAT))) then return _list(M.SUNDAY, M.MONDAY) elseif _truth((_truth(((h_month == M.ADAR))) and _truth(((h_day < 30))))) then return _list(M.SUNDAY, M.MONDAY) else return _list(M.SUNDAY) end end)()
return M.shift_days(_append(basic, extra), n)
end
----- D.9 The Ecclesiastical Calendars -----
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Orthodox Easter in Gregorian year g-year.
function M.orthodox_easter(g_year)
local shifted_epact = ((14 + (11 * (g_year % 19))) % 30)
local j_year = (function() if _truth(((g_year > 0))) then return g_year else return (g_year - 1) end end)()
local paschal_moon = (M.fixed_from_julian(M.julian_date(j_year, M.APRIL, 19)) - shifted_epact)
return M.kday_after(M.SUNDAY, paschal_moon)
end
-- TYPE gregorian-year -> fixed-date
-- Alternative calculation of fixed date of Orthodox Easter
-- in Gregorian year g-year.
function M.alt_orthodox_easter(g_year)
local paschal_moon = ((354 * g_year) + (30 * M.quotient(((7 * g_year) + 8), 19)) + M.quotient(g_year, 4) + (-M.quotient(g_year, 19)) + -273 + M.GREGORIAN_EPOCH)
return M.kday_after(M.SUNDAY, paschal_moon)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Easter in Gregorian year g-year.
function M.easter(g_year)
local century = (M.quotient(g_year, 100) + 1)
local shifted_epact = ((14 + (11 * (g_year % 19)) + (-M.quotient((3 * century), 4)) + M.quotient((5 + (8 * century)), 25)) % 30)
local adjusted_epact = (function() if _truth((_truth(((shifted_epact == 0))) or _truth((_truth(((shifted_epact == 1))) and _truth(((10 < (g_year % 19)))))))) then return (shifted_epact + 1) else return shifted_epact end end)()
local paschal_moon = (M.fixed_from_gregorian(M.gregorian_date(g_year, M.APRIL, 19)) - adjusted_epact)
return M.kday_after(M.SUNDAY, paschal_moon)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Pentecost in Gregorian year g-year.
function M.pentecost(g_year)
return (M.easter(g_year) + 49)
end
----- D.10 The Old Hindu Calendars -----
-- TYPE fixed-date
-- Fixed date of start of the Hindu calendar (Kali Yuga).
M.HINDU_EPOCH = M.fixed_from_julian(M.julian_date(M.bce(3102), M.FEBRUARY, 18))
-- TYPE fixed-date -> integer
-- Elapsed days (Ahargana) to date since Hindu epoch (KY).
function M.hindu_day_count(date)
return (date - M.HINDU_EPOCH)
end
-- TYPE rational
-- Length of Old Hindu solar year.
M.ARYA_SOLAR_YEAR = (1577917500 / 4320000)
-- TYPE rational
-- Number of days in one revolution of Jupiter around the
-- Sun.
M.ARYA_JOVIAN_PERIOD = (1577917500 / 364224)
-- TYPE fixed-date -> 1-60
-- Year of Jupiter cycle at fixed date.
function M.jovian_year(date)
return M.amod((27 + M.quotient(M.hindu_day_count(date), (M.ARYA_JOVIAN_PERIOD / 12))), 60)
end
-- TYPE rational
-- Length of Old Hindu solar month.
M.ARYA_SOLAR_MONTH = (M.ARYA_SOLAR_YEAR / 12)
-- TYPE hindu-solar-date -> fixed-date
-- Fixed date corresponding to Old Hindu solar date s-date.
function M.fixed_from_old_hindu_solar(s_date)
local month = M.standard_month(s_date)
local day = M.standard_day(s_date)
local year = M.standard_year(s_date)
return math.ceil((M.HINDU_EPOCH + (year * M.ARYA_SOLAR_YEAR) + ((month - 1) * M.ARYA_SOLAR_MONTH) + day + M.hr(-30)))
end
-- TYPE fixed-date -> hindu-solar-date
-- Old Hindu solar date equivalent to fixed date.
function M.old_hindu_solar_from_fixed(date)
local sun = (M.hindu_day_count(date) + M.hr(6))
local year = M.quotient(sun, M.ARYA_SOLAR_YEAR)
local month = ((M.quotient(sun, M.ARYA_SOLAR_MONTH) % 12) + 1)
local day = (math.floor((sun % M.ARYA_SOLAR_MONTH)) + 1)
return M.hindu_solar_date(year, month, day)
end
-- TYPE (old-hindu-lunar-year old-hindu-lunar-month
-- TYPE old-hindu-lunar-leap old-hindu-lunar-day)
-- TYPE -> old-hindu-lunar-date
function M.old_hindu_lunar_date(year, month, leap, day)
return _list(year, month, leap, day)
end
-- TYPE old-hindu-lunar-date -> old-hindu-lunar-month
function M.old_hindu_lunar_month(date)
return _nth(1, date)
end
-- TYPE old-hindu-lunar-date -> old-hindu-lunar-leap
function M.old_hindu_lunar_leap(date)
return _nth(2, date)
end
-- TYPE old-hindu-lunar-date -> old-hindu-lunar-day
function M.old_hindu_lunar_day(date)
return _nth(3, date)
end
-- TYPE old-hindu-lunar-date -> old-hindu-lunar-year
function M.old_hindu_lunar_year(date)
return _nth(0, date)
end
-- TYPE rational
-- Length of Old Hindu lunar month.
M.ARYA_LUNAR_MONTH = (1577917500 / 53433336)
-- TYPE rational
-- Length of Old Hindu lunar day.
M.ARYA_LUNAR_DAY = (M.ARYA_LUNAR_MONTH / 30)
-- TYPE old-hindu-lunar-year -> boolean
-- True if l-year is a leap year on the
-- old Hindu calendar.
function M.old_hindu_lunar_leap_year_p(l_year)
return (((((l_year * M.ARYA_SOLAR_YEAR) - M.ARYA_SOLAR_MONTH) % M.ARYA_LUNAR_MONTH) >= (23902504679 / 1282400064)))
end
-- TYPE fixed-date -> old-hindu-lunar-date
-- Old Hindu lunar date equivalent to fixed date.
function M.old_hindu_lunar_from_fixed(date)
local sun = (M.hindu_day_count(date) + M.hr(6))
local new_moon = (sun - (sun % M.ARYA_LUNAR_MONTH))
local leap = (_truth((((M.ARYA_SOLAR_MONTH - M.ARYA_LUNAR_MONTH) >= (new_moon % M.ARYA_SOLAR_MONTH)))) and _truth((((new_moon % M.ARYA_SOLAR_MONTH) > 0))))
local month = ((math.ceil((new_moon / M.ARYA_SOLAR_MONTH)) % 12) + 1)
local day = ((M.quotient(sun, M.ARYA_LUNAR_DAY) % 30) + 1)
local year = (math.ceil(((new_moon + M.ARYA_SOLAR_MONTH) / M.ARYA_SOLAR_YEAR)) - 1)
return M.old_hindu_lunar_date(year, month, leap, day)
end
-- TYPE old-hindu-lunar-date -> fixed-date
-- Fixed date corresponding to Old Hindu lunar date
-- l-date.
function M.fixed_from_old_hindu_lunar(l_date)
local year = M.old_hindu_lunar_year(l_date)
local month = M.old_hindu_lunar_month(l_date)
local leap = M.old_hindu_lunar_leap(l_date)
local day = M.old_hindu_lunar_day(l_date)
local mina = (((12 * year) - 1) * M.ARYA_SOLAR_MONTH)
local lunar_new_year = (M.ARYA_LUNAR_MONTH * (M.quotient(mina, M.ARYA_LUNAR_MONTH) + 1))
return math.ceil((M.HINDU_EPOCH + lunar_new_year + (M.ARYA_LUNAR_MONTH * (function() if _truth((_truth((not _truth(leap))) and _truth(((math.ceil(((lunar_new_year - mina) / (M.ARYA_SOLAR_MONTH - M.ARYA_LUNAR_MONTH))) <= month))))) then return month else return (month - 1) end end)()) + ((day - 1) * M.ARYA_LUNAR_DAY) + M.hr(-6)))
end
----- D.11 The Mayan Calendars -----
-- TYPE (mayan-baktun mayan-katun mayan-tun mayan-uinal
-- TYPE mayan-kin) -> mayan-long-count-date
function M.mayan_long_count_date(baktun, katun, tun, uinal, kin)
return _list(baktun, katun, tun, uinal, kin)
end
-- TYPE mayan-long-count-date -> mayan-baktun
function M.mayan_baktun(date)
return _nth(0, date)
end
-- TYPE mayan-long-count-date -> mayan-katun
function M.mayan_katun(date)
return _nth(1, date)
end
-- TYPE mayan-long-count-date -> mayan-tun
function M.mayan_tun(date)
return _nth(2, date)
end
-- TYPE mayan-long-count-date -> mayan-uinal
function M.mayan_uinal(date)
return _nth(3, date)
end
-- TYPE mayan-long-count-date -> mayan-kin
function M.mayan_kin(date)
return _nth(4, date)
end
-- TYPE fixed-date
-- Fixed date of start of the Mayan calendar, according
-- to the Goodman-Martinez-Thompson correlation.
-- That is, August 11, -3113.
M.MAYAN_EPOCH = M.fixed_from_jd(584283)
-- TYPE mayan-long-count-date -> fixed-date
-- Fixed date corresponding to the Mayan long count,
-- which is a list (baktun katun tun uinal kin).
function M.fixed_from_mayan_long_count(count)
return (M.MAYAN_EPOCH + M.from_radix(count, _list(20, 20, 18, 20)))
end
-- TYPE fixed-date -> mayan-long-count-date
-- Mayan long count date of fixed date.
function M.mayan_long_count_from_fixed(date)
return M.to_radix((date - M.MAYAN_EPOCH), _list(20, 20, 18, 20))
end
-- TYPE (mayan-haab-month mayan-haab-day) -> mayan-haab-date
function M.mayan_haab_date(month, day)
return _list(month, day)
end
-- TYPE mayan-haab-date -> mayan-haab-day
function M.mayan_haab_day(date)
return _nth(1, date)
end
-- TYPE mayan-haab-date -> mayan-haab-month
function M.mayan_haab_month(date)
return _nth(0, date)
end
-- TYPE mayan-haab-date -> nonnegative-integer
-- Number of days into cycle of Mayan haab date h-date.
function M.mayan_haab_ordinal(h_date)
local day = M.mayan_haab_day(h_date)
local month = M.mayan_haab_month(h_date)
return (((month - 1) * 20) + day)
end
-- TYPE fixed-date
-- Fixed date of start of haab cycle.
M.MAYAN_HAAB_EPOCH = (M.MAYAN_EPOCH - M.mayan_haab_ordinal(M.mayan_haab_date(18, 8)))
-- TYPE fixed-date -> mayan-haab-date
-- Mayan haab date of fixed date.
function M.mayan_haab_from_fixed(date)
local count = ((date - M.MAYAN_HAAB_EPOCH) % 365)
local day = (count % 20)
local month = (M.quotient(count, 20) + 1)
return M.mayan_haab_date(month, day)
end
-- TYPE (mayan-haab-date fixed-date) -> fixed-date
-- Fixed date of latest date on or before fixed date
-- that is Mayan haab date haab.
function M.mayan_haab_on_or_before(haab, date)
return M.mod3((M.mayan_haab_ordinal(haab) + M.MAYAN_HAAB_EPOCH), date, (date - 365))
end
-- TYPE (mayan-tzolkin-number mayan-tzolkin-name)
-- TYPE -> mayan-tzolkin-date
function M.mayan_tzolkin_date(number, name)
return _list(number, name)
end
-- TYPE mayan-tzolkin-date -> mayan-tzolkin-number
function M.mayan_tzolkin_number(date)
return _nth(0, date)
end
-- TYPE mayan-tzolkin-date -> mayan-tzolkin-name
function M.mayan_tzolkin_name(date)
return _nth(1, date)
end
-- TYPE mayan-tzolkin-date -> nonnegative-integer
-- Number of days into Mayan tzolkin cycle of t-date.
function M.mayan_tzolkin_ordinal(t_date)
local number = M.mayan_tzolkin_number(t_date)
local name = M.mayan_tzolkin_name(t_date)
return ((number + -1 + (39 * (number - name))) % 260)
end
-- TYPE fixed-date
-- Start of tzolkin date cycle.
M.MAYAN_TZOLKIN_EPOCH = (M.MAYAN_EPOCH - M.mayan_tzolkin_ordinal(M.mayan_tzolkin_date(4, 20)))
-- TYPE fixed-date -> mayan-tzolkin-date
-- Mayan tzolkin date of fixed date.
function M.mayan_tzolkin_from_fixed(date)
local count = (date - M.MAYAN_TZOLKIN_EPOCH - -1)
local number = M.amod(count, 13)
local name = M.amod(count, 20)
return M.mayan_tzolkin_date(number, name)
end
-- TYPE (mayan-tzolkin-date fixed-date) -> fixed-date
-- Fixed date of latest date on or before fixed date
-- that is Mayan tzolkin date tzolkin.
function M.mayan_tzolkin_on_or_before(tzolkin, date)
return M.mod3((M.mayan_tzolkin_ordinal(tzolkin) + M.MAYAN_TZOLKIN_EPOCH), date, (date - 260))
end
-- TYPE fixed-date -> mayan-tzolkin-name
-- Year bearer of year containing fixed date.
-- Returns bogus for uayeb.
function M.mayan_year_bearer_from_fixed(date)
local x = M.mayan_haab_on_or_before(M.mayan_haab_date(1, 0), date)
if _truth(((M.mayan_haab_month(M.mayan_haab_from_fixed(date)) == 19))) then
return M.BOGUS
else
return M.mayan_tzolkin_name(M.mayan_tzolkin_from_fixed(x))
end
end
-- TYPE (mayan-haab-date mayan-tzolkin-date fixed-date)
-- TYPE -> fixed-date
-- Fixed date of latest date on or before date, that is
-- Mayan haab date haab and tzolkin date tzolkin.
-- Returns bogus for impossible combinations.
function M.mayan_calendar_round_on_or_before(haab, tzolkin, date)
local haab_count = (M.mayan_haab_ordinal(haab) + M.MAYAN_HAAB_EPOCH)
local tzolkin_count = (M.mayan_tzolkin_ordinal(tzolkin) + M.MAYAN_TZOLKIN_EPOCH)
local diff = (tzolkin_count - haab_count)
if _truth((((diff % 5) == 0))) then
return M.mod3((haab_count + (365 * diff)), date, (date - 18980))
else
return M.BOGUS
end
end
-- TYPE fixed-date
-- Known date of Aztec cycles (Caso’s correlation)
M.AZTEC_CORRELATION = M.fixed_from_julian(M.julian_date(1521, M.AUGUST, 13))
-- TYPE (aztec-xihuitl-month aztec-xihuitl-day) ->
-- TYPE aztec-xihuitl-date
function M.aztec_xihuitl_date(month, day)
return _list(month, day)
end
-- TYPE aztec-xihuitl-date -> aztec-xihuitl-month
function M.aztec_xihuitl_month(date)
return _nth(0, date)
end
-- TYPE aztec-xihuitl-date -> aztec-xihuitl-day
function M.aztec_xihuitl_day(date)
return _nth(1, date)
end
-- TYPE aztec-xihuitl-date -> nonnegative-integer
-- Number of elapsed days into cycle of Aztec xihuitl x-date.
function M.aztec_xihuitl_ordinal(x_date)
local day = M.aztec_xihuitl_day(x_date)
local month = M.aztec_xihuitl_month(x_date)
return (((month - 1) * 20) + (day - 1))
end
-- TYPE fixed-date
-- Start of a xihuitl cycle.
M.AZTEC_XIHUITL_CORRELATION = (M.AZTEC_CORRELATION - M.aztec_xihuitl_ordinal(M.aztec_xihuitl_date(11, 2)))
-- TYPE fixed-date -> aztec-xihuitl-date
-- Aztec xihuitl date of fixed date.
function M.aztec_xihuitl_from_fixed(date)
local count = ((date - M.AZTEC_XIHUITL_CORRELATION) % 365)
local day = ((count % 20) + 1)
local month = (M.quotient(count, 20) + 1)
return M.aztec_xihuitl_date(month, day)
end
-- TYPE (aztec-xihuitl-date fixed-date) -> fixed-date
-- Fixed date of latest date on or before fixed date
-- that is Aztec xihuitl date xihuitl.
function M.aztec_xihuitl_on_or_before(xihuitl, date)
return M.mod3((M.AZTEC_XIHUITL_CORRELATION + M.aztec_xihuitl_ordinal(xihuitl)), date, (date - 365))
end
-- TYPE (aztec-tonalpohualli-number aztec-tonalpohualli-name)
-- TYPE -> aztec-tonalpohualli-date
function M.aztec_tonalpohualli_date(number, name)
return _list(number, name)
end
-- TYPE aztec-tonalpohualli-date -> aztec-tonalpohualli-number
function M.aztec_tonalpohualli_number(date)
return _nth(0, date)
end
-- TYPE aztec-tonalpohualli-date -> aztec-tonalpohualli-name
function M.aztec_tonalpohualli_name(date)
return _nth(1, date)
end
-- TYPE aztec-tonalpohualli-date -> nonnegative-integer
-- Number of days into Aztec tonalpohualli cycle of t-date.
function M.aztec_tonalpohualli_ordinal(t_date)
local number = M.aztec_tonalpohualli_number(t_date)
local name = M.aztec_tonalpohualli_name(t_date)
return ((number + -1 + (39 * (number - name))) % 260)
end
-- TYPE fixed-date
-- Start of a tonalpohualli date cycle.
M.AZTEC_TONALPOHUALLI_CORRELATION = (M.AZTEC_CORRELATION - M.aztec_tonalpohualli_ordinal(M.aztec_tonalpohualli_date(1, 5)))
-- TYPE fixed-date -> aztec-tonalpohualli-date
-- Aztec tonalpohualli date of fixed date.
function M.aztec_tonalpohualli_from_fixed(date)
local count = (date - M.AZTEC_TONALPOHUALLI_CORRELATION - -1)
local number = M.amod(count, 13)
local name = M.amod(count, 20)
return M.aztec_tonalpohualli_date(number, name)
end
-- TYPE (aztec-tonalpohualli-date fixed-date) -> fixed-date
-- Fixed date of latest date on or before fixed date
-- that is Aztec tonalpohualli date tonalpohualli.
function M.aztec_tonalpohualli_on_or_before(tonalpohualli, date)
return M.mod3((M.AZTEC_TONALPOHUALLI_CORRELATION + M.aztec_tonalpohualli_ordinal(tonalpohualli)), date, (date - 260))
end
-- TYPE (aztec-xiuhmolpilli-number aztec-xiuhmolpilli-name)
-- TYPE -> aztec-xiuhmolpilli-designation
function M.aztec_xiuhmolpilli_designation(number, name)
return _list(number, name)
end
-- TYPE aztec-xiuhmolpilli-designation -> aztec-xiuhmolpilli-number
function M.aztec_xiuhmolpilli_number(date)
return _nth(0, date)
end
-- TYPE aztec-xiuhmolpilli-designation -> aztec-xiuhmolpilli-name
function M.aztec_xiuhmolpilli_name(date)
return _nth(1, date)
end
-- TYPE fixed-date -> aztec-xiuhmolpilli-designation
-- Designation of year containing fixed date.
-- Returns bogus for nemontemi.
function M.aztec_xiuhmolpilli_from_fixed(date)
local x = M.aztec_xihuitl_on_or_before(M.aztec_xihuitl_date(18, 20), (date + 364))
local month = M.aztec_xihuitl_month(M.aztec_xihuitl_from_fixed(date))
if _truth(((month == 19))) then
return M.BOGUS
else
return M.aztec_tonalpohualli_from_fixed(x)
end
end
-- TYPE (aztec-xihuitl-date aztec-tonalpohualli-date
-- TYPE fixed-date) -> fixed-date
-- Fixed date of latest xihuitl-tonalpohualli combination
-- on or before date. That is the date on or before
-- date that is Aztec xihuitl date xihuitl and
-- tonalpohualli date tonalpohualli.
-- Returns bogus for impossible combinations.
function M.aztec_xihuitl_tonalpohualli_on_or_before(xihuitl, tonalpohualli, date)
local xihuitl_count = (M.aztec_xihuitl_ordinal(xihuitl) + M.AZTEC_XIHUITL_CORRELATION)
local tonalpohualli_count = (M.aztec_tonalpohualli_ordinal(tonalpohualli) + M.AZTEC_TONALPOHUALLI_CORRELATION)
local diff = (tonalpohualli_count - xihuitl_count)
if _truth((((diff % 5) == 0))) then
return M.mod3((xihuitl_count + (365 * diff)), date, (date - 18980))
else
return M.BOGUS
end
end
----- D.12 The Balinese Pawukon Calendar -----
-- TYPE (boolean 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 0-9)
-- TYPE -> balinese-date
function M.balinese_date(b1, b2, b3, b4, b5, b6, b7, b8, b9, b0)
return _list(b1, b2, b3, b4, b5, b6, b7, b8, b9, b0)
end
-- TYPE balinese-date -> boolean
function M.bali_luang(b_date)
return _nth(0, b_date)
end
-- TYPE balinese-date -> 1-2
function M.bali_dwiwara(b_date)
return _nth(1, b_date)
end
-- TYPE balinese-date -> 1-3
function M.bali_triwara(b_date)
return _nth(2, b_date)
end
-- TYPE balinese-date -> 1-4
function M.bali_caturwara(b_date)
return _nth(3, b_date)
end
-- TYPE balinese-date -> 1-5
function M.bali_pancawara(b_date)
return _nth(4, b_date)
end
-- TYPE balinese-date -> 1-6
function M.bali_sadwara(b_date)
return _nth(5, b_date)
end
-- TYPE balinese-date -> 1-7
function M.bali_saptawara(b_date)
return _nth(6, b_date)
end
-- TYPE balinese-date -> 1-8
function M.bali_asatawara(b_date)
return _nth(7, b_date)
end
-- TYPE balinese-date -> 1-9
function M.bali_sangawara(b_date)
return _nth(8, b_date)
end
-- TYPE balinese-date -> 0-9
function M.bali_dasawara(b_date)
return _nth(9, b_date)
end
-- TYPE fixed-date -> balinese-date
-- Positions of date in ten cycles of Balinese Pawukon
-- calendar.
function M.bali_pawukon_from_fixed(date)
return M.balinese_date(M.bali_luang_from_fixed(date), M.bali_dwiwara_from_fixed(date), M.bali_triwara_from_fixed(date), M.bali_caturwara_from_fixed(date), M.bali_pancawara_from_fixed(date), M.bali_sadwara_from_fixed(date), M.bali_saptawara_from_fixed(date), M.bali_asatawara_from_fixed(date), M.bali_sangawara_from_fixed(date), M.bali_dasawara_from_fixed(date))
end
-- TYPE fixed-date
-- Fixed date of start of a Balinese Pawukon cycle.
M.BALI_EPOCH = M.fixed_from_jd(146)
-- TYPE fixed-date -> 0-209
-- Position of date in 210-day Pawukon cycle.
function M.bali_day_from_fixed(date)
return ((date - M.BALI_EPOCH) % 210)
end
-- TYPE fixed-date -> 1-3
-- Position of date in 3-day Balinese cycle.
function M.bali_triwara_from_fixed(date)
return ((M.bali_day_from_fixed(date) % 3) + 1)
end
-- TYPE fixed-date -> 1-6
-- Position of date in 6-day Balinese cycle.
function M.bali_sadwara_from_fixed(date)
return ((M.bali_day_from_fixed(date) % 6) + 1)
end
-- TYPE fixed-date -> 1-7
-- Position of date in Balinese week.
function M.bali_saptawara_from_fixed(date)
return ((M.bali_day_from_fixed(date) % 7) + 1)
end
-- TYPE fixed-date -> 1-5
-- Position of date in 5-day Balinese cycle.
function M.bali_pancawara_from_fixed(date)
return M.amod((M.bali_day_from_fixed(date) + 2), 5)
end
-- TYPE fixed-date -> 1-30
-- Week number of date in Balinese cycle.
function M.bali_week_from_fixed(date)
return (M.quotient(M.bali_day_from_fixed(date), 7) + 1)
end
-- TYPE fixed-date -> 0-9
-- Position of date in 10-day Balinese cycle.
function M.bali_dasawara_from_fixed(date)
local i = (M.bali_pancawara_from_fixed(date) - 1)
local j = (M.bali_saptawara_from_fixed(date) - 1)
return ((1 + _nth(i, _list(5, 9, 7, 4, 8)) + _nth(j, _list(5, 4, 3, 7, 8, 6, 9))) % 10)
end
-- TYPE fixed-date -> 1-2
-- Position of date in 2-day Balinese cycle.
function M.bali_dwiwara_from_fixed(date)
return M.amod(M.bali_dasawara_from_fixed(date), 2)
end
-- TYPE fixed-date -> boolean
-- Membership of date in "1-day" Balinese cycle.
function M.bali_luang_from_fixed(date)
return ((M.bali_dasawara_from_fixed(date)) % 2 == 0)
end
-- TYPE fixed-date -> 1-9
-- Position of date in 9-day Balinese cycle.
function M.bali_sangawara_from_fixed(date)
return ((math.max(0, (M.bali_day_from_fixed(date) - 3)) % 9) + 1)
end
-- TYPE fixed-date -> 1-8
-- Position of date in 8-day Balinese cycle.
function M.bali_asatawara_from_fixed(date)
local day = M.bali_day_from_fixed(date)
return ((math.max(6, (4 + ((day - 70) % 210))) % 8) + 1)
end
-- TYPE fixed-date -> 1-4
-- Position of date in 4-day Balinese cycle.
function M.bali_caturwara_from_fixed(date)
return M.amod(M.bali_asatawara_from_fixed(date), 4)
end
-- TYPE (balinese-date fixed-date) -> fixed-date
-- Last fixed date on or before date with Pawukon b-date.
function M.bali_on_or_before(b_date, date)
local luang = M.bali_luang(b_date)
local dwiwara = M.bali_dwiwara(b_date)
local triwara = M.bali_triwara(b_date)
local caturwara = M.bali_caturwara(b_date)
local pancawara = M.bali_pancawara(b_date)
local sadwara = M.bali_sadwara(b_date)
local saptawara = M.bali_saptawara(b_date)
local asatawara = M.bali_asatawara(b_date)
local sangawara = M.bali_sangawara(b_date)
local dasawara = M.bali_dasawara(b_date)
local a5 = (pancawara - 1)
local a6 = (sadwara - 1)
local b7 = (saptawara - 1)
local b35 = ((a5 + 14 + (15 * (b7 - a5))) % 35)
local days = (a6 + (36 * (b35 - a6)))
local cap_Delta = M.bali_day_from_fixed(M.rd(0))
return (date - (((date + cap_Delta) - days) % 210))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- Occurrences of Kajeng Keliwon (9th day of each
-- 15-day subcycle of Pawukon) in Gregorian year g-year.
function M.kajeng_keliwon(g_year)
local year = M.gregorian_year_range(g_year)
local cap_Delta = M.bali_day_from_fixed(M.rd(0))
return M.positions_in_range(8, 15, cap_Delta, year)
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- Occurrences of Tumpek (14th day of Pawukon and every
-- 35th subsequent day) within Gregorian year g-year.
function M.tumpek(g_year)
local year = M.gregorian_year_range(g_year)
local cap_Delta = M.bali_day_from_fixed(M.rd(0))
return M.positions_in_range(13, 35, cap_Delta, year)
end
----- D.14 Time and Astronomy -----
-- TYPE real -> radian
-- Convert angle theta from degrees to radians.
function M.radians_from_degrees(theta)
return ((theta % 360) * math.pi * (1 / 180))
end
-- TYPE radian -> angle
-- Convert angle theta from radians to degrees.
function M.degrees_from_radians(theta)
return ((theta / math.pi / (1 / 180)) % 360)
end
-- TYPE angle -> amplitude
-- Sine of theta (given in degrees).
function M.sin_degrees(theta)
return math.sin(M.radians_from_degrees(theta))
end
-- TYPE angle -> amplitude
-- Cosine of theta (given in degrees).
function M.cos_degrees(theta)
return math.cos(M.radians_from_degrees(theta))
end
-- TYPE angle -> real
-- Tangent of theta (given in degrees).
function M.tan_degrees(theta)
return math.tan(M.radians_from_degrees(theta))
end
-- TYPE (real real) -> angle
-- Arctangent of y/x in degrees.
-- Returns bogus if x and y are both 0.
function M.arctan_degrees(y, x)
if _truth((_truth(((x == y) and (y == 0))))) then
return M.BOGUS
else
return ((function() if _truth(((x == 0))) then return (M.sign(y) * M.deg(90)) else return (function() local alpha = M.degrees_from_radians(math.atan((y / x))); return (function() if _truth(((x >= 0))) then return alpha else return (alpha + M.deg(180)) end end)() end)() end end)() % 360)
end
end
-- TYPE amplitude -> angle
-- Arcsine of x in degrees.
function M.arcsin_degrees(x)
return M.degrees_from_radians(math.asin(x))
end
-- TYPE amplitude -> angle
-- Arccosine of x in degrees.
function M.arccos_degrees(x)
return M.degrees_from_radians(math.acos(x))
end
-- TYPE real -> duration
-- x hours.
function M.hr(x)
return (x / 24)
end
-- TYPE real -> duration
-- x minutes.
function M.mn(x)
return (x / 24 / 60)
end
-- TYPE real -> duration
-- x seconds.
function M.sec(x)
return (x / 24 / 60 / 60)
end
-- TYPE real -> distance
-- x meters.
-- For typesetting purposes.
function M.mt(x)
return x
end
-- TYPE real -> angle
-- x arcminutes
function M.mins(x)
return (x / 60)
end
-- TYPE real -> angle
-- x arcseconds
function M.secs(x)
return (x / 3600)
end
-- TYPE (integer integer real) -> angle
-- d degrees, m arcminutes, s arcseconds.
function M.angle(d, m, s)
return (d + ((m + (s / 60)) / 60))
end
-- TYPE (degree minute real) -> angle
function M.degrees_minutes_seconds(d, m, s)
return _list(d, m, s)
end
-- TYPE (half-circle circle distance real) -> location
function M.location(latitude, longitude, elevation, zone)
return _list(latitude, longitude, elevation, zone)
end
-- TYPE location -> half-circle
function M.latitude(location)
return _nth(0, location)
end
-- TYPE location -> circle
function M.longitude(location)
return _nth(1, location)
end
-- TYPE location -> distance
function M.elevation(location)
return _nth(2, location)
end
-- TYPE location -> real
function M.zone(location)
return _nth(3, location)
end
-- TYPE location
-- Location of Mecca.
M.MECCA = M.location(M.angle(21, 25, 24), M.angle(39, 49, 24), M.mt(298), M.hr(3))
-- TYPE location
-- Location of Jerusalem.
M.JERUSALEM = M.location(M.deg(31.78), M.deg(35.24), M.mt(740), M.hr(2))
-- TYPE location
-- Location of Acre.
M.ACRE = M.location(M.deg(32.94), M.deg(35.09), M.mt(22), M.hr(2))
-- TYPE (location location) -> angle
-- Angle (clockwise from North) to face focus when
-- standing in location. Subject to errors near focus and
-- its antipode.
function M.direction(location, focus)
local phi = M.latitude(location)
local phi_prime = M.latitude(focus)
local psi = M.longitude(location)
local psi_prime = M.longitude(focus)
local y = M.sin_degrees((psi_prime - psi))
local x = ((M.cos_degrees(phi) * M.tan_degrees(phi_prime)) - (M.sin_degrees(phi) * M.cos_degrees((psi - psi_prime))))
if _truth((_truth(((x == y) and (y == 0))) or _truth(((phi_prime == M.deg(90)))))) then
return M.deg(0)
elseif _truth(((phi_prime == M.deg(-90)))) then
return M.deg(180)
else
return M.arctan_degrees(y, x)
end
end
-- TYPE circle -> duration
-- Difference between UT and local mean time at longitude
-- phi as a fraction of a day.
function M.zone_from_longitude(phi)
return (phi / M.deg(360))
end
-- TYPE (moment location) -> moment
-- Universal time from local tee_ell at location.
function M.universal_from_local(tee_ell, location)
return (tee_ell - M.zone_from_longitude(M.longitude(location)))
end
-- TYPE (moment location) -> moment
-- Local time from universal tee_rom-u at location.
function M.local_from_universal(tee_rom_u, location)
return (tee_rom_u + M.zone_from_longitude(M.longitude(location)))
end
-- TYPE (moment location) -> moment
-- Standard time from tee_rom-u in universal time at
-- location.
function M.standard_from_universal(tee_rom_u, location)
return (tee_rom_u + M.zone(location))
end
-- TYPE (moment location) -> moment
-- Universal time from tee_rom-s in standard time at
-- location.
function M.universal_from_standard(tee_rom_s, location)
return (tee_rom_s - M.zone(location))
end
-- TYPE (moment location) -> moment
-- Standard time from local tee_ell at location.
function M.standard_from_local(tee_ell, location)
return M.standard_from_universal(M.universal_from_local(tee_ell, location), location)
end
-- TYPE (moment location) -> moment
-- Local time from standard tee_rom-s at location.
function M.local_from_standard(tee_rom_s, location)
return M.local_from_universal(M.universal_from_standard(tee_rom_s, location), location)
end
-- TYPE moment -> fraction-of-day
-- Dynamical Time minus Universal Time (in days) for
-- moment tee. Adapted from "Astronomical Algorithms"
-- by Jean Meeus, Willmann-Bell (1991) for years
-- 1600-1986 and from polynomials on the NASA
-- Eclipse web site for other years.
function M.ephemeris_correction(tee)
local year = M.gregorian_year_from_fixed(math.floor(tee))
local c = (M.gregorian_date_difference(M.gregorian_date(1900, M.JANUARY, 1), M.gregorian_date(year, M.JULY, 1)) / 36525)
local c2051 = ((1 / 86400) * (-20 + (32 * (((year - 1820) / 100) ^ 2)) - (0.5628 * (2150 - year))))
local y2000 = (year - 2000)
local c2006 = ((1 / 86400) * M.poly(y2000, _list(62.92, 0.32217, 0.005589)))
local c1987 = ((1 / 86400) * M.poly(y2000, _list(63.86, 0.3345, -0.060374, 0.0017275, 0.000651814, 0.00002373599)))
local c1900 = M.poly(c, _list(-0.00002, 0.000297, 0.025184, -0.181133, 0.553040, -0.861938, 0.677066, -0.212591))
local c1800 = M.poly(c, _list(-0.000009, 0.003844, 0.083563, 0.865736, 4.867575, 15.845535, 31.332267, 38.291999, 28.316289, 11.636204, 2.043794))
local y1700 = (year - 1700)
local c1700 = ((1 / 86400) * M.poly(y1700, _list(8.118780842, -0.005092142, 0.003336121, -0.0000266484)))
local y1600 = (year - 1600)
local c1600 = ((1 / 86400) * M.poly(y1600, _list(120, -0.9808, -0.01532, 0.000140272128)))
local y1000 = ((year - 1000) / 100)
local c500 = ((1 / 86400) * M.poly(y1000, _list(1574.2, -556.01, 71.23472, 0.319781, -0.8503463, -0.005050998, 0.0083572073)))
local y0 = (year / 100)
local c0 = ((1 / 86400) * M.poly(y0, _list(10583.6, -1014.41, 33.78311, -5.952053, -0.1798452, 0.022174192, 0.0090316521)))
local y1820 = ((year - 1820) / 100)
local other = ((1 / 86400) * M.poly(y1820, _list(-20, 0, 32)))
if _truth(((2051 <= year) and (year <= 2150))) then
return c2051
elseif _truth(((2006 <= year) and (year <= 2050))) then
return c2006
elseif _truth(((1987 <= year) and (year <= 2005))) then
return c1987
elseif _truth(((1900 <= year) and (year <= 1986))) then
return c1900
elseif _truth(((1800 <= year) and (year <= 1899))) then
return c1800
elseif _truth(((1700 <= year) and (year <= 1799))) then
return c1700
elseif _truth(((1600 <= year) and (year <= 1699))) then
return c1600
elseif _truth(((500 <= year) and (year <= 1599))) then
return c500
elseif _truth(((-500 < year) and (year < 500))) then
return c0
else
return other
end
end
-- TYPE moment -> moment
-- Dynamical time at Universal moment tee_rom-u.
function M.dynamical_from_universal(tee_rom_u)
return (tee_rom_u + M.ephemeris_correction(tee_rom_u))
end
-- TYPE moment -> moment
-- Universal moment from Dynamical time tee.
function M.universal_from_dynamical(tee)
return (tee - M.ephemeris_correction(tee))
end
-- TYPE moment -> century
-- Julian centuries since 2000 at moment tee.
function M.julian_centuries(tee)
return ((M.dynamical_from_universal(tee) - M.J2000) / 36525)
end
-- TYPE moment
-- Noon at start of Gregorian year 2000.
M.J2000 = (M.hr(12) + M.gregorian_new_year(2000))
-- TYPE moment -> fraction-of-day
-- Equation of time (as fraction of day) for moment tee.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, p. 185.
function M.equation_of_time(tee)
local c = M.julian_centuries(tee)
local lambda = M.poly(c, M.deg(_list(280.46645, 36000.76983, 0.0003032)))
local anomaly = M.poly(c, M.deg(_list(357.52910, 35999.05030, -0.0001559, -0.00000048)))
local eccentricity = M.poly(c, _list(0.016708617, -0.000042037, -0.0000001236))
local varepsilon = M.obliquity(tee)
local y = (M.tan_degrees((varepsilon / 2)) ^ 2)
local equation = ((1 / 2 / math.pi) * ((y * M.sin_degrees((2 * lambda))) + (-2 * eccentricity * M.sin_degrees(anomaly)) + (4 * eccentricity * y * M.sin_degrees(anomaly) * M.cos_degrees((2 * lambda))) + (-0.5 * y * y * M.sin_degrees((4 * lambda))) + (-1.25 * eccentricity * eccentricity * M.sin_degrees((2 * anomaly)))))
return (M.sign(equation) * math.min(math.abs(equation), M.hr(12)))
end
-- TYPE (moment location) -> moment
-- Sundial time from local time tee_ell at location.
function M.apparent_from_local(tee_ell, location)
return (tee_ell + M.equation_of_time(M.universal_from_local(tee_ell, location)))
end
-- TYPE (moment location) -> moment
-- Local time from sundial time tee at location.
function M.local_from_apparent(tee, location)
return (tee - M.equation_of_time(M.universal_from_local(tee, location)))
end
-- TYPE (moment location) -> moment
-- True (apparent) time at universal time tee at location.
function M.apparent_from_universal(tee_rom_u, location)
return M.apparent_from_local(M.local_from_universal(tee_rom_u, location), location)
end
-- TYPE (moment location) -> moment
-- Universal time from sundial time tee at location.
function M.universal_from_apparent(tee, location)
return M.universal_from_local(M.local_from_apparent(tee, location), location)
end
-- TYPE (fixed-date location) -> moment
-- Universal time of true (apparent)
-- midnight of fixed date at location.
function M.midnight(date, location)
return M.universal_from_apparent(date, location)
end
-- TYPE (fixed-date location) -> moment
-- Universal time on fixed date of midday at location.
function M.midday(date, location)
return M.universal_from_apparent((date + M.hr(12)), location)
end
-- TYPE moment -> angle
-- Mean sidereal time of day from moment tee expressed
-- as hour angle. Adapted from "Astronomical Algorithms"
-- by Jean Meeus, Willmann-Bell, Inc., 2nd edn., 1998, p. 88.
function M.sidereal_from_moment(tee)
local c = ((tee - M.J2000) / 36525)
return (M.poly(c, M.deg(_list(280.46061837, (36525 * 360.98564736629), 0.000387933, (-1 / 38710000)))) % 360)
end
-- TYPE moment -> angle
-- Obliquity of ecliptic at moment tee.
function M.obliquity(tee)
local c = M.julian_centuries(tee)
return (M.angle(23, 26, 21.448) + M.poly(c, _list(0, M.angle(0, 0, -46.8150), M.angle(0, 0, -0.00059), M.angle(0, 0, 0.001813))))
end
-- TYPE (moment half-circle circle) -> angle
-- Declination at moment UT tee of object at
-- latitude beta and longitude lambda.
function M.declination(tee, beta, lambda)
local varepsilon = M.obliquity(tee)
return M.arcsin_degrees(((M.sin_degrees(beta) * M.cos_degrees(varepsilon)) + (M.cos_degrees(beta) * M.sin_degrees(varepsilon) * M.sin_degrees(lambda))))
end
-- TYPE (moment half-circle circle) -> angle
-- Right ascension at moment UT tee of object at
-- latitude beta and longitude lambda.
function M.right_ascension(tee, beta, lambda)
local varepsilon = M.obliquity(tee)
return M.arctan_degrees(((M.sin_degrees(lambda) * M.cos_degrees(varepsilon)) - (M.tan_degrees(beta) * M.sin_degrees(varepsilon))), M.cos_degrees(lambda))
end
-- TYPE duration
M.MEAN_TROPICAL_YEAR = 365.242189
-- TYPE duration
M.MEAN_SIDEREAL_YEAR = 365.25636
-- TYPE moment -> season
-- Longitude of sun at moment tee.
-- Adapted from "Planetary Programs and Tables from -4000
-- to +2800" by Pierre Bretagnon and Jean-Louis Simon,
-- Willmann-Bell, 1986.
function M.solar_longitude(tee)
local c = M.julian_centuries(tee)
local coefficients = _list(403406, 195207, 119433, 112392, 3891, 2819, 1721, 660, 350, 334, 314, 268, 242, 234, 158, 132, 129, 114, 99, 93, 86, 78, 72, 68, 64, 46, 38, 37, 32, 29, 28, 27, 27, 25, 24, 21, 21, 20, 18, 17, 14, 13, 13, 13, 12, 10, 10, 10, 10)
local multipliers = _list(0.9287892, 35999.1376958, 35999.4089666, 35998.7287385, 71998.20261, 71998.4403, 36000.35726, 71997.4812, 32964.4678, -19.4410, 445267.1117, 45036.8840, 3.1008, 22518.4434, -19.9739, 65928.9345, 9038.0293, 3034.7684, 33718.148, 3034.448, -2280.773, 29929.992, 31556.493, 149.588, 9037.750, 107997.405, -4444.176, 151.771, 67555.316, 31556.080, -4561.540, 107996.706, 1221.655, 62894.167, 31437.369, 14578.298, -31931.757, 34777.243, 1221.999, 62894.511, -4442.039, 107997.909, 119.066, 16859.071, -4.578, 26895.292, -39.127, 12297.536, 90073.778)
local addends = _list(270.54861, 340.19128, 63.91854, 331.26220, 317.843, 86.631, 240.052, 310.26, 247.23, 260.87, 297.82, 343.14, 166.79, 81.53, 3.50, 132.75, 182.95, 162.03, 29.8, 266.4, 249.2, 157.6, 257.8, 185.1, 69.9, 8.0, 197.1, 250.4, 65.3, 162.7, 341.5, 291.6, 98.5, 146.7, 110.0, 5.2, 342.6, 230.9, 256.1, 45.3, 242.9, 115.2, 151.8, 285.3, 53.3, 126.6, 205.7, 85.9, 146.1)
local lambda = (M.deg(282.7771834) + (M.deg(36000.76953744) * c) + (M.deg(0.000005729577951308232) * M.sigma(_list(coefficients, addends, multipliers), function(x, y, z) return (x * M.sin_degrees((y + (z * c)))) end)))
return ((lambda + M.aberration(tee) + M.nutation(tee)) % 360)
end
-- TYPE moment -> circle
-- Longitudinal nutation at moment tee.
function M.nutation(tee)
local c = M.julian_centuries(tee)
local cap_A = M.poly(c, M.deg(_list(124.90, -1934.134, 0.002063)))
local cap_B = M.poly(c, M.deg(_list(201.11, 72001.5377, 0.00057)))
return ((M.deg(-0.004778) * M.sin_degrees(cap_A)) + (M.deg(-0.0003667) * M.sin_degrees(cap_B)))
end
-- TYPE moment -> circle
-- Aberration at moment tee.
function M.aberration(tee)
local c = M.julian_centuries(tee)
return ((M.deg(0.0000974) * M.cos_degrees((M.deg(177.63) + (M.deg(35999.01848) * c)))) - M.deg(0.005575))
end
-- TYPE (season moment) -> moment
-- Moment UT of the first time at or after tee
-- when the solar longitude will be lambda degrees.
function M.solar_longitude_after(lambda, tee)
local rate = (M.MEAN_TROPICAL_YEAR / M.deg(360))
local tau = (tee + (rate * ((lambda - M.solar_longitude(tee)) % 360)))
local a = math.max(tee, (tau - 5))
local b = (tau + 5)
return M.invert_angular(M.solar_longitude, lambda, M.interval_closed(a, b))
end
-- TYPE (season gregorian-year) -> moment
-- Moment UT of season in Gregorian year g-year.
function M.season_in_gregorian(season, g_year)
local jan1 = M.gregorian_new_year(g_year)
return M.solar_longitude_after(season, jan1)
end
-- TYPE moment -> angle
-- Precession at moment tee using 0,0 as J2000 coordinates.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, pp. 136-137.
function M.precession(tee)
local c = M.julian_centuries(tee)
local eta = (M.poly(c, _list(0, M.secs(47.0029), M.secs(-0.03302), M.secs(0.000060))) % 360)
local cap_P = (M.poly(c, _list(M.deg(174.876384), M.secs(-869.8089), M.secs(0.03536))) % 360)
local p = (M.poly(c, _list(0, M.secs(5029.0966), M.secs(1.11113), M.secs(0.000006))) % 360)
local cap_A = (M.cos_degrees(eta) * M.sin_degrees(cap_P))
local cap_B = M.cos_degrees(cap_P)
local arg = M.arctan_degrees(cap_A, cap_B)
return (((p + cap_P) - arg) % 360)
end
-- TYPE moment -> angle
-- Sidereal solar longitude at moment tee
function M.sidereal_solar_longitude(tee)
return ((M.solar_longitude(tee) + (-M.precession(tee)) + M.SIDEREAL_START) % 360)
end
-- TYPE (moment location) -> half-circle
-- Geocentric altitude of sun at tee at location,
-- as a positive/negative angle in degrees, ignoring
-- parallax and refraction.
function M.solar_altitude(tee, location)
local phi = M.latitude(location)
local psi = M.longitude(location)
local lambda = M.solar_longitude(tee)
local alpha = M.right_ascension(tee, 0, lambda)
local delta = M.declination(tee, 0, lambda)
local theta0 = M.sidereal_from_moment(tee)
local cap_H = ((theta0 - (-psi) - alpha) % 360)
local altitude = M.arcsin_degrees(((M.sin_degrees(phi) * M.sin_degrees(delta)) + (M.cos_degrees(phi) * M.cos_degrees(delta) * M.cos_degrees(cap_H))))
return M.mod3(altitude, -180, 180)
end
-- TYPE (season moment) -> moment
-- Approximate moment at or before tee
-- when solar longitude just exceeded lambda degrees.
function M.estimate_prior_solar_longitude(lambda, tee)
local rate = (M.MEAN_TROPICAL_YEAR / M.deg(360))
local tau = (tee - (rate * ((M.solar_longitude(tee) - lambda) % 360)))
local cap_Delta = M.mod3((M.solar_longitude(tau) - lambda), -180, 180)
return math.min(tee, (tau - (rate * cap_Delta)))
end
-- TYPE duration
M.MEAN_SYNODIC_MONTH = 29.530588861
-- TYPE integer -> moment
-- Moment of n-th new moon after (or before) the new moon
-- of January 11, 1. Adapted from "Astronomical Algorithms"
-- by Jean Meeus, Willmann-Bell, corrected 2nd edn., 2005.
function M.nth_new_moon(n)
local n0 = 24724
local k = (n - n0)
local c = (k / 1236.85)
local approx = (M.J2000 + M.poly(c, _list(5.09766, (M.MEAN_SYNODIC_MONTH * 1236.85), 0.00015437, -0.000000150, 0.00000000073)))
local cap_E = M.poly(c, _list(1, -0.002516, -0.0000074))
local solar_anomaly = M.poly(c, M.deg(_list(2.5534, (1236.85 * 29.10535670), -0.0000014, -0.00000011)))
local lunar_anomaly = M.poly(c, M.deg(_list(201.5643, (385.81693528 * 1236.85), 0.0107582, 0.00001238, -0.000000058)))
local moon_argument = M.poly(c, M.deg(_list(160.7108, (390.67050284 * 1236.85), -0.0016118, -0.00000227, 0.000000011)))
local cap_omega = M.poly(c, M.deg(_list(124.7746, (-1.56375588 * 1236.85), 0.0020672, 0.00000215)))
local E_factor = _list(0, 1, 0, 0, 1, 1, 2, 0, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
local solar_coeff = _list(0, 1, 0, 0, -1, 1, 2, 0, 0, 1, 0, 1, 1, -1, 2, 0, 3, 1, 0, 1, -1, -1, 1, 0)
local lunar_coeff = _list(1, 0, 2, 0, 1, 1, 0, 1, 1, 2, 3, 0, 0, 2, 1, 2, 0, 1, 2, 1, 1, 1, 3, 4)
local moon_coeff = _list(0, 0, 0, 2, 0, 0, 0, -2, 2, 0, 0, 2, -2, 0, 0, -2, 0, -2, 2, 2, 2, -2, 0, 0)
local sine_coeff = _list(-0.40720, 0.17241, 0.01608, 0.01039, 0.00739, -0.00514, 0.00208, -0.00111, -0.00057, 0.00056, -0.00042, 0.00042, 0.00038, -0.00024, -0.00007, 0.00004, 0.00004, 0.00003, 0.00003, -0.00003, 0.00003, -0.00002, -0.00002, 0.00002)
local correction = ((-0.00017 * M.sin_degrees(cap_omega)) + M.sigma(_list(sine_coeff, E_factor, solar_coeff, lunar_coeff, moon_coeff), function(v, w, x, y, z) return (v * (cap_E ^ w) * M.sin_degrees(((x * solar_anomaly) + (y * lunar_anomaly) + (z * moon_argument)))) end))
local add_const = _list(251.88, 251.83, 349.42, 84.66, 141.74, 207.14, 154.84, 34.52, 207.19, 291.34, 161.72, 239.56, 331.55)
local add_coeff = _list(0.016321, 26.651886, 36.412478, 18.206239, 53.303771, 2.453732, 7.306860, 27.261239, 0.121824, 1.844379, 24.198154, 25.513099, 3.592518)
local add_factor = _list(0.000165, 0.000164, 0.000126, 0.000110, 0.000062, 0.000060, 0.000056, 0.000047, 0.000042, 0.000040, 0.000037, 0.000035, 0.000023)
local extra = (0.000325 * M.sin_degrees(M.poly(c, M.deg(_list(299.77, 132.8475848, -0.009173)))))
local additional = M.sigma(_list(add_const, add_coeff, add_factor), function(i, j, l) return (l * M.sin_degrees((i + (j * k)))) end)
return M.universal_from_dynamical((approx + correction + extra + additional))
end
-- TYPE moment -> moment
-- Moment UT of last new moon before tee.
function M.new_moon_before(tee)
local t0 = M.nth_new_moon(0)
local phi = M.lunar_phase(tee)
local n = _round((((tee - t0) / M.MEAN_SYNODIC_MONTH) - (phi / M.deg(360))))
return M.nth_new_moon(M.final((n - 1), function(k) return _truth(((M.nth_new_moon(k) < tee))) end))
end
-- TYPE moment -> moment
-- Moment UT of first new moon at or after tee.
function M.new_moon_at_or_after(tee)
local t0 = M.nth_new_moon(0)
local phi = M.lunar_phase(tee)
local n = _round((((tee - t0) / M.MEAN_SYNODIC_MONTH) - (phi / M.deg(360))))
return M.nth_new_moon(M.next(n, function(k) return _truth(((M.nth_new_moon(k) >= tee))) end))
end
-- TYPE moment -> angle
-- Longitude of moon (in degrees) at moment tee.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, pp. 338-342.
function M.lunar_longitude(tee)
local c = M.julian_centuries(tee)
local cap_L_prime = M.mean_lunar_longitude(c)
local cap_D = M.lunar_elongation(c)
local cap_M = M.solar_anomaly(c)
local cap_M_prime = M.lunar_anomaly(c)
local cap_F = M.moon_node(c)
local cap_E = M.poly(c, _list(1, -0.002516, -0.0000074))
local args_lunar_elongation = _list(0, 2, 2, 0, 0, 0, 2, 2, 2, 2, 0, 1, 0, 2, 0, 0, 4, 0, 4, 2, 2, 1, 1, 2, 2, 4, 2, 0, 2, 2, 1, 2, 0, 0, 2, 2, 2, 4, 0, 3, 2, 4, 0, 2, 2, 2, 4, 0, 4, 1, 2, 0, 1, 3, 4, 2, 0, 1, 2)
local args_solar_anomaly = _list(0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, -2, 1, 2, -2, 0, 0, -1, 0, 0, 1, -1, 2, 2, 1, -1, 0, 0, -1, 0, 1, 0, 1, 0, 0, -1, 2, 1, 0)
local args_lunar_anomaly = _list(1, -1, 0, 2, 0, 0, -2, -1, 1, 0, -1, 0, 1, 0, 1, 1, -1, 3, -2, -1, 0, -1, 0, 1, 2, 0, -3, -2, -1, -2, 1, 0, 2, 0, -1, 1, 0, -1, 2, -1, 1, -2, -1, -1, -2, 0, 1, 4, 0, -2, 0, 2, 1, -2, -3, 2, 1, -1, 3)
local args_moon_node = _list(0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, -2, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, -2, 2, 0, 2, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, -2, -2, 0, 0, 0, 0, 0, 0, 0)
local sine_coeff = _list(6288774, 1274027, 658314, 213618, -185116, -114332, 58793, 57066, 53322, 45758, -40923, -34720, -30383, 15327, -12528, 10980, 10675, 10034, 8548, -7888, -6766, -5163, 4987, 4036, 3994, 3861, 3665, -2689, -2602, 2390, -2348, 2236, -2120, -2069, 2048, -1773, -1595, 1215, -1110, -892, -810, 759, -713, -700, 691, 596, 549, 537, 520, -487, -399, -381, 351, -340, 330, 327, -323, 299, 294)
local correction = (M.deg((1 / 1000000)) * M.sigma(_list(sine_coeff, args_lunar_elongation, args_solar_anomaly, args_lunar_anomaly, args_moon_node), function(v, w, x, y, z) return (v * (cap_E ^ math.abs(x)) * M.sin_degrees(((w * cap_D) + (x * cap_M) + (y * cap_M_prime) + (z * cap_F)))) end))
local venus = (M.deg((3958 / 1000000)) * M.sin_degrees((M.deg(119.75) + (c * M.deg(131.849)))))
local jupiter = (M.deg((318 / 1000000)) * M.sin_degrees((M.deg(53.09) + (c * M.deg(479264.29)))))
local flat_earth = (M.deg((1962 / 1000000)) * M.sin_degrees((cap_L_prime - cap_F)))
return ((cap_L_prime + correction + venus + jupiter + flat_earth + M.nutation(tee)) % 360)
end
-- TYPE century -> angle
-- Mean longitude of moon (in degrees) at moment
-- given in Julian centuries c.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, pp. 337-340.
function M.mean_lunar_longitude(c)
return (M.poly(c, M.deg(_list(218.3164477, 481267.88123421, -0.0015786, (1 / 538841), (-1 / 65194000)))) % 360)
end
-- TYPE century -> angle
-- Elongation of moon (in degrees) at moment
-- given in Julian centuries c.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, p. 338.
function M.lunar_elongation(c)
return (M.poly(c, M.deg(_list(297.8501921, 445267.1114034, -0.0018819, (1 / 545868), (-1 / 113065000)))) % 360)
end
-- TYPE century -> angle
-- Mean anomaly of sun (in degrees) at moment
-- given in Julian centuries c.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, p. 338.
function M.solar_anomaly(c)
return (M.poly(c, M.deg(_list(357.5291092, 35999.0502909, -0.0001536, (1 / 24490000)))) % 360)
end
-- TYPE century -> angle
-- Mean anomaly of moon (in degrees) at moment
-- given in Julian centuries c.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, p. 338.
function M.lunar_anomaly(c)
return (M.poly(c, M.deg(_list(134.9633964, 477198.8675055, 0.0087414, (1 / 69699), (-1 / 14712000)))) % 360)
end
-- TYPE century -> angle
-- Moon’s argument of latitude (in degrees) at moment
-- given in Julian centuries c.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, p. 338.
function M.moon_node(c)
return (M.poly(c, M.deg(_list(93.2720950, 483202.0175233, -0.0036539, (-1 / 3526000), (1 / 863310000)))) % 360)
end
-- TYPE fixed-date -> angle
-- Angular distance of the lunar node from the equinoctial
-- point on fixed date.
function M.lunar_node(date)
return M.mod3((M.moon_node(M.julian_centuries(date))), -90, 90)
end
-- TYPE moment -> angle
-- Sidereal lunar longitude at moment tee.
function M.sidereal_lunar_longitude(tee)
return ((M.lunar_longitude(tee) + (-M.precession(tee)) + M.SIDEREAL_START) % 360)
end
-- TYPE moment -> phase
-- Lunar phase, as an angle in degrees, at moment tee.
-- An angle of 0 means a new moon, 90 degrees means the
-- first quarter, 180 means a full moon, and 270 degrees
-- means the last quarter.
function M.lunar_phase(tee)
local phi = ((M.lunar_longitude(tee) - M.solar_longitude(tee)) % 360)
local t0 = M.nth_new_moon(0)
local n = _round(((tee - t0) / M.MEAN_SYNODIC_MONTH))
local phi_prime = (M.deg(360) * (((tee - M.nth_new_moon(n)) / M.MEAN_SYNODIC_MONTH) % 1))
if _truth(((math.abs((phi - phi_prime)) > M.deg(180)))) then
return phi_prime
else
return phi
end
end
-- TYPE (phase moment) -> moment
-- Moment UT of the last time at or before tee
-- when the lunar-phase was phi degrees.
function M.lunar_phase_at_or_before(phi, tee)
local tau = (tee - (M.MEAN_SYNODIC_MONTH * (1 / M.deg(360)) * ((M.lunar_phase(tee) - phi) % 360)))
local a = (tau - 2)
local b = math.min(tee, (tau + 2))
return M.invert_angular(M.lunar_phase, phi, M.interval_closed(a, b))
end
-- TYPE (phase moment) -> moment
-- Moment UT of the next time at or after tee
-- when the lunar-phase is phi degrees.
function M.lunar_phase_at_or_after(phi, tee)
local tau = (tee + (M.MEAN_SYNODIC_MONTH * (1 / M.deg(360)) * ((phi - M.lunar_phase(tee)) % 360)))
local a = math.max(tee, (tau - 2))
local b = (tau + 2)
return M.invert_angular(M.lunar_phase, phi, M.interval_closed(a, b))
end
-- TYPE phase
-- Excess of lunar longitude over solar longitude at new
-- moon.
M.NEW = M.deg(0)
-- TYPE phase
-- Excess of lunar longitude over solar longitude at full
-- moon.
M.FULL = M.deg(180)
-- TYPE phase
-- Excess of lunar longitude over solar longitude at first
-- quarter moon.
M.FIRST_QUARTER = M.deg(90)
-- TYPE phase
-- Excess of lunar longitude over solar longitude at last
-- quarter moon.
M.LAST_QUARTER = M.deg(270)
-- TYPE moment -> half-circle
-- Latitude of moon (in degrees) at moment tee.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, pp. 338-342.
function M.lunar_latitude(tee)
local c = M.julian_centuries(tee)
local cap_L_prime = M.mean_lunar_longitude(c)
local cap_D = M.lunar_elongation(c)
local cap_M = M.solar_anomaly(c)
local cap_M_prime = M.lunar_anomaly(c)
local cap_F = M.moon_node(c)
local cap_E = M.poly(c, _list(1, -0.002516, -0.0000074))
local args_lunar_elongation = _list(0, 0, 0, 2, 2, 2, 2, 0, 2, 0, 2, 2, 2, 2, 2, 2, 2, 0, 4, 0, 0, 0, 1, 0, 0, 0, 1, 0, 4, 4, 0, 4, 2, 2, 2, 2, 0, 2, 2, 2, 2, 4, 2, 2, 0, 2, 1, 1, 0, 2, 1, 2, 0, 4, 4, 1, 4, 1, 4, 2)
local args_solar_anomaly = _list(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 1, -1, -1, -1, 1, 0, 1, 0, 1, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 1, 0, -1, -2, 0, 1, 1, 1, 1, 1, 0, -1, 1, 0, -1, 0, 0, 0, -1, -2)
local args_lunar_anomaly = _list(0, 1, 1, 0, -1, -1, 0, 2, 1, 2, 0, -2, 1, 0, -1, 0, -1, -1, -1, 0, 0, -1, 0, 1, 1, 0, 0, 3, 0, -1, 1, -2, 0, 2, 1, -2, 3, 2, -3, -1, 0, 0, 1, 0, 1, 1, 0, 0, -2, -1, 1, -2, 2, -2, -1, 1, 1, -1, 0, 0)
local args_moon_node = _list(1, 1, -1, -1, 1, -1, 1, 1, -1, -1, -1, -1, 1, -1, 1, 1, -1, -1, -1, 1, 3, 1, 1, 1, -1, -1, -1, 1, -1, 1, -3, 1, -3, -1, -1, 1, -1, 1, -1, 1, 1, 1, 1, -1, 3, -1, -1, 1, -1, -1, 1, -1, 1, -1, -1, -1, -1, -1, -1, 1)
local sine_coeff = _list(5128122, 280602, 277693, 173237, 55413, 46271, 32573, 17198, 9266, 8822, 8216, 4324, 4200, -3359, 2463, 2211, 2065, -1870, 1828, -1794, -1749, -1565, -1491, -1475, -1410, -1344, -1335, 1107, 1021, 833, 777, 671, 607, 596, 491, -451, 439, 422, 421, -366, -351, 331, 315, 302, -283, -229, 223, 223, -220, -220, -185, 181, -177, 176, 166, -164, 132, -119, 115, 107)
local beta = (M.deg((1 / 1000000)) * M.sigma(_list(sine_coeff, args_lunar_elongation, args_solar_anomaly, args_lunar_anomaly, args_moon_node), function(v, w, x, y, z) return (v * (cap_E ^ math.abs(x)) * M.sin_degrees(((w * cap_D) + (x * cap_M) + (y * cap_M_prime) + (z * cap_F)))) end))
local venus = (M.deg((175 / 1000000)) * (M.sin_degrees((M.deg(119.75) + (c * M.deg(131.849)) + cap_F)) + M.sin_degrees((M.deg(119.75) + (c * M.deg(131.849)) + (-cap_F)))))
local flat_earth = ((M.deg((-2235 / 1000000)) * M.sin_degrees(cap_L_prime)) + (M.deg((127 / 1000000)) * M.sin_degrees((cap_L_prime - cap_M_prime))) + (M.deg((-115 / 1000000)) * M.sin_degrees((cap_L_prime + cap_M_prime))))
local extra = (M.deg((382 / 1000000)) * M.sin_degrees((M.deg(313.45) + (c * M.deg(481266.484)))))
return (beta + venus + flat_earth + extra)
end
-- TYPE (moment location) -> half-circle
-- Geocentric altitude of moon at tee at location,
-- as a small positive/negative angle in degrees, ignoring
-- parallax and refraction. Adapted from "Astronomical
-- Algorithms" by Jean Meeus, Willmann-Bell, 2nd edn.,
-- 1998.
function M.lunar_altitude(tee, location)
local phi = M.latitude(location)
local psi = M.longitude(location)
local lambda = M.lunar_longitude(tee)
local beta = M.lunar_latitude(tee)
local alpha = M.right_ascension(tee, beta, lambda)
local delta = M.declination(tee, beta, lambda)
local theta0 = M.sidereal_from_moment(tee)
local cap_H = ((theta0 - (-psi) - alpha) % 360)
local altitude = M.arcsin_degrees(((M.sin_degrees(phi) * M.sin_degrees(delta)) + (M.cos_degrees(phi) * M.cos_degrees(delta) * M.cos_degrees(cap_H))))
return M.mod3(altitude, -180, 180)
end
-- TYPE moment -> distance
-- Distance to moon (in meters) at moment tee.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998, pp. 338-342.
function M.lunar_distance(tee)
local c = M.julian_centuries(tee)
local cap_D = M.lunar_elongation(c)
local cap_M = M.solar_anomaly(c)
local cap_M_prime = M.lunar_anomaly(c)
local cap_F = M.moon_node(c)
local cap_E = M.poly(c, _list(1, -0.002516, -0.0000074))
local args_lunar_elongation = _list(0, 2, 2, 0, 0, 0, 2, 2, 2, 2, 0, 1, 0, 2, 0, 0, 4, 0, 4, 2, 2, 1, 1, 2, 2, 4, 2, 0, 2, 2, 1, 2, 0, 0, 2, 2, 2, 4, 0, 3, 2, 4, 0, 2, 2, 2, 4, 0, 4, 1, 2, 0, 1, 3, 4, 2, 0, 1, 2, 2)
local args_solar_anomaly = _list(0, 0, 0, 0, 1, 0, 0, -1, 0, -1, 1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 1, -1, 0, 0, 0, 1, 0, -1, 0, -2, 1, 2, -2, 0, 0, -1, 0, 0, 1, -1, 2, 2, 1, -1, 0, 0, -1, 0, 1, 0, 1, 0, 0, -1, 2, 1, 0, 0)
local args_lunar_anomaly = _list(1, -1, 0, 2, 0, 0, -2, -1, 1, 0, -1, 0, 1, 0, 1, 1, -1, 3, -2, -1, 0, -1, 0, 1, 2, 0, -3, -2, -1, -2, 1, 0, 2, 0, -1, 1, 0, -1, 2, -1, 1, -2, -1, -1, -2, 0, 1, 4, 0, -2, 0, 2, 1, -2, -3, 2, 1, -1, 3, -1)
local args_moon_node = _list(0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, -2, 2, -2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, -2, 2, 0, 2, 0, 0, 0, 0, 0, 0, -2, 0, 0, 0, 0, -2, -2, 0, 0, 0, 0, 0, 0, 0, -2)
local cosine_coeff = _list(-20905355, -3699111, -2955968, -569925, 48888, -3149, 246158, -152138, -170733, -204586, -129620, 108743, 104755, 10321, 0, 79661, -34782, -23210, -21636, 24208, 30824, -8379, -16675, -12831, -10445, -11650, 14403, -7003, 0, 10056, 6322, -9884, 5751, 0, -4950, 4130, 0, -3958, 0, 3258, 2616, -1897, -2117, 2354, 0, 0, -1423, -1117, -1571, -1739, 0, -4421, 0, 0, 0, 0, 1165, 0, 0, 8752)
local correction = M.sigma(_list(cosine_coeff, args_lunar_elongation, args_solar_anomaly, args_lunar_anomaly, args_moon_node), function(v, w, x, y, z) return (v * (cap_E ^ math.abs(x)) * M.cos_degrees(((w * cap_D) + (x * cap_M) + (y * cap_M_prime) + (z * cap_F)))) end)
return (M.mt(385000560) + correction)
end
-- TYPE (moment location) -> angle
-- Parallax of moon at tee at location.
-- Adapted from "Astronomical Algorithms" by Jean Meeus,
-- Willmann-Bell, 2nd edn., 1998.
function M.lunar_parallax(tee, location)
local geo = M.lunar_altitude(tee, location)
local cap_Delta = M.lunar_distance(tee)
local alt = (M.mt(6378140) / cap_Delta)
local arg = (alt * M.cos_degrees(geo))
return M.arcsin_degrees(arg)
end
-- TYPE (moment location) -> half-circle
-- Topocentric altitude of moon at tee at location,
-- as a small positive/negative angle in degrees,
-- ignoring refraction.
function M.topocentric_lunar_altitude(tee, location)
return (M.lunar_altitude(tee, location) - M.lunar_parallax(tee, location))
end
-- TYPE (moment location half-circle boolean) -> moment
-- Moment in local time near tee when depression angle
-- of sun is alpha (negative if above horizon) at
-- location; early? is true when morning event is sought
-- and false for evening. Returns bogus if depression
-- angle is not reached.
function M.approx_moment_of_depression(tee, location, alpha, early_p)
local try = M.sine_offset(tee, location, alpha)
local date = M.fixed_from_moment(tee)
local alt = (function() if _truth(((alpha >= 0))) then return (function() if _truth(early_p) then return date else return (date + 1) end end)() else return (date + M.hr(12)) end end)()
local value = (function() if _truth(((math.abs(try) > 1))) then return M.sine_offset(alt, location, alpha) else return try end end)()
if _truth(((math.abs(value) <= 1))) then
local offset = M.mod3((M.arcsin_degrees(value) / M.deg(360)), M.hr(-12), M.hr(12))
return M.local_from_apparent((date + (function() if _truth(early_p) then return (M.hr(6) - offset) else return (M.hr(18) + offset) end end)()), location)
else
return M.BOGUS
end
end
-- TYPE (moment location half-circle) -> real
-- Sine of angle between position of sun at
-- local time tee and
-- when its depression is alpha at location.
-- Out of range when it does not occur.
function M.sine_offset(tee, location, alpha)
local phi = M.latitude(location)
local tee_prime = M.universal_from_local(tee, location)
local delta = M.declination(tee_prime, M.deg(0), M.solar_longitude(tee_prime))
return ((M.tan_degrees(phi) * M.tan_degrees(delta)) + (M.sin_degrees(alpha) / (M.cos_degrees(delta) * M.cos_degrees(phi))))
end
-- TYPE (moment location half-circle boolean) -> moment
-- Moment in local time near approx when depression
-- angle of sun is alpha (negative if above horizon) at
-- location; early? is true when morning event is
-- sought, and false for evening.
-- Returns bogus if depression angle is not reached.
function M.moment_of_depression(approx, location, alpha, early_p)
local tee = M.approx_moment_of_depression(approx, location, alpha, early_p)
if _truth(_equal(tee, M.BOGUS)) then
return M.BOGUS
else
if _truth(((math.abs((approx - tee)) < M.sec(30)))) then
return tee
else
return M.moment_of_depression(tee, location, alpha, early_p)
end
end
end
-- TYPE boolean
-- Signifies morning.
M.MORNING = true
-- TYPE (fixed-date location half-circle) -> moment
-- Standard time in morning on fixed date at
-- location when depression angle of sun is alpha.
-- Returns bogus if there is no dawn on date.
function M.dawn(date, location, alpha)
local result = M.moment_of_depression((date + M.hr(6)), location, alpha, M.MORNING)
if _truth(_equal(result, M.BOGUS)) then
return M.BOGUS
else
return M.standard_from_local(result, location)
end
end
-- TYPE boolean
-- Signifies evening.
M.EVENING = false
-- TYPE (fixed-date location half-circle) -> moment
-- Standard time in evening on fixed date at
-- location when depression angle of sun is alpha.
-- Returns bogus if there is no dusk on date.
function M.dusk(date, location, alpha)
local result = M.moment_of_depression((date + M.hr(18)), location, alpha, M.EVENING)
if _truth(_equal(result, M.BOGUS)) then
return M.BOGUS
else
return M.standard_from_local(result, location)
end
end
-- TYPE (moment location) -> half-circle
-- Refraction angle at moment tee at location.
-- The moment is not used.
function M.refraction(tee, location)
local h = math.max(M.mt(0), M.elevation(location))
local cap_R = M.mt(6.372e6)
local dip = M.arccos_degrees((cap_R / (cap_R + h)))
return (M.mins(34) + dip + (M.secs(19) * math.sqrt(h)))
end
-- TYPE (fixed-date location) -> moment
-- Standard time of sunrise on fixed date at
-- location.
function M.sunrise(date, location)
local alpha = (M.refraction((date + M.hr(6)), location) + M.mins(16))
return M.dawn(date, location, alpha)
end
-- TYPE (fixed-date location) -> moment
-- Standard time of sunset on fixed date at
-- location.
function M.sunset(date, location)
local alpha = (M.refraction((date + M.hr(18)), location) + M.mins(16))
return M.dusk(date, location, alpha)
end
-- TYPE (fixed-date location) -> moment
-- Standard time of end of Jewish sabbath on fixed date
-- at location (as per Berthold Cohn).
function M.jewish_sabbath_ends(date, location)
return M.dusk(date, location, M.angle(7, 5, 0))
end
-- TYPE (fixed-date location) -> moment
-- Standard time of Jewish dusk on fixed date
-- at location (as per Vilna Gaon).
function M.jewish_dusk(date, location)
return M.dusk(date, location, M.angle(4, 40, 0))
end
-- TYPE (moment location) -> half-circle
-- Observed altitude of upper limb of moon at tee at location
-- as a small positive/negative angle in degrees, including
-- refraction and elevation.
function M.observed_lunar_altitude(tee, location)
return (M.topocentric_lunar_altitude(tee, location) + M.refraction(tee, location) + M.mins(16))
end
-- TYPE (fixed-date location) -> moment
-- Standard time of moonrise on fixed date at location.
-- Returns bogus if there is no moonrise on date.
function M.moonrise(date, location)
local tee = M.universal_from_standard(date, location)
local waning = ((M.lunar_phase(tee) > M.deg(180)))
local alt = M.observed_lunar_altitude(tee, location)
local lat = M.latitude(location)
local offset = (alt / (4 * (M.deg(90) - math.abs(lat))))
local approx = (function() if _truth(waning) then return (function() if _truth(((offset > 0))) then return (tee - -1 - offset) else return (tee - offset) end end)() else return (tee + (1 / 2) + offset) end end)()
local rise = M.binary_search((approx - M.hr(6)), (approx + M.hr(6)), function(x) local l, h = 0, 0; return _truth(((M.observed_lunar_altitude(x, location) > M.deg(0)))) end, function(l, h) local x = (l + h) / 2; return _truth((((h - l) < M.mn(1)))) end)
if _truth(((rise < (tee + 1)))) then
return math.max(M.standard_from_universal(rise, location), date)
else
return M.BOGUS
end
end
-- TYPE (fixed-date location) -> moment
-- Standard time of moonset on fixed date at location.
-- Returns bogus if there is no moonset on date.
function M.moonset(date, location)
local tee = M.universal_from_standard(date, location)
local waxing = ((M.lunar_phase(tee) < M.deg(180)))
local alt = M.observed_lunar_altitude(tee, location)
local lat = M.latitude(location)
local offset = (alt / (4 * (M.deg(90) - math.abs(lat))))
local approx = (function() if _truth(waxing) then return (function() if _truth(((offset > 0))) then return (tee + offset) else return (tee + 1 + offset) end end)() else return (tee - offset - (-1 / 2)) end end)()
local set = M.binary_search((approx - M.hr(6)), (approx + M.hr(6)), function(x) local l, h = 0, 0; return _truth(((M.observed_lunar_altitude(x, location) < M.deg(0)))) end, function(l, h) local x = (l + h) / 2; return _truth((((h - l) < M.mn(1)))) end)
if _truth(((set < (tee + 1)))) then
return math.max(M.standard_from_universal(set, location), date)
else
return M.BOGUS
end
end
-- TYPE location
-- Location of Padua, Italy.
M.PADUA = M.location(M.angle(45, 24, 28), M.angle(11, 53, 9), M.mt(18), M.hr(1))
-- TYPE moment -> moment
-- Local time of dusk in Padua, Italy on date of moment tee.
function M.local_zero_hour(tee)
local date = M.fixed_from_moment(tee)
return M.local_from_standard((M.dusk(date, M.PADUA, M.angle(0, 16, 0)) + M.mn(30)), M.PADUA)
end
-- TYPE moment -> moment
-- Local time corresponding to Italian time tee.
function M.local_from_italian(tee)
local date = M.fixed_from_moment(tee)
local z = M.local_zero_hour((tee - 1))
return (tee - (date - z))
end
-- TYPE moment -> moment
-- Italian time corresponding to local time tee_ell.
function M.italian_from_local(tee_ell)
local date = M.fixed_from_moment(tee_ell)
local z0 = M.local_zero_hour((tee_ell - 1))
local z = M.local_zero_hour(tee_ell)
if _truth(((tee_ell > z))) then
return (tee_ell + (date - -1 - z))
else
return (tee_ell + (date - z0))
end
end
-- TYPE (fixed-date location) -> real
-- Length of daytime temporal hour on fixed date at location
-- Returns bogus if there no sunrise or sunset on date.
function M.daytime_temporal_hour(date, location)
if _truth((_truth(_equal(M.sunrise(date, location), M.BOGUS)) or _truth(_equal(M.sunset(date, location), M.BOGUS)))) then
return M.BOGUS
else
return ((M.sunset(date, location) - M.sunrise(date, location)) / 12)
end
end
-- TYPE (fixed-date location) -> real
-- Length of nighttime temporal hour on fixed date at location
-- Returns bogus if there no sunrise or sunset on date.
function M.nighttime_temporal_hour(date, location)
if _truth((_truth(_equal(M.sunrise((date + 1), location), M.BOGUS)) or _truth(_equal(M.sunset(date, location), M.BOGUS)))) then
return M.BOGUS
else
return ((M.sunrise((date + 1), location) - M.sunset(date, location)) / 12)
end
end
-- TYPE (moment location) -> moment
-- Standard time of temporal moment tee at location.
-- Returns bogus if temporal hour is undefined that day.
function M.standard_from_sundial(tee, location)
local date = M.fixed_from_moment(tee)
local hour = (24 * M.time_from_moment(tee))
local h = (function() if _truth(((6 <= hour) and (hour <= 18))) then return M.daytime_temporal_hour(date, location) elseif _truth(((hour < 6))) then return M.nighttime_temporal_hour((date - 1), location) else return M.nighttime_temporal_hour(date, location) end end)()
if _truth(_equal(h, M.BOGUS)) then
return M.BOGUS
elseif _truth(((6 <= hour) and (hour <= 18))) then
return (M.sunrise(date, location) + ((hour - 6) * h))
elseif _truth(((hour < 6))) then
return (M.sunset((date - 1), location) + ((hour + 6) * h))
else
return (M.sunset(date, location) + ((hour - 18) * h))
end
end
-- TYPE (fixed-date location) -> moment
-- Standard time on fixed date at location of end of
-- morning according to Jewish ritual.
function M.jewish_morning_end(date, location)
return M.standard_from_sundial((date + M.hr(10)), location)
end
-- TYPE (fixed-date location) -> moment
-- Standard time of asr on fixed date at location.
-- According to Hanafi rule.
-- Returns bogus is no asr occurs.
function M.asr(date, location)
local noon = M.midday(date, location)
local phi = M.latitude(location)
local delta = M.declination(noon, M.deg(0), M.solar_longitude(noon))
local altitude = M.arcsin_degrees(((M.cos_degrees(delta) * M.cos_degrees(phi)) + (M.sin_degrees(delta) * M.sin_degrees(phi))))
local h = M.mod3(M.arctan_degrees(M.tan_degrees(altitude), ((2 * M.tan_degrees(altitude)) + 1)), -90, 90)
if _truth(((altitude <= M.deg(0)))) then
return M.BOGUS
else
return M.dusk(date, location, (-h))
end
end
-- TYPE (fixed-date location) -> moment
-- Standard time of asr on fixed date at location.
-- According to Shafi’i rule.
-- Returns bogus is no asr occurs.
function M.alt_asr(date, location)
local noon = M.midday(date, location)
local phi = M.latitude(location)
local delta = M.declination(noon, M.deg(0), M.solar_longitude(noon))
local altitude = M.arcsin_degrees(((M.cos_degrees(delta) * M.cos_degrees(phi)) + (M.sin_degrees(delta) * M.sin_degrees(phi))))
local h = M.mod3(M.arctan_degrees(M.tan_degrees(altitude), (M.tan_degrees(altitude) + 1)), -90, 90)
if _truth(((altitude <= M.deg(0)))) then
return M.BOGUS
else
return M.dusk(date, location, (-h))
end
end
-- TYPE moment -> half-circle
-- Angular separation of sun and moon
-- at moment tee.
function M.arc_of_light(tee)
return M.arccos_degrees((M.cos_degrees(M.lunar_latitude(tee)) * M.cos_degrees(M.lunar_phase(tee))))
end
-- TYPE (fixed-date location) -> moment
-- Best viewing time (UT) in the evening.
-- Simple version.
function M.simple_best_view(date, location)
local dark = M.dusk(date, location, M.deg(4.5))
local best = (function() if _truth(_equal(dark, M.BOGUS)) then return (date + 1) else return dark end end)()
return M.universal_from_standard(best, location)
end
-- TYPE (fixed-date location) -> boolean
-- S. K. Shaukat’s criterion for likely
-- visibility of crescent moon on eve of date at location.
-- Not intended for high altitudes or polar regions.
function M.shaukat_criterion(date, location)
local tee = M.simple_best_view((date - 1), location)
local phase = M.lunar_phase(tee)
local h = M.lunar_altitude(tee, location)
local cap_ARCL = M.arc_of_light(tee)
return (_truth(((M.NEW < phase) and (phase < M.FIRST_QUARTER))) and _truth(((M.deg(10.6) <= cap_ARCL) and (cap_ARCL <= M.deg(90)))) and _truth(((h > M.deg(4.1)))))
end
-- TYPE (moment location) -> half-circle
-- Angular difference in altitudes of sun and moon
-- at moment tee at location.
function M.arc_of_vision(tee, location)
return (M.lunar_altitude(tee, location) - M.solar_altitude(tee, location))
end
-- TYPE (fixed-date location) -> moment
-- Best viewing time (UT) in the evening.
-- Yallop version, per Bruin (1977).
function M.bruin_best_view(date, location)
local sun = M.sunset(date, location)
local moon = M.moonset(date, location)
local best = (function() if _truth((_truth(_equal(sun, M.BOGUS)) or _truth(_equal(moon, M.BOGUS)))) then return (date + 1) else return (((5 / 9) * sun) + ((4 / 9) * moon)) end end)()
return M.universal_from_standard(best, location)
end
-- TYPE (fixed-date location) -> boolean
-- B. D. Yallop’s criterion for possible
-- visibility of crescent moon on eve of date at location.
-- Not intended for high altitudes or polar regions.
function M.yallop_criterion(date, location)
local tee = M.bruin_best_view((date - 1), location)
local phase = M.lunar_phase(tee)
local cap_D = M.lunar_semi_diameter(tee, location)
local cap_ARCL = M.arc_of_light(tee)
local cap_W = (cap_D * (1 - M.cos_degrees(cap_ARCL)))
local cap_ARCV = M.arc_of_vision(tee, location)
local e = -0.14
local q1 = M.poly(cap_W, _list(11.8371, -6.3226, 0.7319, -0.1018))
return (_truth(((M.NEW < phase) and (phase < M.FIRST_QUARTER))) and _truth(((cap_ARCV > (q1 + e)))))
end
-- TYPE (moment location) -> half-circle
-- Topocentric lunar semi-diameter at moment tee and location.
function M.lunar_semi_diameter(tee, location)
local h = M.lunar_altitude(tee, location)
local p = M.lunar_parallax(tee, location)
return (0.27245 * p * ((M.sin_degrees(h) * M.sin_degrees(p)) + 1))
end
-- TYPE moment -> angle
-- Geocentric apparent lunar diameter of the moon (in
-- degrees) at moment tee. Adapted from "Astronomical
-- Algorithms" by Jean Meeus, Willmann-Bell, 2nd edn.,
-- 1998.
function M.lunar_diameter(tee)
return (M.deg((1792367000 / 9)) / M.lunar_distance(tee))
end
-- TYPE (fixed-date location) -> boolean
-- Criterion for possible visibility of crescent moon
-- on eve of date at location.
-- Shaukat’s criterion may be replaced with another.
function M.visible_crescent(date, location)
return M.shaukat_criterion(date, location)
end
-- TYPE (fixed-date location) -> fixed-date
-- Closest fixed date on or before date when crescent
-- moon first became visible at location.
function M.phasis_on_or_before(date, location)
local moon = M.fixed_from_moment(M.lunar_phase_at_or_before(M.NEW, date))
local age = (date - moon)
local tau = (function() if _truth((_truth(((age <= 3))) and _truth((not _truth(M.visible_crescent(date, location)))))) then return (moon - 30) else return moon end end)()
return M.next(tau, function(d) return _truth(M.visible_crescent(d, location)) end)
end
-- TYPE (fixed-date location) -> fixed-date
-- Closest fixed date on or after date on the eve
-- of which crescent moon first became visible at location.
function M.phasis_on_or_after(date, location)
local moon = M.fixed_from_moment(M.lunar_phase_at_or_before(M.NEW, date))
local age = (date - moon)
local tau = (function() if _truth((_truth(((4 <= age))) or _truth(M.visible_crescent((date - 1), location)))) then return (moon + 29) else return date end end)()
return M.next(tau, function(d) return _truth(M.visible_crescent(d, location)) end)
end
----- D.15 The Persian Calendar -----
-- TYPE (persian-year persian-month persian-day)
-- TYPE -> persian-date
function M.persian_date(year, month, day)
return _list(year, month, day)
end
-- TYPE fixed-date
-- Fixed date of start of the Persian calendar.
M.PERSIAN_EPOCH = M.fixed_from_julian(M.julian_date(M.ce(622), M.MARCH, 19))
-- TYPE location
-- Location of Tehran, Iran.
M.TEHRAN = M.location(M.deg(35.68), M.deg(51.42), M.mt(1100), M.hr((3 + (1 / 2))))
-- TYPE fixed-date -> moment
-- Universal time of true noon on fixed date in Tehran.
function M.midday_in_tehran(date)
return M.midday(date, M.TEHRAN)
end
-- TYPE fixed-date -> fixed-date
-- Fixed date of Astronomical Persian New Year on or
-- before fixed date.
function M.persian_new_year_on_or_before(date)
local approx = M.estimate_prior_solar_longitude(M.SPRING, M.midday_in_tehran(date))
return M.next((math.floor(approx) - 1), function(day) return _truth(((M.solar_longitude(M.midday_in_tehran(day)) <= (M.SPRING + M.deg(2))))) end)
end
-- TYPE persian-date -> fixed-date
-- Fixed date of Astronomical Persian date p-date.
function M.fixed_from_persian(p_date)
local month = M.standard_month(p_date)
local day = M.standard_day(p_date)
local year = M.standard_year(p_date)
local new_year = M.persian_new_year_on_or_before((M.PERSIAN_EPOCH + 180 + math.floor((M.MEAN_TROPICAL_YEAR * (function() if _truth(((0 < year))) then return (year - 1) else return year end end)()))))
return ((new_year - 1) + (function() if _truth(((month <= 7))) then return (31 * (month - 1)) else return ((30 * (month - 1)) + 6) end end)() + day)
end
-- TYPE fixed-date -> persian-date
-- Astronomical Persian date (year month day)
-- corresponding to fixed date.
function M.persian_from_fixed(date)
local new_year = M.persian_new_year_on_or_before(date)
local y = (_round(((new_year - M.PERSIAN_EPOCH) / M.MEAN_TROPICAL_YEAR)) + 1)
local year = (function() if _truth(((0 < y))) then return y else return (y - 1) end end)()
local day_of_year = ((date - M.fixed_from_persian(M.persian_date(year, 1, 1))) + 1)
local month = (function() if _truth(((day_of_year <= 186))) then return math.ceil((day_of_year / 31)) else return math.ceil(((day_of_year - 6) / 30)) end end)()
local day = (date - (M.fixed_from_persian(M.persian_date(year, month, 1)) - 1))
return M.persian_date(year, month, day)
end
-- TYPE persian-year -> boolean
-- True if p-year is a leap year on the Persian calendar.
function M.arithmetic_persian_leap_year_p(p_year)
local y = (function() if _truth(((0 < p_year))) then return (p_year - 474) else return (p_year - 473) end end)()
local year = ((y % 2820) + 474)
return (((((year + 38) * 31) % 128) < 31))
end
-- TYPE persian-date -> fixed-date
-- Fixed date equivalent to Persian date p-date.
function M.fixed_from_arithmetic_persian(p_date)
local day = M.standard_day(p_date)
local month = M.standard_month(p_date)
local p_year = M.standard_year(p_date)
local y = (function() if _truth(((0 < p_year))) then return (p_year - 474) else return (p_year - 473) end end)()
local year = ((y % 2820) + 474)
return ((M.PERSIAN_EPOCH - 1) + (1029983 * M.quotient(y, 2820)) + (365 * (year - 1)) + M.quotient(((31 * year) - 5), 128) + (function() if _truth(((month <= 7))) then return (31 * (month - 1)) else return ((30 * (month - 1)) + 6) end end)() + day)
end
-- TYPE fixed-date -> persian-year
-- Persian year corresponding to the fixed date.
function M.arithmetic_persian_year_from_fixed(date)
local d0 = (date - M.fixed_from_arithmetic_persian(M.persian_date(475, 1, 1)))
local n2820 = M.quotient(d0, 1029983)
local d1 = (d0 % 1029983)
local y2820 = (function() if _truth(((d1 == 1029982))) then return 2820 else return M.quotient(((128 * d1) + 46878), 46751) end end)()
local year = (474 + (2820 * n2820) + y2820)
if _truth(((0 < year))) then
return year
else
return (year - 1)
end
end
-- TYPE fixed-date -> persian-date
-- Persian date corresponding to fixed date.
function M.arithmetic_persian_from_fixed(date)
local year = M.arithmetic_persian_year_from_fixed(date)
local day_of_year = ((date - M.fixed_from_arithmetic_persian(M.persian_date(year, 1, 1))) + 1)
local month = (function() if _truth(((day_of_year <= 186))) then return math.ceil((day_of_year / 31)) else return math.ceil(((day_of_year - 6) / 30)) end end)()
local day = (date - (M.fixed_from_arithmetic_persian(M.persian_date(year, month, 1)) - 1))
return M.persian_date(year, month, day)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Persian New Year (Nowruz) in Gregorian
-- year g-year.
function M.nowruz(g_year)
local persian_year = ((g_year - M.gregorian_year_from_fixed(M.PERSIAN_EPOCH)) + 1)
local y = (function() if _truth(((persian_year <= 0))) then return (persian_year - 1) else return persian_year end end)()
return M.fixed_from_persian(M.persian_date(y, 1, 1))
end
----- D.16 The Baha'i Calendar -----
-- TYPE (bahai-major bahai-cycle bahai-year
-- TYPE bahai-month bahai-day) -> bahai-date
function M.bahai_date(major, cycle, year, month, day)
return _list(major, cycle, year, month, day)
end
-- TYPE bahai-date -> bahai-major
function M.bahai_major(date)
return _nth(0, date)
end
-- TYPE bahai-date -> bahai-cycle
function M.bahai_cycle(date)
return _nth(1, date)
end
-- TYPE bahai-date -> bahai-year
function M.bahai_year(date)
return _nth(2, date)
end
-- TYPE bahai-date -> bahai-month
function M.bahai_month(date)
return _nth(3, date)
end
-- TYPE bahai-date -> bahai-day
function M.bahai_day(date)
return _nth(4, date)
end
-- TYPE bahai-month
-- Signifies intercalary period of 4 or 5 days.
M.AYYAM_I_HA = 0
-- TYPE fixed-date
-- Fixed date of start of Baha’i calendar.
M.BAHAI_EPOCH = M.fixed_from_gregorian(M.gregorian_date(1844, M.MARCH, 21))
-- TYPE bahai-date -> fixed-date
-- Fixed date equivalent to the Baha’i date b-date.
function M.fixed_from_bahai(b_date)
local major = M.bahai_major(b_date)
local cycle = M.bahai_cycle(b_date)
local year = M.bahai_year(b_date)
local month = M.bahai_month(b_date)
local day = M.bahai_day(b_date)
local g_year = ((361 * (major - 1)) + (19 * (cycle - 1)) + year + -1 + M.gregorian_year_from_fixed(M.BAHAI_EPOCH))
return (M.fixed_from_gregorian(M.gregorian_date(g_year, M.MARCH, 20)) + (function() if _truth(((month == M.AYYAM_I_HA))) then return 342 elseif _truth(((month == 19))) then return (function() if _truth(M.gregorian_leap_year_p((g_year + 1))) then return 347 else return 346 end end)() else return (19 * (month - 1)) end end)() + day)
end
-- TYPE fixed-date -> bahai-date
-- Baha’i (major cycle year month day) corresponding to fixed
-- date.
function M.bahai_from_fixed(date)
local g_year = M.gregorian_year_from_fixed(date)
local start = M.gregorian_year_from_fixed(M.BAHAI_EPOCH)
local years = (g_year - start - (function() if _truth(((date <= M.fixed_from_gregorian(M.gregorian_date(g_year, M.MARCH, 20))))) then return 1 else return 0 end end)())
local major = (M.quotient(years, 361) + 1)
local cycle = (M.quotient((years % 361), 19) + 1)
local year = ((years % 19) + 1)
local days = (date - M.fixed_from_bahai(M.bahai_date(major, cycle, year, 1, 1)))
local month = (function() if _truth(((date >= M.fixed_from_bahai(M.bahai_date(major, cycle, year, 19, 1))))) then return 19 elseif _truth(((date >= M.fixed_from_bahai(M.bahai_date(major, cycle, year, M.AYYAM_I_HA, 1))))) then return M.AYYAM_I_HA else return (M.quotient(days, 19) + 1) end end)()
local day = (date - -1 - M.fixed_from_bahai(M.bahai_date(major, cycle, year, month, 1)))
return M.bahai_date(major, cycle, year, month, day)
end
-- TYPE location
-- Location of Tehran for astronomical Baha’i calendar.
M.BAHAI_LOCATION = M.location(M.deg(35.696111), M.deg(51.423056), M.mt(0), M.hr((3 + (1 / 2))))
-- TYPE fixed-date -> moment
-- Universal time of sunset on fixed date
-- in Bahai-Location.
function M.bahai_sunset(date)
return M.universal_from_standard(M.sunset(date, M.BAHAI_LOCATION), M.BAHAI_LOCATION)
end
-- TYPE fixed-date -> fixed-date
-- Fixed date of astronomical Bahai New Year on or before fixed
-- date.
function M.astro_bahai_new_year_on_or_before(date)
local approx = M.estimate_prior_solar_longitude(M.SPRING, M.bahai_sunset(date))
return M.next((math.floor(approx) - 1), function(day) return _truth(((M.solar_longitude(M.bahai_sunset(day)) <= (M.SPRING + M.deg(2))))) end)
end
-- TYPE bahai-date -> fixed-date
-- Fixed date of Baha’i date b-date.
function M.fixed_from_astro_bahai(b_date)
local major = M.bahai_major(b_date)
local cycle = M.bahai_cycle(b_date)
local year = M.bahai_year(b_date)
local month = M.bahai_month(b_date)
local day = M.bahai_day(b_date)
local years = ((361 * (major - 1)) + (19 * (cycle - 1)) + year)
if _truth(((month == 19))) then
return (M.astro_bahai_new_year_on_or_before((M.BAHAI_EPOCH + math.floor((M.MEAN_TROPICAL_YEAR * (years + (1 / 2)))))) + -20 + day)
elseif _truth(((month == M.AYYAM_I_HA))) then
return (M.astro_bahai_new_year_on_or_before((M.BAHAI_EPOCH + math.floor((M.MEAN_TROPICAL_YEAR * (years - (1 / 2)))))) + 341 + day)
else
return (M.astro_bahai_new_year_on_or_before((M.BAHAI_EPOCH + math.floor((M.MEAN_TROPICAL_YEAR * (years - (1 / 2)))))) + ((month - 1) * 19) + day + -1)
end
end
-- TYPE fixed-date -> bahai-date
-- Astronomical Baha’i date corresponding to fixed date.
function M.astro_bahai_from_fixed(date)
local new_year = M.astro_bahai_new_year_on_or_before(date)
local years = _round(((new_year - M.BAHAI_EPOCH) / M.MEAN_TROPICAL_YEAR))
local major = (M.quotient(years, 361) + 1)
local cycle = (M.quotient((years % 361), 19) + 1)
local year = ((years % 19) + 1)
local days = (date - new_year)
local month = (function() if _truth(((date >= M.fixed_from_astro_bahai(M.bahai_date(major, cycle, year, 19, 1))))) then return 19 elseif _truth(((date >= M.fixed_from_astro_bahai(M.bahai_date(major, cycle, year, M.AYYAM_I_HA, 1))))) then return M.AYYAM_I_HA else return (M.quotient(days, 19) + 1) end end)()
local day = (date - -1 - M.fixed_from_astro_bahai(M.bahai_date(major, cycle, year, month, 1)))
return M.bahai_date(major, cycle, year, month, day)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Baha’i New Year in Gregorian year g-year.
function M.bahai_new_year(g_year)
return M.fixed_from_gregorian(M.gregorian_date(g_year, M.MARCH, 21))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Baha’i New Year (Naw-Ruz) in Gregorian
-- year g-year.
function M.naw_ruz(g_year)
return M.astro_bahai_new_year_on_or_before(M.gregorian_new_year((g_year + 1)))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Feast of Ridvan in Gregorian year g-year.
function M.feast_of_ridvan(g_year)
return (M.naw_ruz(g_year) + 31)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of the Birthday of the Bab
-- in Gregorian year g-year.
function M.birth_of_the_bab(g_year)
local ny = M.naw_ruz(g_year)
local set1 = M.bahai_sunset(ny)
local m1 = M.new_moon_at_or_after(set1)
local m8 = M.new_moon_at_or_after((m1 + 190))
local day = M.fixed_from_moment(m8)
local set8 = M.bahai_sunset(day)
if _truth(((m8 < set8))) then
return (day + 1)
else
return (day + 2)
end
end
----- D.17 The French Revolutionary Calendar -----
-- TYPE (french-year french-month french-day) -> french-date
function M.french_date(year, month, day)
return _list(year, month, day)
end
-- TYPE location
-- Location of Paris Observatory. Longitude corresponds
-- to difference of 9m 21s between Paris time zone and
-- Universal Time.
M.PARIS = M.location(M.angle(48, 50, 11), M.angle(2, 20, 15), M.mt(27), M.hr(1))
-- TYPE fixed-date -> moment
-- Universal time of true midnight at end of fixed date
-- in Paris.
function M.midnight_in_paris(date)
return M.midnight((date + 1), M.PARIS)
end
-- TYPE fixed-date -> fixed-date
-- Fixed date of French Revolutionary New Year on or
-- before fixed date.
function M.french_new_year_on_or_before(date)
local approx = M.estimate_prior_solar_longitude(M.AUTUMN, M.midnight_in_paris(date))
return M.next((math.floor(approx) - 1), function(day) return _truth(((M.AUTUMN <= M.solar_longitude(M.midnight_in_paris(day))))) end)
end
-- TYPE fixed-date
-- Fixed date of start of the French Revolutionary
-- calendar.
M.FRENCH_EPOCH = M.fixed_from_gregorian(M.gregorian_date(1792, M.SEPTEMBER, 22))
-- TYPE french-date -> fixed-date
-- Fixed date of French Revolutionary date.
function M.fixed_from_french(f_date)
local month = M.standard_month(f_date)
local day = M.standard_day(f_date)
local year = M.standard_year(f_date)
local new_year = M.french_new_year_on_or_before(math.floor((M.FRENCH_EPOCH + 180 + (M.MEAN_TROPICAL_YEAR * (year - 1)))))
return (new_year + -1 + (30 * (month - 1)) + day)
end
-- TYPE fixed-date -> french-date
-- French Revolutionary date of fixed date.
function M.french_from_fixed(date)
local new_year = M.french_new_year_on_or_before(date)
local year = (_round(((new_year - M.FRENCH_EPOCH) / M.MEAN_TROPICAL_YEAR)) + 1)
local month = (M.quotient((date - new_year), 30) + 1)
local day = (((date - new_year) % 30) + 1)
local decade = M.quotient(day - 1, 10) + 1 -- I added decade and weekday, which are not in the book, for use on Wikipedia
local weekday = M.amod(day, 10)
return _list(year, month, decade, weekday)
end
-- TYPE french-year -> boolean
-- True if f-year is a leap year on the
-- French Revolutionary calendar.
function M.french_leap_year_p(f_year)
return (((M.fixed_from_french(M.french_date((f_year + 1), 1, 1)) - M.fixed_from_french(M.french_date(f_year, 1, 1))) > 365))
end
-- TYPE french-year -> boolean
-- True if f-year is a leap year on the
-- Arithmetic French Revolutionary calendar.
function M.arithmetic_french_leap_year_p(f_year)
return (_truth((((f_year % 4) == 0))) and _truth((not _truth(_member((f_year % 400), _list(100, 200, 300))))) and _truth((not _truth((((f_year % 4000) == 0))))))
end
-- TYPE french-date -> fixed-date
-- Fixed date of Arithmetic French Revolutionary
-- date f-date.
function M.fixed_from_arithmetic_french(f_date)
local month = M.standard_month(f_date)
local day = M.standard_day(f_date)
local year = M.standard_year(f_date)
return (M.FRENCH_EPOCH + -1 + (365 * (year - 1)) + M.quotient((year - 1), 4) + (-M.quotient((year - 1), 100)) + M.quotient((year - 1), 400) + (-M.quotient((year - 1), 4000)) + (30 * (month - 1)) + day)
end
-- TYPE fixed-date -> french-date
-- Arithmetic French Revolutionary date (year month day)
-- of fixed date.
function M.arithmetic_french_from_fixed(date)
local approx = (M.quotient((date - M.FRENCH_EPOCH - -2), (1460969 / 4000)) + 1)
local year = (function() if _truth(((date < M.fixed_from_arithmetic_french(M.french_date(approx, 1, 1))))) then return (approx - 1) else return approx end end)()
local month = (M.quotient((date - M.fixed_from_arithmetic_french(M.french_date(year, 1, 1))), 30) + 1)
local day = ((date - M.fixed_from_arithmetic_french(M.french_date(year, month, 1))) + 1)
return M.french_date(year, month, day)
end
----- D.18 Astronomical Lunar Calendars -----
-- TYPE (babylonian-year babylonian-month
-- TYPE babylonian-leap babylonian-day)
-- TYPE -> babylonian-date
function M.babylonian_date(year, month, leap, day)
return _list(year, month, leap, day)
end
-- TYPE babylonian-date -> babylonian-year
function M.babylonian_year(date)
return _nth(0, date)
end
-- TYPE babylonian-date -> babylonian-month
function M.babylonian_month(date)
return _nth(1, date)
end
-- TYPE babylonian-date -> babylonian-leap
function M.babylonian_leap(date)
return _nth(2, date)
end
-- TYPE babylonian-date -> babylonian-day
function M.babylonian_day(date)
return _nth(3, date)
end
-- TYPE (fixed-date location) -> duration
-- Time between sunset and moonset on date at location.
-- Returns bogus if there is no sunset on date.
function M.moonlag(date, location)
local sun = M.sunset(date, location)
local moon = M.moonset(date, location)
if _truth(_equal(sun, M.BOGUS)) then
return M.BOGUS
elseif _truth(_equal(moon, M.BOGUS)) then
return M.hr(24)
else
return (moon - sun)
end
end
-- TYPE location
-- Location of Babylon.
M.BABYLON = M.location(M.deg(32.4794), M.deg(44.4328), M.mt(26), M.hr((3 + (1 / 2))))
-- TYPE (fixed-date location) -> boolean
-- Moonlag criterion for visibility of crescent moon on
-- eve of date in Babylon.
function M.babylonian_criterion(date)
local set = M.sunset((date - 1), M.BABYLON)
local tee = M.universal_from_standard(set, M.BABYLON)
local phase = M.lunar_phase(tee)
return (_truth(((M.NEW < phase) and (phase < M.FIRST_QUARTER))) and _truth(((M.new_moon_before(tee) <= (tee - M.hr(24))))) and _truth(((M.moonlag((date - 1), M.BABYLON) > M.mn(48)))))
end
-- TYPE fixed-date -> fixed-date
-- Fixed date of start of Babylonian month on or before
-- Babylonian date. Using lag of moonset criterion.
function M.babylonian_new_month_on_or_before(date)
local moon = M.fixed_from_moment(M.lunar_phase_at_or_before(M.NEW, date))
local age = (date - moon)
local tau = (function() if _truth((_truth(((age <= 3))) and _truth((not _truth(M.babylonian_criterion(date)))))) then return (moon - 30) else return moon end end)()
return M.next(tau, function(d) return _truth(M.babylonian_criterion(d)) end)
end
-- TYPE fixed-date
-- Fixed date of start of the Babylonian calendar
-- (Seleucid era). April 3, 311 BCE (Julian).
M.BABYLONIAN_EPOCH = M.fixed_from_julian(M.julian_date(M.bce(311), M.APRIL, 3))
-- TYPE babylonian-year -> boolean
-- True if b-year is a leap year on Babylonian calendar.
function M.babylonian_leap_year_p(b_year)
return (((((7 * b_year) + 13) % 19) < 7))
end
-- TYPE babylonian-date -> fixed-date
-- Fixed date equivalent to Babylonian date.
function M.fixed_from_babylonian(b_date)
local month = M.babylonian_month(b_date)
local leap = M.babylonian_leap(b_date)
local day = M.babylonian_day(b_date)
local year = M.babylonian_year(b_date)
local month1 = (function() if _truth((_truth(leap) or _truth((_truth((((year % 19) == 18))) and _truth(((month > 6))))))) then return month else return (month - 1) end end)()
local months = (M.quotient((((year - 1) * 235) + 13), 19) + month1)
local midmonth = (M.BABYLONIAN_EPOCH + _round((M.MEAN_SYNODIC_MONTH * months)) + 15)
return (M.babylonian_new_month_on_or_before(midmonth) + day + -1)
end
-- TYPE fixed-date -> babylonian-date
-- Babylonian date corresponding to fixed date.
function M.babylonian_from_fixed(date)
local crescent = M.babylonian_new_month_on_or_before(date)
local months = _round(((crescent - M.BABYLONIAN_EPOCH) / M.MEAN_SYNODIC_MONTH))
local year = (M.quotient(((19 * months) + 5), 235) + 1)
local approx = (M.BABYLONIAN_EPOCH + _round((M.quotient((((year - 1) * 235) + 13), 19) * M.MEAN_SYNODIC_MONTH)))
local new_year = M.babylonian_new_month_on_or_before((approx + 15))
local month1 = (_round(((crescent - new_year) / 29.5)) + 1)
local special = (((year % 19) == 18))
local leap = (function() if _truth(special) then return ((month1 == 7)) else return ((month1 == 13)) end end)()
local month = (function() if _truth((_truth(leap) or _truth((_truth(special) and _truth(((month1 > 6))))))) then return (month1 - 1) else return month1 end end)()
local day = (date - crescent - -1)
return M.babylonian_date(year, month, leap, day)
end
-- TYPE gregorian-year -> fixed-date
-- Date of (proposed) astronomical Easter in Gregorian
-- year g-year.
function M.astronomical_easter(g_year)
local equinox = M.season_in_gregorian(M.SPRING, g_year)
local paschal_moon = math.floor(M.apparent_from_universal(M.lunar_phase_at_or_after(M.FULL, equinox), M.JERUSALEM))
return M.kday_after(M.SUNDAY, paschal_moon)
end
-- TYPE location
-- Sample location for Observational Islamic calendar
-- (Cairo, Egypt).
M.ISLAMIC_LOCATION = M.location(M.deg(30.1), M.deg(31.3), M.mt(200), M.hr(2))
-- TYPE islamic-date -> fixed-date
-- Fixed date equivalent to Observational Islamic date
-- i-date.
function M.fixed_from_observational_islamic(i_date)
local month = M.standard_month(i_date)
local day = M.standard_day(i_date)
local year = M.standard_year(i_date)
local midmonth = (M.ISLAMIC_EPOCH + math.floor(((((year - 1) * 12) + month + (-1 / 2)) * M.MEAN_SYNODIC_MONTH)))
return (M.phasis_on_or_before(midmonth, M.ISLAMIC_LOCATION) + day + -1)
end
-- TYPE fixed-date -> islamic-date
-- Observational Islamic date (year month day)
-- corresponding to fixed date.
function M.observational_islamic_from_fixed(date)
local crescent = M.phasis_on_or_before(date, M.ISLAMIC_LOCATION)
local elapsed_months = _round(((crescent - M.ISLAMIC_EPOCH) / M.MEAN_SYNODIC_MONTH))
local year = (M.quotient(elapsed_months, 12) + 1)
local month = ((elapsed_months % 12) + 1)
local day = ((date - crescent) + 1)
return M.islamic_date(year, month, day)
end
-- TYPE (fixed-date location) -> 1..31
-- Length of lunar month based on observability at location,
-- which includes date.
function M.month_length(date, location)
local moon = M.phasis_on_or_after((date + 1), location)
local prev = M.phasis_on_or_before(date, location)
return (moon - prev)
end
-- TYPE (fixed-date location) -> boolean
-- Fixed date in location is in a month that was forced to
-- start early.
function M.early_month_p(date, location)
local start = M.phasis_on_or_before(date, location)
local prev = (start - 15)
return (_truth((((date - start) >= 30))) or _truth(((M.month_length(prev, location) > 30))) or _truth((_truth(((M.month_length(prev, location) == 30))) and _truth(M.early_month_p(prev, location)))))
end
-- TYPE islamic-date -> fixed-date
-- Fixed date equivalent to Observational Islamic i-date.
-- Months are never longer than 30 days.
function M.alt_fixed_from_observational_islamic(i_date)
local month = M.standard_month(i_date)
local day = M.standard_day(i_date)
local year = M.standard_year(i_date)
local midmonth = (M.ISLAMIC_EPOCH + math.floor(((((year - 1) * 12) + month + (-1 / 2)) * M.MEAN_SYNODIC_MONTH)))
local moon = M.phasis_on_or_before(midmonth, M.ISLAMIC_LOCATION)
local date = (moon + day + -1)
if _truth(M.early_month_p(midmonth, M.ISLAMIC_LOCATION)) then
return (date - 1)
else
return date
end
end
-- TYPE fixed-date -> islamic-date
-- Observational Islamic date (year month day)
-- corresponding to fixed date.
-- Months are never longer than 30 days.
function M.alt_observational_islamic_from_fixed(date)
local early = M.early_month_p(date, M.ISLAMIC_LOCATION)
local long = (_truth(early) and _truth(((M.month_length(date, M.ISLAMIC_LOCATION) > 29))))
local date_prime = (function() if _truth(long) then return (date + 1) else return date end end)()
local moon = M.phasis_on_or_before(date_prime, M.ISLAMIC_LOCATION)
local elapsed_months = _round(((moon - M.ISLAMIC_EPOCH) / M.MEAN_SYNODIC_MONTH))
local year = (M.quotient(elapsed_months, 12) + 1)
local month = ((elapsed_months % 12) + 1)
local day = (date_prime - moon - (function() if _truth((_truth(early) and _truth((not _truth(long))))) then return -2 else return -1 end end)())
return M.islamic_date(year, month, day)
end
-- TYPE fixed-date -> boolean
-- Saudi visibility criterion on eve of fixed date in Mecca.
function M.saudi_criterion(date)
local set = M.sunset((date - 1), M.MECCA)
local tee = M.universal_from_standard(set, M.MECCA)
local phase = M.lunar_phase(tee)
return (_truth(((M.NEW < phase) and (phase < M.FIRST_QUARTER))) and _truth(((M.moonlag((date - 1), M.MECCA) > 0))))
end
-- TYPE fixed-date -> fixed-date
-- Closest fixed date on or before date when Saudi
-- visibility criterion held.
function M.saudi_new_month_on_or_before(date)
local moon = M.fixed_from_moment(M.lunar_phase_at_or_before(M.NEW, date))
local age = (date - moon)
local tau = (function() if _truth((_truth(((age <= 3))) and _truth((not _truth(M.saudi_criterion(date)))))) then return (moon - 30) else return moon end end)()
return M.next(tau, function(d) return _truth(M.saudi_criterion(d)) end)
end
-- TYPE islamic-date -> fixed-date
-- Fixed date equivalent to Saudi Islamic date s-date.
function M.fixed_from_saudi_islamic(s_date)
local month = M.standard_month(s_date)
local day = M.standard_day(s_date)
local year = M.standard_year(s_date)
local midmonth = (M.ISLAMIC_EPOCH + math.floor(((((year - 1) * 12) + month + (-1 / 2)) * M.MEAN_SYNODIC_MONTH)))
return (M.saudi_new_month_on_or_before(midmonth) + day + -1)
end
-- TYPE fixed-date -> islamic-date
-- Saudi Islamic date (year month day) corresponding to
-- fixed date.
function M.saudi_islamic_from_fixed(date)
local crescent = M.saudi_new_month_on_or_before(date)
local elapsed_months = _round(((crescent - M.ISLAMIC_EPOCH) / M.MEAN_SYNODIC_MONTH))
local year = (M.quotient(elapsed_months, 12) + 1)
local month = ((elapsed_months % 12) + 1)
local day = ((date - crescent) + 1)
return M.islamic_date(year, month, day)
end
-- TYPE location
-- Sample location for Observational Hebrew calendar
-- (Haifa, Israel).
M.HEBREW_LOCATION = M.location(M.deg(32.82), M.deg(35), M.mt(0), M.hr(2))
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Observational (classical)
-- Nisan 1 occurring in Gregorian year g-year.
function M.observational_hebrew_first_of_nisan(g_year)
local equinox = M.season_in_gregorian(M.SPRING, g_year)
local set = M.universal_from_standard(M.sunset(math.floor(equinox), M.HEBREW_LOCATION), M.HEBREW_LOCATION)
return M.phasis_on_or_after((math.floor(equinox) - (function() if _truth(((equinox < set))) then return 14 else return 13 end end)()), M.HEBREW_LOCATION)
end
-- TYPE fixed-date -> hebrew-date
-- Observational Hebrew date (year month day)
-- corresponding to fixed date.
function M.observational_hebrew_from_fixed(date)
local crescent = M.phasis_on_or_before(date, M.HEBREW_LOCATION)
local g_year = M.gregorian_year_from_fixed(date)
local ny = M.observational_hebrew_first_of_nisan(g_year)
local new_year = (function() if _truth(((date < ny))) then return M.observational_hebrew_first_of_nisan((g_year - 1)) else return ny end end)()
local month = (_round(((crescent - new_year) / 29.5)) + 1)
local year = (M.standard_year(M.hebrew_from_fixed(new_year)) + (function() if _truth(((month >= M.TISHRI))) then return 1 else return 0 end end)())
local day = (date - crescent - -1)
return M.hebrew_date(year, month, day)
end
-- TYPE hebrew-date -> fixed-date
-- Fixed date equivalent to Observational Hebrew date.
function M.fixed_from_observational_hebrew(h_date)
local month = M.standard_month(h_date)
local day = M.standard_day(h_date)
local year = M.standard_year(h_date)
local year1 = (function() if _truth(((month >= M.TISHRI))) then return (year - 1) else return year end end)()
local start = M.fixed_from_hebrew(M.hebrew_date(year1, M.NISAN, 1))
local g_year = M.gregorian_year_from_fixed((start + 60))
local new_year = M.observational_hebrew_first_of_nisan(g_year)
local midmonth = (new_year + _round((29.5 * (month - 1))) + 15)
return (M.phasis_on_or_before(midmonth, M.HEBREW_LOCATION) + day + -1)
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Classical (observational) Passover Eve
-- (Nisan 14) occurring in Gregorian year g-year.
function M.classical_passover_eve(g_year)
return (M.observational_hebrew_first_of_nisan(g_year) + 13)
end
-- TYPE fixed-date -> hebrew-date
-- Observational Hebrew date (year month day)
-- corresponding to fixed date.
-- Months are never longer than 30 days.
function M.alt_observational_hebrew_from_fixed(date)
local early = M.early_month_p(date, M.HEBREW_LOCATION)
local long = (_truth(early) and _truth(((M.month_length(date, M.HEBREW_LOCATION) > 29))))
local date_prime = (function() if _truth(long) then return (date + 1) else return date end end)()
local moon = M.phasis_on_or_before(date_prime, M.HEBREW_LOCATION)
local g_year = M.gregorian_year_from_fixed(date_prime)
local ny = M.observational_hebrew_first_of_nisan(g_year)
local new_year = (function() if _truth(((date_prime < ny))) then return M.observational_hebrew_first_of_nisan((g_year - 1)) else return ny end end)()
local month = (_round(((moon - new_year) / 29.5)) + 1)
local year = (M.standard_year(M.hebrew_from_fixed(new_year)) + (function() if _truth(((month >= M.TISHRI))) then return 1 else return 0 end end)())
local day = (date_prime - moon - (function() if _truth((_truth(early) and _truth((not _truth(long))))) then return -2 else return -1 end end)())
return M.hebrew_date(year, month, day)
end
-- TYPE hebrew-date -> fixed-date
-- Fixed date equivalent to Observational Hebrew h-date.
-- Months are never longer than 30 days.
function M.alt_fixed_from_observational_hebrew(h_date)
local month = M.standard_month(h_date)
local day = M.standard_day(h_date)
local year = M.standard_year(h_date)
local year1 = (function() if _truth(((month >= M.TISHRI))) then return (year - 1) else return year end end)()
local start = M.fixed_from_hebrew(M.hebrew_date(year1, M.NISAN, 1))
local g_year = M.gregorian_year_from_fixed((start + 60))
local new_year = M.observational_hebrew_first_of_nisan(g_year)
local midmonth = (new_year + _round((29.5 * (month - 1))) + 15)
local moon = M.phasis_on_or_before(midmonth, M.HEBREW_LOCATION)
local date = (moon + day + -1)
if _truth(M.early_month_p(midmonth, M.HEBREW_LOCATION)) then
return (date - 1)
else
return date
end
end
-- TYPE location
-- Location of Mt. Gerizim.
M.SAMARITAN_LOCATION = M.location(M.deg(32.1994), M.deg(35.2728), M.mt(881), M.hr(2))
-- TYPE fixed-date -> moment
-- Universal time of true noon on date at Samaritan location.
function M.samaritan_noon(date)
return M.midday(date, M.SAMARITAN_LOCATION)
end
-- TYPE moment -> fixed-date
-- Fixed date of first new moon after UT moment tee.
-- Modern calculation.
function M.samaritan_new_moon_after(tee)
return math.ceil((M.apparent_from_universal(M.new_moon_at_or_after(tee), M.SAMARITAN_LOCATION) - M.hr(12)))
end
-- TYPE moment -> fixed-date
-- Fixed-date of last new moon before UT moment tee.
-- Modern calculation.
function M.samaritan_new_moon_at_or_before(tee)
return math.ceil((M.apparent_from_universal(M.new_moon_before(tee), M.SAMARITAN_LOCATION) - M.hr(12)))
end
-- TYPE fixed-date
-- Fixed date of start of the Samaritan Entry Era.
M.SAMARITAN_EPOCH = M.fixed_from_julian(M.julian_date(M.bce(1639), M.MARCH, 15))
-- TYPE fixed-date -> fixed-date
-- Fixed date of Samaritan New Year on or before fixed
-- date.
function M.samaritan_new_year_on_or_before(date)
local g_year = M.gregorian_year_from_fixed(date)
local dates = _append(M.julian_in_gregorian(M.MARCH, 11, (g_year - 1)), M.julian_in_gregorian(M.MARCH, 11, g_year), _list((date + 1)))
local n = M.final(0, function(i) return _truth(((M.samaritan_new_moon_after(M.samaritan_noon(_nth(i, dates))) <= date))) end)
return M.samaritan_new_moon_after(M.samaritan_noon(_nth(n, dates)))
end
-- TYPE hebrew-date -> fixed-date
-- Fixed date of Samaritan date h-date.
function M.fixed_from_samaritan(s_date)
local month = M.standard_month(s_date)
local day = M.standard_day(s_date)
local year = M.standard_year(s_date)
local ny = M.samaritan_new_year_on_or_before(math.floor((M.SAMARITAN_EPOCH + 50 + (365.25 * (year - math.ceil(((month - 5)) / (8)))))))
local nm = M.samaritan_new_moon_at_or_before((ny + (29.5 * (month - 1)) + 15))
return (nm + day + -1)
end
-- TYPE fixed-date -> hebrew-date
-- Samaritan date corresponding to fixed date.
function M.samaritan_from_fixed(date)
local moon = M.samaritan_new_moon_at_or_before(M.samaritan_noon(date))
local new_year = M.samaritan_new_year_on_or_before(moon)
local month = (_round(((moon - new_year) / 29.5)) + 1)
local year = (_round(((new_year - M.SAMARITAN_EPOCH) / 365.25)) + math.ceil(((month - 5)) / (8)))
local day = (date - moon - -1)
return M.hebrew_date(year, month, day)
end
----- D.19 The Chinese Calendar -----
-- TYPE (chinese-cycle chinese-year chinese-month
-- TYPE chinese-leap chinese-day) -> chinese-date
function M.chinese_date(cycle, year, month, leap, day)
return _list(cycle, year, month, leap, day)
end
-- TYPE chinese-date -> chinese-cycle
function M.chinese_cycle(date)
return _nth(0, date)
end
-- TYPE chinese-date -> chinese-year
function M.chinese_year(date)
return _nth(1, date)
end
-- TYPE chinese-date -> chinese-month
function M.chinese_month(date)
return _nth(2, date)
end
-- TYPE chinese-date -> chinese-leap
function M.chinese_leap(date)
return _nth(3, date)
end
-- TYPE chinese-date -> chinese-day
function M.chinese_day(date)
return _nth(4, date)
end
-- TYPE fixed-date -> integer
-- Last Chinese major solar term (zhongqi) before fixed
-- date.
function M.current_major_solar_term(date)
local s = M.solar_longitude(M.universal_from_standard(date, M.chinese_location(date)))
return M.amod((2 + M.quotient(s, M.deg(30))), 12)
end
-- TYPE moment -> location
-- Location of Beijing; time zone varies with tee.
function M.chinese_location(tee)
local year = M.gregorian_year_from_fixed(math.floor(tee))
if _truth(((year < 1929))) then
return M.location(M.angle(39, 55, 0), M.angle(116, 25, 0), M.mt(43.5), M.hr((1397 / 180)))
else
return M.location(M.angle(39, 55, 0), M.angle(116, 25, 0), M.mt(43.5), M.hr(8))
end
end
-- TYPE (season moment) -> moment
-- Moment (Beijing time) of the first time at or after
-- tee (Beijing time) when the solar longitude
-- will be lambda degrees.
function M.chinese_solar_longitude_on_or_after(lambda, tee)
local sun = M.solar_longitude_after(lambda, M.universal_from_standard(tee, M.chinese_location(tee)))
return M.standard_from_universal(sun, M.chinese_location(sun))
end
-- TYPE fixed-date -> moment
-- Moment (in Beijing) of the first Chinese major
-- solar term (zhongqi) on or after fixed date. The
-- major terms begin when the sun’s longitude is a
-- multiple of 30 degrees.
function M.major_solar_term_on_or_after(date)
local s = M.solar_longitude(M.midnight_in_china(date))
local l = ((30 * math.ceil((s / 30))) % 360)
return M.chinese_solar_longitude_on_or_after(l, date)
end
-- TYPE fixed-date -> integer
-- Last Chinese minor solar term (jieqi) before date.
function M.current_minor_solar_term(date)
local s = M.solar_longitude(M.universal_from_standard(date, M.chinese_location(date)))
return M.amod((3 + M.quotient((s - M.deg(15)), M.deg(30))), 12)
end
-- TYPE fixed-date -> moment
-- Moment (in Beijing) of the first Chinese minor solar
-- term (jieqi) on or after fixed date. The minor terms
-- begin when the sun’s longitude is an odd multiple of 15
-- degrees.
function M.minor_solar_term_on_or_after(date)
local s = M.solar_longitude(M.midnight_in_china(date))
local l = (((30 * math.ceil(((s - M.deg(15)) / 30))) + M.deg(15)) % 360)
return M.chinese_solar_longitude_on_or_after(l, date)
end
-- TYPE fixed-date -> moment
-- Universal time of (clock) midnight at start of fixed
-- date in China.
function M.midnight_in_china(date)
return M.universal_from_standard(date, M.chinese_location(date))
end
-- TYPE fixed-date -> fixed-date
-- Fixed date, in the Chinese zone, of winter solstice
-- on or before fixed date.
function M.chinese_winter_solstice_on_or_before(date)
local approx = M.estimate_prior_solar_longitude(M.WINTER, M.midnight_in_china((date + 1)))
return M.next((math.floor(approx) - 1), function(day) return _truth(((M.WINTER < M.solar_longitude(M.midnight_in_china((day + 1)))))) end)
end
-- TYPE fixed-date -> fixed-date
-- Fixed date (Beijing) of first new moon on or after
-- fixed date.
function M.chinese_new_moon_on_or_after(date)
local tee = M.new_moon_at_or_after(M.midnight_in_china(date))
return math.floor(M.standard_from_universal(tee, M.chinese_location(tee)))
end
-- TYPE fixed-date -> fixed-date
-- Fixed date (Beijing) of first new moon before fixed
-- date.
function M.chinese_new_moon_before(date)
local tee = M.new_moon_before(M.midnight_in_china(date))
return math.floor(M.standard_from_universal(tee, M.chinese_location(tee)))
end
-- TYPE fixed-date -> boolean
-- True if Chinese lunar month starting on date
-- has no major solar term.
function M.chinese_no_major_solar_term_p(date)
return ((M.current_major_solar_term(date) == M.current_major_solar_term(M.chinese_new_moon_on_or_after((date + 1)))))
end
-- TYPE (fixed-date fixed-date) -> boolean
-- True if there is a Chinese leap month on or after lunar
-- month starting on fixed day m-prime and at or before
-- lunar month starting at fixed date m.
function M.chinese_prior_leap_month_p(m_prime, m)
return (_truth(((m >= m_prime))) and _truth((_truth(M.chinese_no_major_solar_term_p(m)) or _truth(M.chinese_prior_leap_month_p(m_prime, M.chinese_new_moon_before(m))))))
end
-- TYPE fixed-date -> fixed-date
-- Fixed date of Chinese New Year in sui (period from
-- solstice to solstice) containing date.
function M.chinese_new_year_in_sui(date)
local s1 = M.chinese_winter_solstice_on_or_before(date)
local s2 = M.chinese_winter_solstice_on_or_before((s1 + 370))
local m12 = M.chinese_new_moon_on_or_after((s1 + 1))
local m13 = M.chinese_new_moon_on_or_after((m12 + 1))
local next_m11 = M.chinese_new_moon_before((s2 + 1))
if _truth((_truth(((_round(((next_m11 - m12) / M.MEAN_SYNODIC_MONTH)) == 12))) and _truth((_truth(M.chinese_no_major_solar_term_p(m12)) or _truth(M.chinese_no_major_solar_term_p(m13)))))) then
return M.chinese_new_moon_on_or_after((m13 + 1))
else
return m13
end
end
-- TYPE fixed-date -> fixed-date
-- Fixed date of Chinese New Year on or before fixed date.
function M.chinese_new_year_on_or_before(date)
local new_year = M.chinese_new_year_in_sui(date)
if _truth(((date >= new_year))) then
return new_year
else
return M.chinese_new_year_in_sui((date - 180))
end
end
-- TYPE fixed-date
-- Fixed date of start of the Chinese calendar.
M.CHINESE_EPOCH = M.fixed_from_gregorian(M.gregorian_date(-2636, M.FEBRUARY, 15))
-- TYPE fixed-date -> chinese-date
-- Chinese date (cycle year month leap day) of fixed date.
function M.chinese_from_fixed(date)
local s1 = M.chinese_winter_solstice_on_or_before(date)
local s2 = M.chinese_winter_solstice_on_or_before((s1 + 370))
local m12 = M.chinese_new_moon_on_or_after((s1 + 1))
local next_m11 = M.chinese_new_moon_before((s2 + 1))
local m = M.chinese_new_moon_before((date + 1))
local leap_year = ((_round(((next_m11 - m12) / M.MEAN_SYNODIC_MONTH)) == 12))
local month = M.amod((_round(((m - m12) / M.MEAN_SYNODIC_MONTH)) - (function() if _truth((_truth(leap_year) and _truth(M.chinese_prior_leap_month_p(m12, m)))) then return 1 else return 0 end end)()), 12)
local leap_month = (_truth(leap_year) and _truth(M.chinese_no_major_solar_term_p(m)) and _truth((not _truth(M.chinese_prior_leap_month_p(m12, M.chinese_new_moon_before(m))))))
local elapsed_years = math.floor((1.5 + (-(month / 12)) + ((date - M.CHINESE_EPOCH) / M.MEAN_TROPICAL_YEAR)))
local cycle = (M.quotient((elapsed_years - 1), 60) + 1)
local year = M.amod(elapsed_years, 60)
local day = ((date - m) + 1)
return M.chinese_date(cycle, year, month, leap_month, day)
end
-- TYPE chinese-date -> fixed-date
-- Fixed date of Chinese date c-date.
function M.fixed_from_chinese(c_date)
local cycle = M.chinese_cycle(c_date)
local year = M.chinese_year(c_date)
local month = M.chinese_month(c_date)
local leap = M.chinese_leap(c_date)
local day = M.chinese_day(c_date)
local mid_year = math.floor((M.CHINESE_EPOCH + ((((cycle - 1) * 60) + (year - 1) + (1 / 2)) * M.MEAN_TROPICAL_YEAR)))
local new_year = M.chinese_new_year_on_or_before(mid_year)
local p = M.chinese_new_moon_on_or_after((new_year + ((month - 1) * 29)))
local d = M.chinese_from_fixed(p)
local prior_new_moon = (function() if _truth((_truth(((month == M.chinese_month(d)))) and _truth(_equal(leap, M.chinese_leap(d))))) then return p else return M.chinese_new_moon_on_or_after((p + 1)) end end)()
return (prior_new_moon + day + -1)
end
-- TYPE (chinese-stem chinese-branch) -> chinese-name
-- Combination is impossible if stem and branch
-- are not the equal mod 2.
function M.chinese_name(stem, branch)
return _list(stem, branch)
end
-- TYPE chinese-name -> chinese-stem
function M.chinese_stem(name)
return _nth(0, name)
end
-- TYPE chinese-name -> chinese-branch
function M.chinese_branch(name)
return _nth(1, name)
end
-- TYPE integer -> chinese-name
-- The n-th name of the Chinese sexagesimal cycle.
function M.chinese_sexagesimal_name(n)
return M.chinese_name(M.amod(n, 10), M.amod(n, 12))
end
-- TYPE (chinese-name chinese-name) -> nonnegative-integer
-- Number of names from Chinese name c-name1 to the
-- next occurrence of Chinese name c-name2.
function M.chinese_name_difference(c_name1, c_name2)
local stem1 = M.chinese_stem(c_name1)
local stem2 = M.chinese_stem(c_name2)
local branch1 = M.chinese_branch(c_name1)
local branch2 = M.chinese_branch(c_name2)
local stem_difference = (stem2 - stem1)
local branch_difference = (branch2 - branch1)
return M.amod((stem_difference + (25 * (branch_difference - stem_difference))), 60)
end
-- TYPE chinese-year -> chinese-name
-- Sexagesimal name for Chinese year of any cycle.
function M.chinese_year_name(year)
return M.chinese_sexagesimal_name(year)
end
-- TYPE integer
-- Elapsed months at start of Chinese sexagesimal month
-- cycle.
M.CHINESE_MONTH_NAME_EPOCH = 57
-- TYPE (chinese-month chinese-year) -> chinese-name
-- Sexagesimal name for month month of Chinese year
-- year.
function M.chinese_month_name(month, year)
local elapsed_months = ((12 * (year - 1)) + (month - 1))
return M.chinese_sexagesimal_name((elapsed_months - M.CHINESE_MONTH_NAME_EPOCH))
end
-- TYPE integer
-- RD date of a start of Chinese sexagesimal day cycle.
M.CHINESE_DAY_NAME_EPOCH = M.rd(45)
-- TYPE fixed-date -> chinese-name
-- Chinese sexagesimal name for date.
function M.chinese_day_name(date)
return M.chinese_sexagesimal_name((date - M.CHINESE_DAY_NAME_EPOCH))
end
-- TYPE (chinese-name fixed-date) -> fixed-date
-- Fixed date of latest date on or before fixed date
-- that has Chinese name.
function M.chinese_day_name_on_or_before(name, date)
return M.mod3(M.chinese_name_difference(M.chinese_day_name(0), name), date, (date - 60))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Chinese New Year in Gregorian year g-year.
function M.chinese_new_year(g_year)
return M.chinese_new_year_on_or_before(M.fixed_from_gregorian(M.gregorian_date(g_year, M.JULY, 1)))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of the Dragon Festival occurring in
-- Gregorian year g-year.
function M.dragon_festival(g_year)
local elapsed_years = ((g_year - M.gregorian_year_from_fixed(M.CHINESE_EPOCH)) + 1)
local cycle = (M.quotient((elapsed_years - 1), 60) + 1)
local year = M.amod(elapsed_years, 60)
return M.fixed_from_chinese(M.chinese_date(cycle, year, 5, false, 5))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Qingming occurring in Gregorian year
-- g-year.
function M.qing_ming(g_year)
return math.floor(M.minor_solar_term_on_or_after(M.fixed_from_gregorian(M.gregorian_date(g_year, M.MARCH, 30))))
end
-- TYPE (chinese-date fixed-date) -> nonnegative-integer
-- Age at fixed date, given Chinese birthdate,
-- according to the Chinese custom. Returns bogus if
-- date is before birthdate.
function M.chinese_age(birthdate, date)
local today = M.chinese_from_fixed(date)
if _truth(((date >= M.fixed_from_chinese(birthdate)))) then
return ((60 * (M.chinese_cycle(today) - M.chinese_cycle(birthdate))) + (M.chinese_year(today) - M.chinese_year(birthdate)) + 1)
else
return M.BOGUS
end
end
-- TYPE augury
-- Lichun occurs twice (double-happiness).
M.DOUBLE_BRIGHT = 3
-- TYPE augury
-- Lichun occurs once at the start.
M.BRIGHT = 2
-- TYPE augury
-- Lichun occurs once at the end.
M.BLIND = 1
-- TYPE augury
-- Lichun does not occur (double-blind year).
M.WIDOW = 0
-- TYPE (chinese-cycle chinese-year) -> augury
-- The marriage augury type of Chinese year in cycle.
function M.chinese_year_marriage_augury(cycle, year)
local new_year = M.fixed_from_chinese(M.chinese_date(cycle, year, 1, false, 1))
local c = (function() if _truth(((year == 60))) then return (cycle + 1) else return cycle end end)()
local y = (function() if _truth(((year == 60))) then return 1 else return (year + 1) end end)()
local next_new_year = M.fixed_from_chinese(M.chinese_date(c, y, 1, false, 1))
local first_minor_term = M.current_minor_solar_term(new_year)
local next_first_minor_term = M.current_minor_solar_term(next_new_year)
if _truth((_truth(((first_minor_term == 1))) and _truth(((next_first_minor_term == 12))))) then
return M.WIDOW
elseif _truth((_truth(((first_minor_term == 1))) and _truth(((next_first_minor_term ~= 12))))) then
return M.BLIND
elseif _truth((_truth(((first_minor_term ~= 1))) and _truth(((next_first_minor_term == 12))))) then
return M.BRIGHT
else
return M.DOUBLE_BRIGHT
end
end
function M.chinese_solar_term_from_fixed(fixed)
-- This one is not in the book, but I added it so that Template:Currect Sekki can use it
local s = M.solar_longitude(
M.universal_from_standard(fixed + 1, M.chinese_location(fixed)))
local l = 15 * (M.quotient(s, 15) % 24) -- Last solar term
local next_l = (l + 15) % 360 -- Next solar term
local next_moment = math.floor(
M.chinese_solar_longitude_on_or_after(next_l, fixed))
local days_until = next_moment - fixed
return {l, next_l, days_until}
end
-- TYPE moment -> location
-- Location for Japanese calendar; varies with tee.
function M.japanese_location(tee)
local year = M.gregorian_year_from_fixed(math.floor(tee))
if _truth(((year < 1888))) then
return M.location(M.deg(35.7), M.angle(139, 46, 0), M.mt(24), M.hr((9 + (143 / 450))))
else
return M.location(M.deg(35), M.deg(135), M.mt(0), M.hr(9))
end
end
----- Japanese calendar (not in the book, but I added them because I wanted to) -----
function M.midnight_in_japan(date)
-- Universal time of (clock) midnight at start of fixed date in Japan
return M.universal_from_standard(date, M.japanese_location(date))
end
function M.japanese_solar_longitude_on_or_after(lambda, date)
-- Moment (Tokyo time) of the first date on or after fixed date (Tokyo time)
-- when the solar longitude will be lambda degrees.
local tee = M.solar_longitude_after(lambda,
M.universal_from_standard(date, M.japanese_location(date)))
return M.standard_from_universal(tee, M.japanese_location(tee))
end
function M.japanese_current_major_solar_term(date)
-- Last Japanese major solar term (chuki) before fixed date
local s = M.solar_longitude(
M.universal_from_standard(date, M.japanese_location(date)))
return M.amod(2 + M.quotient(s, 30), 12)
end
function M.japanese_major_solar_term_on_or_after(date)
-- Moment (in Tokyo) of first Japanese major solar term (chuki) on or after
-- fixed date. The major terms begin when the sun's longitude is a multiple
-- of 30 degrees.
local s = M.solar_longitude(M.midnight_in_japan(date))
local l = (30 * math.ceil(s / 30)) % 360
return M.japanese_solar_longitude_on_or_after(l, date)
end
function M.japanese_current_minor_solar_term(date)
-- Last Japanese minor solar term (sekki) before date
local s = M.solar_longitude(
M.universal_from_standard(date, M.japanese_location(date)))
return M.amod(3 + M.quotient(s - 15, 30), 12)
end
function M.japanese_minor_solar_term_on_or_after(date)
-- Moment (in Tokyo) of the first Japanese minor solar term (sekki) on or
-- after fixed date. The minor terms begin when the sun's longitude is an
-- odd multiple of 15 degrees.
local s = M.solar_longitude(M.midnight_in_japan(date))
local l = (30 * math.ceil((s - 15) / 30) + 15) % 360
return M.japanese_solar_longitude_on_or_after(l, date)
end
function M.japanese_solar_term_from_fixed(fixed)
-- This one is not in the book, but I added it so that Template:Currect Sekki can use it
local s = M.solar_longitude(
M.universal_from_standard(fixed + 1, M.japanese_location(fixed)))
local l = 15 * (M.quotient(s, 15) % 24) -- Last solar term
local next_l = (l + 15) % 360 -- Next solar term
local next_moment = math.floor(
M.japanese_solar_longitude_on_or_after(next_l, fixed))
local days_until = next_moment - fixed
return {l, next_l, days_until}
end
function M.japanese_new_moon_before(date)
-- Fixed date (Tokyo) of first new moon before fixed date
local tee = M.new_moon_before(M.midnight_in_japan(date))
return math.floor(M.standard_from_universal(tee, M.japanese_location(tee)))
end
function M.japanese_new_moon_on_or_after(date)
-- Fixed date (Tokyo) of first new moon on or after fixed date
local tee = M.new_moon_at_or_after(M.midnight_in_japan(date))
return math.floor(M.standard_from_universal(tee, M.japanese_location(tee)))
end
function M.japanese_no_major_solar_term(date)
-- True if Japanese lunar month starting on date has no major solar term
return M.japanese_current_major_solar_term(date)
== M.japanese_current_major_solar_term(
M.japanese_new_moon_on_or_after(date + 1))
end
function M.japanese_winter_solstice_on_or_before(date)
-- Fixed date, in the Japanese zone, of winter solstice on or before fixed date
local approx = M.estimate_prior_solar_longitude(
M.WINTER, M.midnight_in_japan(date + 1))
local day = math.floor(approx) - 1
while not (M.WINTER < M.solar_longitude(M.midnight_in_japan(day + 1))) do
day = day + 1
end
return day
end
function M.japanese_new_year_in_sui(date)
-- Fixed date of Japanese New Year in sui (period from solstice to solstice)
-- containing date.
local s1 = M.japanese_winter_solstice_on_or_before(date)
local s2 = M.japanese_winter_solstice_on_or_before(s1 + 370)
local m12 = M.japanese_new_moon_on_or_after(s1 + 1)
local m13 = M.japanese_new_moon_on_or_after(m12 + 1)
local next_m11 = M.japanese_new_moon_before(s2 + 1)
if math.floor(0.5 + (next_m11 - m12) / M.MEAN_SYNODIC_MONTH) == 12
and (M.japanese_no_major_solar_term(m12)
or M.japanese_no_major_solar_term(m13)) then
return M.japanese_new_moon_on_or_after(m13 + 1)
else
return m13
end
end
function M.japanese_new_year_on_or_before(date)
-- Fixed date of Japanese New Year on or before fixed date
local new_year = M.japanese_new_year_in_sui(date)
if date >= new_year then
return new_year
else
-- Got the New Year after; this happens if date is after the solstice
-- but before the new year. Go back half a year.
return M.japanese_new_year_in_sui(date - 180)
end
end
M.japanese_prior_leap_month = function(m_prime, m)
-- True if there is a Japanese leap month on or after lunar month starting
-- m-prime and at or before lunar month starting m.
return m >= m_prime
and (M.japanese_no_major_solar_term(m)
or M.japanese_prior_leap_month(
m_prime, M.japanese_new_moon_before(m)))
end
function M.japanese_from_fixed(date)
-- Japanese date (cycle year month leap day) of fixed date
local s1 = M.japanese_winter_solstice_on_or_before(date)
local s2 = M.japanese_winter_solstice_on_or_before(s1 + 370)
local m12 = M.japanese_new_moon_on_or_after(s1 + 1)
local next_m11 = M.japanese_new_moon_before(s2 + 1)
local m = M.japanese_new_moon_before(date + 1)
local leap_year = math.floor(
0.5 + (next_m11 - m12) / M.MEAN_SYNODIC_MONTH) == 12
local prior = (leap_year and M.japanese_prior_leap_month(m12, m)) and 1 or 0
local month = M.amod(
math.floor(0.5 + (m - m12) / M.MEAN_SYNODIC_MONTH) - prior, 12)
local leap_month = leap_year
and M.japanese_no_major_solar_term(m)
and (not M.japanese_prior_leap_month(
m12, M.japanese_new_moon_before(m)))
local elapsed_years = math.floor(
1.5 - month / 12 + (date - M.CHINESE_EPOCH) / M.MEAN_TROPICAL_YEAR)
local cycle = M.quotient(elapsed_years - 1, 60) + 1
local year = M.amod(elapsed_years, 60)
local day = date - m + 1
return {cycle, year, month, leap_month, day}
end
function M.fixed_from_japanese(j_date)
-- Fixed date of Japanese date j-date.
local cycle, year, month, leap, day =
j_date[1], j_date[2], j_date[3], j_date[4], j_date[5]
local mid_year = math.floor(M.CHINESE_EPOCH
+ ((cycle - 1) * 60 + (year - 1) + 1 / 2) * M.MEAN_TROPICAL_YEAR)
local new_year = M.japanese_new_year_on_or_before(mid_year)
local moon = M.japanese_new_moon_on_or_after(new_year + (month - 1) * 29)
local d = M.japanese_from_fixed(moon)
local prior_new_moon
if month == d[3] and leap == d[4] then
prior_new_moon = moon
else
prior_new_moon = M.japanese_new_moon_on_or_after(moon + 1)
end
return prior_new_moon + day - 1
end
function M.fixed_from_japanese_for_wikipedia(args)
-- Not in the book: adapts the leap-month field to Wikipedia #invoke, where
-- 1 means true and 0 means false.
return M.fixed_from_japanese(
{args[1], args[2], args[3], args[4] == 1, args[5]})
end
-- TYPE moment -> location
-- Location for Korean calendar; varies with tee.
-- Seoul city hall at a varying time zone.
function M.korean_location(tee)
local z = (function() if _truth(((tee < M.fixed_from_gregorian(M.gregorian_date(1908, M.APRIL, 1))))) then return (3809 / 450) elseif _truth(((tee < M.fixed_from_gregorian(M.gregorian_date(1912, M.JANUARY, 1))))) then return 8.5 elseif _truth(((tee < M.fixed_from_gregorian(M.gregorian_date(1954, M.MARCH, 21))))) then return 9 elseif _truth(((tee < M.fixed_from_gregorian(M.gregorian_date(1961, M.AUGUST, 10))))) then return 8.5 else return 9 end end)()
return M.location(M.angle(37, 34, 0), M.angle(126, 58, 0), M.mt(0), M.hr(z))
end
-- TYPE (chinese-cycle chinese-year) -> integer
-- Equivalent Korean year to Chinese cycle and year
function M.korean_year(cycle, year)
return ((60 * cycle) + year + -364)
end
----- Korean calendar (not in the book, but I added them because I wanted to) -----
function M.midnight_in_korea(date)
-- Universal time of (clock) midnight at start of fixed date in Korea
return M.universal_from_standard(date, M.korean_location(date))
end
function M.korean_solar_longitude_on_or_after(lambda, date)
-- Moment (Seoul time) of the first date on or after fixed date (Seoul time)
-- when the solar longitude will be lambda degrees.
local tee = M.solar_longitude_after(lambda,
M.universal_from_standard(date, M.korean_location(date)))
return M.standard_from_universal(tee, M.korean_location(tee))
end
function M.korean_current_major_solar_term(date)
-- Last Korean major solar term before fixed date
local s = M.solar_longitude(
M.universal_from_standard(date, M.korean_location(date)))
return M.amod(2 + M.quotient(s, 30), 12)
end
function M.korean_major_solar_term_on_or_after(date)
-- Moment (in Seoul) of first Korean major solar term on or after
-- fixed date. The major terms begin when the sun's longitude is a multiple
-- of 30 degrees.
local s = M.solar_longitude(M.midnight_in_korea(date))
local l = (30 * math.ceil(s / 30)) % 360
return M.korean_solar_longitude_on_or_after(l, date)
end
function M.korean_current_minor_solar_term(date)
-- Last Korean minor solar term before date
local s = M.solar_longitude(
M.universal_from_standard(date, M.korean_location(date)))
return M.amod(3 + M.quotient(s - 15, 30), 12)
end
function M.korean_minor_solar_term_on_or_after(date)
-- Moment (in Seoul) of the first Korean minor solar term on or
-- after fixed date. The minor terms begin when the sun's longitude is an
-- odd multiple of 15 degrees.
local s = M.solar_longitude(M.midnight_in_japan(date))
local l = (30 * math.ceil((s - 15) / 30) + 15) % 360
return M.korean_solar_longitude_on_or_after(l, date)
end
function M.korean_solar_term_from_fixed(fixed)
-- This one is not in the book, but I added it so that Template:Currect Sekki can use it
local s = M.solar_longitude(
M.universal_from_standard(fixed + 1, M.korean_location(fixed)))
local l = 15 * (M.quotient(s, 15) % 24) -- Last solar term
local next_l = (l + 15) % 360 -- Next solar term
local next_moment = math.floor(
M.korean_solar_longitude_on_or_after(next_l, fixed))
local days_until = next_moment - fixed
return {l, next_l, days_until}
end
function M.korean_new_moon_before(date)
-- Fixed date (Seoul) of first new moon before fixed date
local tee = M.new_moon_before(M.midnight_in_japan(date))
return math.floor(M.standard_from_universal(tee, M.korean_location(tee)))
end
function M.korean_new_moon_on_or_after(date)
-- Fixed date (Seoul) of first new moon on or after fixed date
local tee = M.new_moon_at_or_after(M.midnight_in_korea(date))
return math.floor(M.standard_from_universal(tee, M.korean_location(tee)))
end
function M.korean_no_major_solar_term(date)
-- True if Korean lunar month starting on date has no major solar term
return M.korean_current_major_solar_term(date)
== M.korean_current_major_solar_term(
M.korean_new_moon_on_or_after(date + 1))
end
function M.korean_winter_solstice_on_or_before(date)
-- Fixed date, in the Korean zone, of winter solstice on or before fixed date
local approx = M.estimate_prior_solar_longitude(
M.WINTER, M.midnight_in_korea(date + 1))
local day = math.floor(approx) - 1
while not (M.WINTER < M.solar_longitude(M.midnight_in_korea(day + 1))) do
day = day + 1
end
return day
end
function M.korean_new_year_in_sui(date)
-- Fixed date of Korean New Year in sui (period from solstice to solstice)
-- containing date.
local s1 = M.korean_winter_solstice_on_or_before(date)
local s2 = M.korean_winter_solstice_on_or_before(s1 + 370)
local m12 = M.korean_new_moon_on_or_after(s1 + 1)
local m13 = M.korean_new_moon_on_or_after(m12 + 1)
local next_m11 = M.korean_new_moon_before(s2 + 1)
if math.floor(0.5 + (next_m11 - m12) / M.MEAN_SYNODIC_MONTH) == 12
and (M.korean_no_major_solar_term(m12)
or M.korean_no_major_solar_term(m13)) then
return M.korean_new_moon_on_or_after(m13 + 1)
else
return m13
end
end
function M.korean_new_year_on_or_before(date)
-- Fixed date of Korean New Year on or before fixed date
local new_year = M.korean_new_year_in_sui(date)
if date >= new_year then
return new_year
else
-- Got the New Year after; this happens if date is after the solstice
-- but before the new year. Go back half a year.
return M.korean_new_year_in_sui(date - 180)
end
end
M.korean_prior_leap_month = function(m_prime, m)
-- True if there is a Korean leap month on or after lunar month starting
-- m-prime and at or before lunar month starting m.
return m >= m_prime
and (M.korean_no_major_solar_term(m)
or M.korean_prior_leap_month(
m_prime, M.korean_new_moon_before(m)))
end
function M.korean_from_fixed(date)
-- Korean date (year month leap day) of fixed date
local s1 = M.korean_winter_solstice_on_or_before(date)
local s2 = M.korean_winter_solstice_on_or_before(s1 + 370)
local m12 = M.korean_new_moon_on_or_after(s1 + 1)
local next_m11 = M.korean_new_moon_before(s2 + 1)
local m = M.korean_new_moon_before(date + 1)
local leap_year = math.floor(
0.5 + (next_m11 - m12) / M.MEAN_SYNODIC_MONTH) == 12
local prior = (leap_year and M.korean_prior_leap_month(m12, m)) and 1 or 0
local month = M.amod(
math.floor(0.5 + (m - m12) / M.MEAN_SYNODIC_MONTH) - prior, 12)
local leap_month = leap_year
and M.korean_no_major_solar_term(m)
and (not M.korean_prior_leap_month(
m12, M.korean_new_moon_before(m)))
local elapsed_years = math.floor(
1.5 - month / 12 + (date - M.CHINESE_EPOCH) / M.MEAN_TROPICAL_YEAR)
local cycle = M.quotient(elapsed_years - 1, 60) + 1
local year = M.amod(elapsed_years, 60)
local day = date - m + 1
return {cycle, year, month, leap_month, day}
end
function M.korean_from_fixed_for_wikipedia(fixed)
-- Not in the book
local k_date = M.korean_from_fixed(fixed)
return {M.korean_year(k_date[1], k_date[2]), k_date[3], k_date[4], k_date[5]}
end
function M.fixed_from_korean(k_date)
-- Fixed date of korean date k-date.
local cycle, year, month, leap, day =
k_date[1], k_date[2], k_date[3], k_date[4], k_date[5]
local mid_year = math.floor(M.CHINESE_EPOCH
+ ((cycle - 1) * 60 + (year - 1) + 1 / 2) * M.MEAN_TROPICAL_YEAR)
local new_year = M.korean_new_year_on_or_before(mid_year)
local moon = M.korean_new_moon_on_or_after(new_year + (month - 1) * 29)
local d = M.korean_from_fixed(moon)
local prior_new_moon
if month == d[3] and leap == d[4] then
prior_new_moon = moon
else
prior_new_moon = M.korean_new_moon_on_or_after(moon + 1)
end
return prior_new_moon + day - 1
end
function M.fixed_from_korean_for_wikipedia(args)
-- Not in the book: adapts the leap-month field to Wikipedia #invoke, where
-- 1 means true and 0 means false.
return M.fixed_from_korean(
{args[1], args[2], args[3], args[4] == 1, args[5]})
end
-- TYPE moment -> location
-- Location for Vietnamese calendar is Hanoi; varies with
-- tee. Time zone has changed over the years.
function M.vietnamese_location(tee)
local z = (function() if _truth(((tee < M.gregorian_new_year(1968)))) then return 8 else return 7 end end)()
return M.location(M.angle(21, 2, 0), M.angle(105, 51, 0), M.mt(12), M.hr(z))
end
----- D.20 The Modern Hindu Calendars -----
-- TYPE rational
-- Mean length of Hindu sidereal year.
M.HINDU_SIDEREAL_YEAR = (365 + (279457 / 1080000))
-- TYPE rational
-- Mean length of Hindu sidereal month.
M.HINDU_SIDEREAL_MONTH = (27 + (4644439 / 14438334))
-- TYPE rational
-- Mean time from new moon to new moon.
M.HINDU_SYNODIC_MONTH = (29 + (7087771 / 13358334))
-- TYPE integer -> rational-amplitude
-- This simulates the Hindu sine table.
-- entry is an angle given as a multiplier of 225’.
function M.hindu_sine_table(entry)
local exact = (3438 * M.sin_degrees((entry * M.angle(0, 225, 0))))
local error = (0.215 * M.sign(exact) * M.sign((math.abs(exact) - 1716)))
return (_round((exact + error)) / 3438)
end
-- TYPE rational-angle -> rational-amplitude
-- Linear interpolation for theta in Hindu table.
function M.hindu_sine(theta)
local entry = (theta / M.angle(0, 225, 0))
local fraction = (entry % 1)
return ((fraction * M.hindu_sine_table(math.ceil(entry))) + ((1 - fraction) * M.hindu_sine_table(math.floor(entry))))
end
-- TYPE rational-amplitude -> rational-angle
-- Inverse of Hindu sine function of amp.
function M.hindu_arcsin(amp)
if _truth(((amp < 0))) then
return (-M.hindu_arcsin((-amp)))
else
local pos = M.next(0, function(k) return _truth(((amp <= M.hindu_sine_table(k)))) end)
local below = M.hindu_sine_table((pos - 1))
return (M.angle(0, 225, 0) * (pos + -1 + ((amp - below) / (M.hindu_sine_table(pos) - below))))
end
end
-- TYPE (rational-moment rational) -> rational-angle
-- Position in degrees at moment tee in uniform circular
-- orbit of period days.
function M.hindu_mean_position(tee, period)
return (M.deg(360) * (((tee - M.HINDU_CREATION) / period) % 1))
end
-- TYPE fixed-date
-- Fixed date of Hindu creation.
M.HINDU_CREATION = (M.HINDU_EPOCH - (1955880000 * M.HINDU_SIDEREAL_YEAR))
-- TYPE rational
-- Time from aphelion to aphelion.
M.HINDU_ANOMALISTIC_YEAR = (1577917828000 / (4320000000 - 387))
-- TYPE rational
-- Time from apogee to apogee, with bija correction.
M.HINDU_ANOMALISTIC_MONTH = (1577917828 / (57753336 - 488199))
-- TYPE (rational-moment rational rational rational
-- TYPE rational) -> rational-angle
-- Longitudinal position at moment tee. period is
-- period of mean motion in days. size is ratio of
-- radii of epicycle and deferent. anomalistic is the
-- period of retrograde revolution about epicycle.
-- change is maximum decrease in epicycle size.
function M.hindu_true_position(tee, period, size, anomalistic, change)
local lambda = M.hindu_mean_position(tee, period)
local offset = M.hindu_sine(M.hindu_mean_position(tee, anomalistic))
local contraction = (math.abs(offset) * change * size)
local equation = M.hindu_arcsin((offset * (size - contraction)))
return ((lambda - equation) % 360)
end
-- TYPE rational-moment -> rational-angle
-- Solar longitude at moment tee.
function M.hindu_solar_longitude(tee)
return M.hindu_true_position(tee, M.HINDU_SIDEREAL_YEAR, (14 / 360), M.HINDU_ANOMALISTIC_YEAR, (1 / 42))
end
-- TYPE rational-moment -> hindu-solar-month
-- Zodiacal sign of the sun, as integer in range 1..12,
-- at moment tee.
function M.hindu_zodiac(tee)
return (M.quotient(M.hindu_solar_longitude(tee), M.deg(30)) + 1)
end
-- TYPE rational-moment -> rational-angle
-- Lunar longitude at moment tee.
function M.hindu_lunar_longitude(tee)
return M.hindu_true_position(tee, M.HINDU_SIDEREAL_MONTH, (32 / 360), M.HINDU_ANOMALISTIC_MONTH, (1 / 96))
end
-- TYPE rational-moment -> rational-angle
-- Longitudinal distance between the sun and moon
-- at moment tee.
function M.hindu_lunar_phase(tee)
return ((M.hindu_lunar_longitude(tee) - M.hindu_solar_longitude(tee)) % 360)
end
-- TYPE rational-moment -> hindu-lunar-day
-- Phase of moon (tithi) at moment tee, as an integer in
-- the range 1..30.
function M.hindu_lunar_day_from_moment(tee)
return (M.quotient(M.hindu_lunar_phase(tee), M.deg(12)) + 1)
end
-- TYPE rational-moment -> rational-moment
-- Approximate moment of last new moon preceding moment
-- tee, close enough to determine zodiacal sign.
function M.hindu_new_moon_before(tee)
local varepsilon = (2 ^ -1000)
local tau = (tee - ((1 / M.deg(360)) * M.hindu_lunar_phase(tee) * M.HINDU_SYNODIC_MONTH))
return M.binary_search((tau - 1), math.min(tee, (tau + 1)), function(x) local l, h = 0, 0; return _truth(((M.hindu_lunar_phase(x) < M.deg(180)))) end, function(l, h) local x = (l + h) / 2; return _truth((_truth(((M.hindu_zodiac(l) == M.hindu_zodiac(h)))) or _truth((((h - l) < varepsilon))))) end)
end
-- TYPE (hindu-solar-year hindu-solar-month hindu-solar-day)
-- TYPE -> hindu-solar-date
function M.hindu_solar_date(year, month, day)
return _list(year, month, day)
end
-- TYPE rational-moment -> hindu-solar-year
-- Determine solar year at given moment tee.
function M.hindu_calendar_year(tee)
return _round((((tee - M.HINDU_EPOCH) / M.HINDU_SIDEREAL_YEAR) - (M.hindu_solar_longitude(tee) / M.deg(360))))
end
-- TYPE standard-year
-- Years from Kali Yuga until Saka era.
M.HINDU_SOLAR_ERA = 3179
-- TYPE fixed-date -> hindu-solar-date
-- Hindu (Orissa) solar date equivalent to fixed date.
function M.hindu_solar_from_fixed(date)
local critical = M.hindu_sunrise((date + 1))
local month = M.hindu_zodiac(critical)
local year = (M.hindu_calendar_year(critical) - M.HINDU_SOLAR_ERA)
local approx = (date - 3 - (math.floor(M.hindu_solar_longitude(critical)) % M.deg(30)))
local start = M.next(approx, function(i) return _truth(((M.hindu_zodiac(M.hindu_sunrise((i + 1))) == month))) end)
local day = (date - start - -1)
return M.hindu_solar_date(year, month, day)
end
-- TYPE hindu-solar-date -> fixed-date
-- Fixed date corresponding to Hindu solar date s-date
-- (Saka era; Orissa rule.)
function M.fixed_from_hindu_solar(s_date)
local month = M.standard_month(s_date)
local day = M.standard_day(s_date)
local year = M.standard_year(s_date)
local start = (math.floor(((year + M.HINDU_SOLAR_ERA + ((month - 1) / 12)) * M.HINDU_SIDEREAL_YEAR)) + M.HINDU_EPOCH)
return (day + -1 + M.next((start - 3), function(d) return _truth(((M.hindu_zodiac(M.hindu_sunrise((d + 1))) == month))) end))
end
-- TYPE (hindu-lunar-year hindu-lunar-month
-- TYPE hindu-lunar-leap-month hindu-lunar-day
-- TYPE hindu-lunar-leap-day) -> hindu-lunar-date
function M.hindu_lunar_date(year, month, leap_month, day, leap_day)
return _list(year, month, leap_month, day, leap_day)
end
-- TYPE hindu-lunar-date -> hindu-lunar-month
function M.hindu_lunar_month(date)
return _nth(1, date)
end
-- TYPE hindu-lunar-date -> hindu-lunar-leap-month
function M.hindu_lunar_leap_month(date)
return _nth(2, date)
end
-- TYPE hindu-lunar-date -> hindu-lunar-day
function M.hindu_lunar_day(date)
return _nth(3, date)
end
-- TYPE hindu-lunar-date -> hindu-lunar-leap-day
function M.hindu_lunar_leap_day(date)
return _nth(4, date)
end
-- TYPE hindu-lunar-date -> hindu-lunar-year
function M.hindu_lunar_year(date)
return _nth(0, date)
end
-- TYPE standard-year
-- Years from Kali Yuga until Vikrama era.
M.HINDU_LUNAR_ERA = 3044
-- TYPE fixed-date -> hindu-lunar-date
-- Hindu lunar date, new-moon scheme,
-- equivalent to fixed date.
function M.hindu_lunar_from_fixed(date)
local critical = M.hindu_sunrise(date)
local day = M.hindu_lunar_day_from_moment(critical)
local leap_day = ((day == M.hindu_lunar_day_from_moment(M.hindu_sunrise((date - 1)))))
local last_new_moon = M.hindu_new_moon_before(critical)
local next_new_moon = M.hindu_new_moon_before((math.floor(last_new_moon) + 35))
local solar_month = M.hindu_zodiac(last_new_moon)
local leap_month = ((solar_month == M.hindu_zodiac(next_new_moon)))
local month = M.amod((solar_month + 1), 12)
local year = (M.hindu_calendar_year((function() if _truth(((month <= 2))) then return (date + 180) else return date end end)()) - M.HINDU_LUNAR_ERA)
return M.hindu_lunar_date(year, month, leap_month, day, leap_day)
end
-- TYPE hindu-lunar-date -> fixed-date
-- Fixed date corresponding to Hindu lunar date l-date.
function M.fixed_from_hindu_lunar(l_date)
local year = M.hindu_lunar_year(l_date)
local month = M.hindu_lunar_month(l_date)
local leap_month = M.hindu_lunar_leap_month(l_date)
local day = M.hindu_lunar_day(l_date)
local leap_day = M.hindu_lunar_leap_day(l_date)
local approx = (M.HINDU_EPOCH + (M.HINDU_SIDEREAL_YEAR * (year + M.HINDU_LUNAR_ERA + ((month - 1) / 12))))
local s = math.floor((approx - (M.HINDU_SIDEREAL_YEAR * M.mod3(((M.hindu_solar_longitude(approx) / M.deg(360)) - ((month - 1) / 12)), (-1 / 2), (1 / 2)))))
local k = M.hindu_lunar_day_from_moment((s + M.hr(6)))
local est = (s - (-day) - (function() if _truth(((3 < k) and (k < 27))) then return k elseif _truth((function() local mid = M.hindu_lunar_from_fixed((s - 15)); return (_truth(((M.hindu_lunar_month(mid) ~= month))) or _truth((_truth(M.hindu_lunar_leap_month(mid)) and _truth((not _truth(leap_month)))))) end)()) then return M.mod3(k, -15, 15) else return M.mod3(k, 15, 45) end end)())
local tau = (est - M.mod3((M.hindu_lunar_day_from_moment((est + M.hr(6))) - day), -15, 15))
local date = M.next((tau - 1), function(d) return _truth(_member(M.hindu_lunar_day_from_moment(M.hindu_sunrise(d)), _list(day, M.amod((day + 1), 30)))) end)
if _truth(leap_day) then
return (date + 1)
else
return date
end
end
-- TYPE location
-- Location of Ujjain.
M.UJJAIN = M.location(M.angle(23, 9, 0), M.angle(75, 46, 6), M.mt(0), M.hr((5 + (461 / 9000))))
-- TYPE location
-- Location (Ujjain) for determining Hindu calendar.
M.HINDU_LOCATION = M.UJJAIN
-- TYPE (fixed-date location) -> rational-angle
-- Difference between right and oblique ascension
-- of sun on date at location.
function M.hindu_ascensional_difference(date, location)
local sin_delta = ((1397 / 3438) * M.hindu_sine(M.hindu_tropical_longitude(date)))
local phi = M.latitude(location)
local diurnal_radius = M.hindu_sine((M.deg(90) + M.hindu_arcsin(sin_delta)))
local tan_phi = (M.hindu_sine(phi) / M.hindu_sine((M.deg(90) + phi)))
local earth_sine = (sin_delta * tan_phi)
return M.hindu_arcsin((-(earth_sine / diurnal_radius)))
end
-- TYPE fixed-date -> rational-angle
-- Hindu tropical longitude on fixed date.
-- Assumes precession with maximum of 27 degrees
-- and period of 7200 sidereal years
-- (= 1577917828/600 days).
function M.hindu_tropical_longitude(date)
local days = (date - M.HINDU_EPOCH)
local precession = (M.deg(27) - math.abs((M.deg(108) * M.mod3((((600 / 1577917828) * days) - (1 / 4)), (-1 / 2), (1 / 2)))))
return ((M.hindu_solar_longitude(date) - precession) % 360)
end
-- TYPE fixed-date -> rational-angle
-- Difference between solar and sidereal day on date.
function M.hindu_solar_sidereal_difference(date)
return (M.hindu_daily_motion(date) * M.hindu_rising_sign(date))
end
-- TYPE fixed-date -> rational-angle
-- Sidereal daily motion of sun on date.
function M.hindu_daily_motion(date)
local mean_motion = (M.deg(360) / M.HINDU_SIDEREAL_YEAR)
local anomaly = M.hindu_mean_position(date, M.HINDU_ANOMALISTIC_YEAR)
local epicycle = ((14 / 360) - (math.abs(M.hindu_sine(anomaly)) / 1080))
local entry = M.quotient(anomaly, M.angle(0, 225, 0))
local sine_table_step = (M.hindu_sine_table((entry + 1)) - M.hindu_sine_table(entry))
local factor = ((-3438 / 225) * sine_table_step * epicycle)
return (mean_motion * (factor + 1))
end
-- TYPE fixed-date -> rational-amplitude
-- Tabulated speed of rising of current zodiacal sign on
-- date.
function M.hindu_rising_sign(date)
local i = M.quotient(M.hindu_tropical_longitude(date), M.deg(30))
return _nth((i % 6), _list((1670 / 1800), (1795 / 1800), (1935 / 1800), (1935 / 1800), (1795 / 1800), (1670 / 1800)))
end
-- TYPE fixed-date -> rational-moment
-- Time from true to mean midnight of date.
-- (This is a gross approximation to the correct value.)
function M.hindu_equation_of_time(date)
local offset = M.hindu_sine(M.hindu_mean_position(date, M.HINDU_ANOMALISTIC_YEAR))
local equation_sun = (offset * M.angle(57, 18, 0) * ((14 / 360) - (math.abs(offset) / 1080)))
return ((M.hindu_daily_motion(date) / M.deg(360)) * (equation_sun / M.deg(360)) * M.HINDU_SIDEREAL_YEAR)
end
-- TYPE fixed-date -> rational-moment
-- Sunrise at hindu-location on date.
function M.hindu_sunrise(date)
return (date + M.hr(6) + ((M.longitude(M.UJJAIN) - M.longitude(M.HINDU_LOCATION)) / M.deg(360)) + (-M.hindu_equation_of_time(date)) + (((1577917828 / 1582237828) / M.deg(360)) * (M.hindu_ascensional_difference(date, M.HINDU_LOCATION) + ((1 / 4) * M.hindu_solar_sidereal_difference(date)))))
end
-- TYPE fixed-date -> rational-moment
-- Sunset at hindu-location on date.
function M.hindu_sunset(date)
return (date + M.hr(18) + ((M.longitude(M.UJJAIN) - M.longitude(M.HINDU_LOCATION)) / M.deg(360)) + (-M.hindu_equation_of_time(date)) + (((1577917828 / 1582237828) / M.deg(360)) * ((-M.hindu_ascensional_difference(date, M.HINDU_LOCATION)) + ((3 / 4) * M.hindu_solar_sidereal_difference(date)))))
end
-- TYPE rational-moment -> rational-moment
-- Hindu local time of temporal moment tee.
function M.hindu_standard_from_sundial(tee)
local date = M.fixed_from_moment(tee)
local time = M.time_from_moment(tee)
local q = math.floor((4 * time))
local a = (function() if _truth(((q == 0))) then return M.hindu_sunset((date - 1)) elseif _truth(((q == 3))) then return M.hindu_sunset(date) else return M.hindu_sunrise(date) end end)()
local b = (function() if _truth(((q == 0))) then return M.hindu_sunrise(date) elseif _truth(((q == 3))) then return M.hindu_sunrise((date + 1)) else return M.hindu_sunset(date) end end)()
return (a + (2 * (b - a) * (time - (function() if _truth(((q == 3))) then return M.hr(18) elseif _truth(((q == 0))) then return M.hr(-6) else return M.hr(6) end end)())))
end
-- TYPE fixed-date -> hindu-lunar-date
-- Hindu lunar date, full-moon scheme,
-- equivalent to fixed date.
function M.hindu_fullmoon_from_fixed(date)
local l_date = M.hindu_lunar_from_fixed(date)
local year = M.hindu_lunar_year(l_date)
local month = M.hindu_lunar_month(l_date)
local leap_month = M.hindu_lunar_leap_month(l_date)
local day = M.hindu_lunar_day(l_date)
local leap_day = M.hindu_lunar_leap_day(l_date)
local m = (function() if _truth(((day >= 16))) then return M.hindu_lunar_month(M.hindu_lunar_from_fixed((date + 20))) else return month end end)()
return M.hindu_lunar_date(year, m, leap_month, day, leap_day)
end
-- TYPE hindu-lunar-date -> fixed-date
-- Fixed date equivalent to Hindu lunar l-date
-- in full-moon scheme.
function M.fixed_from_hindu_fullmoon(l_date)
local year = M.hindu_lunar_year(l_date)
local month = M.hindu_lunar_month(l_date)
local leap_month = M.hindu_lunar_leap_month(l_date)
local day = M.hindu_lunar_day(l_date)
local leap_day = M.hindu_lunar_leap_day(l_date)
local m = (function() if _truth((_truth(leap_month) or _truth(((day <= 15))))) then return month elseif _truth(M.hindu_expunged_p(year, M.amod((month - 1), 12))) then return M.amod((month - 2), 12) else return M.amod((month - 1), 12) end end)()
return M.fixed_from_hindu_lunar(M.hindu_lunar_date(year, m, leap_month, day, leap_day))
end
-- TYPE (hindu-lunar-year hindu-lunar-month) ->
-- TYPE boolean
-- True of Hindu lunar month l-month in l-year
-- is expunged.
function M.hindu_expunged_p(l_year, l_month)
return ((l_month ~= M.hindu_lunar_month(M.hindu_lunar_from_fixed(M.fixed_from_hindu_lunar(_list(l_year, l_month, false, 15, false))))))
end
-- TYPE fixed-date -> rational-moment
-- Astronomical sunrise at Hindu location on date,
-- per Lahiri,
-- rounded to nearest minute, as a rational number.
function M.alt_hindu_sunrise(date)
local rise = M.dawn(date, M.HINDU_LOCATION, M.angle(0, 47, 0))
return ((1 / 24) * (1 / 60) * _round((rise * 24 * 60)))
end
-- TYPE moment -> angle
-- Difference between tropical and sidereal solar longitude.
function M.ayanamsha(tee)
return (M.solar_longitude(tee) - M.sidereal_solar_longitude(tee))
end
-- TYPE (season moment) -> moment
-- Moment of the first time at or after tee
-- when Hindu solar longitude will be lambda degrees.
function M.hindu_solar_longitude_at_or_after(lambda, tee)
local tau = (tee + (M.HINDU_SIDEREAL_YEAR * (1 / M.deg(360)) * ((lambda - M.hindu_solar_longitude(tee)) % 360)))
local a = math.max(tee, (tau - 5))
local b = (tau + 5)
return M.invert_angular(M.hindu_solar_longitude, lambda, M.interval_closed(a, b))
end
-- TYPE gregorian-year -> rational-moment
-- Fixed moment of Mesha samkranti (Vernal equinox)
-- in Gregorian g-year.
function M.mesha_samkranti(g_year)
local jan1 = M.gregorian_new_year(g_year)
return M.hindu_solar_longitude_at_or_after(M.deg(0), jan1)
end
-- TYPE angle
M.SIDEREAL_START = M.precession(M.universal_from_local(M.mesha_samkranti(M.ce(285)), M.HINDU_LOCATION))
-- TYPE fixed-date -> moment
-- Geometrical sunset at Hindu location on date.
function M.astro_hindu_sunset(date)
return M.dusk(date, M.HINDU_LOCATION, M.deg(0))
end
-- TYPE moment -> hindu-solar-month
-- Sidereal zodiacal sign of the sun, as integer in range
-- 1..12, at moment tee.
function M.sidereal_zodiac(tee)
return (M.quotient(M.sidereal_solar_longitude(tee), M.deg(30)) + 1)
end
-- TYPE moment -> hindu-solar-year
-- Astronomical Hindu solar year KY at given moment tee.
function M.astro_hindu_calendar_year(tee)
return _round((((tee - M.HINDU_EPOCH) / M.MEAN_SIDEREAL_YEAR) - (M.sidereal_solar_longitude(tee) / M.deg(360))))
end
-- TYPE fixed-date -> hindu-solar-date
-- Astronomical Hindu (Tamil) solar date equivalent to
-- fixed date.
function M.astro_hindu_solar_from_fixed(date)
local critical = M.astro_hindu_sunset(date)
local month = M.sidereal_zodiac(critical)
local year = (M.astro_hindu_calendar_year(critical) - M.HINDU_SOLAR_ERA)
local approx = (date - 3 - (math.floor(M.sidereal_solar_longitude(critical)) % M.deg(30)))
local start = M.next(approx, function(i) return _truth(((M.sidereal_zodiac(M.astro_hindu_sunset(i)) == month))) end)
local day = (date - start - -1)
return M.hindu_solar_date(year, month, day)
end
-- TYPE hindu-solar-date -> fixed-date
-- Fixed date corresponding to Astronomical
-- Hindu solar date (Tamil rule; Saka era).
function M.fixed_from_astro_hindu_solar(s_date)
local month = M.standard_month(s_date)
local day = M.standard_day(s_date)
local year = M.standard_year(s_date)
local approx = (M.HINDU_EPOCH + -3 + math.floor((((year + M.HINDU_SOLAR_ERA) + ((month - 1) / 12)) * M.MEAN_SIDEREAL_YEAR)))
local start = M.next(approx, function(i) return _truth(((M.sidereal_zodiac(M.astro_hindu_sunset(i)) == month))) end)
return (start + day + -1)
end
-- TYPE moment -> hindu-lunar-day
-- Phase of moon (tithi) at moment tee, as an integer in
-- the range 1..30.
function M.astro_lunar_day_from_moment(tee)
return (M.quotient(M.lunar_phase(tee), M.deg(12)) + 1)
end
-- TYPE fixed-date -> hindu-lunar-date
-- Astronomical Hindu lunar date equivalent to fixed date.
function M.astro_hindu_lunar_from_fixed(date)
local critical = M.alt_hindu_sunrise(date)
local day = M.astro_lunar_day_from_moment(critical)
local leap_day = ((day == M.astro_lunar_day_from_moment(M.alt_hindu_sunrise((date - 1)))))
local last_new_moon = M.new_moon_before(critical)
local next_new_moon = M.new_moon_at_or_after(critical)
local solar_month = M.sidereal_zodiac(last_new_moon)
local leap_month = ((solar_month == M.sidereal_zodiac(next_new_moon)))
local month = M.amod((solar_month + 1), 12)
local year = (M.astro_hindu_calendar_year((function() if _truth(((month <= 2))) then return (date + 180) else return date end end)()) - M.HINDU_LUNAR_ERA)
return M.hindu_lunar_date(year, month, leap_month, day, leap_day)
end
-- TYPE hindu-lunar-date -> fixed-date
-- Fixed date corresponding to Hindu lunar date l-date.
function M.fixed_from_astro_hindu_lunar(l_date)
local year = M.hindu_lunar_year(l_date)
local month = M.hindu_lunar_month(l_date)
local leap_month = M.hindu_lunar_leap_month(l_date)
local day = M.hindu_lunar_day(l_date)
local leap_day = M.hindu_lunar_leap_day(l_date)
local approx = (M.HINDU_EPOCH + (M.MEAN_SIDEREAL_YEAR * (year + M.HINDU_LUNAR_ERA + ((month - 1) / 12))))
local s = math.floor((approx - (M.HINDU_SIDEREAL_YEAR * M.mod3(((M.sidereal_solar_longitude(approx) / M.deg(360)) - ((month - 1) / 12)), (-1 / 2), (1 / 2)))))
local k = M.astro_lunar_day_from_moment((s + M.hr(6)))
local est = (s - (-day) - (function() if _truth(((3 < k) and (k < 27))) then return k elseif _truth((function() local mid = M.astro_hindu_lunar_from_fixed((s - 15)); return (_truth(((M.hindu_lunar_month(mid) ~= month))) or _truth((_truth(M.hindu_lunar_leap_month(mid)) and _truth((not _truth(leap_month)))))) end)()) then return M.mod3(k, -15, 15) else return M.mod3(k, 15, 45) end end)())
local tau = (est - M.mod3((M.astro_lunar_day_from_moment((est + M.hr(6))) - day), -15, 15))
local date = M.next((tau - 1), function(d) return _truth(_member(M.astro_lunar_day_from_moment(M.alt_hindu_sunrise(d)), _list(day, M.amod((day + 1), 30)))) end)
if _truth(leap_day) then
return (date + 1)
else
return date
end
end
-- TYPE (rational rational-moment) -> rational-moment
-- Time lunar-day (tithi) number k begins at or after
-- moment tee. k can be fractional (for karanas).
function M.hindu_lunar_day_at_or_after(k, tee)
local phase = ((k - 1) * M.deg(12))
local tau = (tee + ((1 / M.deg(360)) * ((phase - M.hindu_lunar_phase(tee)) % 360) * M.HINDU_SYNODIC_MONTH))
local a = math.max(tee, (tau - 2))
local b = (tau + 2)
return M.invert_angular(M.hindu_lunar_phase, phase, M.interval_closed(a, b))
end
-- TYPE gregorian-year -> fixed-date
-- Fixed date of Hindu lunisolar new year in Gregorian
-- g-year.
function M.hindu_lunar_new_year(g_year)
local jan1 = M.gregorian_new_year(g_year)
local mina = M.hindu_solar_longitude_at_or_after(M.deg(330), jan1)
local new_moon = M.hindu_lunar_day_at_or_after(1, mina)
local h_day = math.floor(new_moon)
local critical = M.hindu_sunrise(h_day)
return (h_day + (function() if _truth((_truth(((new_moon < critical))) or _truth(((M.hindu_lunar_day_from_moment(M.hindu_sunrise((h_day + 1))) == 2))))) then return 0 else return 1 end end)())
end
-- TYPE (hindu-lunar-date hindu-lunar-date) -> boolean
-- True if Hindu lunar date l-date1 is on or before
-- Hindu lunar date l-date2.
function M.hindu_lunar_on_or_before_p(l_date1, l_date2)
local month1 = M.hindu_lunar_month(l_date1)
local month2 = M.hindu_lunar_month(l_date2)
local leap1 = M.hindu_lunar_leap_month(l_date1)
local leap2 = M.hindu_lunar_leap_month(l_date2)
local day1 = M.hindu_lunar_day(l_date1)
local day2 = M.hindu_lunar_day(l_date2)
local leap_day1 = M.hindu_lunar_leap_day(l_date1)
local leap_day2 = M.hindu_lunar_leap_day(l_date2)
local year1 = M.hindu_lunar_year(l_date1)
local year2 = M.hindu_lunar_year(l_date2)
return (_truth(((year1 < year2))) or _truth((_truth(((year1 == year2))) and _truth((_truth(((month1 < month2))) or _truth((_truth(((month1 == month2))) and _truth((_truth((_truth(leap1) and _truth((not _truth(leap2))))) or _truth((_truth(_equal(leap1, leap2)) and _truth((_truth(((day1 < day2))) or _truth((_truth(((day1 == day2))) and _truth((_truth((not _truth(leap_day1))) or _truth(leap_day2))))))))))))))))))
end
-- TYPE (hindu-lunar-year hindu-lunar-month
-- TYPE hindu-lunar-day) -> fixed-date
-- Fixed date of occurrence of Hindu lunar l-month,
-- l-day in Hindu lunar year l-year, taking leap and
-- expunged days into account. When the month is
-- expunged, then the following month is used.
function M.hindu_date_occur(l_year, l_month, l_day)
local lunar = M.hindu_lunar_date(l_year, l_month, false, l_day, false)
local try = M.fixed_from_hindu_lunar(lunar)
local mid = M.hindu_lunar_from_fixed((function() if _truth(((l_day > 15))) then return (try - 5) else return try end end)())
local expunged_p = ((l_month ~= M.hindu_lunar_month(mid)))
local l_date = M.hindu_lunar_date(M.hindu_lunar_year(mid), M.hindu_lunar_month(mid), M.hindu_lunar_leap_month(mid), l_day, false)
if _truth(expunged_p) then
return (M.next(try, function(d) return _truth((not _truth(M.hindu_lunar_on_or_before_p(M.hindu_lunar_from_fixed(d), l_date)))) end) - 1)
elseif _truth(((l_day ~= M.hindu_lunar_day(M.hindu_lunar_from_fixed(try))))) then
return (try - 1)
else
return try
end
end
-- TYPE (hindu-lunar-month hindu-lunar-day
-- TYPE gregorian-year) -> list-of-fixed-dates
-- List of fixed dates of occurrences of Hindu lunar
-- month, day in Gregorian year g-year.
function M.hindu_lunar_holiday(l_month, l_day, g_year)
local l_year = M.hindu_lunar_year(M.hindu_lunar_from_fixed(M.gregorian_new_year(g_year)))
local date0 = M.hindu_date_occur(l_year, l_month, l_day)
local date1 = M.hindu_date_occur((l_year + 1), l_month, l_day)
return M.list_range(_list(date0, date1), M.gregorian_year_range(g_year))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed date(s) of Diwali in Gregorian year
-- g-year.
function M.diwali(g_year)
return M.hindu_lunar_holiday(8, 1, g_year)
end
-- TYPE (hindu-lunar-month rational rational
-- TYPE hindu-lunar-year) -> fixed-date
-- Fixed date of occurrence of Hindu lunar tithi prior
-- to sundial time tee, in Hindu lunar l-month, l-year.
function M.hindu_tithi_occur(l_month, tithi, tee, l_year)
local approx = M.hindu_date_occur(l_year, l_month, math.floor(tithi))
local lunar = M.hindu_lunar_day_at_or_after(tithi, (approx - 2))
local try = M.fixed_from_moment(lunar)
local tee_h = M.standard_from_sundial((try + tee), M.UJJAIN)
if _truth((_truth(((lunar <= tee_h))) or _truth(((M.hindu_lunar_phase(M.standard_from_sundial((try + 1 + tee), M.UJJAIN)) > (12 * tithi)))))) then
return try
else
return (try + 1)
end
end
-- TYPE (hindu-lunar-month rational rational
-- TYPE gregorian-year) -> list-of-fixed-dates
-- List of fixed dates of occurrences of Hindu lunar tithi
-- prior to sundial time tee, in Hindu lunar l-month,
-- in Gregorian year g-year.
function M.hindu_lunar_event(l_month, tithi, tee, g_year)
local l_year = M.hindu_lunar_year(M.hindu_lunar_from_fixed(M.gregorian_new_year(g_year)))
local date0 = M.hindu_tithi_occur(l_month, tithi, tee, l_year)
local date1 = M.hindu_tithi_occur(l_month, tithi, tee, (l_year + 1))
return M.list_range(_list(date0, date1), M.gregorian_year_range(g_year))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed date(s) of Night of Shiva in Gregorian
-- year g-year.
function M.shiva(g_year)
return M.hindu_lunar_event(11, 29, M.hr(24), g_year)
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed date(s) of Rama’s Birthday in Gregorian
-- year g-year.
function M.rama(g_year)
return M.hindu_lunar_event(1, 9, M.hr(12), g_year)
end
-- TYPE fixed-date -> nakshatra
-- Hindu lunar station (nakshatra) at sunrise on date.
function M.hindu_lunar_station(date)
local critical = M.hindu_sunrise(date)
return (M.quotient(M.hindu_lunar_longitude(critical), M.angle(0, 800, 0)) + 1)
end
-- TYPE 1-60 -> 0-10
-- Number (0-10) of the name of the n-th (1-60) Hindu
-- karana.
function M.karana(n)
if _truth(((n == 1))) then
return 0
elseif _truth(((n > 57))) then
return (n - 50)
else
return M.amod((n - 1), 7)
end
end
-- TYPE fixed-date -> 1-27
-- Hindu yoga on date.
function M.yoga(date)
return (math.floor((((M.hindu_solar_longitude(date) + M.hindu_lunar_longitude(date)) / M.angle(0, 800, 0)) % 27)) + 1)
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of Wednesdays in Gregorian year g-year
-- that are day 8 of Hindu lunar months.
function M.sacred_wednesdays(g_year)
return M.sacred_wednesdays_in_range(M.gregorian_year_range(g_year))
end
-- TYPE range -> list-of-fixed-dates
-- List of Wednesdays within range of dates
-- that are day 8 of Hindu lunar months.
function M.sacred_wednesdays_in_range(range)
local a = M.begin(range)
local b = M.end_(range)
local wed = M.kday_on_or_after(M.WEDNESDAY, a)
local h_date = M.hindu_lunar_from_fixed(wed)
if _truth(M.in_range_p(wed, range)) then
return _append((function() if _truth(((M.hindu_lunar_day(h_date) == 8))) then return _list(wed) else return NIL end end)(), M.sacred_wednesdays_in_range(M.interval((wed + 1), b)))
else
return NIL
end
end
----- D.21 The Tibetan Calendar -----
-- TYPE (tibetan-year tibetan-month
-- TYPE tibetan-leap-month tibetan-day
-- TYPE tibetan-leap-day) -> tibetan-date
function M.tibetan_date(year, month, leap_month, day, leap_day)
return _list(year, month, leap_month, day, leap_day)
end
-- TYPE tibetan-date -> tibetan-year
function M.tibetan_year(date)
return _nth(0, date)
end
-- TYPE tibetan-date -> tibetan-month
function M.tibetan_month(date)
return _nth(1, date)
end
-- TYPE tibetan-date -> tibetan-leap-month
function M.tibetan_leap_month(date)
return _nth(2, date)
end
-- TYPE tibetan-date -> tibetan-day
function M.tibetan_day(date)
return _nth(3, date)
end
-- TYPE tibetan-date -> tibetan-leap-day
function M.tibetan_leap_day(date)
return _nth(4, date)
end
-- TYPE fixed-date
M.TIBETAN_EPOCH = M.fixed_from_gregorian(M.gregorian_date(-127, M.DECEMBER, 7))
-- TYPE rational-angle -> rational
-- Interpolated tabular sine of solar anomaly alpha.
function M.tibetan_sun_equation(alpha)
if _truth(((alpha > 6))) then
return (-M.tibetan_sun_equation((alpha - 6)))
elseif _truth(((alpha > 3))) then
return M.tibetan_sun_equation((6 - alpha))
elseif _truth(_integerp(alpha)) then
return _nth(alpha, _list(M.mins(0), M.mins(6), M.mins(10), M.mins(11)))
else
return (((alpha % 1) * M.tibetan_sun_equation(math.ceil(alpha))) + (((-alpha) % 1) * M.tibetan_sun_equation(math.floor(alpha))))
end
end
-- TYPE rational-angle -> rational
-- Interpolated tabular sine of lunar anomaly alpha.
function M.tibetan_moon_equation(alpha)
if _truth(((alpha > 14))) then
return (-M.tibetan_moon_equation((alpha - 14)))
elseif _truth(((alpha > 7))) then
return M.tibetan_moon_equation((14 - alpha))
elseif _truth(_integerp(alpha)) then
return _nth(alpha, _list(M.mins(0), M.mins(5), M.mins(10), M.mins(15), M.mins(19), M.mins(22), M.mins(24), M.mins(25)))
else
return (((alpha % 1) * M.tibetan_moon_equation(math.ceil(alpha))) + (((-alpha) % 1) * M.tibetan_moon_equation(math.floor(alpha))))
end
end
-- TYPE tibetan-date -> fixed-date
-- Fixed date corresponding to Tibetan lunar date t-date.
function M.fixed_from_tibetan(t_date)
local year = M.tibetan_year(t_date)
local month = M.tibetan_month(t_date)
local leap_month = M.tibetan_leap_month(t_date)
local day = M.tibetan_day(t_date)
local leap_day = M.tibetan_leap_day(t_date)
local months = math.floor((((804 / 65) * (year - 1)) + ((67 / 65) * month) + (function() if _truth(leap_month) then return -1 else return 0 end end)() + (64 / 65)))
local days = ((30 * months) + day)
local mean = ((days * (11135 / 11312)) + -30 + (function() if _truth(leap_day) then return 0 else return -1 end end)() + (1071 / 1616))
local solar_anomaly = (((days * (13 / 4824)) + (2117 / 4824)) % 1)
local lunar_anomaly = (((days * (3781 / 105840)) + (2837 / 15120)) % 1)
local sun = (-M.tibetan_sun_equation((12 * solar_anomaly)))
local moon = M.tibetan_moon_equation((28 * lunar_anomaly))
return math.floor((M.TIBETAN_EPOCH + mean + sun + moon))
end
-- TYPE fixed-date -> tibetan-date
-- Tibetan lunar date corresponding to fixed date.
function M.tibetan_from_fixed(date)
local cap_Y = (365 + (4975 / 18382))
local years = math.ceil(((date - M.TIBETAN_EPOCH) / cap_Y))
local year0 = M.final(years, function(y) return _truth(((date >= M.fixed_from_tibetan(M.tibetan_date(y, 1, false, 1, false))))) end)
local month0 = M.final(1, function(m) return _truth(((date >= M.fixed_from_tibetan(M.tibetan_date(year0, m, false, 1, false))))) end)
local est = (date - M.fixed_from_tibetan(M.tibetan_date(year0, month0, false, 1, false)))
local day0 = M.final((est - 2), function(d) return _truth(((date >= M.fixed_from_tibetan(M.tibetan_date(year0, month0, false, d, false))))) end)
local leap_month = ((day0 > 30))
local day = M.amod(day0, 30)
local month = M.amod((function() if _truth(((day > day0))) then return (month0 - 1) elseif _truth(leap_month) then return (month0 + 1) else return month0 end end)(), 12)
local year = (function() if _truth((_truth(((day > day0))) and _truth(((month0 == 1))))) then return (year0 - 1) elseif _truth((_truth(leap_month) and _truth(((month0 == 12))))) then return (year0 + 1) else return year0 end end)()
local leap_day = ((date == M.fixed_from_tibetan(M.tibetan_date(year, month, leap_month, day, true))))
return M.tibetan_date(year, month, leap_month, day, leap_day)
end
-- TYPE (tibetan-year tibetan-month) -> boolean
-- True if t-month is leap in Tibetan year t-year.
function M.tibetan_leap_month_p(t_year, t_month)
return ((t_month == M.tibetan_month(M.tibetan_from_fixed(M.fixed_from_tibetan(M.tibetan_date(t_year, t_month, true, 2, false))))))
end
-- TYPE (tibetan-year tibetan-month tibetan-day) -> boolean
-- True if t-day is leap in Tibetan
-- month t-month and year t-year.
function M.tibetan_leap_day_p(t_year, t_month, t_day)
return (_truth(((t_day == M.tibetan_day(M.tibetan_from_fixed(M.fixed_from_tibetan(M.tibetan_date(t_year, t_month, false, t_day, true))))))) or _truth(((t_day == M.tibetan_day(M.tibetan_from_fixed(M.fixed_from_tibetan(M.tibetan_date(t_year, t_month, M.tibetan_leap_month_p(t_year, t_month), t_day, true))))))))
end
-- TYPE tibetan-year -> fixed-date
-- Fixed date of Tibetan New Year (Losar)
-- in Tibetan year t-year.
function M.losar(t_year)
local t_leap = M.tibetan_leap_month_p(t_year, 1)
return M.fixed_from_tibetan(M.tibetan_date(t_year, 1, t_leap, 1, false))
end
-- TYPE gregorian-year -> list-of-fixed-dates
-- List of fixed dates of Tibetan New Year in
-- Gregorian year g-year.
function M.tibetan_new_year(g_year)
local dec31 = M.gregorian_year_end(g_year)
local t_year = M.tibetan_year(M.tibetan_from_fixed(dec31))
return M.list_range(_list(M.losar((t_year - 1)), M.losar(t_year)), M.gregorian_year_range(g_year))
end
----- MediaWiki public interface -----
p.convert = make_public(M.convert)
p.day_of_week_from_fixed = make_public(M.day_of_week_from_fixed)
p.rd = make_public(M.rd)
p.moment_from_jd = make_public(M.moment_from_jd)
p.jd_from_moment = make_public(M.jd_from_moment)
p.fixed_from_mjd = make_public(M.fixed_from_mjd)
p.mjd_from_fixed = make_public(M.mjd_from_fixed)
p.moment_from_unix = make_public(M.moment_from_unix)
p.unix_from_moment = make_public(M.unix_from_moment)
p.fixed_from_jd = make_public(M.fixed_from_jd)
p.jd_from_fixed = make_public(M.jd_from_fixed)
p.quotient = make_public(M.quotient)
p.amod = make_public(M.amod)
p.mod3 = make_public(M.mod3)
p.poly = make_public(M.poly)
p.standard_month = make_public(M.standard_month)
p.standard_day = make_public(M.standard_day)
p.standard_year = make_public(M.standard_year)
p.hour = make_public(M.hour)
p.minute = make_public(M.minute)
p.seconds = make_public(M.seconds)
p.time_of_day = make_public(M.time_of_day)
p.fixed_from_moment = make_public(M.fixed_from_moment)
p.sign = make_public(M.sign)
p.time_from_moment = make_public(M.time_from_moment)
p.list_of_fixed_from_moments = make_public(M.list_of_fixed_from_moments)
p.interval = make_public(M.interval)
p.interval_closed = make_public(M.interval_closed)
p.begin = make_public(M.begin)
p.end_ = make_public(M.end_)
p.in_range_p = make_public(M.in_range_p)
p.list_range = make_public(M.list_range)
p.positions_in_range = make_public(M.positions_in_range)
p.from_radix = make_public(M.from_radix)
p.to_radix = make_public(M.to_radix)
p.time_from_clock = make_public(M.time_from_clock, false)
p.clock_from_moment = make_public(M.clock_from_moment)
p.angle_from_degrees = make_public(M.angle_from_degrees, false)
p.egyptian_date = make_public(M.egyptian_date)
p.fixed_from_egyptian = make_public(M.fixed_from_egyptian, false)
p.alt_fixed_from_egyptian = make_public(M.alt_fixed_from_egyptian)
p.egyptian_from_fixed = make_public(M.egyptian_from_fixed)
p.armenian_date = make_public(M.armenian_date)
p.fixed_from_armenian = make_public(M.fixed_from_armenian, false)
p.armenian_from_fixed = make_public(M.armenian_from_fixed)
p.kday_on_or_before = make_public(M.kday_on_or_before)
p.kday_on_or_after = make_public(M.kday_on_or_after)
p.kday_nearest = make_public(M.kday_nearest)
p.kday_before = make_public(M.kday_before)
p.kday_after = make_public(M.kday_after)
p.akan_day_name = make_public(M.akan_day_name)
p.akan_name = make_public(M.akan_name)
p.akan_prefix = make_public(M.akan_prefix)
p.akan_stem = make_public(M.akan_stem)
p.akan_name_difference = make_public(M.akan_name_difference)
p.akan_name_from_fixed = make_public(M.akan_name_from_fixed)
p.akan_day_name_on_or_before = make_public(M.akan_day_name_on_or_before)
p.gregorian_date = make_public(M.gregorian_date)
p.gregorian_leap_year_p = make_public(M.gregorian_leap_year_p)
p.fixed_from_gregorian = make_public(M.fixed_from_gregorian, false)
p.gregorian_new_year = make_public(M.gregorian_new_year)
p.gregorian_year_end = make_public(M.gregorian_year_end)
p.gregorian_year_range = make_public(M.gregorian_year_range)
p.gregorian_year_from_fixed = make_public(M.gregorian_year_from_fixed)
p.gregorian_from_fixed = make_public(M.gregorian_from_fixed)
p.gregorian_date_difference = make_public(M.gregorian_date_difference)
p.day_number = make_public(M.day_number, false)
p.days_remaining = make_public(M.days_remaining, false)
p.last_day_of_gregorian_month = make_public(M.last_day_of_gregorian_month)
p.alt_fixed_from_gregorian = make_public(M.alt_fixed_from_gregorian, false)
p.alt_gregorian_from_fixed = make_public(M.alt_gregorian_from_fixed)
p.alt_gregorian_year_from_fixed = make_public(M.alt_gregorian_year_from_fixed)
p.independence_day = make_public(M.independence_day)
p.nth_kday = make_public(M.nth_kday)
p.first_kday = make_public(M.first_kday)
p.last_kday = make_public(M.last_kday)
p.labor_day = make_public(M.labor_day)
p.memorial_day = make_public(M.memorial_day)
p.election_day = make_public(M.election_day)
p.daylight_saving_start = make_public(M.daylight_saving_start)
p.daylight_saving_end = make_public(M.daylight_saving_end)
p.christmas = make_public(M.christmas)
p.advent = make_public(M.advent)
p.epiphany = make_public(M.epiphany)
p.unlucky_fridays_in_range = make_public(M.unlucky_fridays_in_range)
p.unlucky_fridays = make_public(M.unlucky_fridays)
p.bce = make_public(M.bce)
p.ce = make_public(M.ce)
p.julian_date = make_public(M.julian_date)
p.julian_leap_year_p = make_public(M.julian_leap_year_p)
p.fixed_from_julian = make_public(M.fixed_from_julian, false)
p.julian_from_fixed = make_public(M.julian_from_fixed)
p.roman_date = make_public(M.roman_date)
p.roman_year = make_public(M.roman_year)
p.roman_month = make_public(M.roman_month)
p.roman_event = make_public(M.roman_event)
p.roman_count = make_public(M.roman_count)
p.roman_leap = make_public(M.roman_leap)
p.ides_of_month = make_public(M.ides_of_month)
p.nones_of_month = make_public(M.nones_of_month)
p.fixed_from_roman = make_public(M.fixed_from_roman, false)
p.roman_from_fixed = make_public(M.roman_from_fixed)
p.julian_year_from_auc = make_public(M.julian_year_from_auc)
p.auc_year_from_julian = make_public(M.auc_year_from_julian)
p.olympiad = make_public(M.olympiad)
p.olympiad_cycle = make_public(M.olympiad_cycle)
p.olympiad_year = make_public(M.olympiad_year)
p.julian_year_from_olympiad = make_public(M.julian_year_from_olympiad)
p.olympiad_from_julian_year = make_public(M.olympiad_from_julian_year)
p.cycle_in_gregorian = make_public(M.cycle_in_gregorian)
p.julian_season_in_gregorian = make_public(M.julian_season_in_gregorian)
p.julian_in_gregorian = make_public(M.julian_in_gregorian)
p.eastern_orthodox_christmas = make_public(M.eastern_orthodox_christmas)
p.coptic_date = make_public(M.coptic_date)
p.coptic_leap_year_p = make_public(M.coptic_leap_year_p)
p.fixed_from_coptic = make_public(M.fixed_from_coptic, false)
p.coptic_from_fixed = make_public(M.coptic_from_fixed)
p.ethiopic_date = make_public(M.ethiopic_date)
p.fixed_from_ethiopic = make_public(M.fixed_from_ethiopic, false)
p.ethiopic_from_fixed = make_public(M.ethiopic_from_fixed)
p.coptic_in_gregorian = make_public(M.coptic_in_gregorian)
p.coptic_christmas = make_public(M.coptic_christmas)
p.iso_date = make_public(M.iso_date)
p.iso_week = make_public(M.iso_week)
p.iso_day = make_public(M.iso_day)
p.iso_year = make_public(M.iso_year)
p.fixed_from_iso = make_public(M.fixed_from_iso, false)
p.iso_from_fixed = make_public(M.iso_from_fixed)
p.iso_long_year_p = make_public(M.iso_long_year_p)
p.icelandic_date = make_public(M.icelandic_date)
p.icelandic_year = make_public(M.icelandic_year)
p.icelandic_season = make_public(M.icelandic_season)
p.icelandic_week = make_public(M.icelandic_week)
p.icelandic_weekday = make_public(M.icelandic_weekday)
p.icelandic_summer = make_public(M.icelandic_summer)
p.icelandic_winter = make_public(M.icelandic_winter)
p.fixed_from_icelandic = make_public(M.fixed_from_icelandic, false)
p.icelandic_from_fixed = make_public(M.icelandic_from_fixed)
p.icelandic_leap_year_p = make_public(M.icelandic_leap_year_p)
p.icelandic_month = make_public(M.icelandic_month)
p.icelandic_month_from_fixed = make_public(M.icelandic_month_from_fixed)
p.islamic_date = make_public(M.islamic_date)
p.islamic_leap_year_p = make_public(M.islamic_leap_year_p)
p.fixed_from_islamic = make_public(M.fixed_from_islamic, false)
p.islamic_from_fixed = make_public(M.islamic_from_fixed)
p.islamic_in_gregorian = make_public(M.islamic_in_gregorian)
p.mawlid = make_public(M.mawlid)
p.hebrew_date = make_public(M.hebrew_date)
p.hebrew_leap_year_p = make_public(M.hebrew_leap_year_p)
p.last_month_of_hebrew_year = make_public(M.last_month_of_hebrew_year)
p.hebrew_sabbatical_year_p = make_public(M.hebrew_sabbatical_year_p)
p.molad = make_public(M.molad)
p.hebrew_calendar_elapsed_days = make_public(M.hebrew_calendar_elapsed_days)
p.hebrew_year_length_correction = make_public(M.hebrew_year_length_correction)
p.hebrew_new_year = make_public(M.hebrew_new_year)
p.last_day_of_hebrew_month = make_public(M.last_day_of_hebrew_month)
p.long_marheshvan_p = make_public(M.long_marheshvan_p)
p.short_kislev_p = make_public(M.short_kislev_p)
p.days_in_hebrew_year = make_public(M.days_in_hebrew_year)
p.fixed_from_hebrew = make_public(M.fixed_from_hebrew, false)
p.hebrew_from_fixed = make_public(M.hebrew_from_fixed)
p.fixed_from_molad = make_public(M.fixed_from_molad)
p.yom_kippur = make_public(M.yom_kippur)
p.passover = make_public(M.passover)
p.omer = make_public(M.omer)
p.purim = make_public(M.purim)
p.ta_anit_esther = make_public(M.ta_anit_esther)
p.tishah_be_av = make_public(M.tishah_be_av)
p.yom_ha_zikkaron = make_public(M.yom_ha_zikkaron)
p.sh_ela = make_public(M.sh_ela)
p.birkath_ha_hama = make_public(M.birkath_ha_hama)
p.samuel_season_in_gregorian = make_public(M.samuel_season_in_gregorian)
p.alt_birkath_ha_hama = make_public(M.alt_birkath_ha_hama)
p.adda_season_in_gregorian = make_public(M.adda_season_in_gregorian)
p.hebrew_in_gregorian = make_public(M.hebrew_in_gregorian)
p.hanukkah = make_public(M.hanukkah)
p.hebrew_birthday = make_public(M.hebrew_birthday)
p.hebrew_birthday_in_gregorian = make_public(M.hebrew_birthday_in_gregorian)
p.yahrzeit = make_public(M.yahrzeit)
p.yahrzeit_in_gregorian = make_public(M.yahrzeit_in_gregorian)
p.shift_days = make_public(M.shift_days)
p.possible_hebrew_days = make_public(M.possible_hebrew_days)
p.orthodox_easter = make_public(M.orthodox_easter)
p.alt_orthodox_easter = make_public(M.alt_orthodox_easter)
p.easter = make_public(M.easter)
p.pentecost = make_public(M.pentecost)
p.hindu_day_count = make_public(M.hindu_day_count)
p.jovian_year = make_public(M.jovian_year)
p.fixed_from_old_hindu_solar = make_public(M.fixed_from_old_hindu_solar, false)
p.old_hindu_solar_from_fixed = make_public(M.old_hindu_solar_from_fixed)
p.old_hindu_lunar_date = make_public(M.old_hindu_lunar_date)
p.old_hindu_lunar_month = make_public(M.old_hindu_lunar_month)
p.old_hindu_lunar_leap = make_public(M.old_hindu_lunar_leap)
p.old_hindu_lunar_day = make_public(M.old_hindu_lunar_day)
p.old_hindu_lunar_year = make_public(M.old_hindu_lunar_year)
p.old_hindu_lunar_leap_year_p = make_public(M.old_hindu_lunar_leap_year_p)
p.old_hindu_lunar_from_fixed = make_public(M.old_hindu_lunar_from_fixed)
p.fixed_from_old_hindu_lunar = make_public(M.fixed_from_old_hindu_lunar, false)
p.mayan_long_count_date = make_public(M.mayan_long_count_date)
p.mayan_baktun = make_public(M.mayan_baktun)
p.mayan_katun = make_public(M.mayan_katun)
p.mayan_tun = make_public(M.mayan_tun)
p.mayan_uinal = make_public(M.mayan_uinal)
p.mayan_kin = make_public(M.mayan_kin)
p.fixed_from_mayan_long_count = make_public(M.fixed_from_mayan_long_count, false)
p.mayan_long_count_from_fixed = make_public(M.mayan_long_count_from_fixed)
p.mayan_haab_date = make_public(M.mayan_haab_date)
p.mayan_haab_day = make_public(M.mayan_haab_day)
p.mayan_haab_month = make_public(M.mayan_haab_month)
p.mayan_haab_ordinal = make_public(M.mayan_haab_ordinal)
p.mayan_haab_from_fixed = make_public(M.mayan_haab_from_fixed)
p.mayan_haab_on_or_before = make_public(M.mayan_haab_on_or_before)
p.mayan_tzolkin_date = make_public(M.mayan_tzolkin_date)
p.mayan_tzolkin_number = make_public(M.mayan_tzolkin_number)
p.mayan_tzolkin_name = make_public(M.mayan_tzolkin_name)
p.mayan_tzolkin_from_fixed = make_public(M.mayan_tzolkin_from_fixed)
p.mayan_tzolkin_ordinal = make_public(M.mayan_tzolkin_ordinal)
p.mayan_tzolkin_on_or_before = make_public(M.mayan_tzolkin_on_or_before)
p.mayan_year_bearer_from_fixed = make_public(M.mayan_year_bearer_from_fixed)
p.mayan_calendar_round_on_or_before = make_public(M.mayan_calendar_round_on_or_before)
p.aztec_xihuitl_date = make_public(M.aztec_xihuitl_date)
p.aztec_xihuitl_month = make_public(M.aztec_xihuitl_month)
p.aztec_xihuitl_day = make_public(M.aztec_xihuitl_day)
p.aztec_xihuitl_ordinal = make_public(M.aztec_xihuitl_ordinal)
p.aztec_xihuitl_from_fixed = make_public(M.aztec_xihuitl_from_fixed)
p.aztec_xihuitl_on_or_before = make_public(M.aztec_xihuitl_on_or_before)
p.aztec_tonalpohualli_date = make_public(M.aztec_tonalpohualli_date)
p.aztec_tonalpohualli_number = make_public(M.aztec_tonalpohualli_number)
p.aztec_tonalpohualli_name = make_public(M.aztec_tonalpohualli_name)
p.aztec_tonalpohualli_ordinal = make_public(M.aztec_tonalpohualli_ordinal)
p.aztec_tonalpohualli_from_fixed = make_public(M.aztec_tonalpohualli_from_fixed)
p.aztec_tonalpohualli_on_or_before = make_public(M.aztec_tonalpohualli_on_or_before)
p.aztec_xiuhmolpilli_designation = make_public(M.aztec_xiuhmolpilli_designation)
p.aztec_xiuhmolpilli_number = make_public(M.aztec_xiuhmolpilli_number)
p.aztec_xiuhmolpilli_name = make_public(M.aztec_xiuhmolpilli_name)
p.aztec_xiuhmolpilli_from_fixed = make_public(M.aztec_xiuhmolpilli_from_fixed)
p.aztec_xihuitl_tonalpohualli_on_or_before = make_public(M.aztec_xihuitl_tonalpohualli_on_or_before)
p.balinese_date = make_public(M.balinese_date)
p.bali_luang = make_public(M.bali_luang)
p.bali_dwiwara = make_public(M.bali_dwiwara)
p.bali_triwara = make_public(M.bali_triwara)
p.bali_caturwara = make_public(M.bali_caturwara)
p.bali_pancawara = make_public(M.bali_pancawara)
p.bali_sadwara = make_public(M.bali_sadwara)
p.bali_saptawara = make_public(M.bali_saptawara)
p.bali_asatawara = make_public(M.bali_asatawara)
p.bali_sangawara = make_public(M.bali_sangawara)
p.bali_dasawara = make_public(M.bali_dasawara)
p.bali_pawukon_from_fixed = make_public(M.bali_pawukon_from_fixed)
p.bali_day_from_fixed = make_public(M.bali_day_from_fixed)
p.bali_triwara_from_fixed = make_public(M.bali_triwara_from_fixed)
p.bali_sadwara_from_fixed = make_public(M.bali_sadwara_from_fixed)
p.bali_saptawara_from_fixed = make_public(M.bali_saptawara_from_fixed)
p.bali_pancawara_from_fixed = make_public(M.bali_pancawara_from_fixed)
p.bali_week_from_fixed = make_public(M.bali_week_from_fixed)
p.bali_dasawara_from_fixed = make_public(M.bali_dasawara_from_fixed)
p.bali_dwiwara_from_fixed = make_public(M.bali_dwiwara_from_fixed)
p.bali_luang_from_fixed = make_public(M.bali_luang_from_fixed)
p.bali_sangawara_from_fixed = make_public(M.bali_sangawara_from_fixed)
p.bali_asatawara_from_fixed = make_public(M.bali_asatawara_from_fixed)
p.bali_caturwara_from_fixed = make_public(M.bali_caturwara_from_fixed)
p.bali_on_or_before = make_public(M.bali_on_or_before)
p.kajeng_keliwon = make_public(M.kajeng_keliwon)
p.tumpek = make_public(M.tumpek)
p.radians_from_degrees = make_public(M.radians_from_degrees)
p.degrees_from_radians = make_public(M.degrees_from_radians)
p.sin_degrees = make_public(M.sin_degrees)
p.cos_degrees = make_public(M.cos_degrees)
p.tan_degrees = make_public(M.tan_degrees)
p.arctan_degrees = make_public(M.arctan_degrees)
p.arcsin_degrees = make_public(M.arcsin_degrees)
p.arccos_degrees = make_public(M.arccos_degrees)
p.hr = make_public(M.hr)
p.mn = make_public(M.mn)
p.sec = make_public(M.sec)
p.mt = make_public(M.mt)
p.deg = make_public(M.deg)
p.mins = make_public(M.mins)
p.secs = make_public(M.secs)
p.angle = make_public(M.angle)
p.degrees_minutes_seconds = make_public(M.degrees_minutes_seconds)
p.location = make_public(M.location)
p.latitude = make_public(M.latitude)
p.longitude = make_public(M.longitude)
p.elevation = make_public(M.elevation)
p.zone = make_public(M.zone)
p.direction = make_public(M.direction)
p.zone_from_longitude = make_public(M.zone_from_longitude)
p.universal_from_local = make_public(M.universal_from_local)
p.local_from_universal = make_public(M.local_from_universal)
p.standard_from_universal = make_public(M.standard_from_universal)
p.universal_from_standard = make_public(M.universal_from_standard)
p.standard_from_local = make_public(M.standard_from_local)
p.local_from_standard = make_public(M.local_from_standard)
p.ephemeris_correction = make_public(M.ephemeris_correction)
p.dynamical_from_universal = make_public(M.dynamical_from_universal)
p.universal_from_dynamical = make_public(M.universal_from_dynamical)
p.julian_centuries = make_public(M.julian_centuries)
p.equation_of_time = make_public(M.equation_of_time)
p.apparent_from_local = make_public(M.apparent_from_local)
p.local_from_apparent = make_public(M.local_from_apparent)
p.apparent_from_universal = make_public(M.apparent_from_universal)
p.universal_from_apparent = make_public(M.universal_from_apparent)
p.midnight = make_public(M.midnight)
p.midday = make_public(M.midday)
p.sidereal_from_moment = make_public(M.sidereal_from_moment)
p.obliquity = make_public(M.obliquity)
p.declination = make_public(M.declination)
p.right_ascension = make_public(M.right_ascension)
p.solar_longitude = make_public(M.solar_longitude)
p.nutation = make_public(M.nutation)
p.aberration = make_public(M.aberration)
p.solar_longitude_after = make_public(M.solar_longitude_after)
p.season_in_gregorian = make_public(M.season_in_gregorian)
p.precession = make_public(M.precession)
p.sidereal_solar_longitude = make_public(M.sidereal_solar_longitude)
p.solar_altitude = make_public(M.solar_altitude)
p.estimate_prior_solar_longitude = make_public(M.estimate_prior_solar_longitude)
p.nth_new_moon = make_public(M.nth_new_moon)
p.new_moon_before = make_public(M.new_moon_before)
p.new_moon_at_or_after = make_public(M.new_moon_at_or_after)
p.lunar_longitude = make_public(M.lunar_longitude)
p.mean_lunar_longitude = make_public(M.mean_lunar_longitude)
p.lunar_elongation = make_public(M.lunar_elongation)
p.solar_anomaly = make_public(M.solar_anomaly)
p.lunar_anomaly = make_public(M.lunar_anomaly)
p.moon_node = make_public(M.moon_node)
p.lunar_node = make_public(M.lunar_node)
p.sidereal_lunar_longitude = make_public(M.sidereal_lunar_longitude)
p.lunar_phase = make_public(M.lunar_phase)
p.lunar_phase_at_or_before = make_public(M.lunar_phase_at_or_before)
p.lunar_phase_at_or_after = make_public(M.lunar_phase_at_or_after)
p.lunar_latitude = make_public(M.lunar_latitude)
p.lunar_altitude = make_public(M.lunar_altitude)
p.lunar_distance = make_public(M.lunar_distance)
p.lunar_parallax = make_public(M.lunar_parallax)
p.topocentric_lunar_altitude = make_public(M.topocentric_lunar_altitude)
p.approx_moment_of_depression = make_public(M.approx_moment_of_depression)
p.sine_offset = make_public(M.sine_offset)
p.moment_of_depression = make_public(M.moment_of_depression)
p.dawn = make_public(M.dawn)
p.dusk = make_public(M.dusk)
p.refraction = make_public(M.refraction)
p.sunrise = make_public(M.sunrise)
p.sunset = make_public(M.sunset)
p.jewish_sabbath_ends = make_public(M.jewish_sabbath_ends)
p.jewish_dusk = make_public(M.jewish_dusk)
p.observed_lunar_altitude = make_public(M.observed_lunar_altitude)
p.moonrise = make_public(M.moonrise)
p.moonset = make_public(M.moonset)
p.local_zero_hour = make_public(M.local_zero_hour)
p.local_from_italian = make_public(M.local_from_italian)
p.italian_from_local = make_public(M.italian_from_local)
p.daytime_temporal_hour = make_public(M.daytime_temporal_hour)
p.nighttime_temporal_hour = make_public(M.nighttime_temporal_hour)
p.standard_from_sundial = make_public(M.standard_from_sundial)
p.jewish_morning_end = make_public(M.jewish_morning_end)
p.asr = make_public(M.asr)
p.alt_asr = make_public(M.alt_asr)
p.arc_of_light = make_public(M.arc_of_light)
p.simple_best_view = make_public(M.simple_best_view)
p.shaukat_criterion = make_public(M.shaukat_criterion)
p.arc_of_vision = make_public(M.arc_of_vision)
p.bruin_best_view = make_public(M.bruin_best_view)
p.yallop_criterion = make_public(M.yallop_criterion)
p.lunar_semi_diameter = make_public(M.lunar_semi_diameter)
p.lunar_diameter = make_public(M.lunar_diameter)
p.visible_crescent = make_public(M.visible_crescent)
p.phasis_on_or_before = make_public(M.phasis_on_or_before)
p.phasis_on_or_after = make_public(M.phasis_on_or_after)
p.persian_date = make_public(M.persian_date)
p.midday_in_tehran = make_public(M.midday_in_tehran)
p.persian_new_year_on_or_before = make_public(M.persian_new_year_on_or_before)
p.fixed_from_persian = make_public(M.fixed_from_persian, false)
p.persian_from_fixed = make_public(M.persian_from_fixed)
p.arithmetic_persian_leap_year_p = make_public(M.arithmetic_persian_leap_year_p)
p.fixed_from_arithmetic_persian = make_public(M.fixed_from_arithmetic_persian, false)
p.arithmetic_persian_year_from_fixed = make_public(M.arithmetic_persian_year_from_fixed)
p.arithmetic_persian_from_fixed = make_public(M.arithmetic_persian_from_fixed)
p.nowruz = make_public(M.nowruz)
p.bahai_date = make_public(M.bahai_date)
p.bahai_major = make_public(M.bahai_major)
p.bahai_cycle = make_public(M.bahai_cycle)
p.bahai_year = make_public(M.bahai_year)
p.bahai_month = make_public(M.bahai_month)
p.bahai_day = make_public(M.bahai_day)
p.fixed_from_bahai = make_public(M.fixed_from_bahai, false)
p.bahai_from_fixed = make_public(M.bahai_from_fixed)
p.bahai_sunset = make_public(M.bahai_sunset)
p.astro_bahai_new_year_on_or_before = make_public(M.astro_bahai_new_year_on_or_before)
p.fixed_from_astro_bahai = make_public(M.fixed_from_astro_bahai, false)
p.astro_bahai_from_fixed = make_public(M.astro_bahai_from_fixed)
p.bahai_new_year = make_public(M.bahai_new_year)
p.naw_ruz = make_public(M.naw_ruz)
p.feast_of_ridvan = make_public(M.feast_of_ridvan)
p.birth_of_the_bab = make_public(M.birth_of_the_bab)
p.french_date = make_public(M.french_date)
p.midnight_in_paris = make_public(M.midnight_in_paris)
p.french_new_year_on_or_before = make_public(M.french_new_year_on_or_before)
p.fixed_from_french = make_public(M.fixed_from_french, false)
p.french_from_fixed = make_public(M.french_from_fixed)
p.french_leap_year_p = make_public(M.french_leap_year_p)
p.arithmetic_french_leap_year_p = make_public(M.arithmetic_french_leap_year_p)
p.fixed_from_arithmetic_french = make_public(M.fixed_from_arithmetic_french, false)
p.arithmetic_french_from_fixed = make_public(M.arithmetic_french_from_fixed)
p.babylonian_date = make_public(M.babylonian_date)
p.babylonian_year = make_public(M.babylonian_year)
p.babylonian_month = make_public(M.babylonian_month)
p.babylonian_leap = make_public(M.babylonian_leap)
p.babylonian_day = make_public(M.babylonian_day)
p.moonlag = make_public(M.moonlag)
p.babylonian_criterion = make_public(M.babylonian_criterion)
p.babylonian_new_month_on_or_before = make_public(M.babylonian_new_month_on_or_before)
p.babylonian_leap_year_p = make_public(M.babylonian_leap_year_p)
p.fixed_from_babylonian = make_public(M.fixed_from_babylonian, false)
p.babylonian_from_fixed = make_public(M.babylonian_from_fixed)
p.astronomical_easter = make_public(M.astronomical_easter)
p.fixed_from_observational_islamic = make_public(M.fixed_from_observational_islamic, false)
p.observational_islamic_from_fixed = make_public(M.observational_islamic_from_fixed)
p.month_length = make_public(M.month_length)
p.early_month_p = make_public(M.early_month_p)
p.alt_fixed_from_observational_islamic = make_public(M.alt_fixed_from_observational_islamic)
p.alt_observational_islamic_from_fixed = make_public(M.alt_observational_islamic_from_fixed)
p.saudi_criterion = make_public(M.saudi_criterion)
p.saudi_new_month_on_or_before = make_public(M.saudi_new_month_on_or_before)
p.fixed_from_saudi_islamic = make_public(M.fixed_from_saudi_islamic, false)
p.saudi_islamic_from_fixed = make_public(M.saudi_islamic_from_fixed)
p.observational_hebrew_first_of_nisan = make_public(M.observational_hebrew_first_of_nisan)
p.observational_hebrew_from_fixed = make_public(M.observational_hebrew_from_fixed)
p.fixed_from_observational_hebrew = make_public(M.fixed_from_observational_hebrew, false)
p.classical_passover_eve = make_public(M.classical_passover_eve)
p.alt_observational_hebrew_from_fixed = make_public(M.alt_observational_hebrew_from_fixed)
p.alt_fixed_from_observational_hebrew = make_public(M.alt_fixed_from_observational_hebrew)
p.samaritan_noon = make_public(M.samaritan_noon)
p.samaritan_new_moon_after = make_public(M.samaritan_new_moon_after)
p.samaritan_new_moon_at_or_before = make_public(M.samaritan_new_moon_at_or_before)
p.samaritan_new_year_on_or_before = make_public(M.samaritan_new_year_on_or_before)
p.fixed_from_samaritan = make_public(M.fixed_from_samaritan, false)
p.samaritan_from_fixed = make_public(M.samaritan_from_fixed)
p.chinese_date = make_public(M.chinese_date)
p.chinese_cycle = make_public(M.chinese_cycle)
p.chinese_year = make_public(M.chinese_year)
p.chinese_month = make_public(M.chinese_month)
p.chinese_leap = make_public(M.chinese_leap)
p.chinese_day = make_public(M.chinese_day)
p.current_major_solar_term = make_public(M.current_major_solar_term)
p.chinese_location = make_public(M.chinese_location)
p.chinese_solar_longitude_on_or_after = make_public(M.chinese_solar_longitude_on_or_after)
p.major_solar_term_on_or_after = make_public(M.major_solar_term_on_or_after)
p.current_minor_solar_term = make_public(M.current_minor_solar_term)
p.minor_solar_term_on_or_after = make_public(M.minor_solar_term_on_or_after)
p.midnight_in_china = make_public(M.midnight_in_china)
p.chinese_winter_solstice_on_or_before = make_public(M.chinese_winter_solstice_on_or_before)
p.chinese_new_moon_on_or_after = make_public(M.chinese_new_moon_on_or_after)
p.chinese_new_moon_before = make_public(M.chinese_new_moon_before)
p.chinese_no_major_solar_term_p = make_public(M.chinese_no_major_solar_term_p)
p.chinese_prior_leap_month_p = make_public(M.chinese_prior_leap_month_p)
p.chinese_new_year_in_sui = make_public(M.chinese_new_year_in_sui)
p.chinese_new_year_on_or_before = make_public(M.chinese_new_year_on_or_before)
p.chinese_from_fixed = make_public(M.chinese_from_fixed)
p.fixed_from_chinese = make_public(M.fixed_from_chinese, false)
p.chinese_name = make_public(M.chinese_name)
p.chinese_stem = make_public(M.chinese_stem)
p.chinese_branch = make_public(M.chinese_branch)
p.chinese_sexagesimal_name = make_public(M.chinese_sexagesimal_name)
p.chinese_name_difference = make_public(M.chinese_name_difference)
p.chinese_year_name = make_public(M.chinese_year_name)
p.chinese_month_name = make_public(M.chinese_month_name)
p.chinese_day_name = make_public(M.chinese_day_name)
p.chinese_day_name_on_or_before = make_public(M.chinese_day_name_on_or_before)
p.chinese_new_year = make_public(M.chinese_new_year)
p.dragon_festival = make_public(M.dragon_festival)
p.qing_ming = make_public(M.qing_ming)
p.chinese_age = make_public(M.chinese_age)
p.chinese_year_marriage_augury = make_public(M.chinese_year_marriage_augury)
p.chinese_solar_term_from_fixed = make_public(M.chinese_solar_term_from_fixed)
p.japanese_location = make_public(M.japanese_location)
p.japanese_solar_term_from_fixed = make_public(M.japanese_solar_term_from_fixed)
p.japanese_from_fixed = make_public(M.japanese_from_fixed)
p.fixed_from_japanese = make_public(M.fixed_from_japanese_for_wikipedia, false)
p.korean_location = make_public(M.korean_location)
p.korean_year = make_public(M.korean_year)
p.korean_solar_term_from_fixed = make_public(M.korean_solar_term_from_fixed)
p.korean_from_fixed = make_public(M.korean_from_fixed_for_wikipedia)
p.fixed_from_korean = make_public(M.fixed_from_korean_for_wikipedia, false)
p.vietnamese_location = make_public(M.vietnamese_location)
p.hindu_sine_table = make_public(M.hindu_sine_table)
p.hindu_sine = make_public(M.hindu_sine)
p.hindu_arcsin = make_public(M.hindu_arcsin)
p.hindu_mean_position = make_public(M.hindu_mean_position)
p.hindu_true_position = make_public(M.hindu_true_position)
p.hindu_solar_longitude = make_public(M.hindu_solar_longitude)
p.hindu_zodiac = make_public(M.hindu_zodiac)
p.hindu_lunar_longitude = make_public(M.hindu_lunar_longitude)
p.hindu_lunar_phase = make_public(M.hindu_lunar_phase)
p.hindu_lunar_day_from_moment = make_public(M.hindu_lunar_day_from_moment)
p.hindu_new_moon_before = make_public(M.hindu_new_moon_before)
p.hindu_solar_date = make_public(M.hindu_solar_date)
p.hindu_calendar_year = make_public(M.hindu_calendar_year)
p.hindu_solar_from_fixed = make_public(M.hindu_solar_from_fixed)
p.fixed_from_hindu_solar = make_public(M.fixed_from_hindu_solar, false)
p.hindu_lunar_date = make_public(M.hindu_lunar_date)
p.hindu_lunar_month = make_public(M.hindu_lunar_month)
p.hindu_lunar_leap_month = make_public(M.hindu_lunar_leap_month)
p.hindu_lunar_day = make_public(M.hindu_lunar_day)
p.hindu_lunar_leap_day = make_public(M.hindu_lunar_leap_day)
p.hindu_lunar_year = make_public(M.hindu_lunar_year)
p.hindu_lunar_from_fixed = make_public(M.hindu_lunar_from_fixed)
p.fixed_from_hindu_lunar = make_public(M.fixed_from_hindu_lunar, false)
p.hindu_ascensional_difference = make_public(M.hindu_ascensional_difference)
p.hindu_tropical_longitude = make_public(M.hindu_tropical_longitude)
p.hindu_solar_sidereal_difference = make_public(M.hindu_solar_sidereal_difference)
p.hindu_daily_motion = make_public(M.hindu_daily_motion)
p.hindu_rising_sign = make_public(M.hindu_rising_sign)
p.hindu_equation_of_time = make_public(M.hindu_equation_of_time)
p.hindu_sunrise = make_public(M.hindu_sunrise)
p.hindu_sunset = make_public(M.hindu_sunset)
p.hindu_standard_from_sundial = make_public(M.hindu_standard_from_sundial)
p.hindu_fullmoon_from_fixed = make_public(M.hindu_fullmoon_from_fixed)
p.fixed_from_hindu_fullmoon = make_public(M.fixed_from_hindu_fullmoon, false)
p.hindu_expunged_p = make_public(M.hindu_expunged_p)
p.alt_hindu_sunrise = make_public(M.alt_hindu_sunrise)
p.ayanamsha = make_public(M.ayanamsha)
p.astro_hindu_sunset = make_public(M.astro_hindu_sunset)
p.sidereal_zodiac = make_public(M.sidereal_zodiac)
p.astro_hindu_calendar_year = make_public(M.astro_hindu_calendar_year)
p.astro_hindu_solar_from_fixed = make_public(M.astro_hindu_solar_from_fixed)
p.fixed_from_astro_hindu_solar = make_public(M.fixed_from_astro_hindu_solar, false)
p.astro_lunar_day_from_moment = make_public(M.astro_lunar_day_from_moment)
p.astro_hindu_lunar_from_fixed = make_public(M.astro_hindu_lunar_from_fixed)
p.fixed_from_astro_hindu_lunar = make_public(M.fixed_from_astro_hindu_lunar, false)
p.hindu_solar_longitude_at_or_after = make_public(M.hindu_solar_longitude_at_or_after)
p.mesha_samkranti = make_public(M.mesha_samkranti)
p.hindu_lunar_day_at_or_after = make_public(M.hindu_lunar_day_at_or_after)
p.hindu_lunar_new_year = make_public(M.hindu_lunar_new_year)
p.hindu_lunar_on_or_before_p = make_public(M.hindu_lunar_on_or_before_p)
p.hindu_date_occur = make_public(M.hindu_date_occur)
p.hindu_lunar_holiday = make_public(M.hindu_lunar_holiday)
p.diwali = make_public(M.diwali)
p.hindu_tithi_occur = make_public(M.hindu_tithi_occur)
p.hindu_lunar_event = make_public(M.hindu_lunar_event)
p.shiva = make_public(M.shiva)
p.rama = make_public(M.rama)
p.hindu_lunar_station = make_public(M.hindu_lunar_station)
p.karana = make_public(M.karana)
p.yoga = make_public(M.yoga)
p.sacred_wednesdays = make_public(M.sacred_wednesdays)
p.sacred_wednesdays_in_range = make_public(M.sacred_wednesdays_in_range)
p.tibetan_date = make_public(M.tibetan_date)
p.tibetan_year = make_public(M.tibetan_year)
p.tibetan_month = make_public(M.tibetan_month)
p.tibetan_leap_month = make_public(M.tibetan_leap_month)
p.tibetan_day = make_public(M.tibetan_day)
p.tibetan_leap_day = make_public(M.tibetan_leap_day)
p.tibetan_sun_equation = make_public(M.tibetan_sun_equation)
p.tibetan_moon_equation = make_public(M.tibetan_moon_equation)
p.fixed_from_tibetan = make_public(M.fixed_from_tibetan, false)
p.tibetan_from_fixed = make_public(M.tibetan_from_fixed)
p.tibetan_leap_month_p = make_public(M.tibetan_leap_month_p)
p.tibetan_leap_day_p = make_public(M.tibetan_leap_day_p)
p.losar = make_public(M.losar)
p.tibetan_new_year = make_public(M.tibetan_new_year)
p.julian_year_from_auc_year = p.julian_year_from_auc
p.auc_year_from_julian_year = p.auc_year_from_julian
return p
2shtip2yxhyp76kcvrqfpk3fm10x49g
Module:Calendar
828
53011
309263
2026-09-23T17:51:32Z
Isma4l
41797
Bog cusub: local getArgs = require('Module:Arguments').getArgs local calendrical = require('Module:Calendrical Calculations') local p = {} local monthNames = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'} local falseValues = { ['0'] = true, ['false'] = true, ['no'] = true, ['n'] = true, ['off'] = true } local function callCalendrical(frame, functionName, ...) local childArgs = {} for i = 1, select('#', ......
309263
Scribunto
text/plain
local getArgs = require('Module:Arguments').getArgs
local calendrical = require('Module:Calendrical Calculations')
local p = {}
local monthNames = {'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'}
local falseValues = {
['0'] = true,
['false'] = true,
['no'] = true,
['n'] = true,
['off'] = true
}
local function callCalendrical(frame, functionName, ...)
local childArgs = {}
for i = 1, select('#', ...) do
childArgs[i] = tostring(select(i, ...))
end
local childFrame = frame:newChild { title = 'Module:Calendrical Calculations', args = childArgs }
local func = calendrical[functionName]
return func(childFrame)
end
local function parseDateTriple(value, functionName)
value = mw.text.trim(tostring(value))
local year, month, day = value:match('^(-?%d+)%-(%d+)%-(%d+)$')
if not year then
error(string.format('Module:Calendrical Calculations returned an unexpected value from %s: %s', functionName, value), 0)
end
return { year = tonumber(year), month = tonumber(month), day = tonumber(day) }
end
local function booleanArg(value, default)
if value == nil then
return default
end
value = mw.ustring.lower(mw.text.trim(tostring(value)))
if value == '' then
return default
end
return not falseValues[value]
end
local function firstDefined(args, ...)
for i = 1, select('#', ...) do
local value = args[select(i, ...)]
if value ~= nil then
return value
end
end
return nil
end
local function firstNonblank(args, ...)
for i = 1, select('#', ...) do
local value = args[select(i, ...)]
if value ~= nil and mw.text.trim(tostring(value)) ~= '' then
return value
end
end
return nil
end
local function sourceDateFromArgs(args)
local year = tonumber(args[1])
local month = tonumber(args[2])
local day = tonumber(args[3])
if not year or not month or not day or year % 1 ~= 0 or month % 1 ~= 0 or day % 1 ~= 0 then
error('The year, month and day must all be integers', 0)
end
return { year = year, month = month, day = day }
end
-- The Julian functions in Module:Calendrical Calculations do not use a year zero, but #time and this module do
local function toCalendricalJulianYear(year)
if year <= 0 then
return year - 1
end
return year
end
local function fromCalendricalJulianYear(year)
if year < 0 then
return year + 1
end
return year
end
local function normalizeFormat(value)
value = mw.ustring.upper(mw.text.trim(tostring(value or '')))
if value == 'MDY' then
return 'MDY'
end
return 'DMY'
end
local function normalizeCalendar(value, default)
value = mw.ustring.lower(mw.text.trim(tostring(value or '')))
if value == '' then
return default
end
if value == 'g' or value == 'gregorian' then
return 'g'
end
if value == 'j' or value == 'julian' then
return 'j'
end
if value == 'a' or value == 'as' or value == 'annunciation' or value == 'annunciation style' then
return 'a'
end
if value == 'n' or value == 'nativity' or value == 'nativity style' then
return 'n'
end
error(string.format('Unknown calendar code: %s', value), 0)
end
local function normalizeYearMarker(value)
if value == nil then
return nil
end
value = mw.text.trim(tostring(value))
if value == '' or value == '0' then
return nil
end
if value == '1' then
return 'year'
end
return value
end
local function optionsFromArgs(args)
return {
dateFormat = normalizeFormat(args.format or args[4]),
showYear = booleanArg(firstDefined(args, 'showyear', 'year'), true),
styleLink = booleanArg(firstDefined(args, 'stylelink', 'link'), true),
linkDay = booleanArg(args.wd, false),
linkMonth = booleanArg(args.wm, false),
linkYear = booleanArg(args.wy, false),
squareBrackets = booleanArg(args.sb, true),
yearMarker = normalizeYearMarker(args.ym)
}
end
local function yearText(year)
if year <= 0 then
return string.format('%d BC', 1 - year)
end
return tostring(year)
end
local function formatDay(date, shouldLink)
local display = tostring(date.day)
if not shouldLink then
return display
end
local target = string.format('%s %d', monthNames[date.month], date.day)
return string.format('[[%s|%s]]', target, display)
end
local function formatMonth(date, shouldLink)
local month = monthNames[date.month]
if shouldLink then
return string.format('[[%s]]', month)
end
return month
end
local function formatYear(year, shouldLink, marker)
local display = yearText(year)
if shouldLink then
display = string.format('[[%s]]', display)
end
if marker then
display = string.format('%s %s', display, marker)
end
return display
end
local function formatWithoutYear(date, dateFormat, links)
local day = formatDay(date, links.day)
local month = formatMonth(date, links.month)
if dateFormat == 'MDY' then
return string.format('%s %s', month, day)
end
return string.format('%s %s', day, month)
end
local function formatWithYear(date, dateFormat, links, marker)
local withoutYear = formatWithoutYear(date, dateFormat, links)
local year = formatYear(date.year, links.year, marker)
if dateFormat == 'MDY' then
return string.format('%s, %s', withoutYear, year)
end
return string.format('%s %s', withoutYear, year)
end
local function styleLabel(abbreviation, article, linked)
if linked then
return string.format('[[%s|%s]]', article, abbreviation)
end
return abbreviation
end
local function dateTooltip(text, calendar)
if calendar == 'a' then
return string.format('<span title="Annunciation Style date">%s</span>', text)
end
if calendar == 'n' then
return string.format('<span title="Nativity Style date">%s</span>', text)
end
return text
end
local function wrapAlternative(text, style, squareBrackets)
if squareBrackets then
return string.format('[%s %s]', style, text)
end
return string.format('(%s %s)', style, text)
end
local noLinks = { day = false, month = false, year = false }
local function gregorianLinks(options)
return {
day = options.linkDay,
month = options.linkMonth,
year = options.linkYear
}
end
local function formatConversion(source, converted, options, abbreviation, article, sourceIsGregorian, outputIsGregorian, sourceCalendar, outputCalendar)
local links = gregorianLinks(options)
local sourceLinks = sourceIsGregorian and links or noLinks
local convertedLinks = outputIsGregorian and links or noLinks
local style = styleLabel(abbreviation, article, options.styleLink)
if source.year ~= converted.year then
local sourceText
local convertedText
if options.showYear then
sourceText = formatWithYear(source, options.dateFormat, sourceLinks, options.yearMarker)
convertedText = formatWithYear(converted, options.dateFormat, convertedLinks, options.yearMarker)
else
sourceText = formatWithoutYear(source, options.dateFormat, sourceLinks)
convertedText = formatWithoutYear(converted, options.dateFormat, convertedLinks)
end
sourceText = dateTooltip(sourceText, sourceCalendar)
convertedText = dateTooltip(convertedText, outputCalendar)
return string.format('%s %s', sourceText, wrapAlternative(convertedText, style, options.squareBrackets))
end
local sourceText = dateTooltip(formatWithoutYear(source, options.dateFormat, sourceLinks), sourceCalendar)
local convertedText = dateTooltip(formatWithoutYear(converted, options.dateFormat, convertedLinks), outputCalendar)
local result = string.format('%s %s', sourceText, wrapAlternative(convertedText, style, options.squareBrackets))
if options.showYear then
local linkSharedYear = options.linkYear and (sourceIsGregorian or outputIsGregorian)
result = result .. ' ' .. formatYear(source.year, linkSharedYear, options.yearMarker)
end
return result
end
local function isBeforeAnnunciationNewYear(month, day)
return month < 3 or (month == 3 and day < 25)
end
local function isAtOrAfterNativityNewYear(month, day)
return month == 12 and day >= 25
end
local function outputCalendarFromArgs(args, sourceCalendar)
local value = firstNonblank(args, 'out', 'output', 'to')
local default = sourceCalendar == 'g' and 'j' or 'g'
return normalizeCalendar(value, default)
end
local function copyDate(date)
return { year = date.year, month = date.month, day = date.day }
end
local function calendricalSource(date, calendar)
local converted = copyDate(date)
if calendar == 'a' then
if isBeforeAnnunciationNewYear(converted.month, converted.day) then
converted.year = converted.year + 1
end
calendar = 'j'
elseif calendar == 'n' then
if isAtOrAfterNativityNewYear(converted.month, converted.day) then
converted.year = converted.year - 1
end
calendar = 'j'
end
if calendar == 'j' then
converted.year = toCalendricalJulianYear(converted.year)
return converted, 'julian'
end
return converted, 'gregorian'
end
local function calendricalOutput(date, calendar)
if calendar == 'g' then
return date
end
date.year = fromCalendricalJulianYear(date.year)
if calendar == 'a' and isBeforeAnnunciationNewYear(date.month, date.day) then
date.year = date.year - 1
elseif calendar == 'n' and isAtOrAfterNativityNewYear(date.month, date.day) then
date.year = date.year + 1
end
return date
end
local function convertDate(frame, source, sourceCalendar, outputCalendar)
local calculationSource, sourceName = calendricalSource(source, sourceCalendar)
local outputName = outputCalendar == 'g' and 'gregorian' or 'julian'
local result = callCalendrical(frame, 'convert', sourceName, outputName, calculationSource.year, calculationSource.month, calculationSource.day)
local converted = parseDateTriple(result, 'convert')
return calendricalOutput(converted, outputCalendar)
end
local function renderConversion(frame, args, forcedSourceCalendar, forcedOutputCalendar)
local source = sourceDateFromArgs(args)
local sourceCalendar = forcedSourceCalendar or normalizeCalendar(firstNonblank(args, 'cal', 'calendar'), 'j')
local outputCalendar = forcedOutputCalendar or outputCalendarFromArgs(args, sourceCalendar)
local converted = convertDate(frame, source, sourceCalendar, outputCalendar)
local outputIsGregorian = outputCalendar == 'g'
return formatConversion(source, converted, optionsFromArgs(args), outputIsGregorian and 'N.S.' or 'O.S.', outputIsGregorian and 'New Style' or 'Old Style', sourceCalendar == 'g', outputIsGregorian, sourceCalendar, outputCalendar)
end
function p.convert(frame)
return renderConversion(frame, getArgs(frame))
end
return p
hw071ddb8c3wsepp213b5usqhokzr14
309264
309263
2026-09-23T17:53:18Z
Isma4l
41797
309264
Scribunto
text/plain
local getArgs = require('Module:Arguments').getArgs
local calendrical = require('Module:Calendrical Calculations')
local p = {}
local monthNames = {'Jannaayo', 'Febraayo', 'Maarso', 'Abriil', 'Maajo', 'Juun', 'Luuliyo', 'Agoosto', 'Sebteembar', 'Oktoobar', 'Nofeembar', 'Diseembar'}
local falseValues = {
['0'] = true,
['false'] = true,
['no'] = true,
['n'] = true,
['off'] = true
}
local function callCalendrical(frame, functionName, ...)
local childArgs = {}
for i = 1, select('#', ...) do
childArgs[i] = tostring(select(i, ...))
end
local childFrame = frame:newChild { title = 'Module:Calendrical Calculations', args = childArgs }
local func = calendrical[functionName]
return func(childFrame)
end
local function parseDateTriple(value, functionName)
value = mw.text.trim(tostring(value))
local year, month, day = value:match('^(-?%d+)%-(%d+)%-(%d+)$')
if not year then
error(string.format('Module:Calendrical Calculations waxay ka soo celisay qiime aan la filayn:%s: %s', functionName, value), 0)
end
return { year = tonumber(year), month = tonumber(month), day = tonumber(day) }
end
local function booleanArg(value, default)
if value == nil then
return default
end
value = mw.ustring.lower(mw.text.trim(tostring(value)))
if value == '' then
return default
end
return not falseValues[value]
end
local function firstDefined(args, ...)
for i = 1, select('#', ...) do
local value = args[select(i, ...)]
if value ~= nil then
return value
end
end
return nil
end
local function firstNonblank(args, ...)
for i = 1, select('#', ...) do
local value = args[select(i, ...)]
if value ~= nil and mw.text.trim(tostring(value)) ~= '' then
return value
end
end
return nil
end
local function sourceDateFromArgs(args)
local year = tonumber(args[1])
local month = tonumber(args[2])
local day = tonumber(args[3])
if not year or not month or not day or year % 1 ~= 0 or month % 1 ~= 0 or day % 1 ~= 0 then
error('Sanadka, bilaha iyo maalinta waa inay dhammaantood noqdaan tirooyin buuxa', 0)
end
return { year = year, month = month, day = day }
end
-- Shaqooyinka Julian ee ku jira Module:Calendrical Calculations ma isticmaalaan sanad eber ah, laakiin #time iyo module-kan waa ay isticmaalaan
local function toCalendricalJulianYear(year)
if year <= 0 then
return year - 1
end
return year
end
local function fromCalendricalJulianYear(year)
if year < 0 then
return year + 1
end
return year
end
local function normalizeFormat(value)
value = mw.ustring.upper(mw.text.trim(tostring(value or '')))
if value == 'MDY' then
return 'MDY'
end
return 'DMY'
end
local function normalizeCalendar(value, default)
value = mw.ustring.lower(mw.text.trim(tostring(value or '')))
if value == '' then
return default
end
if value == 'g' or value == 'gregorian' then
return 'g'
end
if value == 'j' or value == 'julian' then
return 'j'
end
if value == 'a' or value == 'as' or value == 'annunciation' or value == 'annunciation style' then
return 'a'
end
if value == 'n' or value == 'nativity' or value == 'nativity style' then
return 'n'
end
error(string.format('Summad kalandar oo aan la aqoon: %s', value), 0)
end
local function normalizeYearMarker(value)
if value == nil then
return nil
end
value = mw.text.trim(tostring(value))
if value == '' or value == '0' then
return nil
end
if value == '1' then
return 'sanad'
end
return value
end
local function optionsFromArgs(args)
return {
dateFormat = normalizeFormat(args.format or args[4]),
showYear = booleanArg(firstDefined(args, 'showyear', 'year'), true),
styleLink = booleanArg(firstDefined(args, 'stylelink', 'link'), true),
linkDay = booleanArg(args.wd, false),
linkMonth = booleanArg(args.wm, false),
linkYear = booleanArg(args.wy, false),
squareBrackets = booleanArg(args.sb, true),
yearMarker = normalizeYearMarker(args.ym)
}
end
local function yearText(year)
if year <= 0 then
return string.format('%d C.H.', 1 - year)
end
return tostring(year)
end
local function formatDay(date, shouldLink)
local display = tostring(date.day)
if not shouldLink then
return display
end
local target = string.format('%s %d', monthNames[date.month], date.day)
return string.format('[[%s|%s]]', target, display)
end
local function formatMonth(date, shouldLink)
local month = monthNames[date.month]
if shouldLink then
return string.format('[[%s]]', month)
end
return month
end
local function formatYear(year, shouldLink, marker)
local display = yearText(year)
if shouldLink then
display = string.format('[[%s]]', display)
end
if marker then
display = string.format('%s %s', display, marker)
end
return display
end
local function formatWithoutYear(date, dateFormat, links)
local day = formatDay(date, links.day)
local month = formatMonth(date, links.month)
if dateFormat == 'MDY' then
return string.format('%s %s', month, day)
end
return string.format('%s %s', day, month)
end
local function formatWithYear(date, dateFormat, links, marker)
local withoutYear = formatWithoutYear(date, dateFormat, links)
local year = formatYear(date.year, links.year, marker)
if dateFormat == 'MDY' then
return string.format('%s, %s', withoutYear, year)
end
return string.format('%s %s', withoutYear, year)
end
local function styleLabel(abbreviation, article, linked)
if linked then
return string.format('[[%s|%s]]', article, abbreviation)
end
return abbreviation
end
local function dateTooltip(text, calendar)
if calendar == 'a' then
return string.format('<span title="Taariikhda Habka Suubbinta (Annunciation Style)">%s</span>', text)
end
if calendar == 'n' then
return string.format('<span title="Taariikhda Habka Dhalashada (Nativity Style)">%s</span>', text)
end
return text
end
local function wrapAlternative(text, style, squareBrackets)
if squareBrackets then
return string.format('[%s %s]', style, text)
end
return string.format('(%s %s)', style, text)
end
local noLinks = { day = false, month = false, year = false }
local function gregorianLinks(options)
return {
day = options.linkDay,
month = options.linkMonth,
year = options.linkYear
}
end
local function formatConversion(source, converted, options, abbreviation, article, sourceIsGregorian, outputIsGregorian, sourceCalendar, outputCalendar)
local links = gregorianLinks(options)
local sourceLinks = sourceIsGregorian and links or noLinks
local convertedLinks = outputIsGregorian and links or noLinks
local style = styleLabel(abbreviation, article, options.styleLink)
if source.year ~= converted.year then
local sourceText
local convertedText
if options.showYear then
sourceText = formatWithYear(source, options.dateFormat, sourceLinks, options.yearMarker)
convertedText = formatWithYear(converted, options.dateFormat, convertedLinks, options.yearMarker)
else
sourceText = formatWithoutYear(source, options.dateFormat, sourceLinks)
convertedText = formatWithoutYear(converted, options.dateFormat, convertedLinks)
end
sourceText = dateTooltip(sourceText, sourceCalendar)
convertedText = dateTooltip(convertedText, outputCalendar)
return string.format('%s %s', sourceText, wrapAlternative(convertedText, style, options.squareBrackets))
end
local sourceText = dateTooltip(formatWithoutYear(source, options.dateFormat, sourceLinks), sourceCalendar)
local convertedText = dateTooltip(formatWithoutYear(converted, options.dateFormat, convertedLinks), outputCalendar)
local result = string.format('%s %s', sourceText, wrapAlternative(convertedText, style, options.squareBrackets))
if options.showYear then
local linkSharedYear = options.linkYear and (sourceIsGregorian or outputIsGregorian)
result = result .. ' ' .. formatYear(source.year, linkSharedYear, options.yearMarker)
end
return result
end
local function isBeforeAnnunciationNewYear(month, day)
return month < 3 or (month == 3 and day < 25)
end
local function isAtOrAfterNativityNewYear(month, day)
return month == 12 and day >= 25
end
local function outputCalendarFromArgs(args, sourceCalendar)
local value = firstNonblank(args, 'out', 'output', 'to')
local default = sourceCalendar == 'g' and 'j' or 'g'
return normalizeCalendar(value, default)
end
local function copyDate(date)
return { year = date.year, month = date.month, day = date.day }
end
local function calendricalSource(date, calendar)
local converted = copyDate(date)
if calendar == 'a' then
if isBeforeAnnunciationNewYear(converted.month, converted.day) then
converted.year = converted.year + 1
end
calendar = 'j'
elseif calendar == 'n' then
if isAtOrAfterNativityNewYear(converted.month, converted.day) then
converted.year = converted.year - 1
end
calendar = 'j'
end
if calendar == 'j' then
converted.year = toCalendricalJulianYear(converted.year)
return converted, 'julian'
end
return converted, 'gregorian'
end
local function calendricalOutput(date, calendar)
if calendar == 'g' then
return date
end
date.year = fromCalendricalJulianYear(date.year)
if calendar == 'a' and isBeforeAnnunciationNewYear(date.month, date.day) then
date.year = date.year - 1
elseif calendar == 'n' and isAtOrAfterNativityNewYear(date.month, date.day) then
date.year = date.year + 1
end
return date
end
local function convertDate(frame, source, sourceCalendar, outputCalendar)
local calculationSource, sourceName = calendricalSource(source, sourceCalendar)
local outputName = outputCalendar == 'g' and 'gregorian' or 'julian'
local result = callCalendrical(frame, 'convert', sourceName, outputName, calculationSource.year, calculationSource.month, calculationSource.day)
local converted = parseDateTriple(result, 'convert')
return calendricalOutput(converted, outputCalendar)
end
local function renderConversion(frame, args, forcedSourceCalendar, forcedOutputCalendar)
local source = sourceDateFromArgs(args)
local sourceCalendar = forcedSourceCalendar or normalizeCalendar(firstNonblank(args, 'cal', 'calendar'), 'j')
local outputCalendar = forcedOutputCalendar or outputCalendarFromArgs(args, sourceCalendar)
local converted = convertDate(frame, source, sourceCalendar, outputCalendar)
local outputIsGregorian = outputCalendar == 'g'
return formatConversion(source, converted, optionsFromArgs(args), outputIsGregorian and 'N.S.' or 'O.S.', outputIsGregorian and 'Habka Cusub' or 'Habka Hore', sourceCalendar == 'g', outputIsGregorian, sourceCalendar, outputCalendar)
end
function p.convert(frame)
return renderConversion(frame, getArgs(frame))
end
return p
rl2fr9dnuopbrkr274c8sthyh8vdmkh
Template:Year births or deaths category header
10
53012
309265
2026-09-23T17:56:59Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada ugu horreysa waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb (category) ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "Dhalashadii YYYY" ama "Geeridii YYYY" (oo Ingiriis ahaan ah "YYYY births" ama "YYYY deaths") -->{{#ifeq: {{#expr: {{#invoke:String|find|{{PAGENAME}}|^A?D? ?%d%d?%d?%d? ?B...
309265
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada ugu horreysa waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb (category) ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "Dhalashadii YYYY" ama "Geeridii YYYY" (oo Ingiriis ahaan ah "YYYY births" ama "YYYY deaths")
-->{{#ifeq: {{#expr: {{#invoke:String|find|{{PAGENAME}}|^A?D? ?%d%d?%d?%d? ?B?C? births$|plain=false}} +
{{#invoke:String|find|{{PAGENAME}}|^A?D? ?%d%d?%d?%d? ?B?C? deaths$|plain=false}} }}<!--
-->|0<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:Year births or deaths category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka {{nowrap|"YYYY births"}} ama {{nowrap|"YYYY deaths"}}, halkaas oo "YYYY" ay tahay sanad (tusaale. "1201 births", "2021 deaths", "265 births", ama "12 BC deaths")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!--
-->{{Year births or deaths category header/core<!--
-->|year={{#invoke:String|replace|{{PAGENAME}}|pattern=^A?D? ?(%d%d?%d?%d? ?B?C?) (%l+)$|%1|1|false}}<!--
-->|bc={{#ifexpr: {{#invoke:String|find|{{PAGENAME}}|BC|plain=false}} > 0|1}}<!--
-->|type={{#invoke:String|replace|{{PAGENAME}}|pattern=^A?D? ?(%d%d?%d?%d? ?B?C?) (%l+)$|%2|1|false}}<!--
-->}}<!--
-->}}<!--
-->|<!-- ############### Ma aha qayb (category) ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta (category namespace)]].<br />[[Template:Year births or deaths category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka {{nowrap|"YYYY births"}} ama {{nowrap|"YYYY deaths"}}, halkaas oo "YYYY" ay tahay sanad (tusaale. "1201 births", "2021 deaths", "265 births", ama "12 BC deaths")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}<!--
# Hordhaca hore wuxuu u baahnaa cabirro (parameters) halka kan uusan u baahnayn. Geli bogaggaas qaybtan dabagalka si loo nadiifiyo
-->{{#if:{{{1}}}|[[Category:Pages using year births or deaths category header with parameters]]}}</includeonly><!--
# Ogow in {{Automatic category TOC}} ay tahay inay diyaar noqoto iyada oo aan loo eegin in boggan template-ka ah la geliyay (transcluded) iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}
</noinclude>
rihc8wksxwotvo734a9lhx7nsy136zz
309266
309265
2026-09-23T17:58:30Z
Isma4l
41797
309266
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada ugu horreysa waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "Dhalashadii YYYY" ama "Geeridii YYYY" (oo Ingiriis ahaan ah "YYYY births" ama "YYYY deaths")
-->{{#ifeq: {{#expr: {{#invoke:String|find|{{PAGENAME}}|^A?D? ?%d%d?%d?%d? ?B?C? births$|plain=false}} +
{{#invoke:String|find|{{PAGENAME}}|^A?D? ?%d%d?%d?%d? ?B?C? deaths$|plain=false}} }}<!--
-->|0<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:Year births or deaths category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka {{nowrap|"YYYY births"}} ama {{nowrap|"YYYY deaths"}}, halkaas oo "YYYY" ay tahay sanad (tusaale. "1201 births", "2021 deaths", "265 births", ama "12 BC deaths")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!--
-->{{Year births or deaths category header/core<!--
-->|year={{#invoke:String|replace|{{PAGENAME}}|pattern=^A?D? ?(%d%d?%d?%d? ?B?C?) (%l+)$|%1|1|false}}<!--
-->|bc={{#ifexpr: {{#invoke:String|find|{{PAGENAME}}|BC|plain=false}} > 0|1}}<!--
-->|type={{#invoke:String|replace|{{PAGENAME}}|pattern=^A?D? ?(%d%d?%d?%d? ?B?C?) (%l+)$|%2|1|false}}<!--
-->}}<!--
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta (category namespace)]].<br />[[Template:Year births or deaths category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka {{nowrap|"YYYY births"}} ama {{nowrap|"YYYY deaths"}}, halkaas oo "YYYY" ay tahay sanad (tusaale. "1201 births", "2021 deaths", "265 births", ama "12 BC deaths")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}<!--
# Hordhaca hore wuxuu u baahnaa cabirro halka kan uusan u baahnayn. Geli bogaggaas qaybtan dabagalka si loo nadiifiyo
-->{{#if:{{{1}}}|[[Category:Pages using year births or deaths category header with parameters]]}}</includeonly><!--
# Ogow in {{Automatic category TOC}} ay tahay inay diyaar noqoto iyada oo aan loo eegin in boggan template-ka ah la geliyay (transcluded) iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}
</noinclude>
kb4grk7z57tqpxo32jvp58nh9sub6yp
Template:NUMBEROFSECTIONS
10
53013
309267
2026-09-23T17:59:30Z
Isma4l
41797
Bog cusub: {{{{{|safesubst:}}}#invoke:NUMBEROFSECTIONS|main|{{{1|{{{{{|safesubst:}}}FULLPAGENAME}}}}}|level={{{level|2}}}}}<noinclude> {{documentation}} </noinclude>
309267
wikitext
text/x-wiki
{{{{{|safesubst:}}}#invoke:NUMBEROFSECTIONS|main|{{{1|{{{{{|safesubst:}}}FULLPAGENAME}}}}}|level={{{level|2}}}}}<noinclude>
{{documentation}}
</noinclude>
nxvbv7egflcvbnikykarf6nhomex8sj
Module:NUMBEROFSECTIONS
828
53014
309268
2026-09-23T17:59:56Z
Isma4l
41797
Bog cusub: local p = {} -- Unescape functionality grabbed from https://stackoverflow.com/a/14899740/1832568 local function unescape(str) str = string.gsub(str, '&#(%d+);', string.char) str = string.gsub(str, '&#x(%d+);', function(n) return string.char(tonumber(n, 16)) end) return str end -- Counting function accepting a string haystack and table of needles local function count(haystack, needles) local number = 0 -- While we have needles to look for for index, needle in ipairs(needle...
309268
Scribunto
text/plain
local p = {}
-- Unescape functionality grabbed from https://stackoverflow.com/a/14899740/1832568
local function unescape(str)
str = string.gsub(str, '&#(%d+);', string.char)
str = string.gsub(str, '&#x(%d+);', function(n) return string.char(tonumber(n, 16)) end)
return str
end
-- Counting function accepting a string haystack and table of needles
local function count(haystack, needles)
local number = 0
-- While we have needles to look for
for index, needle in ipairs(needles) do
-- find them all in our haystack
for m in string.gmatch(haystack, needle) do
number = number + 1
end
end
return number
end
-- Function takes any number of # delimited page names and section level numbers
function p.main(frame)
local total = 0
local needles = {}
local haystack = ''
-- Separate page names from # delimited string into table
local pages = mw.text.split(unescape(frame.args[1]), '%s*#%s*')
-- Separate whitespace delimited section level numbers into table
local levels = mw.text.split(frame.args['level'], '%s*')
-- Iterate through levels
for level in mw.text.gsplit(table.concat(levels), '') do
-- and add the level needle to needles
needles[#needles + 1] = '\n'..string.rep('=', tonumber(level))..'[^=]'
end
-- For each page name in pages
for index, page in ipairs(pages) do
-- create a haystack to search from the page content
haystack = mw.title.new(page):getContent()
-- If we've requested the content of a legitimate page
if haystack then
--[[ pass the raw markup and needles to count
and add the return to total ]]
total = total + count('\n' .. haystack, needles)
end
end
--[[ then return how many sections of the required level
are in all the pages passed ]]
return total
end
return p
pvg9t97autgozd189k0parv6j7b74he
Module:EFloras
828
53015
309269
2026-09-23T18:02:04Z
Isma4l
41797
Bog cusub: require('strict') local p = {} local data -- Load [[Module:eFloras/data]] if needed and assign to this variable. local function getResource(floraID) data = data or mw.loadData("Module:eFloras/data") return data.resources[floraID] or data.resources[tonumber(floraID)] end function p.resource(frame) local floraID = string.match(frame.args[1], "%d+") if floraID == nil then return "<span style=\"color: red;\">Please provide a resource number (<code>flora_id</code>). See the...
309269
Scribunto
text/plain
require('strict')
local p = {}
local data -- Load [[Module:eFloras/data]] if needed and assign to this variable.
local function getResource(floraID)
data = data or mw.loadData("Module:eFloras/data")
return data.resources[floraID] or data.resources[tonumber(floraID)]
end
function p.resource(frame)
local floraID = string.match(frame.args[1], "%d+")
if floraID == nil then
return "<span style=\"color: red;\">Please provide a resource number (<code>flora_id</code>). See the list of supported resource numbers at [[Module:eFloras/doc]]</span>"
else
local familyToVolume = getResource(floraID)
if familyToVolume == nil then
return "<span style=\"color: red;\">The resource number (<code>flora_id</code>) <code>" .. floraID .. "</code> is not recognized. See the list of supported resource numbers at [[Module:eFloras/doc]]</span>[[Category:Pages using eFloras template with unsupported parameter values]]"
else
return familyToVolume
end
end
end
function p._volumeName(floraID, volume, family)
floraID = tonumber(floraID)
if not floraID then -- floraID is not a number.
return
end
data = data or mw.loadData("Module:eFloras/data")
if not volume then
local familyToVolume = data.volumeTable[floraID]
if not familyToVolume then
return
end
volume = tonumber(familyToVolume[family])
if not volume then
return
end
end
local floraVolumeNames = data.volumeNames and data.volumeNames[floraID]
if floraVolumeNames and volume then
return floraVolumeNames[volume]
end
end
function p.volumeName(frame)
if not (frame.args[1] and (frame.args[2] or frame.args[3] or frame.args.family)) then
return
end
local floraID = string.match(frame.args[1], "%d+")
local volume = tonumber(frame.args[2])
local family = frame.args[3] or frame.args.family
if not (floraID and (volume or family)) then
return
end
return p._volumeName(floraID, volume, family)
end
function p._volumeDate(floraID, volume, family)
floraID = tonumber(floraID)
if not floraID then -- floraID is not a number.
return
end
data = data or mw.loadData("Module:eFloras/data")
if not volume then
local familyToVolume = data.volumeTable[floraID]
if not familyToVolume then
return
end
volume = tonumber(familyToVolume[family])
if not volume then
return
end
end
local floraVolumeDates = data.volumeDates and data.volumeDates[floraID]
if floraVolumeDates then
if volume and floraVolumeDates[volume] then
return floraVolumeDates[volume]
else
return floraVolumeDates.default
end
end
end
function p.volumeDate(frame)
if not (frame.args[1] and (frame.args[2] or frame.args[3] or frame.args.family)) then
return
end
local floraID = string.match(frame.args[1], "%d+")
local volume = tonumber(frame.args[2])
local family = frame.args[3] or frame.args.family
if not (floraID and (volume or family)) then
return
end
return p._volumeDate(floraID, volume, family)
end
function p.volume(frame)
local floraID = string.match(frame.args[1], "%d+")
local family = frame.args[2] or frame.args.family
data = data or mw.loadData("Module:eFloras/data")
local familyToVolume = data.volumeTable[floraID] or data.volumeTable[tonumber(floraID)]
if familyToVolume == nil then
return ""
else
local volume = familyToVolume[family]
if volume == "error" then
return "19–21 [[Category:Pages using eFloras template with unsupported parameter values]]"
elseif volume == nil then
return ""
else
return volume
end
end
end
-- Italicize if name requires it.
function p.italicize(name)
local orig = name
name = string.gsub(name, "^%s*(.-)%s*$", "%1")
local count
name, count = string.gsub(name, "\'\'\'?", "")
if count > 0 then
-- A tracking method used on Wiktionary: [[wikt:Module:debug]].
-- To see the results:
-- [[Special:WhatLinksHere/Template:tracking/eFloras/italics or bolding]]
local frame = mw.getCurrentFrame()
pcall(frame.expandTemplate, frame, { title = 'tracking/eFloras/italics or bolding' })
mw.log("Italics in input to the italicize function in Module:eFloras:", orig)
end
local rank
local lowerName = name:lower()
if name == "" or name == nil then
return
elseif string.find(name, "^%u%l+ae$") then
if string.find(name, "eae$") then
if string.find(name, "aceae$") then
rank = "family"
elseif string.find(name, "oideae$") then
rank = "subfamily"
else
rank = "tribe"
end
elseif string.find(name, "inae$") then
rank = "subtribe"
end
elseif string.find(lowerName, "subsp.", 1, true) then
rank = "subspecies"
elseif string.find(lowerName, "subg.", 1, true) then
rank = "subgenus"
elseif string.find(lowerName, "var.", 1, true) then
rank = "variety"
elseif string.find(lowerName, "sect.", 1, true) then
rank = "section"
elseif string.find(name, "^%a+%s[%a-]+$") or string.find(name, "^%a+%s×%s[%a-]+$") then
rank = "species"
elseif string.find(name, "^%u%a+$") -- No one-letter genera, probably.
and not string.find(name, ".%u") then -- Uppercase letters can only appear at beginning of taxonomic name.
rank = "genus"
end
if not rank then
mw.log("Module:eFloras could not determine a taxonomic rank for the input that it received: " .. name)
return orig
end
if rank == "genus" or rank == "subgenus" or rank == "species"
or rank == "subspecies" or rank == "variety" or rank == "section" then
name = "<i>" .. name .. "</i>"
local hybrid = "×"
if name:find(".", 1, true) then
local abbreviations = {
["subsp."] = true, ["ssp."] = true, ["var."] = true, ["f."] = true,
["sect."] = true, ["subsect."] = true, ["subg."] = true,
}
local unrecognized
name = name:gsub(
"%s+(%S+%.)%s+",
function (abbreviation)
mw.log(name, abbreviation, abbreviation:lower(), abbreviations[abbreviation:lower()])
if abbreviations[abbreviation:lower()] then
return "</i> " .. abbreviation .. " <i>"
else
unrecognized = unrecognized or {}
table.insert(unrecognized, abbreviation)
end
end)
if unrecognized then
mw.log(string.format("The abbreviation%s %s %s not recognized.",
unrecognized[2] and "s" or "",
table.concat(
unrecognized,
", "),
unrecognized[2] and "are" or "is"))
return orig
end
end
name = name:gsub("%s+" .. hybrid .. "%s+", "</i> " .. hybrid .. " <i>")
end -- Else do not modify name.
return name
end
function p.name(frame)
local name = frame.args[1]
return p.italicize(name)
end
p.get_volume = p.volume
return p
dlbywmko918it4132b13o2gvyp1q74c
Module:EFloras/data
828
53016
309270
2026-09-23T18:02:46Z
Isma4l
41797
Bog cusub: local data = {} data.volumeTable = { ["Flora of North America"] = { ["Anemiaceae"] = 2, ["Aspleniaceae"] = 2, ["Azollaceae"] = 2, ["Blechnaceae"] = 2, ["Cupressaceae"] = 2, ["Dennstaedtiaceae"] = 2, ["Dryopteridaceae"] = 2, ["Ephedraceae"] = 2, ["Equisetaceae"] = 2, ["Ginkgoaceae"] = 2, ["Gleicheniaceae"] = 2, ["Grammitidaceae"] = 2, ["Hymenophyllaceae"] = 2, ["Isoëtaceae"] = 2, ["Lycopodiaceae"] = 2, ["Lygodiaceae"] = 2, ["Marsileaceae"] = 2,...
309270
Scribunto
text/plain
local data = {}
data.volumeTable = {
["Flora of North America"] = {
["Anemiaceae"] = 2,
["Aspleniaceae"] = 2,
["Azollaceae"] = 2,
["Blechnaceae"] = 2,
["Cupressaceae"] = 2,
["Dennstaedtiaceae"] = 2,
["Dryopteridaceae"] = 2,
["Ephedraceae"] = 2,
["Equisetaceae"] = 2,
["Ginkgoaceae"] = 2,
["Gleicheniaceae"] = 2,
["Grammitidaceae"] = 2,
["Hymenophyllaceae"] = 2,
["Isoëtaceae"] = 2,
["Lycopodiaceae"] = 2,
["Lygodiaceae"] = 2,
["Marsileaceae"] = 2,
["Ophioglossaceae"] = 2,
["Osmundaceae"] = 2,
["Parkeriaceae"] = 2,
["Pinaceae"] = 2,
["Polypodiaceae"] = 2,
["Psilotaceae"] = 2,
["Pteridaceae"] = 2,
["Salviniaceae"] = 2,
["Schizaeaceae"] = 2,
["Selaginellaceae"] = 2,
["Taxaceae"] = 2,
["Thelypteridaceae"] = 2,
["Vittariaceae"] = 2,
["Zamiaceae"] = 2,
["Annonaceae"] = 3,
["Aristolochiaceae"] = 3,
["Berberidaceae"] = 3,
["Betulaceae"] = 3,
["Cabombaceae"] = 3,
["Calycanthaceae"] = 3,
["Canellaceae"] = 3,
["Cannabaceae"] = 3,
["Casuarinaceae"] = 3,
["Ceratophyllaceae"] = 3,
["Fagaceae"] = 3,
["Fumariaceae"] = 3,
["Hamamelidaceae"] = 3,
["Illiciaceae"] = 3,
["Juglandaceae"] = 3,
["Lardizabalaceae"] = 3,
["Lauraceae"] = 3,
["Leitneriaceae"] = 3,
["Magnoliaceae"] = 3,
["Menispermaceae"] = 3,
["Moraceae"] = 3,
["Myricaceae"] = 3,
["Nelumbonaceae"] = 3,
["Nymphaeaceae"] = 3,
["Papaveraceae"] = 3,
["Piperaceae"] = 3,
["Platanaceae"] = 3,
["Ranunculaceae"] = 3,
["Saururaceae"] = 3,
["Schisandraceae"] = 3,
["Ulmaceae"] = 3,
["Urticaceae"] = 3,
["Achatocarpaceae"] = 4,
["Aizoaceae"] = 4,
["Amaranthaceae"] = 4,
["Basellaceae"] = 4,
["Cactaceae"] = 4,
["Chenopodiaceae"] = 4,
["Molluginaceae"] = 4,
["Nyctaginaceae"] = 4,
["Phytolaccaceae"] = 4,
["Portulacaceae"] = 4,
["Caryophyllaceae"] = 5,
["Plumbaginaceae"] = 5,
["Polygonaceae"] = 5,
["Apodanthaceae"] = 6,
["Begoniaceae"] = 6,
["Calophyllaceae"] = 6,
["Cistaceae"] = 6,
["Clusiaceae"] = 6,
["Cochlospermaceae"] = 6,
["Cucurbitaceae"] = 6,
["Datiscaceae"] = 6,
["Droseraceae"] = 6,
["Frankeniaceae"] = 6,
["Hypericaceae"] = 6,
["Malvaceae"] = 6,
["Muntingiaceae"] = 6,
["Passifloraceae"] = 6,
["Podostemaceae"] = 6,
["Tamaricaceae"] = 6,
["Thymelaeaceae"] = 6,
["Turneraceae"] = 6,
["Violaceae"] = 6,
["Bataceae"] = 7,
["Brassicaceae"] = 7,
["Capparaceae"] = 7,
["Caricaceae"] = 7,
["Cleomaceae"] = 7,
["Koeberliniaceae"] = 7,
["Limnanthaceae"] = 7,
["Moringaceae"] = 7,
["Resedaceae"] = 7,
["Salicaceae"] = 7,
["Tropaeolaceae"] = 7,
["Clethraceae"] = 8,
["Crassulaceae"] = 8,
["Cyrillaceae"] = 8,
["Diapensiaceae"] = 8,
["Ebenaceae"] = 8,
["Ericaceae"] = 8,
["Grossulariaceae"] = 8,
["Iteaceae"] = 8,
["Myrsinaceae"] = 8,
["Paeoniaceae"] = 8,
["Penthoraceae"] = 8,
["Primulaceae"] = 8,
["Sapotaceae"] = 8,
["Sarraceniaceae"] = 8,
["Saxifragaceae"] = 8,
["Styracaceae"] = 8,
["Symplocaceae"] = 8,
["Theaceae"] = 8,
["Theophrastaceae"] = 8,
["Crossosomataceae"] = 9,
["Picramniaceae"] = 9,
["Rosaceae"] = 9,
["Staphyleaceae"] = 9,
["Buxaceae"] = 10,
["Combretaceae"] = 10,
["Elaeagnaceae"] = 10,
["Gunneraceae"] = 10,
["Haloragaceae"] = 10,
["Lythraceae"] = 10,
["Melastomataceae"] = 10,
["Myrtaceae"] = 10,
["Onagraceae"] = 10,
["Polygalaceae"] = 10,
["Proteaceae"] = 10,
["Surianaceae"] = 10,
["Celastraceae"] = 12,
["Cervantesiaceae"] = 12,
["Chrysobalanaceae"] = 12,
["Comandraceae"] = 12,
["Cornaceae"] = 12,
["Elatinaceae"] = 12,
["Eucommiaceae"] = 12,
["Euphorbiaceae"] = 12,
["Garryaceae"] = 12,
["Hydrangeaceae"] = 12,
["Krameriaceae"] = 12,
["Linaceae"] = 12,
["Loasaceae"] = 12,
["Malpighiaceae"] = 12,
["Nyssaceae"] = 12,
["Oxalidaceae"] = 12,
["Phyllanthaceae"] = 12,
["Picrodendraceae"] = 12,
["Putranjivaceae"] = 12,
["Rhamnaceae"] = 12,
["Rhizophoraceae"] = 12,
["Santalaceae"] = 12,
["Schoepfiaceae"] = 12,
["Simmondsiaceae"] = 12,
["Thesiaceae"] = 12,
["Viscaceae"] = 12,
["Vitaceae"] = 12,
["Ximeniaceae"] = 12,
["Zygophyllaceae"] = 12,
["Apocynaceae"] = 14,
["Convolvulaceae"] = 14,
["Gelsemiaceae"] = 14,
["Gentianaceae"] = 14,
["Hydroleaceae"] = 14,
["Loganiaceae"] = 14,
["Solanaceae"] = 14,
["Sphenocleaceae"] = 14,
-- The following names in volumes 19-21 are tribes of the family Asteraceae.
["Cichorieae"] = 19,
["Arctotideae"] = 19,
["Anthemideae"] = 19,
["Vernonieae"] = 19,
["Mutisieae"] = 19,
["Cardueae"] = 19,
["Calenduleae"] = 19,
["Inuleae"] = 19,
["Gnaphalieae"] = 19,
["Plucheeae"] = 19,
["Asteraceae"] = "error",
["Astereae"] = 20,
["Senecioneae"] = 20,
["Eupatorieae"] = 21,
["Heliantheae"] = 21,
-- end of list of tribes of Asteraceae
["Acoraceae"] = 22,
["Alismataceae"] = 22,
["Aponogetonaceae"] = 22,
["Araceae"] = 22,
["Arecaceae"] = 22,
["Bromeliaceae"] = 22,
["Butomaceae"] = 22,
["Cannaceae"] = 22,
["Commelinaceae"] = 22,
["Cymodoceaceae"] = 22,
["Eriocaulaceae"] = 22,
["Heliconiaceae"] = 22,
["Hydrocharitaceae"] = 22,
["Juncaceae"] = 22,
["Juncaginaceae"] = 22,
["Lemnaceae"] = 22,
["Limnocharitaceae"] = 22,
["Marantaceae"] = 22,
["Mayacaceae"] = 22,
["Musaceae"] = 22,
["Najadaceae"] = 22,
["Potamogetonaceae"] = 22,
["Ruppiaceae"] = 22,
["Scheuchzeriaceae"] = 22,
["Sparganiaceae"] = 22,
["Typhaceae"] = 22,
["Xyridaceae"] = 22,
["Zannichelliaceae"] = 22,
["Zingiberaceae"] = 22,
["Zosteraceae"] = 22,
["Cyperaceae"] = 23,
["Agavaceae"] = 26,
["Aloaceae"] = 26,
["Burmanniaceae"] = 26,
["Dioscoreaceae"] = 26,
["Haemodoraceae"] = 26,
["Iridaceae"] = 26,
["Liliaceae"] = 26,
["Orchidaceae"] = 26,
["Pontederiaceae"] = 26,
["Smilacaceae"] = 26,
["Stemonaceae"] = 26,
["Andreaeaceae"] = 27,
["Andreaeobryaceae"] = 27,
["Archidiaceae"] = 27,
["Bruchiaceae"] = 27,
["Bryoxiphiaceae"] = 27,
["Buxbaumiaceae"] = 27,
["Calymperaceae"] = 27,
["Dicranaceae"] = 27,
["Diphysciaceae"] = 27,
["Disceliaceae"] = 27,
["Ditrichaceae"] = 27,
["Encalyptaceae"] = 27,
["Ephemeraceae"] = 27,
["Erpodiaceae"] = 27,
["Fissidentaceae"] = 27,
["Funariaceae"] = 27,
["Gigaspermaceae"] = 27,
["Grimmiaceae"] = 27,
["Leucobryaceae"] = 27,
["Leucophanaceae"] = 27,
["Oedipodiaceae"] = 27,
["Polytrichaceae"] = 27,
["Pottiaceae"] = 27,
["Ptychomitriaceae"] = 27,
["Rhachitheciaceae"] = 27,
["Schistostegaceae"] = 27,
["Scouleriaceae"] = 27,
["Seligeriaceae"] = 27,
["Sphagnaceae"] = 27,
["Splachnobryaceae"] = 27,
["Takakiaceae"] = 27,
["Tetraphidaceae"] = 27,
["Timmiaceae"] = 27,
["Amblystegiaceae"] = 28,
["Anomodontaceae"] = 28,
["Aulacomniaceae"] = 28,
["Bartramiaceae"] = 28,
["Brachytheciaceae"] = 28,
["Bryaceae"] = 28,
["Calliergonaceae"] = 28,
["Catoscopiaceae"] = 28,
["Climaciaceae"] = 28,
["Cryphaeaceae"] = 28,
["Daltoniaceae"] = 28,
["Entodontaceae"] = 28,
["Fabroniaceae"] = 28,
["Fontinalaceae"] = 28,
["Hedwigiaceae"] = 28,
["Helodiaceae"] = 28,
["Hookeriaceae"] = 28,
["Hylocomiaceae"] = 28,
["Hypnaceae"] = 28,
["Hypopterygiaceae"] = 28,
["Lembophyllaceae"] = 28,
["Leptodontaceae"] = 28,
["Leskeaceae"] = 28,
["Leucodontaceae"] = 28,
["Meesiaceae"] = 28,
["Meteoriaceae"] = 28,
["Mielichhoferiaceae"] = 28,
["Mniaceae"] = 28,
["Myriniaceae"] = 28,
["Neckeraceae"] = 28,
["Orthodontiaceae"] = 28,
["Orthotrichaceae"] = 28,
["Pilotrichaceae"] = 28,
["Plagiotheciaceae"] = 28,
["Pleuroziopsaceae"] = 28,
["Pseudoditrichaceae"] = 28,
["Pterigynandraceae"] = 28,
["Pterobryaceae"] = 28,
["Racopilaceae"] = 28,
["Rhizogoniaceae"] = 28,
["Rhytidiaceae"] = 28,
["Roellobryaceae"] = 28,
["Rutenbergiaceae"] = 28,
["Sematophyllaceae"] = 28,
["Splachnaceae"] = 28,
["Stereophyllaceae"] = 28,
["Theliaceae"] = 28,
["Thuidiaceae"] = 28,
},
["Flora of China"] = {
["Aspleniaceae"] = 2,
["Athyriaceae"] = 2,
["Blechnaceae"] = 2,
["Cibotiaceae"] = 2,
["Cyatheaceae"] = 2,
["Cystopteridaceae"] = 2,
["Davalliaceae"] = 2,
["Dennstaedtiaceae"] = 2,
["Diplaziopsidaceae"] = 2,
["Dipteridaceae"] = 2,
["Dryopteridaceae"] = 2,
["Equisetaceae"] = 2,
["Gleicheniaceae"] = 2,
["Hymenophyllaceae"] = 2,
["Hypodematiaceae"] = 2,
["Isoetaceae"] = 2,
["Isoëtaceae"] = 2,
["Lindsaeaceae"] = 2,
["Lomariopsidaceae"] = 2,
["Lycopodiaceae"] = 2,
["Lygodiaceae"] = 2,
["Marattiaceae"] = 2,
["Marsileaceae"] = 2,
["Nephrolepidaceae"] = 2,
["Oleandraceae"] = 2,
["Onocleaceae"] = 2,
["Ophioglossaceae"] = 2,
["Osmundaceae"] = 2,
["Plagiogyriaceae"] = 2,
["Polypodiaceae"] = 2,
["Psilotaceae"] = 2,
["Pteridaceae"] = 2,
["Rhachidosoraceae"] = 2,
["Salviniaceae"] = 2,
["Schizaeaceae"] = 2,
["Selaginellaceae"] = 2,
["Tectariaceae"] = 2,
["Thelypteridaceae"] = 2,
["Woodsiaceae"] = 2,
["Araucariaceae"] = 4,
["Betulaceae"] = 4,
["Casuarinaceae"] = 4,
["Cephalotaxaceae"] = 4,
["Chloranthaceae"] = 4,
["Cupressaceae"] = 4,
["Cycadaceae"] = 4,
["Ephedraceae"] = 4,
["Fagaceae"] = 4,
["Ginkgoaceae"] = 4,
["Gnetaceae"] = 4,
["Juglandaceae"] = 4,
["Myricaceae"] = 4,
["Pinaceae"] = 4,
["Piperaceae"] = 4,
["Podocarpaceae"] = 4,
["Salicaceae"] = 4,
["Saururaceae"] = 4,
["Sciadopityaceae"] = 4,
["Taxaceae"] = 4,
["Taxodiaceae"] = 4,
["Aizoaceae"] = 5,
["Amaranthaceae"] = 5,
["Aristolochiaceae"] = 5,
["Balanophoraceae"] = 5,
["Basellaceae"] = 5,
["Cannabaceae"] = 5,
["Chenopodiaceae"] = 5,
["Loranthaceae"] = 5,
["Molluginaceae"] = 5,
["Moraceae"] = 5,
["Nyctaginaceae"] = 5,
["Olacaceae"] = 5,
["Opiliaceae"] = 5,
["Phytolaccaceae"] = 5,
["Podostemaceae"] = 5,
["Polygonaceae"] = 5,
["Portulacaceae"] = 5,
["Proteaceae"] = 5,
["Rafflesiaceae"] = 5,
["Rhoipteleaceae"] = 5,
["Santalaceae"] = 5,
["Ulmaceae"] = 5,
["Urticaceae"] = 5,
["Viscaceae"] = 5,
["Cabombaceae"] = 6,
["Caryophyllaceae"] = 6,
["Ceratophyllaceae"] = 6,
["Cercidiphyllaceae"] = 6,
["Circaeasteraceae"] = 6,
["Eupteleaceae"] = 6,
["Lardizabalaceae"] = 6,
["Nelumbonaceae"] = 6,
["Nymphaeaceae"] = 6,
["Paeoniaceae"] = 6,
["Ranunculaceae"] = 6,
["Tetracentraceae"] = 6,
["Trochodendraceae"] = 6,
["Calycanthaceae"] = 7,
["Capparaceae"] = 7,
["Cleomaceae"] = 7,
["Hernandiaceae"] = 7,
["Illiciaceae"] = 7,
["Lauraceae"] = 7,
["Magnoliaceae"] = 7,
["Menispermaceae"] = 7,
["Myristicaceae"] = 7,
["Papaveraceae"] = 7,
["Schisandraceae"] = 7,
["Brassicaceae"] = 8,
["Bretschneideraceae"] = 8,
["Crassulaceae"] = 8,
["Droseraceae"] = 8,
["Moringaceae"] = 8,
["Nepenthaceae"] = 8,
["Resedaceae"] = 8,
["Saxifragaceae"] = 8,
["Connaraceae"] = 9,
["Eucommiaceae"] = 9,
["Hamamelidaceae"] = 9,
["Pittosporaceae"] = 9,
["Platanaceae"] = 9,
["Rosaceae"] = 9,
["Fabaceae"] = 10,
["Aceraceae"] = 11,
["Anacardiaceae"] = 11,
["Aquifoliaceae"] = 11,
["Biebersteiniaceae"] = 11,
["Burseraceae"] = 11,
["Buxaceae"] = 11,
["Callitrichaceae"] = 11,
["Cardiopteridaceae"] = 11,
["Celastraceae"] = 11,
["Cneoraceae"] = 11,
["Coriariaceae"] = 11,
["Daphniphyllaceae"] = 11,
["Dichapetalaceae"] = 11,
["Dipentodontaceae"] = 11,
["Erythroxylaceae"] = 11,
["Euphorbiaceae"] = 11,
["Geraniaceae"] = 11,
["Icacinaceae"] = 11,
["Linaceae"] = 11,
["Malpighiaceae"] = 11,
["Meliaceae"] = 11,
["Nitrariaceae"] = 11,
["Oxalidaceae"] = 11,
["Pandaceae"] = 11,
["Peganaceae"] = 11,
["Plagiopteraceae"] = 11,
["Polygalaceae"] = 11,
["Rutaceae"] = 11,
["Salvadoraceae"] = 11,
["Simaroubaceae"] = 11,
["Staphyleaceae"] = 11,
["Surianaceae"] = 11,
["Tapisciaceae"] = 11,
["Tropaeolaceae"] = 11,
["Zygophyllaceae"] = 11,
["Actinidiaceae"] = 12,
["Balsaminaceae"] = 12,
["Bombacaceae"] = 12,
["Dilleniaceae"] = 12,
["Elaeocarpaceae"] = 12,
["Hippocastanaceae"] = 12,
["Leeaceae"] = 12,
["Malvaceae"] = 12,
["Ochnaceae"] = 12,
["Pentaphylacaceae"] = 12,
["Rhamnaceae"] = 12,
["Sabiaceae"] = 12,
["Sapindaceae"] = 12,
["Sladeniaceae"] = 12,
["Sterculiaceae"] = 12,
["Theaceae"] = 12,
["Tiliaceae"] = 12,
["Vitaceae"] = 12,
["Alangiaceae"] = 13,
["Ancistrocladaceae"] = 13,
["Araliaceae"] = 13,
["Begoniaceae"] = 13,
["Bixaceae"] = 13,
["Cactaceae"] = 13,
["Caricaceae"] = 13,
["Cistaceae"] = 13,
["Clusiaceae"] = 13,
["Combretaceae"] = 13,
["Crypteroniaceae"] = 13,
["Cynomoriaceae"] = 13,
["Dipterocarpaceae"] = 13,
["Elaeagnaceae"] = 13,
["Elatinaceae"] = 13,
["Flacourtiaceae"] = 13,
["Frankeniaceae"] = 13,
["Haloragaceae"] = 13,
["Hippuridaceae"] = 13,
["Lecythidaceae"] = 13,
["Lythraceae"] = 13,
["Melastomataceae"] = 13,
["Myrtaceae"] = 13,
["Nyssaceae"] = 13,
["Onagraceae"] = 13,
["Passifloraceae"] = 13,
["Rhizophoraceae"] = 13,
["Stachyuraceae"] = 13,
["Tamaricaceae"] = 13,
["Tetramelaceae"] = 13,
["Thymelaeaceae"] = 13,
["Trapaceae"] = 13,
["Violaceae"] = 13,
["Apiaceae"] = 14,
["Aucubaceae"] = 14,
["Clethraceae"] = 14,
["Cornaceae"] = 14,
["Diapensiaceae"] = 14,
["Ericaceae"] = 14,
["Helwingiaceae"] = 14,
["Mastixiaceae"] = 14,
["Toricelliaceae"] = 14,
["Ebenaceae"] = 15,
["Loganiaceae"] = 15,
["Myrsinaceae"] = 15,
["Oleaceae"] = 15,
["Plumbaginaceae"] = 15,
["Primulaceae"] = 15,
["Sapotaceae"] = 15,
["Styracaceae"] = 15,
["Symplocaceae"] = 15,
["Apocynaceae"] = 16,
["Asclepiadaceae"] = 16,
["Boraginaceae"] = 16,
["Convolvulaceae"] = 16,
["Gentianaceae"] = 16,
["Hydrophyllaceae"] = 16,
["Menyanthaceae"] = 16,
["Polemoniaceae"] = 16,
["Lamiaceae"] = 17,
["Solanaceae"] = 17,
["Verbenaceae"] = 17,
["Bignoniaceae"] = 18,
["Gesneriaceae"] = 18,
["Martyniaceae"] = 18,
["Orobanchaceae"] = 18,
["Pedaliaceae"] = 18,
["Scrophulariaceae"] = 18,
["Acanthaceae"] = 19,
["Adoxaceae"] = 19,
["Annonaceae"] = 19,
["Berberidaceae"] = 19,
["Campanulaceae"] = 19,
["Caprifoliaceae"] = 19,
["Carlemanniaceae"] = 19,
["Cucurbitaceae"] = 19,
["Diervillaceae"] = 19,
["Dipsacaceae"] = 19,
["Goodeniaceae"] = 19,
["Lentibulariaceae"] = 19,
["Linnaeaceae"] = 19,
["Morinaceae"] = 19,
["Myoporaceae"] = 19,
["Pentaphragmataceae"] = 19,
["Phrymaceae"] = 19,
["Plantaginaceae"] = 19,
["Rubiaceae"] = 19,
["Sphenocleaceae"] = 19,
["Stylidiaceae"] = 19,
["Valerianaceae"] = 19,
["Asteraceae"] = "20–21",
["Poaceae"] = 22,
["Acoraceae"] = 23,
["Alismataceae"] = 23,
["Aponogetonaceae"] = 23,
["Araceae"] = 23,
["Arecaceae"] = 23,
["Burmanniaceae"] = 23,
["Butomaceae"] = 23,
["Corsiaceae"] = 23,
["Cymodoceaceae"] = 23,
["Cyperaceae"] = 23,
["Hydrocharitaceae"] = 23,
["Juncaginaceae"] = 23,
["Lemnaceae"] = 23,
["Pandanaceae"] = 23,
["Posidoniaceae"] = 23,
["Potamogetonaceae"] = 23,
["Ruppiaceae"] = 23,
["Scheuchzeriaceae"] = 23,
["Triuridaceae"] = 23,
["Typhaceae"] = 23,
["Zannichelliaceae"] = 23,
["Zosteraceae"] = 23,
["Amaryllidaceae"] = 24,
["Bromeliaceae"] = 24,
["Cannaceae"] = 24,
["Centrolepidaceae"] = 24,
["Commelinaceae"] = 24,
["Costaceae"] = 24,
["Dioscoreaceae"] = 24,
["Eriocaulaceae"] = 24,
["Flagellariaceae"] = 24,
["Iridaceae"] = 24,
["Juncaceae"] = 24,
["Liliaceae"] = 24,
["Lowiaceae"] = 24,
["Marantaceae"] = 24,
["Musaceae"] = 24,
["Philydraceae"] = 24,
["Pontederiaceae"] = 24,
["Restionaceae"] = 24,
["Stemonaceae"] = 24,
["Taccaceae"] = 24,
["Xyridaceae"] = 24,
["Zingiberaceae"] = 24,
["Orchidaceae"] = 25,
},
["Flora of Chile"] = {
["Berberidaceae"] = 1,
["Brassicaceae"] = 1,
["Capparidaceae"] = 1,
["Caryophyllaceae"] = 1,
["Cistaceae"] = 1,
["Clusiaceae"] = 1,
["Coriariaceae"] = 1,
["Droseraceae"] = 1,
["Elaeocarpaceae"] = 1,
["Elatinaceae"] = 1,
["Eucryphiaceae"] = 1,
["Flacourtiaceae"] = 1,
["Frankeniaceae"] = 1,
["Geraniaceae"] = 1,
["Lactoridaceae"] = 1,
["Lardizabalaceae"] = 1,
["Linaceae"] = 1,
["Magnoliaceae"] = 1,
["Malpighiaceae"] = 1,
["Malvaceae"] = 1,
["Oxalidaceae"] = 1,
["Papaveraceae"] = 1,
["Polygalaceae"] = 1,
["Ranunculaceae"] = 1,
["Rutaceae"] = 1,
["Sapindaceae"] = 1,
["Tropaeolaceae"] = 1,
["Violaceae"] = 1,
["Vitaceae"] = 1,
["Zygophyllaceae"] = 1,
["Aizoaceae"] = 2,
["Anacardiaceae"] = 2,
["Caricaceae"] = 2,
["Celastraceae"] = 2,
["Crassulaceae"] = 2,
["Cucurbitaceae"] = 2,
["Fabaceae"] = 2,
["Haloragidaceae"] = 2,
["Icacinaceae"] = 2,
["Lythraceae"] = 2,
["Malesherbiaceae"] = 2,
["Myrtaceae"] = 2,
["Onagraceae"] = 2,
["Passifloraceae"] = 2,
["Portulacaceae"] = 2,
["Rhamnaceae"] = 2,
["Rosaceae"] = 2,
["Apiaceae"] = 3,
["Araliaceae"] = 3,
["Calyceraceae"] = 3,
["Cornaceae"] = 3,
["Cunoniaceae"] = 3,
["Dipsacaceae"] = 3,
["Loasaceae"] = 3,
["Rubiaceae"] = 3,
["Saxifragaceae"] = 3,
["Valerianaceae"] = 3,
["Asteraceae"] = 4,
["Acanthaceae"] = 5,
["Apocynaceae"] = 5,
["Asclepiadaceae"] = 5,
["Bignoniaceae"] = 5,
["Boraginaceae"] = 5,
["Campanulaceae"] = 5,
["Convolvulaceae"] = 5,
["Epacridaceae"] = 5,
["Ericaceae"] = 5,
["Gentianaceae"] = 5,
["Gesneriaceae"] = 5,
["Goodeniaceae"] = 5,
["Hydrophyllaceae"] = 5,
["Lamiaceae"] = 5,
["Lentibulariaceae"] = 5,
["Nolanaceae"] = 5,
["Oleaceae"] = 5,
["Orobanchaceae"] = 5,
["Polemoniaceae"] = 5,
["Primulaceae"] = 5,
["Sapotaceae"] = 5,
["Solanaceae"] = 5,
["Stylidiaceae"] = 5,
["Verbenaceae"] = 5,
["Amaranthaceae"] = 6,
["Chenopodiaceae"] = 6,
["Loganiaceae"] = 6,
["Nyctaginaceae"] = 6,
["Phytolaccaceae"] = 6,
["Plantaginaceae"] = 6,
["Plumbaginaceae"] = 6,
["Scrophulariaceae"] = 6,
},
}
local volumeTable = data.volumeTable
volumeTable[1] = volumeTable["Flora of North America"]
volumeTable[2] = volumeTable["Flora of China"]
volumeTable[60] = volumeTable["Flora of Chile"]
data.volumeDates = {
[1] = { -- http://floranorthamerica.org/volumes
1993, 1993, 1997, 2003, 2005, 2015, 2010, 2009, 2014, 2022, nil, 2016,
nil, 2024, nil, nil, nil, nil, 2006, 2006, 2006, 2000, 2002, 2007, 2003,
2002, 2007, 2014,
default = 1993, -- Citation templates don't allow 1993+ in the date parameter.
},
[2] = { -- http://www.efloras.org/flora_page.aspx?flora_id=2
2015, 2013, nil, 1999, 2005, 2001, 2008, 2001, 2003, 2010, 2008, 2007,
2007, 2005, 1996, 1995, 1994, 1998, 2011, 2011, nil, 2006, 2010, 2000,
2009,
default = 1994, -- Citation templates don't allow 1993+ in the date parameter.
},
}
data.volumeNames = {
-- Flora of North America
-- http://floranorthamerica.org/volumes
[1] = {
"Introduction",
"Pteridophytes and Gymnosperms",
"Magnoliophyta: Magnoliidae and Hamamelidae",
"Magnoliophyta: Caryophyllidae, Part 1",
"Magnoliophyta: Caryophyllidae, Part 2",
"Magnoliophyta: Cucurbitaceae to Droseraceae",
"Magnoliophyta: Salicaceae to Brassicaceae",
"Magnoliophyta: Paeoniaceae to Ericaceae",
"Magnoliophyta: Picramniaceae to Rosaceae",
"Magnoliophyta: Proteaceae to Elaeagnaceae", -- 10
nil,
"Magnoliophyta: Vitaceae to Garryaceae", -- 12
nil,
"Magnoliophyta: Gentianaceae to Hydroleaceae", -- 14
nil, nil, nil, nil,
"Magnoliophyta: Asteridae (in part): Asteraceae, part 1", -- 19
"Magnoliophyta: Asteridae (in part): Asteraceae, part 2",
"Magnoliophyta: Asteridae (in part): Asteraceae, part 3",
"Magnoliophyta: Alismatidae, Arecidae, Commelinidae (in part), and Zingiberidae",
"Magnoliophyta: Commelinidae (in part): Cyperaceae",
"Magnoliophyta: Commelinidae (in part): Poaceae (part 1)",
"Magnoliophyta: Commelinidae (in part): Poaceae (part 2)",
"Magnoliophyta: Liliidae: Liliales and Orchidales",
"Bryophyta: Mosses, part 1",
"Bryophyta: Mosses, part 2",
},
-- Flora of China
-- http://www.efloras.org/flora_page.aspx?flora_id=2
[2] = {
"Introduction",
"Pteridophytes", -- Vol. 2-3 listed under 2
"Pteridophytes",
"Cycadaceae through Fagaceae",
"Ulmaceae through Basellaceae",
"Caryophyllaceae through Lardizabalaceae",
"Menispermaceae through Capparaceae",
"Brassicaceae through Saxifragaceae",
"Pittosporaceae through Connaraceae",
"Fabaceae",
"Oxalidaceae through Aceraceae",
"Hippocastanaceae through Theaceae",
"Clusiaceae through Araliaceae",
"Apiaceae through Ericaceae",
"Myrsinaceae through Loganiaceae",
"Gentianaceae through Boraginaceae",
"Verbenaceae through Solanaceae",
"Scrophulariaceae through Gesneriaceae",
"Cucurbitaceae through Valerianaceae with Annonaceae and Berberidaceae",
"Asteraceae", -- Vol. 20-21 listed under 20
"Asteraceae",
"Poaceae",
"Acoraceae through Cyperaceae",
"Flagellariaceae through Marantaceae",
"Orchidaceae",
},
}
data.resources = {
[1] = "Flora of North America North of Mexico (FNA)",
[2] = "Flora of China",
[3] = "Chinese Plant Names",
[4] = "Moss Flora of China",
[5] = "Flora of Pakistan",
[11] = "Flora of Missouri",
[12] = "Madagascar Catalogue",
[60] = "Flora of Chile",
[100] = "Flora of Taiwan",
[101] = "Flora of Taiwan Checklist",
[110] = "Annotated Checklist of the Flowering Plants of Nepal",
[120] = "Ornamental Plants from Russia and Adjacent States of the Former Soviet Union",
[201] = "Árboles y arbustos de los Andes del Ecuador",
[610] = "A Checklist for the South China Botanical Garden, Guangzhou, Guangdong Province, P. R. China",
[1200] = "Monocot Families (USDA)",
}
-- First key is flora id, second is taxon to which author applies, third is
-- taxon name with array of first name 1, last name 1, first name 2, last name
-- 2, and so on.
data.authors = {
[1] = { -- Flora of North America
genus = {
Antennaria = { "Randall J.", "Bayer" },
Uvularia = { "Frederick H.", "Utech", "Shoichi", "Kawano" },
},
family = {
Grossulariaceae = { "Nancy R.", "Morin" },
},
},
}
return data
9f4y6hwqwq855ohh9kn4q6ymp2g04v1
Template:Yy
10
53017
309284
2026-09-23T21:12:09Z
Isma4l
41797
/* */
309284
wikitext
text/x-wiki
#REDIRECT [[Template:Userbox table userbox]]
bfcjpfj43mnvc4k2j3nygziw2a5vtpr
Template:What links here
10
53018
309285
2026-09-23T21:13:38Z
Isma4l
41797
/* */
309285
wikitext
text/x-wiki
<includeonly>{{Plain link|url={{fullurl:Special:WhatLinksHere|target={{urlencode:{{{1|{{PAGENAME}}}}}}}{{#ifeq:{{{3|{{{ns|{{{namespace|0}}}}}}}}}|all||&namespace={{NAMESPACENUMBER:{{{3|{{{ns|{{{namespace|0}}}}}}}}}:A}}&limit={{{limit|50}}}}}{{{extraparams|}}}}}|name={{#if:{{{2|}}}|{{{2}}}|Pages that link to "{{{1|{{PAGENAME}}}}}"{{#ifeq:{{{3|{{{ns|{{{namespace|}}}}}}}}}|all|<nowiki /> in all namespaces|{{#if:{{{3|{{{ns|{{{namespace|}}}}}}}}}|<nowiki /> in namespace "{{{3|{{{ns|{{{namespace|}}}}}}}}}"}}}}}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
a2sexpi1p6hnd7000z2d4tk5ckz6gz2
309287
309285
2026-09-23T21:16:27Z
Isma4l
41797
/* */
309287
wikitext
text/x-wiki
<includeonly>{{Plain link|url={{fullurl:Special:WhatLinksHere|target={{urlencode:{{{1|{{PAGENAME}}}}}}}{{#ifeq:{{{3|{{{ns|{{{namespace|0}}}}}}}}}|all||&namespace={{NAMESPACENUMBER:{{{3|{{{ns|{{{namespace|0}}}}}}}}}:A}}&limit={{{limit|50}}}}}{{{extraparams|}}}}}|name={{#if:{{{2|}}}|{{{2}}}|Bogagga ku xira "{{{1|{{PAGENAME}}}}}"{{#ifeq:{{{3|{{{ns|{{{namespace|}}}}}}}}}|all|<nowiki /> dhammaan meelaha magacyada|{{#if:{{{3|{{{ns|{{{namespace|}}}}}}}}}|<nowiki /> meesha magaca "{{{3|{{{ns|{{{namespace|}}}}}}}}}"}}}}}}}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
kfles4i99dpschb2kuxziawvqufl2c0
Template:Yytop
10
53019
309286
2026-09-23T21:14:37Z
Isma4l
41797
/* */
309286
wikitext
text/x-wiki
#REDIRECT [[Template:Userbox table top]]
1o5dgk6drwqsz59jm5w1q28zuv6nyo3
Template:Yyend
10
53020
309288
2026-09-23T21:20:10Z
Isma4l
41797
/* */
309288
wikitext
text/x-wiki
#REDIRECT [[Template:Userbox table bottom]]
mmrcr7s03x3znr3fmf2mihj1olmpevz
Template:YYY0s EPs category header
10
53021
309294
2026-09-23T21:37:31Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb (category) ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s EPs" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- #...
309294
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb (category) ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s EPs"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s EPs", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s }}<!--
-->}}<!--
-->{{Category explanation|'''[[Extended play|EP]]s''' la sii daayay tobaneeyaha '''[[{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
{{Category see also if exists|{{Title decade}}s singles|{{Title decade}}s albums}}
[[Category:EPs by decade|{{Title decade}}s]]
[[Category:{{Title decade}}s albums| EPs]]
[[Category:{{Title decade}}s in music|EPs]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb (category) ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta (category namespace)]].<br />[[Template:YYY0s EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s EPs", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
9o3nu61wblf70ql5aqyyu8aa3v0yi3c
309295
309294
2026-09-23T21:38:44Z
Isma4l
41797
309295
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s EPs"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s EPs", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s }}<!--
-->}}<!--
-->{{Category explanation|'''[[Extended play|EP]]s''' la sii daayay tobaneeyaha '''[[{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
{{Category see also if exists|{{Title decade}}s singles|{{Title decade}}s albums}}
[[Category:EPs by decade|{{Title decade}}s]]
[[Category:{{Title decade}}s albums| EPs]]
[[Category:{{Title decade}}s in music|EPs]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb (category) ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta ]].<br />[[Template:YYY0s EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s EPs", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
qal8ccj6zwgykqbur983e1e8sderwdx
Template:YYYY video albums category header
10
53022
309296
2026-09-23T21:40:26Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY video albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d video albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|...
309296
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY video albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d video albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY video albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY video albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|[[video album|Fiidiyowyo albam ah]] oo la sii daayay sanadka [[{{Title year}}]]}}
{{cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:{{DECADE|{{Title year}}}} video albums|{{Title year}}]]
[[Category:Video albums by year|{{Title year}}]]
[[Category:{{Title year}} albums|Video]]
[[Category:{{Title year}} direct-to-video films|Albums]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb (category) ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY video albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY video albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[video album|fiidiyowyada albamada ah]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1997 video albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY video albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
{{Creative works chronology category header templates}}
}}
[[Category:Albums chronology category header templates|Video]]
</noinclude>
jxk887febbq3k9z3bs520rjmhiud6oc
309297
309296
2026-09-23T21:40:54Z
Isma4l
41797
309297
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY video albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d video albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY video albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY video albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|[[video album|Fiidiyowyo albam ah]] oo la sii daayay sanadka [[{{Title year}}]]}}
{{cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:{{DECADE|{{Title year}}}} video albums|{{Title year}}]]
[[Category:Video albums by year|{{Title year}}]]
[[Category:{{Title year}} albums|Video]]
[[Category:{{Title year}} direct-to-video films|Albums]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb (category) ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY video albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY video albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[video album|fiidiyowyada albamada ah]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1997 video albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY video albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Video]]
</noinclude>
ov8ez3dddk33k8eft600yv3y2chq1qx
Template:YYY0s soundtrack albums category header
10
53023
309298
2026-09-23T21:42:00Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s soundtrack albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s soundtrack albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!--...
309298
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s soundtrack albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s soundtrack albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s soundtrack albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s}}<!--
-->}}<!--
-->{{Category explanation|'''[[soundtrack album|Albamada dhawaaqa filimada]]''' ee la sii daayay tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
[[Category:Soundtrack albums by decade|{{Title decade}}s]]
[[Category:{{Title decade}}s albums|Soundtracks]]
[[Category:{{Century name from title decade|dash}} soundtrack albums|{{Title decade}}]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s soundtrack albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[soundtrack album|albamada dhawaaqa filimada]] ee la sii daayay tobaneeye gaar ah
tusaale. [[:Category:1990s soundtrack albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s soundtrack albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
{{Creative works chronology category header templates}}
}}
[[Category:Albums chronology category header templates|Soundtrack albums]]
</noinclude>
h2dcmuk512jml1mjy67tbj8seb8ucvb
309299
309298
2026-09-23T21:42:15Z
Isma4l
41797
309299
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s soundtrack albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s soundtrack albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s soundtrack albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s}}<!--
-->}}<!--
-->{{Category explanation|'''[[soundtrack album|Albamada dhawaaqa filimada]]''' ee la sii daayay tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
[[Category:Soundtrack albums by decade|{{Title decade}}s]]
[[Category:{{Title decade}}s albums|Soundtracks]]
[[Category:{{Century name from title decade|dash}} soundtrack albums|{{Title decade}}]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s soundtrack albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[soundtrack album|albamada dhawaaqa filimada]] ee la sii daayay tobaneeye gaar ah
tusaale. [[:Category:1990s soundtrack albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s soundtrack albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Soundtrack albums]]
</noinclude>
ed71zzo78hrt8k93v40ihi14f1wr20k
Template:YYYY greatest hits albums category header
10
53024
309300
2026-09-23T21:43:32Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY greatest hits albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d greatest hits albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->...
309300
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY greatest hits albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d greatest hits albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY greatest hits albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY greatest hits albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[greatest hits album|Albamada heesaha ugu caansan]]''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:{{DECADE|{{Title year}}}} greatest hits albums|{{Title year}}]]
[[Category:Greatest hits albums by year|{{Title year}}]]
[[Category:{{Title year}} compilation albums|Greatest hits]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY greatest hits albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY greatest hits albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[greatest hits album|albamada heesaha ugu caansan]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1981 greatest hits albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY greatest hits albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
{{Creative works chronology category header templates}}
}}
[[Category:Albums chronology category header templates|Greatest hits]]
</noinclude>
7c4qlc57ktnkgt9r37g52y7bksahdw6
309301
309300
2026-09-23T21:43:45Z
Isma4l
41797
309301
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY greatest hits albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d greatest hits albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY greatest hits albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY greatest hits albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[greatest hits album|Albamada heesaha ugu caansan]]''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:{{DECADE|{{Title year}}}} greatest hits albums|{{Title year}}]]
[[Category:Greatest hits albums by year|{{Title year}}]]
[[Category:{{Title year}} compilation albums|Greatest hits]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY greatest hits albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY greatest hits albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[greatest hits album|albamada heesaha ugu caansan]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1981 greatest hits albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY greatest hits albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Greatest hits]]
</noinclude>
p2hxvx9px427t0pi7nt1cmflrzo77vb
Template:YYYY remix albums category header
10
53025
309302
2026-09-23T21:44:46Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY remix albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d remix albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- # Kuma hab...
309302
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY remix albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d remix albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY remix albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY remix albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[remix|Dib-u-habeyn]] [[album|albamada]]''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:{{DECADE|{{Title year}}}} remix albums|{{Title year}}]]
[[Category:Remix albums by year|{{Title year}}]]
[[Category:{{Title year}} albums|Remix]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY remix albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY remix albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[remix|dib-u-habeynta]] [[album|albamada]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1997 remix albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY remix albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Remix]]
</noinclude>
dcolb0553fbq58wpkp1dadmzpclnmqp
Template:Year musical compositions category header
10
53026
309303
2026-09-23T21:45:28Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Muusig<!-- -->|{{FindYDCportal|{{title year}}}}<!-- -->}}<!-- -->{{Category explanation|'''[[musical composition|Halabuurada muusigga]]''' ee la daabacay ama markii ugu horreysay la soo bandhigay sanadka '''[[{{Title year}}]]'''}} {{Category series navigation|skip-gaps=yes}} {{Cat more if exists|{{Title year}} in music}} [[Category:{{Title year}} works|Musical compositions]] [[Category:{{Title year}} in music|Compositions]] Categor...
309303
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[musical composition|Halabuurada muusigga]]''' ee la daabacay ama markii ugu horreysay la soo bandhigay sanadka '''[[{{Title year}}]]'''}}
{{Category series navigation|skip-gaps=yes}}
{{Cat more if exists|{{Title year}} in music}}
[[Category:{{Title year}} works|Musical compositions]]
[[Category:{{Title year}} in music|Compositions]]
[[Category:{{DECADE|{{Title year}}}} compositions]]
[[Category:Compositions by year|{{Title year}}s]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude>
{{Documentation}}
</noinclude>
8xc01t8c0aqahpt2t4poopk0414z38y
Template:Non-fiction book year
10
53027
309304
2026-09-23T21:46:28Z
Isma4l
41797
Bog cusub: <includeonly>{{Category explanation|'''[[non-fiction book|Buugaagta aan khayaaliga ahayn]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}} {{Works year header|WorkType=Non-fiction books|ParentType=books|portal=Books}} {{Category see also if exists|{{Title year}} in literature}}<!-- --></includeonly><!-- # Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale -->{{Auto...
309304
wikitext
text/x-wiki
<includeonly>{{Category explanation|'''[[non-fiction book|Buugaagta aan khayaaliga ahayn]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}}
{{Works year header|WorkType=Non-fiction books|ParentType=books|portal=Books}}
{{Category see also if exists|{{Title year}} in literature}}<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation}}
</noinclude>
8ub84xd68djydzeof6hhtxupzkwgryk
Template:Children's book year
10
53028
309305
2026-09-23T21:47:02Z
Isma4l
41797
Bog cusub: <includeonly>{{Category explanation|'''[[Children's literature|buugaagta carruurta]]''' iyo '''[[Young adult fiction|dhalinyarada]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}} {{Works year header|WorkType=Children's books|ParentType=books|portal=Children's literature}} {{Category see also if exists|{{Title year}} in literature}}<!-- --></includeonly><!-- # Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn i...
309305
wikitext
text/x-wiki
<includeonly>{{Category explanation|'''[[Children's literature|buugaagta carruurta]]''' iyo '''[[Young adult fiction|dhalinyarada]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}}
{{Works year header|WorkType=Children's books|ParentType=books|portal=Children's literature}}
{{Category see also if exists|{{Title year}} in literature}}<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation}}
</noinclude>
i341ghkbw9dsq1qt41almdx8fagw37y
Template:Poetry book year
10
53029
309306
2026-09-23T21:47:31Z
Isma4l
41797
Bog cusub: <includeonly>{{Category explanation|'''[[poetry|buugaagta gabayada]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}} {{Works year header|WorkType=Poetry books|ParentType=books|portal=Books|portal2=Poetry}} {{Category see also if exists|{{Title year}} in literature}} {{#ifexist:Category:{{Title year}} in poetry| [[Category:{{Title year}} in poetry| Poetry]] }}<!-- --></includeonly><!-- # Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar...
309306
wikitext
text/x-wiki
<includeonly>{{Category explanation|'''[[poetry|buugaagta gabayada]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}}
{{Works year header|WorkType=Poetry books|ParentType=books|portal=Books|portal2=Poetry}}
{{Category see also if exists|{{Title year}} in literature}}
{{#ifexist:Category:{{Title year}} in poetry|
[[Category:{{Title year}} in poetry| Poetry]]
}}<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation}}
</noinclude>
q638wu60qpmun1ze0qnedqkwvjeuisk
Template:Short story collection year
10
53030
309307
2026-09-23T21:48:11Z
Isma4l
41797
Bog cusub: <includeonly>{{Category explanation|'''[[short story collection|ururinta sheekooyinka gaagaaban]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}} {{Hatnote|Kuwani waa ururinta sheekooyin gaagaaban oo uu qoray hal qoraa.}} {{Works year header|WorkType=Short story collections|ParentType=books|portal=Books}} {{Category see also if exists|{{Title year}} in literature}} {{Category see also if exists 2|{{Title year}} short story anthologies|{{Title year}} anthologies}...
309307
wikitext
text/x-wiki
<includeonly>{{Category explanation|'''[[short story collection|ururinta sheekooyinka gaagaaban]]''' ee la qoray ama la daabacay sanadka '''[[{{Title year}}]]'''}}
{{Hatnote|Kuwani waa ururinta sheekooyin gaagaaban oo uu qoray hal qoraa.}}
{{Works year header|WorkType=Short story collections|ParentType=books|portal=Books}}
{{Category see also if exists|{{Title year}} in literature}}
{{Category see also if exists 2|{{Title year}} short story anthologies|{{Title year}} anthologies}}
{{#ifexist:Category:{{Title year}} fiction books|
[[Category:{{Title year}} fiction books| Short story collections]]
}}<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation}}
</noinclude>
jqrl7rozztt7201h9gvmeai7v4n987r
Template:Film decade
10
53031
309308
2026-09-23T21:48:48Z
Isma4l
41797
Bog cusub: <includeonly>{{Category explanation|[[film|filimada]] la sii daayay tobaneeyaha '''[[{{{1}}}{{#ifeq:{{{2}}} | 0 | {{{2}}}0–{{{1}}}{{{2}}}9{{!}}{{{1}}}}}{{{2}}}0s]]'''}} {{WorksDecadeHeader|DecimalCentury={{{1}}}|Decade={{{2}}}|OrdinalCentury={{{3}}}|WorkType=films}} [[Category:{{{1}}}{{{2}}}0s in film]]<!-- --></includeonly><!-- # Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale...
309308
wikitext
text/x-wiki
<includeonly>{{Category explanation|[[film|filimada]] la sii daayay tobaneeyaha '''[[{{{1}}}{{#ifeq:{{{2}}} | 0 | {{{2}}}0–{{{1}}}{{{2}}}9{{!}}{{{1}}}}}{{{2}}}0s]]'''}}
{{WorksDecadeHeader|DecimalCentury={{{1}}}|Decade={{{2}}}|OrdinalCentury={{{3}}}|WorkType=films}}
[[Category:{{{1}}}{{{2}}}0s in film]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}
</noinclude>
h9f1g6rymm6jopi9f6skv8h841to2v1
Template:YYYY language films category header
10
53032
309309
2026-09-23T21:49:17Z
Isma4l
41797
Bog cusub: <includeonly><!-- # The first step is to check whether this is a category page -->{{Category other<!-- -->|<!-- ############### It is a category ############################### # So check that it matches the required format: "YYYY Foo-language films" -->{{#ifeq: {{#invoke:String|match | s = {{PAGENAME}} | pattern = ^%d%d%d%d .+-language films$ | start = 1 | match = 1...
309309
wikitext
text/x-wiki
<includeonly><!--
# The first step is to check whether this is a category page
-->{{Category other<!--
-->|<!-- ############### It is a category ###############################
# So check that it matches the required format: "YYYY Foo-language films"
-->{{#ifeq: {{#invoke:String|match
| s = {{PAGENAME}}
| pattern = ^%d%d%d%d .+-language films$
| start = 1
| match = 1
| plain = false
| nomatch = %%nomatch%%
}}|%%nomatch%%<!--
-->|<!-- # Doesn't match
-->{{Error|[[Template:YYYY language films category header]] is for use only on category pages whose title is of the form "YYYY Foo-language films", where YYYY is a 4-digit year and "Foo" is a language (e.g. "Russian" or "Portuguese")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### We have a valid category ###############################
-->{{YYYY language films category header/core<!--
-->| year = {{Title year}}<!--
-->| language = {{#invoke:String|replace
| source = {{PAGENAME}}
| pattern = ^%d%d%d%d (.+)-language films$
| replace = %1
| count = 1
| plain = false
}}<!--
-->}}<!--
-->}}<!--
-->|<!-- ############### Not a category ###############################
-->{{Error|[[Template:YYYY language films category header]] is for use only on category pages whose title is of the form "YYYY Foo-language films", where YYYY is a 4-digit year and "Foo" is a language (e.g. "Russian" or "Portuguese")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
# Note {{Automatic category TOC}} needs to be available whether or not this template page has been transcluded
-->{{Automatic category TOC}}<noinclude>
{{Documentation}}<!--
Add categories and interwikis to the /doc subpage, please, not here!
--></noinclude>
jmc70t8helmmgjh6i50sbwww7ysa8oq
Template:Nationality films by decade category header
10
53033
309310
2026-09-23T21:49:57Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "Nationality films by decade" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%a.+ films by decade$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!...
309310
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "Nationality films by decade"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%a.+ films by decade$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:Nationality films by decade category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "Fooish films by decade", halkaas oo "Fooish" ay tahay dhalasho ama jinsiyad (tusaale. "South Korean" ama "Portuguese")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
-->{{Nationality films by decade category header/core<!--
-->|country={{GetCountryNameFromAdjective|{{#invoke:String|replace|source={{PAGENAME}}|pattern=^(%a.+) films by decade$|replace=%1|count=1|plain= false}}}}<!--
-->|nationality={{#invoke:String|replace|source={{PAGENAME}}|pattern=^(%a.+) films by decade$|replace=%1|count=1|plain=false}}<!--
-->}}<!--
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani ma aha qayb!<br />[[Template:Nationality films by decade category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "Fooish films by decade", halkaas oo "Fooish" ay tahay dhalasho ama jinsiyad (tusaale. "South Korean" ama "Portuguese")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
hicu0rwk6ovlkjllg5nx79m9qjnjpwq
Template:Decade in theatre category header
10
53034
309311
2026-09-23T21:50:56Z
Isma4l
41797
Bog cusub: <includeonly>{{Portal|Tiyaataro|{{FindYDCportal|{{Title decade}}s }}}} {{Category explanation|tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]''' ee dhinaca '''[[tiyaataro|tiyaatarada]]''', taas oo ah sanadaha [[{{Title decade}}]] ilaa [[{{#expr:{{Title decade}} + 9}}]]}} {{Category series navigation}} [[Category:{{Title decade}}s in the arts|Theatre]] [[Category:Theatre by decade|{{Title decade}}s]] Category:{{Century name from title decade|dash}} theatre|{{Title decade}}s...
309311
wikitext
text/x-wiki
<includeonly>{{Portal|Tiyaataro|{{FindYDCportal|{{Title decade}}s }}}}
{{Category explanation|tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]''' ee dhinaca '''[[tiyaataro|tiyaatarada]]''', taas oo ah sanadaha [[{{Title decade}}]] ilaa [[{{#expr:{{Title decade}} + 9}}]]}}
{{Category series navigation}}
[[Category:{{Title decade}}s in the arts|Theatre]]
[[Category:Theatre by decade|{{Title decade}}s]]
[[Category:{{Century name from title decade|dash}} theatre|{{Title decade}}s]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}
</noinclude>
sqek3gx44bww6z4xcihxhomp5u4txg8
Template:YYY0s record charts category header
10
53035
309312
2026-09-23T21:51:39Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s record charts" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s record charts$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -...
309312
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s record charts"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s record charts$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s record charts category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s record charts", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1960s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s }}<!--
-->}}<!--
-->{{Category explanation|'''[[record chart|shaxda jadwalka muusigga]]''' tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
''Waxyaabaha ku jira qaybtan waxaa loo kala saaray xarfaha hidaha dalkii uu ka soo jeeday shaxdu, kadibna iyadoo la raacayo nooca ama magaca shaxda.''
[[Category:Record charts by decade|{{Title decade}}]]
[[Category:{{Title decade}}s in music|Record charts]]
{{#ifexist: Category:{{Title decade}}s-related lists<!--
-->|[[Category:{{Title decade}}s-related lists{{!}}Record charts]]<!--
-->}}<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s record charts category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s record charts", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1960s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[record chart|shaxda jadwalka muusigga]] ee la sii daayay tobaneeye gaar ah
tusaale. [[:Category:1960s record charts]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s record charts category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
{{Creative works chronology category header templates}}
}}
[[Category:Music chronology category header templates|Record charts]]
[[Category:Record chart templates]]
</noinclude>
2dqx0ozwq4nj4zrh3gjcr4nq2ai34qk
309314
309312
2026-09-23T21:52:38Z
Isma4l
41797
309314
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s record charts"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s record charts$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s record charts category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s record charts", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1960s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s }}<!--
-->}}<!--
-->{{Category explanation|'''[[record chart|shaxda jadwalka muusigga]]''' tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
''Waxyaabaha ku jira qaybtan waxaa loo kala saaray xarfaha hidaha dalkii uu ka soo jeeday shaxdu, kadibna iyadoo la raacayo nooca ama magaca shaxda.''
[[Category:Record charts by decade|{{Title decade}}]]
[[Category:{{Title decade}}s in music|Record charts]]
{{#ifexist: Category:{{Title decade}}s-related lists<!--
-->|[[Category:{{Title decade}}s-related lists{{!}}Record charts]]<!--
-->}}<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s record charts category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s record charts", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1960s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[record chart|shaxda jadwalka muusigga]] ee la sii daayay tobaneeye gaar ah
tusaale. [[:Category:1960s record charts]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s record charts category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Music chronology category header templates|Record charts]]
[[Category:Record chart templates]]
</noinclude>
j2jk74w8m58qq4svgg9tz2f1kgrz9iq
309315
309314
2026-09-23T21:52:58Z
Isma4l
41797
309315
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s record charts"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s record charts$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s record charts category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s record charts", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1960s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s }}<!--
-->}}<!--
-->{{Category explanation|'''[[record chart|shaxda jadwalka muusigga]]''' tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
''Waxyaabaha ku jira qaybtan waxaa loo kala saaray xarfaha hidaha dalkii uu ka soo jeeday shaxdu, kadibna iyadoo la raacayo nooca ama magaca shaxda.''
[[Category:Record charts by decade|{{Title decade}}]]
[[Category:{{Title decade}}s in music|Record charts]]
{{#ifexist: Category:{{Title decade}}s-related lists<!--
-->|[[Category:{{Title decade}}s-related lists{{!}}Record charts]]<!--
-->}}<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s record charts category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s record charts", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1960s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[record chart|shaxda jadwalka muusigga]] ee la sii daayay tobaneeye gaar ah
tusaale. [[:Category:1960s record charts]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s record charts category header}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Music chronology category header templates|Record charts]]
[[Category:Record chart templates]]
</noinclude>
10o871y8dyxhmo0b7dj7hjtlsrkdnvg
Template:YYYY singles category header
10
53037
309316
2026-09-23T21:54:00Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Muusig<!-- -->|{{FindYDCportal|{{title year}}}}<!-- -->}}<!-- -->{{Category explanation|[[song|heesaha]] loo soo saaray sida [[single (music)|lambar keliya]] sanadka '''[[{{Title year}}]]'''}} {{Cat more if exists|{{Title year}} in music}} {{Category series navigation|skip-gaps=yes}} {{Category see also if exists|{{Title year}} in music|{{Title year}} songs|{{Title year}} albums|{{Title year}} EPs}} Category:Singles by year|{{Title...
309316
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{title year}}}}<!--
-->}}<!--
-->{{Category explanation|[[song|heesaha]] loo soo saaray sida [[single (music)|lambar keliya]] sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
{{Category see also if exists|{{Title year}} in music|{{Title year}} songs|{{Title year}} albums|{{Title year}} EPs}}
[[Category:Singles by year|{{Title year}}]]
[[Category:{{DECADE|{{Title year}}}} singles]]
[[Category:{{Title year}} in music|Singles]]
[[Category:{{Title year}} works|Singles]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
sgq4ll70v0qodkbbkeeroleagbxq8e9
Template:YYY0s singles category header
10
53038
309317
2026-09-23T21:54:29Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Muusig<!-- -->|{{FindYDCportal|{{title decade}}s}}<!-- -->}}<!-- -->{{Category explanation|[[song|heesaha]] loo soo saaray sida '''[[single (music)|lambar keliya]]''' tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]''', taas oo ah sanadaha [[{{Title decade}}]] ilaa [[{{#expr:{{Title decade}} + 9}}]]}} {{Category more if exists|{{Title decade}}s in music}} {{Category series navigation}} {{Category see also if exists|{{Title decade}}...
309317
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{title decade}}s}}<!--
-->}}<!--
-->{{Category explanation|[[song|heesaha]] loo soo saaray sida '''[[single (music)|lambar keliya]]''' tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]''', taas oo ah sanadaha [[{{Title decade}}]] ilaa [[{{#expr:{{Title decade}} + 9}}]]}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
{{Category see also if exists|{{Title decade}}s songs|{{Title decade}}s albums|{{Title decade}}s EPs}}
[[Category:Singles by decade|{{Title decade}}s]]
[[Category:{{Title decade}}s in music|Singles]]
[[Category:{{Title decade}}s works|Singles]]
[[Category:{{Century name from title decade|dash}} singles|{{Title decade}}]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
5k3oty6ziulf2lmb16t0fxhlj255owf
Template:YYY0s debut EPs category header
10
53039
309318
2026-09-23T21:55:21Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s debut EPs" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s debut EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- # Kuma habboona...
309318
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s debut EPs"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s debut EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s debut EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s debut EPs", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s}}<!--
-->}}<!--
-->{{Category explanation|'''[[Extended play|EP]]-yada ugu horreeya (debut EPs)''' ee la sii daayay tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title year}} in music}}
{{Category series navigation}}
{{Category see also if exists|{{Title decade}}s debut singles|{{Title decade}}s debut albums}}
<!-- [[Category:{{Century name from title decade|dash}} debut EPs|{{Title year}}]] -->
[[Category:Debut EPs by decade|{{Title decade}}s]]
[[Category:{{Title decade}}s EPs|Debut]]
[[Category:{{Title decade}}s debut albums| EPs]]
[[Category:{{Title decade}}s debut works|EPs]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s debut EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s debut EPs", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
t7jk3xj6w2uqp14o6k91p04mx2gn4om
Template:YYYY debut EPs category header
10
53040
309319
2026-09-23T21:56:08Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY debut EPs" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d debut EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- # Kuma habboona...
309319
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY debut EPs"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d debut EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY debut EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY debut EPs", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[Extended play|EP]]-yada ugu horreeya (debut EPs)''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
{{Category see also if exists|{{Title year}} debut singles|{{Title year}} debut albums}}
[[Category:{{DECADE|{{Title year}}}} debut EPs|{{Title year}}]]
[[Category:Debut EPs by year|{{Title year}}]]
[[Category:{{Title year}} EPs|Debut]]
[[Category:{{Title year}} debut albums| EPs]]
<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY debut EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY debut EPs", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
ruq73urs04mwtegd3r9q3fmsamgruca
Template:YYY0s debut albums category header
10
53041
309320
2026-09-23T21:57:12Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s debut albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s debut albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- # Kuma ha...
309320
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s debut albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s debut albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s debut albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s debut albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s}}<!--
-->}}<!--
-->{{Category explanation|'''[[album|albamada]] ugu horreeya (debut albums)''' ee la sii daayay tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title year}} in music}}
{{Category series navigation}}
{{Category see also if exists|{{Title decade}}s debut singles|{{Title decade}}s debut EPs}}
<!-- [[Category:{{Century name from title decade|dash}} debut albums|{{Title year}}]] -->
[[Category:Debut albums by decade|{{Title decade}}s]]
[[Category:{{Title decade}}s albums|Debut]]
[[Category:{{Title decade}}s debut works|Albums]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s debut albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s debut albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
9wuilcfnpus90iv5na2bfn0gb6jsp8x
Template:Album year
10
53042
309321
2026-09-23T21:57:46Z
Isma4l
41797
Bog cusub: <includeonly>{{Category explanation|'''[[album|albamada]]''' asal ahaan [[music release|la sii daayay]] sanadka '''[[{{Title year}}]]'''}} {{See also|'''[[{{Title year}} in music]]'''}} {{WorksYearHeader|WorkType=Albums|ParentType=works|portal=Music}} [[Category:{{Title year}} in music|Albums]]<!-- --></includeonly><!-- # Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale -->{{Autom...
309321
wikitext
text/x-wiki
<includeonly>{{Category explanation|'''[[album|albamada]]''' asal ahaan [[music release|la sii daayay]] sanadka '''[[{{Title year}}]]'''}}
{{See also|'''[[{{Title year}} in music]]'''}}
{{WorksYearHeader|WorkType=Albums|ParentType=works|portal=Music}}
[[Category:{{Title year}} in music|Albums]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude>{{Documentation}}</noinclude>
qui15mi0cvvqelet7vx5ndqxsdtps1c
Template:YYYY soundtrack albums category header
10
53043
309322
2026-09-23T21:58:33Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY soundtrack albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d soundtrack albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--...
309322
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY soundtrack albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d soundtrack albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY soundtrack albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}} }}<!--
-->}}<!--
-->{{Category explanation|'''[[soundtrack album|Albamada dhawaaqa filimada]]''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:Soundtrack albums by year|{{Title year}}]]
[[Category:{{Title year}} albums|Soundtracks]]
[[Category:{{DECADE|{{Title year}}}} soundtrack albums|{{Title year}}]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY soundtrack albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[soundtrack album|albamada dhawaaqa filimada]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1987 soundtrack albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY soundtrack albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
{{Creative works chronology category header templates}}
}}
[[Category:Albums chronology category header templates|Soundtrack albums]]
</noinclude>
6x5smz0ipilptltmh5xjxc6lqndmx2t
309323
309322
2026-09-23T21:58:51Z
Isma4l
41797
309323
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY soundtrack albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d soundtrack albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY soundtrack albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}} }}<!--
-->}}<!--
-->{{Category explanation|'''[[soundtrack album|Albamada dhawaaqa filimada]]''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:Soundtrack albums by year|{{Title year}}]]
[[Category:{{Title year}} albums|Soundtracks]]
[[Category:{{DECADE|{{Title year}}}} soundtrack albums|{{Title year}}]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY soundtrack albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY soundtrack albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[soundtrack album|albamada dhawaaqa filimada]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1987 soundtrack albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY soundtrack albums category header}}</syntaxhighlight>
Ma jiro cabir (parameter) loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Soundtrack albums]]
</noinclude>
h9yrk8z3e3zj4go1xvd480rpcsq5pl9
Template:YYY0s short films category header
10
53044
309324
2026-09-23T21:59:43Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s short films" -->{{#ifeq: {{#invoke:String|match|{{PAGENAME}}|^%d%d%d0s short films$|1|1|false|%%NOMATCH%%}}<!-- -->|%%NOMATCH%%<!-- -->|<!-- # Kuma...
309324
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s short films"
-->{{#ifeq: {{#invoke:String|match|{{PAGENAME}}|^%d%d%d0s short films$|1|1|false|%%NOMATCH%%}}<!--
-->|%%NOMATCH%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s short films category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka {{nowrap|"YYY0s short films"}}, halkaas oo "YYY0s" ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1930s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!--
# outdent
#####################################################
# BILAABO qaybta run ahaan dhibta qaybta
-->{{Portal|Filim|{{FindYDCportal | {{Title decade}}s }}}}
{{Non-diffusing subcategory|{{Title decade}}s films}}
{{Category explanation|'''[[short film|filimada gaagaaban]]''' ee la sii daayay tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category series navigation}}
[[Category:{{Title decade}}s films|Short films]]
[[Category:Short films by decade]]
[[Category:{{Century name from title decade|dash}} short films|{{Title decade}}]]<!--
# DHAMMAADKA qaybta run ahaan dhibta qaybta
###################################################
# un-outdent
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s short films category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka {{nowrap|"YYY0s short films"}}, halkaas oo "YYY0s" ay tahay tobaneeye ka kooban 4 lambar (tusaale. "1930s")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=Waxaa loo isticmaalaa in lagu abuuro qayb ah qaabka "YYY0s short films", halkaas oo "YYY0s" ay tahay tobaneeye ka kooban 4 lambar
tusaale. [[:Category:1930s short films]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s short films category header}}</syntaxhighlight>
== Sidoo kale eeg ==
[[Category:Film chronology category header templates]]
[[Category:Works-by-decade templates]]
}}<!--
--></noinclude>
1kjjpdg3jsm4f8jjjz3qr5rs7mbtvzx
Template:YYYY directorial debut films category header
10
53045
309325
2026-09-23T22:00:35Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Filim<!-- -->|{{FindYDCportal|{{title year}}}}<!-- -->}}<!-- -->{{Category explanation|filimada la sii daayay sanadka '''[[{{Title year}}]]''' kuwaas oo ahayd '''[[film|filimkii]]''' ugu horreeyay ee uu agaasimay [[film director|agaasime filim]]. Ma anaga jiraan filimada aan la sii deyn}} {{Category series navigation|skip-gaps=yes}} {{Cat more if exists|{{Title year}} in film}} Category:Directorial debut films by year|{{Title year}...
309325
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Filim<!--
-->|{{FindYDCportal|{{title year}}}}<!--
-->}}<!--
-->{{Category explanation|filimada la sii daayay sanadka '''[[{{Title year}}]]''' kuwaas oo ahayd '''[[film|filimkii]]''' ugu horreeyay ee uu agaasimay [[film director|agaasime filim]]. Ma anaga jiraan filimada aan la sii deyn}}
{{Category series navigation|skip-gaps=yes}}
{{Cat more if exists|{{Title year}} in film}}
[[Category:Directorial debut films by year|{{Title year}}]]
[[Category:{{DECADE|{{Title year}}}} directorial debut films|{{Title year}}]]
[[Category:{{Title year}} films| Debut]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
h095ioahcd33p10v1snwx1cut7n5jsu
Template:YYYY EPs category header
10
53046
309326
2026-09-23T22:01:14Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page) -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY EPs" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- # Kuma habboo...
309326
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed (category page)
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY EPs"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d EPs$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY EPs", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[Extended play|EP]]-yada''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
{{Category see also if exists|{{Title year}} singles|{{Title year}} albums}}
[[Category:{{DECADE|{{Title year}}}} EPs|{{Title year}}]]
[[Category:EPs by year|{{Title year}}]]
[[Category:{{Title year}} albums|EPs]]
[[Category:{{Title year}} in music|EPs]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY EPs category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY EPs", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
0c24ps0jzkln2tlvp7g4on54c8as838
Template:YYY0s classical albums category header
10
53047
309327
2026-09-23T22:02:01Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s classical albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s classical albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- #...
309327
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s classical albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s classical albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s classical albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s classical albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s }}<!--
-->}}<!--
-->{{Category explanation|'''[[classical music|albamada muusigga qadiimiga ah]]''' ee la sii daayay tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
[[Category:Classical albums by decade|{{Title decade}}]]
[[Category:{{Title decade}}s albums|Classical]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s classical albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s classical albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[classical music|albamada muusigga qadiimiga ah]] ee la sii daayay tobaneeye gaar ah
tusaale. [[:Category:1950s classical albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s classical albums category header}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay
== Sidoo kale eeg ==
{{Creative works chronology category header templates}}
}}
[[Category:Albums chronology category header templates|Classical]]
[[Category:Classical music templates]]
</noinclude>
oremr2ag1s4w8s04y8c0tzo2mg6e1dp
309328
309327
2026-09-23T22:02:16Z
Isma4l
41797
309328
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYY0s classical albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d0s classical albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYY0s classical albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s classical albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title decade}}s }}<!--
-->}}<!--
-->{{Category explanation|'''[[classical music|albamada muusigga qadiimiga ah]]''' ee la sii daayay tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
[[Category:Classical albums by decade|{{Title decade}}]]
[[Category:{{Title decade}}s albums|Classical]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYY0s classical albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYY0s classical albums", halkaas oo YYY0s ay tahay tobaneeye ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[classical music|albamada muusigga qadiimiga ah]] ee la sii daayay tobaneeye gaar ah
tusaale. [[:Category:1950s classical albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYY0s classical albums category header}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Classical]]
[[Category:Classical music templates]]
</noinclude>
46oe8rzmsqvpzc8hk8ehf1dux5i2910
Template:YYYY nationality novels category header
10
53048
309329
2026-09-23T22:03:10Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY Fooish novels" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d .+ novels$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- # Kuma habbo...
309329
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY Fooish novels"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d .+ novels$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|[[Template:YYYY nationality novels category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY Fooish novels", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar, "Fooish"-na ay tahay jinsiyad ama dhalasho (tusaale. "Russian" ama "Egyptian")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
-->{{YYYY nationality novels category header/core<!--
-->| year = {{Title year}} <!--
-->| country = {{GetCountryNameFromAdjective|{{#invoke:String|replace|source={{PAGENAME}}|pattern=%d%d%d%d (.+) novels$|replace=%1|count=1|plain= false}}}}<!--
-->| nationality = {{#invoke:String|replace|source={{PAGENAME}}|pattern=%d%d%d%d (.+) novels$|replace=%1|count=1|plain= false}}<!--
-->}}<!--
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|[[Template:YYYY nationality novels category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY Fooish novels", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar, "Fooish"-na ay tahay jinsiyad ama dhalasho (tusaale. "Russian" ama "Egyptian")}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation}}<!--
Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, fadlan, ee halkan ha ku darin!
--></noinclude>
f6b0y9b302w9ounkscc4yanphsaxlki
Template:YYY0s debut works category header
10
53049
309330
2026-09-23T22:03:59Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Farshaxan<!-- -->|{{FindYDCportal|{{title decade}}s}}<!-- -->}}<!-- -->{{Category explanation|'''[[creative work|shaqooyinka hal-abuurka]]''' ee loo soo saaray sida fanaan ama koox [[debut|guushoodii ugu horreysay (debut)]] tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}} {{Category series navigation}} [[Category:Debut works by decade|{{Title decade}}s]] Category:{{Century name from title decade|dash}} debut works|{{Title d...
309330
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Farshaxan<!--
-->|{{FindYDCportal|{{title decade}}s}}<!--
-->}}<!--
-->{{Category explanation|'''[[creative work|shaqooyinka hal-abuurka]]''' ee loo soo saaray sida fanaan ama koox [[debut|guushoodii ugu horreysay (debut)]] tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category series navigation}}
[[Category:Debut works by decade|{{Title decade}}s]]
[[Category:{{Century name from title decade|dash}} debut works|{{Title decade}}]]
[[Category:{{Title decade}}s works| Debut]]
[[Category:{{Title decade}}s beginnings|Works]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
i5p3wdwmxnvz12236m02dwuxcsw2maw
Template:YYYY debut works category header
10
53050
309331
2026-09-23T22:04:34Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Farshaxan<!-- -->|{{FindYDCportal|{{title year}}}}<!-- -->}}<!-- -->{{Category explanation|'''[[creative work|shaqooyinka hal-abuurka]]''' ee loo soo saaray sida fanaan ama koox [[debut|guushoodii ugu horreysay (debut)]] sanadka '''[[{{Title year}}]]'''}} {{Category series navigation|skip-gaps=yes}} [[Category:Debut works by year|{{Title year}}]] [[Category:{{DECADE|{{Title year}}}} debut works]] Category:{{Title year}} works| Debu...
309331
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Farshaxan<!--
-->|{{FindYDCportal|{{title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[creative work|shaqooyinka hal-abuurka]]''' ee loo soo saaray sida fanaan ama koox [[debut|guushoodii ugu horreysay (debut)]] sanadka '''[[{{Title year}}]]'''}}
{{Category series navigation|skip-gaps=yes}}
[[Category:Debut works by year|{{Title year}}]]
[[Category:{{DECADE|{{Title year}}}} debut works]]
[[Category:{{Title year}} works| Debut]]
[[Category:{{Title year}} beginnings|Works]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
ho2lojg2dkakztz8fnh90ysnt1u2jca
Template:Works year
10
53051
309332
2026-09-23T22:05:16Z
Isma4l
41797
Bog cusub: <includeonly>{{Portal|Farshaxan|Taariikh|{{FindYDCportal | {{Title year}} }} }} {{Category explanation|shaqooyinka la daabacay, la abuuray ama la soo saaray sanadka '''[[{{Title year}}]]'''}} {{Category series navigation|skip-gaps=yes}} {{Category see also if exists|{{Title year}} establishments}} [[Category:Works by year|{{Title year}}]] {{Category if exists|{{Title year}}|Works}} {{Category if exists|{{Title year}} in the arts|Works}} Category:{{DECADE|{{Title year}}}} wor...
309332
wikitext
text/x-wiki
<includeonly>{{Portal|Farshaxan|Taariikh|{{FindYDCportal | {{Title year}} }} }}
{{Category explanation|shaqooyinka la daabacay, la abuuray ama la soo saaray sanadka '''[[{{Title year}}]]'''}}
{{Category series navigation|skip-gaps=yes}}
{{Category see also if exists|{{Title year}} establishments}}
[[Category:Works by year|{{Title year}}]]
{{Category if exists|{{Title year}}|Works}}
{{Category if exists|{{Title year}} in the arts|Works}}
[[Category:{{DECADE|{{Title year}}}} works| {{PAGENAME}}]]
</includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation
| content =
{{Tsh|WorksYear}}
Waxay abuurtaa qayb loogu talagalay shaqooyinka sanad gaar ah.
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{Works year}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay.
== Sidoo kale eeg ==
[[Category:Works-by-year templates]]
</noinclude>
rex5zhtwtmuwu6agz2py7v8gge219gh
309333
309332
2026-09-23T22:05:26Z
Isma4l
41797
309333
wikitext
text/x-wiki
<includeonly>{{Portal|Farshaxan|Taariikh|{{FindYDCportal | {{Title year}} }} }}
{{Category explanation|shaqooyinka la daabacay, la abuuray ama la soo saaray sanadka '''[[{{Title year}}]]'''}}
{{Category series navigation|skip-gaps=yes}}
{{Category see also if exists|{{Title year}} establishments}}
[[Category:Works by year|{{Title year}}]]
{{Category if exists|{{Title year}}|Works}}
{{Category if exists|{{Title year}} in the arts|Works}}
[[Category:{{DECADE|{{Title year}}}} works| {{PAGENAME}}]]
</includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<noinclude>
{{Documentation
| content =
{{Tsh|WorksYear}}
Waxay abuurtaa qayb loogu talagalay shaqooyinka sanad gaar ah.
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{Works year}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay.
== Sidoo kale eeg ==
}}
[[Category:Works-by-year templates]]
</noinclude>
jbowwt55ftxcaotluikcj9u82yj0ok1
Template:Works decade
10
53052
309334
2026-09-23T22:06:23Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Farshaxan<!-- -->|{{FindYDCportal|{{Title decade}}s }} <!-- -->}}<!-- -->{{Category explanation|shaqooyinka la daabacay, la abuuray ama la soo saaray tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}} {{Category series navigation}} [[Category:{{ordinal|{{century|{{#expr: {{Title decade}}+ 1}}}}}}-century works|{{PAGENAME}}]] [[Category:{{Title decade}}s|Works]] {{#ifexist: Category:{{Title decade}}s in the arts<!-- -->|Cat...
309334
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Farshaxan<!--
-->|{{FindYDCportal|{{Title decade}}s }} <!--
-->}}<!--
-->{{Category explanation|shaqooyinka la daabacay, la abuuray ama la soo saaray tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]'''}}
{{Category series navigation}}
[[Category:{{ordinal|{{century|{{#expr: {{Title decade}}+ 1}}}}}}-century works|{{PAGENAME}}]]
[[Category:{{Title decade}}s|Works]]
{{#ifexist: Category:{{Title decade}}s in the arts<!--
-->|[[Category:{{Title decade}}s in the arts|Works]]<!--
-->|[[Category:{{Title decade}}s|Works]]<!--
-->}}
[[Category:Works by decade|{{padleft:{{Title decade}}|4|0}}]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation
| content =
Waxay abuurtaa qayb loogu talagalay shaqooyinka tobaneeye gaar ah
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{Works decade}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Works-by-decade templates|{{PAGENAME}}]]
</noinclude>
ivjew5wlac2enxm6cb0an72m86t9se0
Template:YYYY debut singles category header
10
53053
309335
2026-09-23T22:07:15Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Muusig<!-- -->|{{FindYDCportal|{{title year}}}}<!-- -->}}<!-- -->{{Category explanation|[[song|heesaha]] loo soo saaray sida fanaan ama koox [[single (music)|lambar keliya oo u horreeya (debut single)]] sanadka '''[[{{Title year}}]]'''}} {{Cat more if exists|{{Title year}} in music}} {{Category series navigation|skip-gaps=yes}} {{Category see also if exists|{{Title year}} debut albums|{{Title year}} debut EPs}} Category:Debut singl...
309335
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{title year}}}}<!--
-->}}<!--
-->{{Category explanation|[[song|heesaha]] loo soo saaray sida fanaan ama koox [[single (music)|lambar keliya oo u horreeya (debut single)]] sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
{{Category see also if exists|{{Title year}} debut albums|{{Title year}} debut EPs}}
[[Category:Debut singles by year|{{Title year}}]]
[[Category:{{DECADE|{{Title year}}}} debut singles]]
[[Category:{{Title year}} singles|Debut]]
[[Category:{{Title year}} debut works|Singles]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
8v629mf2bcqdvkg75twexu10wacayjd
Template:YYY0s debut singles category header
10
53054
309336
2026-09-23T22:08:05Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{Portal<!-- -->|Muusig<!-- -->|{{FindYDCportal|{{title decade}}s}}<!-- -->}}<!-- -->{{Category explanation|[[song|heesaha]] loo soo saaray sida fanaan ama koox [[single (music)|lambar keliya oo u horreeya (debut single)]] tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]''', taas oo ah sanadaha [[{{Title decade}}]] ilaa [[{{#expr:{{Title decade}} + 9}}]]}} {{Category more if exists|{{Title decade}}s in music}} {{Category series navigation}} {{Categ...
309336
wikitext
text/x-wiki
<includeonly><!--
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{title decade}}s}}<!--
-->}}<!--
-->{{Category explanation|[[song|heesaha]] loo soo saaray sida fanaan ama koox [[single (music)|lambar keliya oo u horreeya (debut single)]] tobaneeyaha '''[[{{Decade link|{{Title decade}}}}]]''', taas oo ah sanadaha [[{{Title decade}}]] ilaa [[{{#expr:{{Title decade}} + 9}}]]}}
{{Category more if exists|{{Title decade}}s in music}}
{{Category series navigation}}
{{Category see also if exists|{{Title decade}}s debut albums|{{Title decade}}s debut EPs}}
[[Category:Debut singles by decade|{{Title decade}}]]
[[Category:{{Title decade}}s singles|Debut]]
[[Category:{{Title decade}}s debut works|Singles]]
[[Category:{{Century name from title decade|dash}} debut singles|{{Title decade}}s]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
p4tm8uuzekj9dax9j5eb7ef98swa35m
Template:YYYY classical albums category header
10
53055
309337
2026-09-23T22:09:29Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY classical albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d classical albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-- #...
309337
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY classical albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d classical albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY classical albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY classical albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[classical music|muusigga qadiimiga ah]] [[album|albamadiisa]]''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:{{DECADE|{{Title year}}}} classical albums|{{Title year}}]]
[[Category:Classical albums by year|{{Title year}}]]
[[Category:{{Title year}} albums|Classical]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY classical albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY classical albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[classical music|albamada muusigga qadiimiga ah]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:2001 classical albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY classical albums category header}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Classical]]
[[Category:Classical music templates]]
</noinclude>
l4lb3kxbl31irm7qv27li5xeizmj8ya
Template:YYYY compilation albums category header
10
53056
309338
2026-09-23T22:10:18Z
Isma4l
41797
Bog cusub: <includeonly><!-- # Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed -->{{Category other<!-- -->|<!-- ############### Waa qayb ############################### # Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY compilation albums" -->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d compilation albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!-- -->|<!-...
309338
wikitext
text/x-wiki
<includeonly><!--
# Tallaabada koowaad waa in la hubiyo in kani yahay bog qaybeed
-->{{Category other<!--
-->|<!-- ############### Waa qayb ###############################
# Marka waa in la hubiyo inuu waafaqsan yahay qaabka loo baahan yahay: "YYYY compilation albums"
-->{{#ifeq: {{#invoke:String|match|s={{PAGENAME}}|pattern=^%d%d%d%d compilation albums$|start=1|match=1|plain=false|nomatch=%%nomatch%%}}|%%nomatch%%<!--
-->|<!-- # Kuma habboona qaabka
-->{{Error|Magaca bogga waa khalad.<br />[[Template:YYYY compilation albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY compilation albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->|<!-- ############### Waxaan haysanaa qayb sax ah ###############################
#OUTDENT#
##########################################################
#### BILAABO QAYBTA RUN AHAN DHIBTA QAYBTA ####
-->{{Portal<!--
-->|Muusig<!--
-->|{{FindYDCportal|{{Title year}}}}<!--
-->}}<!--
-->{{Category explanation|'''[[compilation album|albamada ururinta (compilation albums)]]''' ee la sii daayay sanadka '''[[{{Title year}}]]'''}}
{{Cat more if exists|{{Title year}} in music}}
{{Category series navigation|skip-gaps=yes}}
[[Category:{{DECADE|{{Title year}}}} compilation albums|{{Title year}}]]
[[Category:Compilation albums by year|{{Title year}}]]
[[Category:{{Title year}} albums|Compilation]]<!--
#### DHAMMAADKA QAYBTA DHIBTA QAYBTA ####
##########################################################
#SOO CELIN INDENT-KA#
-->}}<!--
-->|<!-- ############### Ma aha qayb ###############################
-->{{Error|Boggani kuma jiro [[Wikipedia:Namespace|meesha magaca qaybta]].<br />[[Template:YYYY compilation albums category header]] waxaa loogu talagalay in lagu isticmaalo oo keliya bogagga qaybaha ee cinwaankoodu yahay qaabka "YYYY compilation albums", halkaas oo YYYY ay tahay sanad ka kooban 4 lambar}}<!--
-->[[Category:Errors reported by other category header templates]]<!--
-->}}</includeonly><!--
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation|content=<!--
-->Waxay abuurtaa qayb loogu talagalay [[compilation album|albamada ururinta]] ee la sii daayay sanad gaar ah
tusaale. [[:Category:1994 compilation albums]]
== Isticmaalka ==
<syntaxhighlight lang="wikitext" inline>{{YYYY compilation albums category header}}</syntaxhighlight>
Ma jiro cabir loo baahan yahay
== Sidoo kale eeg ==
}}
[[Category:Albums chronology category header templates|Compiltion]]
</noinclude>
114pahp0osa7w2e9zw976nzl5m5wr2z
Template:Play year
10
53057
309339
2026-09-23T22:11:15Z
Isma4l
41797
Bog cusub: {{WorksYearHeader|WorkType=Plays|ParentType=works|portal=Theatre}} {{Category explanation|'''[[Play (theatre)|riwaayadaha]]''' la qoray ama la matalay markii ugu horreysay sanadka '''[[{{Title year}}]]'''}} [[Category:{{Title year}} in theatre|Plays]]<!-- --></includeonly><!-- # Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale -->{{Automatic category TOC}}<!-- --><noinclude><!-- -...
309339
wikitext
text/x-wiki
{{WorksYearHeader|WorkType=Plays|ParentType=works|portal=Theatre}}
{{Category explanation|'''[[Play (theatre)|riwaayadaha]]''' la qoray ama la matalay markii ugu horreysay sanadka '''[[{{Title year}}]]'''}}
[[Category:{{Title year}} in theatre|Plays]]<!--
--></includeonly><!--
# Fiiro gaar ah: {{Automatic category TOC}} waxay u baahan tahay inay diyaar ahaato iyadoon loo eegeyn in boggan template-ka ah la geliyay iyo in kale
-->{{Automatic category TOC}}<!--
--><noinclude><!--
-->{{Documentation}}<!--
--></noinclude>
ghdpgq7spyr1u9u1r56cyb9xkuf2488
Template:Works year header
10
53058
309340
2026-09-23T22:11:41Z
Isma4l
41797
Bog cusub: <includeonly>{{Works year header/helper|WorkType={{lcfirst:{{{WorkType|works}}}}}|ParentType={{{ParentType}}}|year={{Title year}}|portal={{{portal|}}}|portal2={{{portal2|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
309340
wikitext
text/x-wiki
<includeonly>{{Works year header/helper|WorkType={{lcfirst:{{{WorkType|works}}}}}|ParentType={{{ParentType}}}|year={{Title year}}|portal={{{portal|}}}|portal2={{{portal2|}}}}}</includeonly><noinclude>{{documentation}}</noinclude>
smukq9jlp7jonjpcnkht9d0nld9ueya
Template:WorksYearHeader
10
53059
309341
2026-09-23T22:12:24Z
Isma4l
41797
Bog loo bedeley [[Template:Works year header]]
309341
wikitext
text/x-wiki
#REDIRECT [[Template:Works year header]]
tr21letwvbxfmp03hkplsxymvnqtjfv
Template:Works year header/helper
10
53060
309342
2026-09-23T22:12:56Z
Isma4l
41797
Bog cusub: <includeonly>{{#if: {{Title year}}{{{portal|}}}{{{portal2|}}} | {{Portal|{{{portal|}}}|{{{portal2|}}}|{{#invoke:FindYDCportal|findydcportal|{{Title year}}}}}} }} {{Category series navigation|skip-gaps=yes}} {{#ifeq:{{NAMESPACE}}|Template|{{Sandbox other||[[Category:Works-by-year templates]]}}|<!-- ELSE (not a template) -->[[Category:{{{year}}} {{{ParentType|works}}}|{{ucfirst:{{{WorkType}}}}}]]<!-- -->{{category ifexist|{{ucfirst:{{{WorkType}}}}} by year<!-- -->...
309342
wikitext
text/x-wiki
<includeonly>{{#if: {{Title year}}{{{portal|}}}{{{portal2|}}} | {{Portal|{{{portal|}}}|{{{portal2|}}}|{{#invoke:FindYDCportal|findydcportal|{{Title year}}}}}} }}
{{Category series navigation|skip-gaps=yes}}
{{#ifeq:{{NAMESPACE}}|Template|{{Sandbox other||[[Category:Works-by-year templates]]}}|<!--
ELSE (not a template)
-->[[Category:{{{year}}} {{{ParentType|works}}}|{{ucfirst:{{{WorkType}}}}}]]<!--
-->{{category ifexist|{{ucfirst:{{{WorkType}}}}} by year<!--
-->|{{#ifexpr:{{{year}}}<1000|0|}}{{{year}}}}}<!--
-->{{#ifexist:Category:{{DECADE|{{{year}}}}} {{{WorkType}}} by year<!--
-->|[[Category:{{DECADE|{{{year}}}}} {{{WorkType}}} by year| {{{year}}}]]<!--
-->|{{#ifexist:Category:{{DECADE|{{{year}}}}} {{{WorkType}}}<!--
-->|[[Category:{{DECADE|{{{year}}}}} {{{WorkType}}}| {{{year}}}]]}} }} }}<!--
--></includeonly><noinclude>{{documentation}}</noinclude>
432aziqaykw9wmw59y5t0689hjkmjh5
Template:Category explanation
10
53061
309343
2026-09-23T22:13:27Z
Isma4l
41797
Bog cusub: {{Hatnote|This [[Help:Categories|category]] is for {{#invoke:ustring|gsub|\{{#if:1|{{{1}}}}}|%.$|}}.}}<noinclude> {{Documentation}}</noinclude>
309343
wikitext
text/x-wiki
{{Hatnote|This [[Help:Categories|category]] is for {{#invoke:ustring|gsub|\{{#if:1|{{{1}}}}}|%.$|}}.}}<noinclude>
{{Documentation}}</noinclude>
fdp2onlke5rxu0br4ppvrnqdcb5xgmh
309344
309343
2026-09-23T22:14:07Z
Isma4l
41797
309344
wikitext
text/x-wiki
{{Hatnote|[[Help:Categories|Qaybtan]] waxaa loogu talagalay {{#invoke:ustring|gsub|\{{#if:1|{{{1}}}}}|%.$|}}.}}<noinclude>
{{Documentation}}</noinclude>
17v7d8gzd7yizw3uhhbvzdisioo632v
Template:Category see also if exists
10
53062
309345
2026-09-23T22:14:50Z
Isma4l
41797
Bog cusub: <includeonly>{{safesubst:#invoke:See also if exists|main|ns=category|warning=yes}}</includeonly><noinclude>{{Documentation}}</noinclude>
309345
wikitext
text/x-wiki
<includeonly>{{safesubst:#invoke:See also if exists|main|ns=category|warning=yes}}</includeonly><noinclude>{{Documentation}}</noinclude>
mdgz6zxw3bn871h2atgy85gkxmqzzcr
Module:See also if exists
828
53063
309346
2026-09-23T22:15:18Z
Isma4l
41797
Bog cusub: --[[ v1.0 ]] local p = {} local yesno = require("Module:yesno") local function exists(title) local success, result = pcall(function() return title.exists end) if success then return result else return true end end function p.main(frame) local rawpages = {} local nvalid = 0 local namespace = frame.args.ns for i, v in ipairs(frame:getParent().args) do if (v ~= nil) then local thisArg = mw.text.trim(v) if (thisArg ~= "") then local title = mw.title.new(thisAr...
309346
Scribunto
text/plain
--[[ v1.0
]]
local p = {}
local yesno = require("Module:yesno")
local function exists(title)
local success, result = pcall(function() return title.exists end)
if success then
return result
else
return true
end
end
function p.main(frame)
local rawpages = {}
local nvalid = 0
local namespace = frame.args.ns
for i, v in ipairs(frame:getParent().args) do
if (v ~= nil) then
local thisArg = mw.text.trim(v)
if (thisArg ~= "") then
local title = mw.title.new(thisArg, namespace)
if title ~= nil and exists(title) then
table.insert(rawpages, title.fullText)
nvalid = nvalid + 1
end
end
end
end
if (nvalid == 0) then
if yesno(frame.args.warning) then
if namespace == nil then
namespace = "page"
elseif namespace:sub(-1) == "y" then
namespace = namespace:sub(0, -2) .. "ie"
end
mw.addWarning(string.format("'''[[%s]] — no output, because none of the %ss currently exist.'''",
frame:getParent():getTitle(),namespace))
end
return ""
end
local mLabelledList = require('Module:Labelled list hatnote')
local pages = mLabelledList._labelledList(rawpages, "See also", "")
return pages
end
return p
rar7n78dxwa0kw710nfyuzqo7apib9j
Template:Category more if exists
10
53064
309347
2026-09-23T22:15:43Z
Isma4l
41797
Bog cusub: <includeonly>{{#invoke:Category more if exists|main|warning=no}}</includeonly><noinclude>{{Documentation}}</noinclude>
309347
wikitext
text/x-wiki
<includeonly>{{#invoke:Category more if exists|main|warning=no}}</includeonly><noinclude>{{Documentation}}</noinclude>
icpo72brlgsy22azw171h9b0kefsx1h
Module:Category more if exists
828
53065
309348
2026-09-23T22:16:08Z
Isma4l
41797
Bog cusub: --[[ v1.0 ]] local p = {} local yesno = require("Module:yesno") function p.main(frame) local rawpages = {} local nvalid = 0 local namespace = frame.args.ns for i, v in ipairs(frame:getParent().args) do if (v ~= nil) then local thisArg = mw.text.trim(v) if (thisArg ~= "") then local title = mw.title.new(thisArg, namespace) if title ~= nil and title.exists then table.insert(rawpages, title.fullText) nvalid = nvalid + 1 end end end end if (n...
309348
Scribunto
text/plain
--[[ v1.0
]]
local p = {}
local yesno = require("Module:yesno")
function p.main(frame)
local rawpages = {}
local nvalid = 0
local namespace = frame.args.ns
for i, v in ipairs(frame:getParent().args) do
if (v ~= nil) then
local thisArg = mw.text.trim(v)
if (thisArg ~= "") then
local title = mw.title.new(thisArg, namespace)
if title ~= nil and title.exists then
table.insert(rawpages, title.fullText)
nvalid = nvalid + 1
end
end
end
end
if (nvalid == 0) then
if yesno(frame.args.warning) then
if namespace == nil then
namespace = "page"
elseif namespace:sub(-1) == "y" then
namespace = namespace:sub(0, -2) .. "ie"
end
mw.addWarning(string.format("'''[[%s]] — no output, because none of the %ss currently exist.'''",
frame:getParent():getTitle(),namespace))
end
return ""
end
local mHatnote = require("Module:Hatnote")
local mHatList = require("Module:Hatnote list")
local options = {
extraclasses = "relarticle mainarticle"
}
local hatnoteText = string.format("For more information, see %s", mHatList.andList(rawpages, true))
return mHatnote._hatnote(hatnoteText, options)
end
return p
jp31v3qqq5y01d4ktqhutzxh45cwpji
309349
309348
2026-09-23T22:16:45Z
Isma4l
41797
309349
Scribunto
text/plain
--[[ v1.0
]]
local p = {}
local yesno = require("Module:yesno")
function p.main(frame)
local rawpages = {}
local nvalid = 0
local namespace = frame.args.ns
for i, v in ipairs(frame:getParent().args) do
if (v ~= nil) then
local thisArg = mw.text.trim(v)
if (thisArg ~= "") then
local title = mw.title.new(thisArg, namespace)
if title ~= nil and title.exists then
table.insert(rawpages, title.fullText)
nvalid = nvalid + 1
end
end
end
end
if (nvalid == 0) then
if yesno(frame.args.warning) then
if namespace == nil then
namespace = "bog"
elseif namespace:sub(-1) == "y" then
namespace = namespace:sub(0, -2) .. "ie"
end
mw.addWarning(string.format("'''[[%s]] — wax soo saar malahan, sababtoo ah midkoodna %s hadda jira ma jiro.'''",
frame:getParent():getTitle(), namespace))
end
return ""
end
local mHatnote = require("Module:Hatnote")
local mHatList = require("Module:Hatnote list")
local options = {
extraclasses = "relarticle mainarticle"
}
local hatnoteText = string.format("Wixii macluumaad dheeraad ah, eeg %s", mHatList.andList(rawpages, true))
return mHatnote._hatnote(hatnoteText, options)
end
return p
h9ntzji1q7dnt089wfn57ia6gdbnrlf
Template:Category main section
10
53066
309350
2026-09-23T22:17:19Z
Isma4l
41797
Bog cusub: {{Hatnote|extraclasses=relarticle mainarticle|Qaybtan [[Wikipedia:Categorization|qaybteeda]] ugu weyn waa {{#ifeq:{{{article|}}}|no|bogga|qodobka}} [[{{{1}}}]], qaybta lagu magacaabo [[{{{1}}}#{{{2}}}|{{{2}}}]].}}<noinclude> <!-- Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, halkan ha ku darin! --> {{Documentation}} </noinclude>
309350
wikitext
text/x-wiki
{{Hatnote|extraclasses=relarticle mainarticle|Qaybtan [[Wikipedia:Categorization|qaybteeda]] ugu weyn waa {{#ifeq:{{{article|}}}|no|bogga|qodobka}} [[{{{1}}}]], qaybta lagu magacaabo [[{{{1}}}#{{{2}}}|{{{2}}}]].}}<noinclude>
<!-- Ku dar qaybaha iyo interwiki-yada bog-hoosaadka /doc, halkan ha ku darin! -->
{{Documentation}}
</noinclude>
q27degljbx8utnqun9v16koewq1yl1p
Template:Main listing
10
53067
309351
2026-09-23T22:17:50Z
Isma4l
41797
Bog cusub: <includeonly>{{#invoke:Labelled list hatnote|labelledList|Liiska ugu weyn|Liisaska ugu weyn}}</includeonly><noinclude> {{documentation|content={{Lua|Module:Labelled list hatnote}} Qaab-muujiyaddani waa beddel kooban oo loogu talagalay {{tl|Main list}}. Kan waxaa ugu fiican in lagu isticmaalo bogagga qaybaha, iyo korka qaybaha ku saabsan mawduucyada uu liis u jiro, laakiin halka maqaalka hadda jira uusan bixinayn liis soo gaabiyay. Haddii xaaladda hadda jirta ay bixiso liis gaaban...
309351
wikitext
text/x-wiki
<includeonly>{{#invoke:Labelled list hatnote|labelledList|Liiska ugu weyn|Liisaska ugu weyn}}</includeonly><noinclude>
{{documentation|content={{Lua|Module:Labelled list hatnote}}
Qaab-muujiyaddani waa beddel kooban oo loogu talagalay {{tl|Main list}}. Kan waxaa ugu fiican in lagu isticmaalo bogagga qaybaha, iyo korka qaybaha ku saabsan mawduucyada uu liis u jiro, laakiin halka maqaalka hadda jira uusan bixinayn liis soo gaabiyay. Haddii xaaladda hadda jirta ay bixiso liis gaaban oo ka mid ah xubnaha ugu muhiimsan ee liis aad u ballaaran oo meel kale ku yaal, isticmaal {{tlx|Main list}}.
Isticmaalka: {{code|<nowiki>{{Main listing|Article}}</nowiki>|lang=wikitext}}, wuxuu soo saarayaa:
{{Main listing|Article}}
[[Category:Hatnote templates for lists]]
}}
</noinclude>
qi6k2jfj88tq7r016vdlefv2cdvvosd
Template:Main list
10
53068
309352
2026-09-23T22:18:16Z
Isma4l
41797
Bog cusub: <includeonly>{{#invoke:Main list|mainList}}</includeonly><noinclude> {{Documentation}} </noinclude>
309352
wikitext
text/x-wiki
<includeonly>{{#invoke:Main list|mainList}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
aa6t7h366jul2m2zwq7ghpanuptj5mw
Module:Main list
828
53069
309353
2026-09-23T22:18:49Z
Isma4l
41797
Bog cusub: --[[ -- Module-kani wuxuu soo saaraa xiriirka "Wixii faahfaahin dheeraad ah ee ku saabsan mowduucan". Wuxuu hirgelinayaa -- qaab-muujiyadeedka {{Main list}}. --]] local mHatnote = require('Module:Hatnote') local mHatlist = require('Module:Hatnote list') local mArguments -- si caajis ah u billow local mTableTools -- si caajis ah u billow local p = {} function p.mainList(frame) mArguments = require('Module:Arguments') mTableTools = require('Module:TableTools') local args = mAr...
309353
Scribunto
text/plain
--[[
-- Module-kani wuxuu soo saaraa xiriirka "Wixii faahfaahin dheeraad ah ee ku saabsan mowduucan". Wuxuu hirgelinayaa
-- qaab-muujiyadeedka {{Main list}}.
--]]
local mHatnote = require('Module:Hatnote')
local mHatlist = require('Module:Hatnote list')
local mArguments -- si caajis ah u billow
local mTableTools -- si caajis ah u billow
local p = {}
function p.mainList(frame)
mArguments = require('Module:Arguments')
mTableTools = require('Module:TableTools')
local args = mArguments.getArgs(frame, {parentOnly = true})
if not args[1] then
return mHatnote.makeWikitextError(
'magaca bogga lama cayimin',
'Template:Main list#Errors',
args.category
)
end
return p._mainList(mTableTools.compressSparseArray(args))
end
function p._mainList(args)
local pages = mHatlist.andList(args, true)
local text = string.format('Si aad u hesho liis dhammaystiran, eeg %s.', pages)
return mHatnote._hatnote(text)
end
return p
bwd0oko8uezkz5hgba26nv83pno7w3b
Template:Category see also if exists 2
10
53070
309354
2026-09-23T22:20:14Z
Isma4l
41797
Bog cusub: <includeonly><!-- -->{{#ifexist: Category:{{{1|}}}<!-- -->|<!-- # Qaybta koowaad way jirtaa # Markaa abuuro xiriiriye -->{{hatnote|1={{{LABEL|Sidoo kale eeg}}}: [[:Category:{{resolve category redirect|{{{1|}}}}}]]}}<!-- -->|<!-- # Qaybta koowaad MA jirto # markaa isku day magaca labaad -->{{#ifexist: Category:{{{2|}}}<!-- -->|<!-- # Qaybta labaad way jirtaa # Markaa abuuro xiriiriye -->{{hatnote|1={{{LABEL|Sidoo kale eeg...
309354
wikitext
text/x-wiki
<includeonly><!--
-->{{#ifexist: Category:{{{1|}}}<!--
-->|<!--
# Qaybta koowaad way jirtaa
# Markaa abuuro xiriiriye
-->{{hatnote|1={{{LABEL|Sidoo kale eeg}}}: [[:Category:{{resolve category redirect|{{{1|}}}}}]]}}<!--
-->|<!--
# Qaybta koowaad MA jirto
# markaa isku day magaca labaad
-->{{#ifexist: Category:{{{2|}}}<!--
-->|<!--
# Qaybta labaad way jirtaa
# Markaa abuuro xiriiriye
-->{{hatnote|1={{{LABEL|Sidoo kale eeg}}}: [[:Category:{{resolve category redirect|{{{2|}}}}}]]}}<!--
-->|<!--
# Qaybta labaad MA jirto
# markaa isku day magaca saddexaad
-->{{#ifexist: Category:{{{3|}}}<!--
-->|<!--
# Qaybta saddexaad way jirtaa
# Markaa abuuro xiriiriye
-->{{hatnote|1={{{LABEL|Sidoo kale eeg}}}: [[:Category:{{resolve category redirect|{{{3|}}}}}]]}}<!--
-->|<!--
# Qaybta saddexaad MA jirto
# markaa isku day magaca afraad
-->{{#ifexist: Category:{{{4|}}}<!--
-->|<!--
# Qaybta afraad way jirtaa
# Markaa abuuro xiriiriye
-->{{hatnote|1={{{LABEL|Sidoo kale eeg}}}: [[:Category:{{resolve category redirect|{{{4|}}}}}]]}}<!--
-->|<!--
# Ma jiro qayb jirta
# markaa waxba ha samayn
-->}}<!--
-->}}<!--
-->}}<!--
-->}}</includeonly><noinclude>
{{Documentation}}
</noinclude>
kcztf11zqqjyyfaalxdrwqld58mj12j
Template:Category pair
10
53071
309355
2026-09-23T22:20:44Z
Isma4l
41797
Bog cusub: {{#invoke:Category pair|catPair}}{{#invoke:Check for unknown parameters|check|1|2|showblankpositional=1|unknown={{Category other|[[Category:Pages using category pair with more than 2 parameters]]}}|preview=Page using [[Template:Category pair]] with more than 2 parameters|ignoreblank=n }}<noinclude> {{documentation}} </noinclude>
309355
wikitext
text/x-wiki
{{#invoke:Category pair|catPair}}{{#invoke:Check for unknown parameters|check|1|2|showblankpositional=1|unknown={{Category other|[[Category:Pages using category pair with more than 2 parameters]]}}|preview=Page using [[Template:Category pair]] with more than 2 parameters|ignoreblank=n }}<noinclude>
{{documentation}}
</noinclude>
p9vrvs0jtgmdagvq1rr5rjdoc6h8yvm
Template:Succeeding category
10
53072
309357
2026-09-23T22:22:35Z
Isma4l
41797
Bog cusub: {{#invoke:Category pair|nextCat}}<noinclude> {{documentation}} </noinclude>
309357
wikitext
text/x-wiki
{{#invoke:Category pair|nextCat}}<noinclude>
{{documentation}}
</noinclude>
3vw1s3rg9o1w5wg4u3k74f7aa7823gz
Template:Category distinguish
10
53073
309358
2026-09-23T22:23:10Z
Isma4l
41797
Bog cusub: {{Hatnote |extraclasses=boilerplate |Lama khaldin [[:Category:{{{1}}}]]{{#if:{{{2|}}}| ama [[:Category:{{{2}}}]]}}.<noinclude>{{Documentation}}</noinclude>
309358
wikitext
text/x-wiki
{{Hatnote |extraclasses=boilerplate |Lama khaldin [[:Category:{{{1}}}]]{{#if:{{{2|}}}| ama [[:Category:{{{2}}}]]}}.<noinclude>{{Documentation}}</noinclude>
d68qjpyuzlpma462joxiswqdok0nxv9
Template:Category contrast
10
53074
309359
2026-09-23T22:23:40Z
Isma4l
41797
Bog cusub: {{Hatnote |extraclasses=boilerplate |[[Help:Categories|Qaybtan]] waxaa badanaa la barbardhigaa [[:Category:{{{1}}}|{{{1}}}]]{{#if:{{{2|}}}| ama [[:Category:{{{2}}}|{{{2}}}]]}}.<noinclude>{{Documentation}}</noinclude>
309359
wikitext
text/x-wiki
{{Hatnote |extraclasses=boilerplate |[[Help:Categories|Qaybtan]] waxaa badanaa la barbardhigaa [[:Category:{{{1}}}|{{{1}}}]]{{#if:{{{2|}}}| ama [[:Category:{{{2}}}|{{{2}}}]]}}.<noinclude>{{Documentation}}</noinclude>
hecdyxj36aivfaxi9skdqe40jwlfm8u
Template:MathWorld
10
53075
309360
2026-09-23T23:53:45Z
Isma4l
41797
Bog cusub: <span class="citation mathworld" id="Reference-Mathworld-{{{title|{{{2|{{PAGENAMEBASE}}}}}}}}">{{#invoke:Template wrapper|{{#if:{{{_debug|}}}|list|wrap}}|_template=cite web |_exclude=urlname, _debug, id |url = https://mathworld.wolfram.com/{{#if:{{{1|}}}{{{id|}}}{{{urlname|}}}|{{{1|{{{id|{{{urlname|}}}}}}}}}.html}} |title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}} |author = {{{3|{{{author|[[Eric W. Weisstein|Weisstein, Eric W.]]}}}}}} |website = [[MathWorld]] |...
309360
wikitext
text/x-wiki
<span class="citation mathworld" id="Reference-Mathworld-{{{title|{{{2|{{PAGENAMEBASE}}}}}}}}">{{#invoke:Template wrapper|{{#if:{{{_debug|}}}|list|wrap}}|_template=cite web
|_exclude=urlname, _debug, id
|url = https://mathworld.wolfram.com/{{#if:{{{1|}}}{{{id|}}}{{{urlname|}}}|{{{1|{{{id|{{{urlname|}}}}}}}}}.html}}
|title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}}
|author = {{{3|{{{author|[[Eric W. Weisstein|Weisstein, Eric W.]]}}}}}}
|website = [[MathWorld]]
|access-date = {{{4|{{{access-date|{{{accessdate|}}}}}}}}}
|ref = {{{5|{{{ref|{{SfnRef|Weisstein}}}}}}}}
}}</span><noinclude>
{{documentation}} </noinclude>
9rozi8l6hjcgcpmkawt8x4bx7pebdjp
Template:PlanetMath
10
53076
309361
2026-09-23T23:54:15Z
Isma4l
41797
Bog cusub: [https://planetmath.org/{{{1|{{{urlname}}}}}} {{{2|{{{title|{{PAGENAME}}}}}}}}] at [[PlanetMath]].<!----><noinclude>{{Documentation}}</noinclude>
309361
wikitext
text/x-wiki
[https://planetmath.org/{{{1|{{{urlname}}}}}} {{{2|{{{title|{{PAGENAME}}}}}}}}] at [[PlanetMath]].<!----><noinclude>{{Documentation}}</noinclude>
67ldei7o04n2c9h964tx6evtybcxcrd
Template:MathWorld2
10
53077
309362
2026-09-23T23:54:38Z
Isma4l
41797
Bog cusub: <cite id="Reference-Mathworld-{{{title}}}">{{{author|[[Eric W. Weisstein|Weisstein, Eric W.]]}}}, "[https://mathworld.wolfram.com/{{{id|{{{urlname}}}}}}.html {{{title}}}]" ("[http://mathworld.wolfram.com/{{{urlname2}}}.html {{{title2}}}]") at ''[[MathWorld]]''.</cite><noinclude>{{documentation}} </noinclude>
309362
wikitext
text/x-wiki
<cite id="Reference-Mathworld-{{{title}}}">{{{author|[[Eric W. Weisstein|Weisstein, Eric W.]]}}}, "[https://mathworld.wolfram.com/{{{id|{{{urlname}}}}}}.html {{{title}}}]" ("[http://mathworld.wolfram.com/{{{urlname2}}}.html {{{title2}}}]") at ''[[MathWorld]]''.</cite><noinclude>{{documentation}}
</noinclude>
co4yhvs40vfgdulkcosel1f1du48a91
Template:ScienceWorldBiography
10
53078
309363
2026-09-23T23:55:03Z
Isma4l
41797
Bog cusub: {{Cite web |editor-link = Eric W. Weisstein |editor-last = Weisstein |editor-first = Eric Wolfgang |url = http://scienceworld.wolfram.com/biography/{{{1|{{{id|{{{urlname}}}}}}}}}.html |title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}} |website = [[ScienceWorld]] |access-date = {{{access-date|{{{accessdate|}}}}}} }}<noinclude> {{documentation}} </noinclude>
309363
wikitext
text/x-wiki
{{Cite web
|editor-link = Eric W. Weisstein
|editor-last = Weisstein
|editor-first = Eric Wolfgang
|url = http://scienceworld.wolfram.com/biography/{{{1|{{{id|{{{urlname}}}}}}}}}.html
|title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}}
|website = [[ScienceWorld]]
|access-date = {{{access-date|{{{accessdate|}}}}}}
}}<noinclude>
{{documentation}}
</noinclude>
75iorp1ico5xtpsos7kprgcgwu3wi2f
Template:ScienceWorld
10
53079
309364
2026-09-23T23:55:52Z
Isma4l
41797
Bog cusub: {{Cite web |editor-link = Eric W. Weisstein |editor-last = Weisstein |editor-first = Eric Wolfgang |url = http://scienceworld.wolfram.com/{{{1|{{{id|{{{urlname}}}}}}}}}.html |title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}} |website = [[ScienceWorld]] |access-date = {{{access-date|{{{accessdate|}}}}}} }}<noinclude> {{documentation}} </noinclude>
309364
wikitext
text/x-wiki
{{Cite web
|editor-link = Eric W. Weisstein
|editor-last = Weisstein
|editor-first = Eric Wolfgang
|url = http://scienceworld.wolfram.com/{{{1|{{{id|{{{urlname}}}}}}}}}.html
|title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}}
|website = [[ScienceWorld]]
|access-date = {{{access-date|{{{accessdate|}}}}}}
}}<noinclude>
{{documentation}}
</noinclude>
dntqff1ozkjpmkrnvnrqcbufl4ui277
Template:WolframFunctionsSite
10
53080
309365
2026-09-23T23:56:17Z
Isma4l
41797
Bog cusub: {{Cite web |url = http://functions.wolfram.com/{{{1|{{{urlname}}}}}}/ |title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}} |publisher = [[Wolfram Research|Wolfram]] Functions Site |access-date = {{{3|{{{access-date|{{{accessdate|}}}}}}}}} }}<noinclude> {{Documentation}} </noinclude>
309365
wikitext
text/x-wiki
{{Cite web
|url = http://functions.wolfram.com/{{{1|{{{urlname}}}}}}/
|title = {{{2|{{{title|{{PAGENAMEBASE}}}}}}}}
|publisher = [[Wolfram Research|Wolfram]] Functions Site
|access-date = {{{3|{{{access-date|{{{accessdate|}}}}}}}}}
}}<noinclude>
{{Documentation}}
</noinclude>
s6v8g26y3tqa3twt7xnqefu0b5e7la2
Template:Earthquake magnitude
10
53081
309366
2026-09-23T23:57:38Z
Isma4l
41797
Bog cusub: <includeonly>{{replace| <!-- M: 2019-07-08 --> {{#if:{{{1|}}} <!-- [->end-if#1 --> |<!-- Has a non-empty parameter: --> {{#switch: {{{1|}}}<!-- [->end-switch (outer) --> <!-- ------------------------------------ --> | Magnitude | magnitude = [[Seismic magnitude scales|{{{1|}}}]]<!-- No need to categorize common usage. --> | M = [[Seismic magnitude scales|M]] {{Main other|[[Category:Articles using abbreviated captions for seismic magnitude]]}}<!-- but not for "m" -...
309366
wikitext
text/x-wiki
<includeonly>{{replace|
<!-- M: 2019-07-08 -->
{{#if:{{{1|}}} <!-- [->end-if#1 -->
|<!-- Has a non-empty parameter: -->
{{#switch: {{{1|}}}<!-- [->end-switch (outer) -->
<!-- ------------------------------------ -->
| Magnitude | magnitude = [[Seismic magnitude scales|{{{1|}}}]]<!-- No need to categorize common usage. -->
| M = [[Seismic magnitude scales|M]] {{Main other|[[Category:Articles using abbreviated captions for seismic magnitude]]}}<!-- but not for "m" -->
| Mag | Mag. | mag |mag. = [[Seismic magnitude scales|Mag.]] {{Main other|[[Category:Articles using abbreviated captions for seismic magnitude]]}}
<!-- ------------------------------------ -->
|<!-- Not a special case. DEFAULT: run the course. -->
<!-- Big switch statement of magnitude types starts here: -->
{{#switch: {{lc: {{{1}}}}} <!-- [->end-switch (inner) -->
<!-- These first several cases are for preliminary or dubious cases.
They use {H:title} that creates the dotted underscore
to indicate they are doubtful and require attention. -->
<!--   is a non-breaking thin-space -->
<!-- Unknown mag. scale -->
| ? = {{tooltip|2=Unknown mag. scale|M}}
{{Main other|[[Category:Articles with unspecified earthquake magnitude and/or scale]]}}
<!-- That's the "Main_other" template. Not "Main". -->
<!-- Scale/mag. questioned -->
| ?? = {{tooltip|2=Scale/mag. questioned|M}}
{{Main other|[[Category:Articles with unverified magnitude and/or scale]]}}
<!-- "Richter" questioned -->
| r? = {{#if:{{{link|}}}
|[[Seismic magnitude scales#ML|{{tooltip|2=Richter mag. scale|M|dotted=no}}]]
}}{{Main other|[[Category:Articles using dubious Richter magnitude scale]]}}
<!-- ---------------------------------------------------
Section numbers refer to MNSOP-2 Chapter 3, and/or
IASPEI/MNSOP-2 Information Sheet 3.
-->
<!-- Source says "unknown". -->
| uk | unk | ukn | unknown = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Muk|{{tooltip|2=Unknown mag. scale|M<sub>uk</sub>|dotted=no}}]]
|M<sub>uk</sub>
}}{{Main other|[[Category:Articles using Muk magnitude scale]]}}
<!-- §4.1 Local ("Richter") mag. -->
| l = {{#if:{{{link|}}}
|[[Seismic magnitude scales#ML|{{tooltip|2='Local' mag. scale|M<sub>L</sub>|dotted=no}}]]
|M<sub>L</sub>
}}{{Main other|[[Category:Articles using ML magnitude scale]]}}
<!-- §3.2.4.7 JMA -->
| jma | j = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mjma|{{tooltip|2=JMA mag.|M<sub>JMA</sub>|dotted=no}}]]
|M<sub>JMA</sub>
}}{{Main other|[[Category:Articles using Mjma magnitude scale]]}}
<!-- SCSN "hand" label -->
| h = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mh|{{tooltip|2=misc. mag.|M<sub>h</sub>|dotted=no}}]]
|M<sub>h</sub>
}}{{Main other|[[Category:Articles using Mh for magnitude]]}}
<!-- === Moment magnitude variants === -->
<!-- § Scalar seismic moment (zero) -->
<!-- Some sources do not italicise. -->
| 0 = {{#if:{{{link|}}}
|[[Seismic magnitude scales#M0|{{tooltip|2=Seismic moment|M{{sub|0}}|dotted=no}}]]
|M{{sub|0}}
}}{{Main other|[[Category:Articles using seismic moment M0]]}}
<!-- "{mvar}" applies CSS 'texhtml' styling, and italics. -->
| 0tex = {{#if:{{{link|}}}
|[[Seismic magnitude scales#M0|{{tooltip|2=Seismic moment|{{mvar|M{{sub|0}}}}|dotted=no}}]]
|{{mvar|M{{sub|0}}}}
}}{{Main other|[[Category:Articles using seismic moment M0]]}}
<!-- Moment mag. dot: implicit w -->
| . = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mw|{{tooltip|2=Moment mag. scale|M|dotted=no}}]]
|M
}}{{Main other|[[Category:Articles using implicit Mw magnitude scale]]}}
<!-- § §4.7 Moment mag.-->
| w | mw = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mw|{{tooltip|2=Moment mag. scale|M<sub>w</sub>|dotted=no}}]]
|M<sub>w</sub>
}}{{Main other|[[Category:Articles using Mw magnitude scale]]}}
<!-- § Mwp from P-waves -->
| wp | mwp = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mwp|{{tooltip|2=Mw mag. from P-waves|M<sub>wp</sub>|dotted=no}}]]
|M<sub>wp</sub>
}}{{Main other|[[Category:Articles using Mwp magnitude scale]]}}
<!-- §3.2.8.3 Mwpd from P-waves -->
| wpd | mwpd = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mwpd|{{tooltip|2=Mw mag. from P-wave duration|M<sub>wpd</sub>|dotted=no}}]]
|M<sub>wpd</sub>
}}{{Main other|[[Category:Articles using Mwp magnitude scale with duration]]}}
<!-- § Mwb from body-waves -->
| wb | mwb = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mwb|{{tooltip|2=Mw mag. from body-waves|M<sub>wb</sub>|dotted=no}}]]
|M<sub>wb</sub>
}}{{Main other|[[Category:Articles using Mwb magnitude scale]]}}
<!-- § Mwc from centroid moment -->
| wc | mwc = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mwc|{{tooltip|2=Mw mag. from centroid|M<sub>wc</sub>|dotted=no}}]]
|M<sub>wc</sub>
}}{{Main other|[[Category:Articles using Mwc magnitude scale]]}}
<!-- § Mwr at regional distances -->
| wr | mwr = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mwr|{{tooltip|2=Mw mag. at regional distance|M<sub>wr</sub>|dotted=no}}]]
|M<sub>wr</sub>
}}{{Main other|[[Category:Articles using Mwr magnitude scale]]}}
<!-- §3.2.8.6 Mww from W-phase centroid mom.-->
| ww | mww = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mww|{{tooltip|2=Mw mag. from W-phase|M<sub>ww</sub>|dotted=no}}]]
|M<sub>ww</sub>
}}{{Main other|[[Category:Articles using Mww magnitude scale]]}}
<!-- === Surface wave variants === -->
<!-- §3.2.5.1 §4.4 Surface-wave mag. -->
| s = {{#ifeq: {{{1|}}} | S <!-- test if 's' was really 'S' -->
| <!-- MS: synonym for Ms_BB, or mis-capitalized M<s>. -->
{{#if:{{{link|}}}
|[[Seismic magnitude scales#Ms|{{tooltip|2=Surface-wave mag.|M<sub>S</sub>|dotted=no}}]]
|M<sub>S</sub>
}}{{Main other|[[Category:Articles using MS magnitude scale]]}}
| <!-- Ms: Short-period surface-wave mag.; possibly syn. for Ms_20 -->
{{#if:{{{link|}}}
|[[Seismic magnitude scales#Ms|{{tooltip|2=Surface-wave mag.|M<sub>s</sub>|dotted=no}}]]
|M<sub>s</sub>
}}{{Main other|[[Category:Articles using MS magnitude scale]]}}
}}<!-- endifeq -->
<!-- §4.4 Gutenberg-Richter 1954 version of M<s> -->
| gr = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mgr|{{tooltip|2=1954 Gutenberg-Richter mag.|M<sub>GR</sub>|dotted=no}}]]
|M<sub>GR</sub>
}}{{Main other|[[Category:Articles using Mgr magnitude scale]]}}
<!-- § §4.4 Surface-wave 20 sec. -->
| s20 = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Ms|{{tooltip|2=Surface-wave mag.|M<sub>s20</sub>|dotted=no}}]]
|M<sub>s20</sub>
}}{{Main other|[[Category:Articles using Ms20 magnitude scale]]}}
<!-- § §4.4 Surface-wave mag. -->
| sbb = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Ms|{{tooltip|2=Surface-wave mag.|M<sub>sBB</sub>|dotted=no}}]]
|M<sub>sBB</sub>
}}{{Main other|[[Category:Articles using Msbb magnitude scale]]}}
<!-- § Surface wave (vertical) -->
| z = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mz|{{tooltip|2=Surface-wave vertical mag.|M<sub>z</sub>|dotted=no}}]]
|M<sub>z</sub>
}}{{Main other|[[Category:Articles using Mz magnitude scale]]}}
<!-- § Surface wave, Chinese -->
| s7 = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Ms7|{{tooltip|2=Chinese surface-wave mag.|M<sub>s7</sub>|dotted=no}}]]
|M<sub>s7</sub>
}}{{Main other|[[Category:Articles using Ms7 magnitude scale]]}}
<!-- § Surface wave, Nuttli (1983) -->
| sn = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Msn|{{tooltip|2=Nuttli surface-wave mag.|M<sub>sn</sub>|dotted=no}}]]
|M<sub>sn</sub>
}}{{Main other|[[Category:Articles using Msn magnitude scale]]}}
<!-- Russian Ms scale. Not ML. -->
| lh = {{#if:{{{link|}}}
|[[Seismic magnitude scales#MLH|{{tooltip|2=Russian ML scale|M<sub>LH</sub>|dotted=no}}]]
|M<sub>LH</sub>
}}{{Main other|[[Category:Articles using MLH magnitude scale]]}}
<!-- § Vanek -->
| V = {{#if:{{{link|}}}
|[[Seismic magnitude scales#MV|{{tooltip|2=Vanek mag.|M<sub>V</sub>|dotted=no}}]]
|M<sub>V</sub>
}}{{Main other|[[Category:M_V]]}}
<!-- Averaged M<s> from Rothe 1969. Mentioned in Stover and Coffman 1993. -->
| r = {{#if:{{{link|}}}
|[[Seismic magnitude scales#MR|{{tooltip|2=Rothe Ms mag.|M<sub>R</sub>|dotted=no}}]]
|M<sub>R</sub>
}}{{Main other|[[Category:Articles using Rothe magnitude scale]]}}
<!-- === Body-wave variants === -->
| b = {{#ifeq: {{{1|}}} <!-- test if 'b' was really 'B' -->
<!-- §3.2.5.2 §4.3 mB Body-wave broadband mag. -->
|B
| {{#if:{{{link|}}}
|[[Seismic magnitude scales#mB|{{tooltip|2=Body-wave mag.|mB|dotted=no}}]]
|mB
}}{{Main other|[[Category:Articles using mB magnitude scale]]}}
<!-- §4.3 mb Body-wave short-period mag. -->
| {{#if:{{{link|}}} <!-- otherwise 'b' -->
|[[Seismic magnitude scales#mb|{{tooltip|2=Body-wave mag.|mb|dotted=no}}]]
|mb
}}{{Main other|[[Category:Articles using mb magnitude scale]]}}
}}<!-- endif -->
<!-- 'bigb' code is an alternate -->
<!-- §4.3 mB Body-wave broadband mag. -->
| bigb = {{#if:{{{link|}}}
|[[Seismic magnitude scales#mB|{{tooltip|2=Body-wave mag.|mB|dotted=no}}]]
|mB
}}{{Main other|[[Category:Articles using mB magnitude scale]]}}
<!-- §4.2 mBbb Body-wave broadband mag. -->
| bbb = {{#if:{{{link|}}}
|[[Seismic magnitude scales#mB|{{tooltip|2=Body-wave mag.|mB<sub>BB</sub>|dotted=no}}]]
|mB<sub>BB</sub>
}}{{Main other|[[Category:Articles using mBbb magnitude scale]]}}
<!-- §3.2.8.1 mBc Cumulative body-wave mag. -->
| bc = {{#if:{{{link|}}}
|[[Seismic magnitude scales#mBc|{{tooltip|2=Cumulative body-wave mag.|mB<sub>c</sub>|dotted=no}}]]
|mB<sub>c</sub>
}}{{Main other|[[Category:Articles using mBc magnitude scale]]}}
<!-- §3.2.4.4 §4.6 mbLg wave mag. -->
| blg = {{#if:{{{link|}}}
|[[Seismic magnitude scales#mbLg|{{tooltip|2=Lg-wave mag.|mb<sub>Lg</sub>|dotted=no}}]]
|mb<sub>Lg</sub>
}}{{Main other|[[Category:Articles using MbLg magnitude scale]]}}
<!-- §4.6 Nuttli (mbLg wave) mag. -->
| n = {{#if:{{{link|}}}
|[[Seismic magnitude scales#mN|{{tooltip|2=Nuttli (mbLg) mag.|m<sub>N</sub>|dotted=no}}]]
|m<sub>N</sub>
}}{{Main other|[[Category:Articles using MbLg magnitude scale]]}}
<!-- §3.2.4.5 Coda length mag. -->
| c = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mc|{{tooltip|2=Coda length mag.|M<sub>c</sub>|dotted=no}}]]
|M<sub>c</sub>
}}{{Main other|[[Category:Articles using Mc magnitude scale]]}}
<!-- §3.2.4.5 Duration mag -->
| d = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Md|{{tooltip|2=Duration mag.|M<sub>d</sub>|dotted=no}}]]
|M<sub>d</sub>
}}{{Main other|[[Category:Articles using Md magnitude scale]]}}
<!-- §3.2.7.2 Energy mag. -->
| e = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Me|{{tooltip|2=Energy mag. scale|M<sub>e</sub>|dotted=no}}]]
|M<sub>e</sub>
}}{{Main other|[[Category:Articles using Me magnitude scale]]}}
<!-- §3.2.4.5 K-class mag. -->
| k = {{#if:{{{link|}}}
|[[Seismic magnitude scales#MK|{{tooltip|2=K-class mag. scale|M<sub>(K)</sub>|dotted=no}}]]
|M<sub>(K)</sub>
}}{{Main other|[[Category:Articles using MK magnitude scale]]}}
<!-- §3.2.6.7 tsunami mag. -->
| t = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mt|{{tooltip|2=Tsunami mag. scale|M<sub>t</sub>|dotted=no}}]]
|M<sub>t</sub>
}}{{Main other|[[Category:Articles using Mt magnitude scale]]}}
<!-- §3.2.8.5 mantle mag. -->
| m = {{#ifeq: {{{1|}}} | m
| {{#if: {{{link|}}}
|[[Seismic magnitude scales#Mm|{{tooltip|2=mantle mag. scale|M<sub>m</sub>|dotted=no}}]]
|M<sub>m</sub>
}}
{{Main other|[[Category:Articles using Mm magnitude scale]]}}
|
}}<!-- not "M" -->
<!-- §3.2.6.6 macroseismic mag. -->
| ms = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mms|{{tooltip|2=Macroseismic est. mag.|M<sub>ms</sub>|dotted=no}}]]
|M<sub>ms</sub>
}}{{Main other|[[Category:Articles using Mms magnitude scale]]}}
<!-- § 3.2.6.6 felt-area -->
| fa = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mfa|{{tooltip|2=Felt-area est. mag.|M<sub>fa</sub>|dotted=no}}]]
|M<sub>fa</sub>
}}{{Main other|[[Category:Articles using Mfa magnitude scale]]}}
<!-- Toppozada felt-area for Calif. -->
| la = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mla|{{tooltip|2=Felt-area est. mag.|M<sub><kbd>la</kbd></sub>|dotted=no}}]]
|M<sub><kbd>la</kbd></sub>
}}{{Main other|[[Category:Articles using Mla magnitude scale]]}}
<!-- - I/i: two different cases -->
| i = {{#ifeq: {{{1|}}} <!-- test if 'i' was really 'I' -->
<!-- "M<I>": Mag. from Intensity. Per Johnston 1996. -->
|I
| {{#if:{{{link|}}}
|[[Seismic magnitude scales#MI|{{tooltip|2=Mw mag. est. from intensity|M<sub><kbd>I</kbd></sub>|dotted=no}}]]
|M<sub><kbd>I</kbd></sub>
}}{{Main other|[[Category:Articles using MI magnitude scale]]}}
<!-- Else "M<i>", apparently a USGS synonym for Mwp -->
| {{#if:{{{link|}}}
|[[Seismic magnitude scales#Mi|{{tooltip|2=Mw mag. from P-waves|M<sub><kbd>i</kbd></sub>|dotted=no}}]]
|M<sub><kbd>i</kbd></sub>
}}{{Main other|[[Category:Articles using Mi magnitude scale]]}}
}}<!-- endif -->
<!-- test ------------------------------- -->
| x = {{#if:{{{link|}}}
|[[Seismic magnitude scales#Magnitude scales|M<sub>x</sub>]]
|M<sub>x</sub>
}}{{Main other|[[Category:Articles using M test magnitude scale]]}}
<!-- ------------------------------------ -->
|<!-- DEFAULT if no match found in inner switch. -->
{{red|[[[:Template:M]] used with invalid code '<b>{{{1|}}}</b>'. See documentation.]}}
{{Main other|[[Category:Articles with invalid magnitude scale identifiers]]}}
}}<!-- end-switch (inner)] --><!--
Optional superscript source for catalog:
-->{{#if:{{{src|}}}|<sup>({{{src}}})</sup>}}<!--
Optional value or relation (  is a "thin space" character):
-->{{#if:{{{2|}}}| {{replace|{{{2}}}| | }} }}
}}<!-- end-switch (outer)] -->
|<!-- if#1-false: no parameter -->
{{error|[[[:Template:M]] used without a valid code. See documentation.]}}
{{Main other|[[Category:Articles with missing magnitude scale identifiers]]}}
}}<!-- end-if#1] -->
|
||}}<!-- end replace --></includeonly><noinclude>
{{Documentation}}
</noinclude>
nehllgddme3csq8kbor20200t1m57kb
Template:Cite ANSS Comprehensive Earthquake Catalog
10
53082
309367
2026-09-23T23:58:09Z
Isma4l
41797
Bog cusub: <includeonly>{{#invoke:String|replace|source= <!-- cite_anss 2018-05-09 1* 2* 3* 4 place, year, url, title, access-date, mode [swapped title and url] * required. -- Based on 'cite encyclopedia', considering databases as 'edited collections'. 2019-09-08 Changed 'work=' to 'title=', as cite_encyclopedia now requires 'title='. --> <!-- Echo inputs --> {{#if: {{{debug|}}} | {{cyan|[ {{{1|*}}}/{{{2|*}}}/{{{3|*}}} <!-- Required --> {{#if: {{{4|}}} |/{{{4...
309367
wikitext
text/x-wiki
<includeonly>{{#invoke:String|replace|source=
<!-- cite_anss 2018-05-09
1* 2* 3* 4
place, year, url, title, access-date, mode [swapped title and url]
* required.
-- Based on 'cite encyclopedia', considering databases as 'edited collections'.
2019-09-08 Changed 'work=' to 'title=', as cite_encyclopedia now requires 'title='.
-->
<!-- Echo inputs -->
{{#if: {{{debug|}}} | {{cyan|[
{{{1|*}}}/{{{2|*}}}/{{{3|*}}} <!-- Required -->
{{#if: {{{4|}}} |/{{{4}}}}} <!-- Optional -->
{{#if: {{{title|}}} |/title{{=}}{{{title}}} }}
{{#if: {{{url|}}} |/url{{=}}{{{url}}} }}
{{#if: {{{access-date|{{{accessdate|}}}}}} |/access-date{{=}}{{{access-date|{{{accessdate|}}} }}} }}
{{#if: {{{mode|}}} |/mode{{=}}{{{mode}}} }}
/#CITEREFANSS:{{trim|{{{1|}}}}}{{trim|{{{2|}}}}}#
]  }}
}}
{{#if: {{{4|0}}} <!-- At least four parameters required. -->
| <!-- Found required parameters. -->
{{#invoke:Cite|encyclopedia
|ref=CITEREFANSS:{{trim|{{{1}}}}}{{trim|{{{2}}}}}
|chapter-url=
{{#ifeq: http | {{str left|{{{url|{{trim|{{{3}}} }} }}}|4}}
| {{{url|{{{3}}} }}} <!-- Presumably a complete eventpage url -->
| https://earthquake.usgs.gov/earthquakes/eventpage/{{{url|{{trim|{{{3}}} }} }}}
}} <!-- and presumably the combination is a legitimate eventpage url. -->
|chapter=
{{#if: {{{title|}}}
| {{{title}}}
| {{#if: {{{4|}}}
| {{{1}}} {{{2}}}: {{{4}}} <!-- Changed to match short-anss display -->
| {{{1}}} {{{2}}} <!-- default -->
}}
}}
|author=[[Advanced National Seismic System|ANSS]]
|title=Comprehensive Catalog
|publisher=U.S. Geological Survey
|mode={{{mode|}}}
|access-date={{{access-date|{{{accessdate|{{{5|}}} }}} }}}
}}
{{Main other|[[Category:Articles using Cite_anss]]}}
|<!-- if: some required parameter not found -->
{{red|[[[:Template:Cite_anss]] missing a required parameter.]}}
{{Main other|[[Category:Articles using Cite_anss with an error]]}}
}}<!-- end if -->
|
|}}<!-- end replace --></includeonly><noinclude>
{{Documentation}}
</noinclude>
0vcw5kkx8ttknxywk29mm8edcb4twvk
Template:Short-anss
10
53083
309368
2026-09-23T23:58:34Z
Isma4l
41797
Bog cusub: <includeonly>{{#invoke:String|replace|source= <!-- Template:short-anss 2018-04-21 -- Takes: <place>+, <year>+, <access-date>, <sub-title>, <sub-title> --> <!-- Echo inputs --> {{#if: {{{debug|}}} | {{cyan|[ {{{1|*}}}/{{{2|*}}} <!-- Required --> {{#if: {{{3|}}} |/{{{3}}} }} <!-- Optional --> /#CITEREFANSS:{{trim|{{{1|}}}}}{{trim|{{{2|}}}}}# ]  }} }} <!-- Two unnamed parameters required (<place> and <year>). --> {{#if: {{{2|}}} | #CITEREFANSS:{{trim|{...
309368
wikitext
text/x-wiki
<includeonly>{{#invoke:String|replace|source=
<!-- Template:short-anss 2018-04-21
-- Takes: <place>+, <year>+, <access-date>, <sub-title>, <sub-title>
-->
<!-- Echo inputs -->
{{#if: {{{debug|}}} | {{cyan|[
{{{1|*}}}/{{{2|*}}} <!-- Required -->
{{#if: {{{3|}}} |/{{{3}}} }} <!-- Optional -->
/#CITEREFANSS:{{trim|{{{1|}}}}}{{trim|{{{2|}}}}}#
]  }}
}}
<!-- Two unnamed parameters required (<place> and <year>). -->
{{#if: {{{2|}}}
|
[[#CITEREFANSS:{{trim|{{{1}}}}}{{trim|{{{2}}}}}|ANSS: {{{1}}} {{{2}}}]]<!-- to close-up the comma
-->{{#if: {{{sub-title|}}}
| {{#if: {{{sub-url|}}}
|, [https://earthquake.usgs.gov/earthquakes/eventpage/{{trim| {{{sub-url|}}}}} {{{sub-title|}}}]
| {{red|[[[:Template:Short-anss]]: '''sub-title''' needs '''sub-url'''.]}}
}}
| {{#if: {{{sub-url|}}}
| {{red|[[[:Template:Short-anss]]: '''sub-url''' needs '''sub-title'''.]}}
| <!-- ^A^B -->
}}
}}
{{#if: {{{access-date|{{{accessdate|{{{3|}}} }}} }}}
| (accessed {{trim|{{{access-date|{{{accessdate|{{{3}}} }}} }}} }})
}}.
| {{red|[[[:Template:short-anss]] requires <place> and <year>.]}}
}}<!-- end if -->
|
|}}<!-- end replace --></includeonly><noinclude>
{{Documentation}}
</noinclude>
94u7757evbspp70zq4v4e46wxovarfb
Template:Cite isc
10
53084
309369
2026-09-23T23:58:58Z
Isma4l
41797
Bog cusub: <includeonly>{{replace| <!-- cite_isc -- Takes a product code (req.), and optional event code or "mode". Possibly "title". -- Based on 'cite encyclopedia', considering databases as 'edited collections'. 2019-09-08 Changed 'work=' to 'title=', as cite_encyclopedia now requires 'title='. --> <!-- Echo inputs --> {{#if:{{{debug|}}} |{{cyan|[ {{{1|*}}} <!-- Required --> {{{2|}}} {{#if: {{{mode|}}} |/{{{mode}}} }} {{#if: {{{title|}}} |/{{{title}}} }} ]  }} }...
309369
wikitext
text/x-wiki
<includeonly>{{replace|
<!-- cite_isc
-- Takes a product code (req.), and optional event code or "mode". Possibly "title".
-- Based on 'cite encyclopedia', considering databases as 'edited collections'.
2019-09-08 Changed 'work=' to 'title=', as cite_encyclopedia now requires 'title='.
-->
<!-- Echo inputs -->
{{#if:{{{debug|}}} |{{cyan|[
{{{1|*}}} <!-- Required -->
{{{2|}}}
{{#if: {{{mode|}}} |/{{{mode}}} }}
{{#if: {{{title|}}} |/{{{title}}} }}
]  }}
}}
{{#if:{{{1|}}}
|<!-- Has a non-empty parameter: -->
{{#switch: {{uc: {{{1}}} }}
<!-- Tip -->
| ? = {{red|[[[:Template:cite isc]] codes are: OB, EB, EHB, GEM, generic.]}}
<!-- Note: "website=" puts url in a position contrary to that requested by the ISC. -->
<!-- On-line Bulletin -->
| OB =
{{cite encyclopedia
|ref=CITEREFISC-OB
|title=Bulletin of the ISC
|author=[[International Seismological Centre]]
|place=Thatcham, United Kingdom
|url=https://www.isc.ac.uk/iscbulletin/
|mode={{{mode|}}}
}}
{{Main other|[[Category:Articles using Cite isc]]}}
<!-- Event Bibliography -->
| EB | bib | bibl =
{{cite encyclopedia
|ref=CITEREFISC-EB
|title=Event Bibliography
|author=[[International Seismological Centre]]
|place=Thatcham, United Kingdom
|url=https://www.isc.ac.uk/event_bibliography
|mode={{{mode|}}}
}}
{{Main other|[[Category:Articles using Cite isc]]}}
<!-- Extended xxx -->
| EHB =
{{cite encyclopedia
|ref=CITEREFISC-EHB
|title=ISC-EHB Bulletin
|author=[[International Seismological Centre]]
|place=Thatcham, United Kingdom
|url=https://www.isc.ac.uk/isc-ehb/
|mode={{{mode|}}}
}}
{{Main other|[[Category:Articles using Cite isc]]}}
<!-- GEM catalog -->
| GEM =
{{cite encyclopedia
|ref=CITEREFISC-GEM
|title=ISC-GEM Global Instrumental Earthquake Catalogue
|author=[[International Seismological Centre]]
|place=Thatcham, United Kingdom
|url=https://www.isc.ac.uk/iscgem/
|mode={{{mode|}}}
}}
{{Main other|[[Category:Articles using Cite isc]]}}
<!-- Removed "Ground Truth" as not that useful. -->
<!-- Generic -->
<!-- Random items on web site, not a data product. Uses 'title' -->
| GENERIC =
{{cite encyclopedia
|ref=CITEREFISC
|title={{{title|ISC web site}}}
|author=[[International Seismological Centre]]
|place=Thatcham, United Kingdom
|url={{{url|https://www.isc.ac.uk/}}}
|mode={{{mode|}}}
}}
{{Main other|[[Category:Articles using Cite isc]]}}
| #default =
{{red|[[[:Template:Cite isc]] does not recognize '{{{1}}}'.]}}
{{Main other|[[Category:Articles using Cite isc with an error]]}}
}}<!-- end switch. --------- -->
<!-- ----------------------- -->
|<!-- if: No parameter: -->
{{red|[[[:Template:Cite isc]] requires a product code. Try "?".]}}
{{Main other|[[Category:Articles using Cite isc with an error]]}}
}}<!-- end if {1} -->
{{#if: {{{2|}}} <!-- optional event id -->
| {{#ifeq: {{{1|}}} | EB
| {{sp}}[Event{{nbsp}}[https://www.isc.ac.uk/cgi-bin/FormatBibprint.pl?evid={{trim|{{{2}}}}} {{{2}}}]].
| {{sp}}[Event{{nbsp}}[https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE {{{2}}}]].
}}
}}<!-- end if {2} -->
|
||}}<!-- end replace --></includeonly><noinclude>
{{Documentation}}
</noinclude>
462zz9vvqnmbld6polk2g18ni101nh7
Template:Short-isc
10
53085
309370
2026-09-23T23:59:18Z
Isma4l
41797
Bog cusub: <includeonly>{{replace| <!-- short-isc 2018-02-20 -- Takes: <product code*>, <event id*>, <access-date> -- * required. --> <!-- Echo inputs --> {{#if:{{{debug|}}} |{{cyan|[ {{{1|*}}}/{{{2|*}}} <!-- Required --> {{#if:{{{access-date|}}}| /{{{access-date}}} }} ] }} }} {{#if:{{{1|}}} |<!-- Has a non-empty product parameter: --> {{#switch: {{uc: {{{1}}} }} <!-- Tip --> | ? = {{red|[[[:Template:short-isc]] product codes are: OB, EB, EHB, GEM, generic.]}}...
309370
wikitext
text/x-wiki
<includeonly>{{replace|
<!-- short-isc 2018-02-20
-- Takes: <product code*>, <event id*>, <access-date>
-- * required.
-->
<!-- Echo inputs -->
{{#if:{{{debug|}}} |{{cyan|[
{{{1|*}}}/{{{2|*}}} <!-- Required -->
{{#if:{{{access-date|}}}| /{{{access-date}}} }}
] }}
}}
{{#if:{{{1|}}}
|<!-- Has a non-empty product parameter: -->
{{#switch: {{uc: {{{1}}} }}
<!-- Tip -->
| ? = {{red|[[[:Template:short-isc]] product codes are: OB, EB, EHB, GEM, generic.]}}
<!-- Event Bibliography -->
| EB | bib | = {{#ifexpr: {{{2|1}}} < 1000
| {{red|[[[:Template:short-isc]] 'EB' requires an event id.]}}
| [[#CITEREFISC-EB|ISC-EB]] Event [https://www.isc.ac.uk/cgi-bin/FormatBibprint.pl?evid={{trim|{{{2}}}}} {{{2}}}] [[https://www.isc.ac.uk/cgi-bin/FormatBibprint.pl?evid={{trim|{{{2}}}}} IRIS]]
{{#if: {{{access-date|}}} | (retrieved {{{access-date}}}) }}
}}
<!-- EHB and GEM are subsets of the OB; event pages are pooled. -->
<!-- On-line Bulletin -->
| OB = {{#ifexpr: {{{2|1}}} < 1000
| {{red|[[[:Template:short-isc]] 'OB' requires an event id.]}}
| [[#CITEREFISC-OB|ISC-OB]] Event [https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE {{{2}}}] [[https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE IRIS]]
{{#if: {{{access-date|}}} | (retrieved {{{access-date}}}) }}
}}.
<!-- Extended EHB -->
| EHB = {{#ifexpr: {{{2|1}}} < 1000
| {{red|[[[:Template:short-isc]] 'EHB' requires an event id.]}}
| [[#CITEREFISC-EHB|ISC-EHB]] Event [https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE {{{2}}}] [[https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE IRIS]]
{{#if: {{{access-date|}}} | (retrieved {{{access-date}}}) }}
}}.
<!-- GEM catalog -->
| GEM = {{#ifexpr: {{{2|1}}} < 1000
| {{red|[[[:Template:short-isc]] 'GEM' requires an event id.]}}
| [[#CITEREFISC-GEM|ISC-GEM]] Event [https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE {{{2}}}] [[https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE IRIS]]
{{#if: {{{access-date|}}} | (retrieved {{{access-date}}} ) }}
}}.
<!-- test -------------------------- -->
| TEST = {{#ifexpr: {{{2|1}}} < 1000
| {{red|[[[:Template:short-isc]] 'test' requires an event id.]}}
| [[#CITEREFISC-GEM|*Test*]] Event [https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE {{{2}}}] [[https://www.isc.ac.uk/cgi-bin/web-db-v4?event_id={{trim|{{{2}}}}}&out_format=IMS1.0&request=COMPREHENSIVE IRIS]]
{{#if: {{{access-date|}}} | (retrieved {{safesubst:#time:Y-m-d [H:i]}} ) }}
}}.
<!-- ------------------------------- -->
<!-- Removed IASPEI "Ground Truth" as not useful. -->
<!-- Generic -->
| GENERIC =
[[#CITEREFISC|ISC]] web site.
| #default =
{{red|[[[:Template:short-isc]] does not recognize parameter '{{{1}}}'.]}}
}}<!-- end switch. --------- -->
<!-- ----------------------- -->
|<!-- if: No product parameter {1} : -->
{{red|[[[:Template:short-isc]] requires a product code. Try "?".]}}
}}<!-- end if -->
|
||}}<!-- end replace --></includeonly><noinclude>
{{Documentation}}
</noinclude>
nkfjmvzwdatjip77obgmoyhxt7i7bkk