ویکی‌پدیا 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, " ", "&nbsp;") -- 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, "-", "&#8209;") -- replace hyphen with non-breaking hyphen (&#8209;) 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, " ", "&nbsp;") -- 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, "-", "&#8209;") -- replace hyphen with non-breaking hyphen (&#8209;) 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