विकिपिडिया newiki https://ne.wikipedia.org/wiki/%E0%A4%AE%E0%A5%81%E0%A4%96%E0%A5%8D%E0%A4%AF_%E0%A4%AA%E0%A5%83%E0%A4%B7%E0%A5%8D%E0%A4%A0 MediaWiki 1.47.0-wmf.16 first-letter मीडिया विशेष वार्तालाप प्रयोगकर्ता प्रयोगकर्ता वार्ता विकिपिडिया विकिपिडिया वार्ता चित्र चित्र वार्ता मीडियाविकि मीडियाविकि वार्ता ढाँचा ढाँचा वार्ता मद्दत मद्दत वार्ता श्रेणी श्रेणी वार्ता पोर्टल पोर्टल वार्ता मस्यौदा मस्यौदा वार्ता TimedText TimedText talk मोड्युल मोड्युल वार्तालाप Event Event talk उपरदाङगढी 0 6619 1372312 1357656 2026-08-25T14:54:32Z पर्वत सुवेदी 31224 /* इतिहास */ 1372312 wikitext text/x-wiki {{Infobox military installation | name = {{पृष्ठको नाम}} | native_name = | partof = | location = [[इच्छाकामना गाउँपालिका|इच्छाकामना]] - ७ [[दाहाखानी|दहखानी]], [[चितवन जिल्ला|चितवन]] | image = File:उपरदाङगढीको परिचय.jpg | image_size = | caption = | type = गढी | coordinates = {{coord|27.45|84.34|type:adm2nd_region:NP_source:unmaps-enwiki|display=inline,title}} | image_map = | image_map_caption = | controlledby = [[इच्छाकामना गाउँपालिका]] | open_to_public = छ | built = लगभग वि.सं १८०० | used = | builder = शत्रुभन्जन शाह | materials = ढुङ्गा | height = | condition = | battles = [[नेपाल अङ्ग्रेज युद्ध]] | website = [http://www.ctdc.org.np/np/index.php?option=com_content&view=article&id=83&Itemid=70 आधिकारिक वेबसाइट] }} '''उपरदाङगढी''' [[चट्टान|ढुङ्गा]]ले बनाइएको चित्तार्कषक गढी हो। यो गढी [[पृथ्वीनारायण शाह]]का कान्छा छोरा राजकुमार [[बहादुर शाह]]को छोरा शत्रुभन्जन शाहले बनाएका थिए। यो गढी भर्खरै [[नेपालको एकीकरण]] हुँदै गर्दा [[नेपाल]] र [[ब्रिटिस राज|अङ्ग्रेज]]सँग हुनसक्ने सम्भावित भिडन्तलाई ख्याल गरी बनाइएको थियो। निर्माणपछि प्रशासनिक र व्यापारिक केन्द्र बनेको उपरदाङगढी [[चितवन जिल्ला]]को पुरानो सदरमुकाम रहेको गढी हो।<ref>{{Cite web|url=https://www.kayakairan.com/archives/19785|title=उपरदाङगढी ओझेलमा, सिराइचुली बेवारिसे|author=|website=कायाकैरन|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> [[पहाड]]को टाकुरामा रहेको गढी र [[यातायात]]को असुविधाले गर्दा वि.सं. २०१६ सालमा यहाँबाट सदरमुकाम [[भरतपुर महानगरपालिका|भरतपुर]] सारिएको थियो।<ref>{{Cite web|url=https://www.onlinekhabar.com/2016/10/495229|title=नेपाल-अंग्रेज युद्धस्थल उपरदाङगढी ओझेलमा|author=|website=अनलाइन खबर|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> [[नेपालको पूर्व प्रशासनिक विभाजन]] अनुसार यो [[दाहाखानी|दहखानी]] वडा नम्बर ३ मा पर्दछ भने हाल यस क्षेत्र [[इच्छाकामना गाउँपालिका]]मा पर्दछ। यहाँबाट [[मनास्लु हिमाल|मनास्लु]], गणेश लगायतका हिमालहरू अवलोकन गर्न सकिन्छ। [[शक्तिखोर]]बाट लगभग एक घण्टामा यहाँ पुग्न सकिन्छ। == इतिहास == [[चितवन जिल्ला]]को पूर्व सदरमुकाम समेत हो। वि.सं २०१४ सालसम्म महत्वपूर्ण सरकारी अड्डा र अदालत सबै यसै क्षेत्रमा रहेका थिए।<ref>{{वेब स्रोत|शीर्षक=बदलिँदो चितवनका साक्षी, जसले देखे उपरदाङगढीको पुरानो चहलपहल|युआरएल=https://ekantipur.com/feature/2026/08/25/a-witness-to-the-changing-chitwan-who-saw-the-old-hustle-and-bustle-of-upardanggadhi-09-20.html|प्रथम=रमेशकुमार|अन्तिम=पौडेल|वेबसाइट=कान्तिपुर|भाषा=नेपाली|मिति=८ भदौ २०८३|पहुँचमिति=९ भदौ २०८३}}</ref> [[नेपालको पूर्व प्रशासनिक विभाजन]] अनुसार यो [[दाहाखानी|दहखानी]] वडा नम्बर ३ मा पर्दछ भने हाल यस क्षेत्र [[इच्छाकामना गाउँपालिका]]मा पर्दछ। समुद्र सतह देखि १२७५ मिटरको उचाइमा पर्ने यस गढी [[नेपालको एकीकरण]] ताका अङ्ग्रेज विरुद्धको युद्धको बेलामा नेपाली भूमि रक्षा गर्नका लागि बनाइएको थियो।<ref>{{Cite web|url=https://nagariknews.nagariknetwork.com/arts/1027831-1671241590.html|title=चितवनको पुरानो छवि: उपरदाङगढी|author=|website=नागरिक दैनिक|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> == चित्र दीर्घा == [[File:उपरदाङगढी.jpg|thumb|220px]] == सन्दर्भ सामग्रीहरू == {{सन्दर्भसूची}} [[श्रेणी:नेपालका गढीहरू]] [[श्रेणी:चितवन जिल्लाका ठाउँहरू]] amj1q7t1o6rgeyimzj58w58yfjmhj0f 1372313 1372312 2026-08-25T14:56:06Z पर्वत सुवेदी 31224 /* */ 1372313 wikitext text/x-wiki {{Infobox military installation | name = {{पृष्ठको नाम}} | native_name = | partof = | location = [[इच्छाकामना गाउँपालिका|इच्छाकामना]] - ७ [[दाहाखानी|दहखानी]], [[चितवन जिल्ला|चितवन]] | image = File:उपरदाङगढीको परिचय.jpg | image_size = | caption = | type = गढी | coordinates = {{coord|27.76|84.58|type:adm2nd_region:NP_source:unmaps-enwiki|display=inline,title}} | image_map = | image_map_caption = | controlledby = [[इच्छाकामना गाउँपालिका]] | open_to_public = छ | built = लगभग वि.सं १८०० | used = | builder = शत्रुभन्जन शाह | materials = ढुङ्गा | height = | condition = | battles = [[नेपाल अङ्ग्रेज युद्ध]] | website = [http://www.ctdc.org.np/np/index.php?option=com_content&view=article&id=83&Itemid=70 आधिकारिक वेबसाइट] }} '''उपरदाङगढी''' [[चट्टान|ढुङ्गा]]ले बनाइएको चित्तार्कषक गढी हो। यो गढी [[पृथ्वीनारायण शाह]]का कान्छा छोरा राजकुमार [[बहादुर शाह]]को छोरा शत्रुभन्जन शाहले बनाएका थिए। यो गढी भर्खरै [[नेपालको एकीकरण]] हुँदै गर्दा [[नेपाल]] र [[ब्रिटिस राज|अङ्ग्रेज]]सँग हुनसक्ने सम्भावित भिडन्तलाई ख्याल गरी बनाइएको थियो। निर्माणपछि प्रशासनिक र व्यापारिक केन्द्र बनेको उपरदाङगढी [[चितवन जिल्ला]]को पुरानो सदरमुकाम रहेको गढी हो।<ref>{{Cite web|url=https://www.kayakairan.com/archives/19785|title=उपरदाङगढी ओझेलमा, सिराइचुली बेवारिसे|author=|website=कायाकैरन|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> [[पहाड]]को टाकुरामा रहेको गढी र [[यातायात]]को असुविधाले गर्दा वि.सं. २०१६ सालमा यहाँबाट सदरमुकाम [[भरतपुर महानगरपालिका|भरतपुर]] सारिएको थियो।<ref>{{Cite web|url=https://www.onlinekhabar.com/2016/10/495229|title=नेपाल-अंग्रेज युद्धस्थल उपरदाङगढी ओझेलमा|author=|website=अनलाइन खबर|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> [[नेपालको पूर्व प्रशासनिक विभाजन]] अनुसार यो [[दाहाखानी|दहखानी]] वडा नम्बर ३ मा पर्दछ भने हाल यस क्षेत्र [[इच्छाकामना गाउँपालिका]]मा पर्दछ। यहाँबाट [[मनास्लु हिमाल|मनास्लु]], गणेश लगायतका हिमालहरू अवलोकन गर्न सकिन्छ। [[शक्तिखोर]]बाट लगभग एक घण्टामा यहाँ पुग्न सकिन्छ। == इतिहास == [[चितवन जिल्ला]]को पूर्व सदरमुकाम समेत हो। वि.सं २०१४ सालसम्म महत्वपूर्ण सरकारी अड्डा र अदालत सबै यसै क्षेत्रमा रहेका थिए।<ref>{{वेब स्रोत|शीर्षक=बदलिँदो चितवनका साक्षी, जसले देखे उपरदाङगढीको पुरानो चहलपहल|युआरएल=https://ekantipur.com/feature/2026/08/25/a-witness-to-the-changing-chitwan-who-saw-the-old-hustle-and-bustle-of-upardanggadhi-09-20.html|प्रथम=रमेशकुमार|अन्तिम=पौडेल|वेबसाइट=कान्तिपुर|भाषा=नेपाली|मिति=८ भदौ २०८३|पहुँचमिति=९ भदौ २०८३}}</ref> [[नेपालको पूर्व प्रशासनिक विभाजन]] अनुसार यो [[दाहाखानी|दहखानी]] वडा नम्बर ३ मा पर्दछ भने हाल यस क्षेत्र [[इच्छाकामना गाउँपालिका]]मा पर्दछ। समुद्र सतह देखि १२७५ मिटरको उचाइमा पर्ने यस गढी [[नेपालको एकीकरण]] ताका अङ्ग्रेज विरुद्धको युद्धको बेलामा नेपाली भूमि रक्षा गर्नका लागि बनाइएको थियो।<ref>{{Cite web|url=https://nagariknews.nagariknetwork.com/arts/1027831-1671241590.html|title=चितवनको पुरानो छवि: उपरदाङगढी|author=|website=नागरिक दैनिक|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> == चित्र दीर्घा == [[File:उपरदाङगढी.jpg|thumb|220px]] == सन्दर्भ सामग्रीहरू == {{सन्दर्भसूची}} [[श्रेणी:नेपालका गढीहरू]] [[श्रेणी:चितवन जिल्लाका ठाउँहरू]] m43vtagl25s7mnd8jgs7nxliu4qdw9l 1372341 1372313 2026-08-26T03:25:51Z पर्वत सुवेदी 31224 /* */ 1372341 wikitext text/x-wiki {{Infobox military installation | name = {{पृष्ठको नाम}} | native_name = | partof = | location = [[इच्छाकामना गाउँपालिका|इच्छाकामना]] - ७ [[दाहाखानी]], [[चितवन जिल्ला|चितवन]] | image = File:उपरदाङगढीको परिचय.jpg | image_size = | caption = | type = गढी | coordinates = {{coord|27.76|84.58|type:adm2nd_region:NP_source:unmaps-enwiki|display=inline,title}} | image_map = | image_map_caption = | controlledby = [[इच्छाकामना गाउँपालिका]] | open_to_public = छ | built = लगभग वि.सं १८०० | used = | builder = शत्रुभन्जन शाह | materials = ढुङ्गा | height = | condition = | battles = [[नेपाल अङ्ग्रेज युद्ध]] | website = [http://www.ctdc.org.np/np/index.php?option=com_content&view=article&id=83&Itemid=70 आधिकारिक वेबसाइट] }} '''उपरदाङगढी''' [[चट्टान|ढुङ्गा]]ले बनाइएको चित्तार्कषक गढी हो। यो गढी [[पृथ्वीनारायण शाह]]का कान्छा छोरा राजकुमार [[बहादुर शाह]]को छोरा शत्रुभन्जन शाहले बनाएका थिए। यो गढी भर्खरै [[नेपालको एकीकरण]] हुँदै गर्दा [[नेपाल]] र [[ब्रिटिस राज|अङ्ग्रेज]]सँग हुनसक्ने सम्भावित भिडन्तलाई ख्याल गरी बनाइएको थियो। निर्माणपछि प्रशासनिक र व्यापारिक केन्द्र बनेको उपरदाङगढी [[चितवन जिल्ला]]को पुरानो सदरमुकाम रहेको गढी हो।<ref>{{Cite web|url=https://www.kayakairan.com/archives/19785|title=उपरदाङगढी ओझेलमा, सिराइचुली बेवारिसे|author=|website=कायाकैरन|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> [[पहाड]]को टाकुरामा रहेको गढी र [[यातायात]]को असुविधाले गर्दा वि.सं. २०१६ सालमा यहाँबाट सदरमुकाम [[भरतपुर महानगरपालिका|भरतपुर]] सारिएको थियो।<ref>{{Cite web|url=https://www.onlinekhabar.com/2016/10/495229|title=नेपाल-अंग्रेज युद्धस्थल उपरदाङगढी ओझेलमा|author=|website=अनलाइन खबर|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> [[नेपालको पूर्व प्रशासनिक विभाजन]] अनुसार यो [[दाहाखानी]] वडा नम्बर ३ मा पर्दछ भने हाल यस क्षेत्र [[इच्छाकामना गाउँपालिका]]मा पर्दछ। यहाँबाट [[मनास्लु हिमाल|मनास्लु]], गणेश लगायतका हिमालहरू अवलोकन गर्न सकिन्छ। [[शक्तिखोर]]बाट लगभग एक घण्टामा यहाँ पुग्न सकिन्छ। == इतिहास == [[चितवन जिल्ला]]को पूर्व सदरमुकाम समेत हो। वि.सं २०१४ सालसम्म महत्वपूर्ण सरकारी अड्डा र अदालत सबै यसै क्षेत्रमा रहेका थिए।<ref>{{वेब स्रोत|शीर्षक=बदलिँदो चितवनका साक्षी, जसले देखे उपरदाङगढीको पुरानो चहलपहल|युआरएल=https://ekantipur.com/feature/2026/08/25/a-witness-to-the-changing-chitwan-who-saw-the-old-hustle-and-bustle-of-upardanggadhi-09-20.html|प्रथम=रमेशकुमार|अन्तिम=पौडेल|वेबसाइट=कान्तिपुर|भाषा=नेपाली|मिति=८ भदौ २०८३|पहुँचमिति=९ भदौ २०८३}}</ref> [[नेपालको पूर्व प्रशासनिक विभाजन]] अनुसार यो [[दाहाखानी|दहखानी]] वडा नम्बर ३ मा पर्दछ भने हाल यस क्षेत्र [[इच्छाकामना गाउँपालिका]]मा पर्दछ। समुद्र सतह देखि १२७५ मिटरको उचाइमा पर्ने यस गढी [[नेपालको एकीकरण]] ताका अङ्ग्रेज विरुद्धको युद्धको बेलामा नेपाली भूमि रक्षा गर्नका लागि बनाइएको थियो।<ref>{{Cite web|url=https://nagariknews.nagariknetwork.com/arts/1027831-1671241590.html|title=चितवनको पुरानो छवि: उपरदाङगढी|author=|website=नागरिक दैनिक|date=|accessdate=२२ साउन २०८१|language=नेपाली|work=|publisher=}}</ref> == चित्र दीर्घा == [[File:उपरदाङगढी.jpg|thumb|220px]] == सन्दर्भ सामग्रीहरू == {{सन्दर्भसूची}} [[श्रेणी:नेपालका गढीहरू]] [[श्रेणी:चितवन जिल्लाका ठाउँहरू]] pfev5xzdkf9wk2a2pxx2xm8yok28gh7 बडिमालिका मन्दिर 0 10918 1372323 1372300 2026-08-26T00:41:32Z Rajeeb bastola 39875 1372323 wikitext text/x-wiki {{Short description|Hindu temple in Sudurpashchim, Nepal}} {{more citations needed|date=August 2020}} {{Infobox Mandir |name = Badamalika temple |image = Badi Malika.png | |alt = Temple premises |caption = |pushpin_map = Nepal |pushpin_caption = Badimalika Temple in Nepal |coordinates = {{coord|29.346916|81.477488|type:landmark_region:NP|display=inline,title}} |sanskrit_translit = |country = {{flag|Nepal}} |state = [[Seti zone|Seti]] |district = [[Bajura district|Bajura]] |location = [[Kailashmandau]], [[Bajura district|Bajura]] <ref>{{cite web|URL= http://fwdc.gov.np/ne/%E0%A4%A7%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%95-%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%A8%E0%A4%B9%E0%A4%B0%E0%A5%81 |title= धार्मिक स्थलहरु |language= Nepali |publisher= www.fwdc.gov.np}}</ref> |elevation_m = |deity = [[Shakti]] |festival = [[Ganga Dussehra]], Shrwan Shukla chaturdashi |architecture = Pagoda Style |temple_quantity = |monument_quantity = |inscriptions = |creator = |website = |mapframe = yes |mapframe-zoom = 12 |mapframe-wikidata = yes }} == पृष्ठभूमि == '''बडीमालिका''' विश्वका प्रमुख हिन्दु मन्दिरहरूमध्येको एक प्रशिद्ध मन्दिर हो । यो मन्दिर नेपालको सुदूरपश्चिम प्रदेशको बाजुरा जिल्लाको त्रिवेणी नगरपालिकामा वडा नं. ६ पन्धारामा पर्दछ । यहाँ प्रत्येक वर्ष साउन शुक्ल त्रयोदशी देखि चतुर्दशीका दिन मुख्य पूजा तथा हवन गरिन्छ । गंगा दशहरामा यहाँको पाती प्रसाद खप्तडमा ल्याएर चढाउने गरिन्छ । बडीमालिकामा २ जिल्लाका पुजारीहरुले पूजा गर्छन् । यी मध्ये १ बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ९ पैमाका हुन् भने अर्को कालिकोटका हुन् । हाल बाजुराबाट मुख्य पुजारीको रुपमा नेत्र पाध्याय रहेका छन् भने कालिकोटबाट हरी धमाला रहेका छन् । [[File : Badimalika Temple, Bajura, Nepal.jpg|thumb|बडीमालिका मन्दिर|300px]] सम्वत् २०८२ सालमा यहाँको पुरानो मन्दिरको जिर्णोद्वार गरी नेपाली सेनाद्वारा नयाँ मन्दिर निर्माण गरिएको छ । बडीमालिका मन्दिर समुन्द्री सतहबाट ४,२२० मीटर उचाईमा अवस्थित छ । जुन विश्वमा रहेका हिन्दु मन्दिरहरुमध्ये सबैभन्दा अग्लो स्थानमा रहेको हिन्दु मन्दिर हो । बडीमालिका दर्शनका लागि जाने भक्तजनहरुले त्रिवेणी हुँदै जानु पर्ने हुन्छ । त्रिवेणी बाजुरा जिल्लाको त्रिवेणी नगरपालिका र कालिकोटको रास्कोट नगरपालिकाको सिमाना हो । यसको मुख्य भाग बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ५ किम्नीमा पर्दछ । बडीमालिका, त्रिवेणी बहुमूल्य जडिबुटीको भण्डार पनि हो । ==किंवदन्ती== पौराणिक कथा अनुसार [[शिव|महादेव]]की पत्नी [[सतिदेवी]]का पिता [[दक्ष प्रजापति]]ले यज्ञ गर्दा महादेव र सतिदेवीलाई बोलाएनन् । आफ्ना पति र आफूलाई यज्ञमा नबोलाएपछि सतिदेविले आफ्ना पिता दक्ष प्रजापतीले सञ्चालन गरेको यज्ञ स्थलमा गएर पितासँग आफ्ना पति महादेव र आफूलाई यज्ञमा नबोलाउनुको कारण सोधिन् । दक्ष प्रजापतीले महादेव [[भाङ]], [[धतुरो]] सेवन गर्ने, शमसान घाटमा वास गर्ने, गलामा [[सर्प]]को माला लगाउने, जटाधारी भेषमा रहने, शरीरभरी [[खरानी]] घस्ने, [[बाघ]]को छालाको पहिरने हुनाले यस यज्ञमा बस्दा शोभा नदिने भएकाले नबोलाएको बताए । पिताको जवाफ सुनेपछि सतिदेवीलाई आफ्ना पतिको अपमान गरिएको महशुस भयो र अपमान सहन गर्न नसकेर यज्ञकुण्डको अग्नीमा हाम फालेर प्राण त्याग गरिन् । आफ्नी पत्नि सतिदेवीले दक्ष प्रजापतिले सञ्चालन गरेको यज्ञमा हाम फालेर प्राण त्याग गरेपछि महादेव रिसाएर विरभद्रादी शिवगणलाई पठाएर दक्ष प्रजापतिलाई मारी दक्ष प्रजापतिले सञ्चालन गरेको यज्ञ तहस नहस पार्न लगाए । आफू भने पत्नी वियोगमा पागल भएर सतिदेवीको मृत शरिर बोकेर पुरा [[विश्व]] घुम्न थाले । यसै बेला [[विष्णु|भगवान बिष्णु]]ले आफ्नो चक्र सुदर्शन प्रहार गरी सतिदेवीको मृत शरीरमा किरा पारेर कुहाए । सतिदेवीको मृत शरीर कुहिए पछि महादेव जहाँ जहाँ गए त्यहाँ त्यहाँ सतिदेवीको मृत शरीरको कुहिएको अङ्ग खस्दै (पतन हुँदै) गए । यसरी ठाउँ ठाउँमा सतिदेवीको शरीरका अङ्गहरू पतन हुँदै जान थालेपछि जहाँ जहाँ सतिदवीका अङ्ग पतन भए त्यहाँ त्यहाँ एक एकवटा सिद्ध पिठ (प्रसिद्ध धार्मिक स्थल) बन्दै गए । यसै क्रममा हालको बाजुरा जिल्लाको मल्लागिरी पर्वतमा सतिदेवीको बायाँ कुम पतन भयो । पछि गएर सतिदेवीको बायाँ कुम पतन भएको त्यही पर्वतलाई मालिका र हाल आएर बडीमालिका भनिन थालियो । मल्लागिरी पर्वतमा मल्लिका अथवा [[मालिका देवी]] शक्ति स्वरूपले रहन थालिन् ।<ref>श्री स्वस्थानी ब्रतकथा</ref> तसर्थ यस स्थानमा बडिमालिका मन्दिर स्थापना गरेर पूजा गर्न थालियो । भनिन्छ पौराणिक कालमा भगवतीले महिषासुर नामको दैत्यको वध गरिसकेपछि कालिकोटको "द्वारेढुंगा" भन्ने ठाउँमा विश्राम गरेकी थिइन् । पछि गएर द्वारेढुंगामा एकजना दाउरा खोज्न गएको दलित भोकले व्याकुल भई देवीसँग बहरको मासु र हिया गहुँको रोटी माग्यो । देवीले त्यो दलितको मनोरथ पूरा गरिदिइन् । दलितले पूरै बहरलाई एक्लै खान नसकिने भएकाले आफ्नो घरका मान्छेलाई बोलाएछ । उसको घरको मानिसहरूले टाढा भएका कारण सुन्न सकेनन् । तब त्यो दलितलाई रिस उठ्यो। उसले भगवतीलाई भन्यो हे! प्रमेश्वरी मेरा घरका सबै मान्छे मरुन् । देवीले पनि इच्छाअनुसार वरदान दिइन् । त्यसपछि बहरको मासु लिएर दलित घर गएछ । घरमा हेर्दा त सबै जहानहरू मरेका देख्यो । फेरि दलित रिसायर द्वारेढुंगा पुग्यो । देवी उसलाई देखेर ढोका बन्द गरी त्यहाँबाट भागिन् । दलितले बहरको फिलाले देवीको घरमा हानेको छाप अझै द्वारे ढुङ्गामा देखिन्छ । यसो भएका कारण देवी सधैँका लागि त्यो ठाउँ छोडेर त्रिवेणी, पञ्चपुरी पाटन, मल्लपुरी पाटन हुँदै बडीमालिकामा गएर बसिन् । त्यसैले दलितहरू बडिमालिका जाँदैनन् भन्ने विश्वास गरिन्छ। अन्य भक्तजनहरू जो बाटो देवी गएकी हुन् त्यही बाटो भएर जान्छन् । <ref>जन जिब्रोमा प्रचलित कथा</ref> ==सरकारी पूजा== बडीमालिका मन्दिरमा सरकारका तर्फबाट एकजना मुख्य पूजारी बनाइएका छन् । हाल बाजुरा जिल्ला त्रिवेणी नगरपालिका वडा नं. ९ पैमाका नेत्र पाध्याय मुख्य पुजारीका रुपमा रहेका छन् । पैमाका पुजारी नेत्र पाध्याय र उनका दाजुभाइहरू छोराहरूले सरकारी पूजा गराउँछन् । सरकारी पुजा गर्दा सबैभन्दा पहिले डोटी जिल्लाबाट पठाईएको गोरखनाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ भने त्यसपछि जुम्ला जिल्लाबाट चन्दननाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ । त्यसपछि क्रमश: [[अछाम जिल्ला|अछाम]], [[बाजुरा जिल्ला|बाजुरा]] र [[कालिकोट जिल्ला|कालिकोट]] जिल्लाका प्रमुख जिल्ला अधिकारी तथा निजका प्रतिनिधिहरु लगायत अन्य कर्मचारीहरूको हातबाट देवीको सरकारी पूजा सम्पन्न हुन्छ। पछिल्लो समयमा कालिकोट, जुम्ला, मुगु, अछाम, बाजुरा, कैलाली जिल्लाका स्थानीय सरकारका तर्फबाट समेत बडीमालिका मन्दिरमा सरकारी पुजा गर्ने प्रचलन रहेको छ । कैलाली जिल्लामा रहेको सुदूरपश्चिम प्रदेशको एक मात्र उपमहानगरपालिका धनगढी उपमहानगरपालिकाको तर्फबाट सम्वत् २०८२ साल साउन २३ गतेका दिन पहिलो पटक सरकारी पुजा गरिएको छ । धनगढी उपमहानगरपालिका नगर प्रमुख श्री गोपाल हमालको पहलमा २०८२ सालदेखि बडीमालिका मन्दिरमा सरकारी पुजाको थालनी गरिएको हो । ==प्राकृतिक सौन्दर्य== बडीमालिका धार्मिक मात्र नभएर पर्यटकीय हिसाबले पनि महत्त्वपूर्ण मानिन्छ । नजिकै देखिने सुन्दर हिमाल, हिउँ कुल्चन पाउने सौभाग्य र मनोरम प्राकृतिक दृश्यहरू बडीमालिकाका गहना हुन् । बडीमालिकाको सौन्दर्य भनेकै विशाल फाँटहरू हुन् । बडमालिका क्षेत्रका ती विशाल फाँटहरुलाई स्थानीय भाषामा पाटन भनिन्छ । तर अचेल यी फाँटहरू बिस्तारै मासिँदै छन् । यी फाँटमा अनावश्यक चरन र जडीबुडी चोरी निकासीका कारण यसको सौन्दर्य मासिएको जिल्लाबासीको गुनासो छ । बडीमालिकामा प्रत्येक वर्ष [[श्रावण शुक्ल पूर्णिमा|जनै पूर्णिमा]]को अघिल्ला दिनहरु साउन त्रयोदशी देखि चतुर्दशीका दिन ठूलो मेला लाग्दछ । त्यो समयमा केही स्थानीय व्यापारीले खाजा नास्ताका पसल राख्ने गर्छन् । अन्य समयमा त्यहाँ खाजा नास्ताका कुनै पसलहरू खासै भेटिँदैनन् । बडीमालिका मन्दिरमा दर्शन गरेपछि आफ्नो मनोकांक्षा पूरा हुने जनविश्वास छ । मन्दिर परिसरबाट आँखै अगाडी देखिने [[साइपाल हिमाल|सैपाल]] हिमालको मनोरम दृश्यले यहाँको सौन्दर्यलाई झनै तिखारेको छ । बडीमालीका पुग्नका लागि उचित बास बस्ने स्थान नभएका कारण भक्तजन तथा पर्यटकले खानपिन तथा बासको जोहो आफै गर्नुपर्छ । यद्दपि साउन महिनामा लाग्ने मेलाको अवसरका बाटोमा त्रिपाल टाँगेर खान बस्नका लागि अस्थायी पसलहरु भने राखिएका भेटिन्छन् । तर ती पसलहरुले भक्तजनहरुको घुईंचोलाई धान्न भने सकेका हुँदैनन् । नेपालको विभिन्न जिल्लाका साथै भारतबाट पनि तीर्थालुहरू यहाँ मेला भर्न आउँछन् । भक्तजनहरूले आफूले मागेको वरदान पूरा हुन्छ भन्ने विश्वास गर्छन् । हालसम्म [[गङ्गा दशहरा|गंगा दशहरा]] र साउन त्रयोदशी देखि चतुर्शीसम्म गरी वर्षको दुईपटक मात्र लाग्दै आएको औपचारिक मेलाका कारण बडीमालिकाको महत्त्व सीमित छ । भक्तजनहरुको घुईंचो गंगा दशहरा भन्दा साउन चतुर्दशीमा बढी हुने गर्दछ । बडिमालिका मन्दिरसम्म पुग्नका लागि कालिकोट र बाजुरा जिल्लाका विभिन्न बाटोहरु प्रयोग गर्न सकिन्छ । कर्णाली प्रदेश र बाजुरा जिल्लाको नजिकको क्षेत्र बाहेक अन्य स्थानबाट बडीमालिका मन्दिर सम्म पुग्नका लागि सबै भन्दा सजिलो बाटो मार्तडी हुँदै जाने बाटो हो । नेपालको राजधानी काठमाण्डौं लगायतका क्षेत्रबाट यो बाटो हुँदै बडीमालिका जानका लागि सुदूरपश्चिम प्रदेशको धनगढीबाट बाजुरा जिल्लाको मार्तडीसम्म सडक यातायातको सुविधा छ । धनगढीबाट दिवा तथा रात्री सेवाका बसहरु वा आफ्नै निजी सवारी साधनको प्रयोग गरेर एक दिनमा पुग्न सकिन्छ । मार्तडीबाट पैदल हिडेर अर्को दिन फुल चढाउने ठाउँमा पुगेर बास बस्नु पर्ने हुन्छ । फुल चढाउने ठाउँमा एउटा सानो धर्मशाला त छ तर त्यो यात्रुका लागि पर्याप्त हुँदैन । तसर्थ आफैले टेण्ट बोकेर लैजानु बुद्धिमानी हुन्छ । त्यसको भोलीपल्ट भितीचिर्ना बास बस्न सकिन्छ भने पर्सि पल्ट त्रिवेणी पाटनमा बास बस्न सकिन्छ । त्रयोदशीको दिन बिहानै त्रिवेणीमा स्नान गरि बडीमालिका तर्फ लाग्ने हो भने बडीमालिका पुगिन्छ । त्यसैदिन वा भोली पल्ट बडिमालिका देवीकझ दर्शन तथा पुजा गरेर नाटेश्वरी तर्फ हिड्न सकिन्छ । नाटेश्वरी तर्फको बाटो साह्रै भिरालो र अत्यधिक चिप्लो भएकोले विहान र दिउँसोको समयम पारेर हिड्नु पर्छ । विहानै हिड्ने हो भने सोही दिन नाटेश्वरी पुगिन्छ भने दिउँसो हिड्दा ठूलागडासम्म बास बस्ने गरी पुग्न सकिन्छ । नाटेश्वरी तर्फ जाँदा विष्णुपानीका अस्थायी होटलमा खाना खान पाईन्छ । ठूलागडा बस्ने हो भने भोलीपल्ट १० बजेसम्म नाटेश्वरी पुगिन्छ । नाटेश्वरीमा जनैपूर्णिका दिन नाटेश्वरी माईंको दर्शन गरी नजिकै रहेको कालिका मन्दिरमा बलि पुजा गर्ने प्रचलन छ । नाटेश्वरीमा जनै फेर्ने र रक्षा बन्धनको काम पनि गरिन्छ । बलि पुजा गर्नेहरुले भातसँग बोकाको मासु प्रसादको रुपमा खाएर सोही दिन बुढीगंगा नगरपालिकाको बाम्का बजार तर्फ लाग्दछन् । बाम्का बजारबाट धनगढीका लागि बसहरु भेटिन्छन् । त्यही बस वा आफ्नै सवारी साधनबाट धनगढीको यात्रा गर्न सकिन्छ । यसरी यो रुटबाट यात्रा गर्दा कम्तिमा ६ दिन लाग्दछ । तर त्रिवेणी र बडीमालिकाका सुन्दर दृश्यहरु हेर्नका लागि २ दिन थप गरेर ८ दिन लगाउने हो भने १ दिन त्रिवेणी र १ दिन बडीमालिकामा रहेर थप आनन्द लिन सकिन्छ । हवाई मार्गको प्रयोग गर्ने हो भने नेपालगञ्जबाट बाजुराको बुढीगंगा नगरपालिकाको कोल्टी एअरपोर्टसम्म गएर त्यहाँबाट १ दिनमा बाजुराको सदरमुकाम मार्तडी पुग्न सकिन्छ । मार्तडीबाट माथि भनिए झैं यात्रा गर्न सकिन्छ । कोल्टीबाटै फर्कने हो भने फर्कदा बडीमालिका-त्रिवेणी-भितिचिर्ना-फुल चढाउने-मार्तडी- कोल्टी हुँदै फर्कन सकिन्छ । बाजुराबाट कोर्ध-बुढाकोर्ध-भितिचिर्ना-त्रिवेणी-बडीमालिकाको बाटो पनि प्रयोग गर्न सकिन्छ । त्यस्तै बल्दे-पैमा पुजारीको घर हुँदै बडीमालिका जान पनि सकिन्छ । बाम्का बजार-मौरे-नाटेश्वरी हुँदै पनि बडीमालिका जान मिल्दछ । त्यस्तै बाम्का बजार-तोली-छतारा-पञ्चपुरी हुँदै पनि बडीमालिका जान सकिन्छ । बल्दे, बाम्का, पञ्चपुरीको बाटो प्रयोग गर्दा बडीमालिका पुगेर त्रिवेणी जानु पर्ने हुन्छ, त्रिवेणीमा नुहाएर फेरी बडीमालिका आउनु पर्ने हुन्छ । बडीमालिका ४,२२० मिटर उचाईंमा रहेको, बाटोहरु भिरालो रहेको, लेकाली विशालु जडिबुटीहरु फुलेर विश लाग्ने, लेक लाग्ने जस्ता कारणले बडीमालिका पुग्न जो कोहीलाई हम्मे हम्मे पर्दछ । तर पनि देवीको अनुकम्पाले अधिकाँश भक्तजनहरुले यात्रा पुरा गरेका हुन्छन् । बडीमालिकाको यात्रा गर्दा आजकाल ठाउँमा त्रिपाल राखेर खानाका लागि अस्थायी होटेलहरु राखिएका हुनाले खानाका लागि त्यति समस्या हुँदैन । तैपनि बाटोमा भोक लागेको बेला खानका लागि र बास बस्ने ठाउँमा खानेकुरा नपाएको अवस्थामा खानका लागि सातु वा आफुलाई मन पर्ने शुद्ध शाकाहारी ड्राई फुड बोकेर लैजान सकिन्छ । यसरी बोक्ने सामान भारी (गह्रौं) भने हुनु हुँदैन । भारी भयो भने बोकेर हिड्नलाई धेरै गाह्रो हुन सक्छ । लेक लाग्दा सुँघ्नका लागि पुजा गर्ने कपुर बोकिराख्नु भयो भने फाईदाजनक हुन्छ । पोलेको अदुवा, नुन खुर्शानी र टिम्मुर मिश्रित धुलो साथमा राखेर बेला बेलामा खानाले पनि लेक लाग्नबाट बच्न सकिन्छ । धेरै जसो ठाउँमा पानी नपाउने हुँदा पानीमा लागि बोटल साथमा राखेर हमेशा त्यसमा पानी भरिराख्नु पर्दछ । शौच सफा गर्न, मुख पुछ्न ट्वाइलेट पेपर, वेट टिस्यु पेपर साथमा लैजाँदा राम्रो हुन्छ । चिसोबाट जोगिन भिक्स, लिप गार्ड, इन्हेलर, कोल्ड क्रिम साथमा राखेर बेला बेला प्रयोग गर्नु बुद्धिमानी हुन्छ । जीउको दुखाई कम गर्न मुभ, सिटामोल जस्ता औषधी साथमा राखिराख्नु पर्दछ । रात्री सुत्नका लागि सिलिपिङ व्याग, टेण्ट, ज्याकेट, थर्मकोल लिनु भयो भने राम्रो हुन्छ । बडीमालिका क्षेत्रका सुन्दर दृश्यहरु कैद गर्नका लागि मोबाईल वा क्यामेराको साथमा पावर व्याकअप लैजानु पर्ने हुन्छ । पावर व्याकअप लिंदा कम्तिमा ६ दिनसम्म चार्ज गर्न मिल्ने क्षमता भएको पावर व्याकअप लैजानु पर्दछ। ==सञ्चार सेवा== धार्मिक तथा पर्यटकीय दृष्टिले महत्वपूर्ण [[बाजुरा जिल्ला|बाजुरा]]को बडीमालिका क्षेत्रमा दूरसञ्चार तथा इन्टरनेट सेवाको पहुँच विस्तार भएको छ। नेपाल टेलिकमले बडीमालिका क्षेत्रमा फोर-जी सेवा विस्तार गरेपछि ८ भाद्र, २०८३ सोमबारदेखि उक्त क्षेत्रमा मोबाइल फोन तथा इन्टरनेट सेवा सञ्चालनमा आएको हो।<ref>{{वेब स्रोत|लेखक=गोरखापत्र अनलाइन|शीर्षक=बडीमालिका क्षेत्रमा पुग्यो टेलिफोन र इन्टरनेट सेवा|युआरएल=https://gorkhapatraonline.com/news/219713|कार्य=|प्रकाशक=|वेबसाइट=गोरखापत्र अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> जनैपूर्णिमाका अवसरमा बडीमालिका क्षेत्रमा आयोजना हुने धार्मिक मेलाको पूर्वसन्ध्यामा सञ्चार सेवा सञ्चालनमा आएको हो। समुद्री सतहबाट करिब ४,२०० मिटरको उचाइमा रहेको यस क्षेत्रमा सञ्चार सेवा विस्तार भएपछि स्थानीयवासी, तीर्थयात्री, पर्यटक तथा विभिन्न सरकारी तथा गैरसरकारी निकायलाई सञ्चार सम्पर्कमा सहजता हुने अपेक्षा गरिएको छ। यसअघि दुर्गम तथा उच्च हिमाली क्षेत्रमा अवस्थित बडीमालिका क्षेत्रमा मोबाइल तथा इन्टरनेट सेवाको पहुँच सीमित थियो। फोर-जी सेवा विस्तारसँगै मोबाइल फोन तथा इन्टरनेट प्रयोग गर्न सहज भएको छ। यसले धार्मिक तथा पर्यटकीय गतिविधिका साथै सूचना आदानप्रदान र आपत्कालीन अवस्थामा सञ्चार सम्पर्क कायम गर्न समेत सहयोग पुग्ने अपेक्षा गरिएको छ।<ref>{{वेब स्रोत|लेखक=दिलबहादुर छत्याल|शीर्षक=बडीमालिकामा पुग्यो इन्टरनेट|युआरएल=https://nagariknews.nagariknetwork.com/technology/internet-reaches-badimalika-38-72.html|कार्य=|प्रकाशक=|वेबसाइट=नागरिक अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> ==तस्विर ग्यालरी== <gallery> File:बडिमालिका मन्दिर.JPG|बडिमालिका मन्दिर File:बडिमालिका मन्दिरको बाटो.JPG|बडिमालिका मन्दिरको बाटो File:बडिमालिका मन्दिर रहेको पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरमा पूजा गर्दे.JPG|बडिमालिका मन्दिरमा पूजा गर्दै File:बडिमालिका मन्दिरबाट फर्केका मानिसहरु.JPG|बडिमालिका मन्दिरबाट फर्केका मानिसहरू File:बडिमालिका मन्दिर अवस्थीत पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरबाट देखिने दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने दृष्य File:बडिमालिका मन्दिरबाट देखिने एक दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने एक दृष्य </gallery> ==श्रोत== {{reflist|}} ==बाह्य कडीहरू== *[http://m.ujyaaloonline.com/index.php?pआageName=news_details&id=10177&catId=21 पर्यटक पर्खदै बाजुराको बडिमालिका]{{Dead link|date=November 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.ekantipur.com/kantipur/news/news-detail.php?news_id=260067 सुरु भएन बडिमालिका संरक्षण योजना] *[http://www.bbc.com/nepali/multimedia/2016/09/160902_badimalika_nepal?ocid=socialflow_facebook बडिमालिका यात्रा] *[http://www.hamrogorkha.com/नियमित-स्तम्भ/पर्यटन/सौन्दर्यले-भरिएको-बाजुराको-बडिमालिका-(फोटोफिचर).htm बडिमालिका फोटो फिचर]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.sidhadrishti.com/2016/05/108.html?m=1 स्वर्गको टुक्रा बडिमालिका] {{Webarchive|url=https://web.archive.org/web/20220117221717/http://www.sidhadrishti.com/2016/05/108.html?m=1 |date=2022-01-17 }} ==यी पनि हेर्नुहोस्== {{सुदूर-पश्चिमकी नौ भगवती}} {{नेपालका मन्दिरहरू}} [[श्रेणी:नेपालका मन्दिरहरू]] [[श्रेणी:बाजुरा जिल्लाका धार्मिक ठाउँहरू]] 75l87i01apkq983acsji4h7swnos1uy 1372324 1372323 2026-08-26T00:42:44Z Rajeeb bastola 39875 1372324 wikitext text/x-wiki {{Short description|Hindu temple in Sudurpashchim, Nepal}} {{more citations needed|date=August 2020}} {{Infobox Mandir |name = बडिमालिका मन्दिर |image = Badi Malika.png | |alt = Temple premises |caption = |pushpin_map = Nepal |pushpin_caption = Badimalika Temple in Nepal |coordinates = {{coord|29.346916|81.477488|type:landmark_region:NP|display=inline,title}} |sanskrit_translit = |country = {{flag|Nepal}} |state = [[Seti zone|Seti]] |district = [[Bajura district|Bajura]] |location = [[Kailashmandau]], [[Bajura district|Bajura]] <ref>{{cite web|URL= http://fwdc.gov.np/ne/%E0%A4%A7%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%95-%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%A8%E0%A4%B9%E0%A4%B0%E0%A5%81 |title= धार्मिक स्थलहरु |language= Nepali |publisher= www.fwdc.gov.np}}</ref> |elevation_m = |deity = [[Shakti]] |festival = [[Ganga Dussehra]], Shrwan Shukla chaturdashi |architecture = Pagoda Style |temple_quantity = |monument_quantity = |inscriptions = |creator = |website = |mapframe = yes |mapframe-zoom = 12 |mapframe-wikidata = yes }} == पृष्ठभूमि == '''बडीमालिका''' विश्वका प्रमुख हिन्दु मन्दिरहरूमध्येको एक प्रशिद्ध मन्दिर हो । यो मन्दिर नेपालको सुदूरपश्चिम प्रदेशको बाजुरा जिल्लाको त्रिवेणी नगरपालिकामा वडा नं. ६ पन्धारामा पर्दछ । यहाँ प्रत्येक वर्ष साउन शुक्ल त्रयोदशी देखि चतुर्दशीका दिन मुख्य पूजा तथा हवन गरिन्छ । गंगा दशहरामा यहाँको पाती प्रसाद खप्तडमा ल्याएर चढाउने गरिन्छ । बडीमालिकामा २ जिल्लाका पुजारीहरुले पूजा गर्छन् । यी मध्ये १ बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ९ पैमाका हुन् भने अर्को कालिकोटका हुन् । हाल बाजुराबाट मुख्य पुजारीको रुपमा नेत्र पाध्याय रहेका छन् भने कालिकोटबाट हरी धमाला रहेका छन् । [[File : Badimalika Temple, Bajura, Nepal.jpg|thumb|बडीमालिका मन्दिर|300px]] सम्वत् २०८२ सालमा यहाँको पुरानो मन्दिरको जिर्णोद्वार गरी नेपाली सेनाद्वारा नयाँ मन्दिर निर्माण गरिएको छ । बडीमालिका मन्दिर समुन्द्री सतहबाट ४,२२० मीटर उचाईमा अवस्थित छ । जुन विश्वमा रहेका हिन्दु मन्दिरहरुमध्ये सबैभन्दा अग्लो स्थानमा रहेको हिन्दु मन्दिर हो । बडीमालिका दर्शनका लागि जाने भक्तजनहरुले त्रिवेणी हुँदै जानु पर्ने हुन्छ । त्रिवेणी बाजुरा जिल्लाको त्रिवेणी नगरपालिका र कालिकोटको रास्कोट नगरपालिकाको सिमाना हो । यसको मुख्य भाग बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ५ किम्नीमा पर्दछ । बडीमालिका, त्रिवेणी बहुमूल्य जडिबुटीको भण्डार पनि हो । ==किंवदन्ती== पौराणिक कथा अनुसार [[शिव|महादेव]]की पत्नी [[सतिदेवी]]का पिता [[दक्ष प्रजापति]]ले यज्ञ गर्दा महादेव र सतिदेवीलाई बोलाएनन् । आफ्ना पति र आफूलाई यज्ञमा नबोलाएपछि सतिदेविले आफ्ना पिता दक्ष प्रजापतीले सञ्चालन गरेको यज्ञ स्थलमा गएर पितासँग आफ्ना पति महादेव र आफूलाई यज्ञमा नबोलाउनुको कारण सोधिन् । दक्ष प्रजापतीले महादेव [[भाङ]], [[धतुरो]] सेवन गर्ने, शमसान घाटमा वास गर्ने, गलामा [[सर्प]]को माला लगाउने, जटाधारी भेषमा रहने, शरीरभरी [[खरानी]] घस्ने, [[बाघ]]को छालाको पहिरने हुनाले यस यज्ञमा बस्दा शोभा नदिने भएकाले नबोलाएको बताए । पिताको जवाफ सुनेपछि सतिदेवीलाई आफ्ना पतिको अपमान गरिएको महशुस भयो र अपमान सहन गर्न नसकेर यज्ञकुण्डको अग्नीमा हाम फालेर प्राण त्याग गरिन् । आफ्नी पत्नि सतिदेवीले दक्ष प्रजापतिले सञ्चालन गरेको यज्ञमा हाम फालेर प्राण त्याग गरेपछि महादेव रिसाएर विरभद्रादी शिवगणलाई पठाएर दक्ष प्रजापतिलाई मारी दक्ष प्रजापतिले सञ्चालन गरेको यज्ञ तहस नहस पार्न लगाए । आफू भने पत्नी वियोगमा पागल भएर सतिदेवीको मृत शरिर बोकेर पुरा [[विश्व]] घुम्न थाले । यसै बेला [[विष्णु|भगवान बिष्णु]]ले आफ्नो चक्र सुदर्शन प्रहार गरी सतिदेवीको मृत शरीरमा किरा पारेर कुहाए । सतिदेवीको मृत शरीर कुहिए पछि महादेव जहाँ जहाँ गए त्यहाँ त्यहाँ सतिदेवीको मृत शरीरको कुहिएको अङ्ग खस्दै (पतन हुँदै) गए । यसरी ठाउँ ठाउँमा सतिदेवीको शरीरका अङ्गहरू पतन हुँदै जान थालेपछि जहाँ जहाँ सतिदवीका अङ्ग पतन भए त्यहाँ त्यहाँ एक एकवटा सिद्ध पिठ (प्रसिद्ध धार्मिक स्थल) बन्दै गए । यसै क्रममा हालको बाजुरा जिल्लाको मल्लागिरी पर्वतमा सतिदेवीको बायाँ कुम पतन भयो । पछि गएर सतिदेवीको बायाँ कुम पतन भएको त्यही पर्वतलाई मालिका र हाल आएर बडीमालिका भनिन थालियो । मल्लागिरी पर्वतमा मल्लिका अथवा [[मालिका देवी]] शक्ति स्वरूपले रहन थालिन् ।<ref>श्री स्वस्थानी ब्रतकथा</ref> तसर्थ यस स्थानमा बडिमालिका मन्दिर स्थापना गरेर पूजा गर्न थालियो । भनिन्छ पौराणिक कालमा भगवतीले महिषासुर नामको दैत्यको वध गरिसकेपछि कालिकोटको "द्वारेढुंगा" भन्ने ठाउँमा विश्राम गरेकी थिइन् । पछि गएर द्वारेढुंगामा एकजना दाउरा खोज्न गएको दलित भोकले व्याकुल भई देवीसँग बहरको मासु र हिया गहुँको रोटी माग्यो । देवीले त्यो दलितको मनोरथ पूरा गरिदिइन् । दलितले पूरै बहरलाई एक्लै खान नसकिने भएकाले आफ्नो घरका मान्छेलाई बोलाएछ । उसको घरको मानिसहरूले टाढा भएका कारण सुन्न सकेनन् । तब त्यो दलितलाई रिस उठ्यो। उसले भगवतीलाई भन्यो हे! प्रमेश्वरी मेरा घरका सबै मान्छे मरुन् । देवीले पनि इच्छाअनुसार वरदान दिइन् । त्यसपछि बहरको मासु लिएर दलित घर गएछ । घरमा हेर्दा त सबै जहानहरू मरेका देख्यो । फेरि दलित रिसायर द्वारेढुंगा पुग्यो । देवी उसलाई देखेर ढोका बन्द गरी त्यहाँबाट भागिन् । दलितले बहरको फिलाले देवीको घरमा हानेको छाप अझै द्वारे ढुङ्गामा देखिन्छ । यसो भएका कारण देवी सधैँका लागि त्यो ठाउँ छोडेर त्रिवेणी, पञ्चपुरी पाटन, मल्लपुरी पाटन हुँदै बडीमालिकामा गएर बसिन् । त्यसैले दलितहरू बडिमालिका जाँदैनन् भन्ने विश्वास गरिन्छ। अन्य भक्तजनहरू जो बाटो देवी गएकी हुन् त्यही बाटो भएर जान्छन् । <ref>जन जिब्रोमा प्रचलित कथा</ref> ==सरकारी पूजा== बडीमालिका मन्दिरमा सरकारका तर्फबाट एकजना मुख्य पूजारी बनाइएका छन् । हाल बाजुरा जिल्ला त्रिवेणी नगरपालिका वडा नं. ९ पैमाका नेत्र पाध्याय मुख्य पुजारीका रुपमा रहेका छन् । पैमाका पुजारी नेत्र पाध्याय र उनका दाजुभाइहरू छोराहरूले सरकारी पूजा गराउँछन् । सरकारी पुजा गर्दा सबैभन्दा पहिले डोटी जिल्लाबाट पठाईएको गोरखनाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ भने त्यसपछि जुम्ला जिल्लाबाट चन्दननाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ । त्यसपछि क्रमश: [[अछाम जिल्ला|अछाम]], [[बाजुरा जिल्ला|बाजुरा]] र [[कालिकोट जिल्ला|कालिकोट]] जिल्लाका प्रमुख जिल्ला अधिकारी तथा निजका प्रतिनिधिहरु लगायत अन्य कर्मचारीहरूको हातबाट देवीको सरकारी पूजा सम्पन्न हुन्छ। पछिल्लो समयमा कालिकोट, जुम्ला, मुगु, अछाम, बाजुरा, कैलाली जिल्लाका स्थानीय सरकारका तर्फबाट समेत बडीमालिका मन्दिरमा सरकारी पुजा गर्ने प्रचलन रहेको छ । कैलाली जिल्लामा रहेको सुदूरपश्चिम प्रदेशको एक मात्र उपमहानगरपालिका धनगढी उपमहानगरपालिकाको तर्फबाट सम्वत् २०८२ साल साउन २३ गतेका दिन पहिलो पटक सरकारी पुजा गरिएको छ । धनगढी उपमहानगरपालिका नगर प्रमुख श्री गोपाल हमालको पहलमा २०८२ सालदेखि बडीमालिका मन्दिरमा सरकारी पुजाको थालनी गरिएको हो । ==प्राकृतिक सौन्दर्य== बडीमालिका धार्मिक मात्र नभएर पर्यटकीय हिसाबले पनि महत्त्वपूर्ण मानिन्छ । नजिकै देखिने सुन्दर हिमाल, हिउँ कुल्चन पाउने सौभाग्य र मनोरम प्राकृतिक दृश्यहरू बडीमालिकाका गहना हुन् । बडीमालिकाको सौन्दर्य भनेकै विशाल फाँटहरू हुन् । बडमालिका क्षेत्रका ती विशाल फाँटहरुलाई स्थानीय भाषामा पाटन भनिन्छ । तर अचेल यी फाँटहरू बिस्तारै मासिँदै छन् । यी फाँटमा अनावश्यक चरन र जडीबुडी चोरी निकासीका कारण यसको सौन्दर्य मासिएको जिल्लाबासीको गुनासो छ । बडीमालिकामा प्रत्येक वर्ष [[श्रावण शुक्ल पूर्णिमा|जनै पूर्णिमा]]को अघिल्ला दिनहरु साउन त्रयोदशी देखि चतुर्दशीका दिन ठूलो मेला लाग्दछ । त्यो समयमा केही स्थानीय व्यापारीले खाजा नास्ताका पसल राख्ने गर्छन् । अन्य समयमा त्यहाँ खाजा नास्ताका कुनै पसलहरू खासै भेटिँदैनन् । बडीमालिका मन्दिरमा दर्शन गरेपछि आफ्नो मनोकांक्षा पूरा हुने जनविश्वास छ । मन्दिर परिसरबाट आँखै अगाडी देखिने [[साइपाल हिमाल|सैपाल]] हिमालको मनोरम दृश्यले यहाँको सौन्दर्यलाई झनै तिखारेको छ । बडीमालीका पुग्नका लागि उचित बास बस्ने स्थान नभएका कारण भक्तजन तथा पर्यटकले खानपिन तथा बासको जोहो आफै गर्नुपर्छ । यद्दपि साउन महिनामा लाग्ने मेलाको अवसरका बाटोमा त्रिपाल टाँगेर खान बस्नका लागि अस्थायी पसलहरु भने राखिएका भेटिन्छन् । तर ती पसलहरुले भक्तजनहरुको घुईंचोलाई धान्न भने सकेका हुँदैनन् । नेपालको विभिन्न जिल्लाका साथै भारतबाट पनि तीर्थालुहरू यहाँ मेला भर्न आउँछन् । भक्तजनहरूले आफूले मागेको वरदान पूरा हुन्छ भन्ने विश्वास गर्छन् । हालसम्म [[गङ्गा दशहरा|गंगा दशहरा]] र साउन त्रयोदशी देखि चतुर्शीसम्म गरी वर्षको दुईपटक मात्र लाग्दै आएको औपचारिक मेलाका कारण बडीमालिकाको महत्त्व सीमित छ । भक्तजनहरुको घुईंचो गंगा दशहरा भन्दा साउन चतुर्दशीमा बढी हुने गर्दछ । बडिमालिका मन्दिरसम्म पुग्नका लागि कालिकोट र बाजुरा जिल्लाका विभिन्न बाटोहरु प्रयोग गर्न सकिन्छ । कर्णाली प्रदेश र बाजुरा जिल्लाको नजिकको क्षेत्र बाहेक अन्य स्थानबाट बडीमालिका मन्दिर सम्म पुग्नका लागि सबै भन्दा सजिलो बाटो मार्तडी हुँदै जाने बाटो हो । नेपालको राजधानी काठमाण्डौं लगायतका क्षेत्रबाट यो बाटो हुँदै बडीमालिका जानका लागि सुदूरपश्चिम प्रदेशको धनगढीबाट बाजुरा जिल्लाको मार्तडीसम्म सडक यातायातको सुविधा छ । धनगढीबाट दिवा तथा रात्री सेवाका बसहरु वा आफ्नै निजी सवारी साधनको प्रयोग गरेर एक दिनमा पुग्न सकिन्छ । मार्तडीबाट पैदल हिडेर अर्को दिन फुल चढाउने ठाउँमा पुगेर बास बस्नु पर्ने हुन्छ । फुल चढाउने ठाउँमा एउटा सानो धर्मशाला त छ तर त्यो यात्रुका लागि पर्याप्त हुँदैन । तसर्थ आफैले टेण्ट बोकेर लैजानु बुद्धिमानी हुन्छ । त्यसको भोलीपल्ट भितीचिर्ना बास बस्न सकिन्छ भने पर्सि पल्ट त्रिवेणी पाटनमा बास बस्न सकिन्छ । त्रयोदशीको दिन बिहानै त्रिवेणीमा स्नान गरि बडीमालिका तर्फ लाग्ने हो भने बडीमालिका पुगिन्छ । त्यसैदिन वा भोली पल्ट बडिमालिका देवीकझ दर्शन तथा पुजा गरेर नाटेश्वरी तर्फ हिड्न सकिन्छ । नाटेश्वरी तर्फको बाटो साह्रै भिरालो र अत्यधिक चिप्लो भएकोले विहान र दिउँसोको समयम पारेर हिड्नु पर्छ । विहानै हिड्ने हो भने सोही दिन नाटेश्वरी पुगिन्छ भने दिउँसो हिड्दा ठूलागडासम्म बास बस्ने गरी पुग्न सकिन्छ । नाटेश्वरी तर्फ जाँदा विष्णुपानीका अस्थायी होटलमा खाना खान पाईन्छ । ठूलागडा बस्ने हो भने भोलीपल्ट १० बजेसम्म नाटेश्वरी पुगिन्छ । नाटेश्वरीमा जनैपूर्णिका दिन नाटेश्वरी माईंको दर्शन गरी नजिकै रहेको कालिका मन्दिरमा बलि पुजा गर्ने प्रचलन छ । नाटेश्वरीमा जनै फेर्ने र रक्षा बन्धनको काम पनि गरिन्छ । बलि पुजा गर्नेहरुले भातसँग बोकाको मासु प्रसादको रुपमा खाएर सोही दिन बुढीगंगा नगरपालिकाको बाम्का बजार तर्फ लाग्दछन् । बाम्का बजारबाट धनगढीका लागि बसहरु भेटिन्छन् । त्यही बस वा आफ्नै सवारी साधनबाट धनगढीको यात्रा गर्न सकिन्छ । यसरी यो रुटबाट यात्रा गर्दा कम्तिमा ६ दिन लाग्दछ । तर त्रिवेणी र बडीमालिकाका सुन्दर दृश्यहरु हेर्नका लागि २ दिन थप गरेर ८ दिन लगाउने हो भने १ दिन त्रिवेणी र १ दिन बडीमालिकामा रहेर थप आनन्द लिन सकिन्छ । हवाई मार्गको प्रयोग गर्ने हो भने नेपालगञ्जबाट बाजुराको बुढीगंगा नगरपालिकाको कोल्टी एअरपोर्टसम्म गएर त्यहाँबाट १ दिनमा बाजुराको सदरमुकाम मार्तडी पुग्न सकिन्छ । मार्तडीबाट माथि भनिए झैं यात्रा गर्न सकिन्छ । कोल्टीबाटै फर्कने हो भने फर्कदा बडीमालिका-त्रिवेणी-भितिचिर्ना-फुल चढाउने-मार्तडी- कोल्टी हुँदै फर्कन सकिन्छ । बाजुराबाट कोर्ध-बुढाकोर्ध-भितिचिर्ना-त्रिवेणी-बडीमालिकाको बाटो पनि प्रयोग गर्न सकिन्छ । त्यस्तै बल्दे-पैमा पुजारीको घर हुँदै बडीमालिका जान पनि सकिन्छ । बाम्का बजार-मौरे-नाटेश्वरी हुँदै पनि बडीमालिका जान मिल्दछ । त्यस्तै बाम्का बजार-तोली-छतारा-पञ्चपुरी हुँदै पनि बडीमालिका जान सकिन्छ । बल्दे, बाम्का, पञ्चपुरीको बाटो प्रयोग गर्दा बडीमालिका पुगेर त्रिवेणी जानु पर्ने हुन्छ, त्रिवेणीमा नुहाएर फेरी बडीमालिका आउनु पर्ने हुन्छ । बडीमालिका ४,२२० मिटर उचाईंमा रहेको, बाटोहरु भिरालो रहेको, लेकाली विशालु जडिबुटीहरु फुलेर विश लाग्ने, लेक लाग्ने जस्ता कारणले बडीमालिका पुग्न जो कोहीलाई हम्मे हम्मे पर्दछ । तर पनि देवीको अनुकम्पाले अधिकाँश भक्तजनहरुले यात्रा पुरा गरेका हुन्छन् । बडीमालिकाको यात्रा गर्दा आजकाल ठाउँमा त्रिपाल राखेर खानाका लागि अस्थायी होटेलहरु राखिएका हुनाले खानाका लागि त्यति समस्या हुँदैन । तैपनि बाटोमा भोक लागेको बेला खानका लागि र बास बस्ने ठाउँमा खानेकुरा नपाएको अवस्थामा खानका लागि सातु वा आफुलाई मन पर्ने शुद्ध शाकाहारी ड्राई फुड बोकेर लैजान सकिन्छ । यसरी बोक्ने सामान भारी (गह्रौं) भने हुनु हुँदैन । भारी भयो भने बोकेर हिड्नलाई धेरै गाह्रो हुन सक्छ । लेक लाग्दा सुँघ्नका लागि पुजा गर्ने कपुर बोकिराख्नु भयो भने फाईदाजनक हुन्छ । पोलेको अदुवा, नुन खुर्शानी र टिम्मुर मिश्रित धुलो साथमा राखेर बेला बेलामा खानाले पनि लेक लाग्नबाट बच्न सकिन्छ । धेरै जसो ठाउँमा पानी नपाउने हुँदा पानीमा लागि बोटल साथमा राखेर हमेशा त्यसमा पानी भरिराख्नु पर्दछ । शौच सफा गर्न, मुख पुछ्न ट्वाइलेट पेपर, वेट टिस्यु पेपर साथमा लैजाँदा राम्रो हुन्छ । चिसोबाट जोगिन भिक्स, लिप गार्ड, इन्हेलर, कोल्ड क्रिम साथमा राखेर बेला बेला प्रयोग गर्नु बुद्धिमानी हुन्छ । जीउको दुखाई कम गर्न मुभ, सिटामोल जस्ता औषधी साथमा राखिराख्नु पर्दछ । रात्री सुत्नका लागि सिलिपिङ व्याग, टेण्ट, ज्याकेट, थर्मकोल लिनु भयो भने राम्रो हुन्छ । बडीमालिका क्षेत्रका सुन्दर दृश्यहरु कैद गर्नका लागि मोबाईल वा क्यामेराको साथमा पावर व्याकअप लैजानु पर्ने हुन्छ । पावर व्याकअप लिंदा कम्तिमा ६ दिनसम्म चार्ज गर्न मिल्ने क्षमता भएको पावर व्याकअप लैजानु पर्दछ। ==सञ्चार सेवा== धार्मिक तथा पर्यटकीय दृष्टिले महत्वपूर्ण [[बाजुरा जिल्ला|बाजुरा]]को बडीमालिका क्षेत्रमा दूरसञ्चार तथा इन्टरनेट सेवाको पहुँच विस्तार भएको छ। नेपाल टेलिकमले बडीमालिका क्षेत्रमा फोर-जी सेवा विस्तार गरेपछि ८ भाद्र, २०८३ सोमबारदेखि उक्त क्षेत्रमा मोबाइल फोन तथा इन्टरनेट सेवा सञ्चालनमा आएको हो।<ref>{{वेब स्रोत|लेखक=गोरखापत्र अनलाइन|शीर्षक=बडीमालिका क्षेत्रमा पुग्यो टेलिफोन र इन्टरनेट सेवा|युआरएल=https://gorkhapatraonline.com/news/219713|कार्य=|प्रकाशक=|वेबसाइट=गोरखापत्र अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> जनैपूर्णिमाका अवसरमा बडीमालिका क्षेत्रमा आयोजना हुने धार्मिक मेलाको पूर्वसन्ध्यामा सञ्चार सेवा सञ्चालनमा आएको हो। समुद्री सतहबाट करिब ४,२०० मिटरको उचाइमा रहेको यस क्षेत्रमा सञ्चार सेवा विस्तार भएपछि स्थानीयवासी, तीर्थयात्री, पर्यटक तथा विभिन्न सरकारी तथा गैरसरकारी निकायलाई सञ्चार सम्पर्कमा सहजता हुने अपेक्षा गरिएको छ। यसअघि दुर्गम तथा उच्च हिमाली क्षेत्रमा अवस्थित बडीमालिका क्षेत्रमा मोबाइल तथा इन्टरनेट सेवाको पहुँच सीमित थियो। फोर-जी सेवा विस्तारसँगै मोबाइल फोन तथा इन्टरनेट प्रयोग गर्न सहज भएको छ। यसले धार्मिक तथा पर्यटकीय गतिविधिका साथै सूचना आदानप्रदान र आपत्कालीन अवस्थामा सञ्चार सम्पर्क कायम गर्न समेत सहयोग पुग्ने अपेक्षा गरिएको छ।<ref>{{वेब स्रोत|लेखक=दिलबहादुर छत्याल|शीर्षक=बडीमालिकामा पुग्यो इन्टरनेट|युआरएल=https://nagariknews.nagariknetwork.com/technology/internet-reaches-badimalika-38-72.html|कार्य=|प्रकाशक=|वेबसाइट=नागरिक अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> ==तस्विर ग्यालरी== <gallery> File:बडिमालिका मन्दिर.JPG|बडिमालिका मन्दिर File:बडिमालिका मन्दिरको बाटो.JPG|बडिमालिका मन्दिरको बाटो File:बडिमालिका मन्दिर रहेको पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरमा पूजा गर्दे.JPG|बडिमालिका मन्दिरमा पूजा गर्दै File:बडिमालिका मन्दिरबाट फर्केका मानिसहरु.JPG|बडिमालिका मन्दिरबाट फर्केका मानिसहरू File:बडिमालिका मन्दिर अवस्थीत पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरबाट देखिने दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने दृष्य File:बडिमालिका मन्दिरबाट देखिने एक दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने एक दृष्य </gallery> ==श्रोत== {{reflist|}} ==बाह्य कडीहरू== *[http://m.ujyaaloonline.com/index.php?pआageName=news_details&id=10177&catId=21 पर्यटक पर्खदै बाजुराको बडिमालिका]{{Dead link|date=November 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.ekantipur.com/kantipur/news/news-detail.php?news_id=260067 सुरु भएन बडिमालिका संरक्षण योजना] *[http://www.bbc.com/nepali/multimedia/2016/09/160902_badimalika_nepal?ocid=socialflow_facebook बडिमालिका यात्रा] *[http://www.hamrogorkha.com/नियमित-स्तम्भ/पर्यटन/सौन्दर्यले-भरिएको-बाजुराको-बडिमालिका-(फोटोफिचर).htm बडिमालिका फोटो फिचर]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.sidhadrishti.com/2016/05/108.html?m=1 स्वर्गको टुक्रा बडिमालिका] {{Webarchive|url=https://web.archive.org/web/20220117221717/http://www.sidhadrishti.com/2016/05/108.html?m=1 |date=2022-01-17 }} ==यी पनि हेर्नुहोस्== {{सुदूर-पश्चिमकी नौ भगवती}} {{नेपालका मन्दिरहरू}} [[श्रेणी:नेपालका मन्दिरहरू]] [[श्रेणी:बाजुरा जिल्लाका धार्मिक ठाउँहरू]] 8jek1ylua575l659ob8iydas179301e 1372325 1372324 2026-08-26T00:44:05Z Rajeeb bastola 39875 1372325 wikitext text/x-wiki {{Short description|Hindu temple in Sudurpashchim, Nepal}} {{more citations needed|date=August 2020}} {{Infobox Mandir |name = बडिमालिका मन्दिर |image = Badi Malika.png | |alt = Temple premises |caption = |pushpin_map = Nepal |pushpin_caption = Badimalika Temple in Nepal |coordinates = {{coord|29.346916|81.477488|type:landmark_region:NP|display=inline,title}} |sanskrit_translit = |country = {{flag|Nepal}} |state = [[Seti zone|Seti]] |district = [[बाजुरा जिल्ला|बाजुरा]] |location = [[Kailashmandau]], [[Bajura district|Bajura]] <ref>{{cite web|URL= http://fwdc.gov.np/ne/%E0%A4%A7%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%95-%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%A8%E0%A4%B9%E0%A4%B0%E0%A5%81 |title= धार्मिक स्थलहरु |language= Nepali |publisher= www.fwdc.gov.np}}</ref> |elevation_m = |deity = [[Shakti]] |festival = [[Ganga Dussehra]], Shrwan Shukla chaturdashi |architecture = Pagoda Style |temple_quantity = |monument_quantity = |inscriptions = |creator = |website = |mapframe = yes |mapframe-zoom = 12 |mapframe-wikidata = yes }} == पृष्ठभूमि == '''बडीमालिका''' विश्वका प्रमुख हिन्दु मन्दिरहरूमध्येको एक प्रशिद्ध मन्दिर हो । यो मन्दिर नेपालको सुदूरपश्चिम प्रदेशको बाजुरा जिल्लाको त्रिवेणी नगरपालिकामा वडा नं. ६ पन्धारामा पर्दछ । यहाँ प्रत्येक वर्ष साउन शुक्ल त्रयोदशी देखि चतुर्दशीका दिन मुख्य पूजा तथा हवन गरिन्छ । गंगा दशहरामा यहाँको पाती प्रसाद खप्तडमा ल्याएर चढाउने गरिन्छ । बडीमालिकामा २ जिल्लाका पुजारीहरुले पूजा गर्छन् । यी मध्ये १ बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ९ पैमाका हुन् भने अर्को कालिकोटका हुन् । हाल बाजुराबाट मुख्य पुजारीको रुपमा नेत्र पाध्याय रहेका छन् भने कालिकोटबाट हरी धमाला रहेका छन् । [[File : Badimalika Temple, Bajura, Nepal.jpg|thumb|बडीमालिका मन्दिर|300px]] सम्वत् २०८२ सालमा यहाँको पुरानो मन्दिरको जिर्णोद्वार गरी नेपाली सेनाद्वारा नयाँ मन्दिर निर्माण गरिएको छ । बडीमालिका मन्दिर समुन्द्री सतहबाट ४,२२० मीटर उचाईमा अवस्थित छ । जुन विश्वमा रहेका हिन्दु मन्दिरहरुमध्ये सबैभन्दा अग्लो स्थानमा रहेको हिन्दु मन्दिर हो । बडीमालिका दर्शनका लागि जाने भक्तजनहरुले त्रिवेणी हुँदै जानु पर्ने हुन्छ । त्रिवेणी बाजुरा जिल्लाको त्रिवेणी नगरपालिका र कालिकोटको रास्कोट नगरपालिकाको सिमाना हो । यसको मुख्य भाग बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ५ किम्नीमा पर्दछ । बडीमालिका, त्रिवेणी बहुमूल्य जडिबुटीको भण्डार पनि हो । ==किंवदन्ती== पौराणिक कथा अनुसार [[शिव|महादेव]]की पत्नी [[सतिदेवी]]का पिता [[दक्ष प्रजापति]]ले यज्ञ गर्दा महादेव र सतिदेवीलाई बोलाएनन् । आफ्ना पति र आफूलाई यज्ञमा नबोलाएपछि सतिदेविले आफ्ना पिता दक्ष प्रजापतीले सञ्चालन गरेको यज्ञ स्थलमा गएर पितासँग आफ्ना पति महादेव र आफूलाई यज्ञमा नबोलाउनुको कारण सोधिन् । दक्ष प्रजापतीले महादेव [[भाङ]], [[धतुरो]] सेवन गर्ने, शमसान घाटमा वास गर्ने, गलामा [[सर्प]]को माला लगाउने, जटाधारी भेषमा रहने, शरीरभरी [[खरानी]] घस्ने, [[बाघ]]को छालाको पहिरने हुनाले यस यज्ञमा बस्दा शोभा नदिने भएकाले नबोलाएको बताए । पिताको जवाफ सुनेपछि सतिदेवीलाई आफ्ना पतिको अपमान गरिएको महशुस भयो र अपमान सहन गर्न नसकेर यज्ञकुण्डको अग्नीमा हाम फालेर प्राण त्याग गरिन् । आफ्नी पत्नि सतिदेवीले दक्ष प्रजापतिले सञ्चालन गरेको यज्ञमा हाम फालेर प्राण त्याग गरेपछि महादेव रिसाएर विरभद्रादी शिवगणलाई पठाएर दक्ष प्रजापतिलाई मारी दक्ष प्रजापतिले सञ्चालन गरेको यज्ञ तहस नहस पार्न लगाए । आफू भने पत्नी वियोगमा पागल भएर सतिदेवीको मृत शरिर बोकेर पुरा [[विश्व]] घुम्न थाले । यसै बेला [[विष्णु|भगवान बिष्णु]]ले आफ्नो चक्र सुदर्शन प्रहार गरी सतिदेवीको मृत शरीरमा किरा पारेर कुहाए । सतिदेवीको मृत शरीर कुहिए पछि महादेव जहाँ जहाँ गए त्यहाँ त्यहाँ सतिदेवीको मृत शरीरको कुहिएको अङ्ग खस्दै (पतन हुँदै) गए । यसरी ठाउँ ठाउँमा सतिदेवीको शरीरका अङ्गहरू पतन हुँदै जान थालेपछि जहाँ जहाँ सतिदवीका अङ्ग पतन भए त्यहाँ त्यहाँ एक एकवटा सिद्ध पिठ (प्रसिद्ध धार्मिक स्थल) बन्दै गए । यसै क्रममा हालको बाजुरा जिल्लाको मल्लागिरी पर्वतमा सतिदेवीको बायाँ कुम पतन भयो । पछि गएर सतिदेवीको बायाँ कुम पतन भएको त्यही पर्वतलाई मालिका र हाल आएर बडीमालिका भनिन थालियो । मल्लागिरी पर्वतमा मल्लिका अथवा [[मालिका देवी]] शक्ति स्वरूपले रहन थालिन् ।<ref>श्री स्वस्थानी ब्रतकथा</ref> तसर्थ यस स्थानमा बडिमालिका मन्दिर स्थापना गरेर पूजा गर्न थालियो । भनिन्छ पौराणिक कालमा भगवतीले महिषासुर नामको दैत्यको वध गरिसकेपछि कालिकोटको "द्वारेढुंगा" भन्ने ठाउँमा विश्राम गरेकी थिइन् । पछि गएर द्वारेढुंगामा एकजना दाउरा खोज्न गएको दलित भोकले व्याकुल भई देवीसँग बहरको मासु र हिया गहुँको रोटी माग्यो । देवीले त्यो दलितको मनोरथ पूरा गरिदिइन् । दलितले पूरै बहरलाई एक्लै खान नसकिने भएकाले आफ्नो घरका मान्छेलाई बोलाएछ । उसको घरको मानिसहरूले टाढा भएका कारण सुन्न सकेनन् । तब त्यो दलितलाई रिस उठ्यो। उसले भगवतीलाई भन्यो हे! प्रमेश्वरी मेरा घरका सबै मान्छे मरुन् । देवीले पनि इच्छाअनुसार वरदान दिइन् । त्यसपछि बहरको मासु लिएर दलित घर गएछ । घरमा हेर्दा त सबै जहानहरू मरेका देख्यो । फेरि दलित रिसायर द्वारेढुंगा पुग्यो । देवी उसलाई देखेर ढोका बन्द गरी त्यहाँबाट भागिन् । दलितले बहरको फिलाले देवीको घरमा हानेको छाप अझै द्वारे ढुङ्गामा देखिन्छ । यसो भएका कारण देवी सधैँका लागि त्यो ठाउँ छोडेर त्रिवेणी, पञ्चपुरी पाटन, मल्लपुरी पाटन हुँदै बडीमालिकामा गएर बसिन् । त्यसैले दलितहरू बडिमालिका जाँदैनन् भन्ने विश्वास गरिन्छ। अन्य भक्तजनहरू जो बाटो देवी गएकी हुन् त्यही बाटो भएर जान्छन् । <ref>जन जिब्रोमा प्रचलित कथा</ref> ==सरकारी पूजा== बडीमालिका मन्दिरमा सरकारका तर्फबाट एकजना मुख्य पूजारी बनाइएका छन् । हाल बाजुरा जिल्ला त्रिवेणी नगरपालिका वडा नं. ९ पैमाका नेत्र पाध्याय मुख्य पुजारीका रुपमा रहेका छन् । पैमाका पुजारी नेत्र पाध्याय र उनका दाजुभाइहरू छोराहरूले सरकारी पूजा गराउँछन् । सरकारी पुजा गर्दा सबैभन्दा पहिले डोटी जिल्लाबाट पठाईएको गोरखनाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ भने त्यसपछि जुम्ला जिल्लाबाट चन्दननाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ । त्यसपछि क्रमश: [[अछाम जिल्ला|अछाम]], [[बाजुरा जिल्ला|बाजुरा]] र [[कालिकोट जिल्ला|कालिकोट]] जिल्लाका प्रमुख जिल्ला अधिकारी तथा निजका प्रतिनिधिहरु लगायत अन्य कर्मचारीहरूको हातबाट देवीको सरकारी पूजा सम्पन्न हुन्छ। पछिल्लो समयमा कालिकोट, जुम्ला, मुगु, अछाम, बाजुरा, कैलाली जिल्लाका स्थानीय सरकारका तर्फबाट समेत बडीमालिका मन्दिरमा सरकारी पुजा गर्ने प्रचलन रहेको छ । कैलाली जिल्लामा रहेको सुदूरपश्चिम प्रदेशको एक मात्र उपमहानगरपालिका धनगढी उपमहानगरपालिकाको तर्फबाट सम्वत् २०८२ साल साउन २३ गतेका दिन पहिलो पटक सरकारी पुजा गरिएको छ । धनगढी उपमहानगरपालिका नगर प्रमुख श्री गोपाल हमालको पहलमा २०८२ सालदेखि बडीमालिका मन्दिरमा सरकारी पुजाको थालनी गरिएको हो । ==प्राकृतिक सौन्दर्य== बडीमालिका धार्मिक मात्र नभएर पर्यटकीय हिसाबले पनि महत्त्वपूर्ण मानिन्छ । नजिकै देखिने सुन्दर हिमाल, हिउँ कुल्चन पाउने सौभाग्य र मनोरम प्राकृतिक दृश्यहरू बडीमालिकाका गहना हुन् । बडीमालिकाको सौन्दर्य भनेकै विशाल फाँटहरू हुन् । बडमालिका क्षेत्रका ती विशाल फाँटहरुलाई स्थानीय भाषामा पाटन भनिन्छ । तर अचेल यी फाँटहरू बिस्तारै मासिँदै छन् । यी फाँटमा अनावश्यक चरन र जडीबुडी चोरी निकासीका कारण यसको सौन्दर्य मासिएको जिल्लाबासीको गुनासो छ । बडीमालिकामा प्रत्येक वर्ष [[श्रावण शुक्ल पूर्णिमा|जनै पूर्णिमा]]को अघिल्ला दिनहरु साउन त्रयोदशी देखि चतुर्दशीका दिन ठूलो मेला लाग्दछ । त्यो समयमा केही स्थानीय व्यापारीले खाजा नास्ताका पसल राख्ने गर्छन् । अन्य समयमा त्यहाँ खाजा नास्ताका कुनै पसलहरू खासै भेटिँदैनन् । बडीमालिका मन्दिरमा दर्शन गरेपछि आफ्नो मनोकांक्षा पूरा हुने जनविश्वास छ । मन्दिर परिसरबाट आँखै अगाडी देखिने [[साइपाल हिमाल|सैपाल]] हिमालको मनोरम दृश्यले यहाँको सौन्दर्यलाई झनै तिखारेको छ । बडीमालीका पुग्नका लागि उचित बास बस्ने स्थान नभएका कारण भक्तजन तथा पर्यटकले खानपिन तथा बासको जोहो आफै गर्नुपर्छ । यद्दपि साउन महिनामा लाग्ने मेलाको अवसरका बाटोमा त्रिपाल टाँगेर खान बस्नका लागि अस्थायी पसलहरु भने राखिएका भेटिन्छन् । तर ती पसलहरुले भक्तजनहरुको घुईंचोलाई धान्न भने सकेका हुँदैनन् । नेपालको विभिन्न जिल्लाका साथै भारतबाट पनि तीर्थालुहरू यहाँ मेला भर्न आउँछन् । भक्तजनहरूले आफूले मागेको वरदान पूरा हुन्छ भन्ने विश्वास गर्छन् । हालसम्म [[गङ्गा दशहरा|गंगा दशहरा]] र साउन त्रयोदशी देखि चतुर्शीसम्म गरी वर्षको दुईपटक मात्र लाग्दै आएको औपचारिक मेलाका कारण बडीमालिकाको महत्त्व सीमित छ । भक्तजनहरुको घुईंचो गंगा दशहरा भन्दा साउन चतुर्दशीमा बढी हुने गर्दछ । बडिमालिका मन्दिरसम्म पुग्नका लागि कालिकोट र बाजुरा जिल्लाका विभिन्न बाटोहरु प्रयोग गर्न सकिन्छ । कर्णाली प्रदेश र बाजुरा जिल्लाको नजिकको क्षेत्र बाहेक अन्य स्थानबाट बडीमालिका मन्दिर सम्म पुग्नका लागि सबै भन्दा सजिलो बाटो मार्तडी हुँदै जाने बाटो हो । नेपालको राजधानी काठमाण्डौं लगायतका क्षेत्रबाट यो बाटो हुँदै बडीमालिका जानका लागि सुदूरपश्चिम प्रदेशको धनगढीबाट बाजुरा जिल्लाको मार्तडीसम्म सडक यातायातको सुविधा छ । धनगढीबाट दिवा तथा रात्री सेवाका बसहरु वा आफ्नै निजी सवारी साधनको प्रयोग गरेर एक दिनमा पुग्न सकिन्छ । मार्तडीबाट पैदल हिडेर अर्को दिन फुल चढाउने ठाउँमा पुगेर बास बस्नु पर्ने हुन्छ । फुल चढाउने ठाउँमा एउटा सानो धर्मशाला त छ तर त्यो यात्रुका लागि पर्याप्त हुँदैन । तसर्थ आफैले टेण्ट बोकेर लैजानु बुद्धिमानी हुन्छ । त्यसको भोलीपल्ट भितीचिर्ना बास बस्न सकिन्छ भने पर्सि पल्ट त्रिवेणी पाटनमा बास बस्न सकिन्छ । त्रयोदशीको दिन बिहानै त्रिवेणीमा स्नान गरि बडीमालिका तर्फ लाग्ने हो भने बडीमालिका पुगिन्छ । त्यसैदिन वा भोली पल्ट बडिमालिका देवीकझ दर्शन तथा पुजा गरेर नाटेश्वरी तर्फ हिड्न सकिन्छ । नाटेश्वरी तर्फको बाटो साह्रै भिरालो र अत्यधिक चिप्लो भएकोले विहान र दिउँसोको समयम पारेर हिड्नु पर्छ । विहानै हिड्ने हो भने सोही दिन नाटेश्वरी पुगिन्छ भने दिउँसो हिड्दा ठूलागडासम्म बास बस्ने गरी पुग्न सकिन्छ । नाटेश्वरी तर्फ जाँदा विष्णुपानीका अस्थायी होटलमा खाना खान पाईन्छ । ठूलागडा बस्ने हो भने भोलीपल्ट १० बजेसम्म नाटेश्वरी पुगिन्छ । नाटेश्वरीमा जनैपूर्णिका दिन नाटेश्वरी माईंको दर्शन गरी नजिकै रहेको कालिका मन्दिरमा बलि पुजा गर्ने प्रचलन छ । नाटेश्वरीमा जनै फेर्ने र रक्षा बन्धनको काम पनि गरिन्छ । बलि पुजा गर्नेहरुले भातसँग बोकाको मासु प्रसादको रुपमा खाएर सोही दिन बुढीगंगा नगरपालिकाको बाम्का बजार तर्फ लाग्दछन् । बाम्का बजारबाट धनगढीका लागि बसहरु भेटिन्छन् । त्यही बस वा आफ्नै सवारी साधनबाट धनगढीको यात्रा गर्न सकिन्छ । यसरी यो रुटबाट यात्रा गर्दा कम्तिमा ६ दिन लाग्दछ । तर त्रिवेणी र बडीमालिकाका सुन्दर दृश्यहरु हेर्नका लागि २ दिन थप गरेर ८ दिन लगाउने हो भने १ दिन त्रिवेणी र १ दिन बडीमालिकामा रहेर थप आनन्द लिन सकिन्छ । हवाई मार्गको प्रयोग गर्ने हो भने नेपालगञ्जबाट बाजुराको बुढीगंगा नगरपालिकाको कोल्टी एअरपोर्टसम्म गएर त्यहाँबाट १ दिनमा बाजुराको सदरमुकाम मार्तडी पुग्न सकिन्छ । मार्तडीबाट माथि भनिए झैं यात्रा गर्न सकिन्छ । कोल्टीबाटै फर्कने हो भने फर्कदा बडीमालिका-त्रिवेणी-भितिचिर्ना-फुल चढाउने-मार्तडी- कोल्टी हुँदै फर्कन सकिन्छ । बाजुराबाट कोर्ध-बुढाकोर्ध-भितिचिर्ना-त्रिवेणी-बडीमालिकाको बाटो पनि प्रयोग गर्न सकिन्छ । त्यस्तै बल्दे-पैमा पुजारीको घर हुँदै बडीमालिका जान पनि सकिन्छ । बाम्का बजार-मौरे-नाटेश्वरी हुँदै पनि बडीमालिका जान मिल्दछ । त्यस्तै बाम्का बजार-तोली-छतारा-पञ्चपुरी हुँदै पनि बडीमालिका जान सकिन्छ । बल्दे, बाम्का, पञ्चपुरीको बाटो प्रयोग गर्दा बडीमालिका पुगेर त्रिवेणी जानु पर्ने हुन्छ, त्रिवेणीमा नुहाएर फेरी बडीमालिका आउनु पर्ने हुन्छ । बडीमालिका ४,२२० मिटर उचाईंमा रहेको, बाटोहरु भिरालो रहेको, लेकाली विशालु जडिबुटीहरु फुलेर विश लाग्ने, लेक लाग्ने जस्ता कारणले बडीमालिका पुग्न जो कोहीलाई हम्मे हम्मे पर्दछ । तर पनि देवीको अनुकम्पाले अधिकाँश भक्तजनहरुले यात्रा पुरा गरेका हुन्छन् । बडीमालिकाको यात्रा गर्दा आजकाल ठाउँमा त्रिपाल राखेर खानाका लागि अस्थायी होटेलहरु राखिएका हुनाले खानाका लागि त्यति समस्या हुँदैन । तैपनि बाटोमा भोक लागेको बेला खानका लागि र बास बस्ने ठाउँमा खानेकुरा नपाएको अवस्थामा खानका लागि सातु वा आफुलाई मन पर्ने शुद्ध शाकाहारी ड्राई फुड बोकेर लैजान सकिन्छ । यसरी बोक्ने सामान भारी (गह्रौं) भने हुनु हुँदैन । भारी भयो भने बोकेर हिड्नलाई धेरै गाह्रो हुन सक्छ । लेक लाग्दा सुँघ्नका लागि पुजा गर्ने कपुर बोकिराख्नु भयो भने फाईदाजनक हुन्छ । पोलेको अदुवा, नुन खुर्शानी र टिम्मुर मिश्रित धुलो साथमा राखेर बेला बेलामा खानाले पनि लेक लाग्नबाट बच्न सकिन्छ । धेरै जसो ठाउँमा पानी नपाउने हुँदा पानीमा लागि बोटल साथमा राखेर हमेशा त्यसमा पानी भरिराख्नु पर्दछ । शौच सफा गर्न, मुख पुछ्न ट्वाइलेट पेपर, वेट टिस्यु पेपर साथमा लैजाँदा राम्रो हुन्छ । चिसोबाट जोगिन भिक्स, लिप गार्ड, इन्हेलर, कोल्ड क्रिम साथमा राखेर बेला बेला प्रयोग गर्नु बुद्धिमानी हुन्छ । जीउको दुखाई कम गर्न मुभ, सिटामोल जस्ता औषधी साथमा राखिराख्नु पर्दछ । रात्री सुत्नका लागि सिलिपिङ व्याग, टेण्ट, ज्याकेट, थर्मकोल लिनु भयो भने राम्रो हुन्छ । बडीमालिका क्षेत्रका सुन्दर दृश्यहरु कैद गर्नका लागि मोबाईल वा क्यामेराको साथमा पावर व्याकअप लैजानु पर्ने हुन्छ । पावर व्याकअप लिंदा कम्तिमा ६ दिनसम्म चार्ज गर्न मिल्ने क्षमता भएको पावर व्याकअप लैजानु पर्दछ। ==सञ्चार सेवा== धार्मिक तथा पर्यटकीय दृष्टिले महत्वपूर्ण [[बाजुरा जिल्ला|बाजुरा]]को बडीमालिका क्षेत्रमा दूरसञ्चार तथा इन्टरनेट सेवाको पहुँच विस्तार भएको छ। नेपाल टेलिकमले बडीमालिका क्षेत्रमा फोर-जी सेवा विस्तार गरेपछि ८ भाद्र, २०८३ सोमबारदेखि उक्त क्षेत्रमा मोबाइल फोन तथा इन्टरनेट सेवा सञ्चालनमा आएको हो।<ref>{{वेब स्रोत|लेखक=गोरखापत्र अनलाइन|शीर्षक=बडीमालिका क्षेत्रमा पुग्यो टेलिफोन र इन्टरनेट सेवा|युआरएल=https://gorkhapatraonline.com/news/219713|कार्य=|प्रकाशक=|वेबसाइट=गोरखापत्र अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> जनैपूर्णिमाका अवसरमा बडीमालिका क्षेत्रमा आयोजना हुने धार्मिक मेलाको पूर्वसन्ध्यामा सञ्चार सेवा सञ्चालनमा आएको हो। समुद्री सतहबाट करिब ४,२०० मिटरको उचाइमा रहेको यस क्षेत्रमा सञ्चार सेवा विस्तार भएपछि स्थानीयवासी, तीर्थयात्री, पर्यटक तथा विभिन्न सरकारी तथा गैरसरकारी निकायलाई सञ्चार सम्पर्कमा सहजता हुने अपेक्षा गरिएको छ। यसअघि दुर्गम तथा उच्च हिमाली क्षेत्रमा अवस्थित बडीमालिका क्षेत्रमा मोबाइल तथा इन्टरनेट सेवाको पहुँच सीमित थियो। फोर-जी सेवा विस्तारसँगै मोबाइल फोन तथा इन्टरनेट प्रयोग गर्न सहज भएको छ। यसले धार्मिक तथा पर्यटकीय गतिविधिका साथै सूचना आदानप्रदान र आपत्कालीन अवस्थामा सञ्चार सम्पर्क कायम गर्न समेत सहयोग पुग्ने अपेक्षा गरिएको छ।<ref>{{वेब स्रोत|लेखक=दिलबहादुर छत्याल|शीर्षक=बडीमालिकामा पुग्यो इन्टरनेट|युआरएल=https://nagariknews.nagariknetwork.com/technology/internet-reaches-badimalika-38-72.html|कार्य=|प्रकाशक=|वेबसाइट=नागरिक अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> ==तस्विर ग्यालरी== <gallery> File:बडिमालिका मन्दिर.JPG|बडिमालिका मन्दिर File:बडिमालिका मन्दिरको बाटो.JPG|बडिमालिका मन्दिरको बाटो File:बडिमालिका मन्दिर रहेको पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरमा पूजा गर्दे.JPG|बडिमालिका मन्दिरमा पूजा गर्दै File:बडिमालिका मन्दिरबाट फर्केका मानिसहरु.JPG|बडिमालिका मन्दिरबाट फर्केका मानिसहरू File:बडिमालिका मन्दिर अवस्थीत पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरबाट देखिने दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने दृष्य File:बडिमालिका मन्दिरबाट देखिने एक दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने एक दृष्य </gallery> ==श्रोत== {{reflist|}} ==बाह्य कडीहरू== *[http://m.ujyaaloonline.com/index.php?pआageName=news_details&id=10177&catId=21 पर्यटक पर्खदै बाजुराको बडिमालिका]{{Dead link|date=November 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.ekantipur.com/kantipur/news/news-detail.php?news_id=260067 सुरु भएन बडिमालिका संरक्षण योजना] *[http://www.bbc.com/nepali/multimedia/2016/09/160902_badimalika_nepal?ocid=socialflow_facebook बडिमालिका यात्रा] *[http://www.hamrogorkha.com/नियमित-स्तम्भ/पर्यटन/सौन्दर्यले-भरिएको-बाजुराको-बडिमालिका-(फोटोफिचर).htm बडिमालिका फोटो फिचर]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.sidhadrishti.com/2016/05/108.html?m=1 स्वर्गको टुक्रा बडिमालिका] {{Webarchive|url=https://web.archive.org/web/20220117221717/http://www.sidhadrishti.com/2016/05/108.html?m=1 |date=2022-01-17 }} ==यी पनि हेर्नुहोस्== {{सुदूर-पश्चिमकी नौ भगवती}} {{नेपालका मन्दिरहरू}} [[श्रेणी:नेपालका मन्दिरहरू]] [[श्रेणी:बाजुरा जिल्लाका धार्मिक ठाउँहरू]] 4h9kxe6r3hg7u0nb1dalumx7p2gnxze 1372326 1372325 2026-08-26T00:45:03Z Rajeeb bastola 39875 1372326 wikitext text/x-wiki {{Short description|Hindu temple in Sudurpashchim, Nepal}} {{more citations needed|date=August 2020}} {{Infobox Mandir |name = बडिमालिका मन्दिर |image = Badi Malika.png | |alt = Temple premises |caption = |pushpin_map = Nepal |pushpin_caption = Badimalika Temple in Nepal |coordinates = {{coord|29.346916|81.477488|type:landmark_region:NP|display=inline,title}} |sanskrit_translit = |country = {{flag|नेपाल}} |state = [[Seti zone|Seti]] |district = [[बाजुरा जिल्ला|बाजुरा]] |location = [[Kailashmandau]], [[Bajura district|Bajura]] <ref>{{cite web|URL= http://fwdc.gov.np/ne/%E0%A4%A7%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%95-%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%A8%E0%A4%B9%E0%A4%B0%E0%A5%81 |title= धार्मिक स्थलहरु |language= Nepali |publisher= www.fwdc.gov.np}}</ref> |elevation_m = |deity = [[Shakti]] |festival = [[Ganga Dussehra]], Shrwan Shukla chaturdashi |architecture = Pagoda Style |temple_quantity = |monument_quantity = |inscriptions = |creator = |website = |mapframe = yes |mapframe-zoom = 12 |mapframe-wikidata = yes }} == पृष्ठभूमि == '''बडीमालिका''' विश्वका प्रमुख हिन्दु मन्दिरहरूमध्येको एक प्रशिद्ध मन्दिर हो । यो मन्दिर नेपालको सुदूरपश्चिम प्रदेशको बाजुरा जिल्लाको त्रिवेणी नगरपालिकामा वडा नं. ६ पन्धारामा पर्दछ । यहाँ प्रत्येक वर्ष साउन शुक्ल त्रयोदशी देखि चतुर्दशीका दिन मुख्य पूजा तथा हवन गरिन्छ । गंगा दशहरामा यहाँको पाती प्रसाद खप्तडमा ल्याएर चढाउने गरिन्छ । बडीमालिकामा २ जिल्लाका पुजारीहरुले पूजा गर्छन् । यी मध्ये १ बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ९ पैमाका हुन् भने अर्को कालिकोटका हुन् । हाल बाजुराबाट मुख्य पुजारीको रुपमा नेत्र पाध्याय रहेका छन् भने कालिकोटबाट हरी धमाला रहेका छन् । [[File : Badimalika Temple, Bajura, Nepal.jpg|thumb|बडीमालिका मन्दिर|300px]] सम्वत् २०८२ सालमा यहाँको पुरानो मन्दिरको जिर्णोद्वार गरी नेपाली सेनाद्वारा नयाँ मन्दिर निर्माण गरिएको छ । बडीमालिका मन्दिर समुन्द्री सतहबाट ४,२२० मीटर उचाईमा अवस्थित छ । जुन विश्वमा रहेका हिन्दु मन्दिरहरुमध्ये सबैभन्दा अग्लो स्थानमा रहेको हिन्दु मन्दिर हो । बडीमालिका दर्शनका लागि जाने भक्तजनहरुले त्रिवेणी हुँदै जानु पर्ने हुन्छ । त्रिवेणी बाजुरा जिल्लाको त्रिवेणी नगरपालिका र कालिकोटको रास्कोट नगरपालिकाको सिमाना हो । यसको मुख्य भाग बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ५ किम्नीमा पर्दछ । बडीमालिका, त्रिवेणी बहुमूल्य जडिबुटीको भण्डार पनि हो । ==किंवदन्ती== पौराणिक कथा अनुसार [[शिव|महादेव]]की पत्नी [[सतिदेवी]]का पिता [[दक्ष प्रजापति]]ले यज्ञ गर्दा महादेव र सतिदेवीलाई बोलाएनन् । आफ्ना पति र आफूलाई यज्ञमा नबोलाएपछि सतिदेविले आफ्ना पिता दक्ष प्रजापतीले सञ्चालन गरेको यज्ञ स्थलमा गएर पितासँग आफ्ना पति महादेव र आफूलाई यज्ञमा नबोलाउनुको कारण सोधिन् । दक्ष प्रजापतीले महादेव [[भाङ]], [[धतुरो]] सेवन गर्ने, शमसान घाटमा वास गर्ने, गलामा [[सर्प]]को माला लगाउने, जटाधारी भेषमा रहने, शरीरभरी [[खरानी]] घस्ने, [[बाघ]]को छालाको पहिरने हुनाले यस यज्ञमा बस्दा शोभा नदिने भएकाले नबोलाएको बताए । पिताको जवाफ सुनेपछि सतिदेवीलाई आफ्ना पतिको अपमान गरिएको महशुस भयो र अपमान सहन गर्न नसकेर यज्ञकुण्डको अग्नीमा हाम फालेर प्राण त्याग गरिन् । आफ्नी पत्नि सतिदेवीले दक्ष प्रजापतिले सञ्चालन गरेको यज्ञमा हाम फालेर प्राण त्याग गरेपछि महादेव रिसाएर विरभद्रादी शिवगणलाई पठाएर दक्ष प्रजापतिलाई मारी दक्ष प्रजापतिले सञ्चालन गरेको यज्ञ तहस नहस पार्न लगाए । आफू भने पत्नी वियोगमा पागल भएर सतिदेवीको मृत शरिर बोकेर पुरा [[विश्व]] घुम्न थाले । यसै बेला [[विष्णु|भगवान बिष्णु]]ले आफ्नो चक्र सुदर्शन प्रहार गरी सतिदेवीको मृत शरीरमा किरा पारेर कुहाए । सतिदेवीको मृत शरीर कुहिए पछि महादेव जहाँ जहाँ गए त्यहाँ त्यहाँ सतिदेवीको मृत शरीरको कुहिएको अङ्ग खस्दै (पतन हुँदै) गए । यसरी ठाउँ ठाउँमा सतिदेवीको शरीरका अङ्गहरू पतन हुँदै जान थालेपछि जहाँ जहाँ सतिदवीका अङ्ग पतन भए त्यहाँ त्यहाँ एक एकवटा सिद्ध पिठ (प्रसिद्ध धार्मिक स्थल) बन्दै गए । यसै क्रममा हालको बाजुरा जिल्लाको मल्लागिरी पर्वतमा सतिदेवीको बायाँ कुम पतन भयो । पछि गएर सतिदेवीको बायाँ कुम पतन भएको त्यही पर्वतलाई मालिका र हाल आएर बडीमालिका भनिन थालियो । मल्लागिरी पर्वतमा मल्लिका अथवा [[मालिका देवी]] शक्ति स्वरूपले रहन थालिन् ।<ref>श्री स्वस्थानी ब्रतकथा</ref> तसर्थ यस स्थानमा बडिमालिका मन्दिर स्थापना गरेर पूजा गर्न थालियो । भनिन्छ पौराणिक कालमा भगवतीले महिषासुर नामको दैत्यको वध गरिसकेपछि कालिकोटको "द्वारेढुंगा" भन्ने ठाउँमा विश्राम गरेकी थिइन् । पछि गएर द्वारेढुंगामा एकजना दाउरा खोज्न गएको दलित भोकले व्याकुल भई देवीसँग बहरको मासु र हिया गहुँको रोटी माग्यो । देवीले त्यो दलितको मनोरथ पूरा गरिदिइन् । दलितले पूरै बहरलाई एक्लै खान नसकिने भएकाले आफ्नो घरका मान्छेलाई बोलाएछ । उसको घरको मानिसहरूले टाढा भएका कारण सुन्न सकेनन् । तब त्यो दलितलाई रिस उठ्यो। उसले भगवतीलाई भन्यो हे! प्रमेश्वरी मेरा घरका सबै मान्छे मरुन् । देवीले पनि इच्छाअनुसार वरदान दिइन् । त्यसपछि बहरको मासु लिएर दलित घर गएछ । घरमा हेर्दा त सबै जहानहरू मरेका देख्यो । फेरि दलित रिसायर द्वारेढुंगा पुग्यो । देवी उसलाई देखेर ढोका बन्द गरी त्यहाँबाट भागिन् । दलितले बहरको फिलाले देवीको घरमा हानेको छाप अझै द्वारे ढुङ्गामा देखिन्छ । यसो भएका कारण देवी सधैँका लागि त्यो ठाउँ छोडेर त्रिवेणी, पञ्चपुरी पाटन, मल्लपुरी पाटन हुँदै बडीमालिकामा गएर बसिन् । त्यसैले दलितहरू बडिमालिका जाँदैनन् भन्ने विश्वास गरिन्छ। अन्य भक्तजनहरू जो बाटो देवी गएकी हुन् त्यही बाटो भएर जान्छन् । <ref>जन जिब्रोमा प्रचलित कथा</ref> ==सरकारी पूजा== बडीमालिका मन्दिरमा सरकारका तर्फबाट एकजना मुख्य पूजारी बनाइएका छन् । हाल बाजुरा जिल्ला त्रिवेणी नगरपालिका वडा नं. ९ पैमाका नेत्र पाध्याय मुख्य पुजारीका रुपमा रहेका छन् । पैमाका पुजारी नेत्र पाध्याय र उनका दाजुभाइहरू छोराहरूले सरकारी पूजा गराउँछन् । सरकारी पुजा गर्दा सबैभन्दा पहिले डोटी जिल्लाबाट पठाईएको गोरखनाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ भने त्यसपछि जुम्ला जिल्लाबाट चन्दननाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ । त्यसपछि क्रमश: [[अछाम जिल्ला|अछाम]], [[बाजुरा जिल्ला|बाजुरा]] र [[कालिकोट जिल्ला|कालिकोट]] जिल्लाका प्रमुख जिल्ला अधिकारी तथा निजका प्रतिनिधिहरु लगायत अन्य कर्मचारीहरूको हातबाट देवीको सरकारी पूजा सम्पन्न हुन्छ। पछिल्लो समयमा कालिकोट, जुम्ला, मुगु, अछाम, बाजुरा, कैलाली जिल्लाका स्थानीय सरकारका तर्फबाट समेत बडीमालिका मन्दिरमा सरकारी पुजा गर्ने प्रचलन रहेको छ । कैलाली जिल्लामा रहेको सुदूरपश्चिम प्रदेशको एक मात्र उपमहानगरपालिका धनगढी उपमहानगरपालिकाको तर्फबाट सम्वत् २०८२ साल साउन २३ गतेका दिन पहिलो पटक सरकारी पुजा गरिएको छ । धनगढी उपमहानगरपालिका नगर प्रमुख श्री गोपाल हमालको पहलमा २०८२ सालदेखि बडीमालिका मन्दिरमा सरकारी पुजाको थालनी गरिएको हो । ==प्राकृतिक सौन्दर्य== बडीमालिका धार्मिक मात्र नभएर पर्यटकीय हिसाबले पनि महत्त्वपूर्ण मानिन्छ । नजिकै देखिने सुन्दर हिमाल, हिउँ कुल्चन पाउने सौभाग्य र मनोरम प्राकृतिक दृश्यहरू बडीमालिकाका गहना हुन् । बडीमालिकाको सौन्दर्य भनेकै विशाल फाँटहरू हुन् । बडमालिका क्षेत्रका ती विशाल फाँटहरुलाई स्थानीय भाषामा पाटन भनिन्छ । तर अचेल यी फाँटहरू बिस्तारै मासिँदै छन् । यी फाँटमा अनावश्यक चरन र जडीबुडी चोरी निकासीका कारण यसको सौन्दर्य मासिएको जिल्लाबासीको गुनासो छ । बडीमालिकामा प्रत्येक वर्ष [[श्रावण शुक्ल पूर्णिमा|जनै पूर्णिमा]]को अघिल्ला दिनहरु साउन त्रयोदशी देखि चतुर्दशीका दिन ठूलो मेला लाग्दछ । त्यो समयमा केही स्थानीय व्यापारीले खाजा नास्ताका पसल राख्ने गर्छन् । अन्य समयमा त्यहाँ खाजा नास्ताका कुनै पसलहरू खासै भेटिँदैनन् । बडीमालिका मन्दिरमा दर्शन गरेपछि आफ्नो मनोकांक्षा पूरा हुने जनविश्वास छ । मन्दिर परिसरबाट आँखै अगाडी देखिने [[साइपाल हिमाल|सैपाल]] हिमालको मनोरम दृश्यले यहाँको सौन्दर्यलाई झनै तिखारेको छ । बडीमालीका पुग्नका लागि उचित बास बस्ने स्थान नभएका कारण भक्तजन तथा पर्यटकले खानपिन तथा बासको जोहो आफै गर्नुपर्छ । यद्दपि साउन महिनामा लाग्ने मेलाको अवसरका बाटोमा त्रिपाल टाँगेर खान बस्नका लागि अस्थायी पसलहरु भने राखिएका भेटिन्छन् । तर ती पसलहरुले भक्तजनहरुको घुईंचोलाई धान्न भने सकेका हुँदैनन् । नेपालको विभिन्न जिल्लाका साथै भारतबाट पनि तीर्थालुहरू यहाँ मेला भर्न आउँछन् । भक्तजनहरूले आफूले मागेको वरदान पूरा हुन्छ भन्ने विश्वास गर्छन् । हालसम्म [[गङ्गा दशहरा|गंगा दशहरा]] र साउन त्रयोदशी देखि चतुर्शीसम्म गरी वर्षको दुईपटक मात्र लाग्दै आएको औपचारिक मेलाका कारण बडीमालिकाको महत्त्व सीमित छ । भक्तजनहरुको घुईंचो गंगा दशहरा भन्दा साउन चतुर्दशीमा बढी हुने गर्दछ । बडिमालिका मन्दिरसम्म पुग्नका लागि कालिकोट र बाजुरा जिल्लाका विभिन्न बाटोहरु प्रयोग गर्न सकिन्छ । कर्णाली प्रदेश र बाजुरा जिल्लाको नजिकको क्षेत्र बाहेक अन्य स्थानबाट बडीमालिका मन्दिर सम्म पुग्नका लागि सबै भन्दा सजिलो बाटो मार्तडी हुँदै जाने बाटो हो । नेपालको राजधानी काठमाण्डौं लगायतका क्षेत्रबाट यो बाटो हुँदै बडीमालिका जानका लागि सुदूरपश्चिम प्रदेशको धनगढीबाट बाजुरा जिल्लाको मार्तडीसम्म सडक यातायातको सुविधा छ । धनगढीबाट दिवा तथा रात्री सेवाका बसहरु वा आफ्नै निजी सवारी साधनको प्रयोग गरेर एक दिनमा पुग्न सकिन्छ । मार्तडीबाट पैदल हिडेर अर्को दिन फुल चढाउने ठाउँमा पुगेर बास बस्नु पर्ने हुन्छ । फुल चढाउने ठाउँमा एउटा सानो धर्मशाला त छ तर त्यो यात्रुका लागि पर्याप्त हुँदैन । तसर्थ आफैले टेण्ट बोकेर लैजानु बुद्धिमानी हुन्छ । त्यसको भोलीपल्ट भितीचिर्ना बास बस्न सकिन्छ भने पर्सि पल्ट त्रिवेणी पाटनमा बास बस्न सकिन्छ । त्रयोदशीको दिन बिहानै त्रिवेणीमा स्नान गरि बडीमालिका तर्फ लाग्ने हो भने बडीमालिका पुगिन्छ । त्यसैदिन वा भोली पल्ट बडिमालिका देवीकझ दर्शन तथा पुजा गरेर नाटेश्वरी तर्फ हिड्न सकिन्छ । नाटेश्वरी तर्फको बाटो साह्रै भिरालो र अत्यधिक चिप्लो भएकोले विहान र दिउँसोको समयम पारेर हिड्नु पर्छ । विहानै हिड्ने हो भने सोही दिन नाटेश्वरी पुगिन्छ भने दिउँसो हिड्दा ठूलागडासम्म बास बस्ने गरी पुग्न सकिन्छ । नाटेश्वरी तर्फ जाँदा विष्णुपानीका अस्थायी होटलमा खाना खान पाईन्छ । ठूलागडा बस्ने हो भने भोलीपल्ट १० बजेसम्म नाटेश्वरी पुगिन्छ । नाटेश्वरीमा जनैपूर्णिका दिन नाटेश्वरी माईंको दर्शन गरी नजिकै रहेको कालिका मन्दिरमा बलि पुजा गर्ने प्रचलन छ । नाटेश्वरीमा जनै फेर्ने र रक्षा बन्धनको काम पनि गरिन्छ । बलि पुजा गर्नेहरुले भातसँग बोकाको मासु प्रसादको रुपमा खाएर सोही दिन बुढीगंगा नगरपालिकाको बाम्का बजार तर्फ लाग्दछन् । बाम्का बजारबाट धनगढीका लागि बसहरु भेटिन्छन् । त्यही बस वा आफ्नै सवारी साधनबाट धनगढीको यात्रा गर्न सकिन्छ । यसरी यो रुटबाट यात्रा गर्दा कम्तिमा ६ दिन लाग्दछ । तर त्रिवेणी र बडीमालिकाका सुन्दर दृश्यहरु हेर्नका लागि २ दिन थप गरेर ८ दिन लगाउने हो भने १ दिन त्रिवेणी र १ दिन बडीमालिकामा रहेर थप आनन्द लिन सकिन्छ । हवाई मार्गको प्रयोग गर्ने हो भने नेपालगञ्जबाट बाजुराको बुढीगंगा नगरपालिकाको कोल्टी एअरपोर्टसम्म गएर त्यहाँबाट १ दिनमा बाजुराको सदरमुकाम मार्तडी पुग्न सकिन्छ । मार्तडीबाट माथि भनिए झैं यात्रा गर्न सकिन्छ । कोल्टीबाटै फर्कने हो भने फर्कदा बडीमालिका-त्रिवेणी-भितिचिर्ना-फुल चढाउने-मार्तडी- कोल्टी हुँदै फर्कन सकिन्छ । बाजुराबाट कोर्ध-बुढाकोर्ध-भितिचिर्ना-त्रिवेणी-बडीमालिकाको बाटो पनि प्रयोग गर्न सकिन्छ । त्यस्तै बल्दे-पैमा पुजारीको घर हुँदै बडीमालिका जान पनि सकिन्छ । बाम्का बजार-मौरे-नाटेश्वरी हुँदै पनि बडीमालिका जान मिल्दछ । त्यस्तै बाम्का बजार-तोली-छतारा-पञ्चपुरी हुँदै पनि बडीमालिका जान सकिन्छ । बल्दे, बाम्का, पञ्चपुरीको बाटो प्रयोग गर्दा बडीमालिका पुगेर त्रिवेणी जानु पर्ने हुन्छ, त्रिवेणीमा नुहाएर फेरी बडीमालिका आउनु पर्ने हुन्छ । बडीमालिका ४,२२० मिटर उचाईंमा रहेको, बाटोहरु भिरालो रहेको, लेकाली विशालु जडिबुटीहरु फुलेर विश लाग्ने, लेक लाग्ने जस्ता कारणले बडीमालिका पुग्न जो कोहीलाई हम्मे हम्मे पर्दछ । तर पनि देवीको अनुकम्पाले अधिकाँश भक्तजनहरुले यात्रा पुरा गरेका हुन्छन् । बडीमालिकाको यात्रा गर्दा आजकाल ठाउँमा त्रिपाल राखेर खानाका लागि अस्थायी होटेलहरु राखिएका हुनाले खानाका लागि त्यति समस्या हुँदैन । तैपनि बाटोमा भोक लागेको बेला खानका लागि र बास बस्ने ठाउँमा खानेकुरा नपाएको अवस्थामा खानका लागि सातु वा आफुलाई मन पर्ने शुद्ध शाकाहारी ड्राई फुड बोकेर लैजान सकिन्छ । यसरी बोक्ने सामान भारी (गह्रौं) भने हुनु हुँदैन । भारी भयो भने बोकेर हिड्नलाई धेरै गाह्रो हुन सक्छ । लेक लाग्दा सुँघ्नका लागि पुजा गर्ने कपुर बोकिराख्नु भयो भने फाईदाजनक हुन्छ । पोलेको अदुवा, नुन खुर्शानी र टिम्मुर मिश्रित धुलो साथमा राखेर बेला बेलामा खानाले पनि लेक लाग्नबाट बच्न सकिन्छ । धेरै जसो ठाउँमा पानी नपाउने हुँदा पानीमा लागि बोटल साथमा राखेर हमेशा त्यसमा पानी भरिराख्नु पर्दछ । शौच सफा गर्न, मुख पुछ्न ट्वाइलेट पेपर, वेट टिस्यु पेपर साथमा लैजाँदा राम्रो हुन्छ । चिसोबाट जोगिन भिक्स, लिप गार्ड, इन्हेलर, कोल्ड क्रिम साथमा राखेर बेला बेला प्रयोग गर्नु बुद्धिमानी हुन्छ । जीउको दुखाई कम गर्न मुभ, सिटामोल जस्ता औषधी साथमा राखिराख्नु पर्दछ । रात्री सुत्नका लागि सिलिपिङ व्याग, टेण्ट, ज्याकेट, थर्मकोल लिनु भयो भने राम्रो हुन्छ । बडीमालिका क्षेत्रका सुन्दर दृश्यहरु कैद गर्नका लागि मोबाईल वा क्यामेराको साथमा पावर व्याकअप लैजानु पर्ने हुन्छ । पावर व्याकअप लिंदा कम्तिमा ६ दिनसम्म चार्ज गर्न मिल्ने क्षमता भएको पावर व्याकअप लैजानु पर्दछ। ==सञ्चार सेवा== धार्मिक तथा पर्यटकीय दृष्टिले महत्वपूर्ण [[बाजुरा जिल्ला|बाजुरा]]को बडीमालिका क्षेत्रमा दूरसञ्चार तथा इन्टरनेट सेवाको पहुँच विस्तार भएको छ। नेपाल टेलिकमले बडीमालिका क्षेत्रमा फोर-जी सेवा विस्तार गरेपछि ८ भाद्र, २०८३ सोमबारदेखि उक्त क्षेत्रमा मोबाइल फोन तथा इन्टरनेट सेवा सञ्चालनमा आएको हो।<ref>{{वेब स्रोत|लेखक=गोरखापत्र अनलाइन|शीर्षक=बडीमालिका क्षेत्रमा पुग्यो टेलिफोन र इन्टरनेट सेवा|युआरएल=https://gorkhapatraonline.com/news/219713|कार्य=|प्रकाशक=|वेबसाइट=गोरखापत्र अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> जनैपूर्णिमाका अवसरमा बडीमालिका क्षेत्रमा आयोजना हुने धार्मिक मेलाको पूर्वसन्ध्यामा सञ्चार सेवा सञ्चालनमा आएको हो। समुद्री सतहबाट करिब ४,२०० मिटरको उचाइमा रहेको यस क्षेत्रमा सञ्चार सेवा विस्तार भएपछि स्थानीयवासी, तीर्थयात्री, पर्यटक तथा विभिन्न सरकारी तथा गैरसरकारी निकायलाई सञ्चार सम्पर्कमा सहजता हुने अपेक्षा गरिएको छ। यसअघि दुर्गम तथा उच्च हिमाली क्षेत्रमा अवस्थित बडीमालिका क्षेत्रमा मोबाइल तथा इन्टरनेट सेवाको पहुँच सीमित थियो। फोर-जी सेवा विस्तारसँगै मोबाइल फोन तथा इन्टरनेट प्रयोग गर्न सहज भएको छ। यसले धार्मिक तथा पर्यटकीय गतिविधिका साथै सूचना आदानप्रदान र आपत्कालीन अवस्थामा सञ्चार सम्पर्क कायम गर्न समेत सहयोग पुग्ने अपेक्षा गरिएको छ।<ref>{{वेब स्रोत|लेखक=दिलबहादुर छत्याल|शीर्षक=बडीमालिकामा पुग्यो इन्टरनेट|युआरएल=https://nagariknews.nagariknetwork.com/technology/internet-reaches-badimalika-38-72.html|कार्य=|प्रकाशक=|वेबसाइट=नागरिक अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> ==तस्विर ग्यालरी== <gallery> File:बडिमालिका मन्दिर.JPG|बडिमालिका मन्दिर File:बडिमालिका मन्दिरको बाटो.JPG|बडिमालिका मन्दिरको बाटो File:बडिमालिका मन्दिर रहेको पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरमा पूजा गर्दे.JPG|बडिमालिका मन्दिरमा पूजा गर्दै File:बडिमालिका मन्दिरबाट फर्केका मानिसहरु.JPG|बडिमालिका मन्दिरबाट फर्केका मानिसहरू File:बडिमालिका मन्दिर अवस्थीत पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरबाट देखिने दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने दृष्य File:बडिमालिका मन्दिरबाट देखिने एक दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने एक दृष्य </gallery> ==श्रोत== {{reflist|}} ==बाह्य कडीहरू== *[http://m.ujyaaloonline.com/index.php?pआageName=news_details&id=10177&catId=21 पर्यटक पर्खदै बाजुराको बडिमालिका]{{Dead link|date=November 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.ekantipur.com/kantipur/news/news-detail.php?news_id=260067 सुरु भएन बडिमालिका संरक्षण योजना] *[http://www.bbc.com/nepali/multimedia/2016/09/160902_badimalika_nepal?ocid=socialflow_facebook बडिमालिका यात्रा] *[http://www.hamrogorkha.com/नियमित-स्तम्भ/पर्यटन/सौन्दर्यले-भरिएको-बाजुराको-बडिमालिका-(फोटोफिचर).htm बडिमालिका फोटो फिचर]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.sidhadrishti.com/2016/05/108.html?m=1 स्वर्गको टुक्रा बडिमालिका] {{Webarchive|url=https://web.archive.org/web/20220117221717/http://www.sidhadrishti.com/2016/05/108.html?m=1 |date=2022-01-17 }} ==यी पनि हेर्नुहोस्== {{सुदूर-पश्चिमकी नौ भगवती}} {{नेपालका मन्दिरहरू}} [[श्रेणी:नेपालका मन्दिरहरू]] [[श्रेणी:बाजुरा जिल्लाका धार्मिक ठाउँहरू]] aosizwhcm6kp4qf8c7gx6wfwzcx0zme 1372327 1372326 2026-08-26T00:46:10Z Rajeeb bastola 39875 1372327 wikitext text/x-wiki {{Short description|Hindu temple in Sudurpashchim, Nepal}} {{more citations needed|date=August 2020}} {{Infobox Mandir |name = बडिमालिका मन्दिर |image = Badi Malika.png | |alt = Temple premises |caption = |pushpin_map = Nepal |pushpin_caption = Badimalika Temple in Nepal |coordinates = {{coord|29.346916|81.477488|type:landmark_region:NP|display=inline,title}} |sanskrit_translit = |country = {{flag|नेपाल}} |state = [[सुदूरपश्चिम प्रदेश|सुदूरपश्चिम]] |district = [[बाजुरा जिल्ला|बाजुरा]] |location = [[Kailashmandau]], [[Bajura district|Bajura]] <ref>{{cite web|URL= http://fwdc.gov.np/ne/%E0%A4%A7%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%95-%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%A8%E0%A4%B9%E0%A4%B0%E0%A5%81 |title= धार्मिक स्थलहरु |language= Nepali |publisher= www.fwdc.gov.np}}</ref> |elevation_m = |deity = [[Shakti]] |festival = [[Ganga Dussehra]], Shrwan Shukla chaturdashi |architecture = Pagoda Style |temple_quantity = |monument_quantity = |inscriptions = |creator = |website = |mapframe = yes |mapframe-zoom = 12 |mapframe-wikidata = yes }} == पृष्ठभूमि == '''बडीमालिका''' विश्वका प्रमुख हिन्दु मन्दिरहरूमध्येको एक प्रशिद्ध मन्दिर हो । यो मन्दिर नेपालको सुदूरपश्चिम प्रदेशको बाजुरा जिल्लाको त्रिवेणी नगरपालिकामा वडा नं. ६ पन्धारामा पर्दछ । यहाँ प्रत्येक वर्ष साउन शुक्ल त्रयोदशी देखि चतुर्दशीका दिन मुख्य पूजा तथा हवन गरिन्छ । गंगा दशहरामा यहाँको पाती प्रसाद खप्तडमा ल्याएर चढाउने गरिन्छ । बडीमालिकामा २ जिल्लाका पुजारीहरुले पूजा गर्छन् । यी मध्ये १ बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ९ पैमाका हुन् भने अर्को कालिकोटका हुन् । हाल बाजुराबाट मुख्य पुजारीको रुपमा नेत्र पाध्याय रहेका छन् भने कालिकोटबाट हरी धमाला रहेका छन् । [[File : Badimalika Temple, Bajura, Nepal.jpg|thumb|बडीमालिका मन्दिर|300px]] सम्वत् २०८२ सालमा यहाँको पुरानो मन्दिरको जिर्णोद्वार गरी नेपाली सेनाद्वारा नयाँ मन्दिर निर्माण गरिएको छ । बडीमालिका मन्दिर समुन्द्री सतहबाट ४,२२० मीटर उचाईमा अवस्थित छ । जुन विश्वमा रहेका हिन्दु मन्दिरहरुमध्ये सबैभन्दा अग्लो स्थानमा रहेको हिन्दु मन्दिर हो । बडीमालिका दर्शनका लागि जाने भक्तजनहरुले त्रिवेणी हुँदै जानु पर्ने हुन्छ । त्रिवेणी बाजुरा जिल्लाको त्रिवेणी नगरपालिका र कालिकोटको रास्कोट नगरपालिकाको सिमाना हो । यसको मुख्य भाग बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ५ किम्नीमा पर्दछ । बडीमालिका, त्रिवेणी बहुमूल्य जडिबुटीको भण्डार पनि हो । ==किंवदन्ती== पौराणिक कथा अनुसार [[शिव|महादेव]]की पत्नी [[सतिदेवी]]का पिता [[दक्ष प्रजापति]]ले यज्ञ गर्दा महादेव र सतिदेवीलाई बोलाएनन् । आफ्ना पति र आफूलाई यज्ञमा नबोलाएपछि सतिदेविले आफ्ना पिता दक्ष प्रजापतीले सञ्चालन गरेको यज्ञ स्थलमा गएर पितासँग आफ्ना पति महादेव र आफूलाई यज्ञमा नबोलाउनुको कारण सोधिन् । दक्ष प्रजापतीले महादेव [[भाङ]], [[धतुरो]] सेवन गर्ने, शमसान घाटमा वास गर्ने, गलामा [[सर्प]]को माला लगाउने, जटाधारी भेषमा रहने, शरीरभरी [[खरानी]] घस्ने, [[बाघ]]को छालाको पहिरने हुनाले यस यज्ञमा बस्दा शोभा नदिने भएकाले नबोलाएको बताए । पिताको जवाफ सुनेपछि सतिदेवीलाई आफ्ना पतिको अपमान गरिएको महशुस भयो र अपमान सहन गर्न नसकेर यज्ञकुण्डको अग्नीमा हाम फालेर प्राण त्याग गरिन् । आफ्नी पत्नि सतिदेवीले दक्ष प्रजापतिले सञ्चालन गरेको यज्ञमा हाम फालेर प्राण त्याग गरेपछि महादेव रिसाएर विरभद्रादी शिवगणलाई पठाएर दक्ष प्रजापतिलाई मारी दक्ष प्रजापतिले सञ्चालन गरेको यज्ञ तहस नहस पार्न लगाए । आफू भने पत्नी वियोगमा पागल भएर सतिदेवीको मृत शरिर बोकेर पुरा [[विश्व]] घुम्न थाले । यसै बेला [[विष्णु|भगवान बिष्णु]]ले आफ्नो चक्र सुदर्शन प्रहार गरी सतिदेवीको मृत शरीरमा किरा पारेर कुहाए । सतिदेवीको मृत शरीर कुहिए पछि महादेव जहाँ जहाँ गए त्यहाँ त्यहाँ सतिदेवीको मृत शरीरको कुहिएको अङ्ग खस्दै (पतन हुँदै) गए । यसरी ठाउँ ठाउँमा सतिदेवीको शरीरका अङ्गहरू पतन हुँदै जान थालेपछि जहाँ जहाँ सतिदवीका अङ्ग पतन भए त्यहाँ त्यहाँ एक एकवटा सिद्ध पिठ (प्रसिद्ध धार्मिक स्थल) बन्दै गए । यसै क्रममा हालको बाजुरा जिल्लाको मल्लागिरी पर्वतमा सतिदेवीको बायाँ कुम पतन भयो । पछि गएर सतिदेवीको बायाँ कुम पतन भएको त्यही पर्वतलाई मालिका र हाल आएर बडीमालिका भनिन थालियो । मल्लागिरी पर्वतमा मल्लिका अथवा [[मालिका देवी]] शक्ति स्वरूपले रहन थालिन् ।<ref>श्री स्वस्थानी ब्रतकथा</ref> तसर्थ यस स्थानमा बडिमालिका मन्दिर स्थापना गरेर पूजा गर्न थालियो । भनिन्छ पौराणिक कालमा भगवतीले महिषासुर नामको दैत्यको वध गरिसकेपछि कालिकोटको "द्वारेढुंगा" भन्ने ठाउँमा विश्राम गरेकी थिइन् । पछि गएर द्वारेढुंगामा एकजना दाउरा खोज्न गएको दलित भोकले व्याकुल भई देवीसँग बहरको मासु र हिया गहुँको रोटी माग्यो । देवीले त्यो दलितको मनोरथ पूरा गरिदिइन् । दलितले पूरै बहरलाई एक्लै खान नसकिने भएकाले आफ्नो घरका मान्छेलाई बोलाएछ । उसको घरको मानिसहरूले टाढा भएका कारण सुन्न सकेनन् । तब त्यो दलितलाई रिस उठ्यो। उसले भगवतीलाई भन्यो हे! प्रमेश्वरी मेरा घरका सबै मान्छे मरुन् । देवीले पनि इच्छाअनुसार वरदान दिइन् । त्यसपछि बहरको मासु लिएर दलित घर गएछ । घरमा हेर्दा त सबै जहानहरू मरेका देख्यो । फेरि दलित रिसायर द्वारेढुंगा पुग्यो । देवी उसलाई देखेर ढोका बन्द गरी त्यहाँबाट भागिन् । दलितले बहरको फिलाले देवीको घरमा हानेको छाप अझै द्वारे ढुङ्गामा देखिन्छ । यसो भएका कारण देवी सधैँका लागि त्यो ठाउँ छोडेर त्रिवेणी, पञ्चपुरी पाटन, मल्लपुरी पाटन हुँदै बडीमालिकामा गएर बसिन् । त्यसैले दलितहरू बडिमालिका जाँदैनन् भन्ने विश्वास गरिन्छ। अन्य भक्तजनहरू जो बाटो देवी गएकी हुन् त्यही बाटो भएर जान्छन् । <ref>जन जिब्रोमा प्रचलित कथा</ref> ==सरकारी पूजा== बडीमालिका मन्दिरमा सरकारका तर्फबाट एकजना मुख्य पूजारी बनाइएका छन् । हाल बाजुरा जिल्ला त्रिवेणी नगरपालिका वडा नं. ९ पैमाका नेत्र पाध्याय मुख्य पुजारीका रुपमा रहेका छन् । पैमाका पुजारी नेत्र पाध्याय र उनका दाजुभाइहरू छोराहरूले सरकारी पूजा गराउँछन् । सरकारी पुजा गर्दा सबैभन्दा पहिले डोटी जिल्लाबाट पठाईएको गोरखनाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ भने त्यसपछि जुम्ला जिल्लाबाट चन्दननाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ । त्यसपछि क्रमश: [[अछाम जिल्ला|अछाम]], [[बाजुरा जिल्ला|बाजुरा]] र [[कालिकोट जिल्ला|कालिकोट]] जिल्लाका प्रमुख जिल्ला अधिकारी तथा निजका प्रतिनिधिहरु लगायत अन्य कर्मचारीहरूको हातबाट देवीको सरकारी पूजा सम्पन्न हुन्छ। पछिल्लो समयमा कालिकोट, जुम्ला, मुगु, अछाम, बाजुरा, कैलाली जिल्लाका स्थानीय सरकारका तर्फबाट समेत बडीमालिका मन्दिरमा सरकारी पुजा गर्ने प्रचलन रहेको छ । कैलाली जिल्लामा रहेको सुदूरपश्चिम प्रदेशको एक मात्र उपमहानगरपालिका धनगढी उपमहानगरपालिकाको तर्फबाट सम्वत् २०८२ साल साउन २३ गतेका दिन पहिलो पटक सरकारी पुजा गरिएको छ । धनगढी उपमहानगरपालिका नगर प्रमुख श्री गोपाल हमालको पहलमा २०८२ सालदेखि बडीमालिका मन्दिरमा सरकारी पुजाको थालनी गरिएको हो । ==प्राकृतिक सौन्दर्य== बडीमालिका धार्मिक मात्र नभएर पर्यटकीय हिसाबले पनि महत्त्वपूर्ण मानिन्छ । नजिकै देखिने सुन्दर हिमाल, हिउँ कुल्चन पाउने सौभाग्य र मनोरम प्राकृतिक दृश्यहरू बडीमालिकाका गहना हुन् । बडीमालिकाको सौन्दर्य भनेकै विशाल फाँटहरू हुन् । बडमालिका क्षेत्रका ती विशाल फाँटहरुलाई स्थानीय भाषामा पाटन भनिन्छ । तर अचेल यी फाँटहरू बिस्तारै मासिँदै छन् । यी फाँटमा अनावश्यक चरन र जडीबुडी चोरी निकासीका कारण यसको सौन्दर्य मासिएको जिल्लाबासीको गुनासो छ । बडीमालिकामा प्रत्येक वर्ष [[श्रावण शुक्ल पूर्णिमा|जनै पूर्णिमा]]को अघिल्ला दिनहरु साउन त्रयोदशी देखि चतुर्दशीका दिन ठूलो मेला लाग्दछ । त्यो समयमा केही स्थानीय व्यापारीले खाजा नास्ताका पसल राख्ने गर्छन् । अन्य समयमा त्यहाँ खाजा नास्ताका कुनै पसलहरू खासै भेटिँदैनन् । बडीमालिका मन्दिरमा दर्शन गरेपछि आफ्नो मनोकांक्षा पूरा हुने जनविश्वास छ । मन्दिर परिसरबाट आँखै अगाडी देखिने [[साइपाल हिमाल|सैपाल]] हिमालको मनोरम दृश्यले यहाँको सौन्दर्यलाई झनै तिखारेको छ । बडीमालीका पुग्नका लागि उचित बास बस्ने स्थान नभएका कारण भक्तजन तथा पर्यटकले खानपिन तथा बासको जोहो आफै गर्नुपर्छ । यद्दपि साउन महिनामा लाग्ने मेलाको अवसरका बाटोमा त्रिपाल टाँगेर खान बस्नका लागि अस्थायी पसलहरु भने राखिएका भेटिन्छन् । तर ती पसलहरुले भक्तजनहरुको घुईंचोलाई धान्न भने सकेका हुँदैनन् । नेपालको विभिन्न जिल्लाका साथै भारतबाट पनि तीर्थालुहरू यहाँ मेला भर्न आउँछन् । भक्तजनहरूले आफूले मागेको वरदान पूरा हुन्छ भन्ने विश्वास गर्छन् । हालसम्म [[गङ्गा दशहरा|गंगा दशहरा]] र साउन त्रयोदशी देखि चतुर्शीसम्म गरी वर्षको दुईपटक मात्र लाग्दै आएको औपचारिक मेलाका कारण बडीमालिकाको महत्त्व सीमित छ । भक्तजनहरुको घुईंचो गंगा दशहरा भन्दा साउन चतुर्दशीमा बढी हुने गर्दछ । बडिमालिका मन्दिरसम्म पुग्नका लागि कालिकोट र बाजुरा जिल्लाका विभिन्न बाटोहरु प्रयोग गर्न सकिन्छ । कर्णाली प्रदेश र बाजुरा जिल्लाको नजिकको क्षेत्र बाहेक अन्य स्थानबाट बडीमालिका मन्दिर सम्म पुग्नका लागि सबै भन्दा सजिलो बाटो मार्तडी हुँदै जाने बाटो हो । नेपालको राजधानी काठमाण्डौं लगायतका क्षेत्रबाट यो बाटो हुँदै बडीमालिका जानका लागि सुदूरपश्चिम प्रदेशको धनगढीबाट बाजुरा जिल्लाको मार्तडीसम्म सडक यातायातको सुविधा छ । धनगढीबाट दिवा तथा रात्री सेवाका बसहरु वा आफ्नै निजी सवारी साधनको प्रयोग गरेर एक दिनमा पुग्न सकिन्छ । मार्तडीबाट पैदल हिडेर अर्को दिन फुल चढाउने ठाउँमा पुगेर बास बस्नु पर्ने हुन्छ । फुल चढाउने ठाउँमा एउटा सानो धर्मशाला त छ तर त्यो यात्रुका लागि पर्याप्त हुँदैन । तसर्थ आफैले टेण्ट बोकेर लैजानु बुद्धिमानी हुन्छ । त्यसको भोलीपल्ट भितीचिर्ना बास बस्न सकिन्छ भने पर्सि पल्ट त्रिवेणी पाटनमा बास बस्न सकिन्छ । त्रयोदशीको दिन बिहानै त्रिवेणीमा स्नान गरि बडीमालिका तर्फ लाग्ने हो भने बडीमालिका पुगिन्छ । त्यसैदिन वा भोली पल्ट बडिमालिका देवीकझ दर्शन तथा पुजा गरेर नाटेश्वरी तर्फ हिड्न सकिन्छ । नाटेश्वरी तर्फको बाटो साह्रै भिरालो र अत्यधिक चिप्लो भएकोले विहान र दिउँसोको समयम पारेर हिड्नु पर्छ । विहानै हिड्ने हो भने सोही दिन नाटेश्वरी पुगिन्छ भने दिउँसो हिड्दा ठूलागडासम्म बास बस्ने गरी पुग्न सकिन्छ । नाटेश्वरी तर्फ जाँदा विष्णुपानीका अस्थायी होटलमा खाना खान पाईन्छ । ठूलागडा बस्ने हो भने भोलीपल्ट १० बजेसम्म नाटेश्वरी पुगिन्छ । नाटेश्वरीमा जनैपूर्णिका दिन नाटेश्वरी माईंको दर्शन गरी नजिकै रहेको कालिका मन्दिरमा बलि पुजा गर्ने प्रचलन छ । नाटेश्वरीमा जनै फेर्ने र रक्षा बन्धनको काम पनि गरिन्छ । बलि पुजा गर्नेहरुले भातसँग बोकाको मासु प्रसादको रुपमा खाएर सोही दिन बुढीगंगा नगरपालिकाको बाम्का बजार तर्फ लाग्दछन् । बाम्का बजारबाट धनगढीका लागि बसहरु भेटिन्छन् । त्यही बस वा आफ्नै सवारी साधनबाट धनगढीको यात्रा गर्न सकिन्छ । यसरी यो रुटबाट यात्रा गर्दा कम्तिमा ६ दिन लाग्दछ । तर त्रिवेणी र बडीमालिकाका सुन्दर दृश्यहरु हेर्नका लागि २ दिन थप गरेर ८ दिन लगाउने हो भने १ दिन त्रिवेणी र १ दिन बडीमालिकामा रहेर थप आनन्द लिन सकिन्छ । हवाई मार्गको प्रयोग गर्ने हो भने नेपालगञ्जबाट बाजुराको बुढीगंगा नगरपालिकाको कोल्टी एअरपोर्टसम्म गएर त्यहाँबाट १ दिनमा बाजुराको सदरमुकाम मार्तडी पुग्न सकिन्छ । मार्तडीबाट माथि भनिए झैं यात्रा गर्न सकिन्छ । कोल्टीबाटै फर्कने हो भने फर्कदा बडीमालिका-त्रिवेणी-भितिचिर्ना-फुल चढाउने-मार्तडी- कोल्टी हुँदै फर्कन सकिन्छ । बाजुराबाट कोर्ध-बुढाकोर्ध-भितिचिर्ना-त्रिवेणी-बडीमालिकाको बाटो पनि प्रयोग गर्न सकिन्छ । त्यस्तै बल्दे-पैमा पुजारीको घर हुँदै बडीमालिका जान पनि सकिन्छ । बाम्का बजार-मौरे-नाटेश्वरी हुँदै पनि बडीमालिका जान मिल्दछ । त्यस्तै बाम्का बजार-तोली-छतारा-पञ्चपुरी हुँदै पनि बडीमालिका जान सकिन्छ । बल्दे, बाम्का, पञ्चपुरीको बाटो प्रयोग गर्दा बडीमालिका पुगेर त्रिवेणी जानु पर्ने हुन्छ, त्रिवेणीमा नुहाएर फेरी बडीमालिका आउनु पर्ने हुन्छ । बडीमालिका ४,२२० मिटर उचाईंमा रहेको, बाटोहरु भिरालो रहेको, लेकाली विशालु जडिबुटीहरु फुलेर विश लाग्ने, लेक लाग्ने जस्ता कारणले बडीमालिका पुग्न जो कोहीलाई हम्मे हम्मे पर्दछ । तर पनि देवीको अनुकम्पाले अधिकाँश भक्तजनहरुले यात्रा पुरा गरेका हुन्छन् । बडीमालिकाको यात्रा गर्दा आजकाल ठाउँमा त्रिपाल राखेर खानाका लागि अस्थायी होटेलहरु राखिएका हुनाले खानाका लागि त्यति समस्या हुँदैन । तैपनि बाटोमा भोक लागेको बेला खानका लागि र बास बस्ने ठाउँमा खानेकुरा नपाएको अवस्थामा खानका लागि सातु वा आफुलाई मन पर्ने शुद्ध शाकाहारी ड्राई फुड बोकेर लैजान सकिन्छ । यसरी बोक्ने सामान भारी (गह्रौं) भने हुनु हुँदैन । भारी भयो भने बोकेर हिड्नलाई धेरै गाह्रो हुन सक्छ । लेक लाग्दा सुँघ्नका लागि पुजा गर्ने कपुर बोकिराख्नु भयो भने फाईदाजनक हुन्छ । पोलेको अदुवा, नुन खुर्शानी र टिम्मुर मिश्रित धुलो साथमा राखेर बेला बेलामा खानाले पनि लेक लाग्नबाट बच्न सकिन्छ । धेरै जसो ठाउँमा पानी नपाउने हुँदा पानीमा लागि बोटल साथमा राखेर हमेशा त्यसमा पानी भरिराख्नु पर्दछ । शौच सफा गर्न, मुख पुछ्न ट्वाइलेट पेपर, वेट टिस्यु पेपर साथमा लैजाँदा राम्रो हुन्छ । चिसोबाट जोगिन भिक्स, लिप गार्ड, इन्हेलर, कोल्ड क्रिम साथमा राखेर बेला बेला प्रयोग गर्नु बुद्धिमानी हुन्छ । जीउको दुखाई कम गर्न मुभ, सिटामोल जस्ता औषधी साथमा राखिराख्नु पर्दछ । रात्री सुत्नका लागि सिलिपिङ व्याग, टेण्ट, ज्याकेट, थर्मकोल लिनु भयो भने राम्रो हुन्छ । बडीमालिका क्षेत्रका सुन्दर दृश्यहरु कैद गर्नका लागि मोबाईल वा क्यामेराको साथमा पावर व्याकअप लैजानु पर्ने हुन्छ । पावर व्याकअप लिंदा कम्तिमा ६ दिनसम्म चार्ज गर्न मिल्ने क्षमता भएको पावर व्याकअप लैजानु पर्दछ। ==सञ्चार सेवा== धार्मिक तथा पर्यटकीय दृष्टिले महत्वपूर्ण [[बाजुरा जिल्ला|बाजुरा]]को बडीमालिका क्षेत्रमा दूरसञ्चार तथा इन्टरनेट सेवाको पहुँच विस्तार भएको छ। नेपाल टेलिकमले बडीमालिका क्षेत्रमा फोर-जी सेवा विस्तार गरेपछि ८ भाद्र, २०८३ सोमबारदेखि उक्त क्षेत्रमा मोबाइल फोन तथा इन्टरनेट सेवा सञ्चालनमा आएको हो।<ref>{{वेब स्रोत|लेखक=गोरखापत्र अनलाइन|शीर्षक=बडीमालिका क्षेत्रमा पुग्यो टेलिफोन र इन्टरनेट सेवा|युआरएल=https://gorkhapatraonline.com/news/219713|कार्य=|प्रकाशक=|वेबसाइट=गोरखापत्र अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> जनैपूर्णिमाका अवसरमा बडीमालिका क्षेत्रमा आयोजना हुने धार्मिक मेलाको पूर्वसन्ध्यामा सञ्चार सेवा सञ्चालनमा आएको हो। समुद्री सतहबाट करिब ४,२०० मिटरको उचाइमा रहेको यस क्षेत्रमा सञ्चार सेवा विस्तार भएपछि स्थानीयवासी, तीर्थयात्री, पर्यटक तथा विभिन्न सरकारी तथा गैरसरकारी निकायलाई सञ्चार सम्पर्कमा सहजता हुने अपेक्षा गरिएको छ। यसअघि दुर्गम तथा उच्च हिमाली क्षेत्रमा अवस्थित बडीमालिका क्षेत्रमा मोबाइल तथा इन्टरनेट सेवाको पहुँच सीमित थियो। फोर-जी सेवा विस्तारसँगै मोबाइल फोन तथा इन्टरनेट प्रयोग गर्न सहज भएको छ। यसले धार्मिक तथा पर्यटकीय गतिविधिका साथै सूचना आदानप्रदान र आपत्कालीन अवस्थामा सञ्चार सम्पर्क कायम गर्न समेत सहयोग पुग्ने अपेक्षा गरिएको छ।<ref>{{वेब स्रोत|लेखक=दिलबहादुर छत्याल|शीर्षक=बडीमालिकामा पुग्यो इन्टरनेट|युआरएल=https://nagariknews.nagariknetwork.com/technology/internet-reaches-badimalika-38-72.html|कार्य=|प्रकाशक=|वेबसाइट=नागरिक अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> ==तस्विर ग्यालरी== <gallery> File:बडिमालिका मन्दिर.JPG|बडिमालिका मन्दिर File:बडिमालिका मन्दिरको बाटो.JPG|बडिमालिका मन्दिरको बाटो File:बडिमालिका मन्दिर रहेको पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरमा पूजा गर्दे.JPG|बडिमालिका मन्दिरमा पूजा गर्दै File:बडिमालिका मन्दिरबाट फर्केका मानिसहरु.JPG|बडिमालिका मन्दिरबाट फर्केका मानिसहरू File:बडिमालिका मन्दिर अवस्थीत पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरबाट देखिने दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने दृष्य File:बडिमालिका मन्दिरबाट देखिने एक दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने एक दृष्य </gallery> ==श्रोत== {{reflist|}} ==बाह्य कडीहरू== *[http://m.ujyaaloonline.com/index.php?pआageName=news_details&id=10177&catId=21 पर्यटक पर्खदै बाजुराको बडिमालिका]{{Dead link|date=November 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.ekantipur.com/kantipur/news/news-detail.php?news_id=260067 सुरु भएन बडिमालिका संरक्षण योजना] *[http://www.bbc.com/nepali/multimedia/2016/09/160902_badimalika_nepal?ocid=socialflow_facebook बडिमालिका यात्रा] *[http://www.hamrogorkha.com/नियमित-स्तम्भ/पर्यटन/सौन्दर्यले-भरिएको-बाजुराको-बडिमालिका-(फोटोफिचर).htm बडिमालिका फोटो फिचर]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.sidhadrishti.com/2016/05/108.html?m=1 स्वर्गको टुक्रा बडिमालिका] {{Webarchive|url=https://web.archive.org/web/20220117221717/http://www.sidhadrishti.com/2016/05/108.html?m=1 |date=2022-01-17 }} ==यी पनि हेर्नुहोस्== {{सुदूर-पश्चिमकी नौ भगवती}} {{नेपालका मन्दिरहरू}} [[श्रेणी:नेपालका मन्दिरहरू]] [[श्रेणी:बाजुरा जिल्लाका धार्मिक ठाउँहरू]] 53vs9legb9hwyyonar2qkfvzje962jj 1372328 1372327 2026-08-26T00:47:19Z Rajeeb bastola 39875 1372328 wikitext text/x-wiki {{Short description|Hindu temple in Sudurpashchim, Nepal}} {{more citations needed|date=August 2020}} {{Infobox Mandir |name = बडिमालिका मन्दिर |image = Badi Malika.png | |alt = Temple premises |caption = |pushpin_map = Nepal |pushpin_caption = Badimalika Temple in Nepal |coordinates = {{coord|29.346916|81.477488|type:landmark_region:NP|display=inline,title}} |sanskrit_translit = |country = {{flag|नेपाल}} |state = [[सुदूरपश्चिम प्रदेश|सुदूरपश्चिम]] |district = [[बाजुरा जिल्ला|बाजुरा]] |location = [[Kailashmandau]], [[Bajura district|Bajura]] <ref>{{cite web|URL= http://fwdc.gov.np/ne/%E0%A4%A7%E0%A4%BE%E0%A4%B0%E0%A5%8D%E0%A4%AE%E0%A4%BF%E0%A4%95-%E0%A4%B8%E0%A5%8D%E0%A4%A5%E0%A4%BE%E0%A4%A8%E0%A4%B9%E0%A4%B0%E0%A5%81 |title= धार्मिक स्थलहरु |language= Nepali |publisher= www.fwdc.gov.np}}</ref> |elevation_m = |deity = [[Shakti]] |festival = [[Ganga Dussehra]], Shrwan Shukla chaturdashi |architecture = प्यागोडा शैली |temple_quantity = |monument_quantity = |inscriptions = |creator = |website = |mapframe = yes |mapframe-zoom = 12 |mapframe-wikidata = yes }} == पृष्ठभूमि == '''बडीमालिका''' विश्वका प्रमुख हिन्दु मन्दिरहरूमध्येको एक प्रशिद्ध मन्दिर हो । यो मन्दिर नेपालको सुदूरपश्चिम प्रदेशको बाजुरा जिल्लाको त्रिवेणी नगरपालिकामा वडा नं. ६ पन्धारामा पर्दछ । यहाँ प्रत्येक वर्ष साउन शुक्ल त्रयोदशी देखि चतुर्दशीका दिन मुख्य पूजा तथा हवन गरिन्छ । गंगा दशहरामा यहाँको पाती प्रसाद खप्तडमा ल्याएर चढाउने गरिन्छ । बडीमालिकामा २ जिल्लाका पुजारीहरुले पूजा गर्छन् । यी मध्ये १ बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ९ पैमाका हुन् भने अर्को कालिकोटका हुन् । हाल बाजुराबाट मुख्य पुजारीको रुपमा नेत्र पाध्याय रहेका छन् भने कालिकोटबाट हरी धमाला रहेका छन् । [[File : Badimalika Temple, Bajura, Nepal.jpg|thumb|बडीमालिका मन्दिर|300px]] सम्वत् २०८२ सालमा यहाँको पुरानो मन्दिरको जिर्णोद्वार गरी नेपाली सेनाद्वारा नयाँ मन्दिर निर्माण गरिएको छ । बडीमालिका मन्दिर समुन्द्री सतहबाट ४,२२० मीटर उचाईमा अवस्थित छ । जुन विश्वमा रहेका हिन्दु मन्दिरहरुमध्ये सबैभन्दा अग्लो स्थानमा रहेको हिन्दु मन्दिर हो । बडीमालिका दर्शनका लागि जाने भक्तजनहरुले त्रिवेणी हुँदै जानु पर्ने हुन्छ । त्रिवेणी बाजुरा जिल्लाको त्रिवेणी नगरपालिका र कालिकोटको रास्कोट नगरपालिकाको सिमाना हो । यसको मुख्य भाग बाजुरा जिल्लाको त्रिवेणी नगरपालिका वडा नं. ५ किम्नीमा पर्दछ । बडीमालिका, त्रिवेणी बहुमूल्य जडिबुटीको भण्डार पनि हो । ==किंवदन्ती== पौराणिक कथा अनुसार [[शिव|महादेव]]की पत्नी [[सतिदेवी]]का पिता [[दक्ष प्रजापति]]ले यज्ञ गर्दा महादेव र सतिदेवीलाई बोलाएनन् । आफ्ना पति र आफूलाई यज्ञमा नबोलाएपछि सतिदेविले आफ्ना पिता दक्ष प्रजापतीले सञ्चालन गरेको यज्ञ स्थलमा गएर पितासँग आफ्ना पति महादेव र आफूलाई यज्ञमा नबोलाउनुको कारण सोधिन् । दक्ष प्रजापतीले महादेव [[भाङ]], [[धतुरो]] सेवन गर्ने, शमसान घाटमा वास गर्ने, गलामा [[सर्प]]को माला लगाउने, जटाधारी भेषमा रहने, शरीरभरी [[खरानी]] घस्ने, [[बाघ]]को छालाको पहिरने हुनाले यस यज्ञमा बस्दा शोभा नदिने भएकाले नबोलाएको बताए । पिताको जवाफ सुनेपछि सतिदेवीलाई आफ्ना पतिको अपमान गरिएको महशुस भयो र अपमान सहन गर्न नसकेर यज्ञकुण्डको अग्नीमा हाम फालेर प्राण त्याग गरिन् । आफ्नी पत्नि सतिदेवीले दक्ष प्रजापतिले सञ्चालन गरेको यज्ञमा हाम फालेर प्राण त्याग गरेपछि महादेव रिसाएर विरभद्रादी शिवगणलाई पठाएर दक्ष प्रजापतिलाई मारी दक्ष प्रजापतिले सञ्चालन गरेको यज्ञ तहस नहस पार्न लगाए । आफू भने पत्नी वियोगमा पागल भएर सतिदेवीको मृत शरिर बोकेर पुरा [[विश्व]] घुम्न थाले । यसै बेला [[विष्णु|भगवान बिष्णु]]ले आफ्नो चक्र सुदर्शन प्रहार गरी सतिदेवीको मृत शरीरमा किरा पारेर कुहाए । सतिदेवीको मृत शरीर कुहिए पछि महादेव जहाँ जहाँ गए त्यहाँ त्यहाँ सतिदेवीको मृत शरीरको कुहिएको अङ्ग खस्दै (पतन हुँदै) गए । यसरी ठाउँ ठाउँमा सतिदेवीको शरीरका अङ्गहरू पतन हुँदै जान थालेपछि जहाँ जहाँ सतिदवीका अङ्ग पतन भए त्यहाँ त्यहाँ एक एकवटा सिद्ध पिठ (प्रसिद्ध धार्मिक स्थल) बन्दै गए । यसै क्रममा हालको बाजुरा जिल्लाको मल्लागिरी पर्वतमा सतिदेवीको बायाँ कुम पतन भयो । पछि गएर सतिदेवीको बायाँ कुम पतन भएको त्यही पर्वतलाई मालिका र हाल आएर बडीमालिका भनिन थालियो । मल्लागिरी पर्वतमा मल्लिका अथवा [[मालिका देवी]] शक्ति स्वरूपले रहन थालिन् ।<ref>श्री स्वस्थानी ब्रतकथा</ref> तसर्थ यस स्थानमा बडिमालिका मन्दिर स्थापना गरेर पूजा गर्न थालियो । भनिन्छ पौराणिक कालमा भगवतीले महिषासुर नामको दैत्यको वध गरिसकेपछि कालिकोटको "द्वारेढुंगा" भन्ने ठाउँमा विश्राम गरेकी थिइन् । पछि गएर द्वारेढुंगामा एकजना दाउरा खोज्न गएको दलित भोकले व्याकुल भई देवीसँग बहरको मासु र हिया गहुँको रोटी माग्यो । देवीले त्यो दलितको मनोरथ पूरा गरिदिइन् । दलितले पूरै बहरलाई एक्लै खान नसकिने भएकाले आफ्नो घरका मान्छेलाई बोलाएछ । उसको घरको मानिसहरूले टाढा भएका कारण सुन्न सकेनन् । तब त्यो दलितलाई रिस उठ्यो। उसले भगवतीलाई भन्यो हे! प्रमेश्वरी मेरा घरका सबै मान्छे मरुन् । देवीले पनि इच्छाअनुसार वरदान दिइन् । त्यसपछि बहरको मासु लिएर दलित घर गएछ । घरमा हेर्दा त सबै जहानहरू मरेका देख्यो । फेरि दलित रिसायर द्वारेढुंगा पुग्यो । देवी उसलाई देखेर ढोका बन्द गरी त्यहाँबाट भागिन् । दलितले बहरको फिलाले देवीको घरमा हानेको छाप अझै द्वारे ढुङ्गामा देखिन्छ । यसो भएका कारण देवी सधैँका लागि त्यो ठाउँ छोडेर त्रिवेणी, पञ्चपुरी पाटन, मल्लपुरी पाटन हुँदै बडीमालिकामा गएर बसिन् । त्यसैले दलितहरू बडिमालिका जाँदैनन् भन्ने विश्वास गरिन्छ। अन्य भक्तजनहरू जो बाटो देवी गएकी हुन् त्यही बाटो भएर जान्छन् । <ref>जन जिब्रोमा प्रचलित कथा</ref> ==सरकारी पूजा== बडीमालिका मन्दिरमा सरकारका तर्फबाट एकजना मुख्य पूजारी बनाइएका छन् । हाल बाजुरा जिल्ला त्रिवेणी नगरपालिका वडा नं. ९ पैमाका नेत्र पाध्याय मुख्य पुजारीका रुपमा रहेका छन् । पैमाका पुजारी नेत्र पाध्याय र उनका दाजुभाइहरू छोराहरूले सरकारी पूजा गराउँछन् । सरकारी पुजा गर्दा सबैभन्दा पहिले डोटी जिल्लाबाट पठाईएको गोरखनाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ भने त्यसपछि जुम्ला जिल्लाबाट चन्दननाथको टोलीको तर्फबाट सरकारी पुजा हुने गर्दछ । त्यसपछि क्रमश: [[अछाम जिल्ला|अछाम]], [[बाजुरा जिल्ला|बाजुरा]] र [[कालिकोट जिल्ला|कालिकोट]] जिल्लाका प्रमुख जिल्ला अधिकारी तथा निजका प्रतिनिधिहरु लगायत अन्य कर्मचारीहरूको हातबाट देवीको सरकारी पूजा सम्पन्न हुन्छ। पछिल्लो समयमा कालिकोट, जुम्ला, मुगु, अछाम, बाजुरा, कैलाली जिल्लाका स्थानीय सरकारका तर्फबाट समेत बडीमालिका मन्दिरमा सरकारी पुजा गर्ने प्रचलन रहेको छ । कैलाली जिल्लामा रहेको सुदूरपश्चिम प्रदेशको एक मात्र उपमहानगरपालिका धनगढी उपमहानगरपालिकाको तर्फबाट सम्वत् २०८२ साल साउन २३ गतेका दिन पहिलो पटक सरकारी पुजा गरिएको छ । धनगढी उपमहानगरपालिका नगर प्रमुख श्री गोपाल हमालको पहलमा २०८२ सालदेखि बडीमालिका मन्दिरमा सरकारी पुजाको थालनी गरिएको हो । ==प्राकृतिक सौन्दर्य== बडीमालिका धार्मिक मात्र नभएर पर्यटकीय हिसाबले पनि महत्त्वपूर्ण मानिन्छ । नजिकै देखिने सुन्दर हिमाल, हिउँ कुल्चन पाउने सौभाग्य र मनोरम प्राकृतिक दृश्यहरू बडीमालिकाका गहना हुन् । बडीमालिकाको सौन्दर्य भनेकै विशाल फाँटहरू हुन् । बडमालिका क्षेत्रका ती विशाल फाँटहरुलाई स्थानीय भाषामा पाटन भनिन्छ । तर अचेल यी फाँटहरू बिस्तारै मासिँदै छन् । यी फाँटमा अनावश्यक चरन र जडीबुडी चोरी निकासीका कारण यसको सौन्दर्य मासिएको जिल्लाबासीको गुनासो छ । बडीमालिकामा प्रत्येक वर्ष [[श्रावण शुक्ल पूर्णिमा|जनै पूर्णिमा]]को अघिल्ला दिनहरु साउन त्रयोदशी देखि चतुर्दशीका दिन ठूलो मेला लाग्दछ । त्यो समयमा केही स्थानीय व्यापारीले खाजा नास्ताका पसल राख्ने गर्छन् । अन्य समयमा त्यहाँ खाजा नास्ताका कुनै पसलहरू खासै भेटिँदैनन् । बडीमालिका मन्दिरमा दर्शन गरेपछि आफ्नो मनोकांक्षा पूरा हुने जनविश्वास छ । मन्दिर परिसरबाट आँखै अगाडी देखिने [[साइपाल हिमाल|सैपाल]] हिमालको मनोरम दृश्यले यहाँको सौन्दर्यलाई झनै तिखारेको छ । बडीमालीका पुग्नका लागि उचित बास बस्ने स्थान नभएका कारण भक्तजन तथा पर्यटकले खानपिन तथा बासको जोहो आफै गर्नुपर्छ । यद्दपि साउन महिनामा लाग्ने मेलाको अवसरका बाटोमा त्रिपाल टाँगेर खान बस्नका लागि अस्थायी पसलहरु भने राखिएका भेटिन्छन् । तर ती पसलहरुले भक्तजनहरुको घुईंचोलाई धान्न भने सकेका हुँदैनन् । नेपालको विभिन्न जिल्लाका साथै भारतबाट पनि तीर्थालुहरू यहाँ मेला भर्न आउँछन् । भक्तजनहरूले आफूले मागेको वरदान पूरा हुन्छ भन्ने विश्वास गर्छन् । हालसम्म [[गङ्गा दशहरा|गंगा दशहरा]] र साउन त्रयोदशी देखि चतुर्शीसम्म गरी वर्षको दुईपटक मात्र लाग्दै आएको औपचारिक मेलाका कारण बडीमालिकाको महत्त्व सीमित छ । भक्तजनहरुको घुईंचो गंगा दशहरा भन्दा साउन चतुर्दशीमा बढी हुने गर्दछ । बडिमालिका मन्दिरसम्म पुग्नका लागि कालिकोट र बाजुरा जिल्लाका विभिन्न बाटोहरु प्रयोग गर्न सकिन्छ । कर्णाली प्रदेश र बाजुरा जिल्लाको नजिकको क्षेत्र बाहेक अन्य स्थानबाट बडीमालिका मन्दिर सम्म पुग्नका लागि सबै भन्दा सजिलो बाटो मार्तडी हुँदै जाने बाटो हो । नेपालको राजधानी काठमाण्डौं लगायतका क्षेत्रबाट यो बाटो हुँदै बडीमालिका जानका लागि सुदूरपश्चिम प्रदेशको धनगढीबाट बाजुरा जिल्लाको मार्तडीसम्म सडक यातायातको सुविधा छ । धनगढीबाट दिवा तथा रात्री सेवाका बसहरु वा आफ्नै निजी सवारी साधनको प्रयोग गरेर एक दिनमा पुग्न सकिन्छ । मार्तडीबाट पैदल हिडेर अर्को दिन फुल चढाउने ठाउँमा पुगेर बास बस्नु पर्ने हुन्छ । फुल चढाउने ठाउँमा एउटा सानो धर्मशाला त छ तर त्यो यात्रुका लागि पर्याप्त हुँदैन । तसर्थ आफैले टेण्ट बोकेर लैजानु बुद्धिमानी हुन्छ । त्यसको भोलीपल्ट भितीचिर्ना बास बस्न सकिन्छ भने पर्सि पल्ट त्रिवेणी पाटनमा बास बस्न सकिन्छ । त्रयोदशीको दिन बिहानै त्रिवेणीमा स्नान गरि बडीमालिका तर्फ लाग्ने हो भने बडीमालिका पुगिन्छ । त्यसैदिन वा भोली पल्ट बडिमालिका देवीकझ दर्शन तथा पुजा गरेर नाटेश्वरी तर्फ हिड्न सकिन्छ । नाटेश्वरी तर्फको बाटो साह्रै भिरालो र अत्यधिक चिप्लो भएकोले विहान र दिउँसोको समयम पारेर हिड्नु पर्छ । विहानै हिड्ने हो भने सोही दिन नाटेश्वरी पुगिन्छ भने दिउँसो हिड्दा ठूलागडासम्म बास बस्ने गरी पुग्न सकिन्छ । नाटेश्वरी तर्फ जाँदा विष्णुपानीका अस्थायी होटलमा खाना खान पाईन्छ । ठूलागडा बस्ने हो भने भोलीपल्ट १० बजेसम्म नाटेश्वरी पुगिन्छ । नाटेश्वरीमा जनैपूर्णिका दिन नाटेश्वरी माईंको दर्शन गरी नजिकै रहेको कालिका मन्दिरमा बलि पुजा गर्ने प्रचलन छ । नाटेश्वरीमा जनै फेर्ने र रक्षा बन्धनको काम पनि गरिन्छ । बलि पुजा गर्नेहरुले भातसँग बोकाको मासु प्रसादको रुपमा खाएर सोही दिन बुढीगंगा नगरपालिकाको बाम्का बजार तर्फ लाग्दछन् । बाम्का बजारबाट धनगढीका लागि बसहरु भेटिन्छन् । त्यही बस वा आफ्नै सवारी साधनबाट धनगढीको यात्रा गर्न सकिन्छ । यसरी यो रुटबाट यात्रा गर्दा कम्तिमा ६ दिन लाग्दछ । तर त्रिवेणी र बडीमालिकाका सुन्दर दृश्यहरु हेर्नका लागि २ दिन थप गरेर ८ दिन लगाउने हो भने १ दिन त्रिवेणी र १ दिन बडीमालिकामा रहेर थप आनन्द लिन सकिन्छ । हवाई मार्गको प्रयोग गर्ने हो भने नेपालगञ्जबाट बाजुराको बुढीगंगा नगरपालिकाको कोल्टी एअरपोर्टसम्म गएर त्यहाँबाट १ दिनमा बाजुराको सदरमुकाम मार्तडी पुग्न सकिन्छ । मार्तडीबाट माथि भनिए झैं यात्रा गर्न सकिन्छ । कोल्टीबाटै फर्कने हो भने फर्कदा बडीमालिका-त्रिवेणी-भितिचिर्ना-फुल चढाउने-मार्तडी- कोल्टी हुँदै फर्कन सकिन्छ । बाजुराबाट कोर्ध-बुढाकोर्ध-भितिचिर्ना-त्रिवेणी-बडीमालिकाको बाटो पनि प्रयोग गर्न सकिन्छ । त्यस्तै बल्दे-पैमा पुजारीको घर हुँदै बडीमालिका जान पनि सकिन्छ । बाम्का बजार-मौरे-नाटेश्वरी हुँदै पनि बडीमालिका जान मिल्दछ । त्यस्तै बाम्का बजार-तोली-छतारा-पञ्चपुरी हुँदै पनि बडीमालिका जान सकिन्छ । बल्दे, बाम्का, पञ्चपुरीको बाटो प्रयोग गर्दा बडीमालिका पुगेर त्रिवेणी जानु पर्ने हुन्छ, त्रिवेणीमा नुहाएर फेरी बडीमालिका आउनु पर्ने हुन्छ । बडीमालिका ४,२२० मिटर उचाईंमा रहेको, बाटोहरु भिरालो रहेको, लेकाली विशालु जडिबुटीहरु फुलेर विश लाग्ने, लेक लाग्ने जस्ता कारणले बडीमालिका पुग्न जो कोहीलाई हम्मे हम्मे पर्दछ । तर पनि देवीको अनुकम्पाले अधिकाँश भक्तजनहरुले यात्रा पुरा गरेका हुन्छन् । बडीमालिकाको यात्रा गर्दा आजकाल ठाउँमा त्रिपाल राखेर खानाका लागि अस्थायी होटेलहरु राखिएका हुनाले खानाका लागि त्यति समस्या हुँदैन । तैपनि बाटोमा भोक लागेको बेला खानका लागि र बास बस्ने ठाउँमा खानेकुरा नपाएको अवस्थामा खानका लागि सातु वा आफुलाई मन पर्ने शुद्ध शाकाहारी ड्राई फुड बोकेर लैजान सकिन्छ । यसरी बोक्ने सामान भारी (गह्रौं) भने हुनु हुँदैन । भारी भयो भने बोकेर हिड्नलाई धेरै गाह्रो हुन सक्छ । लेक लाग्दा सुँघ्नका लागि पुजा गर्ने कपुर बोकिराख्नु भयो भने फाईदाजनक हुन्छ । पोलेको अदुवा, नुन खुर्शानी र टिम्मुर मिश्रित धुलो साथमा राखेर बेला बेलामा खानाले पनि लेक लाग्नबाट बच्न सकिन्छ । धेरै जसो ठाउँमा पानी नपाउने हुँदा पानीमा लागि बोटल साथमा राखेर हमेशा त्यसमा पानी भरिराख्नु पर्दछ । शौच सफा गर्न, मुख पुछ्न ट्वाइलेट पेपर, वेट टिस्यु पेपर साथमा लैजाँदा राम्रो हुन्छ । चिसोबाट जोगिन भिक्स, लिप गार्ड, इन्हेलर, कोल्ड क्रिम साथमा राखेर बेला बेला प्रयोग गर्नु बुद्धिमानी हुन्छ । जीउको दुखाई कम गर्न मुभ, सिटामोल जस्ता औषधी साथमा राखिराख्नु पर्दछ । रात्री सुत्नका लागि सिलिपिङ व्याग, टेण्ट, ज्याकेट, थर्मकोल लिनु भयो भने राम्रो हुन्छ । बडीमालिका क्षेत्रका सुन्दर दृश्यहरु कैद गर्नका लागि मोबाईल वा क्यामेराको साथमा पावर व्याकअप लैजानु पर्ने हुन्छ । पावर व्याकअप लिंदा कम्तिमा ६ दिनसम्म चार्ज गर्न मिल्ने क्षमता भएको पावर व्याकअप लैजानु पर्दछ। ==सञ्चार सेवा== धार्मिक तथा पर्यटकीय दृष्टिले महत्वपूर्ण [[बाजुरा जिल्ला|बाजुरा]]को बडीमालिका क्षेत्रमा दूरसञ्चार तथा इन्टरनेट सेवाको पहुँच विस्तार भएको छ। नेपाल टेलिकमले बडीमालिका क्षेत्रमा फोर-जी सेवा विस्तार गरेपछि ८ भाद्र, २०८३ सोमबारदेखि उक्त क्षेत्रमा मोबाइल फोन तथा इन्टरनेट सेवा सञ्चालनमा आएको हो।<ref>{{वेब स्रोत|लेखक=गोरखापत्र अनलाइन|शीर्षक=बडीमालिका क्षेत्रमा पुग्यो टेलिफोन र इन्टरनेट सेवा|युआरएल=https://gorkhapatraonline.com/news/219713|कार्य=|प्रकाशक=|वेबसाइट=गोरखापत्र अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> जनैपूर्णिमाका अवसरमा बडीमालिका क्षेत्रमा आयोजना हुने धार्मिक मेलाको पूर्वसन्ध्यामा सञ्चार सेवा सञ्चालनमा आएको हो। समुद्री सतहबाट करिब ४,२०० मिटरको उचाइमा रहेको यस क्षेत्रमा सञ्चार सेवा विस्तार भएपछि स्थानीयवासी, तीर्थयात्री, पर्यटक तथा विभिन्न सरकारी तथा गैरसरकारी निकायलाई सञ्चार सम्पर्कमा सहजता हुने अपेक्षा गरिएको छ। यसअघि दुर्गम तथा उच्च हिमाली क्षेत्रमा अवस्थित बडीमालिका क्षेत्रमा मोबाइल तथा इन्टरनेट सेवाको पहुँच सीमित थियो। फोर-जी सेवा विस्तारसँगै मोबाइल फोन तथा इन्टरनेट प्रयोग गर्न सहज भएको छ। यसले धार्मिक तथा पर्यटकीय गतिविधिका साथै सूचना आदानप्रदान र आपत्कालीन अवस्थामा सञ्चार सम्पर्क कायम गर्न समेत सहयोग पुग्ने अपेक्षा गरिएको छ।<ref>{{वेब स्रोत|लेखक=दिलबहादुर छत्याल|शीर्षक=बडीमालिकामा पुग्यो इन्टरनेट|युआरएल=https://nagariknews.nagariknetwork.com/technology/internet-reaches-badimalika-38-72.html|कार्य=|प्रकाशक=|वेबसाइट=नागरिक अनलाइन|भाषा=नेपाली)|अभिलेखमिति=|अभिलेखयुआरएल=|मिति=|पहुँचमिति=२४ अगस्ट २०२६}}</ref> ==तस्विर ग्यालरी== <gallery> File:बडिमालिका मन्दिर.JPG|बडिमालिका मन्दिर File:बडिमालिका मन्दिरको बाटो.JPG|बडिमालिका मन्दिरको बाटो File:बडिमालिका मन्दिर रहेको पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरमा पूजा गर्दे.JPG|बडिमालिका मन्दिरमा पूजा गर्दै File:बडिमालिका मन्दिरबाट फर्केका मानिसहरु.JPG|बडिमालिका मन्दिरबाट फर्केका मानिसहरू File:बडिमालिका मन्दिर अवस्थीत पहाड.JPG|बडिमालिका मन्दिर अवस्थीत पहाड File:बडिमालिका मन्दिरबाट देखिने दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने दृष्य File:बडिमालिका मन्दिरबाट देखिने एक दृष्य.JPG|बडिमालिका मन्दिरबाट देखिने एक दृष्य </gallery> ==श्रोत== {{reflist|}} ==बाह्य कडीहरू== *[http://m.ujyaaloonline.com/index.php?pआageName=news_details&id=10177&catId=21 पर्यटक पर्खदै बाजुराको बडिमालिका]{{Dead link|date=November 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.ekantipur.com/kantipur/news/news-detail.php?news_id=260067 सुरु भएन बडिमालिका संरक्षण योजना] *[http://www.bbc.com/nepali/multimedia/2016/09/160902_badimalika_nepal?ocid=socialflow_facebook बडिमालिका यात्रा] *[http://www.hamrogorkha.com/नियमित-स्तम्भ/पर्यटन/सौन्दर्यले-भरिएको-बाजुराको-बडिमालिका-(फोटोफिचर).htm बडिमालिका फोटो फिचर]{{Dead link|date=September 2023 |bot=InternetArchiveBot |fix-attempted=yes }} *[http://www.sidhadrishti.com/2016/05/108.html?m=1 स्वर्गको टुक्रा बडिमालिका] {{Webarchive|url=https://web.archive.org/web/20220117221717/http://www.sidhadrishti.com/2016/05/108.html?m=1 |date=2022-01-17 }} ==यी पनि हेर्नुहोस्== {{सुदूर-पश्चिमकी नौ भगवती}} {{नेपालका मन्दिरहरू}} [[श्रेणी:नेपालका मन्दिरहरू]] [[श्रेणी:बाजुरा जिल्लाका धार्मिक ठाउँहरू]] ptl8imct723a0stxobn815ot2arzjtm ढाँचा:Coord 10 12319 1372349 1325453 2026-08-26T03:55:51Z पर्वत सुवेदी 31224 /* */ 1372349 wikitext text/x-wiki <includeonly>{{#invoke:Coordinates|coord}}</includeonly><noinclude> {{कागजात}} </noinclude> 5fsj7058vbn4gg0524wvsqzvks6cju7 फुङलिङ नगरपालिका 0 35438 1372355 1372072 2026-08-26T05:33:09Z ~2026-46317-18 80528 स्थानीय भाषाको नाम थपियो 1372355 wikitext text/x-wiki {{Infobox settlement <!--See the table at Infobox settlement for all fields and descriptions of usage--> <!-- आधारभूत जानकारी -->| name = | other_name = Taplejung | native_name = སྟབས་ལས་རྫོང | nickname = Taplejong | settlement_type = སྟབས་ལས་རྫོང་གྲོང་ཁྱེར | motto = <!-- images and maps --> | image_skyline = Phungling.JPG | image_caption = | image_flag = | image_seal = | image_map = | pushpin_label_position = bottom | pushpin_map_caption = | pushpin_map = ताप्लेजुङ जिल्ला#कोशी प्रदेश#नेपाल <!-- अवस्थिति--> | subdivision_type = [[देश]] | subdivision_name = {{झण्डा|नेपाल}} | subdivision_type1 = [[नेपालका प्रदेशहरू|प्रदेश]] | subdivision_name1 = [[कोशी प्रदेश]] | subdivision_type2 = [[नेपालका जिल्लाहरू|जिल्ला]] | subdivision_name2 = [[ताप्लेजुङ जिल्ला|ताप्लेजुङ]] |<!-- राजनीति--> | government_footnotes =<ref name="निर्वाचन २०७९">{{cite news|title=स्थानीय तह निर्वाचन २०७९|url=https://localelection2079.ekantipur.com/pradesh-1/district-taplejung/phungling?lng=nep|accessdate=०९ साउन २०८१|language=नेपाली|publisher=कान्तिपुर दैनिक}}</ref> | government_type = | leader_title = नगरप्रमुख | leader_name = अमिर मादेन <small> ([[नेपाली काङ्ग्रेस|ने.का.]]) | leader_title1 = उपप्रमुख | leader_name1 = भीमादेवी ओझा <small> ([[नेपाल कम्युनिस्ट पार्टी (एकीकृत मार्क्सवादी-लेनिनवादी)|नेकपा (एमाले)]]) | established_title = स्थापित | established_date = २०७१ वैशाख २५ | unit_pref = <!--Enter: Imperial, if Imperial (metric) is desired--> | area_footnotes = | area_total_km2 = 125.57<!-- ALL fields dealing with a measurements are subject to automatic unit conversion--> |population_as_of = [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|राष्ट्रिय जनगणना २०७८]] |population_footnotes =<ref name="जनगणना २०७८">{{cite web |title=जनसङ्ख्याको आकार र वितरण|url=https://censusnepal.cbs.gov.np/results/np/population?province=1&district=1&municipality=6|accessdate=२९ जेठ २०८१|work=राष्ट्रिय जनगणना २०७८|publisher=[[राष्ट्रिय तथ्याङ्क कार्यालय (नेपाल)|राष्ट्रिय तथ्याङ्क कार्यालय]]|language=नेपाली}}</ref> | population_total = 28449 | population_density_km2 = auto | population_blank1_title = Ethnicities <!-- साधारण जानकारी -->| timezone = [[नेपालको प्रमाणिक समय|नेपाली समय]] | utc_offset = +५:४५ | timezone_DST = | utc_offset_DST = | coordinates = {{coord|27|21|23|N|87|40|13|E|type:city_region:NP|display=inline,title}} | elevation_footnotes = <!--for references: use <ref> </ref> tags--> | elevation_m = <!-- Area/postal codes & others --> | postal_code_type = | postal_code = | area_code = +९७७-०२४ | blank_name = केन्द्र | blank_info = साविक [[फुङलिङ नगरपालिका|फुङलिङ]] गाविसको कार्यालय | website = [https://phunglingmun.gov.np आधिकारिक वेबसाइट] | footnotes = }} '''फुङलिङ''' [[नेपाल]]को [[कोशी प्रदेश]]को [[ताप्लेजुङ जिल्ला]]मा अवस्थित एक नगरपलिका हो।<ref>{{cite web|url=http://www.ekantipur.com/kantipur/news/news-detail.php?news_id=247268|title=थप ४१ नगरपालिका घोषणा|publisher='''[[कान्तिपुर दैनिक]]'''}}</ref> ताप्लेजुङ जिल्लाको सदरमुकाम फुङलिङ बजार यसै नगरपालिकामा रहेको छ। २०७१ वैशाख २५ मा, नगरपालिका घोषणा गर्दा साविकको [[दोखु]] र फुङलिङ गाविसहरूलाई समावेश गरेर '''ताप्लेजुङ नगरपालिका''' बनाइएको थियो भने २७ फागुन २०७३ मा, नगरपालिकाको क्षेत्रविस्तार गर्दा साविकका [[फुरुम्बु]], [[फावाखोला]], [[हाङ्गदेवा]] गाउँ विकास समितिहरूलाई समेटेर '''फुङलिङ नगरपालिका''' बनाइएको थियो।<ref name="गाउँपालिका र नगरपालिका (सूची)">{{cite news|title=गाउँपालिका र नगरपालिका कुन जिल्लामा कति? (सूची)|url=http://lokaantar.com/taja_samachar/2084|accessdate=२३ पौष २०७३|publisher=लोकान्तर|date=२३ पौष २०७३|ref=http://lokaantar.com/taja_samachar/2084}}</ref> यस नगरपालिकालाई ८ [[वडा]]मा विभाजन गरिएको छ। यसको क्षेत्रफल १२५.५७ वर्ग किलोमिटर रहेको छ। करिब १८२४ मिटर (५९८४ फिट)को उचाइमा अवस्थित उपयुक्त हावापानी तथा प्राकृतिक सुन्दरताले भरिपूर्ण यो नगरपालिका [[उतिस|उत्तिस]], [[सल्लो|सल्ला]] र [[गुराँस]]को जङ्गलले ढाकिएको छ। यस नगरपालिकाको केन्द्र साविकको ताप्लेजुङ नगरपालिकाको कार्यालयमा राखिएको छ।<ref>{{cite web|title=स्थानीय तहहरूको विवरण|url=http://www.mofald.gov.np/ne/nepal-nagarpalika-gaupalika-list|website=सङ्घीय मामिला तथा स्थानीय विकास मन्त्रालय|publisher=[[नेपाल सरकार]]|accessdate=२०७३ फाल्गुण २७}} {{Webarchive|url=https://web.archive.org/web/20190317214821/http://mofald.gov.np/ne/nepal-nagarpalika-gaupalika-list |date=2019-03-17 }}</ref> == शब्दोपत्ति == फुङलिङ भन्नाले [[लिम्बू भाषा]] मा 'फूलैफूलको ठाउँ' भन्ने बुझिन्छ। ==जनसङ्ख्या== [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|राष्ट्रिय जनगणना २०७८]]को जनगणना अनुसार {{पृष्ठको नाम}}को कुल जनसङ्ख्या २८,४४९ रहेको छ भने यहाँ ६,८९८ घरधुरी रहेका छन्।<ref name="जनगणना २०७८"/> == वडागत विभाजन र जनसङ्ख्या == नेपालको [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|बाह्रौँ राष्ट्रिय जनगणना, २०७८]] अनुसार फुङ्लिङ नगरपालिकाको कुल जनसङ्ख्या २८,४४९ रहेको छ। यस नगरपालिकालाई ११ वटा वडाहरूमा विभाजन गरिएको छ। नगरपालिकाको वडागत विवरण, क्षेत्रफल र जनघनत्वको विस्तृत तथ्याङ्क तलको तालिकामा दिइएको छ: {| class="wikitable sortable" style="text-align:center" |+ फुङ्लिङ नगरपालिकाको वडागत विभाजन, जनसङ्ख्या र जनघनत्व (२०७८) |- ! वडा नं. !! समावेश साविकका वडाहरू/गाविसहरू !! जनसङ्ख्या (२०७८) !! क्षेत्रफल (वर्ग कि.मी.) !! जनघनत्व (व्यक्ति/वर्ग कि.मी.) |- | १ || [[फुङलिङ]] (८-९) || १,२१३ || ५.९० || २०५.५९ |- | २ || [[फुङलिङ]] (१,३) || ३,७११ || ४.२१ || ८८१.४७ |- | ३ || [[फुङलिङ]] (२) || २,७८२ || ८.३५ || ३३३.१७ |- | ४ || [[फुङलिङ]] (४) || ४,१०३ || १.१३ || ३,६३०.९७ |- | ५ || [[फुङलिङ]] (५) || २,०८१ || १.१५ || १,८०९.५७ |- | ६ || [[फुङलिङ]] (६,७) || ३,०७१ || ३.४२ || ८९७.९५ |- | ७ || [[दोखु]] (१,८-९) || १,७१३ || ४.०२ || ४२६.१२ |- | ८ || [[दोखु]] (२-५,६-७) || २,३७७ || १३.९१ || १७०.८८ |- | ९ || [[हाङदेवा]] || ३,५८४ || २३.६६ || १५१.४८ |- | १० || [[फुरुम्बु]] || २,४५३ || २८.४३ || ८६.२८ |- | ११ || [[फावाखोला]] || १,३६१ || ३१.३८ || ४३.३७ |- ! colspan="2" | जम्मा !! २८,४४९ !! १२५.५६ !! २२६.५८ |} == पर्यटकीय गन्तव्यहरू == यहाँ रहेको [[पाथीभरा देवी (ताप्लेजुङ)|पाथीभरा]] देवीको मन्दिरमा आन्तरिक तथा बाह्य भक्तजन तथा पर्यटकहरूको घुइचो लाग्ने गर्दछ। == व्यापार == करिब २ किलोमिटर लामो फुङलिङ नगरपालिका हिमाली दुर्गम सदरमुकाम भए पनि यहाँ फेन्सी मालसमान पाइने गर्छ। यहाँ तिब्बती क्षेत्रबाट आयात गरिएका धुलो दुध, सावरको जुत्ता, गलैंचा जस्ता गुणस्तरीय सामानहरू पाइन्छन्। जिल्लाको प्रमुख व्यापारिक केन्द्रको रूपमा मानिने फुङलिङ नगरपालिकामा बाटोका दुवै तिर घरहरू छन। साविकको [[दोखु]] र फुङलिङ गाविसको सिमानामा पर्ने तोक्मे डाँडामा शनिबार र मङ्गलबार हाट बजार लाग्ने गर्छ। हावापानी ठण्डा हुनेभएकोले यहाँको बजारमा राँगा, खसी, कुखुरा र बङ्गुरको मासु र जाँड, रक्सी बढी मात्रामा बिक्री हुन्छ। यहाँ [[तोङवा]] प्रचलन धेरै लोकप्रिय छ। यहाँको [[छुर्पी]], [[अलैँची|अलैंची]], [[गलैँचा|गलैंचा]], [[ढाका]] [[कपडा]], [[जडीबुटी]] आदि प्रसिद्ध छन्। ==सन्दर्भ सामग्रीहरू== {{सन्दर्भसूची}} ==बाह्य कडीहरू== *[http://ddctaplejung.gov.np/ जिल्ला समन्वय समितिको कार्यालय, ताप्लेजुङ, नेपाल] {{Webarchive|url=https://web.archive.org/web/20171018203403/http://ddctaplejung.gov.np/ |date=2017-10-18 }} {{ताप्लेजुङ जिल्लाका स्थानीय तहहरू}} [[श्रेणी:नेपालका जिल्ला सदरमुकामहरू]] [[श्रेणी:ताप्लेजुङ जिल्लाका ठाउँहरू]] [[श्रेणी:वि.सं. २०७१ मा घोषित नगरपालिकाहरू]] [[श्रेणी:कोशी प्रदेशका नगरपालिकाहरू]] m2y0m49jjvldzvnxe5xitwhv6zsumnf मोड्युल:Coordinates 828 55244 1372315 1325456 2026-08-25T15:13:34Z पर्वत सुवेदी 31224 परिक्षण 1372315 Scribunto text/plain --[[ This module is intended to replace the functionality of {{Coord}} and related templates. It provides several methods, including {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local convert = require( "Module:Numeral converter" ).convert; local coordinates = {}; local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true); local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = 'https://geohack.toolforge.org/geohack.php?pagename=' .. page_name .. '&params=' --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(coords) return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span id="coordinates">[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्कहरू]]: ' .. coords .. '</span>' } end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Coord' }) return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do result = result .. '<strong class="error">Coordinates: ' .. v[2] .. '</strong><br />' end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ Helper function to convert English direction to Devanagari ]] local function devanagariChars(enChar) if enChar == "W" or enChar == "w" then return "प" elseif enChar == "N" or enChar == "n" then return "उ" elseif enChar == "S" or enChar == "s" then return "द" elseif enChar == "E" or enChar == "e" then return "पू" end return enChar end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "ERROR param was empty" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्साहरू, हवाइ तस्विरहरू, र अन्य तस्विरहरू">' .. '<span class="latitude">' .. convert("ne", coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. convert("ne", coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then geodeclat = convert("ne", tostring(coordinateSpec["dec-lat"]):sub(2)) .. "°" .. devanagariChars("S") else geodeclat = convert("ne", tostring(coordinateSpec["dec-lat"] or 0)) .. "°" .. devanagariChars("N") end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then geodeclong = convert("ne", tostring(coordinateSpec["dec-long"]):sub(2)) .. "°" .. devanagariChars("W") else geodeclong = convert("ne", tostring(coordinateSpec["dec-long"] or 0)) .. "°" .. devanagariChars("E") end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्साहरू, हवाइ तस्वीरहरू, र अन्य तस्वीरहरू">' .. geodeclat .. ' ' .. geodeclong .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end local stylesheetLink = 'Module:Coordinates' .. ( isSandbox and '/sandbox' or '' ) .. '/styles.css' return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = stylesheetLink } } .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. ' ' .. inner .. ']</span>' .. '[[Category:Pages using gadget WikiMiniAtlas]]' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "latitude degrees < 0 with hemisphere flag"}) end if long_d < 0 then table.insert(errors, {source, "longitude degrees < 0 with hemisphere flag"}) end end if lat_d > 90 then table.insert(errors, {source, "latitude degrees > 90"}) end if lat_d < -90 then table.insert(errors, {source, "latitude degrees < -90"}) end if lat_m >= 60 then table.insert(errors, {source, "latitude minutes >= 60"}) end if lat_m < 0 then table.insert(errors, {source, "latitude minutes < 0"}) end if lat_s >= 60 then table.insert(errors, {source, "latitude seconds >= 60"}) end if lat_s < 0 then table.insert(errors, {source, "latitude seconds < 0"}) end if long_d >= 360 then table.insert(errors, {source, "longitude degrees >= 360"}) end if long_d <= -360 then table.insert(errors, {source, "longitude degrees <= -360"}) end if long_m >= 60 then table.insert(errors, {source, "longitude minutes >= 60"}) end if long_m < 0 then table.insert(errors, {source, "longitude minutes < 0"}) end if long_s >= 60 then table.insert(errors, {source, "longitude seconds >= 60"}) end if long_s < 0 then table.insert(errors, {source, "longitude seconds < 0"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "Missing longitude"}} elseif not tonumber(long) then return nil, {{"parseDec", "Longitude could not be parsed as a number: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, "उ", "द", mode) coordinateSpec["dms-long"] = convert_dec2dms( long, "पू", "प", mode) if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "Missing longitude" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "Longitude could not be parsed as a number:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. devanagariChars(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. devanagariChars(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then return errorPrinter( {{"formatTest", "Missing latitude"}} ) elseif not tonumber(args[1]) then return errorPrinter( {{"formatTest", "Unable to parse latitude as a number:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else return errorPrinter({{"formatTest", "Unknown argument format"}}) .. '[[Category:Pages with malformed coordinate tags]]' end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'Parameter: "' .. v .. '=" should be "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[Category:Pages with malformed coordinate tags]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then ret = 'Coordinates on Wikidata' elseif snaktype == 'somevalue' then ret = 'Coordinates on Wikidata set to unknown value' elseif snaktype == 'novalue' then ret = 'Coordinates on Wikidata set to no value' end else ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[Category:%s]]', ret) else return '' end end function coordinates.link(frame) return coord_link; end coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. '<span class="geo-inline">' .. contents .. Notes .. '</span>' end if isInTitle(Display) then if not isInline(Display) then text = text .. '<span class="geo-inline-hidden noexcerpt">' .. contents .. Notes .. '</span>' end text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'testcases' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end function coordinates._coord2text(coord,type) if coord == '' or type == '' or not type then return nil end type = mw.text.trim(type) if type == 'lat' or type == 'long' then local result, negative = mw.text.split((mw.ustring.match(coord,'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ') if type == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end result = mw.text.split(result, '°') if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(coord, 'params=.-_' .. type .. ':(.-)[ _]') end end function coordinates.coord2text(frame) return coordinates._coord2text(frame.args[1],frame.args[2]) end function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3' ) frame.args[1] = mw.ustring.gsub( frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ' ) end end frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-inline[^"]*">(.+)</span>)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127', function (inline, coord) return inline .. displaytitle(coord) end ) return frame.args[1] end return coordinates cwp6kn1drvvpa3s0o2g59gwdkdfy8cm 1372316 1372315 2026-08-25T16:03:46Z पर्वत सुवेदी 31224 Restored revision 1325455 by [[Special:Contributions/पर्वत सुवेदी|पर्वत सुवेदी]] ([[User talk:पर्वत सुवेदी|talk]]) 1372316 Scribunto text/plain --[[ This module is intended to replace the functionality of {{Coord}} and related templates. It provides several methods, including {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true); local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = 'https://geohack.toolforge.org/geohack.php?pagename=' .. page_name .. '&params=' --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(coords) return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span id="coordinates">[[Geographic coordinate system|Coordinates]]: ' .. coords .. '</span>' } end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Coord' }) return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do result = result .. '<strong class="error">Coordinates: ' .. v[2] .. '</strong><br />' end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "ERROR param was empty" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="Maps, aerial photos, and other data for this location">' .. '<span class="latitude">' .. coordinateSpec["dms-lat"] .. '</span> ' .. '<span class="longitude">' ..coordinateSpec["dms-long"] .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "°S" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "°N" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "°W" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "°E" end local geodechtml = '<span class="geo-dec" title="Maps, aerial photos, and other data for this location">' .. geodeclat .. ' ' .. geodeclong .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end local stylesheetLink = 'Module:Coordinates' .. ( isSandbox and '/sandbox' or '' ) .. '/styles.css' return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = stylesheetLink } } .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. ' ' .. inner .. ']</span>' .. '[[Category:Pages using gadget WikiMiniAtlas]]' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "latitude degrees < 0 with hemisphere flag"}) end if long_d < 0 then table.insert(errors, {source, "longitude degrees < 0 with hemisphere flag"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "longitude degrees > 180 with hemisphere flag"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "latitude degrees > 90"}) end if lat_d < -90 then table.insert(errors, {source, "latitude degrees < -90"}) end if lat_m >= 60 then table.insert(errors, {source, "latitude minutes >= 60"}) end if lat_m < 0 then table.insert(errors, {source, "latitude minutes < 0"}) end if lat_s >= 60 then table.insert(errors, {source, "latitude seconds >= 60"}) end if lat_s < 0 then table.insert(errors, {source, "latitude seconds < 0"}) end if long_d >= 360 then table.insert(errors, {source, "longitude degrees >= 360"}) end if long_d <= -360 then table.insert(errors, {source, "longitude degrees <= -360"}) end if long_m >= 60 then table.insert(errors, {source, "longitude minutes >= 60"}) end if long_m < 0 then table.insert(errors, {source, "longitude minutes < 0"}) end if long_s >= 60 then table.insert(errors, {source, "longitude seconds >= 60"}) end if long_s < 0 then table.insert(errors, {source, "longitude seconds < 0"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "Missing longitude"}} elseif not tonumber(long) then return nil, {{"parseDec", "Longitude could not be parsed as a number: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, "N", "S", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, "E", "W", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "Missing longitude" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "Longitude could not be parsed as a number:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. lat_f coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. long_f coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "Missing latitude"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "Unable to parse latitude as a number:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "Unknown argument format"}}) .. '[[Category:Pages with malformed coordinate tags]]' end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'Parameter: "' .. v .. '=" should be "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[Category:Pages with malformed coordinate tags]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'Coordinates on Wikidata' elseif snaktype == 'somevalue' then ret = 'Coordinates on Wikidata set to unknown value' elseif snaktype == 'novalue' then ret = 'Coordinates on Wikidata set to no value' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'Coordinates not on Wikidata' end end if ret then return string.format('[[Category:%s]]', ret) else return '' end end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' -- it and ti are short for inline,title and title,inline local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. '<span class="geo-inline">' .. contents .. Notes .. '</span>' end if isInTitle(Display) then -- Add to output since indicator content is invisible to Lua later on if not isInline(Display) then text = text .. '<span class="geo-inline-hidden noexcerpt">' .. contents .. Notes .. '</span>' end text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'testcases' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are: lat (signed integer), long (signed integer), type, scale, dim, region, globe, source ]] function coordinates._coord2text(coord,type) if coord == '' or type == '' or not type then return nil end type = mw.text.trim(type) if type == 'lat' or type == 'long' then local result, negative = mw.text.split((mw.ustring.match(coord,'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ') if type == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end result = mw.text.split(result, '°') if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(coord, 'params=.-_' .. type .. ':(.-)[ _]') end end function coordinates.coord2text(frame) return coordinates._coord2text(frame.args[1],frame.args[2]) end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) -- for the 2nd or later integer parameter (the first is the coord template, as above) for i, v in ipairs(frame.args) do if i ~= 1 then -- if we cannot find in the coord_template the i_th coordinsert parameter e.g. region if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then -- find from the params= up to the first possibly-present underscore -- and append the i_th coordinsert parameter and a space -- IDK why we're adding a space but it does seem somewhat convenient frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then -- if we can't find the vcard class if not mw.ustring.find(frame.args[1], '<span class="vcard">') then -- take something that looks like a coord template and add the vcard span with class and fn org class local namestr = frame.args.name frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3' ) -- then find anything from coordinates parameters to the 'end' and attach the title parameter frame.args[1] = mw.ustring.gsub( frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ' ) end end -- replace the existing indicator with a new indicator using the modified content frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-inline[^"]*">(.+)</span>)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127', function (inline, coord) return inline .. displaytitle(coord) end ) return frame.args[1] end return coordinates g0kvlzvbowr8hudeh9ex9bf1dawsj3q 1372317 1372316 2026-08-25T16:16:46Z पर्वत सुवेदी 31224 1372317 Scribunto text/plain --[[ नेपालीमा सही नतिजा दिन यहाँ केही परिवर्तनहरू गरिएका छन्। कृपया यसलाई अद्यावधिक गर्दा सावधान रहनुहोस्। नतिजाहरू नेपालीमा छन् र तपाईले इनपुटको रूपमा नेपाली सङ्ख्याहरू दिए पनि मोड्युलले काम गर्छ भनी सुनिश्चित गर्नुहोस्। {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = '//geohack.toolforge.org/geohack.php?language=ne&pagename=' .. page_name .. '&params=' local templatestyles = 'Module:Coordinates/styles.css' local function direction2ne(text) text = text:gsub('[NSEW]', { N = ' उत्तर', S = ' दक्षिण', E = ' पूर्व', W = ' पश्चिम', }) return text end local function translate2ne(text) text = text:gsub('%d', { ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', }) return text end local function translate2en(text) text = mw.ustring.gsub(text, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) text = text :gsub(' *उत्तर', 'N') :gsub(' *दक्षिण', 'S') :gsub(' *पूर्व', 'E') :gsub(' *पश्चिम', 'W') return text end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(s, notes) local l = "[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: " .. s local co = '<span id="coordinates">' .. l .. notes .. '</span>' return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span style="font-size: small;">' .. co .. '</span>' }; end --[[ Helper function, Replacement for {{coord/display/inline}} ]] local function displayinline(s, notes) return s .. notes end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Module:coordinates' -- TODO should this use the ne name? check Module:Arguments }) for k, v in pairs(args) do args[k] = translate2en(v) end return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do local errorHTML = '<strong class="error">coordinates: ' .. v[2] .. '</strong>' result = result .. errorHTML .. "<br />" end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "त्रुटि param खाली" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. '<span class="latitude">' .. translate2ne(coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. translate2ne(coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "° दक्षिण" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "° उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "° पश्चिम" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "° पूर्व" end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. translate2ne(geodeclat) .. ' ' .. translate2ne(geodeclong) .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. '<span class="plainlinks nourlexpansion">' .. '[' .. coord_link .. uriComponents .. ' ' .. inner .. ']' .. '</span>' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "गोलार्ध झण्डाहरू सहित अक्षांश डिग्री < ০"}) end if long_d < 0 then table.insert(errors, {source, "गोलार्ध झण्डाहरू सहित देशान्तर डिग्री < ০"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "गोलार्ध झण्डाहरू सहित देशान्तर डिग्री > ১৮০"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "अक्षांश डिग्री > ৯০"}) end if lat_d < -90 then table.insert(errors, {source, "अक्षांश डिग्री < -৯০"}) end if lat_m >= 60 then table.insert(errors, {source, "अक्षांश मिनेट >= ৬০"}) end if lat_m < 0 then table.insert(errors, {source, "अक्षांश सेकेन्ड < ০"}) end if lat_s >= 60 then table.insert(errors, {source, "अक्षांश सेकेन्ड >= ৬০"}) end if lat_s < 0 then table.insert(errors, {source, "अक्षांश सेकेन्ड < ০"}) end if long_d >= 360 then table.insert(errors, {source, "देशान्तर डिग्री >= ৩৬০"}) end if long_d <= -360 then table.insert(errors, {source, "देशान्तर डिग्री <= -৩৬০"}) end if long_m >= 60 then table.insert(errors, {source, "देशान्तर डिग्री >= ৬০"}) end if long_m < 0 then table.insert(errors, {source, "देशान्तर डिग्री < ০"}) end if long_s >= 60 then table.insert(errors, {source, "देशान्तर डिग्री >= ৬০"}) end if long_s < 0 then table.insert(errors, {source, "देशान्तर डिग्री < ০"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "देशान्तर हराइरहेको छ"}} elseif not tonumber(long) then return nil, {{"parseDec", "देशान्तरलाई सङ्ख्याको रूपमा पार्स गर्न सकिँदैन।: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, " उत्तर", " दक्षिण", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, " पूर्व", " पश्चिम", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "देशान्तर हराइरहेको छ" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "देशान्तरलाई सङ्ख्याको रूपमा पार्स गर्न सकिँदैन।:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. direction2ne(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. direction2ne(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "अक्षांश हराइरहेको छ।"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "अक्षांशलाई संख्याको रूपमा पार्स गर्न असफल भयो।:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'थप अनपेक्षित प्यारामिटरहरू'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'थप अनपेक्षित प्यारामिटरहरू'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'थप अनपेक्षित प्यारामिटरहरू'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "अज्ञात तर्क ढाँचा"}}) end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'प्यारामिटर: "' .. v .. '=" हुनुपर्छ "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[श्रेणी:अमान्य स्थान चिनो भएका पृष्ठहरू]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'विकिडाटामा निर्देशाङ्कहरू छन्।' elseif snaktype == 'somevalue' then ret = 'अज्ञात भनेको विकिडेटामा निर्देशाङ्कहरू सेट गरिएका छन्।' elseif snaktype == 'novalue' then ret = 'जसको अर्थ विकिडेटामा निर्देशाङ्कहरू निर्दिष्ट गरिएका छैनन्।' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[বিষয়শ্রেণী:%s]]', ret) else return '' end end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. displayinline(contents, Notes) end if isInTitle(Display) then text = text .. displaytitle(contents, Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'নথি' and page_title.subpageText ~= 'পরীক্ষা পাতা' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are strings: lat, long, type, scale, dim, region, globe, source ]] function coordinates.coord2text(frame) local coord = mw.text.trim(frame.args[1] or '') local param = mw.text.trim(frame.args[2] or '') if coord == '' or param == '' then return nil end coord = translate2en(coord) if param == 'lat' or param == 'long' then local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if param == 'long' then value, direction = long, ew end value = tonumber(value) if value then if direction == 'S' or direction == 'W' then value = -value end return tostring(value) end return nil else return coord:match('params=.-_'..param..':(.-)[ _]') end end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub(frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3') frame.args[1] = mw.ustring.gsub(frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ') end end return frame.args[1] end return coordinates ntxjmdn0g05ya2lkkv71arnfucfgwnx 1372318 1372317 2026-08-25T16:57:25Z पर्वत सुवेदी 31224 Restored revision 1372315 by [[Special:Contributions/पर्वत सुवेदी|पर्वत सुवेदी]] ([[User talk:पर्वत सुवेदी|talk]]) 1372318 Scribunto text/plain --[[ This module is intended to replace the functionality of {{Coord}} and related templates. It provides several methods, including {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local convert = require( "Module:Numeral converter" ).convert; local coordinates = {}; local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true); local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = 'https://geohack.toolforge.org/geohack.php?pagename=' .. page_name .. '&params=' --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(coords) return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span id="coordinates">[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्कहरू]]: ' .. coords .. '</span>' } end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Coord' }) return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do result = result .. '<strong class="error">Coordinates: ' .. v[2] .. '</strong><br />' end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ Helper function to convert English direction to Devanagari ]] local function devanagariChars(enChar) if enChar == "W" or enChar == "w" then return "प" elseif enChar == "N" or enChar == "n" then return "उ" elseif enChar == "S" or enChar == "s" then return "द" elseif enChar == "E" or enChar == "e" then return "पू" end return enChar end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "ERROR param was empty" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्साहरू, हवाइ तस्विरहरू, र अन्य तस्विरहरू">' .. '<span class="latitude">' .. convert("ne", coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. convert("ne", coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then geodeclat = convert("ne", tostring(coordinateSpec["dec-lat"]):sub(2)) .. "°" .. devanagariChars("S") else geodeclat = convert("ne", tostring(coordinateSpec["dec-lat"] or 0)) .. "°" .. devanagariChars("N") end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then geodeclong = convert("ne", tostring(coordinateSpec["dec-long"]):sub(2)) .. "°" .. devanagariChars("W") else geodeclong = convert("ne", tostring(coordinateSpec["dec-long"] or 0)) .. "°" .. devanagariChars("E") end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्साहरू, हवाइ तस्वीरहरू, र अन्य तस्वीरहरू">' .. geodeclat .. ' ' .. geodeclong .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end local stylesheetLink = 'Module:Coordinates' .. ( isSandbox and '/sandbox' or '' ) .. '/styles.css' return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = stylesheetLink } } .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. ' ' .. inner .. ']</span>' .. '[[Category:Pages using gadget WikiMiniAtlas]]' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "latitude degrees < 0 with hemisphere flag"}) end if long_d < 0 then table.insert(errors, {source, "longitude degrees < 0 with hemisphere flag"}) end end if lat_d > 90 then table.insert(errors, {source, "latitude degrees > 90"}) end if lat_d < -90 then table.insert(errors, {source, "latitude degrees < -90"}) end if lat_m >= 60 then table.insert(errors, {source, "latitude minutes >= 60"}) end if lat_m < 0 then table.insert(errors, {source, "latitude minutes < 0"}) end if lat_s >= 60 then table.insert(errors, {source, "latitude seconds >= 60"}) end if lat_s < 0 then table.insert(errors, {source, "latitude seconds < 0"}) end if long_d >= 360 then table.insert(errors, {source, "longitude degrees >= 360"}) end if long_d <= -360 then table.insert(errors, {source, "longitude degrees <= -360"}) end if long_m >= 60 then table.insert(errors, {source, "longitude minutes >= 60"}) end if long_m < 0 then table.insert(errors, {source, "longitude minutes < 0"}) end if long_s >= 60 then table.insert(errors, {source, "longitude seconds >= 60"}) end if long_s < 0 then table.insert(errors, {source, "longitude seconds < 0"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "Missing longitude"}} elseif not tonumber(long) then return nil, {{"parseDec", "Longitude could not be parsed as a number: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, "उ", "द", mode) coordinateSpec["dms-long"] = convert_dec2dms( long, "पू", "प", mode) if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "Missing longitude" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "Longitude could not be parsed as a number:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. devanagariChars(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. devanagariChars(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then return errorPrinter( {{"formatTest", "Missing latitude"}} ) elseif not tonumber(args[1]) then return errorPrinter( {{"formatTest", "Unable to parse latitude as a number:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else return errorPrinter({{"formatTest", "Unknown argument format"}}) .. '[[Category:Pages with malformed coordinate tags]]' end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'Parameter: "' .. v .. '=" should be "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[Category:Pages with malformed coordinate tags]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then ret = 'Coordinates on Wikidata' elseif snaktype == 'somevalue' then ret = 'Coordinates on Wikidata set to unknown value' elseif snaktype == 'novalue' then ret = 'Coordinates on Wikidata set to no value' end else ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[Category:%s]]', ret) else return '' end end function coordinates.link(frame) return coord_link; end coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. '<span class="geo-inline">' .. contents .. Notes .. '</span>' end if isInTitle(Display) then if not isInline(Display) then text = text .. '<span class="geo-inline-hidden noexcerpt">' .. contents .. Notes .. '</span>' end text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'testcases' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end function coordinates._coord2text(coord,type) if coord == '' or type == '' or not type then return nil end type = mw.text.trim(type) if type == 'lat' or type == 'long' then local result, negative = mw.text.split((mw.ustring.match(coord,'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ') if type == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end result = mw.text.split(result, '°') if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(coord, 'params=.-_' .. type .. ':(.-)[ _]') end end function coordinates.coord2text(frame) return coordinates._coord2text(frame.args[1],frame.args[2]) end function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3' ) frame.args[1] = mw.ustring.gsub( frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ' ) end end frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-inline[^"]*">(.+)</span>)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127', function (inline, coord) return inline .. displaytitle(coord) end ) return frame.args[1] end return coordinates cwp6kn1drvvpa3s0o2g59gwdkdfy8cm 1372319 1372318 2026-08-25T16:59:09Z पर्वत सुवेदी 31224 Restored revision 1286066 by [[Special:Contributions/पर्वत सुवेदी|पर्वत सुवेदी]] ([[User talk:पर्वत सुवेदी|talk]]) 1372319 Scribunto text/plain --[[ This module is intended to replace the functionality of {{Coord}} and related templates. It provides several methods, including {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local convert = require( "Module:Numeral converter" ).convert; local coordinates = {}; local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true); local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = 'https://geohack.toolforge.org/geohack.php?pagename=' .. page_name .. '&params=' --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(coords) return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span id="coordinates">[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्कहरू]]: ' .. coords .. '</span>' } end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Coord' }) return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do result = result .. '<strong class="error">Coordinates: ' .. v[2] .. '</strong><br />' end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "ERROR param was empty" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्साहरू, हवाइ तस्विरहरू, र अन्य तस्विरहरू">' .. '<span class="latitude">' .. convert("ne", coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. convert("ne", coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "°S" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "°N" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "°W" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "°E" end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्साहरू, हवाइ तस्विरहरू, र अन्य तस्विरहरू">' .. geodeclat .. ' ' .. geodeclong .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end local stylesheetLink = 'Module:Coordinates' .. ( isSandbox and '/sandbox' or '' ) .. '/styles.css' return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = stylesheetLink } } .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. ' ' .. inner .. ']</span>' .. '[[Category:Pages using gadget WikiMiniAtlas]]' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "latitude degrees < 0 with hemisphere flag"}) end if long_d < 0 then table.insert(errors, {source, "longitude degrees < 0 with hemisphere flag"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "longitude degrees > 180 with hemisphere flag"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "latitude degrees > 90"}) end if lat_d < -90 then table.insert(errors, {source, "latitude degrees < -90"}) end if lat_m >= 60 then table.insert(errors, {source, "latitude minutes >= 60"}) end if lat_m < 0 then table.insert(errors, {source, "latitude minutes < 0"}) end if lat_s >= 60 then table.insert(errors, {source, "latitude seconds >= 60"}) end if lat_s < 0 then table.insert(errors, {source, "latitude seconds < 0"}) end if long_d >= 360 then table.insert(errors, {source, "longitude degrees >= 360"}) end if long_d <= -360 then table.insert(errors, {source, "longitude degrees <= -360"}) end if long_m >= 60 then table.insert(errors, {source, "longitude minutes >= 60"}) end if long_m < 0 then table.insert(errors, {source, "longitude minutes < 0"}) end if long_s >= 60 then table.insert(errors, {source, "longitude seconds >= 60"}) end if long_s < 0 then table.insert(errors, {source, "longitude seconds < 0"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "Missing longitude"}} elseif not tonumber(long) then return nil, {{"parseDec", "Longitude could not be parsed as a number: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, "N", "S", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, "E", "W", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "Missing longitude" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "Longitude could not be parsed as a number:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end local function devanagariChars(enChar) if enChar == "W" then return "प" elseif enChar == "N" then return "उ" elseif enChar == "S" then return "द" elseif enChar == "E" then return "पू" end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. devanagariChars(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. devanagariChars(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "Missing latitude"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "Unable to parse latitude as a number:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "Unknown argument format"}}) .. '[[Category:Pages with malformed coordinate tags]]' end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'Parameter: "' .. v .. '=" should be "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[Category:Pages with malformed coordinate tags]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'Coordinates on Wikidata' elseif snaktype == 'somevalue' then ret = 'Coordinates on Wikidata set to unknown value' elseif snaktype == 'novalue' then ret = 'Coordinates on Wikidata set to no value' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[Category:%s]]', ret) else return '' end end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' -- it and ti are short for inline,title and title,inline local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. '<span class="geo-inline">' .. contents .. Notes .. '</span>' end if isInTitle(Display) then -- Add to output since indicator content is invisible to Lua later on if not isInline(Display) then text = text .. '<span class="geo-inline-hidden noexcerpt">' .. contents .. Notes .. '</span>' end text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'testcases' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are: lat (signed integer), long (signed integer), type, scale, dim, region, globe, source ]] function coordinates._coord2text(coord,type) if coord == '' or type == '' or not type then return nil end type = mw.text.trim(type) if type == 'lat' or type == 'long' then local result, negative = mw.text.split((mw.ustring.match(coord,'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ') if type == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end result = mw.text.split(result, '°') if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(coord, 'params=.-_' .. type .. ':(.-)[ _]') end end function coordinates.coord2text(frame) return coordinates._coord2text(frame.args[1],frame.args[2]) end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) -- for the 2nd or later integer parameter (the first is the coord template, as above) for i, v in ipairs(frame.args) do if i ~= 1 then -- if we cannot find in the coord_template the i_th coordinsert parameter e.g. region if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then -- find from the params= up to the first possibly-present underscore -- and append the i_th coordinsert parameter and a space -- IDK why we're adding a space but it does seem somewhat convenient frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then -- if we can't find the vcard class if not mw.ustring.find(frame.args[1], '<span class="vcard">') then -- take something that looks like a coord template and add the vcard span with class and fn org class local namestr = frame.args.name frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3' ) -- then find anything from coordinates parameters to the 'end' and attach the title parameter frame.args[1] = mw.ustring.gsub( frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ' ) end end -- replace the existing indicator with a new indicator using the modified content frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-inline[^"]*">(.+)</span>)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127', function (inline, coord) return inline .. displaytitle(coord) end ) return frame.args[1] end return coordinates llrmsz0a3jn4nctvv7wxw20jhc2tvdl 1372339 1372319 2026-08-26T03:20:11Z पर्वत सुवेदी 31224 1372339 Scribunto text/plain --[[ বাংলায় ঠিক মত ফলাফল দেয়ার জন্য এখানে কিছু পরিবর্তন করা হয়েছে। এটি হালনাগাদ করার সময় অবশ্যই সতর্কতা অবলম্বন করুন। খেয়াল রাখুন ফলাফল যেন বাংলায় আসে ও ইনপুট হিসেবে বাংলা সংখ্যা দিলেও যেন মডিউল কাজ করে। {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = '//geohack.toolforge.org/geohack.php?language=bn&pagename=' .. page_name .. '&params=' local templatestyles = 'Module:Coordinates/styles.css' local function direction2bn(text) text = text:gsub('[NSEW]', { N = ' उत्तर', S = ' दक्षिण', E = ' पूर्व', W = ' पश्चिम', }) return text end local function translate2bn(text) text = text:gsub('%d', { ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', }) return text end local function translate2en(text) text = mw.ustring.gsub(text, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) text = text :gsub(' *उत्तर', 'N') :gsub(' *दक्षिण', 'S') :gsub(' *पूर्व', 'E') :gsub(' *पश्चिम', 'W') return text end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(s, notes) local l = "[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: " .. s local co = '<span id="coordinates">' .. l .. notes .. '</span>' return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span style="font-size: small;">' .. co .. '</span>' }; end --[[ Helper function, Replacement for {{coord/display/inline}} ]] local function displayinline(s, notes) return s .. notes end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'ढाँचा:Coordinates' -- TODO should this use the bn name? check Module:Arguments }) for k, v in pairs(args) do args[k] = translate2en(v) end return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do local errorHTML = '<strong class="error">निर्देशाङ्क: ' .. v[2] .. '</strong>' result = result .. errorHTML .. "<br />" end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "त्रुटि param खाली" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="এই অবস্থানের জন্য মানচিত্র, আকাশ থেকে তোলা চিত্র, এবং অন্যান্য তথ্য">' .. '<span class="latitude">' .. translate2bn(coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. translate2bn(coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "° दक्षिण" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "° उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "° पश्चिम" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "° पूर्व" end local geodechtml = '<span class="geo-dec" title="এই অবস্থানের জন্য মানচিত্র, আকাশ থেকে তোলা চিত্র, এবং অন্যান্য তথ্য">' .. translate2bn(geodeclat) .. ' ' .. translate2bn(geodeclong) .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. '<span class="plainlinks nourlexpansion">' .. '[' .. coord_link .. uriComponents .. ' ' .. inner .. ']' .. '</span>' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ অক্ষাংশ ডিগ্রী < ০"}) end if long_d < 0 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী < ০"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী > ১৮০"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "অক্ষাংশ ডিগ্রী > ৯০"}) end if lat_d < -90 then table.insert(errors, {source, "অক্ষাংশ ডিগ্রী < -৯০"}) end if lat_m >= 60 then table.insert(errors, {source, "অক্ষাংশ মিনিট >= ৬০"}) end if lat_m < 0 then table.insert(errors, {source, "অক্ষাংশ মিনিট < ০"}) end if lat_s >= 60 then table.insert(errors, {source, "অক্ষাংশ সেকেন্ড >= ৬০"}) end if lat_s < 0 then table.insert(errors, {source, "অক্ষাংশ সেকেন্ড < ০"}) end if long_d >= 360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৩৬০"}) end if long_d <= -360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী <= -৩৬০"}) end if long_m >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_m < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end if long_s >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_s < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "দ্রাঘিমাংশ অনুপস্থিত"}} elseif not tonumber(long) then return nil, {{"parseDec", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, " उत्तर", " दक्षिण", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, " पूर्व", " पश्चिम", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "দ্রাঘিমাংশ অনুপস্থিত" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. direction2bn(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. direction2bn(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "অক্ষাংশ অনুপস্থিত"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "একটি নম্বর হিসাবে অক্ষাংশ পার্স করতে ব্যর্থ:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "অজানা আর্গুমেন্ট বিন্যাস"}}) end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'প্যারামিটার: "' .. v .. '=" হওয়া উচিত "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[বিষয়শ্রেণী:ত্রুটিপূর্ণ স্থানাঙ্ক ট্যাগ সম্বলিত পাতা]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'উইকিউপাত্তে স্থানাঙ্ক আছে' elseif snaktype == 'somevalue' then ret = 'অজানা মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়েছে' elseif snaktype == 'novalue' then ret = 'কোন মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়নি' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'উইকিউপাত্তে স্থানাঙ্ক নেই' end end if ret then return string.format('[[বিষয়শ্রেণী:%s]]', ret) else return '' end end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. displayinline(contents, Notes) end if isInTitle(Display) then text = text .. displaytitle(contents, Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'छैन' and page_title.subpageText ~= 'परिक्षण पृष्ठ' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are strings: lat, long, type, scale, dim, region, globe, source ]] function coordinates.coord2text(frame) local coord = mw.text.trim(frame.args[1] or '') local param = mw.text.trim(frame.args[2] or '') if coord == '' or param == '' then return nil end coord = translate2en(coord) if param == 'lat' or param == 'long' then local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if param == 'long' then value, direction = long, ew end value = tonumber(value) if value then if direction == 'S' or direction == 'W' then value = -value end return tostring(value) end return nil else return coord:match('params=.-_'..param..':(.-)[ _]') end end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub(frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3') frame.args[1] = mw.ustring.gsub(frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ') end end return frame.args[1] end return coordinates 1s4us32yvb3i8xa4wlycxrj562dx0n1 1372340 1372339 2026-08-26T03:23:52Z पर्वत सुवेदी 31224 1372340 Scribunto text/plain --[[ नेपालीमा सही नतिजा दिन यहाँ केही परिवर्तनहरू गरिएका छन्। कृपया यसलाई उद्यावधिक गर्दा सावधान रहनुहोस्। नतिजाहरू नेपालीमा छन् र तपाईले इनपुटको रूपमा नेपाली सङ्ख्याहरू दिए पनि मोड्युलले काम गर्छ भनी सुनिश्चित गर्नुहोस्। {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = '//geohack.toolforge.org/geohack.php?language=ne&pagename=' .. page_name .. '&params=' local templatestyles = 'Module:Coordinates/styles.css' local function direction2bn(text) text = text:gsub('[NSEW]', { N = ' उत्तर', S = ' दक्षिण', E = ' पूर्व', W = ' पश्चिम', }) return text end local function translate2bn(text) text = text:gsub('%d', { ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', }) return text end local function translate2en(text) text = mw.ustring.gsub(text, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) text = text :gsub(' *उत्तर', 'N') :gsub(' *दक्षिण', 'S') :gsub(' *पूर्व', 'E') :gsub(' *पश्चिम', 'W') return text end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(s, notes) local l = "[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: " .. s local co = '<span id="coordinates">' .. l .. notes .. '</span>' return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span style="font-size: small;">' .. co .. '</span>' }; end --[[ Helper function, Replacement for {{coord/display/inline}} ]] local function displayinline(s, notes) return s .. notes end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'ढाँचा:Coordinates' -- TODO should this use the ne name? check Module:Arguments }) for k, v in pairs(args) do args[k] = translate2en(v) end return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do local errorHTML = '<strong class="error">निर्देशाङ्क: ' .. v[2] .. '</strong>' result = result .. errorHTML .. "<br />" end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "त्रुटि param खाली" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. '<span class="latitude">' .. translate2bn(coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. translate2bn(coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "° दक्षिण" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "° उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "° पश्चिम" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "° पूर्व" end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. translate2bn(geodeclat) .. ' ' .. translate2bn(geodeclong) .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. '<span class="plainlinks nourlexpansion">' .. '[' .. coord_link .. uriComponents .. ' ' .. inner .. ']' .. '</span>' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ অক্ষাংশ ডিগ্রী < ০"}) end if long_d < 0 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী < ০"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী > ১৮০"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "অক্ষাংশ ডিগ্রী > ৯০"}) end if lat_d < -90 then table.insert(errors, {source, "অক্ষাংশ ডিগ্রী < -৯০"}) end if lat_m >= 60 then table.insert(errors, {source, "অক্ষাংশ মিনিট >= ৬০"}) end if lat_m < 0 then table.insert(errors, {source, "অক্ষাংশ মিনিট < ০"}) end if lat_s >= 60 then table.insert(errors, {source, "অক্ষাংশ সেকেন্ড >= ৬০"}) end if lat_s < 0 then table.insert(errors, {source, "অক্ষাংশ সেকেন্ড < ০"}) end if long_d >= 360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৩৬০"}) end if long_d <= -360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী <= -৩৬০"}) end if long_m >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_m < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end if long_s >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_s < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "দ্রাঘিমাংশ অনুপস্থিত"}} elseif not tonumber(long) then return nil, {{"parseDec", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, " उत्तर", " दक्षिण", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, " पूर्व", " पश्चिम", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "দ্রাঘিমাংশ অনুপস্থিত" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. direction2bn(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. direction2bn(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "অক্ষাংশ অনুপস্থিত"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "একটি নম্বর হিসাবে অক্ষাংশ পার্স করতে ব্যর্থ:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "অজানা আর্গুমেন্ট বিন্যাস"}}) end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'প্যারামিটার: "' .. v .. '=" হওয়া উচিত "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[श्रेणी:अमान्य स्थान चिनो भएका पृष्ठहरू]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'উইকিউপাত্তে স্থানাঙ্ক আছে' elseif snaktype == 'somevalue' then ret = 'অজানা মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়েছে' elseif snaktype == 'novalue' then ret = 'কোন মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়নি' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[श्रेणी:%s]]', ret) else return '' end end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. displayinline(contents, Notes) end if isInTitle(Display) then text = text .. displaytitle(contents, Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'छैन' and page_title.subpageText ~= 'परिक्षण पृष्ठ' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are strings: lat, long, type, scale, dim, region, globe, source ]] function coordinates.coord2text(frame) local coord = mw.text.trim(frame.args[1] or '') local param = mw.text.trim(frame.args[2] or '') if coord == '' or param == '' then return nil end coord = translate2en(coord) if param == 'lat' or param == 'long' then local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if param == 'long' then value, direction = long, ew end value = tonumber(value) if value then if direction == 'S' or direction == 'W' then value = -value end return tostring(value) end return nil else return coord:match('params=.-_'..param..':(.-)[ _]') end end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub(frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3') frame.args[1] = mw.ustring.gsub(frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ') end end return frame.args[1] end return coordinates 4a4atuatgtdc6wallny2cs4a3ztdrrb 1372342 1372340 2026-08-26T03:29:39Z पर्वत सुवेदी 31224 1372342 Scribunto text/plain --[[ नेपालीमा सही नतिजा दिन यहाँ केही परिवर्तनहरू गरिएका छन्। कृपया यसलाई उद्यावधिक गर्दा सावधान रहनुहोस्। नतिजाहरू नेपालीमा छन् र तपाईले इनपुटको रूपमा नेपाली सङ्ख्याहरू दिए पनि मोड्युलले काम गर्छ भनी सुनिश्चित गर्नुहोस्। {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = '//geohack.toolforge.org/geohack.php?language=ne&pagename=' .. page_name .. '&params=' local templatestyles = 'Module:Coordinates/styles.css' local function direction2bn(text) text = text:gsub('[NSEW]', { N = ' उत्तर', S = ' दक्षिण', E = ' पूर्व', W = ' पश्चिम', }) return text end local function translate2bn(text) text = text:gsub('%d', { ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', }) return text end local function translate2en(text) text = mw.ustring.gsub(text, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) text = text :gsub(' *उत्तर', 'N') :gsub(' *दक्षिण', 'S') :gsub(' *पूर्व', 'E') :gsub(' *पश्चिम', 'W') return text end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(s, notes) local l = "[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: " .. s local co = '<span id="coordinates">' .. l .. notes .. '</span>' return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span style="font-size: small;">' .. co .. '</span>' }; end --[[ Helper function, Replacement for {{coord/display/inline}} ]] local function displayinline(s, notes) return s .. notes end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'ढाँचा:Coordinates' -- TODO should this use the ne name? check Module:Arguments }) for k, v in pairs(args) do args[k] = translate2en(v) end return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do local errorHTML = '<strong class="error">निर्देशाङ्क: ' .. v[2] .. '</strong>' result = result .. errorHTML .. "<br />" end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "त्रुटि param खाली" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. '<span class="latitude">' .. translate2bn(coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. translate2bn(coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "° दक्षिण" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "° उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "° पश्चिम" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "° पूर्व" end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. translate2bn(geodeclat) .. ' ' .. translate2bn(geodeclong) .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. '<span class="plainlinks nourlexpansion">' .. '[' .. coord_link .. uriComponents .. ' ' .. inner .. ']' .. '</span>' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ অক্ষাংশ ডিগ্রী < ০"}) end if long_d < 0 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী < ০"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "গোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী > ১৮০"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "অক্ষাংশ ডিগ্রী > ৯০"}) end if lat_d < -90 then table.insert(errors, {source, "অক্ষাংশ ডিগ্রী < -৯০"}) end if lat_m >= 60 then table.insert(errors, {source, "অক্ষাংশ মিনিট >= ৬০"}) end if lat_m < 0 then table.insert(errors, {source, "অক্ষাংশ মিনিট < ০"}) end if lat_s >= 60 then table.insert(errors, {source, "অক্ষাংশ সেকেন্ড >= ৬০"}) end if lat_s < 0 then table.insert(errors, {source, "অক্ষাংশ সেকেন্ড < ০"}) end if long_d >= 360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৩৬০"}) end if long_d <= -360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী <= -৩৬০"}) end if long_m >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_m < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end if long_s >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_s < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "দ্রাঘিমাংশ অনুপস্থিত"}} elseif not tonumber(long) then return nil, {{"parseDec", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, " उत्तर", " दक्षिण", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, " पूर्व", " पश्चिम", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "দ্রাঘিমাংশ অনুপস্থিত" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. direction2bn(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. direction2bn(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "अक्षांश अनुपस्थित"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "একটি নম্বর হিসাবে অক্ষাংশ পার্স করতে ব্যর্থ:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'অতিরিক্ত অপ্রত্যাশিত প্যারামিটার'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "অজানা আর্গুমেন্ট বিন্যাস"}}) end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'প্যারামিটার: "' .. v .. '=" হওয়া উচিত "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[श्रेणी:अमान्य स्थान चिनो भएका पृष्ठहरू]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'উইকিউপাত্তে স্থানাঙ্ক আছে' elseif snaktype == 'somevalue' then ret = 'অজানা মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়েছে' elseif snaktype == 'novalue' then ret = 'কোন মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়নি' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[श्रेणी:%s]]', ret) else return '' end end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. displayinline(contents, Notes) end if isInTitle(Display) then text = text .. displaytitle(contents, Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'छैन' and page_title.subpageText ~= 'परिक्षण पृष्ठ' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are strings: lat, long, type, scale, dim, region, globe, source ]] function coordinates.coord2text(frame) local coord = mw.text.trim(frame.args[1] or '') local param = mw.text.trim(frame.args[2] or '') if coord == '' or param == '' then return nil end coord = translate2en(coord) if param == 'lat' or param == 'long' then local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if param == 'long' then value, direction = long, ew end value = tonumber(value) if value then if direction == 'S' or direction == 'W' then value = -value end return tostring(value) end return nil else return coord:match('params=.-_'..param..':(.-)[ _]') end end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub(frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3') frame.args[1] = mw.ustring.gsub(frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ') end end return frame.args[1] end return coordinates ir5odlchxy4fral3f4ogsktteipg8lh 1372347 1372342 2026-08-26T03:53:12Z पर्वत सुवेदी 31224 1372347 Scribunto text/plain --[[ नेपालीमा सही नतिजा दिन यहाँ केही परिवर्तनहरू गरिएका छन्। कृपया यसलाई उद्यावधिक गर्दा सावधान रहनुहोस्। नतिजाहरू नेपालीमा छन् र तपाईले इनपुटको रूपमा नेपाली सङ्ख्याहरू दिए पनि मोड्युलले काम गर्छ भनी सुनिश्चित गर्नुहोस्। {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = '//geohack.toolforge.org/geohack.php?language=ne&pagename=' .. page_name .. '&params=' local templatestyles = 'Module:Coordinates/styles.css' local function direction2bn(text) text = text:gsub('[NSEW]', { N = ' उत्तर', S = ' दक्षिण', E = ' पूर्व', W = ' पश्चिम', }) return text end local function translate2bn(text) text = text:gsub('%d', { ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', }) return text end local function translate2en(text) text = mw.ustring.gsub(text, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) text = text :gsub(' *उत्तर', 'N') :gsub(' *दक्षिण', 'S') :gsub(' *पूर्व', 'E') :gsub(' *पश्चिम', 'W') return text end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(s, notes) local l = "[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: " .. s local co = '<span id="coordinates">' .. l .. notes .. '</span>' return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span style="font-size: small;">' .. co .. '</span>' }; end --[[ Helper function, Replacement for {{coord/display/inline}} ]] local function displayinline(s, notes) return s .. notes end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'ढाँचा:Coordinates' -- TODO should this use the ne name? check Module:Arguments }) for k, v in pairs(args) do args[k] = translate2en(v) end return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do local errorHTML = '<strong class="error">निर्देशाङ्क: ' .. v[2] .. '</strong>' result = result .. errorHTML .. "<br />" end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "त्रुटि param खाली" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. '<span class="latitude">' .. translate2bn(coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. translate2bn(coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "° दक्षिण" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "° उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "° पश्चिम" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "° पूर्व" end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. translate2bn(geodeclat) .. ' ' .. translate2bn(geodeclong) .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. '<span class="plainlinks nourlexpansion">' .. '[' .. coord_link .. uriComponents .. ' ' .. inner .. ']' .. '</span>' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "गোলার্ধ পতাকাসহ अক্ষাংশ ডিগ্রী < ০"}) end if long_d < 0 then table.insert(errors, {source, "गোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী < ০"}) end end if lat_d > 90 then table.insert(errors, {source, "अক্ষাংশ ডিগ্রী > ৯০"}) end if lat_d < -90 then table.insert(errors, {source, "अক্ষাংশ ডিগ্রী < -৯০"}) end if lat_m >= 60 then table.insert(errors, {source, "अक्षाংশ মিনিট >= ৬০"}) end if lat_m < 0 then table.insert(errors, {source, "अक्षाংশ মিনিট < ০"}) end if lat_s >= 60 then table.insert(errors, {source, "अक्षाংশ সেকেন্ড >= ৬০"}) end if lat_s < 0 then table.insert(errors, {source, "अक्षाংশ সেকেন্ড < ০"}) end if long_d >= 360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৩৬০"}) end if long_d <= -360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী <= -৩৬০"}) end if long_m >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_m < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end if long_s >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_s < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "দ্রাঘিমাংশ অনুপস্থিত"}} elseif not tonumber(long) then return nil, {{"parseDec", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, " उत्तर", " दक्षिण", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, " पूर्व", " पश्चिम", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f and lat_f:upper() or ''; long_f = long_f and long_f:upper() or ''; -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, status and lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "দ্রাঘিমাংশ অনুপস্থিত" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. direction2bn(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. direction2bn(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "अक्षांश अनुपस्थित"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "एक नंबर হিসাবে अक्षांश पार्स करना विफल:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "अज्ञात आर्ग्युमेंट विन्यास"}}) end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'पैरामीटर: "' .. v .. '=" होना चाहिए "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[श्रेणी:अमान्य स्थान चिनो भएका पृष्ठहरू]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then ret = 'উইকিউপাত্তে স্থানাঙ্ক আছে' elseif snaktype == 'somevalue' then ret = 'অজানা মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়েছে' elseif snaktype == 'novalue' then ret = 'কোন মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়নি' end else ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[श्रेणी:%s]]', ret) else return '' end end function coordinates.link(frame) return coord_link; end coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- यदि पहिलो positional argument नै छैन भने खाली स्ट्रिङ फर्काउने (त्रुटि रोक्न) if not in_args[1] or in_args[1] == '' then return '' end local safe_args = {} for i = 1, 10 do if in_args[i] and in_args[i] ~= '' then safe_args[i] = in_args[i] end end for k, v in pairs(in_args) do if type(k) == 'string' then safe_args[k] = v end end local status, result = pcall(function() return mw.getCurrentFrame():callParserFunction('#coordinates', safe_args) end) if status and result then return result end return '' end local text = '' if isInline(Display) then text = text .. displayinline(contents, Notes) end if isInTitle(Display) then text = text .. displaytitle(contents, Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'छैन' and page_title.subpageText ~= 'परिक्षण पृष्ठ' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end function coordinates.coord2text(frame) local coord = mw.text.trim(frame.args[1] or '') local param = mw.text.trim(frame.args[2] or '') if coord == '' or param == '' then return nil end coord = translate2en(coord) if param == 'lat' or param == 'long' then local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if param == 'long' then value, direction = long, ew end value = tonumber(value) if value then if direction == 'S' or direction == 'W' then value = -value end return tostring(value) end return nil else return coord:match('params=.-_'..param..':(.-)[ _]') end end function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub(frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3') frame.args[1] = mw.ustring.gsub(frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ') end end return frame.args[1] end return coordinates 5jhn4o35mpt7qio4frdyxxw2hz0hb8g 1372348 1372347 2026-08-26T03:54:38Z पर्वत सुवेदी 31224 1372348 Scribunto text/plain --[[ नेपालीमा सही नतिजा दिन यहाँ केही परिवर्तनहरू गरिएका छन्। कृपया यसलाई उद्यावधिक गर्दा सावधान रहनुहोस्। नतिजाहरू नेपालीमा छन् र तपाईले इनपुटको रूपमा नेपाली सङ्ख्याहरू दिए पनि मोड्युलले काम गर्छ भनी सुनिश्चित गर्नुहोस्। {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = '//geohack.toolforge.org/geohack.php?language=ne&pagename=' .. page_name .. '&params=' local templatestyles = 'Module:Coordinates/styles.css' local function direction2bn(text) text = text:gsub('[NSEW]', { N = ' उत्तर', S = ' दक्षिण', E = ' पूर्व', W = ' पश्चिम', }) return text end local function translate2ne(text) text = text:gsub('%d', { ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', }) return text end local function translate2en(text) text = mw.ustring.gsub(text, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) text = text :gsub(' *उत्तर', 'N') :gsub(' *दक्षिण', 'S') :gsub(' *पूर्व', 'E') :gsub(' *पश्चिम', 'W') return text end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(s, notes) local l = "[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: " .. s local co = '<span id="coordinates">' .. l .. notes .. '</span>' return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span style="font-size: small;">' .. co .. '</span>' }; end --[[ Helper function, Replacement for {{coord/display/inline}} ]] local function displayinline(s, notes) return s .. notes end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'ढाँचा:Coordinates' -- TODO should this use the ne name? check Module:Arguments }) for k, v in pairs(args) do args[k] = translate2en(v) end return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do local errorHTML = '<strong class="error">निर्देशाङ्क: ' .. v[2] .. '</strong>' result = result .. errorHTML .. "<br />" end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "त्रुटि param खाली" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. '<span class="latitude">' .. translate2bn(coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. translate2bn(coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "° दक्षिण" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "° उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "° पश्चिम" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "° पूर्व" end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. translate2bn(geodeclat) .. ' ' .. translate2bn(geodeclong) .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. '<span class="plainlinks nourlexpansion">' .. '[' .. coord_link .. uriComponents .. ' ' .. inner .. ']' .. '</span>' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "गোলার্ধ পতাকাসহ अক্ষাংশ ডিগ্রী < ০"}) end if long_d < 0 then table.insert(errors, {source, "गোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী < ০"}) end end if lat_d > 90 then table.insert(errors, {source, "अক্ষাংশ ডিগ্রী > ৯০"}) end if lat_d < -90 then table.insert(errors, {source, "अক্ষাংশ ডিগ্রী < -৯০"}) end if lat_m >= 60 then table.insert(errors, {source, "अक्षाংশ মিনিট >= ৬০"}) end if lat_m < 0 then table.insert(errors, {source, "अक्षाংশ মিনিট < ০"}) end if lat_s >= 60 then table.insert(errors, {source, "अक्षाংশ সেকেন্ড >= ৬০"}) end if lat_s < 0 then table.insert(errors, {source, "अक्षाংশ সেকেন্ড < ০"}) end if long_d >= 360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৩৬০"}) end if long_d <= -360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী <= -৩৬০"}) end if long_m >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_m < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end if long_s >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_s < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "দ্রাঘিমাংশ অনুপস্থিত"}} elseif not tonumber(long) then return nil, {{"parseDec", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, " उत्तर", " दक्षिण", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, " पूर्व", " पश्चिम", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f and lat_f:upper() or ''; long_f = long_f and long_f:upper() or ''; -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, status and lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "দ্রাঘিমাংশ অনুপস্থিত" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. direction2bn(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. direction2bn(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "अक्षांश अनुपस्थित"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "एक नंबर হিসাবে अक्षांश पार्स करना विफल:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "अज्ञात आर्ग्युमेंट विन्यास"}}) end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'पैरामीटर: "' .. v .. '=" होना चाहिए "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[श्रेणी:अमान्य स्थान चिनो भएका पृष्ठहरू]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then ret = 'উইকিউপাত্তে স্থানাঙ্ক আছে' elseif snaktype == 'somevalue' then ret = 'অজানা মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়েছে' elseif snaktype == 'novalue' then ret = 'কোন মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়নি' end else ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[श्रेणी:%s]]', ret) else return '' end end function coordinates.link(frame) return coord_link; end coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- यदि पहिलो positional argument नै छैन भने खाली स्ट्रिङ फर्काउने (त्रुटि रोक्न) if not in_args[1] or in_args[1] == '' then return '' end local safe_args = {} for i = 1, 10 do if in_args[i] and in_args[i] ~= '' then safe_args[i] = in_args[i] end end for k, v in pairs(in_args) do if type(k) == 'string' then safe_args[k] = v end end local status, result = pcall(function() return mw.getCurrentFrame():callParserFunction('#coordinates', safe_args) end) if status and result then return result end return '' end local text = '' if isInline(Display) then text = text .. displayinline(contents, Notes) end if isInTitle(Display) then text = text .. displaytitle(contents, Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'छैन' and page_title.subpageText ~= 'परिक्षण पृष्ठ' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end function coordinates.coord2text(frame) local coord = mw.text.trim(frame.args[1] or '') local param = mw.text.trim(frame.args[2] or '') if coord == '' or param == '' then return nil end coord = translate2en(coord) if param == 'lat' or param == 'long' then local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if param == 'long' then value, direction = long, ew end value = tonumber(value) if value then if direction == 'S' or direction == 'W' then value = -value end return tostring(value) end return nil else return coord:match('params=.-_'..param..':(.-)[ _]') end end function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub(frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3') frame.args[1] = mw.ustring.gsub(frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ') end end return frame.args[1] end return coordinates 0qijsklipsxcanlmqb65ib0immqak5p 1372351 1372348 2026-08-26T04:15:03Z पर्वत सुवेदी 31224 1372351 Scribunto text/plain --[[ नेपालीमा सही नतिजा दिन यहाँ केही परिवर्तनहरू गरिएका छन्। कृपया यसलाई उद्यावधिक गर्दा सावधान रहनुहोस्। नतिजाहरू नेपालीमा छन् र तपाईले इनपुटको रूपमा नेपाली सङ्ख्याहरू दिए पनि मोड्युलले काम गर्छ भनी सुनिश्चित गर्नुहोस्। {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = '//geohack.toolforge.org/geohack.php?language=ne&pagename=' .. page_name .. '&params=' local templatestyles = 'Module:Coordinates/styles.css' local function direction2ne(text) text = text:gsub('[NSEW]', { N = ' उत्तर', S = ' दक्षिण', E = ' पूर्व', W = ' पश्चिम', }) return text end local function translate2ne(text) text = text:gsub('%d', { ['0'] = '०', ['1'] = '१', ['2'] = '२', ['3'] = '३', ['4'] = '४', ['5'] = '५', ['6'] = '६', ['7'] = '७', ['8'] = '८', ['9'] = '९', }) return text end local function translate2en(text) text = mw.ustring.gsub(text, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) text = text :gsub(' *उत्तर', 'N') :gsub(' *दक्षिण', 'S') :gsub(' *पूर्व', 'E') :gsub(' *पश्चिम', 'W') return text end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(s, notes) local l = "[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: " .. s local co = '<span id="coordinates">' .. l .. notes .. '</span>' return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span style="font-size: small;">' .. co .. '</span>' }; end --[[ Helper function, Replacement for {{coord/display/inline}} ]] local function displayinline(s, notes) return s .. notes end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'ढाँचा:Coordinates' -- TODO should this use the ne name? check Module:Arguments }) for k, v in pairs(args) do args[k] = translate2en(v) end return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do local errorHTML = '<strong class="error">निर्देशाङ्क: ' .. v[2] .. '</strong>' result = result .. errorHTML .. "<br />" end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "त्रुटि param खाली" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. '<span class="latitude">' .. translate2ne(coordinateSpec["dms-lat"]) .. '</span> ' .. '<span class="longitude">' .. translate2ne(coordinateSpec["dms-long"]) .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "° दक्षिण" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "° उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "° पश्चिम" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "° पूर्व" end local geodechtml = '<span class="geo-dec" title="यस स्थानको लागि नक्सा, हवाई चित्रण, र अन्य जानकारी">' .. translate2ne(geodeclat) .. ' ' .. translate2ne(geodeclong) .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = templatestyles} } .. '<span class="plainlinks nourlexpansion">' .. '[' .. coord_link .. uriComponents .. ' ' .. inner .. ']' .. '</span>' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "गোলার্ধ পতাকাসহ अক্ষাংশ ডিগ্রী < ০"}) end if long_d < 0 then table.insert(errors, {source, "गোলার্ধ পতাকাসহ দ্রাঘিমাংশ ডিগ্রী < ০"}) end end if lat_d > 90 then table.insert(errors, {source, "अক্ষাংশ ডিগ্রী > ৯০"}) end if lat_d < -90 then table.insert(errors, {source, "अক্ষাংশ ডিগ্রী < -৯০"}) end if lat_m >= 60 then table.insert(errors, {source, "अक्षाংশ মিনিট >= ৬০"}) end if lat_m < 0 then table.insert(errors, {source, "अक्षाংশ মিনিট < ০"}) end if lat_s >= 60 then table.insert(errors, {source, "अक्षाংশ সেকেন্ড >= ৬০"}) end if lat_s < 0 then table.insert(errors, {source, "अक्षाংশ সেকেন্ড < ০"}) end if long_d >= 360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৩৬০"}) end if long_d <= -360 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী <= -৩৬০"}) end if long_m >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_m < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end if long_s >= 60 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী >= ৬০"}) end if long_s < 0 then table.insert(errors, {source, "দ্রাঘিমাংশ ডিগ্রী < ০"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "দ্রাঘিমাংশ অনুপস্থিত"}} elseif not tonumber(long) then return nil, {{"parseDec", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, " उत्तर", " दक्षिण", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, " पूर्व", " पश्चिम", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f and lat_f:upper() or ''; long_f = long_f and long_f:upper() or ''; -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, status and lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "দ্রাঘিমাংশ অনুপস্থিত" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "দ্রাঘিমাংশ একটি সংখ্যা হিসেবে পার্স করা যাবে না:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. direction2ne(lat_f) coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. direction2ne(long_f) coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "अक्षांश अनुपस्थित"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "एक नंबर হিসাবে अक्षांश पार्स करना विफल:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'अतिरिक्त अप्रत्याशित पैरामीटर'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "अज्ञात आर्ग्युमेंट विन्यास"}}) end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'पैरामीटर: "' .. v .. '=" होना चाहिए "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[श्रेणी:अमान्य स्थान चिनो भएका पृष्ठहरू]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then ret = 'উইকিউপাত্তে স্থানাঙ্ক আছে' elseif snaktype == 'somevalue' then ret = 'অজানা মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়েছে' elseif snaktype == 'novalue' then ret = 'কোন মানে উইকিউপাত্তে স্থানাঙ্ক নির্ধারণ করা হয়নি' end else ret = 'विकिडाटामा निर्देशाङ्क छैन' end end if ret then return string.format('[[श्रेणी:%s]]', ret) else return '' end end function coordinates.link(frame) return coord_link; end coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- यदि पहिलो positional argument नै छैन भने खाली स्ट्रिङ फर्काउने (त्रुटि रोक्न) if not in_args[1] or in_args[1] == '' then return '' end local safe_args = {} for i = 1, 10 do if in_args[i] and in_args[i] ~= '' then safe_args[i] = in_args[i] end end for k, v in pairs(in_args) do if type(k) == 'string' then safe_args[k] = v end end local status, result = pcall(function() return mw.getCurrentFrame():callParserFunction('#coordinates', safe_args) end) if status and result then return result end return '' end local text = '' if isInline(Display) then text = text .. displayinline(contents, Notes) end if isInTitle(Display) then text = text .. displaytitle(contents, Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'छैन' and page_title.subpageText ~= 'परिक्षण पृष्ठ' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end function coordinates.coord2text(frame) local coord = mw.text.trim(frame.args[1] or '') local param = mw.text.trim(frame.args[2] or '') if coord == '' or param == '' then return nil end coord = translate2en(coord) if param == 'lat' or param == 'long' then local value, direction, long, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if param == 'long' then value, direction = long, ew end value = tonumber(value) if value then if direction == 'S' or direction == 'W' then value = -value end return tostring(value) end return nil else return coord:match('params=.-_'..param..':(.-)[ _]') end end function coordinates.coordinsert(frame) for i, v in ipairs(frame.args) do if i ~= 1 then if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then if not mw.ustring.find(frame.args[1], '<span class="vcard">') then local namestr = frame.args.name frame.args[1] = mw.ustring.gsub(frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3') frame.args[1] = mw.ustring.gsub(frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ') end end return frame.args[1] end return coordinates afwy16ki7k8dppxzr8czdwwb0r1avm7 1372358 1372351 2026-08-26T07:06:21Z पर्वत सुवेदी 31224 परिक्षण 1372358 Scribunto text/plain --[[ This module is intended to replace the functionality of {{Coord}} and related templates. It provides several methods, including {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true); local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = 'https://geohack.toolforge.org/geohack.php?pagename=' .. page_name .. '&params=' --[[ नेपाली अङ्क र दिशामा रूपान्तरण गर्ने फङ्सन ]] local function nepaliNum(s) if not s then return '' end local english = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'} local nepali = {'०', '१', '२', '३', '४', '५', '६', '७', '८', '९'} s = tostring(s) s = s:gsub('N', 'उत्तर'):gsub('S', 'दक्षिण'):gsub('E', 'पूर्व'):gsub('W', 'पश्चिम') for i = 1, 10 do s = s:gsub(english[i], nepali[i]) end return s end --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(coords) return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span id="coordinates">[[भौगोलिक निर्देशाङ्क प्रणाली|निर्देशाङ्क]]: ' .. coords .. '</span>' } end local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Coord' }) return coordinates[funcName](args, frame) end end local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do result = result .. '<strong class="error">निर्देशाङ्क: ' .. v[2] .. '</strong><br />' end return result end local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then return "ERROR param was empty" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local dms_lat_np = nepaliNum(coordinateSpec["dms-lat"]) local dms_long_np = nepaliNum(coordinateSpec["dms-long"]) local geodmshtml = '<span class="geo-dms" title="नक्सा, हवाई तस्बिर र यस स्थानको अन्य डेटा">' .. '<span class="latitude">' .. dms_lat_np .. '</span> ' .. '<span class="longitude">' .. dms_long_np .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then geodeclat = nepaliNum(tostring(coordinateSpec["dec-lat"]):sub(2)) .. "°दक्षिण" else geodeclat = nepaliNum(coordinateSpec["dec-lat"] or 0) .. "°उत्तर" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then geodeclong = nepaliNum(tostring(coordinateSpec["dec-long"]):sub(2)) .. "°पश्चिम" else geodeclong = nepaliNum(coordinateSpec["dec-long"] or 0) .. "°पूर्व" end local geodechtml = '<span class="geo-dec" title="नक्सा, हवाई तस्बिर र यस स्थानको अन्य डेटा">' .. geodeclat .. ' ' .. geodeclong .. '</span>' local geonumhtml = '<span class="geo">' .. nepaliNum(coordinateSpec["dec-lat"]) .. '; ' .. nepaliNum(coordinateSpec["dec-long"]) .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end local stylesheetLink = 'Module:Coordinates' .. ( isSandbox and '/sandbox' or '' ) .. '/styles.css' return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = stylesheetLink } } .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. ' ' .. inner .. ']</span>' end local function convert_dec2dms_d(coordinate) return math_mod._round( coordinate, 0 ) .. "°" end local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); return (coordinate % 360) .."°" .. string.format( "%02d′", m ) end local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); return (coordinate % 360) .."°" .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix = (coord >= 0) and firstPostfix or secondPostfix precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; else return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = (direction == "S" or direction == "W") and -1 or 1 local precision = seconds_str and (5 + math.max( math_mod._precision(seconds_str), 0 )) or (minutes_str and minutes_str ~= '' and (3 + math.max( math_mod._precision(minutes_str), 0 )) or math.max( math_mod._precision(degrees_str), 0 )) local decimal = factor * (degrees + (minutes + seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) end local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; return errors; end local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "Missing longitude"}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, "N", "S", mode) coordinateSpec["dms-long"] = convert_dec2dms( long, "E", "W", mode) coordinateSpec.default = format or "dec" return coordinateSpec, errors end local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {}, false lat_f = lat_f:upper(); long_f = long_f:upper(); if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, long_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "Missing longitude" }} end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. lat_f coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. long_f coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) coordinateSpec.default = format or "dms" return coordinateSpec, errors, backward end local function formatTest(args) local result, errors, backward = nil, nil, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then return errorPrinter( {{"formatTest", "Missing latitude"}} ) elseif not tonumber(args[1]) then return errorPrinter( {{"formatTest", "Unable to parse latitude"}} ) elseif not args[4] and not args[5] and not args[6] then result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) result.param = getParam(args, 9) else result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) result.param = getParam(args, 5) end result.name = args.name return specPrinter(args, result), backward end function coordinates.link(frame) return coord_link; end coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) return convert_dec2dms(args[1], args[2] --[[positive]], args[3] --[[negative]], args[4]) end function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) return convert_dms2dec(args[1], args[2], args[3], args[4]) end coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' local function isInline(s) return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local text = '' if isInline(Display) then text = text .. '<span class="geo-inline">' .. contents .. Notes .. '</span>' end if isInTitle(Display) then text = text .. displaytitle(contents .. Notes) end if not args.nosave then local p_args = {} for k, v in pairs(args) do p_args[k] = v end p_args.notes, p_args.format, p_args.display = nil, nil, nil text = text .. (mw.getCurrentFrame():callParserFunction('#coordinates', p_args) or '') end return text end function coordinates.coordinsert(frame) local args = require('Module:Arguments').getArgs(frame) return args[1] or '' end return coordinates 7zejxrjtjqsp3dv3nf9s0mj76dif16j 1372359 1372358 2026-08-26T07:07:33Z पर्वत सुवेदी 31224 1372359 Scribunto text/plain --[[ This module is intended to replace the functionality of {{Coord}} and related templates. It provides several methods, including {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true); local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = 'https://geohack.toolforge.org/geohack.php?pagename=' .. page_name .. '&params=' --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(coords) return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span id="coordinates">[[Geographic coordinate system|Coordinates]]: ' .. coords .. '</span>' } end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:Coord' }) return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do result = result .. '<strong class="error">Coordinates: ' .. v[2] .. '</strong><br />' end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "ERROR param was empty" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="Maps, aerial photos, and other data for this location">' .. '<span class="latitude">' .. coordinateSpec["dms-lat"] .. '</span> ' .. '<span class="longitude">' ..coordinateSpec["dms-long"] .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "°S" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "°N" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "°W" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "°E" end local geodechtml = '<span class="geo-dec" title="Maps, aerial photos, and other data for this location">' .. geodeclat .. ' ' .. geodeclong .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end local stylesheetLink = 'Module:Coordinates' .. ( isSandbox and '/sandbox' or '' ) .. '/styles.css' return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = stylesheetLink } } .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. ' ' .. inner .. ']</span>' .. '[[Category:Pages using gadget WikiMiniAtlas]]' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "latitude degrees < 0 with hemisphere flag"}) end if long_d < 0 then table.insert(errors, {source, "longitude degrees < 0 with hemisphere flag"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "longitude degrees > 180 with hemisphere flag"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "latitude degrees > 90"}) end if lat_d < -90 then table.insert(errors, {source, "latitude degrees < -90"}) end if lat_m >= 60 then table.insert(errors, {source, "latitude minutes >= 60"}) end if lat_m < 0 then table.insert(errors, {source, "latitude minutes < 0"}) end if lat_s >= 60 then table.insert(errors, {source, "latitude seconds >= 60"}) end if lat_s < 0 then table.insert(errors, {source, "latitude seconds < 0"}) end if long_d >= 360 then table.insert(errors, {source, "longitude degrees >= 360"}) end if long_d <= -360 then table.insert(errors, {source, "longitude degrees <= -360"}) end if long_m >= 60 then table.insert(errors, {source, "longitude minutes >= 60"}) end if long_m < 0 then table.insert(errors, {source, "longitude minutes < 0"}) end if long_s >= 60 then table.insert(errors, {source, "longitude seconds >= 60"}) end if long_s < 0 then table.insert(errors, {source, "longitude seconds < 0"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "Missing longitude"}} elseif not tonumber(long) then return nil, {{"parseDec", "Longitude could not be parsed as a number: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, "N", "S", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, "E", "W", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "Missing longitude" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "Longitude could not be parsed as a number:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. lat_f coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. long_f coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "Missing latitude"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "Unable to parse latitude as a number:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "Unknown argument format"}}) .. '[[Category:Pages with malformed coordinate tags]]' end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'Parameter: "' .. v .. '=" should be "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[Category:Pages with malformed coordinate tags]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'Coordinates on Wikidata' elseif snaktype == 'somevalue' then ret = 'Coordinates on Wikidata set to unknown value' elseif snaktype == 'novalue' then ret = 'Coordinates on Wikidata set to no value' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'Coordinates not on Wikidata' end end if ret then return string.format('[[Category:%s]]', ret) else return '' end end --[[ Parse coordinates entered as a single string ]] local function text2coord(text) if type(text) ~= 'string' then return end local coords = {} local numTerms = 0 local parts local function assign(k, number, start, pos) if number then coords[start + pos - 1] = number if k == 1 then numTerms = pos elseif numTerms < pos then -- more terms in long than lat return false end elseif numTerms >= pos then -- more terms in lat than long return false end return true end text = mw.ustring.gsub(mw.text.trim(text:uupper()), "[*′″]", {['*'] = '°', ['′'] = "'", ['″'] = '"'}) for _, regex in ipairs({ "^([+%-%d.°'\"NS%s]+),%s*([+%-%d.°'\"EW%s]+)$", --split by commas "^([+%-%d.°'\"%s]+[NS])%s*([+%-%d.°'\"%s]+[EW])$", --split by N/S "^([+%-%d.°'%s]+\")%s*([+%-%d.°'%s]+\")$", --split by " "^([+%-%d.°%s]+')%s*([+%-%d.°%s]+')$", --split by ' "^([+%-%d.%s]+°)%s*([+%-%d.%s]+°)$", --split by ° "^([+%-%d.]+)%s+([+%-%d.]+)$" --split by space }) do local lat, long = string.match(text, regex) if lat and long then parts = {mw.text.trim(lat), mw.text.trim(long)} break end end if not parts then return end local SW = {"S", "W"} local NE = {"N", "E"} for k, v in ipairs(parts) do local number local start = k + numTerms -- Find or create N, S, E, and W local dir = v:match("([NSEW])$") if dir then v = v:sub(1,-2) elseif v:sub(1,1) == '-' then v = v:sub(2) dir = SW[k] else dir = NE[k] end -- attempt to convert text to number number = tonumber(v) if number then -- Single number, assign it to the position "start" in the "coords" array if not assign(k, number, start, 1) then return end -- attempt to convert dms to decimal elseif string.match(v, "°") then for pos, regex in ipairs({ "^%s*([+%-%d.]+)%s*°[^°]*$", --degrees "^[^°']+°%s*([%d.]+)%s*'[^°']*$", --minutes "^[^'\"]+'%s*([%d.]+)%s*\"[^'\"]*$" --seconds }) do -- Assign component to a position in the "coords" array determined -- by "start" and "pos", and increment "numTerms" if this is latitude if not assign(k, tonumber(string.match(v, regex)), start, pos) then return end end end if coords[start] == nil then return end coords[start + numTerms] = dir end return coords end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) then local parsed = text2coord(args[1]) if parsed then -- full lat/long entered as a single string for i = 2, #args do args[#parsed + i - 1] = args[i] end for i, v in ipairs(parsed) do args[i] = v end elseif not args[2] then -- look for coordinates from wikidata args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' -- it and ti are short for inline,title and title,inline local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. '<span class="geo-inline">' .. contents .. Notes .. '</span>' end if isInTitle(Display) then -- Add to output since indicator content is invisible to Lua later on if not isInline(Display) then text = text .. '<span class="geo-inline-hidden noexcerpt">' .. contents .. Notes .. '</span>' end text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'testcases' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are: lat (signed integer), long (signed integer), type, scale, dim, region, globe, source ]] function coordinates._coord2text(coord,type) if coord == '' or type == '' or not type then return nil end type = mw.text.trim(type) if type == 'lat' or type == 'long' then local coordString = mw.ustring.match(coord,'[%.%d]+°[NS] [%.%d]+°[EW]') if not coordString then return nil end local result = mw.text.split(coordString, ' ') local negative if type == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end if not result then return nil end result = mw.text.split(result, '°') if not result[1] then return nil end if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(coord, 'params=.-_' .. type .. ':(.-)[ _]') end end function coordinates.coord2text(frame) return coordinates._coord2text(frame.args[1],frame.args[2]) or '' end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) -- for the 2nd or later integer parameter (the first is the coord template, as above) for i, v in ipairs(frame.args) do if i ~= 1 then -- if we cannot find in the coord_template the i_th coordinsert parameter e.g. region if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then -- find from the params= up to the first possibly-present underscore -- and append the i_th coordinsert parameter and a space -- IDK why we're adding a space but it does seem somewhat convenient frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then -- if we can't find the vcard class if not mw.ustring.find(frame.args[1], '<span class="vcard">') then -- take something that looks like a coord template and add the vcard span with class and fn org class local namestr = frame.args.name frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3' ) -- then find anything from coordinates parameters to the 'end' and attach the title parameter frame.args[1] = mw.ustring.gsub( frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ' ) end end -- replace the existing indicator with a new indicator using the modified content frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-inline[^"]*">(.+)</span>)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127', function (inline, coord) return inline .. displaytitle(coord) end ) return frame.args[1] end return coordinates mgr040y9bhe26jrkzioi6ulvlqhvehy मोड्युल:Math 828 55245 1372350 1106507 2026-08-26T04:13:35Z पर्वत सुवेदी 31224 1372350 Scribunto text/plain --[[ This module provides a number of basic mathematical operations. ]] local yesno, getArgs -- lazily initialized local p = {} -- Holds functions to be returned from #invoke, and functions to make available to other Lua modules. local wrap = {} -- Holds wrapper functions that process arguments from #invoke. These act as intemediary between functions meant for #invoke and functions meant for Lua. --[[ Helper functions used to avoid redundant code. ]] local function err(msg) -- Generates wikitext error messages. return mw.ustring.format('<strong class="error">বিন্যাসন ত্রুটি: %s</strong>', msg) end local function unpackNumberArgs(args) -- Returns an unpacked list of arguments specified with numerical keys. local ret = {} for k, v in pairs(args) do if type(k) == 'number' then table.insert(ret, v) end end return unpack(ret) end local function makeArgArray(...) -- Makes an array of arguments from a list of arguments that might include nils. local args = {...} -- Table of arguments. It might contain nils or non-number values, so we can't use ipairs. local nums = {} -- Stores the numbers of valid numerical arguments. local ret = {} for k, v in pairs(args) do v = p._cleanNumber(v) if v then nums[#nums + 1] = k args[k] = v end end table.sort(nums) for i, num in ipairs(nums) do ret[#ret + 1] = args[num] end return ret end local function fold(func, ...) -- Use a function on all supplied arguments, and return the result. The function must accept two numbers as parameters, -- and must return a number as an output. This number is then supplied as input to the next function call. local vals = makeArgArray(...) local count = #vals -- The number of valid arguments if count == 0 then return -- Exit if we have no valid args, otherwise removing the first arg would cause an error. nil, 0 end local ret = table.remove(vals, 1) for _, val in ipairs(vals) do ret = func(ret, val) end return ret, count end --[[ Fold arguments by selectively choosing values (func should return when to choose the current "dominant" value). ]] local function binary_fold(func, ...) local value = fold((function(a, b) if func(a, b) then return a else return b end end), ...) return value end --[[ random Generate a random number Usage: {{#invoke: Math | random }} {{#invoke: Math | random | maximum value }} {{#invoke: Math | random | minimum value | maximum value }} ]] function wrap.random(args) local first = p._cleanNumber(args[1]) local second = p._cleanNumber(args[2]) return p._random(first, second) end function p._random(first, second) math.randomseed(mw.site.stats.edits + mw.site.stats.pages + os.time() + math.floor(os.clock() * 1000000000)) -- math.random will throw an error if given an explicit nil parameter, so we need to use if statements to check the params. if first and second then if first <= second then -- math.random doesn't allow the first number to be greater than the second. return math.random(first, second) end elseif first then return math.random(first) else return math.random() end end --[[ order Determine order of magnitude of a number Usage: {{#invoke: Math | order | value }} ]] function wrap.order(args) local input_string = (args[1] or args.x or '0'); local input_number = p._cleanNumber(input_string); if input_number == nil then return err('মাত্রার ক্রম অ-সাংখ্যিক দেখাচ্ছে') else return p._order(input_number) end end function p._order(x) if x == 0 then return 0 end return math.floor(math.log10(math.abs(x))) end --[[ precision Detemines the precision of a number using the string representation Usage: {{ #invoke: Math | precision | value }} ]] function wrap.precision(args) local input_string = (args[1] or args.x or '0'); local trap_fraction = args.check_fraction; local input_number; if not yesno then yesno = require('Module:Yesno') end if yesno(trap_fraction, true) then -- Returns true for all input except nil, false, "no", "n", "0" and a few others. See [[Module:Yesno]]. local pos = string.find(input_string, '/', 1, true); if pos ~= nil then if string.find(input_string, '/', pos + 1, true) == nil then local denominator = string.sub(input_string, pos+1, -1); local denom_value = tonumber(denominator); if denom_value ~= nil then return math.log10(denom_value); end end end end input_number, input_string = p._cleanNumber(input_string); if input_string == nil then return err('স্পষ্টতা ইনপুট অ-সাংখ্যিক দেখাচ্ছে') else return p._precision(input_string) end end function p._precision(x) if type(x) == 'number' then x = tostring(x) end x = string.upper(x) local decimal = x:find('%.') local exponent_pos = x:find('E') local result = 0; if exponent_pos ~= nil then local exponent = string.sub(x, exponent_pos + 1) x = string.sub(x, 1, exponent_pos - 1) result = result - tonumber(exponent) end if decimal ~= nil then result = result + string.len(x) - decimal return result end local pos = string.len(x); while x:byte(pos) == string.byte('0') do pos = pos - 1 result = result - 1 if pos <= 0 then return 0 end end return result end --[[ max Finds the maximum argument Usage: {{#invoke:Math| max | value1 | value2 | ... }} Note, any values that do not evaluate to numbers are ignored. ]] function wrap.max(args) return p._max(unpackNumberArgs(args)) end function p._max(...) local max_value = binary_fold((function(a, b) return a > b end), ...) if max_value then return max_value end end --[[ median Find the median of set of numbers Usage: {{#invoke:Math | median | number1 | number2 | ...}} OR {{#invoke:Math | median }} ]] function wrap.median(args) return p._median(unpackNumberArgs(args)) end function p._median(...) local vals = makeArgArray(...) local count = #vals table.sort(vals) if count == 0 then return 0 end if p._mod(count, 2) == 0 then return (vals[count/2] + vals[count/2+1])/2 else return vals[math.ceil(count/2)] end end --[[ min Finds the minimum argument Usage: {{#invoke:Math| min | value1 | value2 | ... }} OR {{#invoke:Math| min }} When used with no arguments, it takes its input from the parent frame. Note, any values that do not evaluate to numbers are ignored. ]] function wrap.min(args) return p._min(unpackNumberArgs(args)) end function p._min(...) local min_value = binary_fold((function(a, b) return a < b end), ...) if min_value then return min_value end end --[[ sum Finds the sum Usage: {{#invoke:Math| sum | value1 | value2 | ... }} OR {{#invoke:Math| sum }} Note, any values that do not evaluate to numbers are ignored. ]] function wrap.sum(args) return p._sum(unpackNumberArgs(args)) end function p._sum(...) local sums, count = fold((function(a, b) return a + b end), ...) if not sums then return 0 else return sums end end --[[ average Finds the average Usage: {{#invoke:Math| average | value1 | value2 | ... }} OR {{#invoke:Math| average }} Note, any values that do not evaluate to numbers are ignored. ]] function wrap.average(args) return p._average(unpackNumberArgs(args)) end function p._average(...) local sum, count = fold((function(a, b) return a + b end), ...) if not sum then return 0 else return sum / count end end --[[ round Rounds a number to specified precision Usage: {{#invoke:Math | round | value | precision }} --]] function wrap.round(args) local value = p._cleanNumber(args[1] or args.value or 0) local precision = p._cleanNumber(args[2] or args.precision or 0) if value == nil or precision == nil then return err('round input appears non-numeric') else return p._round(value, precision) end end function p._round(value, precision) local rescale = math.pow(10, precision or 0); return math.floor(value * rescale + 0.5) / rescale; end --[[ log10 returns the log (base 10) of a number Usage: {{#invoke:Math | log10 | x }} ]] function wrap.log10(args) return math.log10(args[1]) end --[[ mod Implements the modulo operator Usage: {{#invoke:Math | mod | x | y }} --]] function wrap.mod(args) local x = p._cleanNumber(args[1]) local y = p._cleanNumber(args[2]) if not x then return err('first argument to mod appears non-numeric') elseif not y then return err('second argument to mod appears non-numeric') else return p._mod(x, y) end end function p._mod(x, y) local ret = x % y if not (0 <= ret and ret < y) then ret = 0 end return ret end --[[ gcd Calculates the greatest common divisor of multiple numbers Usage: {{#invoke:Math | gcd | value 1 | value 2 | value 3 | ... }} --]] function wrap.gcd(args) return p._gcd(unpackNumberArgs(args)) end function p._gcd(...) local function findGcd(a, b) local r = b local oldr = a while r ~= 0 do local quotient = math.floor(oldr / r) oldr, r = r, oldr - quotient * r end if oldr < 0 then oldr = oldr * -1 end return oldr end local result, count = fold(findGcd, ...) return result end --[[ precision_format Rounds a number to the specified precision and formats according to rules originally used for {{template:Rnd}}. Output is a string. Usage: {{#invoke: Math | precision_format | number | precision }} ]] function wrap.precision_format(args) local value_string = args[1] or 0 local precision = args[2] or 0 return p._precision_format(value_string, precision) end function p._precision_format(value_string, precision) -- For access to Mediawiki built-in formatter. local lang = mw.getContentLanguage(); local lang_en = mw.getLanguage('en'); local value value, value_string = p._cleanNumber(value_string) precision = p._cleanNumber(precision) -- Check for non-numeric input if value == nil or precision == nil then return err('invalid input when rounding') end local current_precision = p._precision(value) local order = p._order(value) -- Due to round-off effects it is neccesary to limit the returned precision under -- some circumstances because the terminal digits will be inaccurately reported. if order + precision >= 14 then if order + p._precision(value_string) >= 14 then precision = 13 - order; end end -- If rounding off, truncate extra digits if precision < current_precision then value = p._round(value, precision) current_precision = p._precision(value) end local formatted_num = lang:formatNum(math.abs(value)) local formatted_num_en = lang_en:formatNum(math.abs(value)) local sign -- Use proper unary minus sign rather than ASCII default if value < 0 then sign = '−' else sign = '' end -- Handle cases requiring scientific notation if string.find(formatted_num_en, 'E', 1, true) ~= nil or math.abs(order) >= 9 then value = value * math.pow(10, -order) current_precision = current_precision + order precision = precision + order formatted_num = lang:formatNum(math.abs(value)) else order = 0; end formatted_num = sign .. formatted_num -- Pad with zeros, if needed if current_precision < precision then local padding if current_precision <= 0 then if precision > 0 then --local zero_sep = lang:formatNum(1.1) formatted_num = formatted_num .. '.' padding = precision if padding > 20 then padding = 20 end formatted_num = formatted_num .. string.rep('০', padding) end else padding = precision - current_precision if padding > 20 then padding = 20 end formatted_num = formatted_num .. string.rep('০', padding) end end -- Add exponential notation, if necessary. if order ~= 0 then -- Use proper unary minus sign rather than ASCII default if order < 0 then order = '−' .. lang:formatNum(math.abs(order)) else order = lang:formatNum(order) end formatted_num = formatted_num .. '<span style="margin:0 .15em 0 .25em">×</span>১০<sup>' .. order .. '</sup>' end return formatted_num end --[[ Helper function that interprets the input numerically. If the input does not appear to be a number, attempts evaluating it as a parser functions expression. ]] function p._cleanNumber(number_string) if type(number_string) == 'number' then -- We were passed a number, so we don't need to do any processing. return number_string, tostring(number_string) elseif type(number_string) ~= 'string' or not number_string:find('%S') then -- We were passed a non-string or a blank string, so exit. return nil, nil; end -- Attempt basic conversion local number = tonumber(number_string) -- If failed, attempt to evaluate input as an expression if number == nil then local success, result = pcall(mw.ext.ParserFunctions.expr, number_string) if success then number = tonumber(result) number_string = tostring(number) else number = nil number_string = nil end else number_string = number_string:match("^%s*(.-)%s*$") -- String is valid but may contain padding, clean it. number_string = number_string:match("^%+(.*)$") or number_string -- Trim any leading + signs. if number_string:find('^%-?0[xX]') then -- Number is using 0xnnn notation to indicate base 16; use the number that Lua detected instead. number_string = tostring(number) end end return number, number_string end --[[ Wrapper function that does basic argument processing. This ensures that all functions from #invoke can use either the current frame or the parent frame, and it also trims whitespace for all arguments and removes blank arguments. ]] local mt = { __index = function(t, k) return function(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return wrap[k](getArgs(frame)) -- Argument processing is left to Module:Arguments. Whitespace is trimmed and blank arguments are removed. end end } return setmetatable(p, mt) l224urs0ym6qhaldm545d9tf1h2rjv1 गगनसिंह भण्डारी 0 60486 1372356 1367542 2026-08-26T06:20:07Z ~2026-45926-56 80497 भण्डारी 1372356 wikitext text/x-wiki {{Infobox Officeholder | honorific-prefix = जनरल | name = '''गगन सिंह''' | honorific-suffix = '''जनरल''' | image = | imagesize = 220px | caption = | birth_date = वि सं १८५३<ref>कोतपर्वकी महारानी</ref> | birth_place = | death_date = वि.सं. १९०३ भदौ ३२ | death_place = काठमाडौँ ;आफ्नै निवास | citizenship = [[नेपाली]] |जाती = [[क्षेत्री]] | party = | spouse = ३ | religion = [[हिन्दू धर्म|हिन्दु]] | children = दुइ छोरा वजीर सिंह र बद्री सिंह भण्डारी | relatives = |office = [[नेपाली सेनाको प्रधान सेनापति|नेपालको प्रधान सेनापति]] |predecessor = [[माथवरसिंह थापा]] |successor = [[जङ्गबहादुर राणा|जंगबहादुर राणा]] |relations = |allegiance = {{flag|नेपाल}} |battles = | signature = | website = | footnotes = }} '''गगन सिंह भण्डारी''' नेपाली सेनाका सेनापति थिए। उनी [[राजेन्द्र वीरविक्रम शाह|राजा राजेन्द्र]]की कान्छी रानी [[राज्यलक्ष्मी देवी|राज्य लक्ष्मीदेवी]]को विश्वासपात्र थिए । रानी राज्यलक्ष्मीदेवी [[सुरेन्द्र वीरविक्रम शाह|युवराज सुरेन्द्र]]लाई हटाएर आफ्ना छोरा राजकुमार रणेन्द्रलाई राजा बनाउन चाहन्थिन् । उनी प्रधान सेनापति भएपनि प्रधानमन्त्री भन्दा दरबारमा शक्तिशाली र प्रभावशाली थिए। नेपाल दरबारमा भान्छाको सफासुग्घर गर्ने सामान्य काम लिएर पसेका गगनसिंह जङ्गी दरबन्दी पाएर जनरल सम्म भए। रानी लक्ष्मीदेवी आफूले जे भन्यो त्यहीँ आँखा चिम्लेर आज्ञापालन गर्ने सिपाही गगनसिंह मात्र आफ्नो भक्त भएको ठान्दथिन्। त्यसैले नेपाल दरबारमा गगनसिंहको ठाउँ फराकिलो हुँदै गएको थियो। माथवरसिंह थापाको हत्या पछि गगनसिंह दरबारमा प्रतिष्ठा प्राप्त भारदार हुन पुगेका थिए। उनी कर्तव्यनिष्ठ र राजारानीका भक्त पनि मानिएका थिए। दरबारमा यस्तै अस्मिता नभएको स्वविवेक मार्न सक्ने अन्धभक्तको कदर त्यसबेला हुन्थ्यो। ==माथवर्सिंह थापाको हत्या== ==प्रधानसेनापति == प्रधानमन्त्री [[माथवरसिंह थापा|माथवरसिंह]]को हत्या पछि गगनसिंह प्रधानसेनापति भए। उनी नेपाल दरबारमा प्रतिष्ठा प्राप्त भारदार हुन पुगेका थिए। उनी कर्तव्यनिष्ठ र राजारानीका भक्त पनि मानिएका थिए। त्यसो हुनाले नै निजलाई [[श्रीनाथ गण|श्रीनाथ]], लेटर, [[राजदल गण|राजदल]], महिन्द्रदल, रामदल, कालीप्रसाद, शमशेरदल जस्ता ७ वटा पल्टनको तैनाथी दिइएको थियो। त्यसका साथै राज्य प्रशासन, परराष्ट्र, जङ्गीखाना र तराईको रेखदेख गर्ने जिम्मा पनि उनैलाई दिइयो। प्रधानसेनापति गगनसिंहको शक्ति प्रधानमन्त्रीको भन्दा पनि बढ्ता भएको थियो। प्रधानमन्त्री [[फत्तेजङ्ग शाह|फत्तेजङ]]को आदेश गगनसिंहले अटेर गरिदिन्थे। त्यसैमा फत्तेजङको गुनासो थियो।<ref>{{cite book|title=नेपालको तथ्य इतिहास|author=प्रा. डा. [[राजाराम सुवेदी]]|page=२२७|date=फागुन २०६१|publisher=[[साझा प्रकाशन]]|isbn=99933-2-406-X|url=}}</ref> == हत्या == {{main|कोत पर्व}}वि.सं. १९०३ भदौ ३१ को राति आफ्नै घरमा पूजा गरिरहेका बेला उनको हत्या भयो । गगनसिंहको हत्या कसले गर्यो भन्नेबारे लेखकहरूका भिन्नाभिन्नै धारणा छन् । कसैले राजा र मुख्तियारको मिलेमतोमा लाल झा नामका कुख्यात व्यक्तिले उनको हत्या गरेको भनेका छन् भने कसैले चाहिं जंगबहादुरले आफू शक्तिशाली बन्न आफ्ना भाइ [[बद्री नरसिंह राणा|बद्रीनरसिंह]]द्वारा उक्त हत्या गराएको भनी लेखेका छन् । गगनसिंहको हत्याको रहस्य सायद कहिल्यै पनि अगाडि आउँदैन । तर एउटा कुरा के भन्न सकिन्छ भने गगनसिंहको उदय राजा, मुख्तियारलगायत कसैलाई मन परेको थिएन र उनको पतन लक्ष्मीदेवी बाहेक सबैले चाहेका थिए । आफ्ना बाबुको पूजाकोठामा सन्ध्या गरिरहेको बेलामा अज्ञात व्यक्तिले बन्दुक हानी हत्या गरी भागेको कुरा गगनसिंहका छोरा बजीरसिंहले तुरुन्तै महारानीकहाँ रुँदै गएर पुर्याए। महारानीले तत्कालै राति नै बत्ती लिएर चार जना दरबारिया नानीसुसारे साथ हातमा नाङ्गो तरबार लिएर गगनसिंहको घरमा पुगिन्। गगनसिंहको शव गोली प्रहारबाट रक्ताम्मे भएको थियो, डरका कारण कसैले छोएको थिएन। त्यस्तो देखेर उनले दाह्रा किट्दै लामालामा सास तान्दै भनिन्- "यदि गगनसिंहको हत्याको बदला लिन सकिनँ भने म लक्ष्मीदेवी नै होइन।" त्यसपछि गगनसिंहको लास आर्यघाट लिएर जाने आज्ञा महारानीले गर्दै मूल ढुकुटीबाट किरिया खर्च स्वरुप १ लाख रुपियाँ निकासा गर्ने आदेश दिइन्।<ref>{{cite book|title=नेपालको ऐतिहासिक रुपरेखा|author= [[बालचन्द्र शर्मा]]|page=३०७|date=२०२२|publisher=वाराणासी: कृष्णकुमारी देवी|isbn=|url=}}</ref> वि.सं. १९०३ भदौ ३१ गते राति [[राज्यलक्ष्मी देवी|महारानी राज्यलक्ष्मी]]को प्रिय पात्र तथा मन्त्रीपरिषद्का सदस्य गगन सिंह खवासको रहस्यमय ढङ्गले गरिएको हत्यारा पत्ता लगाउन महारानीको आदेशले वि.सं. १९०३ भदौ ३२ गते शनिबार राति सबै भारदारहरूलाई कोतको परिसरमा जम्मा हुने आदेश अनुसार कोतमा भेला भए । === '''कोतपर्व''' === [[कोत पर्व|कोतपर्व]] भइसकेपछि ढोकाटोलस्थित गगनसिंहको घरमा [[जङ्गबहादुर राणा]]का काहिँला भाइ [[कृष्णबहादुर राणा]] बस्न थालेका थिए । उनको सन्तान नरहेको हुनाले त्यही घर कृष्णबहादुरको मृत्यु पछि [[देव शमशेर जङ्गबहादुर राणा|देव शम्सेर]]ले पाए । <ref>[http://gorkhapatraonline.com/news/35598 चर्चामा मोतीरामको घर] '''[http://gorkhapatraonline.com/news/35598 प्रकाश ए. राज]''' </ref> नेपालको इतिहासमा चर्चित [[कोत पर्व|कोतपर्व]] उनकै हत्याका आधारमा घटेको मानिन्छ। उनका दुइ छोरा वजीर सिंह र बद्री सिंह भण्डारीले भण्डारखालमा षड्यन्त्र रच्दा उल्टा पर्न गई [[भण्डारखाल पर्व]] मच्चिएको थियो ।<ref>लेखक: श्रीकृष्ण श्रेष्ठ,पुस्तक:जंगबहादुर</ref><ref>https://books.google.com.np/books?id=MX22o4PJ3Q0C&pg=PA32&lpg=PA32&dq=birdhoj+basnyat&source=bl&ots=079mP7NvJ_&sig=lKp-KVqfCPsGnJNe6A8DNQOZIN8&hl=en&sa=X&ved=0ahUKEwiG3O2wgfTSAhUDO48KHS1uAAUQ6AEIGDAA#v=onepage&q=birdhoj%20basnyat&f=false</ref> == रानी राज्यलक्ष्मीसँगको सम्बन्ध == रानी राज्यलक्ष्मी एक क्षमतावान र राजनितिमा, राजकाजमा रुची राख्ने रानी थिइन । दरवारमा उनले रिजाएर राख्ने केहि भारदार थिए जसको आडमा उनी दरवार चलाउथिन । ति मध्ये एक थिए गगन सिं । गगन सिं निकै राम्रा, आकर्षक र प्रभावशाली व्यक्ति थिए । रानी उनको व्यक्तित्वबाट समेत आकर्षित थिइन । राजा राजेन्द्र राजकाजमा रुचि नराख्ने,दरवारिया रखौटिहरूसँग मात्र समय विताउने हुँदा रानीको मनमा पनि राजा प्रति रुचि घटेको आकलन गर्न सकिन्छ । रानी र गगन सिं विच प्रेम थियो भन्ने समेत दरवारमा गाँइगुइ चलेको थियो । साथै गगन सिंको आफ्नै एक प्रमिका थिइन र ति प्रमिकासँग गगन सिंलाइ नजिक हुन नदिन गगन सिंलाइ अनेक बहानामा आफ्नै वरिपरि राख्थिन । गगन सिं भने ति प्रेमिकाको प्रेममा पागल झै भएका थिए । यो कुरा औपन्यासिक ढङ्गले डाइमन सम्शेरले आफ्नो उपन्यास बसन्तीमा लेखेका छन । रानीसँगको बढ्दो हेलमेल दरवारमा एककान दुइ कान हुदै फैलियो । यसै कारण राजा राजेन्द्र युवराज सुरेन्द्र वा जंगबहादुर मध्ये एकले वा आपसि मिलेमतोमा गगन सिंको हत्या हुन गएको समेत आकलन गर्न सकिन्छ । == चलचित्र == * चलचित्र वसन्तीमा गगन सिंहको भूमिका [[राजेश हमाल]]ले खेलेका छन् । ==सन्दर्भ सामग्रीहरू== {{reflist}} ==बाह्य कडीहरू== {{stub}} [[श्रेणी:नेपाली सेनाका प्रधान सेनापतिहरू]] [[श्रेणी:पदमा रहँदा नै मृत्यु हुने व्यक्तिहरू]] elzstqvt8ikr2ibqzxlk017tq7xgbam मोड्युल:Location map 828 63060 1372320 1369102 2026-08-25T17:09:36Z पर्वत सुवेदी 31224 1372320 Scribunto text/plain require('strict') local p = {} local getArgs = require('Module:Arguments').getArgs local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getMapParams(map, frame) if not map then error('प्रयोग गरिने ठाउँको ढाँचा नक्सा (Location map)को नाम उल्लेख गर्नुपर्छ', 2) end local moduletitle = mw.title.new('Module:Location map/data/' .. map) if not moduletitle then error(string.format('%q ठाउँको ढाँचा नक्साका लागि मान्य नाम होइन', map), 2) elseif moduletitle.exists then local mapData = mw.loadData('Module:Location map/data/' .. map) return function(name, params) if name == nil then return 'Module:Location map/data/' .. map elseif mapData[name] == nil then return '' elseif params then return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain() else return mapData[name] end end else error('निर्दिष्ट गरिएको ठाउँको नक्सा फेला पार्न सकिएन: "Module:Location map/data/' .. map .. '" अवस्थित छैन', 2) end end function p.data(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true}) end if not map then map = p.getMapParams(args[1], frame) end local params = {} for k,v in ipairs(args) do if k > 2 then params[k-2] = v end end return map(args[2], #params ~= 0 and params) end local hemisphereMultipliers = { longitude = { W = -1, w = -1, E = 1, e = 1 }, latitude = { S = -1, s = -1, N = 1, n = 1 } } local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction) if decimal then if degrees then error(direction .. ' को लागि दशमलब र DMS (डिग्री/मिनेट/सेकेन्ड) दुवै दिन सकिँदैन', 2) elseif minutes then error(direction .. ' को मिनेट DMS डिग्रीसँग मात्र दिन सकिन्छ', 2) elseif seconds then error(direction .. ' को सेकेन्ड DMS डिग्रीसँग मात्र दिन सकिन्छ', 2) elseif hemisphere then error(direction .. ' को गोलार्ध DMS डिग्रीसँग मात्र दिन सकिन्छ', 2) end local retval = tonumber(decimal) if retval then return retval end error(direction .. ' का लागि दिइएको मान "' .. decimal .. '" अमान्य छ', 2) elseif seconds and not minutes then error(direction .. ' का लागि मिनेट बिना नै सेकेन्ड दिइयो', 2) elseif not degrees then if minutes then error(direction .. ' का लागि डिग्री बिना नै मिनेट दिइयो', 2) elseif hemisphere then error(direction .. ' का लागि डिग्री बिना नै गोलार्ध दिइयो', 2) end return nil end decimal = tonumber(degrees) if not decimal then error(direction .. ' का लागि दिइएको डिग्री मान "' .. degrees .. '" अमान्य छ', 2) elseif minutes and not tonumber(minutes) then error(direction .. ' का लागि दिइएको मिनेट मान "' .. minutes .. '" अमान्य छ', 2) elseif seconds and not tonumber(seconds) then error(direction .. ' का लागि दिइएको सेकेन्ड मान "' .. seconds .. '" अमान्य छ', 2) end decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600 if hemisphere then local multiplier = hemisphereMultipliers[direction][hemisphere] if not multiplier then error(direction .. ' का लागि दिइएको गोलार्ध "' .. hemisphere .. '" अमान्य छ', 2) end decimal = decimal * multiplier end return decimal end -- Finds a parameter in a transclusion of {{Coord}}. local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign local lat, long = mw.ustring.match(coord,'<span class="p%-latitude latitude">([^<]+)</span><span class="p%-longitude longitude">([^<]+)</span>') if lat then return tonumber(para == 'longitude' and long or lat) end local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NS] %-?[%.%d]+°[EW]') or '', '[ °]') if para == 'longitude' then result = {result[3], result[4]} end if not tonumber(result[1]) or not result[2] then mw.log('विकृत निर्देशाङ्क मान') mw.logObject(para, 'para') mw.logObject(coord, 'coord') return error('विकृत निर्देशाङ्क मान', 2) end return tonumber(result[1]) * hemisphereMultipliers[para][result[2]] end -- effectively make removeBlanks false for caption and maplink, and true for everything else -- if useWikidata is present but blank, convert it to false instead of nil -- p.top, p.bottom, and their callers need to use this function p.valueFunc(key, value) if value then value = mw.text.trim(value) end if value ~= '' or key == 'caption' or key == 'maplink' then return value elseif key == 'useWikidata' then return false end end local function getContainerImage(args, map) if args.AlternativeMap then return args.AlternativeMap elseif args.relief then local digits = mw.ustring.match(args.relief,'^[1-9][0-9]?$') -- image1 to image99 if digits then local imageDigits = map('image' .. digits) if imageDigits ~= '' then return imageDigits end end local yesNo = require('Module:Yesno') if yesNo(args.relief,true) then local image1 = map('image1') if image1 ~= '' then return image1 end end end return map('image') end function p.top(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local width local default_as_number = tonumber(mw.ustring.match(tostring(args.default_width),"%d*")) if not args.width then width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) elseif mw.ustring.sub(args.width, -2) == 'px' then width = mw.ustring.sub(args.width, 1, -3) else width = args.width end local width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; if width_as_number == 0 then -- check to see if width is junk. If it is, then use default calculation width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; end if args.max_width ~= "" and args.max_width ~= nil then -- check to see if width bigger than max_width local max_as_number = tonumber(mw.ustring.match(args.max_width,"%d*")) or 0; if width_as_number>max_as_number and max_as_number>0 then width = args.max_width; end end local retval = frame:extensionTag{name = 'templatestyles', args = {src = 'Module:Location map/styles.css'}} if args.float == 'center' then retval = retval .. '<div class="center">' end if args.caption and args.caption ~= '' and args.border ~= 'infobox' then retval = retval .. '<div class="locmap noresize thumb ' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'floatleft' elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' then retval = retval .. 'tnone' else retval = retval .. 'floatright' end retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px' if args.border == 'none' then retval = retval .. ';border:none' elseif args.border then retval = retval .. ';border-color:' .. args.border end retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. (args.border ~= 'none' and ';border:1px solid lightgray">' or '">') else retval = retval .. '<div class="locmap" style="width:' .. width .. 'px;' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'float:left;clear:left' elseif args.float == '"center"' or args.float == 'center' then retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto' elseif args.float == '"none"' or args.float == 'none' then retval = retval .. 'float:none;clear:none' else retval = retval .. 'float:right;clear:right' end retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">' end local image = getContainerImage(args, map) local currentTitle = mw.title.getCurrentTitle() retval = string.format( '%s[[File:%s|%spx|%s%s|class=notpageimage noviewer]]', retval, image, width, args.alt or ((args.label or currentTitle.text) .. ' को ' .. map('name') .. ' मा अवस्थिति'), args.maplink and ('|link=' .. args.maplink) or '' ) if args.caption and args.caption ~= '' then if (currentTitle.namespace == 0) and mw.ustring.find(args.caption, '##') then retval = retval .. '[[श्रेणी:क्यापसनमा दोहोरो ह्यास चिन्ह प्रयोग गरिएका ढाँचा नक्सा पृष्ठहरू]]' end end if args.overlay_image then return retval .. '<div style="position:absolute;top:0;left:0">[[File:' .. args.overlay_image .. '|' .. width .. 'px|class=notpageimage noviewer]]</div>' else return retval end end function p.bottom(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local retval = '</div>' local currentTitle = mw.title.getCurrentTitle() if not args.caption or args.border == 'infobox' then if args.border then retval = retval .. '<div style="padding-top:0.2em">' else retval = retval .. '<div style="font-size:91%;padding-top:3px">' end retval = retval .. (args.caption or (args.label or currentTitle.text) .. ' (' .. map('name') .. ')') .. '</div>' elseif args.caption ~= '' then -- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:File:' .. getContainerImage(args, map) .. '| ]]</div>' .. args.caption .. '</div>' end if args.switcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>' elseif args.autoSwitcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. map('name') .. 'को नक्सा देखाउनुहोस्</span>' end retval = retval .. '</div></div>' if args.caption_undefined then mw.log('हटाइएको क्याप्सन अमान्य प्यारामिटर प्रयोग भयो।') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then retval = retval .. '[[Category:हटाइएका प्यारामिटरहरू भएका स्थान नक्साहरू|caption_undefined]]' end end if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then mw.log('नक्सा परिभाषा ' .. map() .. ' मा हटाइएको प्यारामिटर प्रयोग भयो।') if currentTitle.namespace == 0 then local key = (map('skew') ~= '' and 'skew' or '') .. (map('lat_skew') ~= '' and 'lat_skew' or '') .. (map('crosses180') ~= '' and 'crosses180' or '') .. (map('type') ~= '' and 'type' or '') retval = retval .. '[[Category:हटाइएका प्यारामिटरहरू भएका स्थान नक्साहरू|' .. key .. ' ]]' end end if string.find(map('name'), '|', 1, true) then mw.log('नक्सा परिभाषाको नाममा पाइप (|) चिन्ह प्रयोग भयो: ' .. map()) if currentTitle.namespace == 0 then retval = retval .. '[[श्रेणी:नाममा पाइप चिन्ह भएका स्थान नक्साहरू]]' end end if args.float == 'center' then retval = retval .. '</div>' end return retval end local function markOuterDiv(x, y, imageDiv, labelDiv, label_size) return mw.html.create('div') :addClass('od') :addClass('notheme') -- T236137 :cssText('top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%;font-size:' .. label_size .. '%') :node(imageDiv) :node(labelDiv) end local function markImageDiv(mark, marksize, label, link, alt, title) local builder = mw.html.create('div') :addClass('id') :cssText('left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px') :attr('title', title) if marksize ~= 0 then builder:wikitext(string.format( '[[File:%s|%dx%dpx|%s|link=%s%s|class=notpageimage noviewer]]', mark, marksize, marksize, label, link, alt and ('|alt=' .. alt) or '' )) end return builder end local function markLabelDiv(label, label_size, label_width, position, background, x, marksize) if tonumber(label_size) == 0 then return mw.html.create('div'):addClass('l0'):wikitext(label) end local builder = mw.html.create('div') :cssText('width:' .. label_width .. 'em') local distance = round(marksize / 2 + 1) if position == 'top' then -- specified top builder:addClass('pv'):cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'bottom' then -- specified bottom builder:addClass('pv'):cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left builder:addClass('pl'):cssText('right:' .. distance .. 'px') else -- specified right or autodetected to right builder:addClass('pr'):cssText('left:' .. distance .. 'px') end builder = builder:tag('div') :wikitext(label) if background then builder:cssText('background-color:' .. background) end return builder:done() end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end function p.mark(frame, args, map) if not args then args = getArgs(frame, {wrappers = 'Template:Location map~'}) end local mapnames = {} if not map then if args[1] then map = {} for mapname in mw.text.gsplit(args[1], '#', true) do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) mapnames[#mapnames + 1] = mapname end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) args[1] = 'World' end end if type(map) == 'table' then local outputs = {} local oldargs = args[1] for k,v in ipairs(map) do args[1] = mapnames[k] outputs[k] = tostring(p.mark(frame, args, v)) end args[1] = oldargs return table.concat(outputs, '#PlaceList#') .. '#PlaceList#' end local x, y, longitude, latitude longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude') latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude') if args.excludefrom then -- If this mark is to be excluded from certain maps entirely (useful in the context of multiple maps) for exclusionmap in mw.text.gsplit(args.excludefrom, '#', true) do -- Check if this map is excluded. If so, return an empty string. if args[1] == exclusionmap then return '' end end end local builder = mw.html.create() local currentTitle = mw.title.getCurrentTitle() if args.coordinates then -- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]] -- if longitude or latitude then -- error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided') -- end longitude = coord2text('longitude', args.coordinates) latitude = coord2text('latitude', args.coordinates) elseif not longitude and not latitude and args.useWikidata then -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. local entity = mw.wikibase.getEntity() if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local value = entity.claims.P625[1].mainsnak.datavalue.value longitude, latitude = value.longitude, value.latitude end if args.link and (currentTitle.namespace == 0) then builder:wikitext('[[Category:विकिडाटाबाट निर्देशाङ्क लिइएका लिङ्क गरिएका मार्करहरू भएका स्थान नक्साहरू]]') end end if not longitude then error('देशान्तर रेखा (longitude) को लागि कुनै मान दिइएको छैन') elseif not latitude then error('अक्षांश रेखा (latitude) को लागि कुनै मान दिइएको छैन') end if currentTitle.namespace > 0 then if (not args.lon_deg) ~= (not args.lat_deg) then builder:wikitext('[[Category:फरक देशान्तर र अक्षांश शुद्धता भएका स्थान नक्साहरू|Degrees]]') elseif (not args.lon_min) ~= (not args.lat_min) then builder:wikitext('[[Category:फरक देशान्तर र अक्षांश शुद्धता भएका स्थान नक्साहरू|Minutes]]') elseif (not args.lon_sec) ~= (not args.lat_sec) then builder:wikitext('[[Category:फरक देशान्तर र अक्षांश शुद्धता भएका स्थान नक्साहरू|Seconds]]') elseif (not args.lon_dir) ~= (not args.lat_dir) then builder:wikitext('[[Category:फरक देशान्तर र अक्षांश शुद्धता भएका स्थान नक्साहरू|Hemisphere]]') elseif (not args.long) ~= (not args.lat) then builder:wikitext('[[Category:फरक देशान्तर र अक्षांश शुद्धता भएका स्थान नक्साहरू|Decimal]]') end end if ((tonumber(args.lat_deg) or 0) < 0) and ((tonumber(args.lat_min) or 0) ~= 0 or (tonumber(args.lat_sec) or 0) ~= 0 or (args.lat_dir and args.lat_dir ~='')) then builder:wikitext('[[Category:ऋणात्मक डिग्री र मिनेट वा सेकेन्ड भएका स्थान नक्साहरू]]') end if ((tonumber(args.lon_deg) or 0) < 0) and ((tonumber(args.lon_min) or 0) ~= 0 or (tonumber(args.lon_sec) or 0) ~= 0 or (args.lon_dir and args.lon_dir ~= '')) then builder:wikitext('[[Category:ऋणात्मक डिग्री र मिनेट वा सेकेन्ड भएका स्थान नक्साहरू]]') end if (((tonumber(args.lat_min) or 0) < 0) or ((tonumber(args.lat_sec) or 0) < 0)) then builder:wikitext('[[Category:ऋणात्मक डिग्री र मिनेट वा सेकेन्ड भएका स्थान नक्साहरू]]') end if (((tonumber(args.lon_min) or 0) < 0) or ((tonumber(args.lon_sec) or 0) < 0)) then builder:wikitext('[[Category:ऋणात्मक डिग्री र मिनेट वा सेकेन्ड भएका स्थान नक्साहरू]]') end if args.skew or args.lon_shift or args.markhigh then mw.log('अवाह्वानमा हटाइएको प्यारामिटर प्रयोग गरियो।') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = (args.skew and 'skew' or '') .. (args.lon_shift and 'lon_shift' or '') .. (args.markhigh and 'markhigh' or '') builder:wikitext('[[Category:हटाइएका प्यारामिटरहरू भएका स्थान नक्साहरू|' .. key ..' ]]') end end if map('x') ~= '' then x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude }))) else x = tonumber(getX(longitude, map('left'), map('right'))) end if map('y') ~= '' then y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude }))) else y = tonumber(getY(latitude, map('top'), map('bottom'))) end if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then mw.log('बाहिरी (outside) फ्ल्याग सेट नगरिकन चिन्ह नक्साको सिमाना बाहिर राखियो। x = ' .. x .. ', y = ' .. y) local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = currentTitle.prefixedText builder:wikitext('[[श्रेणी:नक्सा बाहिर चिन्ह भएका र बाहिरी प्यारामिटर सेट नभएका स्थान नक्साहरू|' .. key .. ' ]]') end end local mark = args.mark or map('mark') if mark == '' then mark = 'Red pog.svg' end local marksize = tonumber(args.marksize) or tonumber(map('marksize')) or 8 local imageDiv = markImageDiv(mark, marksize, args.label or mw.title.getCurrentTitle().text, args.link or '', args.alt, args[2]) local label_size = args.label_size or 91 local labelDiv if args.label and args.position ~= 'none' then labelDiv = markLabelDiv(args.label, label_size, args.label_width or 6, args.position, args.background, x, marksize) end return builder:node(markOuterDiv(x, y, imageDiv, labelDiv, label_size)) end local function switcherSeparate(s) if s == nil then return {} end local retval = {} for i in string.gmatch(s .. '#', '([^#]*)#') do i = mw.text.trim(i) retval[#retval + 1] = (i ~= '' and i) end return retval end function p.infobox_pushpin_map(frame) --This function is designed to be invoked from an infobox template --* Some parameters (generally starting with "pushpin_") are meant to be exposed as parameters -- in the outer infobox, settable by editors --* Others are meant to be "hidden" (e.g., only set inside the infobox template code) -- First get the combined arguments from both parent and invocation frame local raw_args = getArgs(frame,{parentFirst=true}) --If no map is supplied, return. if not raw_args['pushpin_map'] then return end -- Now get arguments from just the invocation frame local frame_args = getArgs(frame,{frameOnly=true}) -- parsed_args will have the resulting merged parameters local parsed_args = {} -- Default to using wikidata coodinates if no other coordiantes supplied. if raw_args.useWikidata == nil then parsed_args.useWikidata = true else parsed_args.useWikidata = raw_args.useWikidata end -- Parse the arguments parsed_args[1] = raw_args['pushpin_map'] parsed_args.float = frame_args.float or 'center' parsed_args.border = frame_args.border or 'infobox' parsed_args.default_width = frame_args.default_width parsed_args.max_width = frame_args.max_width parsed_args.coordinates = raw_args['coordinates'] parsed_args.caption = raw_args['pushpin_caption'] parsed_args.relief = raw_args['pushpin_relief'] parsed_args.label = raw_args['pushpin_label'] parsed_args.label_size = raw_args['pushpin_label_size'] parsed_args.position = raw_args['pushpin_label_position'] parsed_args.mark = raw_args['pushpin_mark'] parsed_args.marksize = raw_args['pushpin_mark_size'] parsed_args.alt = raw_args['pushpin_alt'] parsed_args.background = raw_args['pushpin_background'] parsed_args.width = raw_args['pushpin_map_size'] local map = {} local caption_list = {} for mapname in string.gmatch(parsed_args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) end if parsed_args['caption'] then for caption in mw.text.gsplit(parsed_args['caption'], '##', true) do caption_list[#caption_list + 1] = caption end end if #map == 1 then map = map[1] if not parsed_args.caption then parsed_args.caption = map('name') .. ' मा अवस्थिति' end end if type(map) == 'table' then mw.log('----') mw.logObject(map) if #caption_list > #map then error(string.format('%d वटा क्याप्सनहरू दिइएका छन्, तर %d वटा मात्र नक्साहरू उपलब्ध छन्', #caption_list, #map)) elseif not parsed_args.caption then -- Set a default caption for each of the multiple maps for i=1, #map do caption_list[#caption_list + 1] = map[i]('name') .. 'मा अवस्थिति' end end local outputs = {} parsed_args.autoSwitcherLabel = true for k,v in ipairs(map) do parsed_args.caption = caption_list[k] outputs[k] = p.main(frame, parsed_args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, parsed_args, map) .. tostring( p.mark(frame, parsed_args, map) ) .. p.bottom(frame, parsed_args, map) end end function p.main(frame, args, map) local caption_list = {} if not args then args = getArgs(frame, {wrappers = 'Template:Location map', valueFunc = p.valueFunc}) end if args.useWikidata == nil then args.useWikidata = true end if not map then if args[1] then map = {} for mapname in string.gmatch(args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) end if args['caption'] then if args['caption'] == "" then while #caption_list < #map do caption_list[#caption_list + 1] = args['caption'] end else for caption in mw.text.gsplit(args['caption'], '##', true) do caption_list[#caption_list + 1] = caption end end end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) end end if type(map) == 'table' then local altmaps = switcherSeparate(args.AlternativeMap) if #altmaps > #map then error(string.format('%d वटा AlternativeMaps दिइएका छन्, तर %d वटा मात्र नक्साहरू उपलब्ध छन्', #altmaps, #map)) end local overlays = switcherSeparate(args.overlay_image) if #overlays > #map then error(string.format('%d वटा overlay_images दिइएका छन्, तर %d वटा मात्र नक्साहरू उपलब्ध छन्', #overlays, #map)) end if #caption_list > #map then error(string.format('%d वटा क्याप्सनहरू दिइएका छन्, तर %d वटा मात्र नक्साहरू उपलब्ध छन्', #caption_list, #map)) end local outputs = {} args.autoSwitcherLabel = true for k,v in ipairs(map) do args.AlternativeMap = altmaps[k] args.overlay_image = overlays[k] args.caption = caption_list[k] outputs[k] = p.main(frame, args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map) end end return p tosnw8miyr8qou8uvi8mn74tvdx03fp 1372338 1372320 2026-08-26T03:13:49Z पर्वत सुवेदी 31224 परिक्षण 1372338 Scribunto text/plain require('strict') local p = {} local _getArgs = require('Module:Arguments').getArgs local erjog = require('मोड्युल:को')._fix local function getArgsX(args, ...) -- Return args after translation. local noTranslate = { [1] = true, -- do not translate name of map AlternativeMap = true, alt = true, caption = true, label = true, link = true, mark = true, overlay_image = true, } args = args or _getArgs(...) if not args._doneTranslate_ then local clone = {} -- cleaner to not change caller's table for k, v in pairs(args) do if type(v) ~= 'string' or noTranslate[k] then clone[k] = v else v = mw.ustring.gsub(v, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) clone[k] = v :gsub(' *उत्तर', 'N') :gsub(' *पूर्व' , 'E') :gsub(' *दक्षिण', 'S') :gsub(' *पश्चिम', 'W') end end clone._doneTranslate_ = true return clone end return args end local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getMapParams(map, frame) if not map then error('ব্যবহারের জন্য অবস্থান মানচিত্রের সংজ্ঞার নাম অবশ্যই সুনির্দিষ্ট করতে হবে', 2) end local moduletitle = mw.title.new('Module:Location map/data/' .. map) if not moduletitle then error('অবস্থান মানচিত্রের সংজ্ঞার জন্য "' .. map .. '" কোনো বৈধ নাম নয়', 2) elseif moduletitle.exists then local mapData = mw.loadData('Module:Location map/data/' .. map) return function(name, params) if name == nil then return 'মডিউল:অবস্থান মানচিত্র/উপাত্ত/' .. map elseif mapData[name] == nil then return '' elseif params then return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain() else return mapData[name] end end elseif mw.title.new('ढाँचा:Location map ' .. map).exists then local cache = {} if type(frame) ~= 'table' or type(frame.expandTemplate) ~= 'function' then error('একটি উত্তরাধিকার অবস্থান মানচিত্র ব্যবহার করার সময় একটি ফ্রেম প্রদান করা আবশ্যক') end return function(name, params) if params then return frame:expandTemplate{title = 'Location map ' .. map, args = { name, unpack(params) }} else if name == nil then return 'ढाँचा:Location map ' .. map elseif cache[name] == nil then cache[name] = frame:expandTemplate{title = 'Location map ' .. map, args = { name }} end return cache[name] end end else error('নির্দিষ্ট অবস্থান মানচিত্রের সংজ্ঞা খুঁজে পাওয়া যায়নি। "মডিউল:অবস্থান মানচিত্র/উপাত্ত/' .. map .. '" বা "টেমপ্লেট:অবস্থান মানচিত্র ' .. map .. '" দুটির একটিও বিদ্যমান নয়', 2) end end function p.data(frame, args, map) args = getArgsX(args, frame, {frameOnly = true}) if not map then map = p.getMapParams(args[1], frame) end local params = {} for k,v in ipairs(args) do if k > 2 then params[k-2] = v end end return map(args[2], #params ~= 0 and params) end local hemisphereMultipliers = { longitude = { W = -1, w = -1, E = 1, e = 1 }, latitude = { S = -1, s = -1, N = 1, n = 1 } } local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction) if decimal then if degrees then error(direction .. '-এর জন্য দশমিক এবং DMS ডিগ্রী উভয় প্রদান করা যাবে না', 2) elseif minutes then error(direction .. '-এর জন্য শুধুমাত্র DMS ডিগ্রীসহ মিনিট প্রদান করা যেতে পারে', 2) elseif seconds then error(direction .. '-এর জন্য শুধুমাত্র DMS ডিগ্রীসহ সেকেন্ড প্রদান করা যেতে পারে', 2) elseif hemisphere then error(direction .. '-এর জন্য শুধুমাত্র DMS ডিগ্রীসহ গোলার্ধ প্রদান করা যেতে পারে', 2) end local retval = tonumber(decimal) if retval then return retval end error(direction .. '-এর জন্য প্রণীত "'.. decimal .. '" মানটি বৈধ নয়', 2) elseif seconds and not minutes then error('মিনিট প্রদান করা ছাড়াই ' .. direction .. '-এর জন্য সেকেন্ড প্রদান করা হয়েছে', 2) elseif not degrees then if minutes then error('ডিগ্রি প্রদান করা ছাড়াই ' .. direction .. '-এর জন্য মিনিট প্রদান করা হয়েছে', 2) elseif hemisphere then error('ডিগ্রি প্রদান করা ছাড়াই ' .. direction .. '-এর জন্য গোলার্ধ প্রদান করা হয়েছে', 2) end return nil end decimal = tonumber(degrees) if not decimal then error(direction .. '-এর জন্য প্রণীত "'.. degrees .. '" ডিগ্রি মানটি বৈধ নয়', 2) elseif minutes and not tonumber(minutes) then error(direction .. '-এর জন্য প্রণীত "'.. minutes .. '" মিনিট মানটি বৈধ নয়', 2) elseif seconds and not tonumber(seconds) then error(direction .. '-এর জন্য প্রণীত "'.. seconds .. '"সেকেন্ড মানটি বৈধ নয়', 2) end decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600 if hemisphere then local multiplier = hemisphereMultipliers[direction][hemisphere] if not multiplier then error(direction .. '-এর জন্য প্রণীত "'.. hemisphere .. '" গোলার্ধ মানটি বৈধ নয়', 2) end decimal = decimal * multiplier end return decimal end -- Finds a parameter in a transclusion of {{Coord}}. local function coord2text(para, coord) local value, direction, longitude, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if para == 'longitude' then value, direction = longitude, ew end value = tonumber(value) if value then return value * hemisphereMultipliers[para][direction] end error('विकृत निर्देशाङ्क मान', 2) end -- effectively make removeBlanks false for caption and maplink, and true for everything else -- if useWikidata is present but blank, convert it to false instead of nil -- p.top, p.bottom, and their callers need to use this function p.valueFunc(key, value) if value then value = mw.text.trim(value) end if value ~= '' or key == 'caption' or key == 'maplink' then return value elseif key == 'useWikidata' then return false end end local function getContainerImage(args, map) if args.AlternativeMap then return args.AlternativeMap elseif args.relief and map('image1') ~= '' then return map('image1') else return map('image') end end function p.top(frame, args, map) args = getArgsX(args, frame, {frameOnly = true, valueFunc = p.valueFunc}) if not map then map = p.getMapParams(args[1], frame) end local width if not args.width then width = round((args.default_width or 240) * (tonumber(map('defaultscale')) or 1)) elseif mw.ustring.sub(args.width, -2) == 'px' then width = mw.ustring.sub(args.width, 1, -3) else width = args.width end local retval = args.float == 'center' and '<div class="center">' or '' if args.caption and args.caption ~= '' and args.border ~= 'infobox' then retval = retval .. '<div class="noviewer thumb ' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'tleft' elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' then retval = retval .. 'tnone' else retval = retval .. 'tright' end retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px' if args.border == 'none' then retval = retval .. ';border:none' elseif args.border then retval = retval .. ';border-color:' .. args.border end retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. (args.border ~= 'none' and ';border:1px solid lightgray">' or '">') else retval = retval .. '<div style="width:' .. width .. 'px;' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'float:left;clear:left' elseif args.float == '"center"' or args.float == 'center' then retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto' elseif args.float == '"none"' or args.float == 'none' then retval = retval .. 'float:none;clear:none' else retval = retval .. 'float:right;clear:right' end retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">' end local image = getContainerImage(args, map) retval = string.format( '%s[[File:%s|%spx|%s%s]]', retval, image, width, args.alt or ((args.label or mw.title.getCurrentTitle().text) .. ' ' .. map('name') .. '-এ অবস্থিত'), args.maplink and ('|link=' .. args.maplink) or '' ) if args.overlay_image then return retval .. '<div style="position:absolute;top:0;left:0">[[File:' .. args.overlay_image .. '|' .. width .. 'px]]</div>' else return retval end end function p.bottom(frame, args, map) args = getArgsX(args, frame, {frameOnly = true, valueFunc = p.valueFunc}) if not map then map = p.getMapParams(args[1], frame) end local retval = '</div>' if not args.caption or args.border == 'infobox' then if args.border then retval = retval .. '<div>' else retval = retval .. '<div style="font-size:90%;padding-top:3px">' end retval = retval .. (args.caption or (args.label or mw.title.getCurrentTitle().text) .. ' (' .. map('name') .. ')') .. '</div>' elseif args.caption ~= '' then -- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:File:' .. getContainerImage(args, map) .. '| ]]</div>' .. args.caption .. '</div>' end if args.switcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>' elseif args.autoSwitcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. erjog(map('name')) .. ' नक्सामा हेर्नुहोस्</span>' end retval = retval .. '</div></div>' if args.caption_undefined then mw.log('সরানো হয়েছে প্যারামিটার caption_undefined ব্যবহার করা হয়েছে।') local parent = frame:getParent() if parent then mw.log('প্রধানটি হচ্ছে ' .. parent:getTitle()) end mw.logObject(args, 'args') retval = retval .. '[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|পাতা সরানো প্যারামিটার ব্যবহার করছে]]' end if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then mw.log(map().. ' মানচিত্রের নামের সংজ্ঞায় সরানো প্যারামিটার ব্যবহৃত হয়েছে') retval = retval .. '[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|পাতা সরানো প্যারামিটার ব্যবহার করছে]]' end if string.find(map('name'), '|', 1, true) then mw.log(map().. ' মানচিত্রের নামের সংজ্ঞায় পাইপ ব্যবহৃত হয়েছে') retval = retval .. '[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|নামে পাইপ রয়েছে]]' end if args.float == 'center' then retval = retval .. '</div>' end return retval end local function markOuterDiv(x, y, imageDiv, labelDiv) return mw.html.create('div') :cssText('position:absolute;top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%') :node(imageDiv) :node(labelDiv) end local function markImageDiv(mark, marksize, label, link, alt, title) local builder = mw.html.create('div') :cssText('position:absolute;left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px;line-height:0') :attr('title', title) if marksize ~= 0 then builder:wikitext(string.format( '[[File:%s|%dx%dpx|%s|link=%s%s]]', mark, marksize, marksize, label, link, alt and ('|alt=' .. alt) or '' )) end return builder end local function markLabelDiv(label, label_size, label_width, position, background, x, marksize) if tonumber(label_size) == 0 then return mw.html.create('div'):cssText('font-size:0%;position:absolute'):wikitext(label) end local builder = mw.html.create('div') :cssText('font-size:' .. label_size .. '%;line-height:110%;position:absolute;width:' .. label_width .. 'em') local distance = round(marksize / 2 + 1) local spanCss if position == 'top' then -- specified top builder:cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em;text-align:center') elseif position == 'bottom' then -- specified bottom builder:cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em;text-align:center') elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left builder:cssText('top:-0.75em;right:' .. distance .. 'px;text-align:right') spanCss = 'float:right' else -- specified right or autodetected to right builder:cssText('top:-0.75em;left:' .. distance .. 'px;text-align:left') spanCss = 'float:left' end builder = builder:tag('span') :cssText('padding:1px') :cssText(spanCss) :wikitext(label) if background then builder:cssText('background-color:' .. background) end return builder:done() end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end function p.mark(frame, args, map) args = getArgsX(args, frame, {wrappers = 'টেমপ্লেট:অবস্থান মানচিত্র~'}) if not map then map = p.getMapParams(args[1], frame) end local x, y, longitude, latitude longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude') latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude') if args.coordinates then -- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]] -- if longitude or latitude then -- error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided') -- end longitude = coord2text('longitude', args.coordinates) latitude = coord2text('latitude', args.coordinates) elseif not longitude and not latitude and args.useWikidata then -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. local entity = mw.wikibase.getEntity() if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local value = entity.claims.P625[1].mainsnak.datavalue.value longitude, latitude = value.longitude, value.latitude end end if not longitude then error('দ্রাঘিমাংশের জন্য কোন মান প্রদান করা হয়নি') elseif not latitude then error('অক্ষাংশের জন্য কোন মান প্রদান করা হয়নি') end local builder = mw.html.create() if (not args.lon_deg) ~= (not args.lat_deg) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|ডিগ্রি]]') elseif (not args.lon_min) ~= (not args.lat_min) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|মিনিট]]') elseif (not args.lon_sec) ~= (not args.lat_sec) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|সেকেন্ড]]') elseif (not args.lon_dir) ~= (not args.lat_dir) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|গোলার্ধ]]') elseif (not args.long) ~= (not args.lat) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|দশমিক]]') end if args.skew or args.lon_shift or args.markhigh then mw.log('নামোচ্চারণে সরানো প্যারামিটার ব্যবহার করা হয়েছে।') local parent = frame:getParent() if parent then mw.log('প্রধানটি ' .. parent:getTitle()) end mw.logObject(args, 'args') builder:wikitext('[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|পাতা সরানো প্যারামিটার ব্যবহার করছে]]') end if map('x') ~= '' then x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude }))) else x = tonumber(getX(longitude, map('left'), map('right'))) end if map('y') ~= '' then y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude }))) else y = tonumber(getY(latitude, map('top'), map('bottom'))) end if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then mw.log('বাইরে পতাকা সেট ছাড়াই মার্ক মানচিত্রের সীমানা বাইরে স্থাপিত হয়েছে। x = ' .. x .. ', y = ' .. y) local parent = frame:getParent() if parent then mw.log('প্রধানটি হচ্ছে ' .. parent:getTitle()) end mw.logObject(args, 'args') builder:wikitext('[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|মানচিত্রের বাইরে চিহ্নসহ বাইরের পতাকা নির্ধারন করা হয়নি]]') end local mark = args.mark or map('mark') if mark == '' then mark = 'Red pog.svg' end local marksize = tonumber(args.marksize) or tonumber(map('marksize')) or 8 local imageDiv = markImageDiv(mark, marksize, args.label or mw.title.getCurrentTitle().text, args.link or '', args.alt, args[2]) local labelDiv if args.label and args.position ~= 'none' then labelDiv = markLabelDiv(args.label, args.label_size or 90, args.label_width or 6, args.position, args.background, x, marksize) end return builder:node(markOuterDiv(x, y, imageDiv, labelDiv)) end local function switcherSeparate(s) if s == nil then return {} end local retval = {} for i in string.gmatch(s .. '#', '([^#]*)#') do i = mw.text.trim(i) retval[#retval + 1] = (i ~= '' and i) end return retval end function p.main(frame, args, map) args = getArgsX(args, frame, {wrappers = 'ढाँचा:Location map', valueFunc = p.valueFunc}) if args.useWikidata == nil then args.useWikidata = true end if not map then if args[1] then map = {} for mapname in string.gmatch(args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mapname, frame) end if #map == 1 then map = map[1] end else map = p.getMapParams('पृथ्वी', frame) end end if type(map) == 'table' then local altmaps = switcherSeparate(args.AlternativeMap) if #altmaps > #map then error(string.format('%d AlternativeMaps প্রদান করা হয়েছে, কিন্তু শুধুমাত্র %d মানচিত্রগুলি প্রদান করা হয়েছে', #altmaps, #map)) end local overlays = switcherSeparate(args.overlay_image) if #overlays > #map then error(string.format('%d overlay_images প্রদান করা হয়েছে, কিন্তু শুধুমাত্র %d মানচিত্রগুলি প্রদান করা হয়েছে', #overlays, #map)) end local outputs = {} args.autoSwitcherLabel = true for k,v in ipairs(map) do args.AlternativeMap = altmaps[k] args.overlay_image = overlays[k] outputs[k] = p.main(frame, args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map) end end return p 2vtdt0zffozl992479lsjgr6hgwuoyi 1372346 1372338 2026-08-26T03:36:07Z पर्वत सुवेदी 31224 1372346 Scribunto text/plain require('strict') local p = {} local _getArgs = require('Module:Arguments').getArgs local erjog = require('मोड्युल:को')._fix local function getArgsX(args, ...) -- Return args after translation. local noTranslate = { [1] = true, -- do not translate name of map AlternativeMap = true, alt = true, caption = true, label = true, link = true, mark = true, overlay_image = true, } args = args or _getArgs(...) if not args._doneTranslate_ then local clone = {} -- cleaner to not change caller's table for k, v in pairs(args) do if type(v) ~= 'string' or noTranslate[k] then clone[k] = v else v = mw.ustring.gsub(v, '%d', { ['०'] = '0', ['१'] = '1', ['२'] = '2', ['३'] = '3', ['४'] = '4', ['५'] = '5', ['६'] = '6', ['७'] = '7', ['८'] = '8', ['९'] = '9', }) clone[k] = v :gsub(' *उत्तर', 'N') :gsub(' *पूर्व' , 'E') :gsub(' *दक्षिण', 'S') :gsub(' *पश्चिम', 'W') end end clone._doneTranslate_ = true return clone end return args end local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getMapParams(map, frame) if not map then error('ব্যবহারের জন্য অবস্থান মানচিত্রের সংজ্ঞার নাম অবশ্যই সুনির্দিষ্ট করতে হবে', 2) end local moduletitle = mw.title.new('Module:Location map/data/' .. map) if not moduletitle then error('অবস্থান মানচিত্রের সংজ্ঞার জন্য "' .. map .. '" কোনো বৈধ নাম নয়', 2) elseif moduletitle.exists then local mapData = mw.loadData('Module:Location map/data/' .. map) return function(name, params) if name == nil then return 'मोड्युल:location map/data/' .. map elseif mapData[name] == nil then return '' elseif params then return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain() else return mapData[name] end end elseif mw.title.new('ढाँचा:Location map ' .. map).exists then local cache = {} if type(frame) ~= 'table' or type(frame.expandTemplate) ~= 'function' then error('একটি উত্তরাধিকার অবস্থান মানচিত্র ব্যবহার করার সময় একটি ফ্রেম প্রদান করা আবশ্যক') end return function(name, params) if params then return frame:expandTemplate{title = 'Location map ' .. map, args = { name, unpack(params) }} else if name == nil then return 'ढाँचा:Location map ' .. map elseif cache[name] == nil then cache[name] = frame:expandTemplate{title = 'Location map ' .. map, args = { name }} end return cache[name] end end else error('নির্দিষ্ট অবস্থান মানচিত্রের সংজ্ঞা খুঁজে পাওয়া যায়নি। "मोड्युल:location map/data/' .. map .. '" বা "টেমপ্লেট:অবস্থান মানচিত্র ' .. map .. '" দুটির একটিও বিদ্যমান নয়', 2) end end function p.data(frame, args, map) args = getArgsX(args, frame, {frameOnly = true}) if not map then map = p.getMapParams(args[1], frame) end local params = {} for k,v in ipairs(args) do if k > 2 then params[k-2] = v end end return map(args[2], #params ~= 0 and params) end local hemisphereMultipliers = { longitude = { W = -1, w = -1, E = 1, e = 1 }, latitude = { S = -1, s = -1, N = 1, n = 1 } } local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction) if decimal then if degrees then error(direction .. '-এর জন্য দশমিক এবং DMS ডিগ্রী উভয় প্রদান করা যাবে না', 2) elseif minutes then error(direction .. '-এর জন্য শুধুমাত্র DMS ডিগ্রীসহ মিনিট প্রদান করা যেতে পারে', 2) elseif seconds then error(direction .. '-এর জন্য শুধুমাত্র DMS ডিগ্রীসহ সেকেন্ড প্রদান করা যেতে পারে', 2) elseif hemisphere then error(direction .. '-এর জন্য শুধুমাত্র DMS ডিগ্রীসহ গোলার্ধ প্রদান করা যেতে পারে', 2) end local retval = tonumber(decimal) if retval then return retval end error(direction .. '-এর জন্য প্রণীত "'.. decimal .. '" মানটি বৈধ নয়', 2) elseif seconds and not minutes then error('মিনিট প্রদান করা ছাড়াই ' .. direction .. '-এর জন্য সেকেন্ড প্রদান করা হয়েছে', 2) elseif not degrees then if minutes then error('ডিগ্রি প্রদান করা ছাড়াই ' .. direction .. '-এর জন্য মিনিট প্রদান করা হয়েছে', 2) elseif hemisphere then error('ডিগ্রি প্রদান করা ছাড়াই ' .. direction .. '-এর জন্য গোলার্ধ প্রদান করা হয়েছে', 2) end return nil end decimal = tonumber(degrees) if not decimal then error(direction .. '-এর জন্য প্রণীত "'.. degrees .. '" ডিগ্রি মানটি বৈধ নয়', 2) elseif minutes and not tonumber(minutes) then error(direction .. '-এর জন্য প্রণীত "'.. minutes .. '" মিনিট মানটি বৈধ নয়', 2) elseif seconds and not tonumber(seconds) then error(direction .. '-এর জন্য প্রণীত "'.. seconds .. '"সেকেন্ড মানটি বৈধ নয়', 2) end decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600 if hemisphere then local multiplier = hemisphereMultipliers[direction][hemisphere] if not multiplier then error(direction .. '-এর জন্য প্রণীত "'.. hemisphere .. '" গোলার্ধ মানটি বৈধ নয়', 2) end decimal = decimal * multiplier end return decimal end -- Finds a parameter in a transclusion of {{Coord}}. local function coord2text(para, coord) local value, direction, longitude, ew = coord:match('(%-?[.%d]+)°([NS]) (%-?[.%d]+)°([EW])') if para == 'longitude' then value, direction = longitude, ew end value = tonumber(value) if value then return value * hemisphereMultipliers[para][direction] end error('विकृत निर्देशाङ्क मान', 2) end -- effectively make removeBlanks false for caption and maplink, and true for everything else -- if useWikidata is present but blank, convert it to false instead of nil -- p.top, p.bottom, and their callers need to use this function p.valueFunc(key, value) if value then value = mw.text.trim(value) end if value ~= '' or key == 'caption' or key == 'maplink' then return value elseif key == 'useWikidata' then return false end end local function getContainerImage(args, map) if args.AlternativeMap then return args.AlternativeMap elseif args.relief and map('image1') ~= '' then return map('image1') else return map('image') end end function p.top(frame, args, map) args = getArgsX(args, frame, {frameOnly = true, valueFunc = p.valueFunc}) if not map then map = p.getMapParams(args[1], frame) end local width if not args.width then width = round((args.default_width or 240) * (tonumber(map('defaultscale')) or 1)) elseif mw.ustring.sub(args.width, -2) == 'px' then width = mw.ustring.sub(args.width, 1, -3) else width = args.width end local retval = args.float == 'center' and '<div class="center">' or '' if args.caption and args.caption ~= '' and args.border ~= 'infobox' then retval = retval .. '<div class="noviewer thumb ' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'tleft' elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' then retval = retval .. 'tnone' else retval = retval .. 'tright' end retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px' if args.border == 'none' then retval = retval .. ';border:none' elseif args.border then retval = retval .. ';border-color:' .. args.border end retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. (args.border ~= 'none' and ';border:1px solid lightgray">' or '">') else retval = retval .. '<div style="width:' .. width .. 'px;' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'float:left;clear:left' elseif args.float == '"center"' or args.float == 'center' then retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto' elseif args.float == '"none"' or args.float == 'none' then retval = retval .. 'float:none;clear:none' else retval = retval .. 'float:right;clear:right' end retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">' end local image = getContainerImage(args, map) retval = string.format( '%s[[File:%s|%spx|%s%s]]', retval, image, width, args.alt or ((args.label or mw.title.getCurrentTitle().text) .. ' ' .. map('name') .. '-এ অবস্থিত'), args.maplink and ('|link=' .. args.maplink) or '' ) if args.overlay_image then return retval .. '<div style="position:absolute;top:0;left:0">[[File:' .. args.overlay_image .. '|' .. width .. 'px]]</div>' else return retval end end function p.bottom(frame, args, map) args = getArgsX(args, frame, {frameOnly = true, valueFunc = p.valueFunc}) if not map then map = p.getMapParams(args[1], frame) end local retval = '</div>' if not args.caption or args.border == 'infobox' then if args.border then retval = retval .. '<div>' else retval = retval .. '<div style="font-size:90%;padding-top:3px">' end retval = retval .. (args.caption or (args.label or mw.title.getCurrentTitle().text) .. ' (' .. map('name') .. ')') .. '</div>' elseif args.caption ~= '' then -- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:File:' .. getContainerImage(args, map) .. '| ]]</div>' .. args.caption .. '</div>' end if args.switcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>' elseif args.autoSwitcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. erjog(map('name')) .. ' नक्सामा हेर्नुहोस्</span>' end retval = retval .. '</div></div>' if args.caption_undefined then mw.log('সরানো হয়েছে প্যারামিটার caption_undefined ব্যবহার করা হয়েছে।') local parent = frame:getParent() if parent then mw.log('প্রধানটি হচ্ছে ' .. parent:getTitle()) end mw.logObject(args, 'args') retval = retval .. '[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|পাতা সরানো প্যারামিটার ব্যবহার করছে]]' end if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then mw.log(map().. ' মানচিত্রের নামের সংজ্ঞায় সরানো প্যারামিটার ব্যবহৃত হয়েছে') retval = retval .. '[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|পাতা সরানো প্যারামিটার ব্যবহার করছে]]' end if string.find(map('name'), '|', 1, true) then mw.log(map().. ' মানচিত্রের নামের সংজ্ঞায় পাইপ ব্যবহৃত হয়েছে') retval = retval .. '[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|নামে পাইপ রয়েছে]]' end if args.float == 'center' then retval = retval .. '</div>' end return retval end local function markOuterDiv(x, y, imageDiv, labelDiv) return mw.html.create('div') :cssText('position:absolute;top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%') :node(imageDiv) :node(labelDiv) end local function markImageDiv(mark, marksize, label, link, alt, title) local builder = mw.html.create('div') :cssText('position:absolute;left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px;line-height:0') :attr('title', title) if marksize ~= 0 then builder:wikitext(string.format( '[[File:%s|%dx%dpx|%s|link=%s%s]]', mark, marksize, marksize, label, link, alt and ('|alt=' .. alt) or '' )) end return builder end local function markLabelDiv(label, label_size, label_width, position, background, x, marksize) if tonumber(label_size) == 0 then return mw.html.create('div'):cssText('font-size:0%;position:absolute'):wikitext(label) end local builder = mw.html.create('div') :cssText('font-size:' .. label_size .. '%;line-height:110%;position:absolute;width:' .. label_width .. 'em') local distance = round(marksize / 2 + 1) local spanCss if position == 'top' then -- specified top builder:cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em;text-align:center') elseif position == 'bottom' then -- specified bottom builder:cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em;text-align:center') elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left builder:cssText('top:-0.75em;right:' .. distance .. 'px;text-align:right') spanCss = 'float:right' else -- specified right or autodetected to right builder:cssText('top:-0.75em;left:' .. distance .. 'px;text-align:left') spanCss = 'float:left' end builder = builder:tag('span') :cssText('padding:1px') :cssText(spanCss) :wikitext(label) if background then builder:cssText('background-color:' .. background) end return builder:done() end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end function p.mark(frame, args, map) args = getArgsX(args, frame, {wrappers = 'টেমপ্লেট:অবস্থান মানচিত্র~'}) if not map then map = p.getMapParams(args[1], frame) end local x, y, longitude, latitude longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude') latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude') if args.coordinates then -- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]] -- if longitude or latitude then -- error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided') -- end longitude = coord2text('longitude', args.coordinates) latitude = coord2text('latitude', args.coordinates) elseif not longitude and not latitude and args.useWikidata then -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. local entity = mw.wikibase.getEntity() if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local value = entity.claims.P625[1].mainsnak.datavalue.value longitude, latitude = value.longitude, value.latitude end end if not longitude then error('দ্রাঘিমাংশের জন্য কোন মান প্রদান করা হয়নি') elseif not latitude then error('অক্ষাংশের জন্য কোন মান প্রদান করা হয়নি') end local builder = mw.html.create() if (not args.lon_deg) ~= (not args.lat_deg) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|ডিগ্রি]]') elseif (not args.lon_min) ~= (not args.lat_min) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|মিনিট]]') elseif (not args.lon_sec) ~= (not args.lat_sec) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|সেকেন্ড]]') elseif (not args.lon_dir) ~= (not args.lat_dir) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|গোলার্ধ]]') elseif (not args.long) ~= (not args.lat) then builder:wikitext('[[বিষয়শ্রেণী:আলাদা দ্রাঘিমাংশ ও অক্ষাংশ স্পষ্টতাসহ অবস্থান মানচিত্র|দশমিক]]') end if args.skew or args.lon_shift or args.markhigh then mw.log('নামোচ্চারণে সরানো প্যারামিটার ব্যবহার করা হয়েছে।') local parent = frame:getParent() if parent then mw.log('প্রধানটি ' .. parent:getTitle()) end mw.logObject(args, 'args') builder:wikitext('[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|পাতা সরানো প্যারামিটার ব্যবহার করছে]]') end if map('x') ~= '' then x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude }))) else x = tonumber(getX(longitude, map('left'), map('right'))) end if map('y') ~= '' then y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude }))) else y = tonumber(getY(latitude, map('top'), map('bottom'))) end if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then mw.log('বাইরে পতাকা সেট ছাড়াই মার্ক মানচিত্রের সীমানা বাইরে স্থাপিত হয়েছে। x = ' .. x .. ', y = ' .. y) local parent = frame:getParent() if parent then mw.log('প্রধানটি হচ্ছে ' .. parent:getTitle()) end mw.logObject(args, 'args') builder:wikitext('[[বিষয়শ্রেণী:সম্ভাব্য ত্রুটিসহ অবস্থান মানচিত্র|মানচিত্রের বাইরে চিহ্নসহ বাইরের পতাকা নির্ধারন করা হয়নি]]') end local mark = args.mark or map('mark') if mark == '' then mark = 'Red pog.svg' end local marksize = tonumber(args.marksize) or tonumber(map('marksize')) or 8 local imageDiv = markImageDiv(mark, marksize, args.label or mw.title.getCurrentTitle().text, args.link or '', args.alt, args[2]) local labelDiv if args.label and args.position ~= 'none' then labelDiv = markLabelDiv(args.label, args.label_size or 90, args.label_width or 6, args.position, args.background, x, marksize) end return builder:node(markOuterDiv(x, y, imageDiv, labelDiv)) end local function switcherSeparate(s) if s == nil then return {} end local retval = {} for i in string.gmatch(s .. '#', '([^#]*)#') do i = mw.text.trim(i) retval[#retval + 1] = (i ~= '' and i) end return retval end function p.main(frame, args, map) args = getArgsX(args, frame, {wrappers = 'ढाँचा:Location map', valueFunc = p.valueFunc}) if args.useWikidata == nil then args.useWikidata = true end if not map then if args[1] then map = {} for mapname in string.gmatch(args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mapname, frame) end if #map == 1 then map = map[1] end else map = p.getMapParams('पृथ्वी', frame) end end if type(map) == 'table' then local altmaps = switcherSeparate(args.AlternativeMap) if #altmaps > #map then error(string.format('%d AlternativeMaps প্রদান করা হয়েছে, কিন্তু শুধুমাত্র %d মানচিত্রগুলি প্রদান করা হয়েছে', #altmaps, #map)) end local overlays = switcherSeparate(args.overlay_image) if #overlays > #map then error(string.format('%d overlay_images প্রদান করা হয়েছে, কিন্তু শুধুমাত্র %d মানচিত্রগুলি প্রদান করা হয়েছে', #overlays, #map)) end local outputs = {} args.autoSwitcherLabel = true for k,v in ipairs(map) do args.AlternativeMap = altmaps[k] args.overlay_image = overlays[k] outputs[k] = p.main(frame, args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map) end end return p e0l8tlz6is8k6lwvs5oypsbo8bzmnxn 1372360 1372346 2026-08-26T07:10:21Z पर्वत सुवेदी 31224 1372360 Scribunto text/plain require('strict') local p = {} local getArgs = require('Module:Arguments').getArgs local function round(n, decimals) local pow = 10^(decimals or 0) return math.floor(n * pow + 0.5) / pow end function p.getMapParams(map, frame) if not map then error('The name of the location map definition to use must be specified', 2) end local moduletitle = mw.title.new('Module:Location map/data/' .. map) if not moduletitle then error(string.format('%q is not a valid name for a location map definition', map), 2) elseif moduletitle.exists then local mapData = mw.loadData('Module:Location map/data/' .. map) return function(name, params) if name == nil then return 'Module:Location map/data/' .. map elseif mapData[name] == nil then return '' elseif params then return mw.message.newRawMessage(tostring(mapData[name]), unpack(params)):plain() else return mapData[name] end end else error('Unable to find the specified location map definition: "Module:Location map/data/' .. map .. '" does not exist', 2) end end function p.data(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true}) end if not map then map = p.getMapParams(args[1], frame) end local params = {} for k,v in ipairs(args) do if k > 2 then params[k-2] = v end end return map(args[2], #params ~= 0 and params) end local hemisphereMultipliers = { longitude = { W = -1, w = -1, E = 1, e = 1 }, latitude = { S = -1, s = -1, N = 1, n = 1 } } local function decdeg(degrees, minutes, seconds, hemisphere, decimal, direction) if decimal then if degrees then error('Decimal and DMS degrees cannot both be provided for ' .. direction, 2) elseif minutes then error('Minutes can only be provided with DMS degrees for ' .. direction, 2) elseif seconds then error('Seconds can only be provided with DMS degrees for ' .. direction, 2) elseif hemisphere then error('A hemisphere can only be provided with DMS degrees for ' .. direction, 2) end local retval = tonumber(decimal) if retval then return retval end error('The value "' .. decimal .. '" provided for ' .. direction .. ' is not valid', 2) elseif seconds and not minutes then error('Seconds were provided for ' .. direction .. ' without minutes also being provided', 2) elseif not degrees then if minutes then error('Minutes were provided for ' .. direction .. ' without degrees also being provided', 2) elseif hemisphere then error('A hemisphere was provided for ' .. direction .. ' without degrees also being provided', 2) end return nil end decimal = tonumber(degrees) if not decimal then error('The degree value "' .. degrees .. '" provided for ' .. direction .. ' is not valid', 2) elseif minutes and not tonumber(minutes) then error('The minute value "' .. minutes .. '" provided for ' .. direction .. ' is not valid', 2) elseif seconds and not tonumber(seconds) then error('The second value "' .. seconds .. '" provided for ' .. direction .. ' is not valid', 2) end decimal = decimal + (minutes or 0)/60 + (seconds or 0)/3600 if hemisphere then local multiplier = hemisphereMultipliers[direction][hemisphere] if not multiplier then error('The hemisphere "' .. hemisphere .. '" provided for ' .. direction .. ' is not valid', 2) end decimal = decimal * multiplier end return decimal end -- Finds a parameter in a transclusion of {{Coord}}. local function coord2text(para,coord) -- this should be changed for languages which do not use Arabic numerals or the degree sign local lat, long = mw.ustring.match(coord,'<span class="p%-latitude latitude">([^<]+)</span><span class="p%-longitude longitude">([^<]+)</span>') if lat then return tonumber(para == 'longitude' and long or lat) end local result = mw.text.split(mw.ustring.match(coord,'%-?[%.%d]+°[NS] %-?[%.%d]+°[EW]') or '', '[ °]') if para == 'longitude' then result = {result[3], result[4]} end if not tonumber(result[1]) or not result[2] then mw.log('Malformed coordinates value') mw.logObject(para, 'para') mw.logObject(coord, 'coord') return error('Malformed coordinates value', 2) end return tonumber(result[1]) * hemisphereMultipliers[para][result[2]] end -- effectively make removeBlanks false for caption and maplink, and true for everything else -- if useWikidata is present but blank, convert it to false instead of nil -- p.top, p.bottom, and their callers need to use this function p.valueFunc(key, value) if value then value = mw.text.trim(value) end if value ~= '' or key == 'caption' or key == 'maplink' then return value elseif key == 'useWikidata' then return false end end local function getContainerImage(args, map) if args.AlternativeMap then return args.AlternativeMap elseif args.relief then local digits = mw.ustring.match(args.relief,'^[1-9][0-9]?$') -- image1 to image99 if digits then local imageDigits = map('image' .. digits) if imageDigits ~= '' then return imageDigits end end local yesNo = require('Module:Yesno') if yesNo(args.relief,true) then local image1 = map('image1') if image1 ~= '' then return image1 end end end return map('image') end function p.top(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local width local default_as_number = tonumber(mw.ustring.match(tostring(args.default_width),"%d*")) if not args.width then width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) elseif mw.ustring.sub(args.width, -2) == 'px' then width = mw.ustring.sub(args.width, 1, -3) else width = args.width end local width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; if width_as_number == 0 then -- check to see if width is junk. If it is, then use default calculation width = round((default_as_number or 240) * (tonumber(map('defaultscale')) or 1)) width_as_number = tonumber(mw.ustring.match(tostring(width),"%d*")) or 0; end if args.max_width ~= "" and args.max_width ~= nil then -- check to see if width bigger than max_width local max_as_number = tonumber(mw.ustring.match(args.max_width,"%d*")) or 0; if width_as_number>max_as_number and max_as_number>0 then width = args.max_width; end end local retval = frame:extensionTag{name = 'templatestyles', args = {src = 'Module:Location map/styles.css'}} if args.float == 'center' then retval = retval .. '<div class="center">' end if args.caption and args.caption ~= '' and args.border ~= 'infobox' then retval = retval .. '<div class="locmap noresize thumb ' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'floatleft' elseif args.float == '"center"' or args.float == 'center' or args.float == '"none"' or args.float == 'none' then retval = retval .. 'tnone' else retval = retval .. 'floatright' end retval = retval .. '"><div class="thumbinner" style="width:' .. (width + 2) .. 'px' if args.border == 'none' then retval = retval .. ';border:none' elseif args.border then retval = retval .. ';border-color:' .. args.border end retval = retval .. '"><div style="position:relative;width:' .. width .. 'px' .. (args.border ~= 'none' and ';border:1px solid lightgray">' or '">') else retval = retval .. '<div class="locmap" style="width:' .. width .. 'px;' if args.float == '"left"' or args.float == 'left' then retval = retval .. 'float:left;clear:left' elseif args.float == '"center"' or args.float == 'center' then retval = retval .. 'float:none;clear:both;margin-left:auto;margin-right:auto' elseif args.float == '"none"' or args.float == 'none' then retval = retval .. 'float:none;clear:none' else retval = retval .. 'float:right;clear:right' end retval = retval .. '"><div style="width:' .. width .. 'px;padding:0"><div style="position:relative;width:' .. width .. 'px">' end local image = getContainerImage(args, map) local currentTitle = mw.title.getCurrentTitle() retval = string.format( '%s[[File:%s|%spx|%s%s|class=notpageimage noviewer]]', retval, image, width, args.alt or ((args.label or currentTitle.text) .. ' is located in ' .. map('name')), args.maplink and ('|link=' .. args.maplink) or '' ) if args.caption and args.caption ~= '' then if (currentTitle.namespace == 0) and mw.ustring.find(args.caption, '##') then retval = retval .. '[[Category:Pages using location map with a double number sign in the caption]]' end end if args.overlay_image then return retval .. '<div style="position:absolute;top:0;left:0">[[File:' .. args.overlay_image .. '|' .. width .. 'px|class=notpageimage noviewer]]</div>' else return retval end end function p.bottom(frame, args, map) if not args then args = getArgs(frame, {frameOnly = true, valueFunc = p.valueFunc}) end if not map then map = p.getMapParams(args[1], frame) end local retval = '</div>' local currentTitle = mw.title.getCurrentTitle() if not args.caption or args.border == 'infobox' then if args.border then retval = retval .. '<div style="padding-top:0.2em">' else retval = retval .. '<div style="font-size:91%;padding-top:3px">' end retval = retval .. (args.caption or (args.label or currentTitle.text) .. ' (' .. map('name') .. ')') .. '</div>' elseif args.caption ~= '' then -- This is not the pipe trick. We're creating a link with no text on purpose, so that CSS can give us a nice image retval = retval .. '<div class="thumbcaption"><div class="magnify">[[:File:' .. getContainerImage(args, map) .. '| ]]</div>' .. args.caption .. '</div>' end if args.switcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">' .. args.switcherLabel .. '</span>' elseif args.autoSwitcherLabel then retval = retval .. '<span class="switcher-label" style="display:none">Show map of ' .. map('name') .. '</span>' end retval = retval .. '</div></div>' if args.caption_undefined then mw.log('Removed parameter caption_undefined used.') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then retval = retval .. '[[Category:Location maps with removed parameters|caption_undefined]]' end end if map('skew') ~= '' or map('lat_skew') ~= '' or map('crosses180') ~= '' or map('type') ~= '' then mw.log('Removed parameter used in map definition ' .. map()) if currentTitle.namespace == 0 then local key = (map('skew') ~= '' and 'skew' or '') .. (map('lat_skew') ~= '' and 'lat_skew' or '') .. (map('crosses180') ~= '' and 'crosses180' or '') .. (map('type') ~= '' and 'type' or '') retval = retval .. '[[Category:Location maps with removed parameters|' .. key .. ' ]]' end end if string.find(map('name'), '|', 1, true) then mw.log('Pipe used in name of map definition ' .. map()) if currentTitle.namespace == 0 then retval = retval .. '[[Category:Location maps with a name containing a pipe]]' end end if args.float == 'center' then retval = retval .. '</div>' end return retval end local function markOuterDiv(x, y, imageDiv, labelDiv, label_size) return mw.html.create('div') :addClass('od') :addClass('notheme') -- T236137 :cssText('top:' .. round(y, 3) .. '%;left:' .. round(x, 3) .. '%;font-size:' .. label_size .. '%') :node(imageDiv) :node(labelDiv) end local function markImageDiv(mark, marksize, label, link, alt, title) local builder = mw.html.create('div') :addClass('id') :cssText('left:-' .. round(marksize / 2) .. 'px;top:-' .. round(marksize / 2) .. 'px') :attr('title', title) if marksize ~= 0 then builder:wikitext(string.format( '[[File:%s|%dx%dpx|%s|link=%s%s|class=notpageimage noviewer]]', mark, marksize, marksize, label, link, alt and ('|alt=' .. alt) or '' )) end return builder end local function markLabelDiv(label, label_size, label_width, position, background, x, marksize) if tonumber(label_size) == 0 then return mw.html.create('div'):addClass('l0'):wikitext(label) end local builder = mw.html.create('div') :cssText('width:' .. label_width .. 'em') local distance = round(marksize / 2 + 1) if position == 'top' then -- specified top builder:addClass('pv'):cssText('bottom:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'bottom' then -- specified bottom builder:addClass('pv'):cssText('top:' .. distance .. 'px;left:' .. (-label_width / 2) .. 'em') elseif position == 'left' or (tonumber(x) > 70 and position ~= 'right') then -- specified left or autodetected to left builder:addClass('pl'):cssText('right:' .. distance .. 'px') else -- specified right or autodetected to right builder:addClass('pr'):cssText('left:' .. distance .. 'px') end builder = builder:tag('div') :wikitext(label) if background then builder:cssText('background-color:' .. background) end return builder:done() end local function getX(longitude, left, right) local width = (right - left) % 360 if width == 0 then width = 360 end local distanceFromLeft = (longitude - left) % 360 -- the distance needed past the map to the right equals distanceFromLeft - width. the distance needed past the map to the left equals 360 - distanceFromLeft. to minimize page stretching, go whichever way is shorter if distanceFromLeft - width / 2 >= 180 then distanceFromLeft = distanceFromLeft - 360 end return 100 * distanceFromLeft / width end local function getY(latitude, top, bottom) return 100 * (top - latitude) / (top - bottom) end function p.mark(frame, args, map) if not args then args = getArgs(frame, {wrappers = 'Template:Location map~'}) end local mapnames = {} if not map then if args[1] then map = {} for mapname in mw.text.gsplit(args[1], '#', true) do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) mapnames[#mapnames + 1] = mapname end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) args[1] = 'World' end end if type(map) == 'table' then local outputs = {} local oldargs = args[1] for k,v in ipairs(map) do args[1] = mapnames[k] outputs[k] = tostring(p.mark(frame, args, v)) end args[1] = oldargs return table.concat(outputs, '#PlaceList#') .. '#PlaceList#' end local x, y, longitude, latitude longitude = decdeg(args.lon_deg, args.lon_min, args.lon_sec, args.lon_dir, args.long, 'longitude') latitude = decdeg(args.lat_deg, args.lat_min, args.lat_sec, args.lat_dir, args.lat, 'latitude') if args.excludefrom then -- If this mark is to be excluded from certain maps entirely (useful in the context of multiple maps) for exclusionmap in mw.text.gsplit(args.excludefrom, '#', true) do -- Check if this map is excluded. If so, return an empty string. if args[1] == exclusionmap then return '' end end end local builder = mw.html.create() local currentTitle = mw.title.getCurrentTitle() if args.coordinates then -- Temporarily removed to facilitate infobox conversion. See [[Wikipedia:Coordinates in infoboxes]] -- if longitude or latitude then -- error('Coordinates from [[Module:Coordinates]] and individual coordinates cannot both be provided') -- end longitude = coord2text('longitude', args.coordinates) latitude = coord2text('latitude', args.coordinates) elseif not longitude and not latitude and args.useWikidata then -- If they didn't provide either coordinate, try Wikidata. If they provided one but not the other, don't. local entity = mw.wikibase.getEntity() if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local value = entity.claims.P625[1].mainsnak.datavalue.value longitude, latitude = value.longitude, value.latitude end if args.link and (currentTitle.namespace == 0) then builder:wikitext('[[Category:Location maps with linked markers with coordinates from Wikidata]]') end end if not longitude then error('No value was provided for longitude') elseif not latitude then error('No value was provided for latitude') end if currentTitle.namespace > 0 then if (not args.lon_deg) ~= (not args.lat_deg) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Degrees]]') elseif (not args.lon_min) ~= (not args.lat_min) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Minutes]]') elseif (not args.lon_sec) ~= (not args.lat_sec) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Seconds]]') elseif (not args.lon_dir) ~= (not args.lat_dir) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Hemisphere]]') elseif (not args.long) ~= (not args.lat) then builder:wikitext('[[Category:Location maps with different longitude and latitude precisions|Decimal]]') end end if ((tonumber(args.lat_deg) or 0) < 0) and ((tonumber(args.lat_min) or 0) ~= 0 or (tonumber(args.lat_sec) or 0) ~= 0 or (args.lat_dir and args.lat_dir ~='')) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if ((tonumber(args.lon_deg) or 0) < 0) and ((tonumber(args.lon_min) or 0) ~= 0 or (tonumber(args.lon_sec) or 0) ~= 0 or (args.lon_dir and args.lon_dir ~= '')) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if (((tonumber(args.lat_min) or 0) < 0) or ((tonumber(args.lat_sec) or 0) < 0)) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if (((tonumber(args.lon_min) or 0) < 0) or ((tonumber(args.lon_sec) or 0) < 0)) then builder:wikitext('[[Category:Location maps with negative degrees and minutes or seconds]]') end if args.skew or args.lon_shift or args.markhigh then mw.log('Removed parameter used in invocation.') local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = (args.skew and 'skew' or '') .. (args.lon_shift and 'lon_shift' or '') .. (args.markhigh and 'markhigh' or '') builder:wikitext('[[Category:Location maps with removed parameters|' .. key ..' ]]') end end if map('x') ~= '' then x = tonumber(mw.ext.ParserFunctions.expr(map('x', { latitude, longitude }))) else x = tonumber(getX(longitude, map('left'), map('right'))) end if map('y') ~= '' then y = tonumber(mw.ext.ParserFunctions.expr(map('y', { latitude, longitude }))) else y = tonumber(getY(latitude, map('top'), map('bottom'))) end if (x < 0 or x > 100 or y < 0 or y > 100) and not args.outside then mw.log('Mark placed outside map boundaries without outside flag set. x = ' .. x .. ', y = ' .. y) local parent = frame:getParent() if parent then mw.log('Parent is ' .. parent:getTitle()) end mw.logObject(args, 'args') if currentTitle.namespace == 0 then local key = currentTitle.prefixedText builder:wikitext('[[Category:Location maps with marks outside map and outside parameter not set|' .. key .. ' ]]') end end local mark = args.mark or map('mark') if mark == '' then mark = 'Red pog.svg' end local marksize = tonumber(args.marksize) or tonumber(map('marksize')) or 8 local imageDiv = markImageDiv(mark, marksize, args.label or mw.title.getCurrentTitle().text, args.link or '', args.alt, args[2]) local label_size = args.label_size or 91 local labelDiv if args.label and args.position ~= 'none' then labelDiv = markLabelDiv(args.label, label_size, args.label_width or 6, args.position, args.background, x, marksize) end return builder:node(markOuterDiv(x, y, imageDiv, labelDiv, label_size)) end local function switcherSeparate(s) if s == nil then return {} end local retval = {} for i in string.gmatch(s .. '#', '([^#]*)#') do i = mw.text.trim(i) retval[#retval + 1] = (i ~= '' and i) end return retval end function p.infobox_pushpin_map(frame) --This function is designed to be invoked from an infobox template --* Some parameters (generally starting with "pushpin_") are meant to be exposed as parameters -- in the outer infobox, settable by editors --* Others are meant to be "hidden" (e.g., only set inside the infobox template code) -- First get the combined arguments from both parent and invocation frame local raw_args = getArgs(frame,{parentFirst=true}) --If no map is supplied, return. if not raw_args['pushpin_map'] then return end -- Now get arguments from just the invocation frame local frame_args = getArgs(frame,{frameOnly=true}) -- parsed_args will have the resulting merged parameters local parsed_args = {} -- Default to using wikidata coodinates if no other coordiantes supplied. if raw_args.useWikidata == nil then parsed_args.useWikidata = true else parsed_args.useWikidata = raw_args.useWikidata end -- Parse the arguments parsed_args[1] = raw_args['pushpin_map'] parsed_args.float = frame_args.float or 'center' parsed_args.border = frame_args.border or 'infobox' parsed_args.default_width = frame_args.default_width parsed_args.max_width = frame_args.max_width parsed_args.coordinates = raw_args['coordinates'] parsed_args.caption = raw_args['pushpin_caption'] parsed_args.relief = raw_args['pushpin_relief'] parsed_args.label = raw_args['pushpin_label'] parsed_args.label_size = raw_args['pushpin_label_size'] parsed_args.position = raw_args['pushpin_label_position'] parsed_args.mark = raw_args['pushpin_mark'] parsed_args.marksize = raw_args['pushpin_mark_size'] parsed_args.alt = raw_args['pushpin_alt'] parsed_args.background = raw_args['pushpin_background'] parsed_args.width = raw_args['pushpin_map_size'] local map = {} local caption_list = {} for mapname in string.gmatch(parsed_args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) end if parsed_args['caption'] then for caption in mw.text.gsplit(parsed_args['caption'], '##', true) do caption_list[#caption_list + 1] = caption end end if #map == 1 then map = map[1] if not parsed_args.caption then parsed_args.caption = 'Location within ' .. map('name') end end if type(map) == 'table' then mw.log('----') mw.logObject(map) if #caption_list > #map then error(string.format('%d captions were provided, but only %d maps were provided', #caption_list, #map)) elseif not parsed_args.caption then -- Set a default caption for each of the multiple maps for i=1, #map do caption_list[#caption_list + 1] = 'Location within '.. map[i]('name') end end local outputs = {} parsed_args.autoSwitcherLabel = true for k,v in ipairs(map) do parsed_args.caption = caption_list[k] outputs[k] = p.main(frame, parsed_args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, parsed_args, map) .. tostring( p.mark(frame, parsed_args, map) ) .. p.bottom(frame, parsed_args, map) end end function p.main(frame, args, map) local caption_list = {} if not args then args = getArgs(frame, {wrappers = 'Template:Location map', valueFunc = p.valueFunc}) end if args.useWikidata == nil then args.useWikidata = true end if not map then if args[1] then map = {} for mapname in string.gmatch(args[1], '[^#]+') do map[#map + 1] = p.getMapParams(mw.ustring.gsub(mapname, '^%s*(.-)%s*$', '%1'), frame) end if args['caption'] then if args['caption'] == "" then while #caption_list < #map do caption_list[#caption_list + 1] = args['caption'] end else for caption in mw.text.gsplit(args['caption'], '##', true) do caption_list[#caption_list + 1] = caption end end end if #map == 1 then map = map[1] end else map = p.getMapParams('World', frame) end end if type(map) == 'table' then local altmaps = switcherSeparate(args.AlternativeMap) if #altmaps > #map then error(string.format('%d AlternativeMaps were provided, but only %d maps were provided', #altmaps, #map)) end local overlays = switcherSeparate(args.overlay_image) if #overlays > #map then error(string.format('%d overlay_images were provided, but only %d maps were provided', #overlays, #map)) end if #caption_list > #map then error(string.format('%d captions were provided, but only %d maps were provided', #caption_list, #map)) end local outputs = {} args.autoSwitcherLabel = true for k,v in ipairs(map) do args.AlternativeMap = altmaps[k] args.overlay_image = overlays[k] args.caption = caption_list[k] outputs[k] = p.main(frame, args, v) end return '<div class="switcher-container">' .. table.concat(outputs) .. '</div>' else return p.top(frame, args, map) .. tostring( p.mark(frame, args, map) ) .. p.bottom(frame, args, map) end end return p 3pqbnkg8pemwulwnvka0szt6hqc0tii युर्गेन क्लोप 0 75803 1372322 1299167 2026-08-25T21:58:08Z Dostojewskij 18315 श्रेणी:सन् १९६७ मा जन्म 1372322 wikitext text/x-wiki {{Infobox football biography | name = योर्गन क्लोप | image = Jürgen Klopp, Liverpool vs. Chelsea, UEFA Super Cup 2019-08-14 04.jpg | caption = सन् २०१९ मा क्लोप [[लिभरपुल फुटबल क्लब|लिभरपुल]]सँग | fullname = योर्गन नरबर्ट क्लोप<ref>{{cite news |first=चार्ली |last=मेलम |title=योर्गन क्लोपको कथा |url=https://www.vavel.com/en/football/2015/12/24/liverpool-fc/582754.html |website=भिभेल |date=24 December 2015 |accessdate=12 August 2018}}</ref> | dateofbirth = १६ जुन १९६७ (उमेर ४७) | height = १.९४ मि (६ फिट ४ इन्च) | cityofbirth = स्टुटगार्ट | countryofbirth = प.जर्मनी<ref>{{cite web |url=http://www.leaguemanagers.com/managers/jurgen-klopp/ |title=योर्गन क्लोप एक लिग प्रशिक्षक |website=लिग प्रशिक्षक सङ्घ |accessdate=12 August 2018 }} {{Webarchive|url=https://web.archive.org/web/20180817100232/http://leaguemanagers.com/managers/jurgen-klopp/ |date=17 August 2018 }}</ref> | position = [[रक्षापङ्क्ति (फुटबल)|रक्षापङ्क्ति]] र [[अग्रपङ्क्ति (फुटबल)|अग्रपङ्क्ति]] | currentclub = [[लिभरपुल फुटबल क्लब|लिभरपुल]](प्रशिक्षक)<ref>{{cite web|url=https://www.dfb.de/datencenter/personen/juergen-klopp/trainer|title=योर्गन क्लोप - प्रोफाइल|website=डिएफबी|accessdate=21 January 2019}}</ref>| | youthyears1 = १९७२–१९८३ | youthclubs1 = एसभी ग्लाट्टेन | youthyears2 = १९८३–१९८७ | youthclubs2 = टुस इर्जेनजिन्गेन | years1 = १९८७ | clubs1 = [[१. एफसी पिफरजिम]] | caps1 = ४ | goals1 = ० | years2 = १९८७–१९८८ | clubs2 = [[फ्र्याङ्कफर्ट II]] | caps2 = | goals2 = | years3 = १९८८–१९८९ | clubs3 = | caps3 = | goals3 = | years4 = १९८९–१९९० | clubs4 = [[रोट-विइस फ्र्याङ्कफर्ट]] | caps4 = ५ | goals4 = ० | years5 = १९९०–२००१ | clubs5 = [[१. एफएसभी माइन्ज ०५|माइन्ज ०५]] | caps5 = ३२५ | goals5 = ५२ | manageryears1 = २००१–२००८ | managerclubs1 = [[१. एफएसभी माइन्ज ०५]] | manageryears2 = २००८–२०१५ | managerclubs2 = [[बोरुसिया डर्टमन्ड|बोरूसिया डर्टमन्ड]] | manageryears3 = २०१५– | managerclubs3 = [[लिभरपुल फुटबल क्लब|लिभरपुल]] }} '''योर्गेन नरबर्ट क्लोप''' (जर्मन उच्चारण: [ˈjʏɐ̯ɡən ˈklɔp]; जन्म १६ जुन १९६७) पुर्व फुटबल खेलाडी तथा तत्कालीन प्रशिक्षक हुन्। उनी अहिले [[प्रिमियर लिग]]बाट खेल्ने [[लिभरपुल फुटबल क्लब|लिभरपुल]]का प्रशिक्षक हुन्। उनी लिभरपुलका प्रशिक्षक हुनु भन्दा अघि [[बुन्डेसलिगा|बुन्डेस लिगा]]को क्लब माइन्ज ०५ का लागि सन् २००१-२००८ र [[बोरुसिया डर्टमन्ड|बोरूसिया डर्टमन्ड]]का लागि सन् २००८-२००९ सम्म प्रशिक्षक पद सम्हालेका थिए। उनी २०११ र २०१२ वर्षका उत्कृष्ट जर्मन फुटबल प्रशिक्षक पनि घोषित भएका थिए र उनलाई एक अनुभवी प्रशिक्षकको रूपमा लिइन्छ। ==व्यक्तिगत जीवन== क्लोपले दुइ विवाह गरे। उनका दुइ छोरा छन्। सन् २००९ यता, क्लोप हर्डेक भन्ने ठाउँमा बस्दै आएका छन् जहाँ धेरै बोरूसिया डर्टमन्डका खेलाडीको बसोबास छ। सन् १९९५ मा,क्लोपले सफलतापूर्वक खेल विज्ञानमा गोथे विश्वविद्यालय फ्रान्कफर्टबाट आफ्नो अध्ययन पुरा गरेका थिए। क्लोप क्रिस्टियन हुन जो आफ्नो भगवानप्रतिको आस्था व्यक्त गर्छन्। उनी जिसस क्राइस्टलाई आफ्नो जीवनको आधार मान्दछन्। ==सन्दर्भ सामग्रीहरू== {{reflist}} ==बाह्य कडीहरू== {{Commonscat|Jürgen Klopp|योर्गन क्लोप}} [[श्रेणी:जर्मनीका फुटबल खेलाडीहरू]] [[श्रेणी:जीवित मानिसहरू]] [[श्रेणी:सन् १९६७ मा जन्म]] 1tmhzffsrtus742uyznbtnjhi94oiu0 सेतो मछिन्द्ननाथ मन्दिर 0 87342 1372310 1025583 2026-08-25T12:17:06Z Bishaldev100 28807 1372310 wikitext text/x-wiki {{Infobox Mandir | name = '''सेतो मछिन्द्ननाथ मन्दिर''' | image =Seto Machhindranath Temple-IMG 2949.jpg | image_alt = | caption =सेतो मछिन्द्ननाथ मन्दिर | pushpin_map = | map_caption = | latd = | latm = | lats = | latNS = | longd = | longm = | longs = | longEW = | coordinates_region = | coordinates_display= title | other_names = | proper_name = सेतो मछिन्द्ननाथ मन्दिर | devanagari = | sanskrit_translit = | tamil = | marathi = | newari = | bengali = | country = [[नेपाल]] | state/province = | district = [[काठमाडौँ जिल्ला|काठमाडौँ]], [[मच्छिन्द्र बहाल]] | location = | elevation_m = | primary_deity = | important_festivals= | architecture = | number_of_temples = | number_of_monuments= | inscriptions = | date_built = | creator = | website = }} '''सेतो मछिन्द्ननाथ मन्दिर''' ([[अङ्ग्रेजी भाषा|अङ्ग्रेजी]]: Seto Machhindranath Temple) [[काठमाडौँ|काठमाडौँ उपत्यका]]मा अवस्थित एक [[मन्दिर]] हो। ==नामाकरण== ==यो पनि हेर्नुहोस्== # [[मन्दिर]] <br><center><gallery caption="सेतो मछिन्द्ननाथ मन्दिर"> Kathmandu-Janbahal-18-Seto Machindranath-2015-gje.jpg|after earthquake 2015 Kathmandu-Janbahal-02-Seto Machindranath-Waechterfigur-2007-gje.jpg Kathmandu-Janbahal-13-Seto Machindranath-2013-gje.jpg Kathmandu-Janbahal-26-Seto Machindranath-Venus-2015-gje.jpg Kathmandu-Janbahal-30-Seto Machindranath-Venus-2015-gje.jpg Kathmandu-Janbahal-38-Erdbebenschaden-2015-gje.jpg|after earthquake 2015 </gallery></center> ==सन्दर्भ सामग्रीहरू== {{reflist}} ==बाह्य कडीहरू== * {{Commonscat-inline|Hindu temples in Nepal|नेपालका मन्दिरहरु}} * {{commonscat-inline|Temples|मन्दिरहरु}} {{काठमाडौँका दर्शनीय स्थलहरू}} [[श्रेणी:नेपालका मन्दिरहरू]] [[श्रेणी:काठमाडौँ उपत्यकाका मन्दिरहरू]] iyycelyboeda6irlfj85fb5ojl3doch मैवाखोला गाउँपालिका 0 94864 1372354 1371400 2026-08-26T05:09:39Z ~2026-46317-18 80528 स्थानीय भाषाको नाम थपियो 1372354 wikitext text/x-wiki {{Infobox settlement <!--See the table at Infobox settlement for all fields and descriptions of usage--> <!-- आधारभूत जानकारी -->| name = | other_name =མཻ་ཝ་ཁོ་ལ | native_name = མཻ་ཝ་ཁོ་ལ་གྲོང་གསེབ་གྲོང་ཁྱེར། | settlement_type = [[गाउँपालिका]] | motto = <!-- images and maps --> | image_skyline = | image_caption = | image_flag = | image_seal = | image_map = | pushpin_label_position = bottom | pushpin_map_caption = | pushpin_map =ताप्लेजुङ जिल्ला#कोशी प्रदेश#नेपाल <!-- अवस्थिति--> | subdivision_type = [[देश]] | subdivision_name = {{झण्डा|नेपाल}} | subdivision_type1 = [[नेपालका प्रदेशहरू|प्रदेश]] | subdivision_name1 = [[कोशी प्रदेश]] | subdivision_type2 = [[नेपालका जिल्लाहरू|जिल्ला]] | subdivision_name2 = [[ताप्लेजुङ जिल्ला|ताप्लेजुङ]] |<!-- राजनीति--> | government_footnotes =<ref name="निर्वाचन २०७९">{{cite news|title=स्थानीय तह निर्वाचन २०७९|url=https://localelection2079.ekantipur.com/pradesh-1/district-taplejung/maiwakhola?lng=nep|accessdate=०९ साउन २०८१|language=नेपाली|publisher=कान्तिपुर दैनिक}}</ref> | government_type = | leader_title = अध्यक्ष | leader_name = विजयप्रकाश वनेम <small> ([[नेकपा (माओवादी केन्द्र)]]) | leader_title1 = उपाध्यक्ष | leader_name1 = कमलकुमारी लिम्बु <small> ([[नेपाली काङ्ग्रेस]]) | established_title = स्थापित | established_date = २७ फागुन २०७३ | unit_pref = <!--Enter: Imperial, if Imperial (metric) is desired--> | area_footnotes = | area_total_km2 = 138<!-- ALL fields dealing with a measurements are subject to automatic unit conversion--> |population_as_of = [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|राष्ट्रिय जनगणना २०७८]] |population_footnotes =<ref name="जनगणना २०७८">{{cite web |title=जनसङ्ख्याको आकार र वितरण|url=https://censusnepal.cbs.gov.np/results/np/population?province=1&district=1&municipality=4|accessdate=२९ जेठ २०८१|work=राष्ट्रिय जनगणना २०७८|publisher=[[राष्ट्रिय तथ्याङ्क कार्यालय (नेपाल)|राष्ट्रिय तथ्याङ्क कार्यालय]]|language=नेपाली}}</ref> | population_total = 10213 | population_density_km2 = auto | population_blank1_title = Ethnicities <!-- साधारण जानकारी -->| timezone = [[नेपाली समय]] | utc_offset = +५:४५ | timezone_DST = | utc_offset_DST = | coordinates = {{Coord|27|18|26.07|N|87|36|32.77|E|display=inline,title}} | elevation_footnotes = <!--for references: use <ref> </ref> tags--> | elevation_m = <!-- Area/postal codes & others --> | postal_code_type = | postal_code = | area_code = +९७७-०२४ | blank_name = केन्द्र | blank_info = साविक [[साँघु]] गाविसको कार्यालय | website = [https://www.maiwakholamun.gov.np/ आधिकारिक वेबसाइट] | footnotes = }} '''{{पृष्ठको नाम}}''' [[ताप्लेजुङ जिल्ला]]का ८ [[गाउँपालिका]]हरू मध्ये एक हो।<ref name="गाउँपालिका वा नगरपालिका">{{cite web|title=हेर्नुहोस्, तपाईँ कुन गाउँपालिका वा नगरपालिकामा पर्नुभयो?|url=http://setopati.com/raajneeti/64651/|publisher=सेतोपाटी|accessdate=फाल्गुन २०७३|ref=http://setopati.com/raajneeti/64651/}} {{Webarchive|url=https://web.archive.org/web/20170312170008/http://setopati.com/raajneeti/64651/ |date=2017-03-12 }}</ref> २७ फागुन २०७३ मा, गाउँपालिका घोषणा गर्दा साविकका [[फाकुम्बा]], [[साँघु]] र [[ढुङ्गेसाँघु]] [[गाविस]]हरू यसमा गाभिएका थिए।<ref name="गाउँपालिका र नगरपालिका (सूची)">{{cite news|title=गाउँपालिका र नगरपालिका कुन जिल्लामा कति? (सूची)|url=http://lokaantar.com/taja_samachar/2084|accessdate=२३ पौष २०७३|publisher=लोकान्तर|date=२३ पौष २०७३|ref=http://lokaantar.com/taja_samachar/2084}}</ref> ==जनसङ्ख्या== [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|राष्ट्रिय जनगणना २०७८]]को जनगणना अनुसार {{पृष्ठको नाम}}को कुल जनसङ्ख्या १०,२१३ रहेको छ भने यहाँ २,२४९ घरधुरी रहेका छन्।<ref name="जनगणना २०७८"/> {| class="wikitable sortable" style="text-align: center;" |+ मैवाखोला गाउँपालिकाको वडागत तथ्याङ्क |- ! नयाँ वडा !! समावेश साविकका गाविसहरू !! जनसङ्ख्या !! क्षेत्रफल (वर्ग कि.मी.) !! जनघनत्व (व्यक्ति/वर्ग कि.मी.) |- | १ || [[ढुङ्गेसाँघु]] (१–५) || १,८८१ || ८.३६ || २२४.९९ |- | २ || [[ढुङ्गेसाँघु]] (६–९) || १,५९९ || १८.९८ || ८४.२५ |- | ३ || [[साँघु]] (१–६) || १,८०२ || १४.७० || १२२.५९ |- | ४ || [[साँघु]] (७–९) || १,५५७ || २९.१७ || ५३.३८ |- | ५ || [[फाकुम्बा]] (१–४) || १,८६३ || ८.७० || २१४.१४ |- | ६ || [[फाकुम्बा]] (५–९) || १,५११ || ५७.९१ || २६.०९ |- class="sortbottom" style="font-weight: bold; background: #f2f2f2;" | colspan="2" | '''जम्मा''' || '''१०,२१३''' || '''१३७.८२''' || ७४.११ |} ==सन्दर्भ सामग्रीहरू== {{सन्दर्भसूची}} {{ताप्लेजुङ जिल्लाका स्थानीय तहहरू}} ==बाह्य कडीहरू== *[http://ddctaplejung.gov.np/ जिल्ला समन्वय समितिको कार्यालय, ताप्लेजुङ, नेपाल] {{Webarchive|url=https://web.archive.org/web/20171018203403/http://ddctaplejung.gov.np/ |date=2017-10-18 }} [[श्रेणी:ताप्लेजुङ जिल्लाका गाउँपालिकाहरू]] [[श्रेणी:कोशी प्रदेशका गाउँपालिकाहरू]] 140msuqsuka4ztiw6zhfjfqiqegzpjb याङवरक गाउँपालिका 0 94881 1372361 1371376 2026-08-26T07:32:21Z ~2026-46317-18 80528 स्थानीय भाषाको नाम थपियो 1372361 wikitext text/x-wiki {{Infobox settlement <!--See the table at Infobox settlement for all fields and descriptions of usage--> <!-- आधारभूत जानकारी -->| name = | other_name =ཡང་ཝ་རག་གྲོང་གསེབ་གྲོང་ཁྱེར། | native_name = ཡང་ཝ་རག | nickname =Yangwarak | settlement_type = [[गाउँपालिका]] | motto = <!-- images and maps --> | image_skyline = | image_caption = | image_flag = | image_seal = | image_map = | pushpin_label_position = bottom | pushpin_map_caption = | pushpin_map = पाँचथर जिल्ला#कोशी प्रदेश#नेपाल <!-- अवस्थिति--> | subdivision_type = [[देश]] | subdivision_name = {{झण्डा|नेपाल}} | subdivision_type1 = [[नेपालका प्रदेशहरू|प्रदेश]] | subdivision_name1 = [[कोशी प्रदेश]] | subdivision_type2 = [[नेपालका जिल्लाहरू|जिल्ला]] | subdivision_name2 = [[पाँचथर जिल्ला|पाँचथर]] |<!-- राजनीति--> | government_footnotes =<ref name="निर्वाचन २०७९">{{cite news|title=स्थानीय तह निर्वाचन २०७९|url=https://localelection2079.ekantipur.com/pradesh-1/district-panchthar/yangwarak?lng=nep|accessdate=०९ साउन २०८१|language=नेपाली|publisher=कान्तिपुर दैनिक}}</ref> | government_type = | leader_title = अध्यक्ष | leader_name = भीमबहादुर योङया <small> ([[नेकपा (एमाले)]]) | leader_title1 = उपाध्यक्ष | leader_name1 = बावा मेयाङवो <small> ([[नेकपा (एमाले)]]) | established_title = स्थापित | established_date = २७ फागुन २०७३ | unit_pref = <!--Enter: Imperial, if Imperial (metric) is desired--> | area_footnotes = | area_total_km2 = 208.63<!-- ALL fields dealing with a measurements are subject to automatic unit conversion--> |population_as_of = [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|राष्ट्रिय जनगणना २०७८]] |population_footnotes =<ref name="जनगणना २०७८">{{cite web |title=जनसङ्ख्याको आकार र वितरण|url=https://censusnepal.cbs.gov.np/results/np/population?province=1&district=9&municipality=1|accessdate=२९ जेठ २०८१|work=राष्ट्रिय जनगणना २०७८|publisher=[[राष्ट्रिय तथ्याङ्क कार्यालय (नेपाल)|राष्ट्रिय तथ्याङ्क कार्यालय]]|language=नेपाली}}</ref> | population_total = 16821 | population_density_km2 = auto | population_blank1_title = Ethnicities <!-- साधारण जानकारी -->| timezone = [[नेपाली समय]] | utc_offset = +५:४५ | timezone_DST = | utc_offset_DST = | coordinates = {{coord|27.2|87.96|type:adm2nd_region:NP_source:unmaps-enwiki|display=inline,title}} | elevation_footnotes = <!--for references: use <ref> </ref> tags--> | elevation_m = <!-- Area/postal codes & others --> | postal_code_type = | postal_code = | area_code = +९७७-०२४ | blank_name = केन्द्र | blank_info = साविक [[थर्पु]] गाविसको कार्यालय | website = [http://www.yangwarakmunpanchthar.gov.np/ आधिकारिक वेबसाइट] | footnotes = }} '''{{पृष्ठको नाम}}''' [[पाँचथर जिल्ला]]का ७ [[गाउँपालिका]]हरू मध्ये एक हो।<ref name="गाउँपालिका वा नगरपालिका">{{cite web|title=हेर्नुहोस्, तपाईँ कुन गाउँपालिका वा नगरपालिकामा पर्नुभयो?|url=http://setopati.com/raajneeti/64651/|publisher=सेतोपाटी|accessdate=फाल्गुन २०७३|ref=http://setopati.com/raajneeti/64651/}} {{Webarchive|url=https://web.archive.org/web/20170312170008/http://setopati.com/raajneeti/64651/ |date=2017-03-12 }}</ref> २७ फागुन २०७३ मा, गाउँपालिका घोषणा गर्दा साविकका [[च्याङथापु]], [[फलैँचा, पाँचथर|फलैँचा]], [[ओयाम]], [[थर्पु]] र [[नागी, पाँचथर|नागी]] [[गाविस]]हरू यसमा गाभिएका थिए।<ref name="गाउँपालिका र नगरपालिका (सूची)">{{cite news|title=गाउँपालिका र नगरपालिका कुन जिल्लामा कति? (सूची)|url=http://lokaantar.com/taja_samachar/2084|accessdate=२३ पौष २०७३|publisher=लोकान्तर|date=२३ पौष २०७३|ref=http://lokaantar.com/taja_samachar/2084}}</ref> ==जनसङ्ख्या== [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|राष्ट्रिय जनगणना २०७८]]को जनगणना अनुसार {{पृष्ठको नाम}}को कुल जनसङ्ख्या १६,८२१ रहेको छ भने यहाँ ३,९५६ घरधुरी रहेका छन्।<ref name="जनगणना २०७८"/> {| class="wikitable sortable" style="text-align: center;" |+ याङवरक गाउँपालिकाको वडागत तथ्याङ्क |- ! नयाँ वडा !! समावेश साविकका गाविसहरू !! जनसङ्ख्या !! क्षेत्रफल (वर्ग कि.मी.) !! जनघनत्व (व्यक्ति/वर्ग कि.मी.) |- | १ || [[च्याङथापु]] || २,१५४ || ५७.०८ || ३७.७३ |- | २ || [[फलैँचा, पाँचथर|फलैँचा]] || ३,११० || ८४.९८ || ३६.५९ |- | ३ || [[ओयाम]] || ३,३७८ || ३०.०२ || ११२.५२ |- | ४ || [[थर्पु]] (१–५) || ३,१५४ || ८.३७ || ३७६.८२ |- | ५ || [[थर्पु]] (६–९) र [[नागी, पाँचथर|नागी]] (१, २) || २,३२८ || १५.३३ || १५१.८५ |- | ६ || [[नागी, पाँचथर|नागी]] (३–९) || २,६९७ || १२.५७ || २१४.५५ |- class="sortbottom" style="font-weight: bold; background: #f2f2f2;" | colspan="2" | '''जम्मा''' || '''१६,८२१''' || '''२०८.३५''' || ८०.७३ |} ==सन्दर्भ सामग्रीहरू== {{सन्दर्भसूची}} {{पाँचथर जिल्लाका स्थानीय तहहरू}} ==बाह्य कडीहरू== *[http://ddcpanchthar.gov.np/ जिल्ला समन्वय समितिको कार्यालय, पाँचथर, नेपाल] {{Webarchive|url=https://web.archive.org/web/20171028062036/http://www.ddcpanchthar.gov.np/ |date=2017-10-28 }} [[श्रेणी:पाँचथर जिल्लाका गाउँपालिकाहरू]] [[श्रेणी:कोशी प्रदेशका गाउँपालिकाहरू]] 404ptbky76zxuuy73v9iun7gk4h1n48 एयरटेल बङ्गलादेश 0 100773 1372321 1203256 2026-08-25T17:30:04Z Shah Emtiaj 80521 1372321 wikitext text/x-wiki {{Infobox company | name = रोबि आजीयाटा लिमिटेड | logo = [[File:Cirkle logo.svg |185px]] | type = [[रोबी (कम्पनी)|रोबि]]को स्वतन्त्र उत्पादन | predecessor = एयरटेल बङ्गलादेश लिमिटेड; वारिद टेलिकम लिमिटेड | fate = [[रोबी (कम्पनी)|रोबि]]मा समायोजित | key_people = महताब उद्दिन अहमद ([[प्रमुख कार्यकारी अधिकृत|प्राकाअ]]) | industry = दूरसञ्चार | products = [[मोबाइल टेलिफोन]], [[Enhanced Data Rates for GSM Evolution|एज]], [[विश्वव्यापी मोबाइल सञ्चार प्रणाली|जिएसएम]], [[जिपिआरएस]], [[युएमटिएस]], [[एचएसडिपिए]], [[एचएसयुपिए]], [[High Speed Packet Access|एचएसपिए]], [[एचएसपिए+]], [[Frequency-division duplex|एफडिडि]]-[[LTE (telecommunication)|एलटिइ]], [[एलटिइ-ए]] | services = | parent = [[आजीयाटा ग्रुप बेरहाड|आजीयाटा]] (६८.७%), [[एयरटेल इन्डिया|भारती एयरटेल]] (२५%), [[एनटिटि डोकोमो]] (६.३%) | homepage = {{URL|http://www.bd.airtel.com/en|बीडी.एयरटेल.कम}} | foundation = १० मे २००७ | location = [[ढाका]] बङ्गलादेश }} '''एयरटेल''' ({{lang-bn|এয়ারটেল}}) [[बङ्गलादेश]]मा रोबी आजीयाटाको एक स्वतन्त्र उत्पादन ब्रान्ड हो जसले रोबी आजीयाटा लिमिटेड बङ्गलादेशमा 'एयरटेल' ब्रान्डको इजाजतपत्र पाएको थियो । यो जीएसएम आधारित मोबाइल दूरसञ्चार पनि हो । यो [[रोबी (कम्पनी)|रोबि]]मा नोभेम्बर २०१६ मा समायोजित भएको थियो । यो १० मे २००७ मा स्थापना भएको थियो भने यसको मुख्यालय बङ्गलादेशको राजधानी [[ढाका]]मा अवस्थित छ । यसका दुबै प्रिपेड र पोस्टपेड सेवाहरू उपलब्ध रहेका छन् । यो बङ्गलादेशको सबैभन्दा ठूलो मित्र नेटवर्क हो जुन अगस्ट २०१८ का अनुसार यसका लगभग १३.४ मिलियन सक्रिय ग्राहकहरू रहेका छन् । कम्पनीले ५०० भन्दा बढि थानाहरूका जनसङ्ख्यालाई ४ जी नेटवर्कको साथ ९०% सम्मको व्यापक नेटवर्क कभरेज प्रदान गरेको छ । यसले हाल रोबिका नाममा सेवा दिइरहेको छ ==विकासक्रम== संयुक्त अरब इमिरेट्सको एक प्रमुख टेलिकम, वारिद टेलीकमले, यस कम्पनीलाई भारतको [[एयरटेल इन्डिया|भारती एयरटेल]] लिमिटेडमा ३०० मिलियन अमेरिकी डलरमा ७०% भाग बेच्दिएको थियो । भारतीय एयरटेलको प्रस्तावमा कम्पनीको नयाँ शेयरहरू सिर्जना गर्न वारीदमा ३०० मिलियन डलर लगानी गरेको थियो । बङ्गलादेश दूरसञ्चार विनियामक आयोगले ४ जनवरी २०१० मा यस सम्झौता स्वीकृत गर्यो । भारती एयरटेल लिमिटेड र यसको बोर्डको प्रबन्धन नियन्त्रणले २० डिसेम्बर २०१० देखि कम्पनीको सेवाहरूलाई आफ्नो ''एयरटेल''मा पुनः सञ्चालन गरेको थियो । मार्च २०१३ मा, वारिद टेलिकमले बाँकी रहेको ३०% शेयरलाई भारती एयरटेलको सिंगापुर-आधारित भारती एयरटेल होल्डिङ्स पिटिइ लिमिटेडको ८५ करोड अमेरिकी डलरमा बेच्दिएको थियो । ८ सेप्टेम्बर २०१३ मा, एयरटेल बङ्गलादेश ५ मेगाहर्ज ३ जी स्पेक्ट्रम प्राप्त गरेको थियो । जनवरी २०१६ मा एयरटेल बङ्गलादेश र रोबि ले आ-आफ्नो सेवालाई एउटैमा समायोजन गर्ने घोषण गरेका थिए र यो समायोजन पछि त्यसलाई रोबिको नाम दिने भनिएको थियो र जसले त्यसबेलाका छुट्टाछुट्टै प्रदायकका ३२ मिलियन प्रयोगकर्ताहरूलाई सेवा दिएको थियो । यो समायोजित [[रोबी (कम्पनी)|रोबि]]लाई ६८.७% मलेसियाको इन्टरनेट कम्पनी [[आजीयाटा ग्रुप बेरहाड|आजीयाटा]] को स्वामित्वमा रहेको छ भने, भारतको [[एयरटेल इन्डिया|भारती एयरटेल]]को २५% रहेकोे छ भने बाँकी ६.३% चाहि जापानको [[एनटिटि डोकोमो]]को स्वामित्व रहेको छ ।<ref>{{cite web|url=http://www.axiata.com/mroom/news-article/121/|title=दुइ प्रमुख दूरसञ्चार कम्पनी बिच समायोजन हुने निर्णय भएको छ|publisher=आजीयाटा|date=2016-01-28|accessdate=2016-01-29}} {{Webarchive|url=https://web.archive.org/web/20171201081642/https://www.axiata.com/mroom/news-article/121 |date=2017-12-01 }}</ref><ref>{{cite web|url= https://sg.finance.yahoo.com/news/malaysias-axiata-indias-bharti-merge-115709908.html|title= आजीयाटा र भारती एयरटेलले आ-आफ्ना नियन्त्रणमा रहेका कम्पनीलाई समायोजन गरेका छन् |publisher=रेउटर्स|date=2016-01-28|accessdate=2016-01-29}}</ref> नोभेम्बर २०१६ मा समायोजन सफल<ref> यो समायोजन नोभेम्बर २०१६ मा पुर्ण भएको थियो र बङ्गलादेशमा दोस्रो सबैभन्दा ठूलो टेलिकम कम्पनी बन्न सफल भएको थियो । ==यो पनि हेर्नुहोस== * [[एयरटेल इन्डिया|एयरटेल भारत]] * [[एयरटेल श्रीलङ्का]] * [[एयरटेल अफ्रिका]] ==सन्दर्भ सामग्री== {{reflist}} ==बाह्य कडीहरू== [https://www.bd.airtel.com/bn आधिकारिक वेबसाइट] [[श्रेणी:विकिथन-७ मा बनाइएका वा सुधारिएका लेखहरू]] [[श्रेणी:दूरसञ्चार]] [[श्रेणी:इन्टरनेट सेवा प्रदायकहरू]] [[श्रेणी:टेलिकम]] b2hmy7vo5mw127q9yjtfeoidkxkqi0w काँच 0 101803 1372362 1357862 2026-08-26T08:00:48Z Omnathpokh1 20435 /* */ केही विवरण सुधारिएको र केही विवरण थपिएको 1372362 wikitext text/x-wiki [[File:Gluehlampe 01 KMJ.jpg|thumb|स्वच्छ पारदर्शी काँचबाट बनेको बिजुली बल्ब]] '''काँच''' एक पारदर्शी ठोस वस्तु हो। यो [[मणिभ]] नबनी अर्ध ठोस अवस्थाबाट ठोसमा बदलिन्छ। यो एक अति चिस्याइएको तरल (''सुपर कुल्ड लिक्विड'') हो। यसको कारण यो ठोस हुनुभन्दा पहिले नै यसको पग्लिने [[तापक्रम]]भन्दा तल चिसिन्छ। ठाडो पारेर राखेको झ्यालमा रहेका [[अणु]]हरू माथिल्लो तहबाट तल्लो तहतिर बिस्तारै बग्छन्। यो अल्काली र अल्कालाइन धातुहरूको समान मिश्रण हो। यसको मुख्य [[कच्चा पदार्थ]] सिलिका (SiO<sub>2</sub>) हो। [[बालुवा]]मा यो पदार्थ पाइन्छ। सिलिका र केही धातुहरूको यौगिकसँग प्रतिक्रिया भई सिलिकेटहरू बन्छन्। [[धातु]]को सिलिकेटबाट काँच बनाइन्छ। काँच विभिन्न प्रकारका हुन्छन्। तीमध्ये केही क्वार्ज काँच, वाटर काँच, साधारण काँच, कडा काँच, बोरो सिलिकेट काँच, लेड क्रिस्टल काँच, रङ्गीन काँच आदि हुन्। ==सिलिका काँच == सिलिकालाई लगभग १६०० डिग्री सेल्सियसमा तताउँदा यो पग्लन्छ। यसलाई चिस्याउँदा ठोसमा परिर्वतन भई एक प्रकारको कृस्टलाइन काँच बन्छ। यसैलाई सिलिका काँच भनिन्छ। यो अम्ल, पानी र अन्य रसायनहरूमा घुल्दैन। वातावरणमा भएको फरक तापक्रमले यसलाई असर गर्दैन किनकि सिलिकामा तन्कने गुण हुन्छ। यो काँच गम बनाउन, विद्युतीय सामग्रीहरू बनाउन र प्रयोगशालामा प्रयोग हुने सामग्रीहरू बनाउन प्रयोग गरिन्छ। ==वाटर काँच== सिलिकालाई करिब ८०० डिग्री सम्म [[सोडियम कार्बोनेट]] वा [[पोटासियम कार्बोनेट]]सँग तताउँदा [[सोडियम सिलिकेट]] वा पोटासियम सिलिकेट बन्छ। यो काँच पानीमा घुल्ने हुनाले यसलाई वाटर काँच पनि भनिन्छ। यस प्रकारको काँच अग्नि प्रतिरोधक सामान र सिलिका गार्डेन बनाउन प्रयोग गरिन्छ। यस काँचको घोल पेस्ट, गम आदि बनाउन पनि प्रयोग गरिन्छ । == भौतिक गुण == काँचको उपयोग कैयौँ प्रकारको वतुहरूमा गरिन्छ जुनमा विभिन्न भौतिक गुणहरूको आवश्यकता रहन्छ। काँचको भौतिक गुणहरूमा भिन्नता विभिन्न आक्साइडहरूद्वारा आउँछ। '''घनत्व'''- काँचमा अधिक घनत्व सीस आक्साइडद्वारा आउँछ भने सबैभन्दा कम बोरिक आक्साइडद्वारा आउँछ। '''विद्धुतीय गुण'''- काँचको विद्युच्चालकता काँचको रचना, ताप एवं वातावरण मा निर्भर रहन्छ। आजकल काँचको उपयोग अचालक (insulator) को लागि गरिन्छ। '''तापीय गुण'''- तप्त हुँदा काँच ताप प्रसारित हुन्छ '''प्रकाशीय गुण'''- [[श्रेणी:रासायनिक पदार्थहरू|काँच]] 8wl5u3s1pjy08j71413avye0bj0ril8 1372363 1372362 2026-08-26T08:14:37Z Omnathpokh1 20435 /* सिलिका काँच र क्वार्ज काँच */ विवरण सुधार र थप गरिएको 1372363 wikitext text/x-wiki [[File:Gluehlampe 01 KMJ.jpg|thumb|स्वच्छ पारदर्शी काँचबाट बनेको बिजुली बल्ब]] '''काँच''' एक पारदर्शी ठोस वस्तु हो। यो [[मणिभ]] नबनी अर्ध ठोस अवस्थाबाट ठोसमा बदलिन्छ। यो एक अति चिस्याइएको तरल (''सुपर कुल्ड लिक्विड'') हो। यसको कारण यो ठोस हुनुभन्दा पहिले नै यसको पग्लिने [[तापक्रम]]भन्दा तल चिसिन्छ। ठाडो पारेर राखेको झ्यालमा रहेका [[अणु]]हरू माथिल्लो तहबाट तल्लो तहतिर बिस्तारै बग्छन्। यो अल्काली र अल्कालाइन धातुहरूको समान मिश्रण हो। यसको मुख्य [[कच्चा पदार्थ]] सिलिका (SiO<sub>2</sub>) हो। [[बालुवा]]मा यो पदार्थ पाइन्छ। सिलिका र केही धातुहरूको यौगिकसँग प्रतिक्रिया भई सिलिकेटहरू बन्छन्। [[धातु]]को सिलिकेटबाट काँच बनाइन्छ। काँच विभिन्न प्रकारका हुन्छन्। तीमध्ये केही क्वार्ज काँच, वाटर काँच, साधारण काँच, कडा काँच, बोरो सिलिकेट काँच, लेड क्रिस्टल काँच, रङ्गीन काँच आदि हुन्। ==सिलिका काँच र क्वार्ज काँच== सिलिका काँच र क्वार्ज काँच एक-अर्कासँग निकै मिल्दाजुल्दा हुन्छन् र प्रायः यी शब्दहरूलाई एउटै अर्थमा प्रयोग गरिन्छ, तर यिनीहरू बनाइने प्रक्रिया र शुद्धताको स्तरमा भने केही भिन्नताहरू छन्। क्वार्ज काँच प्राकृतिक खनिजबाट बन्ने हुनाले यसमा केही अशुद्धताहरू हुन सक्छन् तर सिलिका काँच रासायनिक ग्याँसहरूबाट बन्ने हुँदा यो अत्यधिक शुद्ध र प्रकाश (विशेष गरी परावैजनी किरण) पार गर्न उत्कृष्ट मानिन्छ। सिलिकालाई लगभग १७०० डिग्री सेल्सियसभन्दा उच्च तापक्रममा तताउँदा यो पग्लन्छ। यसलाई चिस्याउँदा यो मणिभ नबनी ''एमर्फस'' ठोसमा परिवर्तन हुन्छ, जसलाई सिलिका काँच भनिन्छ। यो अम्ल (हाईड्रोफ्लोरिक अम्ल बाहेक), पानी र अन्य रसायनहरूमा घुल्दैन। वातावरणमा हुने तीव्र तापक्रमको परिवर्तनले यसलाई असर गर्दैन, किनकि यसको तापीय प्रसार गुणाङ्क निकै कम हुन्छ, जसले गर्दा यो तातो-चिसोमा फैलिने वा खुम्चिने हुँदैन। यो काँच अत्याधुनिक अप्टिकल लेन्स, विद्युतीय सामग्रीहरू, अप्टिकल फाइबर र प्रयोगशालामा प्रयोग हुने उच्च ताप प्रतिरोधी सामग्रीहरू बनाउन प्रयोग गरिन्छ। ==वाटर काँच== सिलिकालाई करिब ८०० डिग्री सम्म [[सोडियम कार्बोनेट]] वा [[पोटासियम कार्बोनेट]]सँग तताउँदा [[सोडियम सिलिकेट]] वा पोटासियम सिलिकेट बन्छ। यो काँच पानीमा घुल्ने हुनाले यसलाई वाटर काँच पनि भनिन्छ। यस प्रकारको काँच अग्नि प्रतिरोधक सामान र सिलिका गार्डेन बनाउन प्रयोग गरिन्छ। यस काँचको घोल पेस्ट, गम आदि बनाउन पनि प्रयोग गरिन्छ । == भौतिक गुण == काँचको उपयोग कैयौँ प्रकारको वतुहरूमा गरिन्छ जुनमा विभिन्न भौतिक गुणहरूको आवश्यकता रहन्छ। काँचको भौतिक गुणहरूमा भिन्नता विभिन्न आक्साइडहरूद्वारा आउँछ। '''घनत्व'''- काँचमा अधिक घनत्व सीस आक्साइडद्वारा आउँछ भने सबैभन्दा कम बोरिक आक्साइडद्वारा आउँछ। '''विद्धुतीय गुण'''- काँचको विद्युच्चालकता काँचको रचना, ताप एवं वातावरण मा निर्भर रहन्छ। आजकल काँचको उपयोग अचालक (insulator) को लागि गरिन्छ। '''तापीय गुण'''- तप्त हुँदा काँच ताप प्रसारित हुन्छ '''प्रकाशीय गुण'''- [[श्रेणी:रासायनिक पदार्थहरू|काँच]] 2pb4uobimmyn1m8nv2ncz8jxf5qhpp2 1372364 1372363 2026-08-26T08:29:13Z Omnathpokh1 20435 /* वाटर काँच */ रसायनिक समिकरण थप गरिएको। 1372364 wikitext text/x-wiki [[File:Gluehlampe 01 KMJ.jpg|thumb|स्वच्छ पारदर्शी काँचबाट बनेको बिजुली बल्ब]] '''काँच''' एक पारदर्शी ठोस वस्तु हो। यो [[मणिभ]] नबनी अर्ध ठोस अवस्थाबाट ठोसमा बदलिन्छ। यो एक अति चिस्याइएको तरल (''सुपर कुल्ड लिक्विड'') हो। यसको कारण यो ठोस हुनुभन्दा पहिले नै यसको पग्लिने [[तापक्रम]]भन्दा तल चिसिन्छ। ठाडो पारेर राखेको झ्यालमा रहेका [[अणु]]हरू माथिल्लो तहबाट तल्लो तहतिर बिस्तारै बग्छन्। यो अल्काली र अल्कालाइन धातुहरूको समान मिश्रण हो। यसको मुख्य [[कच्चा पदार्थ]] सिलिका (SiO<sub>2</sub>) हो। [[बालुवा]]मा यो पदार्थ पाइन्छ। सिलिका र केही धातुहरूको यौगिकसँग प्रतिक्रिया भई सिलिकेटहरू बन्छन्। [[धातु]]को सिलिकेटबाट काँच बनाइन्छ। काँच विभिन्न प्रकारका हुन्छन्। तीमध्ये केही क्वार्ज काँच, वाटर काँच, साधारण काँच, कडा काँच, बोरो सिलिकेट काँच, लेड क्रिस्टल काँच, रङ्गीन काँच आदि हुन्। ==सिलिका काँच र क्वार्ज काँच== सिलिका काँच र क्वार्ज काँच एक-अर्कासँग निकै मिल्दाजुल्दा हुन्छन् र प्रायः यी शब्दहरूलाई एउटै अर्थमा प्रयोग गरिन्छ, तर यिनीहरू बनाइने प्रक्रिया र शुद्धताको स्तरमा भने केही भिन्नताहरू छन्। क्वार्ज काँच प्राकृतिक खनिजबाट बन्ने हुनाले यसमा केही अशुद्धताहरू हुन सक्छन् तर सिलिका काँच रासायनिक ग्याँसहरूबाट बन्ने हुँदा यो अत्यधिक शुद्ध र प्रकाश (विशेष गरी परावैजनी किरण) पार गर्न उत्कृष्ट मानिन्छ। सिलिकालाई लगभग १७०० डिग्री सेल्सियसभन्दा उच्च तापक्रममा तताउँदा यो पग्लन्छ। यसलाई चिस्याउँदा यो मणिभ नबनी ''एमर्फस'' ठोसमा परिवर्तन हुन्छ, जसलाई सिलिका काँच भनिन्छ। यो अम्ल (हाईड्रोफ्लोरिक अम्ल बाहेक), पानी र अन्य रसायनहरूमा घुल्दैन। वातावरणमा हुने तीव्र तापक्रमको परिवर्तनले यसलाई असर गर्दैन, किनकि यसको तापीय प्रसार गुणाङ्क निकै कम हुन्छ, जसले गर्दा यो तातो-चिसोमा फैलिने वा खुम्चिने हुँदैन। यो काँच अत्याधुनिक अप्टिकल लेन्स, विद्युतीय सामग्रीहरू, अप्टिकल फाइबर र प्रयोगशालामा प्रयोग हुने उच्च ताप प्रतिरोधी सामग्रीहरू बनाउन प्रयोग गरिन्छ। ==वाटर काँच== सिलिकालाई करिब ८०० डिग्री सम्म [[सोडियम कार्बोनेट]] वा [[पोटासियम कार्बोनेट]]सँग तताउँदा [[सोडियम सिलिकेट]] वा पोटासियम सिलिकेट बन्छ। <chem>SiO2 + Na2CO3 -> Na2SiO3 + CO2</chem> <chem>SiO2 + K2CO3 -> K2SiO3 + CO2</chem> यो काँच पानीमा घुल्ने हुनाले यसलाई वाटर काँच पनि भनिन्छ। यस प्रकारको काँच अग्नि प्रतिरोधक सामान र सिलिका गार्डेन बनाउन प्रयोग गरिन्छ। यस काँचको घोल पेस्ट, गम आदि बनाउन पनि प्रयोग गरिन्छ । == भौतिक गुण == काँचको उपयोग कैयौँ प्रकारको वतुहरूमा गरिन्छ जुनमा विभिन्न भौतिक गुणहरूको आवश्यकता रहन्छ। काँचको भौतिक गुणहरूमा भिन्नता विभिन्न आक्साइडहरूद्वारा आउँछ। '''घनत्व'''- काँचमा अधिक घनत्व सीस आक्साइडद्वारा आउँछ भने सबैभन्दा कम बोरिक आक्साइडद्वारा आउँछ। '''विद्धुतीय गुण'''- काँचको विद्युच्चालकता काँचको रचना, ताप एवं वातावरण मा निर्भर रहन्छ। आजकल काँचको उपयोग अचालक (insulator) को लागि गरिन्छ। '''तापीय गुण'''- तप्त हुँदा काँच ताप प्रसारित हुन्छ '''प्रकाशीय गुण'''- [[श्रेणी:रासायनिक पदार्थहरू|काँच]] hh3wyv32mhq6kydsw0lhviluvef5hnb 1372365 1372364 2026-08-26T08:40:15Z Omnathpokh1 20435 /* साधारण काँच */ विवरण थपिएको 1372365 wikitext text/x-wiki [[File:Gluehlampe 01 KMJ.jpg|thumb|स्वच्छ पारदर्शी काँचबाट बनेको बिजुली बल्ब]] '''काँच''' एक पारदर्शी ठोस वस्तु हो। यो [[मणिभ]] नबनी अर्ध ठोस अवस्थाबाट ठोसमा बदलिन्छ। यो एक अति चिस्याइएको तरल (''सुपर कुल्ड लिक्विड'') हो। यसको कारण यो ठोस हुनुभन्दा पहिले नै यसको पग्लिने [[तापक्रम]]भन्दा तल चिसिन्छ। ठाडो पारेर राखेको झ्यालमा रहेका [[अणु]]हरू माथिल्लो तहबाट तल्लो तहतिर बिस्तारै बग्छन्। यो अल्काली र अल्कालाइन धातुहरूको समान मिश्रण हो। यसको मुख्य [[कच्चा पदार्थ]] सिलिका (SiO<sub>2</sub>) हो। [[बालुवा]]मा यो पदार्थ पाइन्छ। सिलिका र केही धातुहरूको यौगिकसँग प्रतिक्रिया भई सिलिकेटहरू बन्छन्। [[धातु]]को सिलिकेटबाट काँच बनाइन्छ। काँच विभिन्न प्रकारका हुन्छन्। तीमध्ये केही क्वार्ज काँच, वाटर काँच, साधारण काँच, कडा काँच, बोरो सिलिकेट काँच, लेड क्रिस्टल काँच, रङ्गीन काँच आदि हुन्। ==सिलिका काँच र क्वार्ज काँच== सिलिका काँच र क्वार्ज काँच एक-अर्कासँग निकै मिल्दाजुल्दा हुन्छन् र प्रायः यी शब्दहरूलाई एउटै अर्थमा प्रयोग गरिन्छ, तर यिनीहरू बनाइने प्रक्रिया र शुद्धताको स्तरमा भने केही भिन्नताहरू छन्। क्वार्ज काँच प्राकृतिक खनिजबाट बन्ने हुनाले यसमा केही अशुद्धताहरू हुन सक्छन् तर सिलिका काँच रासायनिक ग्याँसहरूबाट बन्ने हुँदा यो अत्यधिक शुद्ध र प्रकाश (विशेष गरी परावैजनी किरण) पार गर्न उत्कृष्ट मानिन्छ। सिलिकालाई लगभग १७०० डिग्री सेल्सियसभन्दा उच्च तापक्रममा तताउँदा यो पग्लन्छ। यसलाई चिस्याउँदा यो मणिभ नबनी ''एमर्फस'' ठोसमा परिवर्तन हुन्छ, जसलाई सिलिका काँच भनिन्छ। यो अम्ल (हाईड्रोफ्लोरिक अम्ल बाहेक), पानी र अन्य रसायनहरूमा घुल्दैन। वातावरणमा हुने तीव्र तापक्रमको परिवर्तनले यसलाई असर गर्दैन, किनकि यसको तापीय प्रसार गुणाङ्क निकै कम हुन्छ, जसले गर्दा यो तातो-चिसोमा फैलिने वा खुम्चिने हुँदैन। यो काँच अत्याधुनिक अप्टिकल लेन्स, विद्युतीय सामग्रीहरू, अप्टिकल फाइबर र प्रयोगशालामा प्रयोग हुने उच्च ताप प्रतिरोधी सामग्रीहरू बनाउन प्रयोग गरिन्छ। ==वाटर काँच== सिलिकालाई करिब ८०० डिग्री सम्म [[सोडियम कार्बोनेट]] वा [[पोटासियम कार्बोनेट]]सँग तताउँदा [[सोडियम सिलिकेट]] वा पोटासियम सिलिकेट बन्छ। <chem>SiO2 + Na2CO3 -> Na2SiO3 + CO2</chem> <chem>SiO2 + K2CO3 -> K2SiO3 + CO2</chem> यो काँच पानीमा घुल्ने हुनाले यसलाई वाटर काँच पनि भनिन्छ। यस प्रकारको काँच अग्नि प्रतिरोधक सामान र सिलिका गार्डेन बनाउन प्रयोग गरिन्छ। यस काँचको घोल पेस्ट, गम आदि बनाउन पनि प्रयोग गरिन्छ । == साधारण काँच == साधारण काँचलाई वैज्ञानिक भाषामा ''सोडा लाइम ग्लास'' वा कम तापक्रममा पग्लिने गुण भएकाले नरम काँच पनि भनिन्छ। यसको औद्योगिक उत्पादन ''ट्याङ्क फर्नेस'' मा ५०% सिलिका, २५% काँचका टुक्राहरू, १५% सोडियम कार्बोनेट र १०% क्याल्सियम कार्बोनेटको मिश्रणलाई तताएर गरिन्छ। पानीमा नघुल्ने यो काँच दैनिक जीवनमा साधारण सिसी, झ्यालका ऐना र प्रयोगशालाका सामान्य सामानहरू बनाउन व्यापक रूपमा प्रयोग हुन्छ। यसै मिश्रणमा लेड मोनोअक्साइड थप्दा लेड सिलिकेट बन्दछ, जसले काँचको ''रिफ्र्याक्टिभ इन्डेक्स'' बढाउने हुनाले यसबाट लेन्स र प्रिज्म जस्ता अत्याधुनिक प्रकाश सम्बन्धी उपकरणहरू निर्माण गर्न सकिन्छ। <chem>PbO + SiO2 -> PbSiO3</chem> == भौतिक गुण == काँचको उपयोग कैयौँ प्रकारको वतुहरूमा गरिन्छ जुनमा विभिन्न भौतिक गुणहरूको आवश्यकता रहन्छ। काँचको भौतिक गुणहरूमा भिन्नता विभिन्न आक्साइडहरूद्वारा आउँछ। '''घनत्व'''- काँचमा अधिक घनत्व सीस आक्साइडद्वारा आउँछ भने सबैभन्दा कम बोरिक आक्साइडद्वारा आउँछ। '''विद्धुतीय गुण'''- काँचको विद्युच्चालकता काँचको रचना, ताप एवं वातावरण मा निर्भर रहन्छ। आजकल काँचको उपयोग अचालक (insulator) को लागि गरिन्छ। '''तापीय गुण'''- तप्त हुँदा काँच ताप प्रसारित हुन्छ '''प्रकाशीय गुण'''- [[श्रेणी:रासायनिक पदार्थहरू|काँच]] go9r5f2xomkqk9vtr2cer43c0xnimam ढाँचा:Efn-ua 10 101808 1372344 1276587 2026-08-26T03:33:01Z पर्वत सुवेदी 31224 /* */ 1372344 wikitext text/x-wiki <includeonly>{{safesubst<noinclude />:efn|name={{{name|}}}|reference={{{1|{{{reference|{{{content|{{{text|}}}}}}}}}}}}}}</includeonly><noinclude> {{documentation}} </noinclude> fmxszew095oivorztjw4t0me3uqf4s0 मोड्युल:Coordinates test 828 112230 1372352 1335353 2026-08-26T04:20:21Z पर्वत सुवेदी 31224 1372352 Scribunto text/plain --[[ This module is intended to replace the functionality of {{Coord}} and related templates. It provides several methods, including {{#invoke:Coordinates | coord }} : General function formatting and displaying coordinate values. {{#invoke:Coordinates | dec2dms }} : Simple function for converting decimal degree values to DMS format. {{#invoke:Coordinates | dms2dec }} : Simple function for converting DMS format to decimal degree format. {{#invoke:Coordinates | link }} : Export the link used to reach the tools ]] require('strict') local math_mod = require("Module:Math") local coordinates = {}; local isSandbox = mw.getCurrentFrame():getTitle():find('sandbox', 1, true); local current_page = mw.title.getCurrentTitle() local page_name = mw.uri.encode( current_page.prefixedText, 'WIKI' ); local coord_link = 'https://geohack.toolforge.org/geohack.php?pagename=' .. page_name .. '&params=' --[[ Helper function, replacement for {{coord/display/title}} ]] local function displaytitle(coords) return mw.getCurrentFrame():extensionTag{ name = 'indicator', args = { name = 'coordinates' }, content = '<span id="coordinates">[[Geographic coordinate system|Coordinates]]: ' .. coords .. '</span>' } end --[[ Helper function, used in detecting DMS formatting ]] local function dmsTest(first, second) if type(first) ~= 'string' or type(second) ~= 'string' then return nil end local s = (first .. second):upper() return s:find('^[NS][EW]$') or s:find('^[EW][NS]$') end --[[ Wrapper function to grab args, see Module:Arguments for this function's documentation. ]] local function makeInvokeFunc(funcName) return function (frame) local args = require('Module:Arguments').getArgs(frame, { wrappers = 'Template:স্থানাঙ্ক/খেলাঘর' }) return coordinates[funcName](args, frame) end end --[[ Helper function, handle optional args. ]] local function optionalArg(arg, supplement) return arg and arg .. supplement or '' end --[[ Formats any error messages generated for display ]] local function errorPrinter(errors) local result = "" for i,v in ipairs(errors) do result = result .. '<strong class="error">Coordinates: ' .. v[2] .. '</strong><br />' end return result end --[[ Determine the required CSS class to display coordinates Usually geo-nondefault is hidden by CSS, unless a user has overridden this for himself default is the mode as specificied by the user when calling the {{coord}} template mode is the display mode (dec or dms) that we will need to determine the css class for ]] local function displayDefault(default, mode) if default == "" then default = "dec" end if default == mode then return "geo-default" else return "geo-nondefault" end end --[[ specPrinter Output formatter. Takes the structure generated by either parseDec or parseDMS and formats it for inclusion on Wikipedia. ]] local function specPrinter(args, coordinateSpec) local uriComponents = coordinateSpec["param"] if uriComponents == "" then -- RETURN error, should never be empty or nil return "ERROR param was empty" end if args["name"] then uriComponents = uriComponents .. "&title=" .. mw.uri.encode(coordinateSpec["name"]) end local geodmshtml = '<span class="geo-dms" title="Maps, aerial photos, and other data for this location">' .. '<span class="latitude">' .. coordinateSpec["dms-lat"] .. '</span> ' .. '<span class="longitude">' ..coordinateSpec["dms-long"] .. '</span>' .. '</span>' local lat = tonumber( coordinateSpec["dec-lat"] ) or 0 local geodeclat if lat < 0 then -- FIXME this breaks the pre-existing precision geodeclat = tostring(coordinateSpec["dec-lat"]):sub(2) .. "°S" else geodeclat = (coordinateSpec["dec-lat"] or 0) .. "°N" end local long = tonumber( coordinateSpec["dec-long"] ) or 0 local geodeclong if long < 0 then -- FIXME does not handle unicode minus geodeclong = tostring(coordinateSpec["dec-long"]):sub(2) .. "°W" else geodeclong = (coordinateSpec["dec-long"] or 0) .. "°E" end local geodechtml = '<span class="geo-dec" title="Maps, aerial photos, and other data for this location">' .. geodeclat .. ' ' .. geodeclong .. '</span>' local geonumhtml = '<span class="geo">' .. coordinateSpec["dec-lat"] .. '; ' .. coordinateSpec["dec-long"] .. '</span>' local inner = '<span class="' .. displayDefault(coordinateSpec["default"], "dms" ) .. '">' .. geodmshtml .. '</span>' .. '<span class="geo-multi-punct">&#xfeff; / &#xfeff;</span>' .. '<span class="' .. displayDefault(coordinateSpec["default"], "dec" ) .. '">'; if not args["name"] then inner = inner .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span></span>' else inner = inner .. '<span class="vcard">' .. geodechtml .. '<span style="display:none">&#xfeff; / ' .. geonumhtml .. '</span>' .. '<span style="display:none">&#xfeff; (<span class="fn org">' .. args["name"] .. '</span>)</span></span></span>' end local stylesheetLink = 'Module:Coordinates' .. ( isSandbox and '/sandbox' or '' ) .. '/styles.css' return mw.getCurrentFrame():extensionTag{ name = 'templatestyles', args = { src = stylesheetLink } } .. '<span class="plainlinks nourlexpansion">[' .. coord_link .. uriComponents .. ' ' .. inner .. ']</span>' .. '[[Category:Pages using gadget WikiMiniAtlas]]' end --[[ Helper function, convert decimal to degrees ]] local function convert_dec2dms_d(coordinate) local d = math_mod._round( coordinate, 0 ) .. "°" return d .. "" end --[[ Helper function, convert decimal to degrees and minutes ]] local function convert_dec2dms_dm(coordinate) coordinate = math_mod._round( coordinate * 60, 0 ); local m = coordinate % 60; coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) end --[[ Helper function, convert decimal to degrees, minutes, and seconds ]] local function convert_dec2dms_dms(coordinate) coordinate = math_mod._round( coordinate * 60 * 60, 0 ); local s = coordinate % 60 coordinate = math.floor( (coordinate - s) / 60 ); local m = coordinate % 60 coordinate = math.floor( (coordinate - m) / 60 ); local d = coordinate % 360 .."°" return d .. string.format( "%02d′", m ) .. string.format( "%02d″", s ) end --[[ Helper function, convert decimal latitude or longitude to degrees, minutes, and seconds format based on the specified precision. ]] local function convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) local coord = tonumber(coordinate) local postfix if coord >= 0 then postfix = firstPostfix else postfix = secondPostfix end precision = precision:lower(); if precision == "dms" then return convert_dec2dms_dms( math.abs( coord ) ) .. postfix; elseif precision == "dm" then return convert_dec2dms_dm( math.abs( coord ) ) .. postfix; elseif precision == "d" then return convert_dec2dms_d( math.abs( coord ) ) .. postfix; end end --[[ Convert DMS format into a N or E decimal coordinate ]] local function convert_dms2dec(direction, degrees_str, minutes_str, seconds_str) local degrees = tonumber(degrees_str) local minutes = tonumber(minutes_str) or 0 local seconds = tonumber(seconds_str) or 0 local factor = 1 if direction == "S" or direction == "W" then factor = -1 end local precision = 0 if seconds_str then precision = 5 + math.max( math_mod._precision(seconds_str), 0 ); elseif minutes_str and minutes_str ~= '' then precision = 3 + math.max( math_mod._precision(minutes_str), 0 ); else precision = math.max( math_mod._precision(degrees_str), 0 ); end local decimal = factor * (degrees+(minutes+seconds/60)/60) return string.format( "%." .. precision .. "f", decimal ) -- not tonumber since this whole thing is string based. end --[[ Checks input values to for out of range errors. ]] local function validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, source, strong ) local errors = {}; lat_d = tonumber( lat_d ) or 0; lat_m = tonumber( lat_m ) or 0; lat_s = tonumber( lat_s ) or 0; long_d = tonumber( long_d ) or 0; long_m = tonumber( long_m ) or 0; long_s = tonumber( long_s ) or 0; if strong then if lat_d < 0 then table.insert(errors, {source, "latitude degrees < 0 with hemisphere flag"}) end if long_d < 0 then table.insert(errors, {source, "longitude degrees < 0 with hemisphere flag"}) end --[[ #coordinates is inconsistent about whether this is an error. If globe: is specified, it won't error on this condition, but otherwise it will. For not simply disable this check. if long_d > 180 then table.insert(errors, {source, "longitude degrees > 180 with hemisphere flag"}) end ]] end if lat_d > 90 then table.insert(errors, {source, "latitude degrees > 90"}) end if lat_d < -90 then table.insert(errors, {source, "latitude degrees < -90"}) end if lat_m >= 60 then table.insert(errors, {source, "latitude minutes >= 60"}) end if lat_m < 0 then table.insert(errors, {source, "latitude minutes < 0"}) end if lat_s >= 60 then table.insert(errors, {source, "latitude seconds >= 60"}) end if lat_s < 0 then table.insert(errors, {source, "latitude seconds < 0"}) end if long_d >= 360 then table.insert(errors, {source, "longitude degrees >= 360"}) end if long_d <= -360 then table.insert(errors, {source, "longitude degrees <= -360"}) end if long_m >= 60 then table.insert(errors, {source, "longitude minutes >= 60"}) end if long_m < 0 then table.insert(errors, {source, "longitude minutes < 0"}) end if long_s >= 60 then table.insert(errors, {source, "longitude seconds >= 60"}) end if long_s < 0 then table.insert(errors, {source, "longitude seconds < 0"}) end return errors; end --[[ parseDec Transforms decimal format latitude and longitude into the structure to be used in displaying coordinates ]] local function parseDec( lat, long, format ) local coordinateSpec = {} local errors = {} if not long then return nil, {{"parseDec", "Missing longitude"}} elseif not tonumber(long) then return nil, {{"parseDec", "Longitude could not be parsed as a number: " .. long}} end errors = validate( lat, nil, nil, long, nil, nil, 'parseDec', false ); coordinateSpec["dec-lat"] = lat; coordinateSpec["dec-long"] = long; local mode = coordinates.determineMode( lat, long ); coordinateSpec["dms-lat"] = convert_dec2dms( lat, "N", "S", mode) -- {{coord/dec2dms|{{{1}}}|N|S|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} coordinateSpec["dms-long"] = convert_dec2dms( long, "E", "W", mode) -- {{coord/dec2dms|{{{2}}}|E|W|{{coord/prec dec|{{{1}}}|{{{2}}}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dec" end return coordinateSpec, errors end --[[ parseDMS Transforms degrees, minutes, seconds format latitude and longitude into the a structure to be used in displaying coordinates ]] local function parseDMS( lat_d, lat_m, lat_s, lat_f, long_d, long_m, long_s, long_f, format ) local coordinateSpec, errors, backward = {}, {} lat_f = lat_f:upper(); long_f = long_f:upper(); -- Check if specified backward if lat_f == 'E' or lat_f == 'W' then lat_d, long_d, lat_m, long_m, lat_s, long_s, lat_f, long_f, backward = long_d, lat_d, long_m, lat_m, long_s, lat_s, long_f, lat_f, true; end errors = validate( lat_d, lat_m, lat_s, long_d, long_m, long_s, 'parseDMS', true ); if not long_d then return nil, {{"parseDMS", "Missing longitude" }} elseif not tonumber(long_d) then return nil, {{"parseDMS", "Longitude could not be parsed as a number:" .. long_d }} end if not lat_m and not lat_s and not long_m and not long_s and #errors == 0 then if math_mod._precision( lat_d ) > 0 or math_mod._precision( long_d ) > 0 then if lat_f:upper() == 'S' then lat_d = '-' .. lat_d; end if long_f:upper() == 'W' then long_d = '-' .. long_d; end return parseDec( lat_d, long_d, format ); end end coordinateSpec["dms-lat"] = lat_d.."°"..optionalArg(lat_m,"′") .. optionalArg(lat_s,"″") .. lat_f coordinateSpec["dms-long"] = long_d.."°"..optionalArg(long_m,"′") .. optionalArg(long_s,"″") .. long_f coordinateSpec["dec-lat"] = convert_dms2dec(lat_f, lat_d, lat_m, lat_s) -- {{coord/dms2dec|{{{4}}}|{{{1}}}|0{{{2}}}|0{{{3}}}}} coordinateSpec["dec-long"] = convert_dms2dec(long_f, long_d, long_m, long_s) -- {{coord/dms2dec|{{{8}}}|{{{5}}}|0{{{6}}}|0{{{7}}}}} if format then coordinateSpec.default = format else coordinateSpec.default = "dms" end return coordinateSpec, errors, backward end --[[ Check the input arguments for coord to determine the kind of data being provided and then make the necessary processing. ]] local function formatTest(args) local result, errors local backward, primary = false, false local function getParam(args, lim) local ret = {} for i = 1, lim do ret[i] = args[i] or '' end return table.concat(ret, '_') end if not args[1] then -- no lat logic return errorPrinter( {{"formatTest", "Missing latitude"}} ) elseif not tonumber(args[1]) then -- bad lat logic return errorPrinter( {{"formatTest", "Unable to parse latitude as a number:" .. args[1]}} ) elseif not args[4] and not args[5] and not args[6] then -- dec logic result, errors = parseDec(args[1], args[2], args.format) if not result then return errorPrinter(errors); end -- formatting for geohack: geohack expects D_N_D_E notation or D;D notation -- wikiminiatlas doesn't support D;D notation -- #coordinates parserfunction doesn't support negative decimals with NSWE result.param = table.concat({ math.abs(tonumber(args[1])), ((tonumber(args[1]) or 0) < 0) and 'S' or 'N', math.abs(tonumber(args[2])), ((tonumber(args[2]) or 0) < 0) and 'W' or 'E', args[3] or ''}, '_') elseif dmsTest(args[4], args[8]) then -- dms logic result, errors, backward = parseDMS(args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args.format) if args[10] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 9) elseif dmsTest(args[3], args[6]) then -- dm logic result, errors, backward = parseDMS(args[1], args[2], nil, args[3], args[4], args[5], nil, args[6], args['format']) if args[8] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 7) elseif dmsTest(args[2], args[4]) then -- d logic result, errors, backward = parseDMS(args[1], nil, nil, args[2], args[3], nil, nil, args[4], args.format) if args[6] then table.insert(errors, {'formatTest', 'Extra unexpected parameters'}) end if not result then return errorPrinter(errors) end result.param = getParam(args, 5) else -- Error return errorPrinter({{"formatTest", "Unknown argument format"}}) .. '[[Category:Pages with malformed coordinate tags]]' end result.name = args.name local extra_param = {'dim', 'globe', 'scale', 'region', 'source', 'type'} for _, v in ipairs(extra_param) do if args[v] then table.insert(errors, {'formatTest', 'Parameter: "' .. v .. '=" should be "' .. v .. ':"' }) end end local ret = specPrinter(args, result) if #errors > 0 then ret = ret .. ' ' .. errorPrinter(errors) .. '[[Category:Pages with malformed coordinate tags]]' end return ret, backward end --[[ Generate Wikidata tracking categories. ]] local function makeWikidataCategories(qid) local ret local qid = qid or mw.wikibase.getEntityIdForCurrentPage() if mw.wikibase and current_page.namespace == 0 then if qid and mw.wikibase.entityExists(qid) and mw.wikibase.getBestStatements(qid, "P625") and mw.wikibase.getBestStatements(qid, "P625")[1] then local snaktype = mw.wikibase.getBestStatements(qid, "P625")[1].mainsnak.snaktype if snaktype == 'value' then -- coordinates exist both here and on Wikidata, and can be compared. ret = 'Coordinates on Wikidata' elseif snaktype == 'somevalue' then ret = 'Coordinates on Wikidata set to unknown value' elseif snaktype == 'novalue' then ret = 'Coordinates on Wikidata set to no value' end else -- We have to either import the coordinates to Wikidata or remove them here. ret = 'Coordinates not on Wikidata' end end if ret then return string.format('[[Category:%s]]', ret) else return '' end end --[[ link Simple function to export the coordinates link for other uses. Usage: {{#invoke:Coordinates | link }} ]] function coordinates.link(frame) return coord_link; end --[[ dec2dms Wrapper to allow templates to call dec2dms directly. Usage: {{#invoke:Coordinates | dec2dms | decimal_coordinate | positive_suffix | negative_suffix | precision }} decimal_coordinate is converted to DMS format. If positive, the positive_suffix is appended (typical N or E), if negative, the negative suffix is appended. The specified precision is one of 'D', 'DM', or 'DMS' to specify the level of detail to use. ]] coordinates.dec2dms = makeInvokeFunc('_dec2dms') function coordinates._dec2dms(args) local coordinate = args[1] local firstPostfix = args[2] or '' local secondPostfix = args[3] or '' local precision = args[4] or '' return convert_dec2dms(coordinate, firstPostfix, secondPostfix, precision) end --[[ Helper function to determine whether to use D, DM, or DMS format depending on the precision of the decimal input. ]] function coordinates.determineMode( value1, value2 ) local precision = math.max( math_mod._precision( value1 ), math_mod._precision( value2 ) ); if precision <= 0 then return 'd' elseif precision <= 2 then return 'dm'; else return 'dms'; end end --[[ dms2dec Wrapper to allow templates to call dms2dec directly. Usage: {{#invoke:Coordinates | dms2dec | direction_flag | degrees | minutes | seconds }} Converts DMS values specified as degrees, minutes, seconds too decimal format. direction_flag is one of N, S, E, W, and determines whether the output is positive (i.e. N and E) or negative (i.e. S and W). ]] coordinates.dms2dec = makeInvokeFunc('_dms2dec') function coordinates._dms2dec(args) local direction = args[1] local degrees = args[2] local minutes = args[3] local seconds = args[4] return convert_dms2dec(direction, degrees, minutes, seconds) end --[[ coord Main entry point for Lua function to replace {{coord}} Usage: {{#invoke:Coordinates | coord }} {{#invoke:Coordinates | coord | lat | long }} {{#invoke:Coordinates | coord | lat | lat_flag | long | long_flag }} ... Refer to {{coord}} documentation page for many additional parameters and configuration options. Note: This function provides the visual display elements of {{coord}}. In order to load coordinates into the database, the {{#coordinates:}} parser function must also be called, this is done automatically in the Lua version of {{coord}}. ]] coordinates.coord = makeInvokeFunc('_coord') function coordinates._coord(args) if not tonumber(args[1]) and not args[2] then args[3] = args[1]; args[1] = nil local entity = mw.wikibase.getEntityObject(args.qid) if entity and entity.claims and entity.claims.P625 and entity.claims.P625[1].mainsnak.snaktype == 'value' then local precision = entity.claims.P625[1].mainsnak.datavalue.value.precision args[1] = entity.claims.P625[1].mainsnak.datavalue.value.latitude args[2] = entity.claims.P625[1].mainsnak.datavalue.value.longitude if precision then precision = -math_mod._round(math.log(precision)/math.log(10),0) args[1] = math_mod._round(args[1],precision) args[2] = math_mod._round(args[2],precision) end end end local contents, backward = formatTest(args) local Notes = args.notes or '' local Display = args.display and args.display:lower() or 'inline' -- it and ti are short for inline,title and title,inline local function isInline(s) -- Finds whether coordinates are displayed inline. return s:find('inline') ~= nil or s == 'i' or s == 'it' or s == 'ti' end local function isInTitle(s) -- Finds whether coordinates are displayed in the title. return s:find('title') ~= nil or s == 't' or s == 'it' or s == 'ti' end local function coord_wrapper(in_args) -- Calls the parser function {{#coordinates:}}. return mw.getCurrentFrame():callParserFunction('#coordinates', in_args) or '' end local text = '' if isInline(Display) then text = text .. '<span class="geo-inline">' .. contents .. Notes .. '</span>' end if isInTitle(Display) then -- Add to output since indicator content is invisible to Lua later on if not isInline(Display) then text = text .. '<span class="geo-inline-hidden noexcerpt">' .. contents .. Notes .. '</span>' end text = text .. displaytitle(contents .. Notes) .. makeWikidataCategories(args.qid) end if not args.nosave then local page_title, count = mw.title.getCurrentTitle(), 1 if backward then local tmp = {} while not string.find((args[count-1] or ''), '[EW]') do tmp[count] = (args[count] or ''); count = count+1 end tmp.count = count; count = 2*(count-1) while count >= tmp.count do table.insert(tmp, 1, (args[count] or '')); count = count-1 end for i, v in ipairs(tmp) do args[i] = v end else while count <= 9 do args[count] = (args[count] or ''); count = count+1 end end if isInTitle(Display) and not page_title.isTalkPage and page_title.subpageText ~= 'doc' and page_title.subpageText ~= 'testcases' then args[10] = 'primary' end args.notes, args.format, args.display = nil text = text .. coord_wrapper(args) end return text end --[[ coord2text Extracts a single value from a transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coord2text | {{Coord}} | parameter }} Valid values for the second parameter are: lat (signed integer), long (signed integer), type, scale, dim, region, globe, source ]] function coordinates._coord2text(coord,type) if coord == '' or type == '' or not type then return nil end type = mw.text.trim(type) if type == 'lat' or type == 'long' then local result, negative = mw.text.split((mw.ustring.match(coord,'[%.%d]+°[NS] [%.%d]+°[EW]') or ''), ' ') if type == 'lat' then result, negative = result[1], 'S' else result, negative = result[2], 'W' end result = mw.text.split(result, '°') if result[2] == negative then result[1] = '-'..result[1] end return result[1] else return mw.ustring.match(coord, 'params=.-_' .. type .. ':(.-)[ _]') end end function coordinates.coord2text(frame) return coordinates._coord2text(frame.args[1],frame.args[2]) end --[[ coordinsert Injects some text into the Geohack link of a transclusion of {{Coord}} (if that text isn't already in the transclusion). Outputs the modified transclusion of {{Coord}}. IF THE GEOHACK LINK SYNTAX CHANGES THIS FUNCTION MUST BE MODIFIED. Usage: {{#invoke:Coordinates | coordinsert | {{Coord}} | parameter:value | parameter:value | … }} Do not make Geohack unhappy by inserting something which isn't mentioned in the {{Coord}} documentation. ]] function coordinates.coordinsert(frame) -- for the 2nd or later integer parameter (the first is the coord template, as above) for i, v in ipairs(frame.args) do if i ~= 1 then -- if we cannot find in the coord_template the i_th coordinsert parameter e.g. region if not mw.ustring.find(frame.args[1], (mw.ustring.match(frame.args[i], '^(.-:)') or '')) then -- find from the params= up to the first possibly-present underscore -- and append the i_th coordinsert parameter and a space -- IDK why we're adding a space but it does seem somewhat convenient frame.args[1] = mw.ustring.gsub(frame.args[1], '(params=.-)_? ', '%1_'..frame.args[i]..' ') end end end if frame.args.name then -- if we can't find the vcard class if not mw.ustring.find(frame.args[1], '<span class="vcard">') then -- take something that looks like a coord template and add the vcard span with class and fn org class local namestr = frame.args.name frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-default">)(<span[^<>]*>[^<>]*</span><span[^<>]*>[^<>]*<span[^<>]*>[^<>]*</span></span>)(</span>)', '%1<span class="vcard">%2<span style="display:none">&#xfeff; (<span class="fn org">' .. namestr .. '</span>)</span></span>%3' ) -- then find anything from coordinates parameters to the 'end' and attach the title parameter frame.args[1] = mw.ustring.gsub( frame.args[1], '(&params=[^&"<>%[%] ]*) ', '%1&title=' .. mw.uri.encode(namestr) .. ' ' ) end end -- replace the existing indicator with a new indicator using the modified content frame.args[1] = mw.ustring.gsub( frame.args[1], '(<span class="geo%-inline[^"]*">(.+)</span>)\127[^\127]*UNIQ%-%-indicator%-%x+%-%-?QINU[^\127]*\127', function (inline, coord) return inline .. displaytitle(coord) end ) return frame.args[1] end return coordinates 0lnyvr3c1d2wmo259odkxkon4fmsr1f ढाँचा:Efn-lr 10 126502 1372343 1073180 2026-08-26T03:32:15Z पर्वत सुवेदी 31224 /* */ 1372343 wikitext text/x-wiki <includeonly>{{efn|name={{{name|}}}|reference={{{1|}}}}}</includeonly><noinclude> {{documentation}} </noinclude> bog6or78nqxwgs7l90h5jitylirgzkt ढाँचा:Efn-ur 10 126503 1372345 1073181 2026-08-26T03:33:24Z पर्वत सुवेदी 31224 /* */ 1372345 wikitext text/x-wiki <includeonly>{{efn|name={{{name|}}}|reference={{{1|}}}}}</includeonly><noinclude> {{documentation}} </noinclude> bog6or78nqxwgs7l90h5jitylirgzkt मोड्युल:Coordinates/styles.css 828 129117 1372353 1314959 2026-08-26T04:21:06Z पर्वत सुवेदी 31224 1372353 sanitized-css text/css /* Geographical coordinates defaults. The classes "geo", "longitude", and "latitude" are used by the [[Geo microformat]]. */ .geo-default, .geo-dms, .geo-dec { display: inline; } .geo-nondefault, .geo-multi-punct { display: none; } .longitude, .latitude { white-space: nowrap; } c1sxbljkmwch6oev7gffqqpsgwmtnah सिन्धुलीमाढी 0 148193 1372314 1370315 2026-08-25T15:08:29Z Coolsan71 75463 1372314 wikitext text/x-wiki {{Distinguish|सिन्धुलीगढी|text=ऐतिहासिक किल्ला [[सिन्धुलीगढी]]}} {{Infobox settlement | name = सिन्धुलीमाढी | settlement_type = जिल्ला [[सदरमुकाम]] | other_name = सिन्धुली, सिन्धुली बजार | subdivision_type = देश | subdivision_name = {{झण्डा|नेपाल}} | subdivision_type1 = [[नेपालका प्रदेशहरू|प्रदेश]] | subdivision_name1 = [[बागमती प्रदेश|बागमती]] | subdivision_type2 = [[नेपालका जिल्लाहरू|जिल्ला]] | subdivision_name2 = [[सिन्धुली]] | subdivision_type3 = [[नेपालका नगरपालिकाहरू|नगरपालिका]] | subdivision_name3 = [[कमलामाई]] | subdivision_type4 = वडाहरू | subdivision_name4 = ४,५,६ र ७ | established_title = जिल्ला सदरमुकाम घोषित | established_date = वि.सं. २०२३ पुष १८ | established_title1 = कमलामाई नगरपालिकाको भाग | established_date1 = वि.सं. २०५३ चैत १४ | pushpin_map = Nepal Bagmati Pradesh#Nepal | pushpin_mapsize = 300 | pushpin_map_caption = नक्सामा सिन्धुलीमाढी | coordinates = {{coord|27|12|37|N|85|54|45|E|region:NP_type:city_source:GNS-enwiki|display=inline,title}} | image_skyline = Sindhulimadhi 2020.jpg | area_total_km2 = ८८.६८ | elevation_m = ५१० | population_total = ३६४३६ | population_as_of = वि.सं. २०७८ | timezone1 = [[युटिसी+५:४५]] ([[नेपालको प्रमाणिक समय]]) | postal_code_type = हुलाक कोड | postal_code = ४५९०० | area_code = ०४७ | image_caption = सिन्धुलीमाढीको दृश्य | population_density_km2 = auto | imagesize = 300 }} '''सिन्धुलीमाढी''' वा '''सिन्धुलीमाडी''', जसलाई सामान्यतया '''सिन्धुली''' वा '''सिन्धुली बजार''' पनि भनिन्छ, नेपालको [[बागमती प्रदेश]] अन्तर्गत पर्ने [[सिन्धुली जिल्ला]]को सदरमुकाम तथा [[कमलामाई नगरपालिका]]को प्रशासनिक केन्द्र हो।<ref>{{Cite web |title=सिन्धुली सदरमुकामका जंगल खरानी हुँदै |url=https://ekantipur.com/bagmati-pradesh/2020/04/11/158657446003523508.html |access-date=२०२६-०२-२५ |website=Ekantipur}}</ref><ref name=":1" /><ref name=":0" /> यसको कुल क्षेत्रफल ८८.६८ वर्ग किलोमिटर रहेको छ। [[नेपालको बाह्रौँ राष्ट्रिय जनगणना, २०७८|वि.सं २०७८ सालको जनगणना]] अनुसार यहाँको जनसंख्या ३६,४३६ रहेको छ।<ref name=":2" /> सिन्धुलीमाढी सिन्धुली उपत्यकामा अवस्थित छ र यसमा कमलामाई नगरपालिकाका चार वटा वडाहरू पर्दछन्। यो राष्ट्रिय राजधानी [[काठमाडौँ]]बाट करिब १५० किलोमिटर तथा प्रदेश राजधानी [[हेटौँडा उपमहानगरपालिका|हेटौँडा]]बाट करिब १२० किलोमिटरको दूरीमा रहेको छ। == पृष्ठभूमि == तत्कालिन श्री ५ को सरकारद्वारा नेपाल अधिराज्यलाई १४ अञ्चल र ७५ जिल्लामा विभाजन गर्ने वि.सं. २०१९ मङ्सिर ५ गतेको निर्णय र वि.सं. २०१९ पुष २ गते नेपाल गजेटमा प्रकाशित सूचना अनुसार सिन्धुली जिल्ला गठन गरि [[सिन्धुलीगढी]]लाई सदरमुकाम तोकिएको थियो।<ref>{{Cite web |title=नेपाल अधिराज्यलाई १४ अञ्चल ७५ जिल्लामा विभाजित |url=http://rajpatra.dop.gov.np/welcome/book/?ref=2685 |access-date=२०२६-०१-२१ |website=नेपाल गजेट, नेपाल सरकार}}</ref> वि.सं. २०२३ कार्तिक ३ गते तत्कालिन श्री ५ को सरकार गृह पञ्चायत मन्त्रालयद्वारा गरिएको निर्णय र वि.सं. २०२३ पुष १८ गते नेपाल राजपत्रमा प्रकाशित सूचना अनुसार सदरमुकाम सिन्धुलीमाढी कायम गरिएको थियो।<ref name=":0">{{Cite web |title=जिल्ला सदरमुकामहरू तोकेको बारे |url=http://rajpatra.dop.gov.np/welcome/book?ref=3851 |access-date=२०२६-०१-२१ |website=नेपाल राजपत्र, नेपाल सरकार}}</ref> वि.सं. २०५३ चैत १३ गतेसम्म सिद्धेश्वर गाउँ विकास समितिको भाग रहेको सिन्धुलीमाढी नेपाल सरकारको निर्णय बमोजिम वि.सं. २०५३ चैत १४ गते सिद्धेश्वर र भिमान गाउँ विकास समिति गाभिएर बनेको [[कमलामाई नगरपालिका]]को भाग भएको थियो।<ref name=":1">{{Cite web |title=नगरपालिका क्षेत्र तोकी बिभाजन गरेको |url=http://rajpatra.dop.gov.np/welcome/book/?ref=17917 |access-date=२०२६-०१-२१ |website=नेपाल राजपत्र, नेपाल सरकार}}</ref> == विभाजन == {| class="wikitable" |+कमलामाई नगरपालिका<ref name=":2">{{Cite web |title=वडा प्रोफाइल |url=https://kamalamaimun.gov.np/ne/ward-profile |access-date=२०२६-०१-२१ |website=कमलामाई नगरपालिका }} {{Webarchive|url=https://web.archive.org/web/20260211151605/https://www.kamalamaimun.gov.np/ne/ward-profile |date=2026-02-11 }}</ref> !हालको वडा !साविक वडाहरू !'''क्षेत्रफल (किमी'''<sup>२</sup>''')''' !जनसंख्या (२०७८) !केन्द्र |- |४ |१,२,५ र ९ |२७.१२ |८,८१८ |ढुङ्ग्रेबास |- |५ |४ |२६.८४ |८,२९२ |मधुटार |- |६ |६ |५.९३ |१२,४९८ |माढीबजार |- |७ |७ र ८ |२८.७९ |६,८२८ |माझीटार |} == सन्दर्भ सामग्रीहरू == {{सन्दर्भसूची}} {{सिन्धुली जिल्लाका स्थानीय तहहरू}} [[श्रेणी:नेपालका जिल्ला सदरमुकामहरू]] oy86qkvlsyc1sl38re7k9c5mcs0r85l सोल्डर 0 151415 1372311 1372304 2026-08-25T13:21:57Z Bishaldev100 28807 1372311 wikitext text/x-wiki [[चित्र:Solder_on_spool.jpeg|अङ्गुठाकार|सोल्डर, 1. mm मिमी व्यासमा बाहिर तानिएको र स्पूलको वरिपरि घाउ/झुकेको]] [[चित्र:Solderedjoint.jpg|अङ्गुठाकार|सोल्डर्ड एक [[विद्युत प्रबाह बोर्ड|विद्युत सर्किट बोर्ड]]को पछाडि एक घटक को एक थ्रू-पिन मा एक तार संलग्न गर्न प्रयोग]] '''सोल्डर''' ({{IPAc-en|UK|ˈ|s|ɒ|l|d|ə|,_|ˈ|s|ə|ʊ|l|d|ə}};<ref name="OED">{{Cite encyclopedia|url=http://www.lexico.com/definition/solder|archive-url=https://web.archive.org/web/20220110071207/https://www.lexico.com/definition/solder|url-status=dead|archive-date=January 10, 2022|title=solder|dictionary=[[Lexico]] UK English Dictionary|publisher=[[Oxford University Press]]}}</ref> [[:en:North_American_English|NA]]: {{IPAc-en|ˈ|s|ɒ|d|ər}})<ref>{{cite encyclopedia|title=solder|encyclopedia=[[Oxford American Dictionary]]|publisher=[[Oxford University Press]]|year=1980}}</ref> पग्लने धातुहरूको [[मिश्रधातु|मिश्र धातु]] हो, जसको प्रयोग धातुका टुक्राहरूबीच स्थायी बन्धन (जोड) बनाउन गरिन्छ। जोडिने भागहरूलाई भिजाउनका लागि सोल्डरलाई पगालिन्छ, जहाँ यो सेलाएपछि टुक्राहरूमा टाँसिन्छ र तिनीहरूलाई जोड्छ। सोल्डरको रूपमा प्रयोग गर्न उपयुक्त धातु वा मिश्रधातुहरूको पग्लने विन्दु जोडिने टुक्राहरूको भन्दा कम हुनुपर्छ। सोल्डर अक्सीकरण र क्षयकारी प्रभावहरूबाट पनि सुरक्षित हुनुपर्छ, जसले समयसँगै जोडलाई कमजोर बनाउन सक्छ। विद्युतीय जडानहरू बनाउन प्रयोग गरिने सोल्डरमा कम विद्युतीय प्रतिरोध (उच्च चालकता) र टिकाउ जोड जस्ता अनुकूल विद्युतीय गुणहरू हुन पनि आवश्यक छ। == संरचना == === सिसामा-आधारित === [[चित्र:60-40_Solder.jpg|अङ्गुठाकार| ६०/४० [[टिन]]-सीसा सोल्डर ]] [[टिन]]-[[सीसा]] (Sn-Pb) सोल्डरहरू, जसलाई सफ्ट सोल्डर (नरम सोल्डर) पनि भनिन्छ, तौलको आधारमा ५% देखि ७०% सम्म टिनको मात्रामा व्यावसायिक रूपमा उपलब्ध हुन्छन्। टिनको मात्रा जति बढी हुन्छ, सोल्डरको तन्किने र काटिने क्षमता वा शक्ति त्यति नै बढी हुन्छ। सीसाले 'टिन व्हिस्कर्स' (टिनमा आउने मसिना रौं जस्ता रेसाहरू) बन्नबाट रोक्छ, यद्यपि यसको निश्चित प्रक्रिया अझै अज्ञात छ। आज भोलि, यो समस्या कम गर्न धेरै प्रविधिहरू प्रयोग गरिन्छ, जसमा तताउने र सेलाउने प्रक्रिया (annealing) मा परिवर्तन, तामा र निकेल जस्ता तत्वहरूको मिश्रण, र कन्फर्मल कोटिंग्स (conformal coatings) को प्रयोग समावेश छन्। विद्युतीय सोल्डरिङका लागि सामान्यतया प्रयोग हुने मिश्रधातुहरू ६०/४० [[टिन]]-सीसा हुन्, जुन {{Convert|188|°C|°F}} मा पग्लिन्छ, र ६३/३७ [[टिन]]-सीसा हुन् जुन मुख्य रूपमा विद्युतीय र इलेक्ट्रोनिक कामहरूमा प्रयोग गरिन्छ। === सिसा-मुक्त === ==सन्दर्भ सामग्रीहरू== {{सन्दर्भसूची}} nfy8lgcne1e0bpjj9fujlu065q12r0o मच्छिन्द्र बहाल 0 151416 1372306 2026-08-25T12:05:07Z Bishaldev100 28807 "[[:en:Special:Redirect/revision/1288866042|Jana bahal]]"पृष्ठलाई अनुवाद गरि सृजना गरियो 1372306 wikitext text/x-wiki [[चित्र:Old_Kathmandu0668_Janabaha.JPG|अङ्गुठाकार|मच्छिन्द्र बहालमा करुणामयको मन्दिर]] '''मच्छिन्द्र बहाल''' ('''नेपाल भाषा''' जन बहाः) प्राय: जनाबहा: भनिन्छ वा कनक चैत्य महाविहार पनि भनिन्छ, चौकको बीचमा पूर्ण रूपमा निर्मित बहुतले मन्दिर भएको केही बहालहरू मध्ये एक हो। यस मन्दिरमा विराजमान प्रमुख देवता [[सेतो मछिन्द्ननाथ मन्दिर|सेतो मछिन्द्रनाथ]] हुन्, जसलाई जनबहा द्यो, [[अवलोकितेश्वर|आर्यवलोकितेश्वर]] र करूणामयका नामले पनि चिनिन्छ।<ref>{{Cite web |date=2023-08-28 |title=आजदेखि बहाल बहीहरूमा बहिद्यः प्रदर्शन |url=https://maitrinews.com/2023/08/28/101636 |access-date=2024-02-05 |work=Maitri News}}</ref><ref>{{Citation |last=Banjara |first=Anup |title=Historical significance and cultural aspects of the Ashok Vinayak in Kathmandu |date=2023}}</ref> == प्रमुख सांस्कृतिक गतिविधिहरू == मुख्य [[सेतो मच्छिन्द्रनाथको रथयात्रा]] बाहेक, दर्शनार्थीहरू—मुख्यतया बौद्ध धर्मावलम्बीहरू—सेतो मछिन्द्रनाथको दर्शन र प्रार्थना गर्न आउने गर्छन्। उनीहरू [[जपमाला]]मा उनिएका दानाहरू गन्दै र सार्दै प्रार्थना गर्छन्। [[नेवार बौद्ध]]हरू प्रत्येक अष्टमीमा सप्तविध अनुत्तर सत्वपूजा गरेर र पाते (छत्र) चढाएर उपोसधव्रत (एक प्रकारको उपवास) बस्छन्। उनीहरू शतपूजा पनि गर्छन्, जसमा तोन्छा, बत्ती र प्रसाद सबै १००० को बराबर मात्रामा चढाइन्छ। कनकमुनि बुद्धको चैत्य परिसरमा शाक्य, बुद्धाचार्य र बज्राचार्य जातका युवा पुरुषहरूका लागि 'बारे छुयेगु' (बरेछुइउ) संस्कार गरिन्छ। नेवारहरू प्रायः मन्दिरको वरिपरि पालाहरू बाल्ने वा १०८ वटा दियो बाल्ने कार्यक्रम आयोजना गर्छन्। हिन्दूहरू द्वारा यो मन्दिर मुख्य गरी पूर्णिमा, अष्टमी र संहू (सङ्क्रान्ति) को दिनमा भ्रमण गरिन्छ। मन्दिरको दैनिकी पूजाआजा पुजारीहरूद्वारा बिहान करिब ४ बजेदेखि सुरु हुन्छ।{{Buddhist temples in Nepal}} ji2b7i1ngel1i0nmbnyj7uqhtoszggc 1372307 1372306 2026-08-25T12:05:28Z Bishaldev100 28807 /* प्रमुख सांस्कृतिक गतिविधिहरू */ 1372307 wikitext text/x-wiki [[चित्र:Old_Kathmandu0668_Janabaha.JPG|अङ्गुठाकार|मच्छिन्द्र बहालमा करुणामयको मन्दिर]] '''मच्छिन्द्र बहाल''' ('''नेपाल भाषा''' जन बहाः) प्राय: जनाबहा: भनिन्छ वा कनक चैत्य महाविहार पनि भनिन्छ, चौकको बीचमा पूर्ण रूपमा निर्मित बहुतले मन्दिर भएको केही बहालहरू मध्ये एक हो। यस मन्दिरमा विराजमान प्रमुख देवता [[सेतो मछिन्द्ननाथ मन्दिर|सेतो मछिन्द्रनाथ]] हुन्, जसलाई जनबहा द्यो, [[अवलोकितेश्वर|आर्यवलोकितेश्वर]] र करूणामयका नामले पनि चिनिन्छ।<ref>{{Cite web |date=2023-08-28 |title=आजदेखि बहाल बहीहरूमा बहिद्यः प्रदर्शन |url=https://maitrinews.com/2023/08/28/101636 |access-date=2024-02-05 |work=Maitri News}}</ref><ref>{{Citation |last=Banjara |first=Anup |title=Historical significance and cultural aspects of the Ashok Vinayak in Kathmandu |date=2023}}</ref> == प्रमुख सांस्कृतिक गतिविधिहरू == मुख्य [[सेतो मच्छिन्द्रनाथको रथयात्रा]] बाहेक, दर्शनार्थीहरू—मुख्यतया बौद्ध धर्मावलम्बीहरू—सेतो मछिन्द्रनाथको दर्शन र प्रार्थना गर्न आउने गर्छन्। उनीहरू [[जपमाला]]मा उनिएका दानाहरू गन्दै र सार्दै प्रार्थना गर्छन्। [[नेवार बौद्ध]]हरू प्रत्येक अष्टमीमा सप्तविध अनुत्तर सत्वपूजा गरेर र पाते (छत्र) चढाएर उपोसधव्रत (एक प्रकारको उपवास) बस्छन्। उनीहरू शतपूजा पनि गर्छन्, जसमा तोन्छा, बत्ती र प्रसाद सबै १००० को बराबर मात्रामा चढाइन्छ। कनकमुनि बुद्धको चैत्य परिसरमा शाक्य, बुद्धाचार्य र बज्राचार्य जातका युवा पुरुषहरूका लागि 'बारे छुयेगु' (बरेछुइउ) संस्कार गरिन्छ। नेवारहरू प्रायः मन्दिरको वरिपरि पालाहरू बाल्ने वा १०८ वटा दियो बाल्ने कार्यक्रम आयोजना गर्छन्। हिन्दूहरू द्वारा यो मन्दिर मुख्य गरी पूर्णिमा, अष्टमी र संहू (सङ्क्रान्ति) को दिनमा भ्रमण गरिन्छ। मन्दिरको दैनिकी पूजाआजा पुजारीहरूद्वारा बिहान करिब ४ बजेदेखि सुरु हुन्छ।{{Buddhist temples in Nepal}} ==सन्दर्भ सामग्रीहरू== {{सन्दर्भसूची}} 65wkayfci2va1tdhqdutky3hj7xfyvm 1372308 1372307 2026-08-25T12:08:01Z Bishaldev100 28807 1372308 wikitext text/x-wiki [[चित्र:Old_Kathmandu0668_Janabaha.JPG|अङ्गुठाकार|मच्छिन्द्र बहालमा करुणामयको मन्दिर]] '''मच्छिन्द्र बहाल''' ('''नेपाल भाषा''' जन बहाः) प्राय: जनाबहा: भनिन्छ वा कनक चैत्य महाविहार पनि भनिन्छ, कतै जन बहा र जमाल बह जस्ता नामले पनि चिनिन्छ । यी सबै नामहरु जमलमा मूर्ति भेटिएको किंवदन्तीसँग जोड्ने गरिन्छ । जमल क्षेत्रका रैथानेले सेतो मत्स्येन्द्रनाथलाई जन बहा द्यः, जनम द्याः, लोकेश्वर वा करुणामय भन्छन् । आफ्नो क्षेत्रबाट जनबहा द्यः लगेको ठाउँ भएकोले त्यसैको अपभ्रंश भएर जनबहाल भएको शाक्य बताउँछन् । जमल र आसपासका रैथानेबाहेक अरुले त्यो क्षेत्रलाई मच्छिन्द्रबहाल भन्छन् ।<ref>{{Cite web |title=जमलसँग जोडिएको मच्छिन्द्र बहालको साइनो |url=https://www.onlinekhabar.com/2021/07/977003/%e0%a4%9c%e0%a4%ae%e0%a4%b2%e0%a4%b8%e0%a4%81%e0%a4%97-%e0%a4%9c%e0%a5%8b%e0%a4%a1%e0%a4%bf%e0%a4%8f%e0%a4%95%e0%a5%8b-%e0%a4%ae%e0%a4%9a%e0%a5%8d%e0%a4%9b%e0%a4%bf%e0%a4%a8%e0%a5%8d%e0%a4%a6%e0%a5%8d |access-date=2026-08-25 |website=Online Khabar |language=en-US}}</ref> चौकको बीचमा पूर्ण रूपमा निर्मित बहुतले मन्दिर भएको केही बहालहरू मध्ये एक हो। यस मन्दिरमा विराजमान प्रमुख देवता [[सेतो मछिन्द्ननाथ मन्दिर|सेतो मछिन्द्रनाथ]] हुन्, जसलाई जनबहा द्यो, [[अवलोकितेश्वर|आर्यवलोकितेश्वर]] र करूणामयका नामले पनि चिनिन्छ।<ref>{{Cite web |date=2023-08-28 |title=आजदेखि बहाल बहीहरूमा बहिद्यः प्रदर्शन |url=https://maitrinews.com/2023/08/28/101636 |access-date=2024-02-05 |work=Maitri News}}</ref><ref>{{Citation |last=Banjara |first=Anup |title=Historical significance and cultural aspects of the Ashok Vinayak in Kathmandu |date=2023}}</ref> == प्रमुख सांस्कृतिक गतिविधिहरू == मुख्य [[सेतो मच्छिन्द्रनाथको रथयात्रा]] बाहेक, दर्शनार्थीहरू—मुख्यतया बौद्ध धर्मावलम्बीहरू—सेतो मछिन्द्रनाथको दर्शन र प्रार्थना गर्न आउने गर्छन्। उनीहरू [[जपमाला]]मा उनिएका दानाहरू गन्दै र सार्दै प्रार्थना गर्छन्। [[नेवार बौद्ध]]हरू प्रत्येक अष्टमीमा सप्तविध अनुत्तर सत्वपूजा गरेर र पाते (छत्र) चढाएर उपोसधव्रत (एक प्रकारको उपवास) बस्छन्। उनीहरू शतपूजा पनि गर्छन्, जसमा तोन्छा, बत्ती र प्रसाद सबै १००० को बराबर मात्रामा चढाइन्छ। कनकमुनि बुद्धको चैत्य परिसरमा शाक्य, बुद्धाचार्य र बज्राचार्य जातका युवा पुरुषहरूका लागि 'बारे छुयेगु' (बरेछुइउ) संस्कार गरिन्छ। नेवारहरू प्रायः मन्दिरको वरिपरि पालाहरू बाल्ने वा १०८ वटा दियो बाल्ने कार्यक्रम आयोजना गर्छन्। हिन्दूहरू द्वारा यो मन्दिर मुख्य गरी पूर्णिमा, अष्टमी र संहू (सङ्क्रान्ति) को दिनमा भ्रमण गरिन्छ। मन्दिरको दैनिकी पूजाआजा पुजारीहरूद्वारा बिहान करिब ४ बजेदेखि सुरु हुन्छ।{{Buddhist temples in Nepal}} ==सन्दर्भ सामग्रीहरू== {{सन्दर्भसूची}} oii1zqt0u7pxed0i20yb6u5o9xz8tmh 1372309 1372308 2026-08-25T12:15:25Z Bishaldev100 28807 1372309 wikitext text/x-wiki {{Infobox street | name = मच्छिन्द्र बहाल | marker_image = | other_name = | image = Old_Kathmandu0668_Janabaha.JPG | caption = मच्छिन्द्र बहालमा करुणामयको मन्दिर | coordinates = {{coord|27|42|45.40|N|85|19|4.70|E}} | native_name = {{native name|new|जन बहाः}} | former_names = | maint = | length_mi = | length_ref = | length_m = | length_ft = | width = | addresses = [[काठमाडौं]], [[असन]] | location = | postal_code = 44600 | terminus_a = | direction_a = | junction = | terminus_b = | direction_b = | north = | east = | south = | west = | commissioning_date = | construction_start_date = | completion_date = | inauguration_date = <!-- {{Start date|YYYY|MM|DD}} --> | demolition_date = }} '''मच्छिन्द्र बहाल''' ('''नेपाल भाषा''' जन बहाः) प्राय: जनाबहा: भनिन्छ वा कनक चैत्य महाविहार पनि भनिन्छ, कतै जन बहा र जमाल बह जस्ता नामले पनि चिनिन्छ । यी सबै नामहरु जमलमा मूर्ति भेटिएको किंवदन्तीसँग जोड्ने गरिन्छ । जमल क्षेत्रका रैथानेले सेतो मत्स्येन्द्रनाथलाई जन बहा द्यः, जनम द्याः, लोकेश्वर वा करुणामय भन्छन् । आफ्नो क्षेत्रबाट जनबहा द्यः लगेको ठाउँ भएकोले त्यसैको अपभ्रंश भएर जनबहाल भएको शाक्य बताउँछन् । जमल र आसपासका रैथानेबाहेक अरुले त्यो क्षेत्रलाई मच्छिन्द्रबहाल भन्छन् ।<ref>{{Cite web |title=जमलसँग जोडिएको मच्छिन्द्र बहालको साइनो |url=https://www.onlinekhabar.com/2021/07/977003/%e0%a4%9c%e0%a4%ae%e0%a4%b2%e0%a4%b8%e0%a4%81%e0%a4%97-%e0%a4%9c%e0%a5%8b%e0%a4%a1%e0%a4%bf%e0%a4%8f%e0%a4%95%e0%a5%8b-%e0%a4%ae%e0%a4%9a%e0%a5%8d%e0%a4%9b%e0%a4%bf%e0%a4%a8%e0%a5%8d%e0%a4%a6%e0%a5%8d |access-date=2026-08-25 |website=Online Khabar |language=en-US}}</ref> चौकको बीचमा पूर्ण रूपमा निर्मित बहुतले मन्दिर भएको केही बहालहरू मध्ये एक हो। यस मन्दिरमा विराजमान प्रमुख देवता [[सेतो मछिन्द्ननाथ मन्दिर|सेतो मछिन्द्रनाथ]] हुन्, जसलाई जनबहा द्यो, [[अवलोकितेश्वर|आर्यवलोकितेश्वर]] र करूणामयका नामले पनि चिनिन्छ।<ref>{{Cite web |date=2023-08-28 |title=आजदेखि बहाल बहीहरूमा बहिद्यः प्रदर्शन |url=https://maitrinews.com/2023/08/28/101636 |access-date=2024-02-05 |work=Maitri News}}</ref><ref>{{Citation |last=Banjara |first=Anup |title=Historical significance and cultural aspects of the Ashok Vinayak in Kathmandu |date=2023}}</ref> == प्रमुख सांस्कृतिक गतिविधिहरू == मुख्य [[सेतो मच्छिन्द्रनाथको रथयात्रा]] बाहेक, दर्शनार्थीहरू—मुख्यतया बौद्ध धर्मावलम्बीहरू—सेतो मछिन्द्रनाथको दर्शन र प्रार्थना गर्न आउने गर्छन्। उनीहरू [[जपमाला]]मा उनिएका दानाहरू गन्दै र सार्दै प्रार्थना गर्छन्। [[नेवार बौद्ध]]हरू प्रत्येक अष्टमीमा सप्तविध अनुत्तर सत्वपूजा गरेर र पाते (छत्र) चढाएर उपोसधव्रत (एक प्रकारको उपवास) बस्छन्। उनीहरू शतपूजा पनि गर्छन्, जसमा तोन्छा, बत्ती र प्रसाद सबै १००० को बराबर मात्रामा चढाइन्छ। कनकमुनि बुद्धको चैत्य परिसरमा शाक्य, बुद्धाचार्य र बज्राचार्य जातका युवा पुरुषहरूका लागि 'बारे छुयेगु' (बरेछुइउ) संस्कार गरिन्छ। नेवारहरू प्रायः मन्दिरको वरिपरि पालाहरू बाल्ने वा १०८ वटा दियो बाल्ने कार्यक्रम आयोजना गर्छन्। हिन्दूहरू द्वारा यो मन्दिर मुख्य गरी पूर्णिमा, अष्टमी र संहू (सङ्क्रान्ति) को दिनमा भ्रमण गरिन्छ। मन्दिरको दैनिकी पूजाआजा पुजारीहरूद्वारा बिहान करिब ४ बजेदेखि सुरु हुन्छ।{{Buddhist temples in Nepal}} ==सन्दर्भ सामग्रीहरू== {{सन्दर्भसूची}} t720cglexg0u6oxb3vky8epygf314ya श्रावणी मेला 0 151417 1372329 2026-08-26T01:18:36Z Rajeeb bastola 39875 "[[:en:Special:Redirect/revision/1368368252|Shravani Mela]]"पृष्ठलाई अनुवाद गरि सृजना गरियो 1372329 wikitext text/x-wiki <templatestyles src="Template:Template for discussion/styles.css" />{{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = Devotees at Shravani Mela in [[Deoghar]] | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ। [[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्। यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो <ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन् र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] 0x0vos7l9bit9p1a10f4qslaxnab628 1372330 1372329 2026-08-26T01:20:37Z Rajeeb bastola 39875 1372330 wikitext text/x-wiki <templatestyles src="Template:Template for discussion/styles.css" />{{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ। [[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्। यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो <ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन् र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] 3hy545btif4xtwtdn53edf9fscixfaj 1372331 1372330 2026-08-26T01:22:15Z Rajeeb bastola 39875 1372331 wikitext text/x-wiki {{Short description|Hindu pilgrimage and festival in India}} {{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ। [[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्। यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो <ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन् र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] g69ot8ijpao5c30cwje602admfonugx 1372332 1372331 2026-08-26T01:26:07Z Rajeeb bastola 39875 /* महत्व */ 1372332 wikitext text/x-wiki {{Short description|Hindu pilgrimage and festival in India}} {{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ।<ref>{{Cite web |title=Tales from ‘Shravani Mela'|url=https://www.thehindu.com/life-and-style/travel/tales-from-shravani-mela/article29205659.ece|date=2019-08-21|work=The Hindu|access-date=2024-02-01}}</ref>[[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्। यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो <ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन् र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] b4c3tl2b3c3wbn0nl1k9vy5pis4u03a 1372333 1372332 2026-08-26T01:27:50Z Rajeeb bastola 39875 /* महत्व */ 1372333 wikitext text/x-wiki {{Short description|Hindu pilgrimage and festival in India}} {{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ।<ref>{{Cite web |title=Tales from ‘Shravani Mela'|url=https://www.thehindu.com/life-and-style/travel/tales-from-shravani-mela/article29205659.ece|date=2019-08-21|work=The Hindu|access-date=2024-02-01}}</ref>[[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्।<ref>{{Cite web |title=Shravani Mela: Pilgrimage and Rituals |url=https://www.india.com/travel/articles/shravani-mela-pilgrimage-and-rituals/ |access-date=2024-02-01}}</ref><ref>{{Cite web |title=Month-long Shravani mela begins in Deoghar |url=https://www.dailypioneer.com/2024/state-editions/month-long-shravani-mela-begins-in-deoghar.html|date=2024-07-23|access-date=2024-02-01|work=Daily Pioneer}}</ref>यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो <ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन् र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] t42cfyuc0bzd5e5m86ym3yx0v6hwsvp 1372334 1372333 2026-08-26T01:28:58Z Rajeeb bastola 39875 /* महत्व */ 1372334 wikitext text/x-wiki {{Short description|Hindu pilgrimage and festival in India}} {{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ।<ref>{{Cite web |title=Tales from ‘Shravani Mela'|url=https://www.thehindu.com/life-and-style/travel/tales-from-shravani-mela/article29205659.ece|date=2019-08-21|work=The Hindu|access-date=2024-02-01}}</ref>[[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्।<ref>{{Cite web |title=Shravani Mela: Pilgrimage and Rituals |url=https://www.india.com/travel/articles/shravani-mela-pilgrimage-and-rituals/ |access-date=2024-02-01}}</ref><ref>{{Cite web |title=Month-long Shravani mela begins in Deoghar |url=https://www.dailypioneer.com/2024/state-editions/month-long-shravani-mela-begins-in-deoghar.html|date=2024-07-23|access-date=2024-02-01|work=Daily Pioneer}}</ref>यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो।<ref>{{Cite book |last=Tripathi |first=R.K. |title=Sacred Journeys in Hinduism |year=2019 |publisher=Oxford University Press |isbn=978-9391125356}}</ref><ref>{{Cite journal |last=Verma |first=Amit |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99 |year=2020}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन् र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] h9w2dw27xjsg1gfnzuhjkfxgtka7m6h 1372335 1372334 2026-08-26T01:37:47Z Rajeeb bastola 39875 /* अनुष्ठानहरू */ 1372335 wikitext text/x-wiki {{Short description|Hindu pilgrimage and festival in India}} {{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ।<ref>{{Cite web |title=Tales from ‘Shravani Mela'|url=https://www.thehindu.com/life-and-style/travel/tales-from-shravani-mela/article29205659.ece|date=2019-08-21|work=The Hindu|access-date=2024-02-01}}</ref>[[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्।<ref>{{Cite web |title=Shravani Mela: Pilgrimage and Rituals |url=https://www.india.com/travel/articles/shravani-mela-pilgrimage-and-rituals/ |access-date=2024-02-01}}</ref><ref>{{Cite web |title=Month-long Shravani mela begins in Deoghar |url=https://www.dailypioneer.com/2024/state-editions/month-long-shravani-mela-begins-in-deoghar.html|date=2024-07-23|access-date=2024-02-01|work=Daily Pioneer}}</ref>यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो।<ref>{{Cite book |last=Tripathi |first=R.K. |title=Sacred Journeys in Hinduism |year=2019 |publisher=Oxford University Press |isbn=978-9391125356}}</ref><ref>{{Cite journal |last=Verma |first=Amit |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99 |year=2020}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन्<ref>{{Cite news |title=Saffron tide of faithful on 110-km trek|url=https://www.telegraphindia.com/jharkhand/saffron-tide-of-faithful-on-110-km-trek/cid/723399 |date=2004-08-30 |work=The Telegraph India |access-date=2025-02-01}}</ref>र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] sh8vtf0gvl3x5yb15iugagedfy3x712 1372336 1372335 2026-08-26T01:39:17Z Rajeeb bastola 39875 /* अनुष्ठानहरू */ 1372336 wikitext text/x-wiki {{Short description|Hindu pilgrimage and festival in India}} {{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = 50 Lac+ (2025)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ।<ref>{{Cite web |title=Tales from ‘Shravani Mela'|url=https://www.thehindu.com/life-and-style/travel/tales-from-shravani-mela/article29205659.ece|date=2019-08-21|work=The Hindu|access-date=2024-02-01}}</ref>[[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्।<ref>{{Cite web |title=Shravani Mela: Pilgrimage and Rituals |url=https://www.india.com/travel/articles/shravani-mela-pilgrimage-and-rituals/ |access-date=2024-02-01}}</ref><ref>{{Cite web |title=Month-long Shravani mela begins in Deoghar |url=https://www.dailypioneer.com/2024/state-editions/month-long-shravani-mela-begins-in-deoghar.html|date=2024-07-23|access-date=2024-02-01|work=Daily Pioneer}}</ref>यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो।<ref>{{Cite book |last=Tripathi |first=R.K. |title=Sacred Journeys in Hinduism |year=2019 |publisher=Oxford University Press |isbn=978-9391125356}}</ref><ref>{{Cite journal |last=Verma |first=Amit |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99 |year=2020}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन्<ref>{{Cite news |title=Saffron tide of faithful on 110-km trek|url=https://www.telegraphindia.com/jharkhand/saffron-tide-of-faithful-on-110-km-trek/cid/723399 |date=2004-08-30 |work=The Telegraph India |access-date=2025-02-01}}</ref>र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite web |title=The Kanwariya Tradition in India |url=https://www.bbc.com/news/world-asia-india-49120788 |work=BBC News |date=2022-07-30 |access-date=2024-02-01}}</ref><ref>{{Cite news |title=Jharkhand Government Prepares for Shravani Mela |url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece |work=The Hindu |date=2023-07-25 |access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] l8dp18kux00ras0e0sjs9kl747hotui 1372337 1372336 2026-08-26T01:41:27Z Rajeeb bastola 39875 1372337 wikitext text/x-wiki {{Short description|Hindu pilgrimage and festival in India}} {{Infobox recurring event | native_name_lang = | logo = | logo_size = | image = File:Baidyanathdham.jpg | image_size = | caption = [[देवघर]]को श्रावणी मेलामा भक्तजन | genre = [[Pilgrimage]] | dates = | frequency = Annually | venue = [[Baidyanath Temple]] | location = [[Deoghar]], [[Jharkhand]], India | coordinates = {{coord|24|29|33|N|86|42|00|E||display=inline,title}} | participants = ५० लाख+ (२०२५)<ref>{{Cite news |title=Deoghar Shravani Mela 2025 concludes, over 50 lakh devotees offer prayers; Sparsh Puja begins |url=https://navbharat... |work=Navbharat Times |date=2025-08-09 |access-date=2026-08-08}}</ref> | budget = | patrons = *[[Government of Jharkhand]] *[[Government of Bihar]] | homepage = }} <templatestyles src="Hlist/styles.css"></templatestyles><templatestyles src="Plainlist/styles.css"></templatestyles><templatestyles src="Module:Sidebar/styles.css"></templatestyles>{{हिन्दु धर्म बाकस}}'''श्रावणी मेला''' भारतको [[झारखण्ड]] देवघर रहेको [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ धाम]] मन्दिरमा श्रावण (जुलाई-अगस्ट) महिनामा मनाइने एक महिना लामो हिन्दू चाड हो।<ref>{{Cite web |title=Deoghar Authorities Ensure Smooth Shravani Mela |url=https://www.news18.com/india/shravani-mela-deoghar-arrangements |access-date=2024-02-01 |website=News18}}</ref> यो पर्व भारतको सबैभन्दा ठुलो धार्मिक जमघटहरू मध्ये एक हो, जसले लाखौं भक्तहरू आकर्षित गर्दछ, मुख्यतया काँवरीयाहरू, जसले [[गङ्गा नदी|गङ्गा]] भगवान [[शिव]] पवित्र जल चढाउन तीर्थयात्रा गर्छन।<ref>{{Cite journal |last=Verma |first=Amit |year=2020 |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99}}</ref><ref>{{Cite news|url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece|title=Jharkhand Government Prepares for Shravani Mela|date=2023-07-25|work=The Hindu|access-date=2024-02-01}}</ref> == महत्व == श्रावणी मेला भगवान [[शिव]] मा समर्पित छ र यसलाई अत्यन्त शुभ मानिन्छ।<ref>{{Cite web |title=Tales from ‘Shravani Mela'|url=https://www.thehindu.com/life-and-style/travel/tales-from-shravani-mela/article29205659.ece|date=2019-08-21|work=The Hindu|access-date=2024-02-01}}</ref>[[कांवड यात्रा|काँवर यात्रा]] भनेर पनि चिनिने यस [[तीर्थयात्रा]] भक्तहरूले सुल्तानगञ्ज अजगाइबिनाथ धाममा [[गङ्गा नदी|गङ्गा]] पानी सङ्कलन गरेर लगभग १०५ किलोमिटर पैदल हिँडेर देवघर [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] पुर्याउँछन्।<ref>{{Cite web |title=Shravani Mela: Pilgrimage and Rituals |url=https://www.india.com/travel/articles/shravani-mela-pilgrimage-and-rituals/ |access-date=2024-02-01}}</ref><ref>{{Cite web |title=Month-long Shravani mela begins in Deoghar |url=https://www.dailypioneer.com/2024/state-editions/month-long-shravani-mela-begins-in-deoghar.html|date=2024-07-23|access-date=2024-02-01|work=Daily Pioneer}}</ref>यात्रा भक्ति, तपस्या र शुद्धताको प्रतीक हो।<ref>{{Cite book |last=Tripathi |first=R.K. |title=Sacred Journeys in Hinduism |year=2019 |publisher=Oxford University Press |isbn=978-9391125356}}</ref><ref>{{Cite journal |last=Verma |first=Amit |title=Religious Gatherings and Social Harmony |journal=Indian Journal of Cultural Studies |volume=52 |issue=2 |pages=87–99 |year=2020}}</ref> == अनुष्ठानहरू == * काँवरीया भनेर चिनिने भक्तहरूले केसर रङको लुगा लगाउँछन्<ref>{{Cite news |title=Saffron tide of faithful on 110-km trek|url=https://www.telegraphindia.com/jharkhand/saffron-tide-of-faithful-on-110-km-trek/cid/723399 |date=2004-08-30 |work=The Telegraph India |access-date=2025-02-01}}</ref>र काँवर भनिने सजाइएको बाँस संरचनामा सन्तुलित भाँडोमा पवित्र पानी बोक्छन्।<ref>{{Cite web |title=The Kanwariya Tradition in India |url=https://www.bbc.com/news/world-asia-india-49120788 |work=BBC News |date=2022-07-30 |access-date=2024-02-01}}</ref><ref>{{Cite news |title=Jharkhand Government Prepares for Shravani Mela |url=https://www.thehindu.com/news/national/jharkhand-shravani-mela-preparations/article67278941.ece |work=The Hindu |date=2023-07-25 |access-date=2024-02-01}}</ref> * तीर्थयात्रा सुल्तानगञ्ज अजगाइबिनाथ धामबाट सुरु हुन्छ, जहाँ [[गङ्गा नदी|गङ्गा]] उत्तरतर्फ बग्छ, जसले यसलाई पानी सङ्कलनका लागि पवित्र बनाउँछ।<ref>{{Cite journal |last=Sharma |first=Anita |year=2021 |title=Sacred Geography of Indian Pilgrimages |journal=Journal of Religious Studies |volume=45 |issue=3 |pages=112–127}}</ref> * भक्तहरू नंगे खुट्टा हिँड्छन् र यात्राको क्रममा काँवरलाई भुइँमा राख्न अनुमति दिइँदैन।<ref>{{Cite book|title=Hindu Festivals and Pilgrimages}}</ref> * देवघर पुगेपछि, उनीहरूले पवित्र पानीले [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] अभिषेक ([[शिव]] लिङ्गको धार्मिक स्नान) गर्छन्।<ref>{{Cite news|url=https://www.hindustantimes.com/india-news/baba-baidyanath-dham-abshishek|title=Thousands Perform Abhishek at Baba Baidyanath Dham|date=2023-08-10|work=Hindustan Times|access-date=2024-02-01}}</ref> == प्रमुख आकर्षणहरू == * '''[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]]'''-भगवान [[शिव]] को बाह्र ज्योतिर्लिंगहरू मध्ये एक।<ref>{{Cite book|title=Jyotirlingas of India}}</ref> * शिवगङ्गा ताल-मन्दिर नजिकैको एउटा पवित्र पोखरी जहाँ भक्तहरूले प्रार्थना गर्नु अघि डुबकी लगाउँछन्।<ref>{{Cite web |title=Sacred Ponds in Hinduism |url=https://www.indiaheritage.org/sacred-ponds-in-hinduism/ |access-date=2024-02-01}}</ref> * बाबा अजगाइबिनाथ मन्दिर-तीर्थयात्रीहरूले पानी सङ्कलन गर्ने मन्दिर र स्थान र यसरी श्रावणी मेलाको सुरुवात हुन्छ। <ref>{{Cite book|url=https://www.google.co.in/books/edition/Pilgrimage_Centres_of_India/Qqei_Wo1qXwC?hl=en&gbpv=1&dq=ajgaibinath+dham&pg=PA186&printsec=frontcover|title=Pilgrimage Centres of India|date=2003}}</ref> * बसुकिनाथ मन्दिर-[[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बैद्यनाथ धाम]] प्रार्थना गरेपछि [[तीर्थयात्रा|तीर्थयात्रीहरू]] भ्रमण गर्ने महत्त्वपूर्ण मन्दिर।<ref>{{Cite news|url=https://www.ndtv.com/religion/basukinath-temple-history-and-significance-4283619|title=Basukinath Temple: A Pilgrim's Guide|date=2023-08-15|work=NDTV|access-date=2024-02-01}}</ref> == पनि हेर्नुहोस् == * [[कांवड यात्रा|काँवर यात्रा]] * [[वैद्यनाथ ज्योतिर्लिङ्ग मन्दिर|बाबा बैद्यनाथ मन्दिर]] * सुल्तानगञ्ज == सन्दर्भहरू == <references /> [[श्रेणी:हिन्दु चाडपर्वहरू]] 3pmzq01byu9fpew6mcznh4pemi67hs8 आठ हजार भन्दा बढी उचाइ भएका हिमालहरू 0 151418 1372357 2026-08-26T07:01:18Z पर्वत सुवेदी 31224 [[आठ हजारी]]मा अनुप्रेषण गर्दै 1372357 wikitext text/x-wiki #अनुप्रेषण [[आठ हजारी]] bndjz706uaczqx33mcro0cakxja3g8f