ویکیپدیا
mznwiki
https://mzn.wikipedia.org/wiki/%DA%AF%D8%AA_%D8%B5%D9%81%D8%AD%D9%87
MediaWiki 1.47.0-wmf.22
first-letter
مدیا
شا
گپ
کارور
کارور گپ
ویکیپدیا
ویکیپدیا گپ
پرونده
پرونده گپ
مدیاویکی
مدیاویکی گپ
شابلون
شابلون گپ
رانما
رانما گپ
رج
رج گپ
پورتال
پورتال گپ
پروژه
پروژه گپ
TimedText
TimedText talk
ماژول
ماژول گپ
Event
Event talk
سهم
0
35655
416483
324788
2026-10-05T07:06:42Z
Amherst99
2786
/* */
416483
wikitext
text/x-wiki
[[پرونده:Scared Child at Nighttime.jpg|بندانگشتی|ترس|جایگزین=]]
'''سهم''' ([[اینگلیسی زوون|اینگلیسی]] جه: ''fear'') اتا ناخوشایند احساس، ولی طبیعی هسته که ات عکسالعمل به واقعی یا غیرواقعی خطرات هسته.<ref>(Marks, 1987, p. 5)</ref>
== طبری دله ==
سهم بَوردن: کسی یا چیزی جه حساب بَوردن.
== بنبنویشت ==
{{بنبنویشت}}
[[رج:روانشناسی]]
0q9fg2mjg0by8gy78l0ke3ydq4k6266
مشین
0
36702
416463
327557
2026-10-04T14:17:39Z
~2026-53357-77
47148
416463
wikitext
text/x-wiki
{{صندخ/بنا}}
'''مَشین''' یا '''موشین''' (اروس زوون جه : '''''Машина''''') یا '''اتموویل''' (به فرانسوی: '''''Automobile''''') ،یا '''اَتول''' اتا چل دار وسیله هسه کا شه تجنیک توون ره شه متور جه گیرنه . امروج روج اینتا وسیله خلی آدمیزائون زیوش دله کارورد داینه و ویشتر دی ترانسپورت سه کار شونه . دونیا گت ترین صنعت مشینساجی هسه مثال وسه [[ولکسواگن|ولکسواگون]] ۲۰۱۹ دله هر ثونیه ۹۲۰۲.۸۸ دِلار آمدی داشته . امروج روج گت ترین مشینساجی صنعت دونیا دله ، [[چین]] مشینساجی هسه.<ref>{{Cite web|url=https://cleantechnica.com/2019/08/09/ev-price-parity-coming-soon-claims-vw-executive/|title=EV Price Parity Coming Soon, Claims VW Executive|date=2019-08-09|language=en-US}}</ref><ref>{{Cite web|url=https://www.britishgas.co.uk/the-source/our-world-of-energy/energys-grand-journey/Electric-v-Petrol|title=Electric V Petrol - British Gas}}</ref>
== پیدر پشوئون: ==
* اثرات استفاده از خودرو در جوامع انسانی
* ایمنی خودرو
* قطعات خودرو
* فهرست وسایل نقلیه موتوری
* [[فرمول یک]]
* آدمک آزمایش تصادف
* مکانیک خودرو
* جلوبندی
* مسافرت جادهای
* کیفیت سواری
== ممبعئون: ==
{{بنبنویشت|۲}}
[[رج:صنعت]]
1ac4l8ligp1yy8rmhiq7inuvcqglm2x
416479
416463
2026-10-04T17:12:04Z
محک
1023
نسخهٔ [[Special:Diff/416463|416463]] از [[Special:Contributions/~2026-53357-77|~2026-53357-77]] ([[User talk:~2026-53357-77|بحث]]) خنثی شد
416479
wikitext
text/x-wiki
[[پرونده:Toyota Corolla E180 sedan 2 China 2016-04-01.jpg|بندانگشتی|مشین]]
'''مَشین''' یا '''موشین''' (اروس زوون جه : '''''Машина''''') یا '''اتموویل''' (به فرانسوی: '''''Automobile''''') ،یا '''اَتول''' اتا چل دار وسیله هسه کا شه تجنیک توون ره شه متور جه گیرنه . امروج روج اینتا وسیله خلی آدمیزائون زیوش دله کارورد داینه و ویشتر دی ترانسپورت سه کار شونه . دونیا گت ترین صنعت مشینساجی هسه مثال وسه [[ولکسواگن|ولکسواگون]] ۲۰۱۹ دله هر ثونیه ۹۲۰۲.۸۸ دِلار آمدی داشته . امروج روج گت ترین مشینساجی صنعت دونیا دله ، [[چین]] مشینساجی هسه.<ref>{{Cite web|url=https://cleantechnica.com/2019/08/09/ev-price-parity-coming-soon-claims-vw-executive/|title=EV Price Parity Coming Soon, Claims VW Executive|date=2019-08-09|language=en-US}}</ref><ref>{{Cite web|url=https://www.britishgas.co.uk/the-source/our-world-of-energy/energys-grand-journey/Electric-v-Petrol|title=Electric V Petrol - British Gas}}</ref>
== پیدر پشوئون: ==
* اثرات استفاده از خودرو در جوامع انسانی
* ایمنی خودرو
* قطعات خودرو
* فهرست وسایل نقلیه موتوری
* [[فرمول یک]]
* آدمک آزمایش تصادف
* مکانیک خودرو
* جلوبندی
* مسافرت جادهای
* کیفیت سواری
== ممبعئون: ==
{{بنبنویشت|۲}}
[[رج:صنعت]]
mgetjy7c1g28klcbh4aqag1mpkc9mpx
پییر بورن
0
173537
416481
414287
2026-10-05T05:06:40Z
Osaym
47156
عکْس دگنییه بیّه
416481
wikitext
text/x-wiki
{{صندخ/شخص
| نام = پییر بورن
| تصویر = Pi'erre Bourne performing live in Boston (August 2026).jpg
| اندازه تصویر =
| توضیحات = پییر بورن در حال اجرا در بوستون (آگوست ۲۰۲۶)
}}
'''پییر بورن ''' {{Lang-en|Pi'erre Bourne}} اتا قرن بیست و یک [[خونشکر|خونشکر]] مردی هسته که [[آمریکای متحده ایالات]] کشور شٮنه. وه اتا [[سیو دیم]] [[رپر]] هسته.
== منابع ==
{{پهنویس}}
*{{ویکی منبع|عنوان = Pi'erre Bourne |لینک= https://en.wikipedia.org/wiki/Pi'erre_Bourne |زوون = انگلیسی | بازیابی = ۱ ژوئن ۲۰۲۴}}
== بریم بگردستن ==
{{Social links}}
{{آمریکا موسیقی-پچیک}}
{{Authority control}}
[[رج:آمریکای قرن ۲۱ سیو مردی رپرون]]
mzecif52mhdyr9ohq8j4usipjqvvkpk
زردکیجا (جنس)
0
184401
416464
2026-10-04T16:59:39Z
محک
1023
اتا نو ولگ بساته که ونه دله «{{Automatic taxobox |image=2007-07-14 Cantharellus cibarius.jpg |image_caption=''[[زرد کیجا]]'' |taxon=Cantharellus |authority=[[میشل آدانسون|Adans.]] ex [[الیاس مگنوس فرایز|Fr.]] |type_species=''[[قارچ قیفی]]'' |type_species_authority=Fr. }} {{mycomorphbox |name= Cantharellus |whichGills=decurrent |capShape=infundibuliform |hymeniumType=ridges |stipeCharacter=bare |ecologicalType=mycorrhiz...» دره
416464
wikitext
text/x-wiki
{{Automatic taxobox
|image=2007-07-14 Cantharellus cibarius.jpg
|image_caption=''[[زرد کیجا]]''
|taxon=Cantharellus
|authority=[[میشل آدانسون|Adans.]] ex [[الیاس مگنوس فرایز|Fr.]]
|type_species=''[[قارچ قیفی]]''
|type_species_authority=Fr.
}}
{{mycomorphbox
|name= Cantharellus
|whichGills=decurrent
|capShape=infundibuliform
|hymeniumType=ridges
|stipeCharacter=bare
|ecologicalType=mycorrhizal
|sporePrintColor=yellow
|howEdible=choice
|howEdible2=edible}}
'''''زرد کیجائون''''' {{علمی نوم|Cantharellus}} اتا [[سرده]] (جنس) [[گوشک]] هستنه که وه ره خارجیشون '''شانترل''' ({{IPAc-en|ˌ|ʃ|æ|n|t|ə|ˈ|r|ɛ|l}}) گنّه، [[زردکیجا]] نوم ره اتجور بخردنی و خاصِ گونه سر هم إلنه ولی اتا خانواده و جنس هم هسته. وشون [[مایکوریزا]]یی قارچ هستنه، یعنی گیاهون همراهی [[همزیستی]] رابطه سازنّه. زردکیجائون ممکن هسته چنتا دیگه گونه ره مونِن، که بعضیشون [[سمی گوشک|سمی]] هستنه. دنیا دله زرد کیجائون ره إشناسنّه و وه اتا بخردنیترین گوشکها (قارچها) جه هسته.
{{cladogram|align=right|title=
|clade=
{{clade
|style=font-size:75%;line-height:75%
|label1=
|1={{clade
|1={{clade
|1={{clade
|1=''[[Cantharellus appalachiensis|C. appalachiensis]]''
|2=''[[Cantharellus minor|C. minor]]''
}}
|2=''[[Cantharellus cinnabarinus|C. cinnabarinus]]''
}}
|2={{clade
|1={{clade
|1={{clade
|1={{clade
|1={{clade
|1=''[[Cantharellus subalbidus|C. subalbidus]]''
|2=''[[Cantharellus cibarius|C. cibarius]]''
}}
|2=''[[Cantharellus cascadensis|C. cascadensis]]''
}}
|2=''[[Cantharellus formosus|C. formosus]]''
}}
|2=''[[Cantharellus persicinus|C. persicinus]]''
}}
|2=''[[Cantharellus lateritius|C. lateritius]]''
}}
}}
}}
|caption=بعضی ''زردکیجائون'' گونهئونِ [[فیلوژنتیک|فیلوژنتیکی]] روابط، [[ریبوزومی RNA]] توالیون سر بنا بئی.<ref name=mon06/>
}}
== شکل ==
این سردهیِ گوشکون، معمولاً دهیل یا کاسه شکل هستنه. وشون رنگ ویشته زرد هسته و وشون [[لاملا|تیغهئون]] بعضی گدر صورتیرنگ وانه.<ref>{{cite web | vauthors = Kuo M |date=2015 |title=Chanterelles and Trumpets: Cantharellus and Craterellus |url= https://www.mushroomexpert.com/cantharellaceae.html |website=MushroomExpert.com |access-date=2023-10-30}}</ref>
=== ونه واری گونهئون ===
[[File:2007-07-14 Cantharellus cibarius Detail.jpg|thumb|right|اتی گوشک دره که سمّی هسته و زردکیجا ره مونّه و همینسه وشون تشخیص ونه دقیق بوئه. (عکس دله جعلی زردیکیجا هسته)]]
جعلی زردکیجا (''[[Hygrophoropsis aurantiaca]]'') نازکتر هسته و ویشته نارنجی تیغه و تیرهتر کلاهک دارنه. وه خله توم سمّی هسته ولی ونه سم تونده کم-زیاد بوو.<ref>{{cite book |title=North American Mushrooms: A Field Guide to Edible and Inedible Fungi |vauthors=Miller HR, ((Miller OK Jr)) |author-link2=Orson K. Miller Jr. |publisher=[[FalconGuides]] |year=2006 |isbn=978-0-7627-3109-1 |location=Guilford, Connecticut |page=332}}</ref><ref>{{cite book |author=Jordan M. |title=The Encyclopedia of Fungi of Britain and Europe |publisher=Frances Lincoln |year=2004 |isbn=978-0-7112-2378-3 |location=London, United Kingdom |page=334}}</ref>
زردکیجایِ واری گوشک چنتا دیگه هم درنه؛ جک-او-لانترن گوشک (''[[Omphalotus olearius]]'') و ونه خاخر گونه (''[[Omphalotus olivascens]]'') خله سمی هستنه، ولی آدم ره نکوشنّه. وشون واقعی تیغه دارنه که نازکتر هستنه، مشخص تاج دارنه و معمولاً ونه لو جه نرسنه. علایده بر این، جک-او-لانترن [[زیستتابی|زیستتاب]] هسته و چو سر نوج زنده درحالیکه ''زردکیجا'' گونهئون بنه سر عمل إنّه.
== ردهبندی ==
''زردکیجائون'' سرده خله گت هسته و وشون [[تاکسونی]] خله دپیت-دپیته هسته و خله تاریخچه دارنه. ''Index Fungorum'' این سرده وسّه ۵۰۰ تا جه ویشته علمی نوم لیست کانده، هرچند اسا معتبر نومونِ شماره ۱۰۰ تا جه هم کمته هسته.<ref name="pilz03" /> بعضیشون تکراری بینه و خله گونهئون دیگه هم سردهئون دیگه دله منتقل بَینه، ''[[Afrocantharellus]]''،<ref name="Tibuhwa 2012" /> ''[[Arrhenia]]''، ''Craterellus''، ''Gomphus''، ''[[Hygrophoropsis]]'' و ''[[Pseudocraterellus]]'' واری. [[مولکولی فیلوژنتیک]] تحلیلون، زردکیجائونِ جمعیتونِ میونِ روابط خَوِری تازه اطلاعات دنه.
این سرده، هشت جیر-چله میون رَسِد بیّه: ''[[Cantharellus subg. Afrocantharellus|Afrocantharellus]]'' Eyssart. & Buyck، [[Cantharellus subg. Cantharellus|''Cantharellus'']] Adans. ex Fr.، [[Cantharellus subg. Cinnabarinus|''Cinnabarinus'']] Buyck & V. Hofst.، [[Cantharellus subg. Magni|''Magni'']] T. Cao & H.S. Yuan، [[Cantharellus subg. Parvocantharellus|''Parvocantharellus'']] Eyssart. & Buyck، [[Cantharellus subg. Pseudocantharellus|''Pseudocantharellus'']] Eyssart. & Buyck و [[Cantharellus subg. Rubrini|''Rubrini'']] Eyssart. & Buyck.<ref>{{cite journal | vauthors = Zhang YZ, Qin HZ, Chen ZH, Lin WF, Liang ZQ, Jiang S, Zeng NK | title = Updated taxonomy of Chinese ''Cantharellus'' subgenera ''Afrocantharellus'' and ''Magni'' (Hydnaceae, Cantharellales): Three new taxa and amended descriptions of one previous species | journal = Frontiers in Microbiology | volume = 14 | article-number = 1109831 | date = 2023-03-17 | pmid = 37007503 | pmc = 10064096 | doi = 10.3389/fmicb.2023.1109831 | doi-access = free }}</ref>
{{clade
|1={{clade|1={{clade
|1={{clade
|1={{clade
|1={{clade
|1=''[[Cantharellus subg. Rubrini|Rubrini]]'' Eyssart. & Buyck.
|2=''[[Cantharellus subg. Cantharellus|Cantharellus]]'' Adans. ex Fr.
}}
|2=''[[Cantharellus subg. Pseudocantharellus|Pseudocantharellus]]'' Eyssart. & Buyck
}}
|label2=
|2= {{clade
|1=''[[Cantharellus subg. Parvocantharellus|Parvocantharellus]]'' Eyssart. & Buyck
|2=''[[Cantharellus subg. Cinnabarinus|Cinnabarinus]]'' Buyck & V. Hofst.
}}
}}}}
|2={{clade
|1=''[[Cantharellus subg. Afrocantharellus|Afrocantharellus]]'' Eyssart. & Buyck
|2=''[[Cantharellus subg. Magni|Magni]]'' T. Cao & H.S. Yuan
}}
}}|style1=font-size:90%|label1=Cantharellus }}
=== انتخاببئی گونهئون ===
{{Columns-list|colwidth=35em|
''[[Cantharellus afrocibarius|C. afrocibarius]]'' – آفریقا<ref name="Buyck 2013"/>
''[[Cantharellus altipes|C. altipes]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus amazonensis|C. amazonensis]]'' – جنوبی آمریکا
''[[Cantharellus amethysteus|C. amethysteus]]'' – اروپا
''[[Cantharellus appalachiensis|C. appalachiensis]]'' – شرقی شمالی آمریکا، چین<ref name=shao11/>
''[[Cantharellus applanatus|C. applanatus]]'' – هند، چین، جاپون، کره
''[[Cantharellus aurantioconspicuus|C. aurantioconspicuus]]'' – برزیل<ref name="Wartchow 2012"/>
''[[Cantharellus californicus|C. californicus]]'' – بلوطِ شانترل
''[[Cantharellus cascadensis|C. cascadensis]]'' – شمالی آمریکاِ پاسیفیک شمالغرب
''[[Cantharellus cibarioides|C. cibarioides]]'' – آفریقا<ref name="Buyck 2014"/>
''[[Cantharellus cibarius|C. cibarius]]'' – طلایی زردکیجا، اروپا، شمالشرقی چین، جاپون
''[[Cantharellus chicagoensis|C. chicagoensis]]'' - [[شیکاگو، آمریکا]]
''[[Cantharellus cinereus|C. cinereus]]'' – خاکستری زردکیجا
''[[Cantharellus cinnabarinus|C. cinnabarinus]]''- سرخ زردکیجا
''[[Cantharellus coccolobae|C. coccolobae]]'' – کارائیب، باهاما و فلوریدا
''[[Cantharellus concinnus|C. concinnus]]'' – استرالیایی زردکیجا
''[[Cantharellus congolensis|C. congolensis]]'' - آفریقا<ref name="Tibuhwa 2012"/>
''[[Cantharellus eccentricus|C. eccentricus]]'' – نو کالدونیا<ref name="Buyck 2014"/>
''[[Cantharellus densifolius|C. densifolius]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus elegans|C. elegans]]''
''[[Cantharellus flavus|C. flavus]]'' - مرکزیغربی و جنوبی آمریکا<ref name=foltz2012/>
''[[Cantharellus floridulus|C. floridulus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus formosus|C. formosus]]'' – [[کالیفرنیا]] و [[شمالی آمریکا]]ِ [[پاسیفیک شمالغرب]]
''[[Cantharellus friesii|C. friesii]]'' – نارنجی زردکیجا
''[[Cantharellus garnierii|C. garnierii]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus gracilis|C. gracilis]]'' – آفریقا
''[[Cantharellus guyanensis|C. guyanensis]]'' – جنوبی آمریکا
''[[Cantharellus humidicolus|C. humidicolus]]'' – آفریقا
''[[Cantharellus incrassatus|C. incrassatus]]'' – مالزی<ref name="Buyck 2014"/>
''[[Cantharellus isabellinus|C. isabellinus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus lateritius|C. lateritius]]'' – صافِ زردکیجا
''[[Cantharellus lewisii|C. lewisii]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus lilacinus|C. lilacinus]]'' – استرالیا
''[[Cantharellus luteopunctatus|C. luteopunctatus]]'' – آفریقا
''[[Cantharellus minor|C. minor]]''
''[[Cantharellus miomboensis|C. miomboensis]]'' – آفریقا
''[[Cantharellus neocaledonicus|C. neocaledonicus]]'' – [[نو کالدونیا]]<ref name="Buyck 2014"/>
''[[Cantharellus pallens|C. pallens]]'' - یخبئی زردکیجا
''[[Cantharellus persicinus|C. persicinus]]'' – هلو زردکیجا
''[[Cantharellus phasmatis|C. phasmatis]]'' - روحِ زردکیجا، مرکزیغربی آمریکا<ref name=foltz2012/>
''[[Cantharellus pleurotoides|C. pleurotoides]]'' – گویان<ref name=Henkel2006/>
''[[Cantharellus pseudocibarius|C. pseudocibarius]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus pseudoformosus|C. pseudoformosus]]'' – [[هند]] دله [[Cedrus deodara|دیودار سِدر]] همراهی پیدا وانه<ref name=kumari11/>
''[[Cantharellus protectus|C. protectus]]'' – جنوبی آمریکا
''[[Cantharellus quercophilus|C. quercophilus]]'' – جنوبشرقی آمریکا<ref name=buyck10/>
''[[Cantharellus rhodophyllus|C. rhodophyllus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus roseocanus|C. roseocanus]]''
''[[Cantharellus ruber|C. ruber]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus spectaculus|C. spectaculus]]'' - تماشایی زردکیجا، مرکزیغربی آمریکا<ref name=foltz2012/>
''[[Cantharellus subalbidus|C. subalbidus]]'' – غربی شمالی آمریکا
''[[Cantharellus sublaevis|C. sublaevis]]'' – آفریقا<ref name="Buyck 2014"/>
''[[Cantharellus subpruinosus|C. subpruinosus]]'' – اروپا
''[[Cantharellus tabernensis|C. tabernensis]]'' – جنوبشرقی آمریکا<ref name=feibelman/> و مکزیک<ref name="MontoyaEtAl2021"/>
''[[Cantharellus tanzanicus|C. tanzanicus]]'' – آفریقا
''[[Cantharellus tenuithrix|C. tenuithrix]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus texensis|C. texensis]]'' – جنوبشرقی آمریکا<ref name=buyck11/>
''[[Cantharellus tomentosus|C. tomentosus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus vaginatus|C. vaginatus]]'' – چین<ref name=shao11/>
''[[Cantharellus zangii|C. zangii]]'' – چین<ref name=Tian2012/>
}}
== تَنِکی ==
''زردکیجائون'' دنیایِ سرتاسر پیدا وانّه؛ [[آفریقا]]، [[اروپا]]، [[آسیا]]، [[شمالی آمریکا]]، [[جنوبی آمریکا]] و [[استرالیا]] واری.
== کاربردون ==
زردکیجائون اکثراً [[آنتیاکسیدان]] [[کاروتنوئید]] دارنه و وشون [[ویتامین D]] خله هسته.<ref name="pilz03" />
وشونِ مایکوریزایی طبیعت، این گونهیِ دکاشتن و زراعت ره خله سخت کانده.
=== آشپجی ===
[[File:Cantharellus cinnabarinus 93293.jpg|thumb|''C. cinnabarinus'']]
زردکیجائون ره دنیایِ مختلف جائون، مختلف روش پجنّه؛ ویشته وه ره [[مرغنه]]، [[کاری]]، [[کرگ]]، [[خی|خی گوشت]]، [[ماهی]]، [[گو گوشت]] و [[گوگزا گوشت]] پَلی خار دریارنه.
[[اروپایی آشپزی]] دله، زردکیجا ره اکثراً [[اشکاری]] (گوزن) گوشت همراهی پجنّه. تونّه [[پیتزا]] سر هم وه ره استفاده هاکنن. [[خارشبئی]]، [[ترشیبئی]]، [[بوریشته]] بوو یا دولمه واری وه ره اتچی دله دشنیین.
چون این گوشِک خله [[ئو]] ره حفظ کنده، وشون ره «خشک بَوریشتن» روش جه آماده کانّه: وه ره پاک هاکردن په، بُرش زنّه و اتا سرپوشدار لاقلی (تهو) دله، حرارت جه بیروغن یا کره یلنه کببوئه تا شه ئوِ ره از دست هاده. این گوشکِ آماده هاکردنِ سنتی روش، بَوریشتن و [[مرغنه|هئیبزه مرغنه]] ور درست هاکردن هسته.
== منابع ==
{{Reflist|refs=
<ref name="Buyck 2014">{{cite journal |author=Buyck B. |title=Exploring the diversity of "smooth chanterelles" (''Cantharellus'', Cantharellales) |journal=Cryptogamie, Mycologie |year=2014 |volume=35 |issue=1 |pages=23–40 |doi=10.7872/crym.v35.iss1.2014.23|s2cid=85649542 }}</ref>
<ref name=mon06>{{cite journal | vauthors = Moncalvo JM, Nilsson RH, Koster B, Dunham SM, Bernauer T, Matheny PB, Porter TM, Margaritescu S, Weiss M, Garnica S, Danell E, Langer G, Langer E, Larsson E, Larsson KH, Vilgalys R | display-authors = 6 | title = The cantharelloid clade: dealing with incongruent gene trees and phylogenetic reconstruction methods | journal = Mycologia | volume = 98 | issue = 6 | pages = 937–948 | year = 2006 | pmid = 17486970 | doi = 10.1080/15572536.2006.11832623 }}</ref>
<ref name=phil65>{{cite book | vauthors = Philpot R |title=Viennese Cookery|year=1965 |pages=139–140|publisher=Hodder & Staughton |location=London }}</ref>
<ref name=arora79>{{cite book| vauthors = Arora D |author-link=David Arora|title=Mushrooms Demystified|publisher=[[Ten Speed Press]]|year=1979|isbn=0-89815-009-4 }}</ref>
<ref name=metz92>{{cite book| vauthors = Metzler S |title=Texas Mushrooms: A Field Guide|publisher=[[University of Texas Press]]|edition = 1st |year=1992|isbn=0-292-75125-7 }}</ref>
<ref name=pilz03>{{cite book |title=Ecology, and management of commercially harvested chanterelle mushrooms. Gen. Tech. Rep. PNW-GTR-576 |vauthors=Pilz D, Norvell L, Danell E, Molina R |date=March 2003 |publisher=Department of Agriculture, Forest Service, Pacific Northwest Research Station|location=Portland, Oregon |url=http://www.fs.fed.us/pnw/pubs/pnw_gtr576.pdf|access-date=2011-03-25}}</ref>
<ref name=buyck11>{{cite journal | vauthors = Buyck B, Cruaud C, Couloux A, Hofstetter V | title = Cantharellus texensis sp. nov. from Texas, a southern lookalike of C. cinnabarinus revealed by tef-1 sequence data | journal = Mycologia | volume = 103 | issue = 5 | pages = 1037–1046 | date = Sep–Oct 2011 | pmid = 21558500 | doi = 10.3852/10-261 | s2cid = 29384238 }}</ref>
<ref name=buyck10>{{cite journal| vauthors = Buyck B, Lewis DP, Eyssartier G, Hofstetter V |title=''Cantharellus quercophilus'' sp. nov. and its comparison to other small, yellow or brown American chanterelles|journal=Cryptogamie, Mycologie|date= March 2010 |volume=31|issue=1|pages=17–33}}</ref>
<ref name="Buyck 2013">{{cite journal |vauthors=Buyck B, Kauff F, Cruaud C, Hofstetter V |title=Molecular evidence for novel ''Cantharellus'' (Cantharellales, Basidiomycota) from tropical African miombo woodland and a key to all tropical African chanterelles |journal=Fungal Diversity |year=2013 |volume=58 |issue=1 |pages=281–98 |doi=10.1007/s13225-012-0215-4|s2cid=14535505 }}</ref>
<ref name=Henkel2006>{{cite journal | vauthors = Henkel TW, Aime MC, Mehl H, Miller SL | title = Cantharellus pleurotoides, a new and unusual basidiomycete from Guyana | journal = Mycological Research | volume = 110 | issue = Pt 12 | pages = 1409–1412 | date = December 2006 | pmid = 17123813 | doi = 10.1016/j.mycres.2006.09.010 | bibcode = 2006MycR..110.1409H }}</ref>
<ref name=kumari11>{{cite journal|title=''Cantharellus pseudoformosus'', a new species associated with ''Cedrus deodara'' from India| vauthors = Kumari D, Reddy MS, Upadhyay RC |doi=10.1007/s10267-010-0080-5| date = March 2011 |journal=Mycoscience |volume=52 |issue=2 |pages=147–151 |s2cid=86722305 |doi-access=free }}</ref>
<ref name=buyckFD>{{cite journal|title=The contribution of ''tef-1'' sequences to species delimitation in the ''Cantharellus cibarius'' complex in the southeastern USA| vauthors = Buyck B, Hofstetter V |journal=Fungal Diversity|volume=49|issue=1|pages=35–46|doi=10.1007/s13225-011-0095-z| date = July 2011 | bibcode = 2011FuDiv..49...35B |s2cid=23603456}}</ref>
<ref name=shao11>{{cite journal|title=''Cantharellus'' in southwestern China: a new species and a new record| vauthors = Shao SC, Tian XF, Liu PG |journal=Mycotaxon|volume=116|date=April–June 2011|pages=437–446|doi=10.5248/116.437|doi-access=free}}</ref>
<ref name=feibelman>{{cite journal|title=''Cantharellus Tabernensis'': A New Species from the Southeastern United States| vauthors = Feibelman TP, Bennett JW, Cibula WG |journal=Mycologia|volume=88|issue=2|date=Mar–Apr 1996|pages=295–301|jstor=3760934 |doi=10.2307/3760934 }}</ref>
<ref name=foltz2012>{{cite journal | vauthors = Foltz MJ, Perez KE, Volk TJ | title = Molecular phylogeny and morphology reveal three new species of Cantharellus within 20 m of one another in western Wisconsin, USA | journal = Mycologia | volume = 105 | issue = 2 | pages = 447–461 | date = October 2012 | pmid = 23080022 | doi = 10.3852/12-181 | s2cid = 2218602 | url = https://zenodo.org/record/894427 }}</ref>
<ref name="MontoyaEtAl2021">{{cite journal | vauthors = Montoya L, Herrera M, Bandala VM, Ramos A | title = Two new species and a new record of yellow ''Cantharellus'' from tropical ''Quercus'' forests in eastern Mexico with the proposal of a new name for the replacement of ''Craterellus confluens'' | journal = MycoKeys | issue = 80 | pages = 91–114 | date = 2021-05-20 | pmid = 34084073 | pmc = 8159916 | doi = 10.3897/mycokeys.80.61443 | publisher = Pensoft Publishers | doi-access = free }}</ref>
<ref name=Tian2012>{{cite journal |vauthors=Tian XF, Buyck B, Shao SC, Liu PG, Fang Y |title=''Cantharellus zangii'', a new subalpine basidiomycete from southwestern China |journal=Mycotaxon |year=2012 |volume=120 |pages=99–103 |doi=10.5248/120.99|doi-access=free }}</ref>
<ref name="Tibuhwa 2012">{{cite journal | vauthors = Tibuhwa DD, Saviæ S, Tibell L, Kivaisi AK | title = Afrocantharellus gen. stat. nov. is part of a rich diversity of African Cantharellaceae | journal = IMA Fungus | volume = 3 | issue = 1 | pages = 25–38 | date = June 2012 | pmid = 23155498 | pmc = 3399100 | doi = 10.5598/imafungus.2012.03.01.04 }}</ref>
<ref name="Wartchow 2012">{{cite journal |vauthors=Wartchow F, Buyck B, Maia LC |title=''Cantharellus aurantioconspicuus'' (Cantharellales), a new species from Pernambuco, Brazil |journal=Nova Hedwigia |year=2012 |volume=94 |issue=1–2 |pages=129–37 |doi=10.1127/0029-5035/2012/0094-0129 |bibcode=2012NovaH..94..129W }}</ref>
}}
== بریم بگردستن==
{{Commons category|Cantharellus}}
{{cite web | vauthors = Freedman L | publisher = The Mycological Society of San Francisco | work = A MykoWeb | url = http://www.mykoweb.com/cookbook/chanterelle.html | title = Chanterelle Recipes | access-date = 28 July 2003 }}
{{cite web | work = The Montara Mountain Native Plant Pages | vauthors = Kozak C | date = 13 May 1998 | url = http://plants.montara.com/mushrooms/MListPages/MFamPages/cantharella.html | title = Info on family Cantharellaceae | access-date = 28 July 2003 }}
{{cite web | title = Cantharellus | url = https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Undef&id=36065&lvl=3&keep=1&srchmode=1&unlock | work = NBCI taxonomy Browser | publisher = U.S. National Library of Medicine | access-date = 28 July 2003 }}
{{Taxonbar|from=Q922335}}
{{Authority control}}
[[رج:گوشک]]
r7dedxb5rkchmik7neu71cy39sruhbt
416477
416464
2026-10-04T17:08:16Z
محک
1023
416477
wikitext
text/x-wiki
{{Automatic taxobox
|image=2007-07-14 Cantharellus cibarius.jpg
|image_caption=''[[زرد کیجا]]'' که مازرون دره.
|taxon=Cantharellus
|authority=[[میشل آدانسون|Adans.]] ex [[الیاس مگنوس فرایز|Fr.]]
|type_species=''[[زردکیجا]]''
|type_species_authority=Fr.
}}
{{mycomorphbox
|name= زردکیجا
|whichGills=decurrent
|capShape=infundibuliform
|hymeniumType=ridges
|stipeCharacter=bare
|ecologicalType=mycorrhizal
|sporePrintColor=زرد
|howEdible=choice
|howEdible2=edible}}
'''''زرد کیجائون''''' {{علمی نوم|Cantharellus}} اتا [[سرده]] (جنس) [[گوشک]] هستنه که وه ره خارجیشون '''شانترل''' ({{IPAc-en|ˌ|ʃ|æ|n|t|ə|ˈ|r|ɛ|l}}) گنّه، [[زردکیجا]] نوم ره اتجور بخردنی و خاصِ گونه سر هم إلنه ولی اتا خانواده و جنس هم هسته. وشون [[مایکوریزا]]یی قارچ هستنه، یعنی گیاهون همراهی [[همزیستی]] رابطه سازنّه. زردکیجائون ممکن هسته چنتا دیگه گونه ره مونِن، که بعضیشون [[سمی گوشک|سمی]] هستنه. دنیا دله زرد کیجائون ره إشناسنّه و وه اتا بخردنیترین گوشکها (قارچها) جه هسته.
== شکل ==
این سردهیِ گوشکون، معمولاً دهیل یا کاسه شکل هستنه. وشون رنگ ویشته زرد هسته و وشون [[لاملا|تیغهئون]] بعضی گدر صورتیرنگ وانه.<ref>{{cite web | vauthors = Kuo M |date=2015 |title=Chanterelles and Trumpets: Cantharellus and Craterellus |url= https://www.mushroomexpert.com/cantharellaceae.html |website=MushroomExpert.com |access-date=2023-10-30}}</ref>
=== ونه واری گونهئون ===
[[File:2007-07-14 Cantharellus cibarius Detail.jpg|thumb|right|اتی گوشک دره که سمّی هسته و زردکیجا ره مونّه و همینسه وشون تشخیص ونه دقیق بوئه. (عکس دله جعلی زردیکیجا هسته)]]
جعلی زردکیجا (''[[Hygrophoropsis aurantiaca]]'') نازکتر هسته و ویشته نارنجی تیغه و تیرهتر کلاهک دارنه. وه خله توم سمّی هسته ولی ونه سم تونده کم-زیاد بوو.<ref>{{cite book |title=North American Mushrooms: A Field Guide to Edible and Inedible Fungi |vauthors=Miller HR, ((Miller OK Jr)) |author-link2=Orson K. Miller Jr. |publisher=[[FalconGuides]] |year=2006 |isbn=978-0-7627-3109-1 |location=Guilford, Connecticut |page=332}}</ref><ref>{{cite book |author=Jordan M. |title=The Encyclopedia of Fungi of Britain and Europe |publisher=Frances Lincoln |year=2004 |isbn=978-0-7112-2378-3 |location=London, United Kingdom |page=334}}</ref>
زردکیجایِ واری گوشک چنتا دیگه هم درنه؛ جک-او-لانترن گوشک (''[[Omphalotus olearius]]'') و ونه خاخر گونه (''[[Omphalotus olivascens]]'') خله سمی هستنه، ولی آدم ره نکوشنّه. وشون واقعی تیغه دارنه که نازکتر هستنه، مشخص تاج دارنه و معمولاً ونه لو جه نرسنه. علایده بر این، جک-او-لانترن [[زیستتابی|زیستتاب]] هسته و چو سر نوج زنده درحالیکه ''زردکیجا'' گونهئون بنه سر عمل إنّه.
== ردهبندی ==
''زردکیجائون'' سرده خله گت هسته و وشون [[تاکسونی]] خله دپیت-دپیته هسته و خله تاریخچه دارنه. ''Index Fungorum'' این سرده وسّه ۵۰۰ تا جه ویشته علمی نوم لیست کانده، هرچند اسا معتبر نومونِ شماره ۱۰۰ تا جه هم کمته هسته.<ref name="pilz03" /> بعضیشون تکراری بینه و خله گونهئون دیگه هم سردهئون دیگه دله منتقل بَینه، ''[[Afrocantharellus]]''،<ref name="Tibuhwa 2012" /> ''[[Arrhenia]]''، ''Craterellus''، ''Gomphus''، ''[[Hygrophoropsis]]'' و ''[[Pseudocraterellus]]'' واری. [[مولکولی فیلوژنتیک]] تحلیلون، زردکیجائونِ جمعیتونِ میونِ روابط خَوِری تازه اطلاعات دنه.
این سرده، هشت جیر-چله میون رَسِد بیّه: ''[[Cantharellus subg. Afrocantharellus|Afrocantharellus]]'' Eyssart. & Buyck، [[Cantharellus subg. Cantharellus|''Cantharellus'']] Adans. ex Fr.، [[Cantharellus subg. Cinnabarinus|''Cinnabarinus'']] Buyck & V. Hofst.، [[Cantharellus subg. Magni|''Magni'']] T. Cao & H.S. Yuan، [[Cantharellus subg. Parvocantharellus|''Parvocantharellus'']] Eyssart. & Buyck، [[Cantharellus subg. Pseudocantharellus|''Pseudocantharellus'']] Eyssart. & Buyck و [[Cantharellus subg. Rubrini|''Rubrini'']] Eyssart. & Buyck.<ref>{{cite journal | vauthors = Zhang YZ, Qin HZ, Chen ZH, Lin WF, Liang ZQ, Jiang S, Zeng NK | title = Updated taxonomy of Chinese ''Cantharellus'' subgenera ''Afrocantharellus'' and ''Magni'' (Hydnaceae, Cantharellales): Three new taxa and amended descriptions of one previous species | journal = Frontiers in Microbiology | volume = 14 | article-number = 1109831 | date = 2023-03-17 | pmid = 37007503 | pmc = 10064096 | doi = 10.3389/fmicb.2023.1109831 | doi-access = free }}</ref>
{{clade
|1={{clade|1={{clade
|1={{clade
|1={{clade
|1={{clade
|1=''[[Cantharellus subg. Rubrini|Rubrini]]'' Eyssart. & Buyck.
|2=''[[Cantharellus subg. Cantharellus|Cantharellus]]'' Adans. ex Fr.
}}
|2=''[[Cantharellus subg. Pseudocantharellus|Pseudocantharellus]]'' Eyssart. & Buyck
}}
|label2=
|2= {{clade
|1=''[[Cantharellus subg. Parvocantharellus|Parvocantharellus]]'' Eyssart. & Buyck
|2=''[[Cantharellus subg. Cinnabarinus|Cinnabarinus]]'' Buyck & V. Hofst.
}}
}}}}
|2={{clade
|1=''[[Cantharellus subg. Afrocantharellus|Afrocantharellus]]'' Eyssart. & Buyck
|2=''[[Cantharellus subg. Magni|Magni]]'' T. Cao & H.S. Yuan
}}
}}|style1=font-size:90%|label1=Cantharellus }}
=== انتخاببئی گونهئون ===
[[File:Cantharellus cinnabarinus 93293.jpg|thumb|''C. cinnabarinus'']]
{{Columns-list|colwidth=35em|
''[[Cantharellus afrocibarius|C. afrocibarius]]'' – آفریقا<ref name="Buyck 2013"/>
''[[Cantharellus altipes|C. altipes]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus amazonensis|C. amazonensis]]'' – جنوبی آمریکا
''[[Cantharellus amethysteus|C. amethysteus]]'' – اروپا
''[[Cantharellus appalachiensis|C. appalachiensis]]'' – شرقی شمالی آمریکا، چین<ref name=shao11/>
''[[Cantharellus applanatus|C. applanatus]]'' – هند، چین، جاپون، کره
''[[Cantharellus aurantioconspicuus|C. aurantioconspicuus]]'' – برزیل<ref name="Wartchow 2012"/>
''[[Cantharellus californicus|C. californicus]]'' – بلوطِ شانترل
''[[Cantharellus cascadensis|C. cascadensis]]'' – شمالی آمریکاِ پاسیفیک شمالغرب
''[[Cantharellus cibarioides|C. cibarioides]]'' – آفریقا<ref name="Buyck 2014"/>
''[[Cantharellus cibarius|C. cibarius]]'' – طلایی زردکیجا، اروپا، شمالشرقی چین، جاپون
''[[Cantharellus chicagoensis|C. chicagoensis]]'' - [[شیکاگو، آمریکا]]
''[[Cantharellus cinereus|C. cinereus]]'' – خاکستری زردکیجا
''[[Cantharellus cinnabarinus|C. cinnabarinus]]''- سرخ زردکیجا
''[[Cantharellus coccolobae|C. coccolobae]]'' – کارائیب، باهاما و فلوریدا
''[[Cantharellus concinnus|C. concinnus]]'' – استرالیایی زردکیجا
''[[Cantharellus congolensis|C. congolensis]]'' - آفریقا<ref name="Tibuhwa 2012"/>
''[[Cantharellus eccentricus|C. eccentricus]]'' – نو کالدونیا<ref name="Buyck 2014"/>
''[[Cantharellus densifolius|C. densifolius]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus elegans|C. elegans]]''
''[[Cantharellus flavus|C. flavus]]'' - مرکزیغربی و جنوبی آمریکا<ref name=foltz2012/>
''[[Cantharellus floridulus|C. floridulus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus formosus|C. formosus]]'' – [[کالیفرنیا]] و [[شمالی آمریکا]]ِ [[پاسیفیک شمالغرب]]
''[[Cantharellus friesii|C. friesii]]'' – نارنجی زردکیجا
''[[Cantharellus garnierii|C. garnierii]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus gracilis|C. gracilis]]'' – آفریقا
''[[Cantharellus guyanensis|C. guyanensis]]'' – جنوبی آمریکا
''[[Cantharellus humidicolus|C. humidicolus]]'' – آفریقا
''[[Cantharellus incrassatus|C. incrassatus]]'' – مالزی<ref name="Buyck 2014"/>
''[[Cantharellus isabellinus|C. isabellinus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus lateritius|C. lateritius]]'' – صافِ زردکیجا
''[[Cantharellus lewisii|C. lewisii]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus lilacinus|C. lilacinus]]'' – استرالیا
''[[Cantharellus luteopunctatus|C. luteopunctatus]]'' – آفریقا
''[[Cantharellus minor|C. minor]]''
''[[Cantharellus miomboensis|C. miomboensis]]'' – آفریقا
''[[Cantharellus neocaledonicus|C. neocaledonicus]]'' – [[نو کالدونیا]]<ref name="Buyck 2014"/>
''[[Cantharellus pallens|C. pallens]]'' - یخبئی زردکیجا
''[[Cantharellus persicinus|C. persicinus]]'' – هلو زردکیجا
''[[Cantharellus phasmatis|C. phasmatis]]'' - روحِ زردکیجا، مرکزیغربی آمریکا<ref name=foltz2012/>
''[[Cantharellus pleurotoides|C. pleurotoides]]'' – گویان<ref name=Henkel2006/>
''[[Cantharellus pseudocibarius|C. pseudocibarius]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus pseudoformosus|C. pseudoformosus]]'' – [[هند]] دله [[Cedrus deodara|دیودار سِدر]] همراهی پیدا وانه<ref name=kumari11/>
''[[Cantharellus protectus|C. protectus]]'' – جنوبی آمریکا
''[[Cantharellus quercophilus|C. quercophilus]]'' – جنوبشرقی آمریکا<ref name=buyck10/>
''[[Cantharellus rhodophyllus|C. rhodophyllus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus roseocanus|C. roseocanus]]''
''[[Cantharellus ruber|C. ruber]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus spectaculus|C. spectaculus]]'' - تماشایی زردکیجا، مرکزیغربی آمریکا<ref name=foltz2012/>
''[[Cantharellus subalbidus|C. subalbidus]]'' – غربی شمالی آمریکا
''[[Cantharellus sublaevis|C. sublaevis]]'' – آفریقا<ref name="Buyck 2014"/>
''[[Cantharellus subpruinosus|C. subpruinosus]]'' – اروپا
''[[Cantharellus tabernensis|C. tabernensis]]'' – جنوبشرقی آمریکا<ref name=feibelman/> و مکزیک<ref name="MontoyaEtAl2021"/>
''[[Cantharellus tanzanicus|C. tanzanicus]]'' – آفریقا
''[[Cantharellus tenuithrix|C. tenuithrix]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus texensis|C. texensis]]'' – جنوبشرقی آمریکا<ref name=buyck11/>
''[[Cantharellus tomentosus|C. tomentosus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus vaginatus|C. vaginatus]]'' – چین<ref name=shao11/>
''[[Cantharellus zangii|C. zangii]]'' – چین<ref name=Tian2012/>
}}
== تَنِکی ==
''زردکیجائون'' دنیایِ سرتاسر پیدا وانّه؛ [[آفریقا]]، [[اروپا]]، [[آسیا]]، [[شمالی آمریکا]]، [[جنوبی آمریکا]] و [[استرالیا]] واری.
== کاربردون ==
زردکیجائون اکثراً [[آنتیاکسیدان]] [[کاروتنوئید]] دارنه و وشون [[ویتامین D]] خله هسته.<ref name="pilz03" />
وشونِ مایکوریزایی طبیعت، این گونهیِ دکاشتن و زراعت ره خله سخت کانده.
=== آشپجی ===
زردکیجائون ره دنیایِ مختلف جائون، مختلف روش پجنّه؛ ویشته وه ره [[مرغنه]]، [[کاری]]، [[کرگ]]، [[خی|خی گوشت]]، [[ماهی]]، [[گو گوشت]] و [[گوگزا گوشت]] پَلی خار دریارنه.
[[اروپایی آشپزی]] دله، زردکیجا ره اکثراً [[اشکاری]] (گوزن) گوشت همراهی پجنّه. تونّه [[پیتزا]] سر هم وه ره استفاده هاکنن. [[خارشبئی]]، [[ترشیبئی]]، [[بوریشته]] بوو یا دولمه واری وه ره اتچی دله دشنیین.
چون این گوشِک خله [[ئو]] ره حفظ کنده، وشون ره «خشک بَوریشتن» روش جه آماده کانّه: وه ره پاک هاکردن په، بُرش زنّه و اتا سرپوشدار لاقلی (تهو) دله، حرارت جه بیروغن یا کره یلنه کببوئه تا شه ئوِ ره از دست هاده. این گوشکِ آماده هاکردنِ سنتی روش، بَوریشتن و [[مرغنه|هئیبزه مرغنه]] ور درست هاکردن هسته.
== منابع ==
{{Reflist|refs=
<ref name="Buyck 2014">{{cite journal |author=Buyck B. |title=Exploring the diversity of "smooth chanterelles" (''Cantharellus'', Cantharellales) |journal=Cryptogamie, Mycologie |year=2014 |volume=35 |issue=1 |pages=23–40 |doi=10.7872/crym.v35.iss1.2014.23|s2cid=85649542 }}</ref>
<ref name=mon06>{{cite journal | vauthors = Moncalvo JM, Nilsson RH, Koster B, Dunham SM, Bernauer T, Matheny PB, Porter TM, Margaritescu S, Weiss M, Garnica S, Danell E, Langer G, Langer E, Larsson E, Larsson KH, Vilgalys R | display-authors = 6 | title = The cantharelloid clade: dealing with incongruent gene trees and phylogenetic reconstruction methods | journal = Mycologia | volume = 98 | issue = 6 | pages = 937–948 | year = 2006 | pmid = 17486970 | doi = 10.1080/15572536.2006.11832623 }}</ref>
<ref name=pilz03>{{cite book |title=Ecology, and management of commercially harvested chanterelle mushrooms. Gen. Tech. Rep. PNW-GTR-576 |vauthors=Pilz D, Norvell L, Danell E, Molina R |date=March 2003 |publisher=Department of Agriculture, Forest Service, Pacific Northwest Research Station|location=Portland, Oregon |url=http://www.fs.fed.us/pnw/pubs/pnw_gtr576.pdf|access-date=2011-03-25}}</ref>
<ref name=buyck11>{{cite journal | vauthors = Buyck B, Cruaud C, Couloux A, Hofstetter V | title = Cantharellus texensis sp. nov. from Texas, a southern lookalike of C. cinnabarinus revealed by tef-1 sequence data | journal = Mycologia | volume = 103 | issue = 5 | pages = 1037–1046 | date = Sep–Oct 2011 | pmid = 21558500 | doi = 10.3852/10-261 | s2cid = 29384238 }}</ref>
<ref name=buyck10>{{cite journal| vauthors = Buyck B, Lewis DP, Eyssartier G, Hofstetter V |title=''Cantharellus quercophilus'' sp. nov. and its comparison to other small, yellow or brown American chanterelles|journal=Cryptogamie, Mycologie|date= March 2010 |volume=31|issue=1|pages=17–33}}</ref>
<ref name="Buyck 2013">{{cite journal |vauthors=Buyck B, Kauff F, Cruaud C, Hofstetter V |title=Molecular evidence for novel ''Cantharellus'' (Cantharellales, Basidiomycota) from tropical African miombo woodland and a key to all tropical African chanterelles |journal=Fungal Diversity |year=2013 |volume=58 |issue=1 |pages=281–98 |doi=10.1007/s13225-012-0215-4|s2cid=14535505 }}</ref>
<ref name=Henkel2006>{{cite journal | vauthors = Henkel TW, Aime MC, Mehl H, Miller SL | title = Cantharellus pleurotoides, a new and unusual basidiomycete from Guyana | journal = Mycological Research | volume = 110 | issue = Pt 12 | pages = 1409–1412 | date = December 2006 | pmid = 17123813 | doi = 10.1016/j.mycres.2006.09.010 | bibcode = 2006MycR..110.1409H }}</ref>
<ref name=kumari11>{{cite journal|title=''Cantharellus pseudoformosus'', a new species associated with ''Cedrus deodara'' from India| vauthors = Kumari D, Reddy MS, Upadhyay RC |doi=10.1007/s10267-010-0080-5| date = March 2011 |journal=Mycoscience |volume=52 |issue=2 |pages=147–151 |s2cid=86722305 |doi-access=free }}</ref>
<ref name=buyckFD>{{cite journal|title=The contribution of ''tef-1'' sequences to species delimitation in the ''Cantharellus cibarius'' complex in the southeastern USA| vauthors = Buyck B, Hofstetter V |journal=Fungal Diversity|volume=49|issue=1|pages=35–46|doi=10.1007/s13225-011-0095-z| date = July 2011 | bibcode = 2011FuDiv..49...35B |s2cid=23603456}}</ref>
<ref name=shao11>{{cite journal|title=''Cantharellus'' in southwestern China: a new species and a new record| vauthors = Shao SC, Tian XF, Liu PG |journal=Mycotaxon|volume=116|date=April–June 2011|pages=437–446|doi=10.5248/116.437|doi-access=free}}</ref>
<ref name=feibelman>{{cite journal|title=''Cantharellus Tabernensis'': A New Species from the Southeastern United States| vauthors = Feibelman TP, Bennett JW, Cibula WG |journal=Mycologia|volume=88|issue=2|date=Mar–Apr 1996|pages=295–301|jstor=3760934 |doi=10.2307/3760934 }}</ref>
<ref name=foltz2012>{{cite journal | vauthors = Foltz MJ, Perez KE, Volk TJ | title = Molecular phylogeny and morphology reveal three new species of Cantharellus within 20 m of one another in western Wisconsin, USA | journal = Mycologia | volume = 105 | issue = 2 | pages = 447–461 | date = October 2012 | pmid = 23080022 | doi = 10.3852/12-181 | s2cid = 2218602 | url = https://zenodo.org/record/894427 }}</ref>
<ref name="MontoyaEtAl2021">{{cite journal | vauthors = Montoya L, Herrera M, Bandala VM, Ramos A | title = Two new species and a new record of yellow ''Cantharellus'' from tropical ''Quercus'' forests in eastern Mexico with the proposal of a new name for the replacement of ''Craterellus confluens'' | journal = MycoKeys | issue = 80 | pages = 91–114 | date = 2021-05-20 | pmid = 34084073 | pmc = 8159916 | doi = 10.3897/mycokeys.80.61443 | publisher = Pensoft Publishers | doi-access = free }}</ref>
<ref name=Tian2012>{{cite journal |vauthors=Tian XF, Buyck B, Shao SC, Liu PG, Fang Y |title=''Cantharellus zangii'', a new subalpine basidiomycete from southwestern China |journal=Mycotaxon |year=2012 |volume=120 |pages=99–103 |doi=10.5248/120.99|doi-access=free }}</ref>
<ref name="Tibuhwa 2012">{{cite journal | vauthors = Tibuhwa DD, Saviæ S, Tibell L, Kivaisi AK | title = Afrocantharellus gen. stat. nov. is part of a rich diversity of African Cantharellaceae | journal = IMA Fungus | volume = 3 | issue = 1 | pages = 25–38 | date = June 2012 | pmid = 23155498 | pmc = 3399100 | doi = 10.5598/imafungus.2012.03.01.04 }}</ref>
<ref name="Wartchow 2012">{{cite journal |vauthors=Wartchow F, Buyck B, Maia LC |title=''Cantharellus aurantioconspicuus'' (Cantharellales), a new species from Pernambuco, Brazil |journal=Nova Hedwigia |year=2012 |volume=94 |issue=1–2 |pages=129–37 |doi=10.1127/0029-5035/2012/0094-0129 |bibcode=2012NovaH..94..129W }}</ref>
}}
== بریم بگردستن==
{{Commons category|Cantharellus}}
{{cite web | vauthors = Freedman L | publisher = The Mycological Society of San Francisco | work = A MykoWeb | url = http://www.mykoweb.com/cookbook/chanterelle.html | title = Chanterelle Recipes | access-date = 28 July 2003 }}
{{cite web | work = The Montara Mountain Native Plant Pages | vauthors = Kozak C | date = 13 May 1998 | url = http://plants.montara.com/mushrooms/MListPages/MFamPages/cantharella.html | title = Info on family Cantharellaceae | access-date = 28 July 2003 }}
{{cite web | title = Cantharellus | url = https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Undef&id=36065&lvl=3&keep=1&srchmode=1&unlock | work = NBCI taxonomy Browser | publisher = U.S. National Library of Medicine | access-date = 28 July 2003 }}
{{Taxonbar|from=Q922335}}
{{Authority control}}
[[رج:گوشک]]
g9ah0gar54wzch4hzlpxb212audhx6b
416480
416477
2026-10-04T20:42:19Z
محک
1023
[[رج:گوشک]] حذف شد; [[رج:گوشکون]] اضافه شد با استفاده از [[ویکیپدیا:رجساز]]
416480
wikitext
text/x-wiki
{{Automatic taxobox
|image=2007-07-14 Cantharellus cibarius.jpg
|image_caption=''[[زرد کیجا]]'' که مازرون دره.
|taxon=Cantharellus
|authority=[[میشل آدانسون|Adans.]] ex [[الیاس مگنوس فرایز|Fr.]]
|type_species=''[[زردکیجا]]''
|type_species_authority=Fr.
}}
{{mycomorphbox
|name= زردکیجا
|whichGills=decurrent
|capShape=infundibuliform
|hymeniumType=ridges
|stipeCharacter=bare
|ecologicalType=mycorrhizal
|sporePrintColor=زرد
|howEdible=choice
|howEdible2=edible}}
'''''زرد کیجائون''''' {{علمی نوم|Cantharellus}} اتا [[سرده]] (جنس) [[گوشک]] هستنه که وه ره خارجیشون '''شانترل''' ({{IPAc-en|ˌ|ʃ|æ|n|t|ə|ˈ|r|ɛ|l}}) گنّه، [[زردکیجا]] نوم ره اتجور بخردنی و خاصِ گونه سر هم إلنه ولی اتا خانواده و جنس هم هسته. وشون [[مایکوریزا]]یی قارچ هستنه، یعنی گیاهون همراهی [[همزیستی]] رابطه سازنّه. زردکیجائون ممکن هسته چنتا دیگه گونه ره مونِن، که بعضیشون [[سمی گوشک|سمی]] هستنه. دنیا دله زرد کیجائون ره إشناسنّه و وه اتا بخردنیترین گوشکها (قارچها) جه هسته.
== شکل ==
این سردهیِ گوشکون، معمولاً دهیل یا کاسه شکل هستنه. وشون رنگ ویشته زرد هسته و وشون [[لاملا|تیغهئون]] بعضی گدر صورتیرنگ وانه.<ref>{{cite web | vauthors = Kuo M |date=2015 |title=Chanterelles and Trumpets: Cantharellus and Craterellus |url= https://www.mushroomexpert.com/cantharellaceae.html |website=MushroomExpert.com |access-date=2023-10-30}}</ref>
=== ونه واری گونهئون ===
[[File:2007-07-14 Cantharellus cibarius Detail.jpg|thumb|right|اتی گوشک دره که سمّی هسته و زردکیجا ره مونّه و همینسه وشون تشخیص ونه دقیق بوئه. (عکس دله جعلی زردیکیجا هسته)]]
جعلی زردکیجا (''[[Hygrophoropsis aurantiaca]]'') نازکتر هسته و ویشته نارنجی تیغه و تیرهتر کلاهک دارنه. وه خله توم سمّی هسته ولی ونه سم تونده کم-زیاد بوو.<ref>{{cite book |title=North American Mushrooms: A Field Guide to Edible and Inedible Fungi |vauthors=Miller HR, ((Miller OK Jr)) |author-link2=Orson K. Miller Jr. |publisher=[[FalconGuides]] |year=2006 |isbn=978-0-7627-3109-1 |location=Guilford, Connecticut |page=332}}</ref><ref>{{cite book |author=Jordan M. |title=The Encyclopedia of Fungi of Britain and Europe |publisher=Frances Lincoln |year=2004 |isbn=978-0-7112-2378-3 |location=London, United Kingdom |page=334}}</ref>
زردکیجایِ واری گوشک چنتا دیگه هم درنه؛ جک-او-لانترن گوشک (''[[Omphalotus olearius]]'') و ونه خاخر گونه (''[[Omphalotus olivascens]]'') خله سمی هستنه، ولی آدم ره نکوشنّه. وشون واقعی تیغه دارنه که نازکتر هستنه، مشخص تاج دارنه و معمولاً ونه لو جه نرسنه. علایده بر این، جک-او-لانترن [[زیستتابی|زیستتاب]] هسته و چو سر نوج زنده درحالیکه ''زردکیجا'' گونهئون بنه سر عمل إنّه.
== ردهبندی ==
''زردکیجائون'' سرده خله گت هسته و وشون [[تاکسونی]] خله دپیت-دپیته هسته و خله تاریخچه دارنه. ''Index Fungorum'' این سرده وسّه ۵۰۰ تا جه ویشته علمی نوم لیست کانده، هرچند اسا معتبر نومونِ شماره ۱۰۰ تا جه هم کمته هسته.<ref name="pilz03" /> بعضیشون تکراری بینه و خله گونهئون دیگه هم سردهئون دیگه دله منتقل بَینه، ''[[Afrocantharellus]]''،<ref name="Tibuhwa 2012" /> ''[[Arrhenia]]''، ''Craterellus''، ''Gomphus''، ''[[Hygrophoropsis]]'' و ''[[Pseudocraterellus]]'' واری. [[مولکولی فیلوژنتیک]] تحلیلون، زردکیجائونِ جمعیتونِ میونِ روابط خَوِری تازه اطلاعات دنه.
این سرده، هشت جیر-چله میون رَسِد بیّه: ''[[Cantharellus subg. Afrocantharellus|Afrocantharellus]]'' Eyssart. & Buyck، [[Cantharellus subg. Cantharellus|''Cantharellus'']] Adans. ex Fr.، [[Cantharellus subg. Cinnabarinus|''Cinnabarinus'']] Buyck & V. Hofst.، [[Cantharellus subg. Magni|''Magni'']] T. Cao & H.S. Yuan، [[Cantharellus subg. Parvocantharellus|''Parvocantharellus'']] Eyssart. & Buyck، [[Cantharellus subg. Pseudocantharellus|''Pseudocantharellus'']] Eyssart. & Buyck و [[Cantharellus subg. Rubrini|''Rubrini'']] Eyssart. & Buyck.<ref>{{cite journal | vauthors = Zhang YZ, Qin HZ, Chen ZH, Lin WF, Liang ZQ, Jiang S, Zeng NK | title = Updated taxonomy of Chinese ''Cantharellus'' subgenera ''Afrocantharellus'' and ''Magni'' (Hydnaceae, Cantharellales): Three new taxa and amended descriptions of one previous species | journal = Frontiers in Microbiology | volume = 14 | article-number = 1109831 | date = 2023-03-17 | pmid = 37007503 | pmc = 10064096 | doi = 10.3389/fmicb.2023.1109831 | doi-access = free }}</ref>
{{clade
|1={{clade|1={{clade
|1={{clade
|1={{clade
|1={{clade
|1=''[[Cantharellus subg. Rubrini|Rubrini]]'' Eyssart. & Buyck.
|2=''[[Cantharellus subg. Cantharellus|Cantharellus]]'' Adans. ex Fr.
}}
|2=''[[Cantharellus subg. Pseudocantharellus|Pseudocantharellus]]'' Eyssart. & Buyck
}}
|label2=
|2= {{clade
|1=''[[Cantharellus subg. Parvocantharellus|Parvocantharellus]]'' Eyssart. & Buyck
|2=''[[Cantharellus subg. Cinnabarinus|Cinnabarinus]]'' Buyck & V. Hofst.
}}
}}}}
|2={{clade
|1=''[[Cantharellus subg. Afrocantharellus|Afrocantharellus]]'' Eyssart. & Buyck
|2=''[[Cantharellus subg. Magni|Magni]]'' T. Cao & H.S. Yuan
}}
}}|style1=font-size:90%|label1=Cantharellus }}
=== انتخاببئی گونهئون ===
[[File:Cantharellus cinnabarinus 93293.jpg|thumb|''C. cinnabarinus'']]
{{Columns-list|colwidth=35em|
''[[Cantharellus afrocibarius|C. afrocibarius]]'' – آفریقا<ref name="Buyck 2013"/>
''[[Cantharellus altipes|C. altipes]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus amazonensis|C. amazonensis]]'' – جنوبی آمریکا
''[[Cantharellus amethysteus|C. amethysteus]]'' – اروپا
''[[Cantharellus appalachiensis|C. appalachiensis]]'' – شرقی شمالی آمریکا، چین<ref name=shao11/>
''[[Cantharellus applanatus|C. applanatus]]'' – هند، چین، جاپون، کره
''[[Cantharellus aurantioconspicuus|C. aurantioconspicuus]]'' – برزیل<ref name="Wartchow 2012"/>
''[[Cantharellus californicus|C. californicus]]'' – بلوطِ شانترل
''[[Cantharellus cascadensis|C. cascadensis]]'' – شمالی آمریکاِ پاسیفیک شمالغرب
''[[Cantharellus cibarioides|C. cibarioides]]'' – آفریقا<ref name="Buyck 2014"/>
''[[Cantharellus cibarius|C. cibarius]]'' – طلایی زردکیجا، اروپا، شمالشرقی چین، جاپون
''[[Cantharellus chicagoensis|C. chicagoensis]]'' - [[شیکاگو، آمریکا]]
''[[Cantharellus cinereus|C. cinereus]]'' – خاکستری زردکیجا
''[[Cantharellus cinnabarinus|C. cinnabarinus]]''- سرخ زردکیجا
''[[Cantharellus coccolobae|C. coccolobae]]'' – کارائیب، باهاما و فلوریدا
''[[Cantharellus concinnus|C. concinnus]]'' – استرالیایی زردکیجا
''[[Cantharellus congolensis|C. congolensis]]'' - آفریقا<ref name="Tibuhwa 2012"/>
''[[Cantharellus eccentricus|C. eccentricus]]'' – نو کالدونیا<ref name="Buyck 2014"/>
''[[Cantharellus densifolius|C. densifolius]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus elegans|C. elegans]]''
''[[Cantharellus flavus|C. flavus]]'' - مرکزیغربی و جنوبی آمریکا<ref name=foltz2012/>
''[[Cantharellus floridulus|C. floridulus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus formosus|C. formosus]]'' – [[کالیفرنیا]] و [[شمالی آمریکا]]ِ [[پاسیفیک شمالغرب]]
''[[Cantharellus friesii|C. friesii]]'' – نارنجی زردکیجا
''[[Cantharellus garnierii|C. garnierii]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus gracilis|C. gracilis]]'' – آفریقا
''[[Cantharellus guyanensis|C. guyanensis]]'' – جنوبی آمریکا
''[[Cantharellus humidicolus|C. humidicolus]]'' – آفریقا
''[[Cantharellus incrassatus|C. incrassatus]]'' – مالزی<ref name="Buyck 2014"/>
''[[Cantharellus isabellinus|C. isabellinus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus lateritius|C. lateritius]]'' – صافِ زردکیجا
''[[Cantharellus lewisii|C. lewisii]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus lilacinus|C. lilacinus]]'' – استرالیا
''[[Cantharellus luteopunctatus|C. luteopunctatus]]'' – آفریقا
''[[Cantharellus minor|C. minor]]''
''[[Cantharellus miomboensis|C. miomboensis]]'' – آفریقا
''[[Cantharellus neocaledonicus|C. neocaledonicus]]'' – [[نو کالدونیا]]<ref name="Buyck 2014"/>
''[[Cantharellus pallens|C. pallens]]'' - یخبئی زردکیجا
''[[Cantharellus persicinus|C. persicinus]]'' – هلو زردکیجا
''[[Cantharellus phasmatis|C. phasmatis]]'' - روحِ زردکیجا، مرکزیغربی آمریکا<ref name=foltz2012/>
''[[Cantharellus pleurotoides|C. pleurotoides]]'' – گویان<ref name=Henkel2006/>
''[[Cantharellus pseudocibarius|C. pseudocibarius]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus pseudoformosus|C. pseudoformosus]]'' – [[هند]] دله [[Cedrus deodara|دیودار سِدر]] همراهی پیدا وانه<ref name=kumari11/>
''[[Cantharellus protectus|C. protectus]]'' – جنوبی آمریکا
''[[Cantharellus quercophilus|C. quercophilus]]'' – جنوبشرقی آمریکا<ref name=buyck10/>
''[[Cantharellus rhodophyllus|C. rhodophyllus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus roseocanus|C. roseocanus]]''
''[[Cantharellus ruber|C. ruber]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus spectaculus|C. spectaculus]]'' - تماشایی زردکیجا، مرکزیغربی آمریکا<ref name=foltz2012/>
''[[Cantharellus subalbidus|C. subalbidus]]'' – غربی شمالی آمریکا
''[[Cantharellus sublaevis|C. sublaevis]]'' – آفریقا<ref name="Buyck 2014"/>
''[[Cantharellus subpruinosus|C. subpruinosus]]'' – اروپا
''[[Cantharellus tabernensis|C. tabernensis]]'' – جنوبشرقی آمریکا<ref name=feibelman/> و مکزیک<ref name="MontoyaEtAl2021"/>
''[[Cantharellus tanzanicus|C. tanzanicus]]'' – آفریقا
''[[Cantharellus tenuithrix|C. tenuithrix]]'' – جنوبشرقی آمریکا<ref name=buyckFD/>
''[[Cantharellus texensis|C. texensis]]'' – جنوبشرقی آمریکا<ref name=buyck11/>
''[[Cantharellus tomentosus|C. tomentosus]]''<ref name="Tibuhwa 2012"/>
''[[Cantharellus vaginatus|C. vaginatus]]'' – چین<ref name=shao11/>
''[[Cantharellus zangii|C. zangii]]'' – چین<ref name=Tian2012/>
}}
== تَنِکی ==
''زردکیجائون'' دنیایِ سرتاسر پیدا وانّه؛ [[آفریقا]]، [[اروپا]]، [[آسیا]]، [[شمالی آمریکا]]، [[جنوبی آمریکا]] و [[استرالیا]] واری.
== کاربردون ==
زردکیجائون اکثراً [[آنتیاکسیدان]] [[کاروتنوئید]] دارنه و وشون [[ویتامین D]] خله هسته.<ref name="pilz03" />
وشونِ مایکوریزایی طبیعت، این گونهیِ دکاشتن و زراعت ره خله سخت کانده.
=== آشپجی ===
زردکیجائون ره دنیایِ مختلف جائون، مختلف روش پجنّه؛ ویشته وه ره [[مرغنه]]، [[کاری]]، [[کرگ]]، [[خی|خی گوشت]]، [[ماهی]]، [[گو گوشت]] و [[گوگزا گوشت]] پَلی خار دریارنه.
[[اروپایی آشپزی]] دله، زردکیجا ره اکثراً [[اشکاری]] (گوزن) گوشت همراهی پجنّه. تونّه [[پیتزا]] سر هم وه ره استفاده هاکنن. [[خارشبئی]]، [[ترشیبئی]]، [[بوریشته]] بوو یا دولمه واری وه ره اتچی دله دشنیین.
چون این گوشِک خله [[ئو]] ره حفظ کنده، وشون ره «خشک بَوریشتن» روش جه آماده کانّه: وه ره پاک هاکردن په، بُرش زنّه و اتا سرپوشدار لاقلی (تهو) دله، حرارت جه بیروغن یا کره یلنه کببوئه تا شه ئوِ ره از دست هاده. این گوشکِ آماده هاکردنِ سنتی روش، بَوریشتن و [[مرغنه|هئیبزه مرغنه]] ور درست هاکردن هسته.
== منابع ==
{{Reflist|refs=
<ref name="Buyck 2014">{{cite journal |author=Buyck B. |title=Exploring the diversity of "smooth chanterelles" (''Cantharellus'', Cantharellales) |journal=Cryptogamie, Mycologie |year=2014 |volume=35 |issue=1 |pages=23–40 |doi=10.7872/crym.v35.iss1.2014.23|s2cid=85649542 }}</ref>
<ref name=mon06>{{cite journal | vauthors = Moncalvo JM, Nilsson RH, Koster B, Dunham SM, Bernauer T, Matheny PB, Porter TM, Margaritescu S, Weiss M, Garnica S, Danell E, Langer G, Langer E, Larsson E, Larsson KH, Vilgalys R | display-authors = 6 | title = The cantharelloid clade: dealing with incongruent gene trees and phylogenetic reconstruction methods | journal = Mycologia | volume = 98 | issue = 6 | pages = 937–948 | year = 2006 | pmid = 17486970 | doi = 10.1080/15572536.2006.11832623 }}</ref>
<ref name=pilz03>{{cite book |title=Ecology, and management of commercially harvested chanterelle mushrooms. Gen. Tech. Rep. PNW-GTR-576 |vauthors=Pilz D, Norvell L, Danell E, Molina R |date=March 2003 |publisher=Department of Agriculture, Forest Service, Pacific Northwest Research Station|location=Portland, Oregon |url=http://www.fs.fed.us/pnw/pubs/pnw_gtr576.pdf|access-date=2011-03-25}}</ref>
<ref name=buyck11>{{cite journal | vauthors = Buyck B, Cruaud C, Couloux A, Hofstetter V | title = Cantharellus texensis sp. nov. from Texas, a southern lookalike of C. cinnabarinus revealed by tef-1 sequence data | journal = Mycologia | volume = 103 | issue = 5 | pages = 1037–1046 | date = Sep–Oct 2011 | pmid = 21558500 | doi = 10.3852/10-261 | s2cid = 29384238 }}</ref>
<ref name=buyck10>{{cite journal| vauthors = Buyck B, Lewis DP, Eyssartier G, Hofstetter V |title=''Cantharellus quercophilus'' sp. nov. and its comparison to other small, yellow or brown American chanterelles|journal=Cryptogamie, Mycologie|date= March 2010 |volume=31|issue=1|pages=17–33}}</ref>
<ref name="Buyck 2013">{{cite journal |vauthors=Buyck B, Kauff F, Cruaud C, Hofstetter V |title=Molecular evidence for novel ''Cantharellus'' (Cantharellales, Basidiomycota) from tropical African miombo woodland and a key to all tropical African chanterelles |journal=Fungal Diversity |year=2013 |volume=58 |issue=1 |pages=281–98 |doi=10.1007/s13225-012-0215-4|s2cid=14535505 }}</ref>
<ref name=Henkel2006>{{cite journal | vauthors = Henkel TW, Aime MC, Mehl H, Miller SL | title = Cantharellus pleurotoides, a new and unusual basidiomycete from Guyana | journal = Mycological Research | volume = 110 | issue = Pt 12 | pages = 1409–1412 | date = December 2006 | pmid = 17123813 | doi = 10.1016/j.mycres.2006.09.010 | bibcode = 2006MycR..110.1409H }}</ref>
<ref name=kumari11>{{cite journal|title=''Cantharellus pseudoformosus'', a new species associated with ''Cedrus deodara'' from India| vauthors = Kumari D, Reddy MS, Upadhyay RC |doi=10.1007/s10267-010-0080-5| date = March 2011 |journal=Mycoscience |volume=52 |issue=2 |pages=147–151 |s2cid=86722305 |doi-access=free }}</ref>
<ref name=buyckFD>{{cite journal|title=The contribution of ''tef-1'' sequences to species delimitation in the ''Cantharellus cibarius'' complex in the southeastern USA| vauthors = Buyck B, Hofstetter V |journal=Fungal Diversity|volume=49|issue=1|pages=35–46|doi=10.1007/s13225-011-0095-z| date = July 2011 | bibcode = 2011FuDiv..49...35B |s2cid=23603456}}</ref>
<ref name=shao11>{{cite journal|title=''Cantharellus'' in southwestern China: a new species and a new record| vauthors = Shao SC, Tian XF, Liu PG |journal=Mycotaxon|volume=116|date=April–June 2011|pages=437–446|doi=10.5248/116.437|doi-access=free}}</ref>
<ref name=feibelman>{{cite journal|title=''Cantharellus Tabernensis'': A New Species from the Southeastern United States| vauthors = Feibelman TP, Bennett JW, Cibula WG |journal=Mycologia|volume=88|issue=2|date=Mar–Apr 1996|pages=295–301|jstor=3760934 |doi=10.2307/3760934 }}</ref>
<ref name=foltz2012>{{cite journal | vauthors = Foltz MJ, Perez KE, Volk TJ | title = Molecular phylogeny and morphology reveal three new species of Cantharellus within 20 m of one another in western Wisconsin, USA | journal = Mycologia | volume = 105 | issue = 2 | pages = 447–461 | date = October 2012 | pmid = 23080022 | doi = 10.3852/12-181 | s2cid = 2218602 | url = https://zenodo.org/record/894427 }}</ref>
<ref name="MontoyaEtAl2021">{{cite journal | vauthors = Montoya L, Herrera M, Bandala VM, Ramos A | title = Two new species and a new record of yellow ''Cantharellus'' from tropical ''Quercus'' forests in eastern Mexico with the proposal of a new name for the replacement of ''Craterellus confluens'' | journal = MycoKeys | issue = 80 | pages = 91–114 | date = 2021-05-20 | pmid = 34084073 | pmc = 8159916 | doi = 10.3897/mycokeys.80.61443 | publisher = Pensoft Publishers | doi-access = free }}</ref>
<ref name=Tian2012>{{cite journal |vauthors=Tian XF, Buyck B, Shao SC, Liu PG, Fang Y |title=''Cantharellus zangii'', a new subalpine basidiomycete from southwestern China |journal=Mycotaxon |year=2012 |volume=120 |pages=99–103 |doi=10.5248/120.99|doi-access=free }}</ref>
<ref name="Tibuhwa 2012">{{cite journal | vauthors = Tibuhwa DD, Saviæ S, Tibell L, Kivaisi AK | title = Afrocantharellus gen. stat. nov. is part of a rich diversity of African Cantharellaceae | journal = IMA Fungus | volume = 3 | issue = 1 | pages = 25–38 | date = June 2012 | pmid = 23155498 | pmc = 3399100 | doi = 10.5598/imafungus.2012.03.01.04 }}</ref>
<ref name="Wartchow 2012">{{cite journal |vauthors=Wartchow F, Buyck B, Maia LC |title=''Cantharellus aurantioconspicuus'' (Cantharellales), a new species from Pernambuco, Brazil |journal=Nova Hedwigia |year=2012 |volume=94 |issue=1–2 |pages=129–37 |doi=10.1127/0029-5035/2012/0094-0129 |bibcode=2012NovaH..94..129W }}</ref>
}}
== بریم بگردستن==
{{Commons category|Cantharellus}}
{{cite web | vauthors = Freedman L | publisher = The Mycological Society of San Francisco | work = A MykoWeb | url = http://www.mykoweb.com/cookbook/chanterelle.html | title = Chanterelle Recipes | access-date = 28 July 2003 }}
{{cite web | work = The Montara Mountain Native Plant Pages | vauthors = Kozak C | date = 13 May 1998 | url = http://plants.montara.com/mushrooms/MListPages/MFamPages/cantharella.html | title = Info on family Cantharellaceae | access-date = 28 July 2003 }}
{{cite web | title = Cantharellus | url = https://www.ncbi.nlm.nih.gov/Taxonomy/Browser/wwwtax.cgi?mode=Undef&id=36065&lvl=3&keep=1&srchmode=1&unlock | work = NBCI taxonomy Browser | publisher = U.S. National Library of Medicine | access-date = 28 July 2003 }}
{{Taxonbar|from=Q922335}}
{{Authority control}}
[[رج:گوشکون]]
n79m525yil21tfaopap86i636lfvq9p
شابلون:Mycomorphbox
10
184402
416465
2025-12-15T14:35:58Z
en>RMCD bot
0
Removing notice of move discussion
416465
wikitext
text/x-wiki
{{Main other|{{Short description|Species of fungus|noreplace}}}}
{{#invoke:Infobox|infoboxTemplate
| italic title = {{#ifeq: {{{italic_title|}}} | no | no | <includeonly>yes</includeonly> }}
| abovestyle = line-height: 1.4em; font-size :1.2em
| above = {{if empty|{{{name|}}}|''{{PAGENAME}}''}}
| subheader = [[Mycology|Mycological characteristics]]
| labelstyle = white-space: nowrap
| datastyle = text-align: right
| label1 = {{#switch:{{lc:{{{hymeniumType}}}}}
|gills|gill = [[File:Gills icon.png|32px|link=|alt=]]
|pores|pore = [[File:Pores icon.png|32px|link=|alt=]]
|smooth = [[File:Smooth icon.png|32px|link=|alt=]]
|gleba = [[File:Gleba icon.png|32px|link=|alt=]]
|ridges|ridge = [[File:Ridges icon.png|32px|link=|alt=]]
|teeth = [[File:Teeth icon.png|32px|link=|alt=]]
}}
| data1 = {{#switch:{{{hymeniumType}}}
|gills|gill = [[Lamella (mycology)|Gills]] on [[hymenium]]
|pores|pore = Pores on [[hymenium]]
|smooth = Smooth [[hymenium]]
|gleba = [[Gleba]]l [[hymenium]]
|ridges|ridge = Ridges on [[hymenium]]
|teeth = [[Hydnoid fungi|Teeth]] on [[hymenium]]
}}
| label2 = {{#switch:{{{capShape}}}
|campanulate|conical|convex|depressed|flat|infundibuliform|offset|ovate|umbilicate|umbonate|no|NA = [[File:{{{capShape}}} cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
{{#switch:{{{capShape2}}}
|campanulate|conical|convex|depressed|flat|infundibuliform|offset|ovate|umbilicate|umbonate|no = [[File:{{{capShape2}}} cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
| data2 = {{#switch:{{{capShape}}}
|campanulate|conical|convex|depressed|flat = [[pileus (mycology)|Cap]] is {{{capShape}}}
|infundibuliform|ovate|umbilicate|umbonate|offset = [[pileus (mycology)|Cap]] is {{{capShape}}}
|no = No distinct [[pileus (mycology)|cap]]
}}
{{#switch:{{{capShape2}}}
|campanulate|conical|convex|depressed|flat = or {{{capShape2}}}
|infundibuliform|ovate|umbilicate|umbonate|offset = or {{{capShape2}}}
|no = or indistinct
}}
| label3 = {{#switch:{{{whichGills}}}
|adnate|adnexed|decurrent|emarginate|free = [[File:{{{whichGills}}} gills icon2.svg|32px|link=|alt=]]
|seceding|sinuate|subdecurrent = [[File:{{{whichGills}}} gills icon2.svg|32px|link=|alt=|class=skin-invert-image]]
|no|NA = [[File:NA cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
{{#switch:{{{whichGills2}}}
|adnate|adnexed|decurrent|emarginate|free = [[File:{{{whichGills2}}} gills icon2.svg|32px|link=|alt=]]
|seceding|sinuate|subdecurrent = [[File:{{{whichGills2}}} gills icon2.svg|32px|link=|alt=|class=skin-invert-image]]
|no|NA = [[File:{{{whichGills2}}} gills icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
| data3 = {{#switch:{{{whichGills}}}
|adnate|adnexed|decurrent|emarginate|free = [[Hymenium]] is {{{whichGills}}}
|seceding|sinuate|subdecurrent = [[Hymenium]] is {{{whichGills}}}
|no = [[Hymenium]] attachment is irregular or not applicable
|NA = [[Hymenium]] attachment is not applicable
}}
{{#switch:{{{whichGills2}}}
|adnate|adnexed|decurrent|emarginate|free = or {{{whichGills2}}}
|seceding|sinuate|subdecurrent = or {{{whichGills2}}}
}}
| label4 = {{#switch:{{{stipeCharacter}}}
|bare|ring|volva|ring and volva = [[File:{{{stipeCharacter}}} stipe icon.svg|32px|link=|alt=]]
|cortina = [[File:Cortina stipe icon.png|32px|link=|alt=]]
|NA = [[File:NA cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
{{#switch:{{{stipeCharacter2}}}
|bare|ring|volva|ring and volva = [[File:{{{stipeCharacter2}}} stipe icon.svg|32px|link=|alt=]]
|cortina = [[File:Cortina stipe icon.png|32px|link=|alt=]]
|NA = [[File:NA cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
| data4 = {{#switch:{{{stipeCharacter}}}
|bare = [[Stipe (mycology)|Stipe]] is bare
|ring = [[Stipe (mycology)|Stipe]] has a [[Annulus (mycology)|ring]]
|volva = [[Stipe (mycology)|Stipe]] has a [[Volva (mycology)|volva]]
|ring and volva = [[Stipe (mycology)|Stipe]] has a [[Annulus (mycology)|ring]] and [[Volva (mycology)|volva]]
|cortina = [[stipe (mycology)|Stipe]] has a [[Partial veil|cortina]]
|NA = Lacks a [[stipe (mycology)|stipe]]
}}
{{#switch:{{{stipeCharacter2}}}
|bare = or is bare
|ring = or has a [[Annulus (mycology)|ring]]
|volva = or has a [[Volva (mycology)|volva]]
|ring and volva = or has a [[Annulus (mycology)|ring]] and [[Volva (mycology)|volva]]
|cortina = or has a [[Partial veil|cortina]]
|NA = or lacks a [[stipe (mycology)|stipe]]
}}
| label5 = {{#switch:{{{sporePrintColor}}}
|black|white|olive|olive-brown|brown|yellow|pink|tan|salmon|ochre|cream|buff|blackish-brown|reddish-brown|pinkish-brown|green|yellow-orange|purple|purple-black|purple-brown|yellow-brown = <div style="background-color:{{#switch:{{{sporePrintColor}}}
|black = #000000
|white = #FFFFFF
|olive = #788861
|olive-brown = #878156
|brown = #5d431f
|yellow = #f2efba
|pink = #f7cfca
|tan = #cba777
|salmon = #f6cfb3
|ochre = #cc7722
|cream = #faf5e7
|buff = #ebd69a
|blackish-brown = #271c13
|reddish-brown = #67321a
|pinkish-brown = #f4c6a6
|green = #7c8a68
|yellow-orange = #ffbf68
|purple = #5a4364
|purple-black = #3b2a42
|purple-brown = #4b3545
|yellow-brown = #cb9735
}}; float:left;">[[File:Transparent spore print icon.svg|32px|link=|alt=]]</div> }}
{{#switch:{{{sporePrintColor2}}}
|black|white|olive|olive-brown|brown|yellow|pink|tan|salmon|ochre|cream|buff|blackish-brown|reddish-brown|pinkish-brown|green|yellow-orange|purple|purple-black|purple-brown|yellow-brown = <div style="background-color:{{#switch:{{{sporePrintColor2}}}
|black = #000000
|white = #FFFFFF
|olive = #788861
|olive-brown = #878156
|brown = #5d431f
|yellow = #f2efba
|pink = #f7cfca
|tan = #cba777
|salmon = #f6cfb3
|ochre = #cc7722
|cream = #faf5e7
|buff = #ebd69a
|blackish-brown = #271c13
|reddish-brown = #67321a
|pinkish-brown = #f4c6a6
|green = #7c8a68
|yellow-orange = #ffbf68
|purple = #5a4364
|purple-black = #3b2a42
|purple-brown = #4b3545
|yellow-brown = #cb9735
}}; float:left;">[[File:Transparent spore print icon.svg|32px|link=|alt=]]</div> }}
| data5 = {{#switch:{{{sporePrintColor}}}
|black|white|olive|olive-brown|brown|yellow|yellow-brown = [[Spore print]] is {{{sporePrintColor}}}
|pink|tan|salmon|ochre|cream|buff|pinkish-brown = [[Spore print]] is {{{sporePrintColor}}}
|blackish-brown|reddish-brown|green|yellow-orange|purple|purple-black|purple-brown = [[Spore print]] is {{{sporePrintColor}}}
}}
{{#switch:{{{sporePrintColor2}}}
|black|white|olive|olive-brown|ochre|brown|yellow-brown = to {{{sporePrintColor2}}}
|yellow|pink|tan|salmon|purple-black|purple-brown|pinkish-brown = to {{{sporePrintColor2}}}
|blackish-brown|reddish-brown|green|yellow-orange|cream|buff|purple = to {{{sporePrintColor2}}}
}}
| label6 = {{#switch:{{{ecologicalType}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = [[File:{{{ecologicalType}}} fungus.svg|32px|link=|alt=]]
}}
{{#switch:{{{ecologicalType2}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = [[File:{{{ecologicalType2}}} fungus.svg|32px|link=|alt=]]
}}
| data6 = {{#switch:{{{ecologicalType}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = Ecology is [[{{{ecologicalType}}}]]
}}
{{#switch:{{{ecologicalType2}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = or [[{{{ecologicalType2}}}]]
}}
| label7 = {{#switch:{{{howEdible}}}
|choice = [[File:Mycomorphbox Choice.png|32px|link=|alt=]]
|edible = [[File:Mycomorphbox Edible.png|32px|link=|alt=|class=skin-invert-image]]
|inedible = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|too hard to eat = [[File:Mycomorphbox Inedible.png|32px|link=|alt=]]
|poisonous = [[File:Mycomorphbox Poison.png|32px|link=|alt=|class=skin-invert-image]]
|unknown = [[File:Mycomorphbox Question.png|32px|link=|alt=]]
|psychoactive = [[File:Mycomorphbox Psychoactive.png|32px|link=|alt=]]
|unpalatable = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|deadly = [[File:Mycomorphbox Deadly.png|32px|link=|alt=]]
|caution|not recommended = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
|allergenic = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
}}
{{#switch:{{{howEdible2}}}
|choice = [[File:Mycomorphbox Choice.png|32px|link=|alt=]]
|edible = [[File:Mycomorphbox Edible.png|32px|link=|alt=]]
|inedible = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|too hard to eat = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|poisonous = [[File:Mycomorphbox Poison.png|32px|link=|alt=|class=skin-invert-image]]
|unknown = [[File:Mycomorphbox Question.png|32px|link=|alt=]]
|psychoactive = [[File:Mycomorphbox Psychoactive.png|32px|link=|alt=]]
|unpalatable = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|deadly = [[File:Mycomorphbox Deadly.png|32px|link=|alt=]]
|caution|not recommended = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
|allergenic = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
}}
| data7 = {{#switch:{{{howEdible}}}
|choice|edible = Edibility is [[edible mushroom|{{{howEdible}}}]]
|unpalatable = Edibility is edible, but [[edible mushroom|{{{howEdible}}}]]
|inedible = Edibility is {{{howEdible}}}
|too hard to eat = Edibility is {{{howEdible}}}
|poisonous|unknown|deadly = Edibility is [[mushroom poisoning|{{{howEdible}}}]]
|psychoactive = Edibility is [[Psilocybin mushroom|{{{howEdible}}}]]
|caution|not recommended = Edibility is [[Edible mushroom#Safety concerns|not recommended]]
|allergenic = Edibility is allergenic, can cause [[Food allergy|allergic reactions]]
}}
{{#switch:{{{howEdible2}}}
|choice|edible = or [[edible mushroom|{{{howEdible2}}}]]
|unpalatable = or [[edible mushroom|edible, but {{{howEdible2}}}]]
|inedible = or {{{howEdible2}}}
|too hard to eat = or {{{howEdible2}}}
|poisonous|unknown|deadly = or [[mushroom poisoning|{{{howEdible2}}}]]
|psychoactive = or [[Psilocybin mushroom|{{{howEdible2}}}]]
|caution|not recommended = but [[Edible mushroom#Safety concerns|not recommended]]
|allergenic = or can cause [[Food allergy|allergic reactions]]
}}
}}<noinclude>
{{Documentation}}
</noinclude>
jit12frxzss3zz8c7phr8nb1od83w0b
416466
416465
2026-10-04T17:01:32Z
محک
1023
۱ نسخه واردشده از [[:en:Template:Mycomorphbox]]
416465
wikitext
text/x-wiki
{{Main other|{{Short description|Species of fungus|noreplace}}}}
{{#invoke:Infobox|infoboxTemplate
| italic title = {{#ifeq: {{{italic_title|}}} | no | no | <includeonly>yes</includeonly> }}
| abovestyle = line-height: 1.4em; font-size :1.2em
| above = {{if empty|{{{name|}}}|''{{PAGENAME}}''}}
| subheader = [[Mycology|Mycological characteristics]]
| labelstyle = white-space: nowrap
| datastyle = text-align: right
| label1 = {{#switch:{{lc:{{{hymeniumType}}}}}
|gills|gill = [[File:Gills icon.png|32px|link=|alt=]]
|pores|pore = [[File:Pores icon.png|32px|link=|alt=]]
|smooth = [[File:Smooth icon.png|32px|link=|alt=]]
|gleba = [[File:Gleba icon.png|32px|link=|alt=]]
|ridges|ridge = [[File:Ridges icon.png|32px|link=|alt=]]
|teeth = [[File:Teeth icon.png|32px|link=|alt=]]
}}
| data1 = {{#switch:{{{hymeniumType}}}
|gills|gill = [[Lamella (mycology)|Gills]] on [[hymenium]]
|pores|pore = Pores on [[hymenium]]
|smooth = Smooth [[hymenium]]
|gleba = [[Gleba]]l [[hymenium]]
|ridges|ridge = Ridges on [[hymenium]]
|teeth = [[Hydnoid fungi|Teeth]] on [[hymenium]]
}}
| label2 = {{#switch:{{{capShape}}}
|campanulate|conical|convex|depressed|flat|infundibuliform|offset|ovate|umbilicate|umbonate|no|NA = [[File:{{{capShape}}} cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
{{#switch:{{{capShape2}}}
|campanulate|conical|convex|depressed|flat|infundibuliform|offset|ovate|umbilicate|umbonate|no = [[File:{{{capShape2}}} cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
| data2 = {{#switch:{{{capShape}}}
|campanulate|conical|convex|depressed|flat = [[pileus (mycology)|Cap]] is {{{capShape}}}
|infundibuliform|ovate|umbilicate|umbonate|offset = [[pileus (mycology)|Cap]] is {{{capShape}}}
|no = No distinct [[pileus (mycology)|cap]]
}}
{{#switch:{{{capShape2}}}
|campanulate|conical|convex|depressed|flat = or {{{capShape2}}}
|infundibuliform|ovate|umbilicate|umbonate|offset = or {{{capShape2}}}
|no = or indistinct
}}
| label3 = {{#switch:{{{whichGills}}}
|adnate|adnexed|decurrent|emarginate|free = [[File:{{{whichGills}}} gills icon2.svg|32px|link=|alt=]]
|seceding|sinuate|subdecurrent = [[File:{{{whichGills}}} gills icon2.svg|32px|link=|alt=|class=skin-invert-image]]
|no|NA = [[File:NA cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
{{#switch:{{{whichGills2}}}
|adnate|adnexed|decurrent|emarginate|free = [[File:{{{whichGills2}}} gills icon2.svg|32px|link=|alt=]]
|seceding|sinuate|subdecurrent = [[File:{{{whichGills2}}} gills icon2.svg|32px|link=|alt=|class=skin-invert-image]]
|no|NA = [[File:{{{whichGills2}}} gills icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
| data3 = {{#switch:{{{whichGills}}}
|adnate|adnexed|decurrent|emarginate|free = [[Hymenium]] is {{{whichGills}}}
|seceding|sinuate|subdecurrent = [[Hymenium]] is {{{whichGills}}}
|no = [[Hymenium]] attachment is irregular or not applicable
|NA = [[Hymenium]] attachment is not applicable
}}
{{#switch:{{{whichGills2}}}
|adnate|adnexed|decurrent|emarginate|free = or {{{whichGills2}}}
|seceding|sinuate|subdecurrent = or {{{whichGills2}}}
}}
| label4 = {{#switch:{{{stipeCharacter}}}
|bare|ring|volva|ring and volva = [[File:{{{stipeCharacter}}} stipe icon.svg|32px|link=|alt=]]
|cortina = [[File:Cortina stipe icon.png|32px|link=|alt=]]
|NA = [[File:NA cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
{{#switch:{{{stipeCharacter2}}}
|bare|ring|volva|ring and volva = [[File:{{{stipeCharacter2}}} stipe icon.svg|32px|link=|alt=]]
|cortina = [[File:Cortina stipe icon.png|32px|link=|alt=]]
|NA = [[File:NA cap icon.svg|32px|link=|alt=|class=skin-invert-image]]
}}
| data4 = {{#switch:{{{stipeCharacter}}}
|bare = [[Stipe (mycology)|Stipe]] is bare
|ring = [[Stipe (mycology)|Stipe]] has a [[Annulus (mycology)|ring]]
|volva = [[Stipe (mycology)|Stipe]] has a [[Volva (mycology)|volva]]
|ring and volva = [[Stipe (mycology)|Stipe]] has a [[Annulus (mycology)|ring]] and [[Volva (mycology)|volva]]
|cortina = [[stipe (mycology)|Stipe]] has a [[Partial veil|cortina]]
|NA = Lacks a [[stipe (mycology)|stipe]]
}}
{{#switch:{{{stipeCharacter2}}}
|bare = or is bare
|ring = or has a [[Annulus (mycology)|ring]]
|volva = or has a [[Volva (mycology)|volva]]
|ring and volva = or has a [[Annulus (mycology)|ring]] and [[Volva (mycology)|volva]]
|cortina = or has a [[Partial veil|cortina]]
|NA = or lacks a [[stipe (mycology)|stipe]]
}}
| label5 = {{#switch:{{{sporePrintColor}}}
|black|white|olive|olive-brown|brown|yellow|pink|tan|salmon|ochre|cream|buff|blackish-brown|reddish-brown|pinkish-brown|green|yellow-orange|purple|purple-black|purple-brown|yellow-brown = <div style="background-color:{{#switch:{{{sporePrintColor}}}
|black = #000000
|white = #FFFFFF
|olive = #788861
|olive-brown = #878156
|brown = #5d431f
|yellow = #f2efba
|pink = #f7cfca
|tan = #cba777
|salmon = #f6cfb3
|ochre = #cc7722
|cream = #faf5e7
|buff = #ebd69a
|blackish-brown = #271c13
|reddish-brown = #67321a
|pinkish-brown = #f4c6a6
|green = #7c8a68
|yellow-orange = #ffbf68
|purple = #5a4364
|purple-black = #3b2a42
|purple-brown = #4b3545
|yellow-brown = #cb9735
}}; float:left;">[[File:Transparent spore print icon.svg|32px|link=|alt=]]</div> }}
{{#switch:{{{sporePrintColor2}}}
|black|white|olive|olive-brown|brown|yellow|pink|tan|salmon|ochre|cream|buff|blackish-brown|reddish-brown|pinkish-brown|green|yellow-orange|purple|purple-black|purple-brown|yellow-brown = <div style="background-color:{{#switch:{{{sporePrintColor2}}}
|black = #000000
|white = #FFFFFF
|olive = #788861
|olive-brown = #878156
|brown = #5d431f
|yellow = #f2efba
|pink = #f7cfca
|tan = #cba777
|salmon = #f6cfb3
|ochre = #cc7722
|cream = #faf5e7
|buff = #ebd69a
|blackish-brown = #271c13
|reddish-brown = #67321a
|pinkish-brown = #f4c6a6
|green = #7c8a68
|yellow-orange = #ffbf68
|purple = #5a4364
|purple-black = #3b2a42
|purple-brown = #4b3545
|yellow-brown = #cb9735
}}; float:left;">[[File:Transparent spore print icon.svg|32px|link=|alt=]]</div> }}
| data5 = {{#switch:{{{sporePrintColor}}}
|black|white|olive|olive-brown|brown|yellow|yellow-brown = [[Spore print]] is {{{sporePrintColor}}}
|pink|tan|salmon|ochre|cream|buff|pinkish-brown = [[Spore print]] is {{{sporePrintColor}}}
|blackish-brown|reddish-brown|green|yellow-orange|purple|purple-black|purple-brown = [[Spore print]] is {{{sporePrintColor}}}
}}
{{#switch:{{{sporePrintColor2}}}
|black|white|olive|olive-brown|ochre|brown|yellow-brown = to {{{sporePrintColor2}}}
|yellow|pink|tan|salmon|purple-black|purple-brown|pinkish-brown = to {{{sporePrintColor2}}}
|blackish-brown|reddish-brown|green|yellow-orange|cream|buff|purple = to {{{sporePrintColor2}}}
}}
| label6 = {{#switch:{{{ecologicalType}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = [[File:{{{ecologicalType}}} fungus.svg|32px|link=|alt=]]
}}
{{#switch:{{{ecologicalType2}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = [[File:{{{ecologicalType2}}} fungus.svg|32px|link=|alt=]]
}}
| data6 = {{#switch:{{{ecologicalType}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = Ecology is [[{{{ecologicalType}}}]]
}}
{{#switch:{{{ecologicalType2}}}
|mycorrhizal|parasitic|saprophytic|saprotrophic = or [[{{{ecologicalType2}}}]]
}}
| label7 = {{#switch:{{{howEdible}}}
|choice = [[File:Mycomorphbox Choice.png|32px|link=|alt=]]
|edible = [[File:Mycomorphbox Edible.png|32px|link=|alt=|class=skin-invert-image]]
|inedible = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|too hard to eat = [[File:Mycomorphbox Inedible.png|32px|link=|alt=]]
|poisonous = [[File:Mycomorphbox Poison.png|32px|link=|alt=|class=skin-invert-image]]
|unknown = [[File:Mycomorphbox Question.png|32px|link=|alt=]]
|psychoactive = [[File:Mycomorphbox Psychoactive.png|32px|link=|alt=]]
|unpalatable = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|deadly = [[File:Mycomorphbox Deadly.png|32px|link=|alt=]]
|caution|not recommended = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
|allergenic = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
}}
{{#switch:{{{howEdible2}}}
|choice = [[File:Mycomorphbox Choice.png|32px|link=|alt=]]
|edible = [[File:Mycomorphbox Edible.png|32px|link=|alt=]]
|inedible = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|too hard to eat = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|poisonous = [[File:Mycomorphbox Poison.png|32px|link=|alt=|class=skin-invert-image]]
|unknown = [[File:Mycomorphbox Question.png|32px|link=|alt=]]
|psychoactive = [[File:Mycomorphbox Psychoactive.png|32px|link=|alt=]]
|unpalatable = [[File:Mycomorphbox Inedible.png|32px|link=|alt=|class=skin-invert-image]]
|deadly = [[File:Mycomorphbox Deadly.png|32px|link=|alt=]]
|caution|not recommended = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
|allergenic = [[File:Mycomorphbox Caution.png|32px|link=|alt=]]
}}
| data7 = {{#switch:{{{howEdible}}}
|choice|edible = Edibility is [[edible mushroom|{{{howEdible}}}]]
|unpalatable = Edibility is edible, but [[edible mushroom|{{{howEdible}}}]]
|inedible = Edibility is {{{howEdible}}}
|too hard to eat = Edibility is {{{howEdible}}}
|poisonous|unknown|deadly = Edibility is [[mushroom poisoning|{{{howEdible}}}]]
|psychoactive = Edibility is [[Psilocybin mushroom|{{{howEdible}}}]]
|caution|not recommended = Edibility is [[Edible mushroom#Safety concerns|not recommended]]
|allergenic = Edibility is allergenic, can cause [[Food allergy|allergic reactions]]
}}
{{#switch:{{{howEdible2}}}
|choice|edible = or [[edible mushroom|{{{howEdible2}}}]]
|unpalatable = or [[edible mushroom|edible, but {{{howEdible2}}}]]
|inedible = or {{{howEdible2}}}
|too hard to eat = or {{{howEdible2}}}
|poisonous|unknown|deadly = or [[mushroom poisoning|{{{howEdible2}}}]]
|psychoactive = or [[Psilocybin mushroom|{{{howEdible2}}}]]
|caution|not recommended = but [[Edible mushroom#Safety concerns|not recommended]]
|allergenic = or can cause [[Food allergy|allergic reactions]]
}}
}}<noinclude>
{{Documentation}}
</noinclude>
jit12frxzss3zz8c7phr8nb1od83w0b
شابلون:Cladogram
10
184403
416467
2026-01-10T13:38:03Z
en>Putnik
0
return back background color, but with a correct value for dark mode
416467
wikitext
text/x-wiki
<includeonly>{| style="border: 1px solid var(--border-color-subtle, #c8ccd1); background-color: var(--background-color-base, #fff); color: inherit; vertical-align: middle; width: {{ifnumber|{{{width|}}}|{{{width}}}|248}}px; {{#switch:{{lc:{{{align|}}}}}
| left = margin:0.2em 1em 0.2em 0; float:left; clear:left;
| center | centre = margin:0.2em auto;
| none =
| right | #default = margin:0.2em 0 0.2em 1em; float:right; clear:right;
}} {{{style|}}}"
|-
{{#if:{{{title|}}}|
{{!}} style="text-align: center; font-weight: bold; border: 0; padding: 0;" {{!}} {{{title}}}
}}
|-
| style="padding: 5px" |
{{{cladogram|{{{clades|{{{clade|{{{1|}}}}}}}}}}}}
|-
{{#if:{{{cladogram2|{{{clades2|{{{clade2|}}}}}}}}} |
{{!}} style{{=}}"padding: 5px" {{!}}
{{{cladogram2|{{{clades2|{{{clade2|}}}}}}}}}
}}
|-
{{#if:{{{caption|}}}|
{{!}} style{{=}}"text-align: left; font-size: 88%; border: 0; padding: 0;" {{!}} {{{caption|}}}
}}
|}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using cladogram with unknown parameters|_VALUE_{{PAGENAME}}]]}}
|preview=Page using [[Template:Cladogram]] with unknown parameter "_VALUE_"
| 1 | align | caption | clade | clade2 | clades | clades2 | cladogram | cladogram2 | style | title | width
}}</includeonly><noinclude>{{documentation}}</noinclude>
g5s47mqvzmaid4ue73xdzuhkhyd0qku
416468
416467
2026-10-04T17:01:50Z
محک
1023
۱ نسخه واردشده از [[:en:Template:Cladogram]]
416467
wikitext
text/x-wiki
<includeonly>{| style="border: 1px solid var(--border-color-subtle, #c8ccd1); background-color: var(--background-color-base, #fff); color: inherit; vertical-align: middle; width: {{ifnumber|{{{width|}}}|{{{width}}}|248}}px; {{#switch:{{lc:{{{align|}}}}}
| left = margin:0.2em 1em 0.2em 0; float:left; clear:left;
| center | centre = margin:0.2em auto;
| none =
| right | #default = margin:0.2em 0 0.2em 1em; float:right; clear:right;
}} {{{style|}}}"
|-
{{#if:{{{title|}}}|
{{!}} style="text-align: center; font-weight: bold; border: 0; padding: 0;" {{!}} {{{title}}}
}}
|-
| style="padding: 5px" |
{{{cladogram|{{{clades|{{{clade|{{{1|}}}}}}}}}}}}
|-
{{#if:{{{cladogram2|{{{clades2|{{{clade2|}}}}}}}}} |
{{!}} style{{=}}"padding: 5px" {{!}}
{{{cladogram2|{{{clades2|{{{clade2|}}}}}}}}}
}}
|-
{{#if:{{{caption|}}}|
{{!}} style{{=}}"text-align: left; font-size: 88%; border: 0; padding: 0;" {{!}} {{{caption|}}}
}}
|}{{#invoke:Check for unknown parameters|check|unknown={{main other|[[Category:Pages using cladogram with unknown parameters|_VALUE_{{PAGENAME}}]]}}
|preview=Page using [[Template:Cladogram]] with unknown parameter "_VALUE_"
| 1 | align | caption | clade | clade2 | clades | clades2 | cladogram | cladogram2 | style | title | width
}}</includeonly><noinclude>{{documentation}}</noinclude>
g5s47mqvzmaid4ue73xdzuhkhyd0qku
شابلون:Clade
10
184404
416469
2019-03-31T23:27:25Z
en>Xaosflux
0
Changed protection level for "[[Template:Clade]]": [[WP:High-risk templates|Highly visible template]] ([Edit=Require template editor access] (indefinite) [Move=Require template editor access] (indefinite))
416469
wikitext
text/x-wiki
<noinclude>{{Clade
|label1=root
|1={{Clade
|1=Leaf1
|2=Leaf2
}}
}}</noinclude>{{#invoke:Clade|main|style={{{style|}}} }}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
12f07cwmw7z74nh3f4qhnpi8tzmynek
416470
416469
2026-10-04T17:02:11Z
محک
1023
۱ نسخه واردشده از [[:en:Template:Clade]]
416469
wikitext
text/x-wiki
<noinclude>{{Clade
|label1=root
|1={{Clade
|1=Leaf1
|2=Leaf2
}}
}}</noinclude>{{#invoke:Clade|main|style={{{style|}}} }}<noinclude>
{{Documentation}}
<!-- Add categories to the /doc subpage, not here! -->
</noinclude>
12f07cwmw7z74nh3f4qhnpi8tzmynek
ماژول:Clade
828
184405
416471
2024-03-28T16:33:49Z
en>Jts1882
0
add div to allow overflow: '<div class="clade"> ... </div>'
416471
Scribunto
text/plain
--[[NOTE: this module contains functions for generating the table structure of the clade tree:
The main function is called by the template using the {{invoke}} instruction; the three main functions are:
p.main(frame) - opens and closes table, loops through the children of node, main is invoked once and controls the rest, calling ...
p.addTaxon(childNumber, nodeLeaf) - the nuts and bolts; code dealing with each child node
p.addLabel(childNumber) - adds the label text
now uses templatestyles
]]
require('strict')
local getArgs = require('Module:Arguments').getArgs
local p = {}
local pargs = {} -- parent arguments
local lastNode=0
local nodeCount=0
local cladeCount=0
local leafCount=0
local templateStylesCount=0
local infoOutput
local reverseClade = false
--[[============================== main function ===========================
-- main function, which will generate the table structure of the tree
Test version:
Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|main|style={{{STYLE|}}} }}
Template:CladeN
Release version:
Usage: {{#invoke:Clade|main|style={{{STYLE|}}} }}
Template:Clade
]]
function p.main(frame)
local cladeString = ""
local maxChildren = 20 -- was 17 in the clade/cladex templates
local childNumber = 0
local childCount = 0 -- number of leaves in the clade (can use to set bottom of bracket in addTaxon()
local totalCount = 0
pargs = getArgs(frame) -- parent arguments
infoOutput = p.getCladeTreeInfo() -- get info about clade structure, e.g. lastNode (last |N= child number)
--[[ add the templatestyles tag conditionally to reduce expansion size (currently diabled)
when added to every clade table, it increases post‐expand include size significantly
e.g. the Neosuchia page (or test version) is increase by about 8% (672 bytes each)
if template styles added to all pages there are 133 stripmarkers
with cladeCount==1 condition, this is reduced to 34
however cladeCount==1 condition interfers with fix for additional line due to parser bug T18700
killing the strip markers also removes backlinks to references using citation templates
--]]
--cladeString =mw.text.killMarkers( cladeString ) -- also kills off strip markers using citation templates
--cladeString = mw.text.unstrip(cladeString)
--if cladeCount==1 then
cladeString = cladeString .. frame:extensionTag('templatestyles', '',
{ src="Template:Clade/styles.css" }) .. '\n'
--end
local tableStyle = frame.args.style or pargs.style or ""
if tableStyle ~= "" then
tableStyle = ' style="' .. tableStyle .. '"' -- include style= in string to suppress empty style elements
end
reverseClade =frame.args.reverse or pargs.reverse or false -- a global
--ENFORCE GLOBAL FOR DEVELOPMENT
--reverseClade = true
local captionName = pargs['caption'] or ""
local captionStyle = pargs['captionstyle'] or ""
-- add an element to mimick nowiki WORKS BUT DISABLE FOR DEMO PURPOSES
--cladeString = '<p class="mw-empty-elt"></p>\n'
-- open table
-- (border-collapse causes problems (see talk) -- cladeString = cladeString .. '{| style="border-collapse:collapse;border-spacing:0;margin:0;' .. tableStyle .. '"'
-- (before CSS styling) -- cladeString = cladeString .. '{| style="border-spacing:0;margin:0;' .. tableStyle .. '"'
cladeString = cladeString .. '{|class="clade"' .. tableStyle
-- add caption
if captionName ~= "" then
cladeString = cladeString .. '\n|+ style="' .. captionStyle .. '"|' .. captionName
end
local moreNeeded = true
childNumber = 0
--lastNode = 0
--[[get child elements (add more rows for each child of node; each child is two rows)
the function addTaxon is called to add the rows for each child element;
each child add two rows: the first cell of each row contains the label or sublabel (below the line label), respectively;
the second cell spans both rows and contains the leaf name or a new clade structure
a third cell on the top row is sometimes added to contain a group to the right
]]
-- main loop
while childNumber < lastNode do -- use the last number determined in the preprocessing
childNumber = childNumber + 1 -- so we start with 1
local nodeLeaf = pargs[tostring(childNumber)] or "" -- get data from |N=
local nodeLabel = pargs['label'..tostring(childNumber)] or "" -- get data from |labelN=
local newickString = pargs['newick'..tostring(childNumber)] or "" -- get data from |labelN=
local listString = pargs['list'..tostring(childNumber)] or ""
if listString ~= "" then
cladeString = cladeString .. '\n' .. p.addTaxon(childNumber, p.list(0, listString), nodeLabel, lastNode)
elseif newickString ~= "" then -- if using a newick string instead of a clade structure
newickString = p.processNewickString(newickString,childNumber)
if nodeLabel == "" then -- use labelN by default, otherwise use root name from Newick string
nodeLabel = p.getNewickOuterterm(newickString) -- need to use terminal part of newick string for label
end
cladeString = cladeString .. '\n' .. p.addTaxon(childNumber, p.newick(0, newickString), nodeLabel, lastNode)
--lastNode=lastNode+1 -- there is a counting problem with the newickstring
elseif nodeLeaf ~= "" then -- if the node contains a leaf name or clade structue
--if reverseClade2 then
-- cladeString = cladeString .. '\n' .. p.addTaxonReverse(childNumber, nodeLeaf, nodeLabel, lastNode)
--else
cladeString = cladeString .. '\n' .. p.addTaxon(childNumber, nodeLeaf, nodeLabel, lastNode)
--end
end
end
local footerText = pargs['footer'] or ""
local footerStyle = pargs['footerstyle'] or ""
if footerText ~= "" then
cladeString = cladeString .. '\n|-style="' .. footerStyle .. '"\n|colspan="2"|<p>' .. footerText .. '</p>||'
-- note the footer causes a problem with tr:last-child so need either
-- (1) use <tfoot> but it is not allowed or incompatable
-- cladeString = cladeString .. '<tfoot><tr style="' .. footerStyle .. '"><td colspan="2"><p>' .. footerText .. '</p></td></tr></tfoot>'
-- (2) always add footer and use nth:last-child(2) but is this backwards compatible
-- (3) if footer= set the style inline for the last sublabel row (more a temp fix)
-- (4) set class for first and last element (DONE. Also works well with reverse class)
end
-- close table (wikitext to close table)
cladeString = cladeString .. '\n|}'
cladeString = p.addSubTrees(cladeString) -- add subtrees
--wrap in div to allow overflow display; new vector skin for mobile has issues (see talk page)
if pargs['overflow'] == 'yes' or 1==1 then -- force for all cases
local divCSS = ' class="clade"' -- ' style="overflow:auto;"'
if string.find(cladeString, divCSS) then
cladeString = string.gsub(cladeString, divCSS, "") -- delete CSS styling of inner clades (only want on outer)
end
return '<div' .. divCSS .. '>' .. cladeString .. '</div>'
else
return cladeString
end
--return '<div style="width:auto;">\n' .. cladeString .. '</div>'
end
--[[ =============================function to add subtrees ========================================== ]]
function p.addSubTrees(cladeString)
--local pargs = mw.getCurrentFrame():getParent().args
local suffix = { [1]="A", [2]="B", [3]="C", [4]="D", [5]="E", [6]="F", [7]="G", [8]="H", [9]="I", [10]="J",
[11]="K", [12]="L", [13]="M", [14]="N", [15]="O", [16]="P", [17]="Q", [18]="R", [19]="S", [20]="T",
[21]="U", [22]="V", [23]="W", [24]="X", [25]="Y", [26]="Z"}
for i=1, 26, 1 do
local subclade = pargs['subclade'..suffix[i]]
local target = pargs['target'..suffix[i]] or "SUBCLADE_" .. suffix[i]
if subclade then
if string.find(cladeString, target) then
cladeString = string.gsub(cladeString,target,subclade)
end
end
end
return cladeString
end
--[[ -------------------------------------- p.addTaxon() ------------------------------------------
function to add child elements
adds wikitext for two rows of the table for each child node,
the first cell in each is used for the label and sublabel; the bottom border forms the horizonal branch of the bracket
the second cell is used for the leafname or a transcluded clade structure and spans both rows
note that the first and last child nodes need to be handled differently from the middle elements
the middle elements (|2, |3 ...) use a left border to create the vertical line of the bracket
the first child element doesn't use a left border for the first cell in the top row (as it is above the bracket)
the last child doesn't use a left border for the first cell in the second row (as it is below the bracket)
]]
function p.addTaxon(childNumber, nodeLeaf, nodeLabel, lastNode)
--[[ get border formating parameters (i.e. color, thickness, state)
nodeParameters for whole bracket (unnumbered, i.e. color, thickness, state) apply to whole node bracket,
branchParameters apply to individual branches
the branch parameters have a number, e.g. |colorN, |thicknessN, |stateN
the node parameters have no number, e.g. |color, |thickness, |state
]]
local nodeColor = pargs['color'] or "" -- don't set default to allow green on black gadget
local nodeThickness = tonumber(pargs['thickness']) or 1
local nodeState = pargs['state'] or "solid"
-- get border formating parameters for branch (default to global nodeParameters)
local branchColor = pargs['color'..tostring(childNumber)] or nodeColor
local branchThickness = tonumber(pargs['thickness'..tostring(childNumber)]) or nodeThickness
local branchState = pargs['state'..tostring(childNumber)] or nodeState
if branchState == 'double' then
if branchThickness < 2 then branchThickness = 3 end -- need thick line for double
end
local branchStyle = pargs['style'..tostring(childNumber)] or ""
local branchLength = pargs['length'] or pargs['length'..tostring(childNumber)] or ""
-- the left border takes node parameters, the bottom border takes branch parameters
-- this has coding on the colours for green on black
local bottomBorder = tostring(branchThickness) ..'px ' .. branchState .. (branchColor~="" and ' ' .. branchColor or '')
local leftBorder = tostring(nodeThickness) ..'px ' .. nodeState .. (nodeColor~="" and ' ' .. nodeColor or '')
--The default border styles are in the CSS (styles.css)
-- the inline styling is applied when thickness, color or state are change
local useInlineStyle = false
-- use inline styling non-default color, line thickness or state have been set
if branchColor ~= "" or branchThickness ~= 1 or branchState ~= "solid" then
useInlineStyle = true
end
-- variables for right hand bar or bracket
--local barColor = ""
local barRight = pargs['bar'..tostring(childNumber)] or "0"
local barBottom = pargs['barend'..tostring(childNumber)] or "0"
local barTop = pargs['barbegin'..tostring(childNumber)] or "0"
local barLabel = pargs['barlabel'..tostring(childNumber)] or ""
local groupLabel = pargs['grouplabel'..tostring(childNumber)] or ""
local groupLabelStyle = pargs['grouplabelstyle'..tostring(childNumber)] or ""
local labelStyle = pargs['labelstyle'..tostring(childNumber)] or ""
local sublabelStyle = pargs['sublabelstyle'..tostring(childNumber)] or ""
--replace colours with format string; need right bar for all three options
if barRight ~= "0" then barRight = "2px solid " .. barRight end
if barTop ~= "0" then barRight = "2px solid " .. barTop end
if barBottom ~= "0" then barRight = "2px solid " .. barBottom end
if barTop ~= "0" then barTop = "2px solid " .. barTop end
if barBottom ~= "0" then barBottom = "2px solid " .. barBottom end
-- now construct wikitext
local cladeString = ''
local styleString = ''
local borderStyle = '' -- will be used if border color, thickness or state is to be changed
local classString = ''
local reverseClass = ''
local widthClass = ''
-- class to add if using reverse (rtl) cladogram;
if reverseClade then reverseClass = ' reverse' end
-- (1) wikitext for new row
--cladeString = cladeString .. '\n|-'
-- (2) now add cell with label
if useInlineStyle then
if childNumber == 1 then
borderStyle = 'border-left:none;border-right:none;border-bottom:' .. bottomBorder .. ';'
--borderStyle = 'border-bottom:' .. bottomBorder .. ';'
else -- for 2-17
if reverseClade then
borderStyle = 'border-left:none;border-right:' .. leftBorder .. ';border-bottom:' .. bottomBorder .. ';'
else
borderStyle = 'border-left:' .. leftBorder .. ';border-bottom:' .. bottomBorder .. ';'
end
end
end
if useInlineStyle or branchStyle ~= '' or branchLength ~= "" or labelStyle ~= "" then
local branchLengthStyle = ""
if branchLength ~= "" then
if childNumber == 1 then
branchLengthStyle = 'width:' .. branchLength .. ';' -- add width to first element
end
--if childNumber > 1 then prefix = 'max-' end
branchLengthStyle = branchLengthStyle --= prefix .. 'width:' .. branchLength .. ';'
.. 'max-width:' .. branchLength ..';'
.. 'padding:0em;' -- remove padding to make calculation easier
-- following moved to styles.css
-- .. 'white-space:nowrap'
-- .. 'overflow:hidden;' -- clip labels longer than the max-width
-- .. 'text-overflow:clip;' -- ellipsis;'
widthClass = " clade-fixed-width"
end
styleString = 'style="' .. borderStyle .. branchLengthStyle .. branchStyle .. labelStyle .. '"'
end
if childNumber == 1 then
classString= 'class="clade-label first'.. widthClass .. '" ' -- add class "first" for top row
else
classString = 'class="clade-label' .. reverseClass .. widthClass .. '" ' -- add "reverse" class if ltr cladogram
end
-- wikitext for cell with label
local labelCellString = '\n|' .. classString .. styleString .. '|' .. p.addLabel(childNumber,nodeLabel) -- p.addLabel(nodeLabel)
--cladeString = cladeString .. labelCellString
---------------------------------------------------------------------------------
-- (3) add cell with leaf (which may be a table with transluded clade content)
if barRight ~= "0" then
if reverseClade then -- we want the bar on the left
styleString = ' style="border-left:' .. barRight .. ';border-bottom:' .. barBottom .. ';border-top:' .. barTop .. ';' .. branchStyle .. '"'
else
styleString = ' style="border-right:' .. barRight .. ';border-bottom:' .. barBottom .. ';border-top:' .. barTop .. ';' .. branchStyle .. '"'
end
else
if (branchStyle ~= '') then
styleString = ' style="' .. branchStyle .. '"'
else
styleString = '' -- use defaults in styles.css
end
end
classString = 'class="clade-leaf' .. reverseClass .. '"'
--[[note: the \n causes plain leaf elements get wrapped in <p> with style="margin:0.4em 0 0.5em 0;"
this adds spacing to rows, but is set by defaults rather than the clade template
it also means there are two newlines when it is a clade structure (which might explain some past issues)
]]
local content = '\n' .. nodeLeaf -- the newline is not necessary, but keep for backward compatibility
-- test using image parameter
local image = pargs['image'..tostring(childNumber)] or ""
if image ~= "" then
--content = content .. image -- basic version
content = '\n{|class=clade style=width:auto' --defaults to width:100% because of class "clade"
.. '\n|class=clade-leaf|\n' .. nodeLeaf
.. '\n|class=clade-leaf|\n' .. image
.. '\n|}'
-- note: the classes interfere with the node counter, so try simpler version with style
content = '\n{|style=width:100%;border-spacing:0' --width:auto is "tight"; 100% needed for image alignment
.. '\n|style=border:0;padding:0|\n' .. nodeLeaf
.. '\n|style=border:0;padding:0|\n' .. image
.. '\n|}'
end
-- wikitext for leaf cell (note: nodeLeaf needs to be on newline if new wikitable)
-- but that is no longer the case (newline is now forced)
-- the newline wraps plain leaf terminals in <P> with vertical padding (see above)
--local leafCellString = '\n|rowspan=2 ' .. classString .. styleString .. ' |\n' .. content -- the new line causes <p> wrapping for plain leaf terminals
local leafCellString = '\n|rowspan=2 ' .. classString .. styleString .. ' |' .. content
--cladeString = cladeString .. leafCellString
-------------------------------------------
-- (4) stuff for right-hand bracket labels
classString='class="clade-bar' .. reverseClass .. '"'
local barLabelCellString = ''
if barRight ~= "0" and barLabel ~= "" then
barLabelCellString = '\n|rowspan=2 ' .. classString .. ' |' .. barLabel
else -- uncomment following line to see the cell structure
--barLabelCellString = '\n|rowspan=2 ' .. classString .. ' |' .. 'BL'
end
if groupLabel ~= "" then
barLabelCellString = barLabelCellString .. '\n|rowspan=2 ' .. classString .. ' style="'.. groupLabelStyle .. '" |' .. groupLabel
else -- uncomment following line to see the cell structure
--barLabelCellString = barLabelCellString .. '\n|rowspan=2 ' .. classString .. '" |' .. 'GL'
end
--cladeString = cladeString .. barLabelCellString
-------------------------------------------------------------------------------------
-- (5) add second row (only one cell needed for sublabel because of rowspan=2);
-- note: earlier versions applied branch style to row rather than cell
-- for consistency, it is applied to the sublabel cell as with the label cell
--cladeString = cladeString .. '\n|-'
-----------------------------------
-- (6) add cell containing sublabel
local subLabel = pargs['sublabel'..tostring(childNumber)] or "" -- request in addLabel
-- FOR TESTING: use subLabel for annotating the clade structues to use structure information (DEBUGGIING ONLY)
--if childNumber==lastNode then subLabel= infoOutput end
-- END TESTING
borderStyle = ''
styleString = ''
if useInlineStyle then
if childNumber==lastNode then -- if childNumber==lastNode we don't want left border, otherwise we do
borderStyle = 'border-right:none;border-left:none;'
else
if reverseClade then
borderStyle = 'border-left:none;border-right:' .. leftBorder .. ';'
else
borderStyle = 'border-right:none;border-left:' .. leftBorder .. ';'
end
end
end
if borderStyle ~= '' or branchStyle ~= '' or branchLength ~= '' or sublabelStyle ~= "" then
local branchLengthStyle = ""
if branchLength ~= "" then
if childNumber == 1 then
branchLengthStyle = 'width:' .. branchLength .. ';' -- add width to first element
end
--if childNumber > 1 then prefix = 'max-' end
branchLengthStyle = branchLengthStyle --= prefix .. 'width:' .. branchLength .. ';'
.. 'max-width:' .. branchLength ..';'
.. 'padding:0em;' -- remove padding to make calculation easier
end
styleString = 'style="' .. borderStyle .. branchLengthStyle .. branchStyle .. sublabelStyle .. '"'
--styleString = ' style="' .. borderStyle .. branchStyle .. sublabelStyle .. '"'
end
--local sublabel = p.addLabel(childNumber,subLabel)
if childNumber == lastNode then
classString = 'class="clade-slabel last' .. widthClass .. '" '
else
classString = 'class="clade-slabel' .. reverseClass .. widthClass .. '" '
end
local sublabelCellString = '\n|' .. classString .. styleString .. '|' .. p.addLabel(childNumber,subLabel)
--cladeString = cladeString .. sublabelCellString
-- constuct child element wikitext
if reverseClade then
cladeString = cladeString .. '\n|-'
cladeString = cladeString .. barLabelCellString
cladeString = cladeString .. leafCellString
cladeString = cladeString .. labelCellString
cladeString = cladeString .. '\n|-'
cladeString = cladeString .. sublabelCellString
else
cladeString = cladeString .. '\n|-'
cladeString = cladeString .. labelCellString
cladeString = cladeString .. leafCellString
cladeString = cladeString .. barLabelCellString
cladeString = cladeString .. '\n|-' -- add second row (only one cell needed for sublabel because of rowspan=2);
cladeString = cladeString .. sublabelCellString
end
return cladeString
end
--[[ adds text for label or sublabel to a cell
]]
function p.addLabel(childNumber,nodeLabel)
--local nodeLabel = mw.getCurrentFrame():getParent().args['label'..tostring(childNumber)] or ""
--local firstChars = string.sub(nodeLabel, 1,2) -- get first two characters; will be {{ if no parameter (for Old method?)
--if firstChars == "{{{" or nodeLabel == "" then
if nodeLabel == "" then
-- Has to be some content for layout, but can use CSS to add it instead.
return ''
else
-- spaces can cause wrapping and can break tree structure, hence use span with nowrap class
--return '<span class="nowrap">' .. nodeLabel .. '</span>'
-- a better method for template expansion size is to replace spaces with nonbreaking spaces
-- however, there is a problem if labels have a styling element (e.g. <span style= ..., <span title= ...)
local stylingElementDetected = false
if string.find(nodeLabel, "span ") ~= nil then stylingElementDetected = true end
if string.find(nodeLabel, " style") ~= nil then stylingElementDetected = true end
--TODO test following alternative
--if nodeLabel:find( "%b<>") then stylingElementDetected = true end
if stylingElementDetected == true then
return '<div style=display:inline class=nowrap>' .. nodeLabel .. '</div>'
else
local nowrapString = string.gsub(nodeLabel, " ", " ") -- replace spaces with non-breaking space
if not nowrapString:find("UNIQ.-QINU") and not nowrapString:find("%[%[.-%]%]") then -- unless a strip marker
nowrapString = string.gsub(nowrapString, "-", "‑") -- replace hyphen with non-breaking hyphen (‑)
end
return nowrapString
end
end
end
--[[=================== Newick string handling function =============================
]]
function p.getNewickOuterterm(newickString)
return string.gsub(newickString, "%b()", "") -- delete parenthetic term
end
function p.newick(count,newickString)
--start table
--'{| style="border-collapse:collapse;border-spacing:0;border:0;margin:0;'
local cladeString = '{|class=clade '
count = count + 1
local j,k
j,k = string.find(newickString, '%(.*%)') -- find location of outer parenthesised term
local innerTerm = string.sub(newickString, j+1, k-1) -- select content in parenthesis
local outerTerm = string.gsub(newickString, "%b()", "") -- delete parenthetic term
if outerTerm == 'panthera' then outerTerm = "x" end -- how is this set in local variable for inner nodes?
outerTerm = tostring(count)
-- need to remove commas in bracket terms before split, so temporarily replace commas between brackets
local innerTerm2 = string.gsub(innerTerm, "%b()", function (n)
return string.gsub(n, ",%s*", "XXX") -- also strip spaces after commas here
end)
--cladeString = cladeString .. '\n' .. p.addTaxon(1, innerTerm2, "")
-- this needs a lastNode variable
local s = p.strsplit(innerTerm2, ",")
--oldLastNode=lastNode
local lastNode=table.getn(s) -- number of child branches
local i=1
while s[i] do
local restoredString = string.gsub(s[i],"XXX", ",") -- convert back to commas
--restoredString = s[i]
local outerTerm = string.gsub(restoredString, "%b()", "")
if string.find(restoredString, '%(.*%)') then
--cladeString = cladeString .. '\n' .. p.addTaxon(i, restoredString, "x")
cladeString = cladeString .. '\n' .. p.addTaxon(i, p.newick(count,restoredString), outerTerm, lastNode)
-- p.addTaxon(2, p.newick(count,newickString2), "root")
else
cladeString = cladeString .. '\n' .. p.addTaxon(i, restoredString, "", lastNode) --count)
end
i=i+1
end
-- lastNode=oldLastNode
-- close table
--cladeString = cladeString .. '\n' .. '| style="border: 0; padding: 0; vertical-align: top;" | <br/> \n|}'
--cladeString = cladeString .. '\n| <br/> \n|}' -- is this legacy for extra sublabel?
cladeString = cladeString .. '\n|}'
return cladeString
end
-- emulate a standard split string function
-- why not use mw.text.split(s, sep)?
function p.strsplit(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={}
local i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str
i = i + 1
end
return t
end
-- =================== experimental Newick to clade parser function =============================
--[[Function of convert Newick strings to clade format
Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|newickConverter|newickstring={{{NEWICK_STRING}}} }}
]]
function p.newickConverter(frame)
local newickString = frame.args['newickstring'] or frame.args['newick'] or pargs['newickstring'] or pargs['newick']
--if newickString == '{{{newickstring}}}' then return newickString end
newickString = p.processNewickString(newickString,"") -- "childNumber")
-- show the Newick string
local cladeString = ''
local levelNumber = 1 -- for depth of iteration
local childNumber = 1 -- number of sister elements on node (always one for root)
-- converted the newick string to the clade structure
cladeString = cladeString .. '{{clade'
cladeString = cladeString .. p.newickParseLevel(newickString, levelNumber, childNumber)
cladeString = cladeString .. '\r}}'
local resultString = ''
local option = pargs['option'] or ''
if option == 'tree' then
--show the transcluded clade diagram
resultString = cladeString
else
-- show the Newick string
resultString = '<pre>'..newickString..'</pre>'
-- show the converted clade structure
resultString = resultString .. '<pre>'.. cladeString ..'</pre>'
end
--resultString = frame:expandTemplate{ title = 'clade', frame:preprocess(cladeString) }
return resultString
end
--[[ Parse one level of Newick string
This function receives a Newick string, which has two components
1. the right hand term is a clade label: |labelN=labelname
2. the left hand term in parenthesis has common delimited child nodes, each of which can be
i. a taxon name which just needs: |N=leafname
ii. a Newick string which needs further processing through reiteration
]]
function p.newickParseLevel(newickString,levelNumber,childNumber)
local cladeString = ""
local indent = p.getIndent(levelNumber)
--levelNumber=levelNumber+1
local j=0
local k=0
j,k = string.find(newickString, '%(.*%)') -- find location of outer parenthesised term
local innerTerm = string.sub(newickString, j+1, k-1) -- select content in parenthesis
local outerTerm = string.gsub(newickString, "%b()", "") -- delete parenthetic term
cladeString = cladeString .. indent .. '|label'..childNumber..'=' .. outerTerm
cladeString = cladeString .. indent .. '|' .. childNumber..'=' .. '{{clade'
levelNumber=levelNumber+1
indent = p.getIndent(levelNumber)
-- protect commas in inner parentheses from split; temporarily replace commas between parentheses
local innerTerm2 = string.gsub(innerTerm, "%b()", function (n)
return string.gsub(n, ",%s*", "XXX") -- also strip spaces after commas here
end)
local s = p.strsplit(innerTerm2, ",")
local i=1
while s[i] do
local restoredString = string.gsub(s[i],"XXX", ",") -- convert back to commas
local outerTerm = string.gsub(restoredString, "%b()", "")
if string.find(restoredString, '%(.*%)') then
--cladeString = cladeString .. indent .. '|y' .. i .. '=' .. p.newickParseLevel(restoredString,levelNumber+1,i)
cladeString = cladeString .. p.newickParseLevel(restoredString,levelNumber,i)
else
cladeString = cladeString .. indent .. '|' .. i .. '=' .. restoredString --.. '(level=' .. levelNumber .. ')'
end
i=i+1
end
-- end -- end splitting of strings
cladeString = cladeString .. indent .. '}}'
return cladeString
end
function p.getIndent(levelNumber)
local indent = "\r"
local extraIndent = pargs['indent'] or mw.getCurrentFrame().args['indent'] or 0
while tonumber(extraIndent) > 0 do
indent = indent .. " " -- an extra indent to make aligining compound trees easier
extraIndent = extraIndent - 1
end
while levelNumber > 1 do
indent = indent .. " "
levelNumber = levelNumber-1
end
return indent
end
function p.newickstuff(newickString)
end
function p.processNewickString(newickString,childNumber)
local maxPatterns = 5
local i = 0
local pargs = pargs
local pattern = pargs['newick'..tostring(childNumber)..'-pattern'] -- unnumbered option for i=1
local replace = pargs['newick'..tostring(childNumber)..'-replace']
while i < maxPatterns do
i=i+1
pattern = pattern or pargs['newick'..tostring(childNumber)..'-pattern'..tostring(i)]
replace = replace or pargs['newick'..tostring(childNumber)..'-replace'..tostring(i)] or ""
if pattern then
newickString = string.gsub (newickString, pattern, replace)
end
pattern = nil; replace = nil
end
newickString = string.gsub (newickString, "_", " ") -- replace underscore with space
return newickString
end
------------------------------------------------------------------------------------------
function p.test2(target)
local target ="User:Jts1882/sandbox/templates/Template:Passeroidea"
local result = mw.getCurrentFrame():expandTemplate{ title = target, args = {['style'] = '' } }
return result
end
-------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
--[[function getCladeTreeInfo()
this preprocessing loop gets information about the whole structure (number of nodes, leaves etc)
it makes a redundant calls to the templates through transclusion, but doen't affect the template depths;
it provides the global lastNode that is used to limit the main while loop
--]]
function p.getCladeTreeInfo()
-- enable proprocessing loop
local childNumber = 0
local childCount =0
local maxChildren =20
--info veriables (these are global for now)
nodeCount=0
cladeCount=0
leafCount=0
while childNumber < maxChildren do -- preprocessing loop
childNumber = childNumber + 1 -- so we start with 1
local nodeLeaf,data = pargs[tostring(childNumber)] or "" -- get data from |N=
local newickString = pargs['newick'..tostring(childNumber)] or "" -- get data from |labelN=
local listString = pargs['list'..tostring(childNumber)] or "" -- get data from |labelN=
if newickString ~= "" or nodeLeaf ~= "" or listString ~= "" then
--if nodeLeaf ~= "" then
childCount = childCount + 1 -- this counts child elements in this clade
--[[]
for i in string.gmatch(nodeLeaf, "||rowspan") do -- count number of rows started (transclusion)
nodeCount = nodeCount + 1
end
for i in string.gmatch(nodeLeaf, '{|class="clade"') do -- count number of tables started (transclusion)
cladeCount = cladeCount + 1
end
]]
-- count occurences of clade structure using number of classes used and add to counters
local _, nClades = string.gsub(nodeLeaf, 'class="clade"', "")
local _, nNodes = string.gsub(nodeLeaf, 'class="clade%-leaf"', "")
cladeCount = cladeCount + nClades
nodeCount = nodeCount + nNodes
lastNode = childNumber -- this gets the last node with a valid entry, even when missing numbers
end
end
--]]
-- nodes can be either terminal leaves or a clade structure (table)
-- note: should change class clade-leaf to clade-node to reflect this
nodeCount = nodeCount -- number of nodes (class clade-leaf) passed down by transduction
+ childCount + 1 -- plus one for current clade and one for each of its child element
cladeCount = cladeCount + 1 -- number of clade structure tables passed down by transduction (plus one for current clade)
leafCount = nodeCount-cladeCount -- number of terminal leaves (equals height of cladogram)
-- output for testing: number of clades / total nodes / terminal nodes (=leaves)
-- (internal nodes) (cladogram height)
infoOutput = '<small>[' .. cladeCount .. '/' .. nodeCount .. '/' .. leafCount .. ']</small>'
return infoOutput
end
function p.showClade(frame)
--local code = frame.args.code or ""
local code = frame:getParent().args['code2'] or frame.args['code2'] or ""
--return code
--return mw.text.unstrip(code)
--local test = "<pre>Hello</pre>"
--return string.sub(test,6,-7)
local o1 =frame:getParent():getArgument('code2') or frame:getArgument('code2')
return o1:expand()
--return string.sub(code,2,-1) -- strip marker \127'"`UNIQ--tagname-8 hex digits-QINU`"'\127
--return frame:preprocess(string.sub(code,3))
end
function p.firstToUpper(str)
return (str:gsub("^%l", string.upper))
end
--[[ function to generate cladogram from a wikitext-like list
- uses @ instead of * because we don't want wikitext processed and nowiki elements are passed as stripmarkers (?)
]]
function p.list(count,listString)
local cladeString = ""
--count = count+1
local i=1
local child=1
local lastNode=0--table.getn(list) -- number of child branches (potential)
local listChar = "@"
if listString:find("UNIQ.-QINU") then -- if wrapped in nowiki
mw.addWarning("Stripping content in nowiki tags")
listString = mw.text.trim( mw.text.unstripNoWiki( listString ) )
end
if string.match( listString, "^*", 1 ) then
listChar = "*"
end
local list = mw.text.split(listString, "\n")
cladeString = cladeString .. '{| class="clade" '
while list[i] do
list[i]=list[i]:gsub("^"..listChar, "") -- strip the first @ or *
list[i]=mw.text.trim(list[i]) -- trim
if not string.match( list[i], "^"..listChar, 1 ) then -- count children at this level (not beginning wiht @/*)
lastNode = lastNode+1
end
i=i+1
end
i=1
while list[i] do
--[[ pseudocode:
if next value begins with @ we have a subtree,
which must be recombined and past iteratively
else we have a simple leaf
]]
-- if the next value begins with @, we have a subtree which should be recombined
if list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) then
local label=list[i]
i=i+1
local recombined = list[i]
while list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) do
recombined = recombined .. "\n" .. list[i+1]
i=i+1
end
--cladeString = cladeString .. '\n' .. p.addTaxon(child, recombined, label, lastNode)
cladeString = cladeString .. '\n' .. p.addTaxon(child, p.list(count,recombined), label, lastNode)
else
cladeString = cladeString .. '\n' .. p.addTaxon(child, list[i], "", lastNode)
end
i=i+1
child=child+1
end
cladeString = cladeString .. '\n|}'
mw.addWarning("WARNING. This is a test feature only.")
return cladeString
end
-- =================== experimental wikitext list to clade parser function =============================
--[[Function of convert wikitext lists to clade format
Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|listConverter|list={{{WIKITEXT_LIST}}} }}
]]
function p.cladeConverter(frame)
pargs = getArgs(frame)
if frame.args['list'] or pargs['list'] then
return p.listConverter(frame)
elseif frame.args['newickstring'] or frame.args['newick'] or pargs['newickstring'] or pargs['newick'] then
return p.newickConverter(frame)
else
local message = "Conversion needs wikitext list or newick string in parameters ''list'' or ''newick'' respectively"
mw.addWarning(message)
return message
end
end
function p.listConverter(frame)
local listString = frame.args['list'] or pargs['list']
-- show the list string
local cladeString = ''
local levelNumber = 1 -- for depth of iteration
local childNumber = 1 -- number of sister elements on node (always one for root)
local indent = p.getIndent(levelNumber)
-- converted the newick string to the clade structure
cladeString = cladeString .. indent .. '{{clade'
cladeString = cladeString .. p.listParseLevel(listString, levelNumber, childNumber)
--cladeString = cladeString .. '\r}}'
local resultString = ''
local option = pargs['option'] or ''
if option == 'tree' then
--show the transcluded clade diagram
resultString = cladeString
else
-- show the wikitext list string
resultString = '<pre>'..listString..'</pre>'
-- show the converted clade structure
resultString = resultString .. '<pre>'.. cladeString ..'</pre>'
end
--resultString = frame:expandTemplate{ title = 'clade', frame:preprocess(cladeString) }
return resultString
end
function p.listParseLevel(listString,levelNumber,childNumber)
local cladeString = ""
local indent = p.getIndent(levelNumber)
levelNumber=levelNumber+1
local nowiki = false
if listString:find("UNIQ.-QINU") then -- if wrapped in nowiki
mw.addWarning("Stripping content in nowiki tags")
listString = mw.text.trim( mw.text.unstripNoWiki( listString ) )
nowiki = true
end
local listChar = "@"
if string.match( listString, "^*", 1 ) then
listChar = "*"
end
local list = mw.text.split(listString, "\n")
local i=1
local child=1
local lastNode=0
while list[i] do
list[i]=list[i]:gsub("^"..listChar, "") -- strip the first @
if not string.match( list[i], "^"..listChar, 1 ) then -- count children at this level (not beginning wiht @)
lastNode = lastNode+1
end
i=i+1
end
i=1
while list[i] do
--[[ pseudocode:
if next value begins with @ we have a subtree,
which must be recombined and past iteratively
else we have a simple leaf
]]
-- if the next value begins with @, we have a subtree which should be recombined
if list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) then
local label=list[i]
i=i+1
local recombined = list[i]
while list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) do
recombined = recombined .. "\n" .. list[i+1]
i=i+1
end
cladeString = cladeString .. indent .. '|label' .. child ..'=' .. label
cladeString = cladeString .. indent .. '|' .. child ..'=' .. '{{clade'
.. p.listParseLevel(recombined,levelNumber,i)
else
cladeString = cladeString .. indent .. '|' .. child ..'=' .. list[i]
end
i=i+1
child=child+1
end
cladeString = cladeString .. indent .. '}}'
if nowiki then
return mw.getCurrentFrame():preprocess( '<nowiki>'.. cladeString .. '</nowiki>') --return wrapped in nowiki
else
return cladeString
end
end
-- this must be at end
return p
8tj8mn75yncxi47quf6o8se49gw6ama
416472
416471
2026-10-04T17:02:41Z
محک
1023
۱ نسخه واردشده از [[:en:Module:Clade]]
416471
Scribunto
text/plain
--[[NOTE: this module contains functions for generating the table structure of the clade tree:
The main function is called by the template using the {{invoke}} instruction; the three main functions are:
p.main(frame) - opens and closes table, loops through the children of node, main is invoked once and controls the rest, calling ...
p.addTaxon(childNumber, nodeLeaf) - the nuts and bolts; code dealing with each child node
p.addLabel(childNumber) - adds the label text
now uses templatestyles
]]
require('strict')
local getArgs = require('Module:Arguments').getArgs
local p = {}
local pargs = {} -- parent arguments
local lastNode=0
local nodeCount=0
local cladeCount=0
local leafCount=0
local templateStylesCount=0
local infoOutput
local reverseClade = false
--[[============================== main function ===========================
-- main function, which will generate the table structure of the tree
Test version:
Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|main|style={{{STYLE|}}} }}
Template:CladeN
Release version:
Usage: {{#invoke:Clade|main|style={{{STYLE|}}} }}
Template:Clade
]]
function p.main(frame)
local cladeString = ""
local maxChildren = 20 -- was 17 in the clade/cladex templates
local childNumber = 0
local childCount = 0 -- number of leaves in the clade (can use to set bottom of bracket in addTaxon()
local totalCount = 0
pargs = getArgs(frame) -- parent arguments
infoOutput = p.getCladeTreeInfo() -- get info about clade structure, e.g. lastNode (last |N= child number)
--[[ add the templatestyles tag conditionally to reduce expansion size (currently diabled)
when added to every clade table, it increases post‐expand include size significantly
e.g. the Neosuchia page (or test version) is increase by about 8% (672 bytes each)
if template styles added to all pages there are 133 stripmarkers
with cladeCount==1 condition, this is reduced to 34
however cladeCount==1 condition interfers with fix for additional line due to parser bug T18700
killing the strip markers also removes backlinks to references using citation templates
--]]
--cladeString =mw.text.killMarkers( cladeString ) -- also kills off strip markers using citation templates
--cladeString = mw.text.unstrip(cladeString)
--if cladeCount==1 then
cladeString = cladeString .. frame:extensionTag('templatestyles', '',
{ src="Template:Clade/styles.css" }) .. '\n'
--end
local tableStyle = frame.args.style or pargs.style or ""
if tableStyle ~= "" then
tableStyle = ' style="' .. tableStyle .. '"' -- include style= in string to suppress empty style elements
end
reverseClade =frame.args.reverse or pargs.reverse or false -- a global
--ENFORCE GLOBAL FOR DEVELOPMENT
--reverseClade = true
local captionName = pargs['caption'] or ""
local captionStyle = pargs['captionstyle'] or ""
-- add an element to mimick nowiki WORKS BUT DISABLE FOR DEMO PURPOSES
--cladeString = '<p class="mw-empty-elt"></p>\n'
-- open table
-- (border-collapse causes problems (see talk) -- cladeString = cladeString .. '{| style="border-collapse:collapse;border-spacing:0;margin:0;' .. tableStyle .. '"'
-- (before CSS styling) -- cladeString = cladeString .. '{| style="border-spacing:0;margin:0;' .. tableStyle .. '"'
cladeString = cladeString .. '{|class="clade"' .. tableStyle
-- add caption
if captionName ~= "" then
cladeString = cladeString .. '\n|+ style="' .. captionStyle .. '"|' .. captionName
end
local moreNeeded = true
childNumber = 0
--lastNode = 0
--[[get child elements (add more rows for each child of node; each child is two rows)
the function addTaxon is called to add the rows for each child element;
each child add two rows: the first cell of each row contains the label or sublabel (below the line label), respectively;
the second cell spans both rows and contains the leaf name or a new clade structure
a third cell on the top row is sometimes added to contain a group to the right
]]
-- main loop
while childNumber < lastNode do -- use the last number determined in the preprocessing
childNumber = childNumber + 1 -- so we start with 1
local nodeLeaf = pargs[tostring(childNumber)] or "" -- get data from |N=
local nodeLabel = pargs['label'..tostring(childNumber)] or "" -- get data from |labelN=
local newickString = pargs['newick'..tostring(childNumber)] or "" -- get data from |labelN=
local listString = pargs['list'..tostring(childNumber)] or ""
if listString ~= "" then
cladeString = cladeString .. '\n' .. p.addTaxon(childNumber, p.list(0, listString), nodeLabel, lastNode)
elseif newickString ~= "" then -- if using a newick string instead of a clade structure
newickString = p.processNewickString(newickString,childNumber)
if nodeLabel == "" then -- use labelN by default, otherwise use root name from Newick string
nodeLabel = p.getNewickOuterterm(newickString) -- need to use terminal part of newick string for label
end
cladeString = cladeString .. '\n' .. p.addTaxon(childNumber, p.newick(0, newickString), nodeLabel, lastNode)
--lastNode=lastNode+1 -- there is a counting problem with the newickstring
elseif nodeLeaf ~= "" then -- if the node contains a leaf name or clade structue
--if reverseClade2 then
-- cladeString = cladeString .. '\n' .. p.addTaxonReverse(childNumber, nodeLeaf, nodeLabel, lastNode)
--else
cladeString = cladeString .. '\n' .. p.addTaxon(childNumber, nodeLeaf, nodeLabel, lastNode)
--end
end
end
local footerText = pargs['footer'] or ""
local footerStyle = pargs['footerstyle'] or ""
if footerText ~= "" then
cladeString = cladeString .. '\n|-style="' .. footerStyle .. '"\n|colspan="2"|<p>' .. footerText .. '</p>||'
-- note the footer causes a problem with tr:last-child so need either
-- (1) use <tfoot> but it is not allowed or incompatable
-- cladeString = cladeString .. '<tfoot><tr style="' .. footerStyle .. '"><td colspan="2"><p>' .. footerText .. '</p></td></tr></tfoot>'
-- (2) always add footer and use nth:last-child(2) but is this backwards compatible
-- (3) if footer= set the style inline for the last sublabel row (more a temp fix)
-- (4) set class for first and last element (DONE. Also works well with reverse class)
end
-- close table (wikitext to close table)
cladeString = cladeString .. '\n|}'
cladeString = p.addSubTrees(cladeString) -- add subtrees
--wrap in div to allow overflow display; new vector skin for mobile has issues (see talk page)
if pargs['overflow'] == 'yes' or 1==1 then -- force for all cases
local divCSS = ' class="clade"' -- ' style="overflow:auto;"'
if string.find(cladeString, divCSS) then
cladeString = string.gsub(cladeString, divCSS, "") -- delete CSS styling of inner clades (only want on outer)
end
return '<div' .. divCSS .. '>' .. cladeString .. '</div>'
else
return cladeString
end
--return '<div style="width:auto;">\n' .. cladeString .. '</div>'
end
--[[ =============================function to add subtrees ========================================== ]]
function p.addSubTrees(cladeString)
--local pargs = mw.getCurrentFrame():getParent().args
local suffix = { [1]="A", [2]="B", [3]="C", [4]="D", [5]="E", [6]="F", [7]="G", [8]="H", [9]="I", [10]="J",
[11]="K", [12]="L", [13]="M", [14]="N", [15]="O", [16]="P", [17]="Q", [18]="R", [19]="S", [20]="T",
[21]="U", [22]="V", [23]="W", [24]="X", [25]="Y", [26]="Z"}
for i=1, 26, 1 do
local subclade = pargs['subclade'..suffix[i]]
local target = pargs['target'..suffix[i]] or "SUBCLADE_" .. suffix[i]
if subclade then
if string.find(cladeString, target) then
cladeString = string.gsub(cladeString,target,subclade)
end
end
end
return cladeString
end
--[[ -------------------------------------- p.addTaxon() ------------------------------------------
function to add child elements
adds wikitext for two rows of the table for each child node,
the first cell in each is used for the label and sublabel; the bottom border forms the horizonal branch of the bracket
the second cell is used for the leafname or a transcluded clade structure and spans both rows
note that the first and last child nodes need to be handled differently from the middle elements
the middle elements (|2, |3 ...) use a left border to create the vertical line of the bracket
the first child element doesn't use a left border for the first cell in the top row (as it is above the bracket)
the last child doesn't use a left border for the first cell in the second row (as it is below the bracket)
]]
function p.addTaxon(childNumber, nodeLeaf, nodeLabel, lastNode)
--[[ get border formating parameters (i.e. color, thickness, state)
nodeParameters for whole bracket (unnumbered, i.e. color, thickness, state) apply to whole node bracket,
branchParameters apply to individual branches
the branch parameters have a number, e.g. |colorN, |thicknessN, |stateN
the node parameters have no number, e.g. |color, |thickness, |state
]]
local nodeColor = pargs['color'] or "" -- don't set default to allow green on black gadget
local nodeThickness = tonumber(pargs['thickness']) or 1
local nodeState = pargs['state'] or "solid"
-- get border formating parameters for branch (default to global nodeParameters)
local branchColor = pargs['color'..tostring(childNumber)] or nodeColor
local branchThickness = tonumber(pargs['thickness'..tostring(childNumber)]) or nodeThickness
local branchState = pargs['state'..tostring(childNumber)] or nodeState
if branchState == 'double' then
if branchThickness < 2 then branchThickness = 3 end -- need thick line for double
end
local branchStyle = pargs['style'..tostring(childNumber)] or ""
local branchLength = pargs['length'] or pargs['length'..tostring(childNumber)] or ""
-- the left border takes node parameters, the bottom border takes branch parameters
-- this has coding on the colours for green on black
local bottomBorder = tostring(branchThickness) ..'px ' .. branchState .. (branchColor~="" and ' ' .. branchColor or '')
local leftBorder = tostring(nodeThickness) ..'px ' .. nodeState .. (nodeColor~="" and ' ' .. nodeColor or '')
--The default border styles are in the CSS (styles.css)
-- the inline styling is applied when thickness, color or state are change
local useInlineStyle = false
-- use inline styling non-default color, line thickness or state have been set
if branchColor ~= "" or branchThickness ~= 1 or branchState ~= "solid" then
useInlineStyle = true
end
-- variables for right hand bar or bracket
--local barColor = ""
local barRight = pargs['bar'..tostring(childNumber)] or "0"
local barBottom = pargs['barend'..tostring(childNumber)] or "0"
local barTop = pargs['barbegin'..tostring(childNumber)] or "0"
local barLabel = pargs['barlabel'..tostring(childNumber)] or ""
local groupLabel = pargs['grouplabel'..tostring(childNumber)] or ""
local groupLabelStyle = pargs['grouplabelstyle'..tostring(childNumber)] or ""
local labelStyle = pargs['labelstyle'..tostring(childNumber)] or ""
local sublabelStyle = pargs['sublabelstyle'..tostring(childNumber)] or ""
--replace colours with format string; need right bar for all three options
if barRight ~= "0" then barRight = "2px solid " .. barRight end
if barTop ~= "0" then barRight = "2px solid " .. barTop end
if barBottom ~= "0" then barRight = "2px solid " .. barBottom end
if barTop ~= "0" then barTop = "2px solid " .. barTop end
if barBottom ~= "0" then barBottom = "2px solid " .. barBottom end
-- now construct wikitext
local cladeString = ''
local styleString = ''
local borderStyle = '' -- will be used if border color, thickness or state is to be changed
local classString = ''
local reverseClass = ''
local widthClass = ''
-- class to add if using reverse (rtl) cladogram;
if reverseClade then reverseClass = ' reverse' end
-- (1) wikitext for new row
--cladeString = cladeString .. '\n|-'
-- (2) now add cell with label
if useInlineStyle then
if childNumber == 1 then
borderStyle = 'border-left:none;border-right:none;border-bottom:' .. bottomBorder .. ';'
--borderStyle = 'border-bottom:' .. bottomBorder .. ';'
else -- for 2-17
if reverseClade then
borderStyle = 'border-left:none;border-right:' .. leftBorder .. ';border-bottom:' .. bottomBorder .. ';'
else
borderStyle = 'border-left:' .. leftBorder .. ';border-bottom:' .. bottomBorder .. ';'
end
end
end
if useInlineStyle or branchStyle ~= '' or branchLength ~= "" or labelStyle ~= "" then
local branchLengthStyle = ""
if branchLength ~= "" then
if childNumber == 1 then
branchLengthStyle = 'width:' .. branchLength .. ';' -- add width to first element
end
--if childNumber > 1 then prefix = 'max-' end
branchLengthStyle = branchLengthStyle --= prefix .. 'width:' .. branchLength .. ';'
.. 'max-width:' .. branchLength ..';'
.. 'padding:0em;' -- remove padding to make calculation easier
-- following moved to styles.css
-- .. 'white-space:nowrap'
-- .. 'overflow:hidden;' -- clip labels longer than the max-width
-- .. 'text-overflow:clip;' -- ellipsis;'
widthClass = " clade-fixed-width"
end
styleString = 'style="' .. borderStyle .. branchLengthStyle .. branchStyle .. labelStyle .. '"'
end
if childNumber == 1 then
classString= 'class="clade-label first'.. widthClass .. '" ' -- add class "first" for top row
else
classString = 'class="clade-label' .. reverseClass .. widthClass .. '" ' -- add "reverse" class if ltr cladogram
end
-- wikitext for cell with label
local labelCellString = '\n|' .. classString .. styleString .. '|' .. p.addLabel(childNumber,nodeLabel) -- p.addLabel(nodeLabel)
--cladeString = cladeString .. labelCellString
---------------------------------------------------------------------------------
-- (3) add cell with leaf (which may be a table with transluded clade content)
if barRight ~= "0" then
if reverseClade then -- we want the bar on the left
styleString = ' style="border-left:' .. barRight .. ';border-bottom:' .. barBottom .. ';border-top:' .. barTop .. ';' .. branchStyle .. '"'
else
styleString = ' style="border-right:' .. barRight .. ';border-bottom:' .. barBottom .. ';border-top:' .. barTop .. ';' .. branchStyle .. '"'
end
else
if (branchStyle ~= '') then
styleString = ' style="' .. branchStyle .. '"'
else
styleString = '' -- use defaults in styles.css
end
end
classString = 'class="clade-leaf' .. reverseClass .. '"'
--[[note: the \n causes plain leaf elements get wrapped in <p> with style="margin:0.4em 0 0.5em 0;"
this adds spacing to rows, but is set by defaults rather than the clade template
it also means there are two newlines when it is a clade structure (which might explain some past issues)
]]
local content = '\n' .. nodeLeaf -- the newline is not necessary, but keep for backward compatibility
-- test using image parameter
local image = pargs['image'..tostring(childNumber)] or ""
if image ~= "" then
--content = content .. image -- basic version
content = '\n{|class=clade style=width:auto' --defaults to width:100% because of class "clade"
.. '\n|class=clade-leaf|\n' .. nodeLeaf
.. '\n|class=clade-leaf|\n' .. image
.. '\n|}'
-- note: the classes interfere with the node counter, so try simpler version with style
content = '\n{|style=width:100%;border-spacing:0' --width:auto is "tight"; 100% needed for image alignment
.. '\n|style=border:0;padding:0|\n' .. nodeLeaf
.. '\n|style=border:0;padding:0|\n' .. image
.. '\n|}'
end
-- wikitext for leaf cell (note: nodeLeaf needs to be on newline if new wikitable)
-- but that is no longer the case (newline is now forced)
-- the newline wraps plain leaf terminals in <P> with vertical padding (see above)
--local leafCellString = '\n|rowspan=2 ' .. classString .. styleString .. ' |\n' .. content -- the new line causes <p> wrapping for plain leaf terminals
local leafCellString = '\n|rowspan=2 ' .. classString .. styleString .. ' |' .. content
--cladeString = cladeString .. leafCellString
-------------------------------------------
-- (4) stuff for right-hand bracket labels
classString='class="clade-bar' .. reverseClass .. '"'
local barLabelCellString = ''
if barRight ~= "0" and barLabel ~= "" then
barLabelCellString = '\n|rowspan=2 ' .. classString .. ' |' .. barLabel
else -- uncomment following line to see the cell structure
--barLabelCellString = '\n|rowspan=2 ' .. classString .. ' |' .. 'BL'
end
if groupLabel ~= "" then
barLabelCellString = barLabelCellString .. '\n|rowspan=2 ' .. classString .. ' style="'.. groupLabelStyle .. '" |' .. groupLabel
else -- uncomment following line to see the cell structure
--barLabelCellString = barLabelCellString .. '\n|rowspan=2 ' .. classString .. '" |' .. 'GL'
end
--cladeString = cladeString .. barLabelCellString
-------------------------------------------------------------------------------------
-- (5) add second row (only one cell needed for sublabel because of rowspan=2);
-- note: earlier versions applied branch style to row rather than cell
-- for consistency, it is applied to the sublabel cell as with the label cell
--cladeString = cladeString .. '\n|-'
-----------------------------------
-- (6) add cell containing sublabel
local subLabel = pargs['sublabel'..tostring(childNumber)] or "" -- request in addLabel
-- FOR TESTING: use subLabel for annotating the clade structues to use structure information (DEBUGGIING ONLY)
--if childNumber==lastNode then subLabel= infoOutput end
-- END TESTING
borderStyle = ''
styleString = ''
if useInlineStyle then
if childNumber==lastNode then -- if childNumber==lastNode we don't want left border, otherwise we do
borderStyle = 'border-right:none;border-left:none;'
else
if reverseClade then
borderStyle = 'border-left:none;border-right:' .. leftBorder .. ';'
else
borderStyle = 'border-right:none;border-left:' .. leftBorder .. ';'
end
end
end
if borderStyle ~= '' or branchStyle ~= '' or branchLength ~= '' or sublabelStyle ~= "" then
local branchLengthStyle = ""
if branchLength ~= "" then
if childNumber == 1 then
branchLengthStyle = 'width:' .. branchLength .. ';' -- add width to first element
end
--if childNumber > 1 then prefix = 'max-' end
branchLengthStyle = branchLengthStyle --= prefix .. 'width:' .. branchLength .. ';'
.. 'max-width:' .. branchLength ..';'
.. 'padding:0em;' -- remove padding to make calculation easier
end
styleString = 'style="' .. borderStyle .. branchLengthStyle .. branchStyle .. sublabelStyle .. '"'
--styleString = ' style="' .. borderStyle .. branchStyle .. sublabelStyle .. '"'
end
--local sublabel = p.addLabel(childNumber,subLabel)
if childNumber == lastNode then
classString = 'class="clade-slabel last' .. widthClass .. '" '
else
classString = 'class="clade-slabel' .. reverseClass .. widthClass .. '" '
end
local sublabelCellString = '\n|' .. classString .. styleString .. '|' .. p.addLabel(childNumber,subLabel)
--cladeString = cladeString .. sublabelCellString
-- constuct child element wikitext
if reverseClade then
cladeString = cladeString .. '\n|-'
cladeString = cladeString .. barLabelCellString
cladeString = cladeString .. leafCellString
cladeString = cladeString .. labelCellString
cladeString = cladeString .. '\n|-'
cladeString = cladeString .. sublabelCellString
else
cladeString = cladeString .. '\n|-'
cladeString = cladeString .. labelCellString
cladeString = cladeString .. leafCellString
cladeString = cladeString .. barLabelCellString
cladeString = cladeString .. '\n|-' -- add second row (only one cell needed for sublabel because of rowspan=2);
cladeString = cladeString .. sublabelCellString
end
return cladeString
end
--[[ adds text for label or sublabel to a cell
]]
function p.addLabel(childNumber,nodeLabel)
--local nodeLabel = mw.getCurrentFrame():getParent().args['label'..tostring(childNumber)] or ""
--local firstChars = string.sub(nodeLabel, 1,2) -- get first two characters; will be {{ if no parameter (for Old method?)
--if firstChars == "{{{" or nodeLabel == "" then
if nodeLabel == "" then
-- Has to be some content for layout, but can use CSS to add it instead.
return ''
else
-- spaces can cause wrapping and can break tree structure, hence use span with nowrap class
--return '<span class="nowrap">' .. nodeLabel .. '</span>'
-- a better method for template expansion size is to replace spaces with nonbreaking spaces
-- however, there is a problem if labels have a styling element (e.g. <span style= ..., <span title= ...)
local stylingElementDetected = false
if string.find(nodeLabel, "span ") ~= nil then stylingElementDetected = true end
if string.find(nodeLabel, " style") ~= nil then stylingElementDetected = true end
--TODO test following alternative
--if nodeLabel:find( "%b<>") then stylingElementDetected = true end
if stylingElementDetected == true then
return '<div style=display:inline class=nowrap>' .. nodeLabel .. '</div>'
else
local nowrapString = string.gsub(nodeLabel, " ", " ") -- replace spaces with non-breaking space
if not nowrapString:find("UNIQ.-QINU") and not nowrapString:find("%[%[.-%]%]") then -- unless a strip marker
nowrapString = string.gsub(nowrapString, "-", "‑") -- replace hyphen with non-breaking hyphen (‑)
end
return nowrapString
end
end
end
--[[=================== Newick string handling function =============================
]]
function p.getNewickOuterterm(newickString)
return string.gsub(newickString, "%b()", "") -- delete parenthetic term
end
function p.newick(count,newickString)
--start table
--'{| style="border-collapse:collapse;border-spacing:0;border:0;margin:0;'
local cladeString = '{|class=clade '
count = count + 1
local j,k
j,k = string.find(newickString, '%(.*%)') -- find location of outer parenthesised term
local innerTerm = string.sub(newickString, j+1, k-1) -- select content in parenthesis
local outerTerm = string.gsub(newickString, "%b()", "") -- delete parenthetic term
if outerTerm == 'panthera' then outerTerm = "x" end -- how is this set in local variable for inner nodes?
outerTerm = tostring(count)
-- need to remove commas in bracket terms before split, so temporarily replace commas between brackets
local innerTerm2 = string.gsub(innerTerm, "%b()", function (n)
return string.gsub(n, ",%s*", "XXX") -- also strip spaces after commas here
end)
--cladeString = cladeString .. '\n' .. p.addTaxon(1, innerTerm2, "")
-- this needs a lastNode variable
local s = p.strsplit(innerTerm2, ",")
--oldLastNode=lastNode
local lastNode=table.getn(s) -- number of child branches
local i=1
while s[i] do
local restoredString = string.gsub(s[i],"XXX", ",") -- convert back to commas
--restoredString = s[i]
local outerTerm = string.gsub(restoredString, "%b()", "")
if string.find(restoredString, '%(.*%)') then
--cladeString = cladeString .. '\n' .. p.addTaxon(i, restoredString, "x")
cladeString = cladeString .. '\n' .. p.addTaxon(i, p.newick(count,restoredString), outerTerm, lastNode)
-- p.addTaxon(2, p.newick(count,newickString2), "root")
else
cladeString = cladeString .. '\n' .. p.addTaxon(i, restoredString, "", lastNode) --count)
end
i=i+1
end
-- lastNode=oldLastNode
-- close table
--cladeString = cladeString .. '\n' .. '| style="border: 0; padding: 0; vertical-align: top;" | <br/> \n|}'
--cladeString = cladeString .. '\n| <br/> \n|}' -- is this legacy for extra sublabel?
cladeString = cladeString .. '\n|}'
return cladeString
end
-- emulate a standard split string function
-- why not use mw.text.split(s, sep)?
function p.strsplit(inputstr, sep)
if sep == nil then
sep = "%s"
end
local t={}
local i=1
for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
t[i] = str
i = i + 1
end
return t
end
-- =================== experimental Newick to clade parser function =============================
--[[Function of convert Newick strings to clade format
Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|newickConverter|newickstring={{{NEWICK_STRING}}} }}
]]
function p.newickConverter(frame)
local newickString = frame.args['newickstring'] or frame.args['newick'] or pargs['newickstring'] or pargs['newick']
--if newickString == '{{{newickstring}}}' then return newickString end
newickString = p.processNewickString(newickString,"") -- "childNumber")
-- show the Newick string
local cladeString = ''
local levelNumber = 1 -- for depth of iteration
local childNumber = 1 -- number of sister elements on node (always one for root)
-- converted the newick string to the clade structure
cladeString = cladeString .. '{{clade'
cladeString = cladeString .. p.newickParseLevel(newickString, levelNumber, childNumber)
cladeString = cladeString .. '\r}}'
local resultString = ''
local option = pargs['option'] or ''
if option == 'tree' then
--show the transcluded clade diagram
resultString = cladeString
else
-- show the Newick string
resultString = '<pre>'..newickString..'</pre>'
-- show the converted clade structure
resultString = resultString .. '<pre>'.. cladeString ..'</pre>'
end
--resultString = frame:expandTemplate{ title = 'clade', frame:preprocess(cladeString) }
return resultString
end
--[[ Parse one level of Newick string
This function receives a Newick string, which has two components
1. the right hand term is a clade label: |labelN=labelname
2. the left hand term in parenthesis has common delimited child nodes, each of which can be
i. a taxon name which just needs: |N=leafname
ii. a Newick string which needs further processing through reiteration
]]
function p.newickParseLevel(newickString,levelNumber,childNumber)
local cladeString = ""
local indent = p.getIndent(levelNumber)
--levelNumber=levelNumber+1
local j=0
local k=0
j,k = string.find(newickString, '%(.*%)') -- find location of outer parenthesised term
local innerTerm = string.sub(newickString, j+1, k-1) -- select content in parenthesis
local outerTerm = string.gsub(newickString, "%b()", "") -- delete parenthetic term
cladeString = cladeString .. indent .. '|label'..childNumber..'=' .. outerTerm
cladeString = cladeString .. indent .. '|' .. childNumber..'=' .. '{{clade'
levelNumber=levelNumber+1
indent = p.getIndent(levelNumber)
-- protect commas in inner parentheses from split; temporarily replace commas between parentheses
local innerTerm2 = string.gsub(innerTerm, "%b()", function (n)
return string.gsub(n, ",%s*", "XXX") -- also strip spaces after commas here
end)
local s = p.strsplit(innerTerm2, ",")
local i=1
while s[i] do
local restoredString = string.gsub(s[i],"XXX", ",") -- convert back to commas
local outerTerm = string.gsub(restoredString, "%b()", "")
if string.find(restoredString, '%(.*%)') then
--cladeString = cladeString .. indent .. '|y' .. i .. '=' .. p.newickParseLevel(restoredString,levelNumber+1,i)
cladeString = cladeString .. p.newickParseLevel(restoredString,levelNumber,i)
else
cladeString = cladeString .. indent .. '|' .. i .. '=' .. restoredString --.. '(level=' .. levelNumber .. ')'
end
i=i+1
end
-- end -- end splitting of strings
cladeString = cladeString .. indent .. '}}'
return cladeString
end
function p.getIndent(levelNumber)
local indent = "\r"
local extraIndent = pargs['indent'] or mw.getCurrentFrame().args['indent'] or 0
while tonumber(extraIndent) > 0 do
indent = indent .. " " -- an extra indent to make aligining compound trees easier
extraIndent = extraIndent - 1
end
while levelNumber > 1 do
indent = indent .. " "
levelNumber = levelNumber-1
end
return indent
end
function p.newickstuff(newickString)
end
function p.processNewickString(newickString,childNumber)
local maxPatterns = 5
local i = 0
local pargs = pargs
local pattern = pargs['newick'..tostring(childNumber)..'-pattern'] -- unnumbered option for i=1
local replace = pargs['newick'..tostring(childNumber)..'-replace']
while i < maxPatterns do
i=i+1
pattern = pattern or pargs['newick'..tostring(childNumber)..'-pattern'..tostring(i)]
replace = replace or pargs['newick'..tostring(childNumber)..'-replace'..tostring(i)] or ""
if pattern then
newickString = string.gsub (newickString, pattern, replace)
end
pattern = nil; replace = nil
end
newickString = string.gsub (newickString, "_", " ") -- replace underscore with space
return newickString
end
------------------------------------------------------------------------------------------
function p.test2(target)
local target ="User:Jts1882/sandbox/templates/Template:Passeroidea"
local result = mw.getCurrentFrame():expandTemplate{ title = target, args = {['style'] = '' } }
return result
end
-------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------
--[[function getCladeTreeInfo()
this preprocessing loop gets information about the whole structure (number of nodes, leaves etc)
it makes a redundant calls to the templates through transclusion, but doen't affect the template depths;
it provides the global lastNode that is used to limit the main while loop
--]]
function p.getCladeTreeInfo()
-- enable proprocessing loop
local childNumber = 0
local childCount =0
local maxChildren =20
--info veriables (these are global for now)
nodeCount=0
cladeCount=0
leafCount=0
while childNumber < maxChildren do -- preprocessing loop
childNumber = childNumber + 1 -- so we start with 1
local nodeLeaf,data = pargs[tostring(childNumber)] or "" -- get data from |N=
local newickString = pargs['newick'..tostring(childNumber)] or "" -- get data from |labelN=
local listString = pargs['list'..tostring(childNumber)] or "" -- get data from |labelN=
if newickString ~= "" or nodeLeaf ~= "" or listString ~= "" then
--if nodeLeaf ~= "" then
childCount = childCount + 1 -- this counts child elements in this clade
--[[]
for i in string.gmatch(nodeLeaf, "||rowspan") do -- count number of rows started (transclusion)
nodeCount = nodeCount + 1
end
for i in string.gmatch(nodeLeaf, '{|class="clade"') do -- count number of tables started (transclusion)
cladeCount = cladeCount + 1
end
]]
-- count occurences of clade structure using number of classes used and add to counters
local _, nClades = string.gsub(nodeLeaf, 'class="clade"', "")
local _, nNodes = string.gsub(nodeLeaf, 'class="clade%-leaf"', "")
cladeCount = cladeCount + nClades
nodeCount = nodeCount + nNodes
lastNode = childNumber -- this gets the last node with a valid entry, even when missing numbers
end
end
--]]
-- nodes can be either terminal leaves or a clade structure (table)
-- note: should change class clade-leaf to clade-node to reflect this
nodeCount = nodeCount -- number of nodes (class clade-leaf) passed down by transduction
+ childCount + 1 -- plus one for current clade and one for each of its child element
cladeCount = cladeCount + 1 -- number of clade structure tables passed down by transduction (plus one for current clade)
leafCount = nodeCount-cladeCount -- number of terminal leaves (equals height of cladogram)
-- output for testing: number of clades / total nodes / terminal nodes (=leaves)
-- (internal nodes) (cladogram height)
infoOutput = '<small>[' .. cladeCount .. '/' .. nodeCount .. '/' .. leafCount .. ']</small>'
return infoOutput
end
function p.showClade(frame)
--local code = frame.args.code or ""
local code = frame:getParent().args['code2'] or frame.args['code2'] or ""
--return code
--return mw.text.unstrip(code)
--local test = "<pre>Hello</pre>"
--return string.sub(test,6,-7)
local o1 =frame:getParent():getArgument('code2') or frame:getArgument('code2')
return o1:expand()
--return string.sub(code,2,-1) -- strip marker \127'"`UNIQ--tagname-8 hex digits-QINU`"'\127
--return frame:preprocess(string.sub(code,3))
end
function p.firstToUpper(str)
return (str:gsub("^%l", string.upper))
end
--[[ function to generate cladogram from a wikitext-like list
- uses @ instead of * because we don't want wikitext processed and nowiki elements are passed as stripmarkers (?)
]]
function p.list(count,listString)
local cladeString = ""
--count = count+1
local i=1
local child=1
local lastNode=0--table.getn(list) -- number of child branches (potential)
local listChar = "@"
if listString:find("UNIQ.-QINU") then -- if wrapped in nowiki
mw.addWarning("Stripping content in nowiki tags")
listString = mw.text.trim( mw.text.unstripNoWiki( listString ) )
end
if string.match( listString, "^*", 1 ) then
listChar = "*"
end
local list = mw.text.split(listString, "\n")
cladeString = cladeString .. '{| class="clade" '
while list[i] do
list[i]=list[i]:gsub("^"..listChar, "") -- strip the first @ or *
list[i]=mw.text.trim(list[i]) -- trim
if not string.match( list[i], "^"..listChar, 1 ) then -- count children at this level (not beginning wiht @/*)
lastNode = lastNode+1
end
i=i+1
end
i=1
while list[i] do
--[[ pseudocode:
if next value begins with @ we have a subtree,
which must be recombined and past iteratively
else we have a simple leaf
]]
-- if the next value begins with @, we have a subtree which should be recombined
if list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) then
local label=list[i]
i=i+1
local recombined = list[i]
while list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) do
recombined = recombined .. "\n" .. list[i+1]
i=i+1
end
--cladeString = cladeString .. '\n' .. p.addTaxon(child, recombined, label, lastNode)
cladeString = cladeString .. '\n' .. p.addTaxon(child, p.list(count,recombined), label, lastNode)
else
cladeString = cladeString .. '\n' .. p.addTaxon(child, list[i], "", lastNode)
end
i=i+1
child=child+1
end
cladeString = cladeString .. '\n|}'
mw.addWarning("WARNING. This is a test feature only.")
return cladeString
end
-- =================== experimental wikitext list to clade parser function =============================
--[[Function of convert wikitext lists to clade format
Usage: {{#invoke:Module:Sandbox/Jts1882/CladeN|listConverter|list={{{WIKITEXT_LIST}}} }}
]]
function p.cladeConverter(frame)
pargs = getArgs(frame)
if frame.args['list'] or pargs['list'] then
return p.listConverter(frame)
elseif frame.args['newickstring'] or frame.args['newick'] or pargs['newickstring'] or pargs['newick'] then
return p.newickConverter(frame)
else
local message = "Conversion needs wikitext list or newick string in parameters ''list'' or ''newick'' respectively"
mw.addWarning(message)
return message
end
end
function p.listConverter(frame)
local listString = frame.args['list'] or pargs['list']
-- show the list string
local cladeString = ''
local levelNumber = 1 -- for depth of iteration
local childNumber = 1 -- number of sister elements on node (always one for root)
local indent = p.getIndent(levelNumber)
-- converted the newick string to the clade structure
cladeString = cladeString .. indent .. '{{clade'
cladeString = cladeString .. p.listParseLevel(listString, levelNumber, childNumber)
--cladeString = cladeString .. '\r}}'
local resultString = ''
local option = pargs['option'] or ''
if option == 'tree' then
--show the transcluded clade diagram
resultString = cladeString
else
-- show the wikitext list string
resultString = '<pre>'..listString..'</pre>'
-- show the converted clade structure
resultString = resultString .. '<pre>'.. cladeString ..'</pre>'
end
--resultString = frame:expandTemplate{ title = 'clade', frame:preprocess(cladeString) }
return resultString
end
function p.listParseLevel(listString,levelNumber,childNumber)
local cladeString = ""
local indent = p.getIndent(levelNumber)
levelNumber=levelNumber+1
local nowiki = false
if listString:find("UNIQ.-QINU") then -- if wrapped in nowiki
mw.addWarning("Stripping content in nowiki tags")
listString = mw.text.trim( mw.text.unstripNoWiki( listString ) )
nowiki = true
end
local listChar = "@"
if string.match( listString, "^*", 1 ) then
listChar = "*"
end
local list = mw.text.split(listString, "\n")
local i=1
local child=1
local lastNode=0
while list[i] do
list[i]=list[i]:gsub("^"..listChar, "") -- strip the first @
if not string.match( list[i], "^"..listChar, 1 ) then -- count children at this level (not beginning wiht @)
lastNode = lastNode+1
end
i=i+1
end
i=1
while list[i] do
--[[ pseudocode:
if next value begins with @ we have a subtree,
which must be recombined and past iteratively
else we have a simple leaf
]]
-- if the next value begins with @, we have a subtree which should be recombined
if list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) then
local label=list[i]
i=i+1
local recombined = list[i]
while list[i+1] and string.match( list[i+1], "^"..listChar, 1 ) do
recombined = recombined .. "\n" .. list[i+1]
i=i+1
end
cladeString = cladeString .. indent .. '|label' .. child ..'=' .. label
cladeString = cladeString .. indent .. '|' .. child ..'=' .. '{{clade'
.. p.listParseLevel(recombined,levelNumber,i)
else
cladeString = cladeString .. indent .. '|' .. child ..'=' .. list[i]
end
i=i+1
child=child+1
end
cladeString = cladeString .. indent .. '}}'
if nowiki then
return mw.getCurrentFrame():preprocess( '<nowiki>'.. cladeString .. '</nowiki>') --return wrapped in nowiki
else
return cladeString
end
end
-- this must be at end
return p
8tj8mn75yncxi47quf6o8se49gw6ama
شابلون:Clade/styles.css
10
184406
416473
2026-03-23T14:44:35Z
en>Jts1882
0
incease the min width to old value
416473
sanitized-css
text/css
/* {{pp-template}} */
body.skin-vector-2022 div.clade,
body.skin-minerva div.clade {
overflow-x:auto;
overflow-y:hidden;
}
body.skin-minerva div.clade p { font-size:inherit; }
table.clade {
border-spacing:0;
margin:0;
font-size:100%;
line-height:100%;
border-collapse:separate;
width:auto;
display:table;
}
table.clade table.clade {
width:100%;
line-height:inherit;
}
table.clade td.clade-label { /* the cell with the label */
min-width:0.7em; /* both min-width and width seem to be needed to get consistent behaviour */
width:0.7em;
padding:0.1em 0.25em;
vertical-align:bottom;
text-align:center;
border-left:1px solid; /* don't set default colour, helps with green on black monotype skin */
border-bottom:1px solid;
white-space:nowrap;
}
table.clade td.clade-label::before, table.clade td.clade-slabel::before {
content: "\2060";
}
table.clade td.clade-fixed-width {
overflow:hidden;
text-overflow:ellipsis;
}
table.clade td.clade-fixed-width:hover {
overflow:visible;
}
table.clade td.clade-label.first {
border-left:none;
border-right:none;
}
table.clade td.clade-label.reverse {
border-left:none;
border-right:1px solid;
}
table.clade td.clade-slabel { /* the cell with the sublabel; only use if there is a label */
padding:0.1em 0.25em;
vertical-align:top;
text-align:center;
border-left: 1px solid;
white-space:nowrap;
}
table.clade td.clade-slabel:hover {
overflow:visible;
}
table.clade td.clade-slabel.last {
border-left:none;
border-right:none;
}
table.clade td.clade-slabel.reverse {
border-left:none;
border-right:1px solid;
}
table.clade td.clade-bar { /* the cell with the bar label or group label */
vertical-align:middle;
text-align:left;
padding:0 0.5em;
position:relative;
}
table.clade td.clade-bar.reverse {
text-align:right;
position:relative;
}
table.clade td.clade-leaf { /* the cell with the leaf content (rowspan=2) */
border:0;
padding:0;
text-align:left;
}
table.clade td.clade-leaf p {
padding-right: 5px; /* spacing from vertical bar */
padding-left: 2px; /* spacing from connecting horizontal bar */
}
table.clade td.clade-leafR { /* the cell with the leaf content (rowspan=2) */
border:0;
padding:0;
text-align:right;
}
table.clade td.clade-leafR p {
padding-left: 5px; /* spacing from vertical bar */
padding-right: 2px; /* spacing from connecting horizontal bar */
}
table.clade td.clade-leaf.reverse { /* the cell with the leaf content (rowspan=2) */
text-align:right;
}
table.clade td.clade-leaf.reverse p {
padding-left: 5px; /* spacing from vertical bar */
padding-right: 2px; /* spacing from connecting horizontal bar */
}
table.clade:hover span.linkA {
background-color: yellow;
}
table.clade:hover span.linkB {
background-color: green;
}
ca9j8k7noaz4f05cwm7m7ncuz57j9tt
416474
416473
2026-10-04T17:03:20Z
محک
1023
۱ نسخه واردشده از [[:en:Template:Clade/styles.css]]
416473
sanitized-css
text/css
/* {{pp-template}} */
body.skin-vector-2022 div.clade,
body.skin-minerva div.clade {
overflow-x:auto;
overflow-y:hidden;
}
body.skin-minerva div.clade p { font-size:inherit; }
table.clade {
border-spacing:0;
margin:0;
font-size:100%;
line-height:100%;
border-collapse:separate;
width:auto;
display:table;
}
table.clade table.clade {
width:100%;
line-height:inherit;
}
table.clade td.clade-label { /* the cell with the label */
min-width:0.7em; /* both min-width and width seem to be needed to get consistent behaviour */
width:0.7em;
padding:0.1em 0.25em;
vertical-align:bottom;
text-align:center;
border-left:1px solid; /* don't set default colour, helps with green on black monotype skin */
border-bottom:1px solid;
white-space:nowrap;
}
table.clade td.clade-label::before, table.clade td.clade-slabel::before {
content: "\2060";
}
table.clade td.clade-fixed-width {
overflow:hidden;
text-overflow:ellipsis;
}
table.clade td.clade-fixed-width:hover {
overflow:visible;
}
table.clade td.clade-label.first {
border-left:none;
border-right:none;
}
table.clade td.clade-label.reverse {
border-left:none;
border-right:1px solid;
}
table.clade td.clade-slabel { /* the cell with the sublabel; only use if there is a label */
padding:0.1em 0.25em;
vertical-align:top;
text-align:center;
border-left: 1px solid;
white-space:nowrap;
}
table.clade td.clade-slabel:hover {
overflow:visible;
}
table.clade td.clade-slabel.last {
border-left:none;
border-right:none;
}
table.clade td.clade-slabel.reverse {
border-left:none;
border-right:1px solid;
}
table.clade td.clade-bar { /* the cell with the bar label or group label */
vertical-align:middle;
text-align:left;
padding:0 0.5em;
position:relative;
}
table.clade td.clade-bar.reverse {
text-align:right;
position:relative;
}
table.clade td.clade-leaf { /* the cell with the leaf content (rowspan=2) */
border:0;
padding:0;
text-align:left;
}
table.clade td.clade-leaf p {
padding-right: 5px; /* spacing from vertical bar */
padding-left: 2px; /* spacing from connecting horizontal bar */
}
table.clade td.clade-leafR { /* the cell with the leaf content (rowspan=2) */
border:0;
padding:0;
text-align:right;
}
table.clade td.clade-leafR p {
padding-left: 5px; /* spacing from vertical bar */
padding-right: 2px; /* spacing from connecting horizontal bar */
}
table.clade td.clade-leaf.reverse { /* the cell with the leaf content (rowspan=2) */
text-align:right;
}
table.clade td.clade-leaf.reverse p {
padding-left: 5px; /* spacing from vertical bar */
padding-right: 2px; /* spacing from connecting horizontal bar */
}
table.clade:hover span.linkA {
background-color: yellow;
}
table.clade:hover span.linkB {
background-color: green;
}
ca9j8k7noaz4f05cwm7m7ncuz57j9tt
شابلون:Ifnumber
10
184407
416475
2025-08-05T05:23:12Z
en>Theknightwho
0
Make substable.
416475
wikitext
text/x-wiki
<includeonly>{{safesubst:#ifeq: {{safesubst:lc:{{{1|}}}}} | e | {{{3|0}}} | {{safesubst:#iferror:{{safesubst:#expr:{{{1|}}}*0}}|{{{3|0}}}|{{{2|1}}}}} }}</includeonly><noinclude>{{Documentation}}</noinclude>
8nd300px3togeighpfyhamb0j2zhahp
416476
416475
2026-10-04T17:06:53Z
محک
1023
۱ نسخه واردشده از [[:en:Template:Ifnumber]]
416475
wikitext
text/x-wiki
<includeonly>{{safesubst:#ifeq: {{safesubst:lc:{{{1|}}}}} | e | {{{3|0}}} | {{safesubst:#iferror:{{safesubst:#expr:{{{1|}}}*0}}|{{{3|0}}}|{{{2|1}}}}} }}</includeonly><noinclude>{{Documentation}}</noinclude>
8nd300px3togeighpfyhamb0j2zhahp
کرگ
0
184408
416478
2026-10-04T17:09:10Z
محک
1023
ونه مسیر ره دکشییه [[کرک]] دله
416478
wikitext
text/x-wiki
#بور [[کرک]]
bapr41yytqikbm40x106b2f7857by4y
اوراسیا اتحادیه
0
184409
416482
2026-10-05T06:03:57Z
محک
1023
ونه مسیر ره دکشییه [[اوراسیا اقتصادی اتحادیه]] دله
416482
wikitext
text/x-wiki
#بور [[اوراسیا اقتصادی اتحادیه]]
5if03ah6tkiefosqdotdinwd1gypoie