ਵਿਕੀਪੀਡੀਆ
pawiki
https://pa.wikipedia.org/wiki/%E0%A8%AE%E0%A9%81%E0%A9%B1%E0%A8%96_%E0%A8%B8%E0%A8%AB%E0%A8%BC%E0%A8%BE
MediaWiki 1.47.0-wmf.24
first-letter
ਮੀਡੀਆ
ਖ਼ਾਸ
ਗੱਲ-ਬਾਤ
ਵਰਤੋਂਕਾਰ
ਵਰਤੋਂਕਾਰ ਗੱਲ-ਬਾਤ
ਵਿਕੀਪੀਡੀਆ
ਵਿਕੀਪੀਡੀਆ ਗੱਲ-ਬਾਤ
ਤਸਵੀਰ
ਤਸਵੀਰ ਗੱਲ-ਬਾਤ
ਮੀਡੀਆਵਿਕੀ
ਮੀਡੀਆਵਿਕੀ ਗੱਲ-ਬਾਤ
ਫਰਮਾ
ਫਰਮਾ ਗੱਲ-ਬਾਤ
ਮਦਦ
ਮਦਦ ਗੱਲ-ਬਾਤ
ਸ਼੍ਰੇਣੀ
ਸ਼੍ਰੇਣੀ ਗੱਲ-ਬਾਤ
ਫਾਟਕ
ਫਾਟਕ ਗੱਲ-ਬਾਤ
TimedText
TimedText talk
ਮੌਡਿਊਲ
ਮੌਡਿਊਲ ਗੱਲ-ਬਾਤ
Package
Package talk
Event
Event talk
Topic
ਦੇਸੀ
0
1725
850705
612954
2026-10-28T00:00:35Z
~2026-57456-73
62735
850705
wikitext
text/x-wiki
''' ਦੇਸੀ''' {{IPA-hns|d̪eːsi|}} [[ਭਾਰਤੀ ਉਪ-ਮਹਾਂਦੀਪ]] ਜਾਂ [[ਦੱਖਣ ਏਸ਼ੀਆ]] ਅਤੇ ਉਹਨਾਂ ਦੇ [[ਡਾਇਸਪੋਰਾ]], ਲੋਕਾਂ, ਸੱਭਿਆਚਾਰਾਂ ਅਤੇ ਉਤਪਾਦਾਂ ਲਈ ਇੱਕ ਖੁੱਲ੍ਹਾ ਜਿਹਾ ਸ਼ਬਦ ਹੈ, ਜੋ ਪ੍ਰਾਚੀਨ [[ਸੰਸਕ੍ਰਿਤ]] ਸ਼ਬਦ '' ਦੇਸ਼ (deśá) '', ਭਾਵ '' ਲੈਂਡ '' ਜਾਂ '' ਕੰਟਰੀ '' ਤੋਂ ਬਣਿਆ ਹੈ।<ref name="Shirley2010">{{cite book |first=Shirley R. |last=Steinberg |url= https://books.google.com/books?id=ZnSBRxsjn_4C&pg=PA87 |title=Boy Culture: An Encyclopedia |publisher=ABC-CLIO |date=17 June 2010 |access-date=12 March 2012 |first2=Michael |last2=Kehler |first3=Lindsay |last3=Cornish |pages=86–88 |isbn=978-0-313-35080-1}}</ref> "ਦੇਸ਼ੀ" ਇੱਕ ਢਿੱਲਮ ਢਿੱਲਾ ਸ਼ਬਦ ਹੈ, ਇਸ ਲਈ ਜਿਹਨਾਂ ਦੇਸ਼ਾਂ ਨੂੰ "ਦੇਸ਼ੀ" ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਉਹ ਅੰਤਰਮੁਖੀ ਹੁੰਦਾ ਹੈ, ਹਾਲਾਂਕਿ ਅਕਸਰ ਇਹ ਮੰਨਿਆ ਜਾਂਦਾ ਹੈ ਕਿ [[ਬੰਗਲਾਦੇਸ਼]] ਅਤੇ [[ਭਾਰਤ]] ਅਤੇ ਦੇਸ਼ ਦੇਸ਼ੀ ਹਨ।<ref>{{cite web |url=http://www.oxforddictionaries.com/definition/english/desi |title=desi |work=OxfordDictionaries.com |publisher=[[Oxford University Press]] |date=2016 |access-date=12 October 2016 |archive-date=18 ਅਗਸਤ 2016 |archive-url=https://web.archive.org/web/20160818144256/http://www.oxforddictionaries.com/definition/english/desi |dead-url=yes }}</ref><ref>{{cite web |last=Guha |first=Rohin |url= http://theaerogram.com/is-it-time-to-kill-off-the-word-desi/ |title=Is It Time to Kill Off the Word 'Desi'? |work=The Aerogram |date=12 October 2013 |access-date=12 October 2016}}</ref> [[ਭੂਟਾਨ]], [[ਮਾਲਦੀਵ]], ਅਤੇ [[ਸ਼੍ਰੀ ਲੰਕਾ]] ਨੂੰ ਵੀ ਸ਼ਬਦ ਦੇ ਕੁਝ ਉਪਯੋਗਾਂ ਵਿੱਚ "ਦੇਸੀ" ਦੇ ਤੌਰ 'ਤੇ ਲਿਆ ਜਾ ਸਕਦਾ ਹੈ।
{{ਅਧਾਰ}}
==ਹਵਾਲੇ==
{{ਹਵਾਲੇ}}
[[ਸ਼੍ਰੇਣੀ:ਸਮਾਜ]]
3untvxuqr5hunp65lw5ywg6xjhym4p7
ਰਨੇ ਦੇਕਾਰਤ
0
23235
850709
616035
2026-10-28T08:36:35Z
Tamanpreet Kaur
26648
850709
wikitext
text/x-wiki
{{Infobox philosopher
| region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ
| era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ
| image = Frans Hals - Portret van René Descartes.jpg
| image_size = 245px
| caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref>
| name = ਰਨੇ ਦੇਕਾਰਤ
| birth_date = 31 ਮਾਰਚ 1596
| birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]]
| death_date = 11 ਫਰਵਰੀ 1650
| death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]]
| nationality = [[ਫਰਾਂਸੀਸੀ]]
| school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ
| religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref>
| main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]]
| influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref>
| influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]]
| notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]]
| signature = Firma Descartes.svg
}}
'''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] ਦਾਰਸ਼ਨਿਕ, ਹਿਸਾਬਦਾਨ, ਅਤੇ ਲੇਖਕ ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਖਾਸਕਰ, ਉਸਦੀ ਰਚਨਾ ''[[ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ]]'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ।
==ਜ਼ਿੰਦਗੀ==
===ਮੁਢਲੀ ਜ਼ਿੰਦਗੀ===
[[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]]
[[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]]
ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref>
==ਹਵਾਲੇ==
{{ਹਵਾਲੇ}}
[[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]]
[[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]]
[[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]]
oe8fbrqs02pw5dcuk7x7kersdt425nv
850710
850709
2026-10-28T08:39:14Z
Tamanpreet Kaur
26648
850710
wikitext
text/x-wiki
{{Infobox philosopher
| region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ
| era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ
| image = Frans Hals - Portret van René Descartes.jpg
| image_size = 245px
| caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref>
| name = ਰਨੇ ਦੇਕਾਰਤ
| birth_date = 31 ਮਾਰਚ 1596
| birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]]
| death_date = 11 ਫਰਵਰੀ 1650
| death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]]
| nationality = [[ਫਰਾਂਸੀਸੀ]]
| school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ
| religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref>
| main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]]
| influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref>
| influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]]
| notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]]
| signature = Firma Descartes.svg
}}
'''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] [[ਦਾਰਸ਼ਨਿਕ]], [[ਹਿਸਾਬਦਾਨ]], ਅਤੇ [[ਲੇਖਕ]] ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਉਸਦੀ ਰਚਨਾ ''ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ।
==ਜ਼ਿੰਦਗੀ==
===ਮੁੱਢਲੀ ਜ਼ਿੰਦਗੀ===
[[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]]
[[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]]
ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref>
==ਹਵਾਲੇ==
{{ਹਵਾਲੇ}}
[[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]]
[[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]]
[[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]]
schn1olj6fc3etmwd1orro0re4m0zzy
850711
850710
2026-10-28T09:36:27Z
Tamanpreet Kaur
26648
Created by translating the section "Philosophy" from the page "[[:en:Special:Redirect/revision/1381471270|René Descartes]]"
850711
wikitext
text/x-wiki
{{Infobox philosopher
| region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ
| era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ
| image = Frans Hals - Portret van René Descartes.jpg
| image_size = 245px
| caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref>
| name = ਰਨੇ ਦੇਕਾਰਤ
| birth_date = 31 ਮਾਰਚ 1596
| birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]]
| death_date = 11 ਫਰਵਰੀ 1650
| death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]]
| nationality = [[ਫਰਾਂਸੀਸੀ]]
| school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ
| religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref>
| main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]]
| influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref>
| influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]]
| notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]]
| signature = Firma Descartes.svg
}}
'''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] [[ਦਾਰਸ਼ਨਿਕ]], [[ਹਿਸਾਬਦਾਨ]], ਅਤੇ [[ਲੇਖਕ]] ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਉਸਦੀ ਰਚਨਾ ''ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ।
==ਜ਼ਿੰਦਗੀ==
===ਮੁੱਢਲੀ ਜ਼ਿੰਦਗੀ===
[[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]]
[[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]]
ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref>
== ਫ਼ਲਸਫ਼ਾ ==
[[File:Pieter_Nason_-_Portrait_of_René_Descartes,_1647.jpg|thumb| ਪੀਟਰ ਨੈਸਨ ਦੁਆਰਾ ਰਨੇ ਦੇਕਾਰਤਦਾ ਚਿੱਤਰ (1647)]]
''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਉਹ ਸਿਧਾਂਤਾਂ ਦੇ ਇੱਕ ਬੁਨਿਆਦੀ ਸਮੂਹ 'ਤੇ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਸ਼ੱਕ ਦੇ ਸੱਚ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਸਨੇ ਹਾਈਪਰਬੋਲਿਕ ਜਾਂ ਅਧਿਆਤਮਿਕ ਸ਼ੱਕ ਨਾਮਕ ਇੱਕ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ, ਜਿਸਨੂੰ ਕਈ ਵਾਰ ਵਿਧੀਗਤ ਸ਼ੱਕਵਾਦ ਜਾਂ [[ਕਾਰਟੇਸੀਅਨ ਸ਼ੱਕ]] ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ ਨੇ ਅਜਿਹੇ ਵਿਚਾਰਾਂ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਿਸ 'ਤੇ ਸ਼ੱਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਸੱਚੇ ਗਿਆਨ ਲਈ ਇੱਕ ਮਜ਼ਬੂਤ ਨੀਂਹ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਹਨਾਂ ਨੂੰ ਦੁਬਾਰਾ ਸਥਾਪਿਤ ਕੀਤਾ।<ref>{{Cite web |last=Copenhaver |first=Rebecca |title=Forms of skepticism |url=http://www.lclark.edu/~rebeccac/forms.html |archive-url=https://web.archive.org/web/20050108095032/http://www.lclark.edu/~rebeccac/forms.html |archive-date=8 January 2005 |access-date=15 August 2007}}</ref> ਉਹ ਇਸ ਗੱਲ ਨੂੰ ਉਸਾਰੀ ਕਲਾ ਨਾਲ ਜੋੜਦਾ ਹੈ ਜਿਵੇਂ ਇੱਕ ਨਵੀਂ ਇਮਾਰਤ ਜਾਂ ਢਾਂਚਾ ਬਣਾਉਣ ਲਈ ਉੱਪਰਲੀ ਮਿੱਟੀ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਉਸੇ ਤਰ੍ਹਾਂ ਉਹ ਆਪਣੇ ਸ਼ੱਕ ਨੂੰ ਮਿੱਟੀ ਅਤੇ ਨਵੇਂ ਗਿਆਨ ਨੂੰ ਇਮਾਰਤਾਂ ਕਹਿੰਦਾ ਹੈ। ਦੇਕਾਰਟਸ ਲਈ [[ਅਰਸਤੂ]] ਦਾ ਬੁਨਿਆਦਵਾਦ ਅਧੂਰਾ ਸੀ ਅਤੇ ਉਸਦਾ ਸ਼ੱਕ ਦਾ ਤਰੀਕਾ ਬੁਨਿਆਦਵਾਦ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।
ਸ਼ੁਰੂ ਵਿੱਚ, ਦੇਕਾਰਤ ਸਿਰਫ਼ ਇੱਕ ਸਿਧਾਂਤ 'ਤੇ ਪਹੁੰਚਦਾ ਹੈ ਕਿ ਉਹ ਸੋਚਦਾ ਹੈ। ਇਹ ਉਸਦੇ ''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਲਾਤੀਨੀ ਵਾਕੰਸ਼, "Cogito, ergo sum{{Space+double}} ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ, ਜੋ ਮੂਲ ਰੂਪ ਵਿੱਚ ਫਰਾਂਸੀਸੀ ਵਿੱਚ " {{Lang|fr|Je pense, donc je suis}} ਵਜੋਂ ਲਿਖਿਆ ਗਿਆ ਸੀ। ਇਸਦਾ ਭਾਵ ਹੈ ਕਿ {{Space+double}}ਮੈਂ ਸੋਚਦਾ ਹਾਂ, ਇਸ ਲਈ ਮੈਂ ਹਾਂ"।<ref>{{Cite web |title=Cogito, ergo sum {{!}} philosophy |url=https://www.britannica.com/topic/cogito-ergo-sum |url-status=live |archive-url=https://web.archive.org/web/20150616100526/https://www.britannica.com/topic/cogito-ergo-sum |archive-date=16 June 2015 |access-date=28 July 2021 |website=Encyclopedia Britannica |language=en}}</ref> ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ, ਜੇਕਰ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਤਾਂ ਕੋਈ ਚੀਜ਼ ਜਾਂ ਕੋਈ ਵਿਅਕਤੀ ਜ਼ਰੂਰ ਸ਼ੱਕ ਕਰ ਰਿਹਾ ਹੋਵੇਗਾ; ਇਸ ਲਈ, ਇਹੀ ਤੱਥ ਕਿ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਉਸਦੀ ਹੋਂਦ ਨੂੰ ਸਾਬਤ ਕਰਦਾ ਹੈ। ਇਸ ਵਾਕੰਸ਼ ਦਾ ਸਰਲ ਅਰਥ ਇਹ ਹੈ ਕਿ ਜੇਕਰ ਕੋਈ ਵਿਅਕਤੀ ਆਪਣੀ ਹੋਂਦ ਬਾਰੇ ਸ਼ੱਕੀ ਹੈ, ਤਾਂ ਇਹ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਹੈ ਕਿ ਉਹ ਮੌਜੂਦ ਹੈ।"<ref>{{Cite web |title=Ten books: Chosen by Raj Persuade |url=http://bjp.rcpsych.org/cgi/content/full/181/3/258 |url-status=live |archive-url=https://web.archive.org/web/20031110060925/http://bjp.rcpsych.org/cgi/content/full/181/3/258 |archive-date=10 November 2003 |access-date=13 November 2007 |publisher=The [[British Journal of Psychiatry]]}}</ref> ਇਹ ਦੋ ਪਹਿਲੇ ਸਿਧਾਂਤ - ਮੈਂ ਸੋਚਦਾ ਹਾਂ ਅਤੇ ਮੈਂ ਮੌਜੂਦ ਹਾਂ - ਬਾਅਦ ਵਿੱਚ ਦੇਕਾਰਤਦੀ ਸਪਸ਼ਟ ਅਤੇ ਵੱਖਰੀ ਧਾਰਨਾ ''ਦਿ ਮੈਡੀਟੇਸ਼ਨਜ਼'' ਤੋਂ ਉਸਦੀ ਤੀਜੀ ਮੈਡੀਟੇਸ਼ਨ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। <ref>{{Cite web |last=Ron Bombardi |title=How the Rationalists Construe "Clear and Distinct Ideas" |url=https://capone.mtsu.edu/rbombard/RB/Spinoza/cnd.html}}</ref>
ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ ਕਿ ਉਹ ਨਿਸ਼ਚਤ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਉਹ ਇਸ ਲਈ ਮੌਜੂਦ ਹੈ ਕਿਉਂਕਿ ਉਹ ਸੋਚਦਾ ਹੈ, ਪਰ ਇੰਦਰੀਆਂ ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ ਆਪਣੇ ਸਰੀਰ ਨੂੰ ਸਮਝਣਾ ਇੱਕ ਅਵਿਸ਼ਵਾਸ਼ਯੋਗ ਸਬੂਤ ਹੈ। ਇਸ ਲਈ ਦੇਕਾਰਤ ਨੇ ਇਹ ਨਿਰਧਾਰਤ ਕੀਤਾ ਕਿ ਇੱਕੋ ਇੱਕ ਨਿਰਵਿਵਾਦ ਗਿਆਨ ਇਹ ਹੈ ਕਿ ਉਹ ਇੱਕ ''ਸੋਚਣ ਵਾਲੀ ਚੀਜ਼'' ਹੈ। ਇਸ ਤਰ੍ਹਾਂ ਸੋਚਣਾ ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਹਰ ਗਤੀਵਿਧੀ ਹੈ ਜਿਸ ਬਾਰੇ ਵਿਅਕਤੀ ਤੁਰੰਤ [[ਚੇਤਨਾ|ਸੁਚੇਤ ਹੁੰਦਾ]] ਹੈ। ਉਸਨੇ ਇਹ ਸੋਚਣ ਦੇ ਕਾਰਨ ਦਿੱਤੇ ਕਿ ਜਾਗਦੇ ਵਿਚਾਰ ਸੁਪਨਿਆਂ ਤੋਂ ਵੱਖਰੇ ਹਨ, ਅਤੇ ਕਿਸੇ ਦੇ ਮਨ ਨੂੰ ਕਿਸੇ ਦੁਸ਼ਟ ਭੂਤ ਦੁਆਰਾ ਭਰਮ ਵਿੱਚ ਨਹੀਂ ਪਾਇਆ ਜਾ ਸਕਦਾ।
ਇਸ ਤਰੀਕੇ ਨਾਲ, ਦੇਕਾਰਟਸ ਗਿਆਨ ਦੀ ਇੱਕ ਪ੍ਰਣਾਲੀ ਦਾ ਨਿਰਮਾਣ ਕਰਨ ਲਈ ਅੱਗੇ ਵਧਦਾ ਹੈ, [[ਬੋਧ|ਧਾਰਨਾ]] ਨੂੰ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਮੰਨਦਾ ਅਤੇ ਇੱਕ ਵਿਧੀ ਦੇ ਤੌਰ 'ਤੇ ਸਿਰਫ਼ ਕਟੌਤੀ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।<ref name="Preface">{{Cite web |last=Descartes |first=René |title=Letter of the Author to the French Translator of the Principles of Philosophy serving for a preface |url=http://www.classicallibrary.org/descartes/principles/preface.htm |url-status=live |archive-url=https://web.archive.org/web/20180117122219/http://www.classicallibrary.org/descartes/principles/preface.htm |archive-date=17 January 2018 |access-date=6 December 2011}}</ref>
==ਹਵਾਲੇ==
{{ਹਵਾਲੇ}}
[[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]]
[[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]]
[[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]]
s3cqeyfxxxsqkm2o5ubvmkorn0q9848
850712
850711
2026-10-28T09:37:05Z
Tamanpreet Kaur
26648
850712
wikitext
text/x-wiki
{{Infobox philosopher
| region = ਪੱਛਮੀ ਫ਼ਲਸਫ਼ਾ
| era = 17ਵੀਂ ਸਦੀ ਦਾ ਫ਼ਲਸਫ਼ਾ
| image = Frans Hals - Portret van René Descartes.jpg
| image_size = 245px
| caption = ਪੋਰਟਰੇਟ [[ਫਰਾਂਸ ਹਾਲਸ]] ਵਾਲੇ ਤੋਂ, 1648<ref>Russell Shorto. ''Descartes' Bones.'' (Doubleday, 2008) p. 218; see also The Louvre, Atlas Database, http://cartelen.louvre.fr</ref>
| name = ਰਨੇ ਦੇਕਾਰਤ
| birth_date = 31 ਮਾਰਚ 1596
| birth_place =[[ਤੂਰੇਨ]], [[ਫਰਾਂਸ]]
| death_date = 11 ਫਰਵਰੀ 1650
| death_place = [[ਸਟਾਕਹੋਮ]], [[ਸਵੀਡਨ]]
| nationality = [[ਫਰਾਂਸੀਸੀ]]
| school_tradition = [[ਕਾਰਤੇਜੀਅਨਵਾਦ]]<br>[[ਰੈਸ਼ਨਲਿਜਮ]]<br>[[ਬੁਨਿਆਦਵਾਦ]]<br> [[ਕਾਰਤੇਜੀਅਨਵਾਦ]] ਦਾ ਬਾਨੀ
| religion = ਰੋਮਨ ਕੈਥੋਲਿਕ<ref>{{cite web|url=http://www.newadvent.org/cathen/04744b.htm |title=René Descartes |publisher=Newadvent.org |date= |accessdate=30 May 2012 |quote=...preferred to avoid all collision with ecclesiastical authority.}}</ref>
| main_interests = [[ਮੈਟਾਫਿਜਿਕਸ]], [[ਗਿਆਨ-ਸਿਧਾਂਤ]], [[ਹਿਸਾਬ]]
| influences = [[ਪਲੈਟੋ]], [[ਅਰਸਤੂ]], [[Ibn al-Haytham|Alhazen]], [[Ghazali]],<ref>{{cite book |last=Marenbon |first=John |title=Medieval Philosophy: an historical and philosophical introduction |page=174 |publisher=[[Routledge]] |year=2007 |url=http://www.routledge.com/books/details/9780415281133/ |ISBN=978-0-415-28112-6}} ISBN 978-0-415-28113-3</ref> [[Averroes]], [[Avicenna]], [[Anselm of Canterbury|Anselm]], [[Augustine of Hippo|Augustine]], [[Thomas Aquinas|Aquinas]], [[William of Ockham|Ockham]], [[Francisco Suárez|Suarez]], [[Marin Mersenne|Mersenne]], [[Sextus Empiricus]], [[Michel de Montaigne|Montaigne]], [[Jacobus Golius|Golius]], [[Isaac Beeckman|Beeckman]], [[Duns Scotus]]<ref>[[Étienne Gilson]] argued in ''La Liberté chez Descartes et la Théologie'' (Alcan, 1913, pp. 132–47) that Duns Scotus was not the source of Descartes' [[Voluntarism (theology)|Voluntarism]]. Although there exist doctrinal differences between Descartes and Scotus "it is still possible to view Descartes as borrowing from a Scotist Voluntarist tradition" (see: John Schuster, [http://books.google.gr/books?id=WPGb_P4mP8AC&dq= ''Descartes-Agonistes: Physcio-mathematics, Method & Corpuscular-Mechanism 1618-33''], Springer, 2012, p. 363, fn. 26).</ref>
| influenced = Most philosophers after including: [[Baruch Spinoza|Spinoza]], [[Thomas Hobbes|Hobbes]], [[Antoine Arnauld|Arnauld]], [[Nicolas Malebranche|Malebranche]], [[Gabriel Wagner|G. Wagner]], [[Blaise Pascal|Pascal]], [[Maine de Biran|Biran]], [[John Locke|Locke]], [[Christiaan Huygens|Huygens]], [[Gottfried Leibniz|Leibniz]], [[Henry More|More]], [[Arnold Geulincx|Geulincx]], [[Adriaan Heereboord|Heereboord]], [[Immanuel Kant|Kant]], [[Edmund Husserl|Husserl]], [[Léon Brunschvicg|Brunschvicg]], [[Émile Durkheim|Durkheim]], [[Slavoj Žižek|Žižek]], [[Noam Chomsky|Chomsky]], [[Karl Popper|Popper]], [[Jason Stanley|Stanley]], [[Dirck Rembrantsz van Nierop|van Nierop]], [[Frans van Schooten|van Schooten]], [[Emanuel Swedenborg|Swedenborg]], [[Jacques-Bénigne Bossuet|Bossuet]], [[Louis de La Forge|La Forge]], [[Géraud de Cordemoy|Cordemoy]], [[Bernard le Bovier de Fontenelle|Fontenelle]], [[Wilfrid Le Gros Clark|Le Gros Clark]],<ref>[http://www.britannica.com/EBchecked/topic/97342/Cartesianism/43348/Contemporary-influences "Cartesianism (philosophy): Contemporary influences"] in [[Britannica Online Encyclopedia]]</ref> [[Bernard Mandeville|Mandeville]], [[Johannes de Raey|de Raey]], [[Jacques Rohault|Rohault]], [[Pierre-Sylvain Régis|Régis]], [[François Poullain de la Barre|de La Barre]], [[Johannes Clauberg|Clauberg]], [[Pierre Bayle|Bayle]], [[Robert Desgabets|Desgabets]]
| notable_ideas = ''[[Cogito ergo sum]]'', [[Methodic Doubt|method of doubt]], [[Cartesian coordinate system]], [[Cartesian dualism]], [[ontological argument]] for the existence of Christian God, ''[[mathesis universalis]]'';<br>[[folium of Descartes]]
| signature = Firma Descartes.svg
}}
'''ਰਨੇ ਦੇਕਾਰਤ''' ({{IPA-fr|ʁəne dekaʁt|lang}}; ਲਾਤੀਨੀਕ੍ਰਿਤ: '''Renatus Cartesius'''; [[ਵਿਸ਼ੇਸ਼ਣ ਰੂਪ]]: "ਕਾਰਤੇਜੀਅਨ";<ref>{{cite book | title = Light and Enlightenment | url = https://archive.org/details/lightenlightenme0000coli | author=Colie, Rosalie L. | publisher=Cambridge University Press | year = 1957 | page = [https://archive.org/details/lightenlightenme0000coli/page/58 58]}}</ref> 31 ਮਾਰਚ 1596{{spaced ndash}}11 ਫਰਵਰੀ 1650) [[ਫਰਾਂਸੀਸੀ]] [[ਦਾਰਸ਼ਨਿਕ]], [[ਹਿਸਾਬਦਾਨ]], ਅਤੇ [[ਲੇਖਕ]] ਸੀ ਜਿਸਨੇ ਆਪਣੇ ਜੀਵਨ ਦੇ ਬਾਲਗ ਦੌਰ ਦਾ ਵੱਡਾ ਹਿੱਸਾ [[ਡੱਚ ਗਣਰਾਜ]] ਵਿੱਚ ਗੁਜਾਰਿਆ। ਉਸਨੂੰ ਆਧੁਨਿਕ ਹਿਸਾਬ ਅਤੇ ਆਧੁਨਿਕ ਦਰਸ਼ਨ ਦਾ ਪਿਤਾ ਮੰਨਿਆ ਗਿਆ ਹੈ, ਅਤੇ ਬਾਅਦ ਵਾਲਾ ਬਹੁਤਾ [[ਪੱਛਮੀ ਦਰਸ਼ਨ]] ਉਹਦੀਆਂ ਰਚਨਾਵਾਂ ਦਾ ਪ੍ਰਤੀਕਰਮ ਹੈ,<ref name="Britannica">{{cite journal|first1=Richard A. |last1=Watson |authorlink1=Richard Watson (philosopher) |title=René Descartes |work=Encyclopædia Britannica |publisher=Encyclopædia Britannica Online. Encyclopædia Britannica Inc |date=31 March 2012 |url=http://www.britannica.com/EBchecked/topic/158787/Rene-Descartes }}</ref> ਜਿਹੜੀਆਂ ਅੱਜ ਤੱਕ ਪੜ੍ਹੀਆਂ ਜਾ ਰਹੀਆਂ ਹਨ। ਉਸਦੀ ਰਚਨਾ ''ਪਹਿਲੇ ਦਰਸ਼ਨ ਬਾਰੇ ਮੈਡੀਟੇਸ਼ਨਜ'' ਬਹੁਤੇ ਯੂਨੀਵਰਸਿਟੀ ਵਿਭਾਗਾਂ ਵਿੱਚ ਮਿਆਰੀ ਪਾਠ ਪੁਸਤਕ ਵਜੋਂ ਚੱਲ ਰਹੀ ਹੈ। ਹਿਸਾਬ ਉੱਤੇ ਦੇਕਾਰਤ ਦਾ ਪ੍ਰਭਾਵ ਵੀ ਇਵੇਂ ਹੀ ਪ੍ਰਤੱਖ ਹੋ; [[ਕਾਰਤੇਜੀਅਨ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ]] — ਅੰਕਾਂ ਦੇ ਇੱਕ ਸੈੱਟ ਵਜੋਂ ਪੁਲਾੜ ਵਿੱਚ ਇੱਕ ਬਿੰਦੂ ਦਾ ਹਵਾਲਾ ਅਤੇ ਅਲਜਬਰੇ ਦੀਆਂ ਸਮੀਕਰਨਾਂ ਨੂੰ ਦੋ-ਪਾਸਾਰੀ ਕੁਆਰਡੀਨੇਟ ਪ੍ਰਣਾਲੀ ਵਿੱਚ ਜੁਮੈਟਰੀਕਲ ਰੂਪਾਂ ਵਿੱਚ ਪ੍ਰਗਟਾਉ ਸੰਭਵ ਬਣਾਉਂਦੇ ਸੰਕਲਪਾਂ ਦਾ ਨਾਮ ਉਸਦੇ ਨਾਮ ਤੋਂ ਹੀ ਪਿਆ ਹੈ। ਉਸਨੂੰ [[ਵਿਸ਼ਲੇਸ਼ਣਮਈ ਜੁਮੈਟਰੀ]] ਦਾ ਪਿਤਾ, ਅਲਜਬਰੇ ਅਤੇ ਜੁਮੈਟਰੀ ਦਰਮਿਆਨ ਇੱਕ ਪੁਲ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ, [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ। ਦੇਕਾਰਤ [[ਵਿਗਿਆਨਕ ਕ੍ਰਾਂਤੀ]] ਦੀਆਂ ਪ੍ਰਮੁੱਖ ਹਸਤੀਆਂ ਵਿੱਚੋਂ ਵੀ ਇੱਕ ਸੀ ਅਤੇ ਉਸਨੂੰ [[ਜੀਨੀਅਸ]] ਦੀ ਇੱਕ ਉਮਦਾ ਮਿਸਾਲ ਮੰਨਿਆ ਜਾਂਦਾ ਸੀ।
==ਜ਼ਿੰਦਗੀ==
===ਮੁੱਢਲੀ ਜ਼ਿੰਦਗੀ===
[[File:Maison de René DESCARTES - Jean-Charles GUILLO.JPG|left|thumb|The house where he was born in [[Descartes, Indre-et-Loire|La Haye en Touraine]]]]
[[Image:DescartesGraduationRegistry.JPG|thumb|left|Graduation registry for Descartes at the [[Prytanee|Collège Royal Henry-Le-Grand]], [[La Flèche]], 1616]]
ਦੇਕਾਰਤ ਦਾ ਜਨਮ 31 ਮਾਰਚ 1596 ਨੂੰ ਹੇਅ ਵਿੱਚ ਹੋਇਆ ਸੀ। ਉਹ ਇਕ ਸਾਲ ਦੀ ਉਮਰ ਦਾ ਸੀ, ਜਦ ਉਸ ਦੀ ਮਾਤਾ ਦੀ ਇਕ ਹੋਰ ਬੱਚੇ ਨੂੰ ਜਨਮ ਦੇਣ ਸਮੇਂ ਮੌਤ ਹੋ ਗਈ। ਉਸ ਦਾ ਪਿਤਾ, ਯੋਆਕਿਮ [[ਰੇਨੇ]] ਵਿਖੇ [[ਬ੍ਰਿਟਨੀ]] ਸੰਸਦ ਦਾ ਮੈਂਬਰ ਸੀ।<ref>{{cite book|last=Rodis-Lewis|first=Geneviève|chapter=Descartes' life and the development of his philosophy|editor-last=Cottingham|editor-first=John|editor-link=John Cottingham|title=The Cambridge Companion to Descartes|year=1992|publisher=Cambridge University Press|isbn=978-0-521-36696-0|url=http://books.google.dk/books?id=Prhr9FBdQ_MC|page=22}}</ref>
== ਫ਼ਲਸਫ਼ਾ ==
[[File:Pieter_Nason_-_Portrait_of_René_Descartes,_1647.jpg|thumb| ਪੀਟਰ ਨੈਸਨ ਦੁਆਰਾ ਰਨੇ ਦੇਕਾਰਤਦਾ ਚਿੱਤਰ (1647)]]
''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਉਹ ਸਿਧਾਂਤਾਂ ਦੇ ਇੱਕ ਬੁਨਿਆਦੀ ਸਮੂਹ 'ਤੇ ਪਹੁੰਚਣ ਦੀ ਕੋਸ਼ਿਸ਼ ਕਰਦਾ ਹੈ ਜਿਸਨੂੰ ਬਿਨਾਂ ਕਿਸੇ ਸ਼ੱਕ ਦੇ ਸੱਚ ਮੰਨਿਆ ਜਾ ਸਕਦਾ ਹੈ। ਇਸ ਨੂੰ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਸਨੇ ਹਾਈਪਰਬੋਲਿਕ ਜਾਂ ਅਧਿਆਤਮਿਕ ਸ਼ੱਕ ਨਾਮਕ ਇੱਕ ਵਿਧੀ ਦੀ ਵਰਤੋਂ ਕੀਤੀ, ਜਿਸਨੂੰ ਕਈ ਵਾਰ ਵਿਧੀਗਤ ਸ਼ੱਕਵਾਦ ਜਾਂ [[ਕਾਰਟੇਸੀਅਨ ਸ਼ੱਕ]] ਵੀ ਕਿਹਾ ਜਾਂਦਾ ਹੈ। ਦੇਕਾਰਤ ਨੇ ਅਜਿਹੇ ਵਿਚਾਰਾਂ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਿਸ 'ਤੇ ਸ਼ੱਕ ਕੀਤਾ ਜਾ ਸਕਦਾ ਹੈ ਅਤੇ ਫਿਰ ਸੱਚੇ ਗਿਆਨ ਲਈ ਇੱਕ ਮਜ਼ਬੂਤ ਨੀਂਹ ਪ੍ਰਾਪਤ ਕਰਨ ਲਈ ਉਹਨਾਂ ਨੂੰ ਦੁਬਾਰਾ ਸਥਾਪਿਤ ਕੀਤਾ।<ref>{{Cite web |last=Copenhaver |first=Rebecca |title=Forms of skepticism |url=http://www.lclark.edu/~rebeccac/forms.html |archive-url=https://web.archive.org/web/20050108095032/http://www.lclark.edu/~rebeccac/forms.html |archive-date=8 January 2005 |access-date=15 August 2007}}</ref> ਉਹ ਇਸ ਗੱਲ ਨੂੰ ਉਸਾਰੀ ਕਲਾ ਨਾਲ ਜੋੜਦਾ ਹੈ ਜਿਵੇਂ ਇੱਕ ਨਵੀਂ ਇਮਾਰਤ ਜਾਂ ਢਾਂਚਾ ਬਣਾਉਣ ਲਈ ਉੱਪਰਲੀ ਮਿੱਟੀ ਨੂੰ ਹਟਾ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ। ਉਸੇ ਤਰ੍ਹਾਂ ਉਹ ਆਪਣੇ ਸ਼ੱਕ ਨੂੰ ਮਿੱਟੀ ਅਤੇ ਨਵੇਂ ਗਿਆਨ ਨੂੰ ਇਮਾਰਤਾਂ ਕਹਿੰਦਾ ਹੈ। ਦੇਕਾਰਟਸ ਲਈ [[ਅਰਸਤੂ]] ਦਾ ਬੁਨਿਆਦਵਾਦ ਅਧੂਰਾ ਸੀ ਅਤੇ ਉਸਦਾ ਸ਼ੱਕ ਦਾ ਤਰੀਕਾ ਬੁਨਿਆਦਵਾਦ ਨੂੰ ਵਧਾਉਂਦਾ ਹੈ।
ਸ਼ੁਰੂ ਵਿੱਚ, ਦੇਕਾਰਤ ਸਿਰਫ਼ ਇੱਕ ਸਿਧਾਂਤ 'ਤੇ ਪਹੁੰਚਦਾ ਹੈ ਕਿ ਉਹ ਸੋਚਦਾ ਹੈ। ਇਹ ਉਸਦੇ ''ਡਿਸਕੋਰਸ ਔਨ ਦ ਮੈਥਡ'' ਵਿੱਚ ਲਾਤੀਨੀ ਵਾਕੰਸ਼, "Cogito, ergo sum{{Space+double}} ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ, ਜੋ ਮੂਲ ਰੂਪ ਵਿੱਚ ਫਰਾਂਸੀਸੀ ਵਿੱਚ " {{Lang|fr|Je pense, donc je suis}} ਵਜੋਂ ਲਿਖਿਆ ਗਿਆ ਸੀ। ਇਸਦਾ ਭਾਵ ਹੈ ਕਿ {{Space+double}}ਮੈਂ ਸੋਚਦਾ ਹਾਂ, ਇਸ ਲਈ ਮੈਂ ਹਾਂ"।<ref>{{Cite web |title=Cogito, ergo sum {{!}} philosophy |url=https://www.britannica.com/topic/cogito-ergo-sum |url-status=live |archive-url=https://web.archive.org/web/20150616100526/https://www.britannica.com/topic/cogito-ergo-sum |archive-date=16 June 2015 |access-date=28 July 2021 |website=Encyclopedia Britannica |language=en}}</ref> ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ, ਜੇਕਰ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਤਾਂ ਕੋਈ ਚੀਜ਼ ਜਾਂ ਕੋਈ ਵਿਅਕਤੀ ਜ਼ਰੂਰ ਸ਼ੱਕ ਕਰ ਰਿਹਾ ਹੋਵੇਗਾ; ਇਸ ਲਈ, ਇਹੀ ਤੱਥ ਕਿ ਉਸਨੂੰ ਸ਼ੱਕ ਸੀ, ਉਸਦੀ ਹੋਂਦ ਨੂੰ ਸਾਬਤ ਕਰਦਾ ਹੈ। ਇਸ ਵਾਕੰਸ਼ ਦਾ ਸਰਲ ਅਰਥ ਇਹ ਹੈ ਕਿ ਜੇਕਰ ਕੋਈ ਵਿਅਕਤੀ ਆਪਣੀ ਹੋਂਦ ਬਾਰੇ ਸ਼ੱਕੀ ਹੈ, ਤਾਂ ਇਹ ਆਪਣੇ ਆਪ ਵਿੱਚ ਇਸ ਗੱਲ ਦਾ ਸਬੂਤ ਹੈ ਕਿ ਉਹ ਮੌਜੂਦ ਹੈ।"<ref>{{Cite web |title=Ten books: Chosen by Raj Persuade |url=http://bjp.rcpsych.org/cgi/content/full/181/3/258 |url-status=live |archive-url=https://web.archive.org/web/20031110060925/http://bjp.rcpsych.org/cgi/content/full/181/3/258 |archive-date=10 November 2003 |access-date=13 November 2007 |publisher=The [[British Journal of Psychiatry]]}}</ref> ਇਹ ਦੋ ਪਹਿਲੇ ਸਿਧਾਂਤ - ਮੈਂ ਸੋਚਦਾ ਹਾਂ ਅਤੇ ਮੈਂ ਮੌਜੂਦ ਹਾਂ - ਬਾਅਦ ਵਿੱਚ ਦੇਕਾਰਤਦੀ ਸਪਸ਼ਟ ਅਤੇ ਵੱਖਰੀ ਧਾਰਨਾ ''ਦਿ ਮੈਡੀਟੇਸ਼ਨਜ਼'' ਤੋਂ ਉਸਦੀ ਤੀਜੀ ਮੈਡੀਟੇਸ਼ਨ ਵਿੱਚ ਦਰਸਾਇਆ ਗਿਆ ਹੈ। <ref>{{Cite web |last=Ron Bombardi |title=How the Rationalists Construe "Clear and Distinct Ideas" |url=https://capone.mtsu.edu/rbombard/RB/Spinoza/cnd.html}}</ref>
ਦੇਕਾਰਤ ਨੇ ਸਿੱਟਾ ਕੱਢਿਆ ਕਿ ਉਹ ਨਿਸ਼ਚਤ ਹੋ ਸਕਦਾ ਹੈ ਕਿ ਉਹ ਇਸ ਲਈ ਮੌਜੂਦ ਹੈ ਕਿਉਂਕਿ ਉਹ ਸੋਚਦਾ ਹੈ, ਪਰ ਇੰਦਰੀਆਂ ਦੀ ਵਰਤੋਂ ਦੁਆਰਾ ਆਪਣੇ ਸਰੀਰ ਨੂੰ ਸਮਝਣਾ ਇੱਕ ਅਵਿਸ਼ਵਾਸ਼ਯੋਗ ਸਬੂਤ ਹੈ। ਇਸ ਲਈ ਦੇਕਾਰਤ ਨੇ ਇਹ ਨਿਰਧਾਰਤ ਕੀਤਾ ਕਿ ਇੱਕੋ ਇੱਕ ਨਿਰਵਿਵਾਦ ਗਿਆਨ ਇਹ ਹੈ ਕਿ ਉਹ ਇੱਕ ''ਸੋਚਣ ਵਾਲੀ ਚੀਜ਼'' ਹੈ। ਇਸ ਤਰ੍ਹਾਂ ਸੋਚਣਾ ਇੱਕ ਵਿਅਕਤੀ ਦੀ ਹਰ ਗਤੀਵਿਧੀ ਹੈ ਜਿਸ ਬਾਰੇ ਵਿਅਕਤੀ ਤੁਰੰਤ [[ਚੇਤਨਾ|ਸੁਚੇਤ ਹੁੰਦਾ]] ਹੈ। ਉਸਨੇ ਇਹ ਸੋਚਣ ਦੇ ਕਾਰਨ ਦਿੱਤੇ ਕਿ ਜਾਗਦੇ ਵਿਚਾਰ ਸੁਪਨਿਆਂ ਤੋਂ ਵੱਖਰੇ ਹਨ, ਅਤੇ ਕਿਸੇ ਦੇ ਮਨ ਨੂੰ ਕਿਸੇ ਦੁਸ਼ਟ ਭੂਤ ਦੁਆਰਾ ਭਰਮ ਵਿੱਚ ਨਹੀਂ ਪਾਇਆ ਜਾ ਸਕਦਾ।
ਇਸ ਤਰੀਕੇ ਨਾਲ, ਦੇਕਾਰਟਸ ਗਿਆਨ ਦੀ ਇੱਕ ਪ੍ਰਣਾਲੀ ਦਾ ਨਿਰਮਾਣ ਕਰਨ ਲਈ ਅੱਗੇ ਵਧਦਾ ਹੈ, [[ਬੋਧ|ਧਾਰਨਾ]] ਨੂੰ ਭਰੋਸੇਯੋਗ ਨਹੀਂ ਮੰਨਦਾ ਅਤੇ ਇੱਕ ਵਿਧੀ ਦੇ ਤੌਰ 'ਤੇ ਸਿਰਫ਼ ਕਟੌਤੀ ਨੂੰ ਸਵੀਕਾਰ ਕਰਦਾ ਹੈ।<ref name="Preface">{{Cite web |last=Descartes |first=René |title=Letter of the Author to the French Translator of the Principles of Philosophy serving for a preface |url=http://www.classicallibrary.org/descartes/principles/preface.htm |url-status=live |archive-url=https://web.archive.org/web/20180117122219/http://www.classicallibrary.org/descartes/principles/preface.htm |archive-date=17 January 2018 |access-date=6 December 2011}}</ref>
== ਹਵਾਲੇ ==
{{ਹਵਾਲੇ}}
[[ਸ਼੍ਰੇਣੀ:ਫ਼ਰਾਂਸੀਸੀ ਦਾਰਸ਼ਨਿਕ]]
[[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596]]
[[ਸ਼੍ਰੇਣੀ:ਮੌਤ 1650]]
fbm5lrjnw87f9n6c1ihri7ivy42y98m
ਜਨਕ
0
27604
850702
601791
2026-10-27T20:40:57Z
Rotondus
19898
850702
wikitext
text/x-wiki
{{ਬੇ-ਹਵਾਲਾ|}}
[[ਤਸਵੀਰ:Janaka, king of Mithila and father of Sita (cropped).jpg|thumb]]
'''ਜਨਕ''' [[ਵਿਧੇਹਾ]] ਦੇ ਰਾਜੇ ਸਨ। [[ਸੀਰਾਧਵਜ]] ਸਭ ਤੌਂ ਪਰਸਿਧ ਜਨਕ ਸਨ। ਉਹ [[ਰਾਮਾਇਣ]] ਵਿੱਚ [[ਸੀਤਾ]] ਦੇ ਪਿਤਾ ਹਨ।
{{ਰਾਮਾਇਣ}}
{{ਅਧਾਰ}}
[[ਸ਼੍ਰੇਣੀ:ਰਾਮਾਇਣ ਦੇ ਪਾਤਰ]]
jw4dl7r9vqtflv0eog5huccc6qqkqxj
ਇੰਸਪੈਕਟਰ ਜਨਰਲ (ਨਾਟਕ)
0
38559
850713
615598
2026-10-28T09:49:39Z
Ziv
53128
([[c:GR|GR]]) [[File:Nikolai Gogol - Revizor cover (1836).jpg]] → [[File:Nikolai Gogol, Revizor, 1836, title page.jpg]] [[c:COM:FR#FR2|Criterion 2]] · More precise
850713
wikitext
text/x-wiki
{{ਗਿਆਨਸੰਦੂਕ ਨਾਟਕ
| name = ਇੰਸਪੈਕਟਰ ਜਨਰਲ
| image = The Government Inspector by Nikolai Gogol.jpg
| caption = ਨਿਕੋਲਾਈ ਗੋਗੋਲ ਦੀ 200ਵੀਂ ਜਨਮ ਵਰ੍ਹੇਗੰਢ ਨੂੰ ਸਮਰਪਿਤ ਇੱਕ ਰੂਸੀ ਟਿਕਟ, 2009
| writer ='''[[ਨਿਕੋਲਾਈ ਗੋਗੋਲ]]'''
| genre =
| setting =
| subject =
|written =1836
| premiere =
| place =
| orig_lang = '''[[ਰੂਸੀ ਭਾਸ਼ਾ|ਰੂਸੀ]]'''
| ibdb_id =
}}
[[File:ਇਵਾਨ ਮਿਸਕਵਿਨ.jpg|thumb|ਬਾਬਚਿੰਸਕੀ ਦੀ ਭੂਮਿਕਾ ਵਿੱਚ ਅਦਾਕਾਰ ਇਵਾਨ ਮਿਸਕਵਿਨ]]
[[File:Nikolai Gogol, Revizor, 1836, title page.jpg|thumb|Cover of the first edition]]
'''''ਇੰਸਪੈਕਟਰ ਜਨਰਲ''''' (ਮੂਲ ਟਾਈਟਲ: {{lang-ru|Ревизор}}, ''ਰੇਵਿਜ਼ੋਰ'', ਸ਼ਬਦੀ ਅਰਥ: "ਇੰਸਪੈਕਟਰ"), ਯੂਕਰੇਨ ਵਿੱਚ ਜਨਮੇ ਰੂਸੀ ਨਾਟਕਕਾਰ ਅਤੇ ਨਾਵਲਕਾਰ [[ਨਿਕੋਲਾਈ ਗੋਗੋਲ]] ਦਾ ਕਿਖਿਆ ਇੱਕ [[ਵਿਅੰਗ]] [[ਨਾਟਕ]] ਹੈ।<ref name="brittanica">{{cite web|title=Nikolay Gogol|url=http://www.britannica.com/EBchecked/topic/237143/Nikolay-Vasilyevich-Gogol|accessdate=31 December 2010|work=[[Encyclopædia Britannica]]}}</ref> ਇਹਦਾ ਮੂਲ ਰੂਪ 1836 ਵਿੱਚ ਪ੍ਰਕਾਸ਼ਿਤ ਹੋਇਆ ਸੀ, ਅਤੇ ਪਲੇ ਨੂੰ 1842 ਦੇ ਐਡੀਸ਼ਨ ਲਈ ਸੋਧਿਆ ਗਿਆ ਸੀ। ਕਥਿਤ ਤੌਰ 'ਤੇ [[ਅਲੈਗਜ਼ੈਂਡਰ ਪੁਸ਼ਕਿਨ|ਪੁਸ਼ਕਿਨ]] ਦੇ [[ਨਿਕੋਲਾਈ ਗੋਗੋਲ|ਗੋਗੋਲ]] ਨੂੰ ਸੁਣਾਏ ਇੱਕ ਸੱਚੇ ਵਾਕੇ ਤੇ ਆਧਾਰਿਤ,<ref name="Ehre">{{cite book|title= Notes for the Theater of Nikolay Gogol|url= https://archive.org/details/theaterofnikolay00gogo|last= Ehre|first= Milton|year= 1980|publisher= University of Chicago Press|isbn= 0-226-30066-8}}</ref> ਇਹ ਨਾਟਕ ਸਮਾਜਕ ਵੰਨਗੀਆਂ ਤੇ ਸਮਾਜਕ ਬੁਰਾਈਆਂ ਅਤੇ ਲੋਕਾਂ ਦੀ ਆਮ ਸੋਚ ਤੇ ਤਿੱਖਾ ਵਿਅੰਗ ਕਰਦਾ ਇਹ ਕਾਮੇਡੀ ਨਾਟਕ ਹੈ।
==ਰਚਨਾ ਦਾ ਇਤਿਹਾਸ==
ਗੋਗੋਲ ਨੇ 1835 ਦੀ ਪਤਝੜ ਵਿੱਚ ਇਸ ਖੇਲ ਤੇ ਕੰਮ ਸ਼ੁਰੂ ਕੀਤਾ ਸੀ। ਪਲਾਟ ਦਾ ਸੁਝਾਅ [[ਅਲੈਗਜ਼ੈਂਡਰ ਪੁਸ਼ਕਿਨ]] ਨੇ ਵਲੋਂ ਦਿੱਤਾ ਗਿਆ ਸੀ। ਰੂਸੀ ਲੇਖਕ ਵਲਾਦੀਮੀਰ ਸੋਲੋਗੁਬ ਨੇ ਆਪਣੀਆਂ ਯਾਦਾਂ ਵਿੱਚ ਇਸ ਦੀ ਪੁਸ਼ਟੀ ਕੀਤੀ ਹੈ।
[[ਸ਼੍ਰੇਣੀ:ਰੂਸੀ ਨਾਟਕ]]
j81i1epzvl78s8gz12nsso89p0vuqq8
ਗੁਲਬਦੀਨ ਨਾਇਬ
0
118114
850704
850107
2026-10-27T22:30:30Z
TshrinivasanBOT
62713
ਤਸਵੀਰ ਜੋੜੀ (via WikiPhotoFinder)
850704
wikitext
text/x-wiki
[[ਤਸਵੀਰ:Gulbadin Naib.jpg|thumb|ਗੁਲਬਦੀਨ ਨਾਇਬ]]
{{Infobox cricketer|name=ਗੁਲਬਦੀਨ ਨਾਇਬ<br />{{Nastaliq|ګلبدين نایب}}|country=ਅਫ਼ਗਾਨਿਸਤਾਨ|fullname=|nickname=|birth_date={{Birth date and age|1991|3|16|df=yes}}|birth_place=[[ਪੁਲੀ ਆਲਮ]], [[ਲੋਗਰ ਰਿਆਸਤ|ਲੋਗਰ]], ਅਫ਼ਗਾਨਿਸਤਾਨ|heightft=|heightinch=|heightm=|batting=ਸੱਜਾ ਹੱਥ|bowling=ਸੱਜਾ ਹੱਥ [[ਤੇਜ਼ ਗੇਂਦਬਾਜ਼ੀ|ਮੱਧਮ-ਤੇਜ਼]]|role=[[ਆਲ-ਰਾਊਂਡਰ]]|international=ਹਾਂ|odidebutdate=9 ਅਗਸਤ|odidebutyear=2011|odidebutagainst=ਕੈਨੇਡਾ|odicap=24|lastodidate=29 ਜੂਨ|lastodiyear=2019|lastodiagainst=ਪਾਕਿਸਤਾਨ|odishirt=11|T20Idebutdate=14 ਮਾਰਚ|T20Idebutyear=2012|T20Idebutagainst=ਨੀਦਰਲੈਂਡਸ|T20Icap=15|lastT20Idate=6 ਫ਼ਰਵਰੀ|lastT20Iyear=2018|lastT20Iagainst=ਜ਼ਿੰਬਾਬਵੇ|T20Ishirt=|club1=[[ਅਫ਼ਗਾਨ ਚੀਤਾਸ]]|year1=2011/12|clubnumber1=|club2=[[ਬੂਸਟ ਡਿਫ਼ੈਂਡਰਜ਼]]|year2=2017|clubnumber2=|club3=[[ਬਲਖ ਲੈਜੰਡਸ]]|year3=2018–ਚਲਦਾ|clubnumber3=|club4=[[ਸਿਲਹਟ ਸਿਕਸਰਜ਼]]|year4=2019|clubnumber4=|columns=4|column1=[[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ|ਓਡੀਆਈ]]|matches1=58|runs1=888|bat avg1=21.65|100s/50s1=0/5|top score1=82[[ਨਾਬਾਦ|*]]|deliveries1=1,878|wickets1=51|bowl avg1=32.25|fivefor1=1|tenfor1=ਨਹੀਂ|best bowling1=6/43|catches/stumpings1=11/–|column2=[[ਟਵੰਟੀ20 ਅੰਤਰਰਾਸ਼ਟਰੀ|ਟੀ20ਆਈ]]|matches2=38|runs2=432|bat avg2=19.63|100s/50s2=0/1|top score2=56[[ਨਾਬਾਦ|*]]|deliveries2=264|wickets2=9|bowl avg2=43.77|fivefor2=0|tenfor2=ਨਹੀਂ|best bowling2=2/24|catches/stumpings2=17/–|column3=[[ਪਹਿਲਾ ਦਰਜਾ ਕ੍ਰਿਕਟ|ਪਹਿ.ਦ.]]|matches3=5|runs3=313|bat avg3=52.16|100s/50s3=0/3|top score3=88[[ਨਾਬਾਦ|*]]|deliveries3=460|wickets3=14|bowl avg3=23.28|fivefor3=1|tenfor3=0|best bowling3=5/29|catches/stumpings3=6/–|column4=[[ਲਿਸਟ ਏ ਕ੍ਰਿਕਟ|ਲਿ.ਏ.]]|matches4=91|runs4=1,645|bat avg4=24.92|100s/50s4=1/8|top score4=100|deliveries4=2,831|wickets4=79|bowl avg4=32.21|fivefor4=1|tenfor4=ਨਗੀਂ|best bowling4=6/43|catches/stumpings4=20/–|date=29 ਜੂਨ 2019|source=http://www.espncricinfo.com/ci/content/player/352048.html ESPNcricinfo}}
{| class="infobox"
|+ class="" id="183" style="" | ਗੁਲਬਦੀਨ ਨਾਇਬ
! colspan="3" | ਮੈਡਲ ਰਿਕਾਰਡ
|-
|-
! colspan="3" | ਪੁਰਸ਼ [[Cricket|ਕ੍ਰਿਕਟ]]
|-
! colspan="3" class="adr" | ਦੇਸ਼ [[null|link=|border]] <span class="country-name"><span class="flagicon"> </span> [[Afghanistan|ਅਫਗਾਨਿਸਤਾਨ]]</span>
|-
! colspan="3" | [[Asian Games|ਏਸ਼ੀਅਨ ਖੇਡਾਂ]]
|-
|[[File:Silver_medal_icon_(S_initial).svg|link=|16x16px|Silver medal – second place]]
| <span class="nowrap">[[2010 Asian Games|2010 ਗੁਆਂਗਜ਼ੂ]]</span>
| [[Cricket at the 2010 Asian Games|ਟੀਮ]]
|}
'''ਗੁਲਬਦੀਨ ਨਾਇਬ''' (ਪਸ਼ਤੋ ; ਜਨਮ 16 ਮਾਰਚ 1991) ਅਫ਼ਗਾਨ [[ਕ੍ਰਿਕਟ]] ਖਿਡਾਰੀ ਹੈ। ਉਹ ਸੱਜੇ ਹੱਥ ਦਾ [[ਬੱਲੇਬਾਜ਼ੀ (ਕ੍ਰਿਕਟ)|ਬੱਲੇਬਾਜ਼]] ਅਤੇ ਸੱਜੇ ਹੱਥ ਦਾ ਤੇਜ਼ [[ਬੱਲੇਬਾਜ਼ੀ (ਕ੍ਰਿਕਟ)|ਗੇਂਦਬਾਜ਼]] ਹੈ। ਅਪ੍ਰੈਲ 2019 ਵਿੱਚ [[ਅਫ਼ਗਾਨਿਸਤਾਨ ਕ੍ਰਿਕਟ ਬੋਰਡ]] (ਏਸੀਬੀ) ਨੇ [[2019 ਕ੍ਰਿਕਟ ਵਿਸ਼ਵ ਕੱਪ]] ਦੇ ਲਈ ਨਾਇਬ ਨੂੰ [[ਅਸਗਰ ਅਫ਼ਗਾਨ]] ਦੀ ਜਗ੍ਹਾ [[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ]] ਮੈਚਾਂ (ਇੱਕ ਰੋਜ਼ਾ ਕ੍ਰਿਕਟ) ਦਾ ਨਵਾਂ ਕਪਤਾਨ ਬਣਾਇਆ ਸੀ।<ref>{{Cite web|url=https://www.icc-cricket.com/news/1169014|title=Asghar Afghan removed as Afghanistan announce split captaincy|website=International Cricket Council|access-date=5 April 2019}}</ref><ref>{{Cite web|url=http://www.espncricinfo.com/story/_/id/26445623/rahmat-rashid-given-leadership-roles-afghanistan-revamp|title=Rahmat, Rashid given leadership roles in Afghanistan revamp|website=ESPN Cricinfo|access-date=5 April 2019}}</ref>
== ਮੁੱਢਲਾ ਜੀਵਨ ਅਤੇ ਕੈਰੀਅਰ ==
ਗੁਲਬਦੀਨ ਨਾਇਬ ਦਾ ਜਨਮ [[ਅਫ਼ਗਾਨਿਸਤਾਨ]] ਦੇ [[ਲੋਗਰ ਸੂਬਾ|ਲੋਗਰ ਸੂਬੇ]] ਵਿੱਚ [[ਪੁਲੀ ਆਲਮ]] ਵਿੱਚ ਹੋਇਆ [[ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ|ਸੀ]]।<ref>[https://m.cricbuzz.com/profiles/8030/gulbadin-naib Gulbadin Naib Profile.] ''Cricbuzz.com''.</ref><ref name="NEWS">{{Cite news|url=https://www.telegraph.co.uk/sport/cricket/twenty20/9160629/Afghanistan-cricketers-on-the-fast-track-to-Test-status-after-World-Twenty20-success-in-Dubai.html|title=Afghanistan cricketers on the fast-track to Test status after World Twenty20 success in Dubai|last=Berry|first=Scyld|date=22 March 2012|work=[[The Daily Telegraph]]|access-date=26 August 2012}}</ref> ਉਸਨੇ [[ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਅਫ਼ਗਾਨਿਸਤਾਨ]] ਲਈ 2008 ਵਿਸ਼ਵ ਕ੍ਰਿਕਟ ਲੀਗ ਡਿਵੀਜ਼ਨ ਪੰਜ ਵਿੱਚ ਜਪਾਨ ਦੇ ਖਿਲਾਫ਼ ਆਪਣਾ ਪਹਿਲਾ ਮੈਚ ਖੇਡਿਆ, ਜਿਸ ਵਿੱਚ ਉਸਨੇ ਪੰਜ ਮੈਚ ਖੇਡੇ।<ref name="OM">{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/Other_matches.html|title=Other matches played by Gulbudeen Naib|publisher=CricketArchive|access-date=3 August 2011|archive-date=25 ਅਕਤੂਬਰ 2012|archive-url=https://web.archive.org/web/20121025115757/http://cricketarchive.com/Archive/Players/94/94976/Other_matches.html|dead-url=yes}}</ref> ਉਸਨੇ ਦਸਤਾਵੇਜ਼ੀ ''ਫ਼ਿਲਮ ਆੱਉਟ ਆਫ ਦ ਐਸ਼ੇਜ਼'' ਵਿੱਚ ਹਿੱਸਾ ਲਿਆ ਜਿਸ ਵਿੱਚ ਉਸਨੇ ਟੂਰਨਾਮੈਂਟ ਲਈ ਤਿਆਰੀ ਕਰਨ ਵਾਲੀਆਂ ਟੀਮਾਂ ਅਤੇ ਅਫ਼ਗਾਨਿਸਤਾਨ ਵਿੱਚ ਉਨ੍ਹਾਂ ਦੀਆਂ ਜ਼ਿੰਦਗੀਆਂ ਬਾਰੇ ਦੱਸਿਆ ਹੈ ਇਸ ਫ਼ਿਲਮ ਵਿੱਚ ਨਾਇਬ ਨੂੰ [[ਕਾਬੁਲ]] ਦੇ ਜਿੰਮ ਵਿੱਚ [[ਬਾਡੀ ਬਿਲਡਿੰਗ]] ਕਰਦਿਆਂ ਵਿਖਾਇਆ ਗਿਆ [[ਬਾਡੀ ਬਿਲਡਿੰਗ|ਹੈ]] ਅਤੇ [[ਆਰਨੋਲਡ ਸ਼ਵਾਜ਼ਨੈਗਰ|ਅਰਨੋਲਡ ਸ਼ਵੇਰਜਨੇਗਰ]] ਨੂੰ ਉਸਨੇ ਆਪਣੀ ਪ੍ਰੇਰਨਾ ਦਾ ਸਰੋਤ ਦੱਸਿਆ ਹੈ।<ref name="NEWS" /> ਦਸਤਾਵੇਜ਼ੀ ਫ਼ਿਲਮ ਫਿਲਮਾਏ ਜਾਣ ਤੋਂ ਦੋ ਸਾਲ ਬਾਅਦ, ਜਿਸ ਪਿੱਛੋਂ ਨਾਇਬ ਨੇ ਅਫਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਆਪਣੀ ਜਗ੍ਹਾ ਗਵਾ ਲਈ ਸੀ, ਉਸਨੂੰ 2010 ਏਸ਼ੀਆਈ ਖੇਡਾਂ ਲਈ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਚੁਣਿਆ ਗਿਆ। ਇਸ ਟੂਰਨਾਮੈਂਟ ਵਿੱਚ ਉਸਨੇ ਹਾਂਗਕਾਂਗ ਦੇ ਖਿਲਾਫ ਇੱਕ ਮੈਚ ਖੇਡਿਆ।<ref name="OM" /> ਇਨ੍ਹਾਂ ਏਸ਼ੀਆਈ ਖੇਡਾਂ ਵਿੱਚ ਅਫਗਾਨਿਸਤਾਨ ਨੇ ਚਾਂਦੀ ਦਾ ਤਗਮਾ ਜਿੱਤਿਆ। ਉਸ ਨੇ [[ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਅਫਗਾਨਿਸਤਾਨ]] ਲਈ ਆਪਣੀ [[ਏ ਦਰਜਾ ਕ੍ਰਿਕਟ]] ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਜਦੋਂ ਉਹ ਸ਼੍ਰੀਲੰਕਾ ਦੀ ਕੌਮੀ ਕ੍ਰਿਕਟ ਟੀਮ 'ਤੇ 2009 ਦੇ ਹਮਲੇ ਤੋਂ ਬਾਅਦ [[ਪਾਕਿਸਤਾਨ]] ਦੌਰੇ ਦੀ ਪਹਿਲੀ ਟੀਮ ਬਣੀ ਸੀ। ਨਾਇਬ ਨੇ ਪਾਕਿਸਤਾਨ ਏ ਦੇ ਖਿਲਾਫ ਤਿੰਨ ਅਣਅਧਿਕਾਰਤਤਿੰਨ [[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ]] (ਇਕ ਰੋਜ਼ਾ) ਮੈਚਾਂ ਵਿੱਚੋਂ ਦੋ ਮੈਚ ਖੇਡੇ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/List_A_Matches.html|title=List A Matches played by Gulbudeen Naib|publisher=CricketArchive|access-date=3 August 2011}}</ref>
== ਅੰਤਰਰਾਸ਼ਟਰੀ ਕੈਰੀਅਰ ==
ਨਾਇਬ ਨੇ 2011-13 ਦੇ ਆਈਸੀਸੀ ਇੱਕ ਦਿਨਾ ਇੰਟਰਕੌਂਟੀਨੈਂਟਲ ਕੱਪ ਵਿੱਚ [[ਕੈਨੇਡਾ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਕੈਨੇਡਾ]] ਵਿਰੁੱਧ ਖੇਡ ਕੇ ਆਪਣੇ [[ਇੱਕ ਦਿਨਾ ਅੰਤਰਰਾਸ਼ਟਰੀ]] ਕੈਰੀਅਰ ਦੀ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਸੀ।<ref name="ODI">{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/One-Day_International_Matches.html|title=One-Day International Matches played by Gulbudeen Naib|publisher=CricketArchive|access-date=10 August 2011|archive-date=9 ਨਵੰਬਰ 2012|archive-url=https://web.archive.org/web/20121109002946/http://www.cricketarchive.com/Archive/Players/94/94976/One-Day_International_Matches.html|dead-url=yes}}</ref> ਇਸੇ ਦੌਰੇ ਵਿੱਚ ਮਗਰੋਂ ਉਸਨੇ ਕ੍ਰਿਕਟ ਕੈਨੇਡਾ ਸਮਰ ਫ਼ੈਸਟੀਵਲ ਵਿੱਚ ਤ੍ਰਿਨੀਦਾਦ ਅਤੇ ਟੋਬੈਗੋ ਖਿਲਾਫ਼ ਖੇਡ ਕੇ ਆਪਣੇ [[ਟਵੰਟੀ ਟਵੰਟੀ|ਟਵੰਟੀ -20]] ਕੈਰੀਅਰ ਦੀ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਸੀ, ਇਸ ਪਿੱਛੋਂ ਉਸਨੇ ਕੈਨੇਡਾ ਦੇ ਖਿਲਾਫ਼ ਇੱਕ ਹੋਰ ਮੈਚ ਵੀ ਖੇਡਿਆ। ਮਗਰੋਂ 2011 ਵਿੱਚ ਉਹ ਫੈਸਲ ਬੈਂਕ ਟਵੰਟੀ -20 ਕੱਪ 2011-12 ਵਿੱਚ ਨਵੀਂ ਬਣੀ ਅਫਗਾਨ ਚੀਤਾਸ ਟੀਮ ਲਈ ਰਾਵਲਪਿੰਡੀ ਰਾਮਜ਼, ਫੈਸਲਾਬਾਦ ਵੌਲਵਜ਼ ਅਤੇ ਮੁਲਤਾਨ ਟਾਈਗਰਜ਼ ਦੇ ਖਿਲਾਫ ਤਿੰਨ ਮੈਚ ਖੇਡਿਆ।<ref name="T20M">{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/Twenty20_Matches.html|title=Twenty20 Matches Played by Gulbudeen Naib|publisher=CricketArchive|access-date=30 September 2011}}</ref> ਉਸਨੇ ਟੂਰਨਾਮੈਂਟ ਦੌਰਾਨ ਆਪਣਾ ਪਹਿਲਾ ਟਵੰਟੀ -20 [[ਕ੍ਰਿਕਟ ਵਿੱਚ ਵਰਤੀ ਜਾਂਦੀ ਤਕਨੀਕੀ ਸ਼ਬਦਾਵਲੀ|ਅਰਧ ਸੈਂਕੜਾ]] ਕੀਤਾ, ਜਿਸ ਵਿੱਚ ਉਸਨੇ ਫ਼ੈਸਲਾਬਾਦ ਵੌਲਵਜ਼ ਦੇ ਖਿਲਾਫ 42 ਗੇਂਦਾਂ ਵਿੱਚ 68 ਦੌੜਾਂ ਬਣਾਏ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Scorecards/353/353167.html|title=Afghan Cheetas v Faisalabad Wolves, 2011/12 Faysal Bank T-20 Cup|publisher=CricketArchive|access-date=30 September 2011}}</ref> ਦਸੰਬਰ 2011 ਵਿੱਚ 2011 ਏਸੀਸੀ ਟਵੰਟੀ 20 ਕੱਪ ਦੇ ਫਾਈਨਲ ਵਿੱਚ ਉਸਨੇ 50 ਗੇਂਦਾਂ ਵਿੱਚ 57 ਦੌੜਾਂ ਬਣਾਈਆਂ ਜਿਸ ਨਾਲ ਅਫ਼ਗਾਨਿਸਤਾਨ ਨੇ ਹਾਂਗਕਾਂਗ ਨੂੰ 8 ਦੌੜਾਂ ਨਾਲ ਹਰਾ ਕੇ ਤੀਜੀ ਵਾਰ ਏਸੀਸੀ ਟਵੰਟੀ 20 ਕੱਪ ਖਿਤਾਬ ਜਿੱਤਿਆ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Scorecards/390/390994.html|title=Ireland v Afghanistan, 2011 ACC Twenty20 Cup|publisher=CricketArchive|access-date=26 August 2012}}</ref><ref>{{Cite web|url=http://www.cricketeurope4.net/DATABASE/ARTICLES4/articles/000027/002767.shtml|title=Afghanistan win ACC Twenty20 again|last=Nixon|first=Andrew|date=11 December 2011|publisher=www.cricketeurope4.net|access-date=26 August 2012|archive-date=4 ਮਾਰਚ 2016|archive-url=https://web.archive.org/web/20160304091852/http://www.cricketeurope4.net/DATABASE/ARTICLES4/articles/000027/002767.shtml|dead-url=yes}}</ref>
ਮਗਰੋਂ ਨਾਇਬ ਫ਼ਰਵਰੀ 2012 ਵਿੱਚ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੇ ਪਹਿਲੇ ਇੱਕ ਦਿਨਾ ਕੌਮਾਂਤਰੀ ਮੈਚ ਵਿੱਚ ਖੇਡਿਆ ਜੋ ਕਿ ਸ਼ਾਰਜਾਹ ਵਿਖੇ [[ਪਾਕਿਸਤਾਨ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਪਾਕਿਸਤਾਨੀ]] ਟੀਮ ਦੇ ਖਿਲਾਫ਼ ਸੀ। ਇਹ ਕਿਸੇ ਟੈਸਟ ਖੇਡਣ ਵਾਲੇ ਦੇਸ਼ ਵਿਰੁੱਧ ਉਨ੍ਹਾਂ ਦਾ ਪਹਿਲਾ ਮੈਚ ਸੀ। ਨਾਇਬ ਨੇ ਉਸ ਮੈਚ ਵਿੱਚ 7 ਦੌੜਾਂ ਬਣਾਈਆਂ ਅਤੇ ਪਾਕਿਸਤਾਨ ਇਹ ਮੈਚ 7 ਵਿਕਟਾਂ ਨਾਲ ਜਿੱਤ ਗਿਆ ਸੀ।<ref>{{Cite web|url=http://www.espncricinfo.com/pakistan-v-england-2012/content/current/story/552798.html|title=Afridi sets up victory against spirited Afghanistan|last=Sundar|first=Nitin|date=10 February 2012|publisher=ESPNcricinfo|access-date=10 February 2012}}</ref> ਮਾਰਚ 2012 ਵਿੱਚ [[ਸੰਯੁਕਤ ਅਰਬ ਅਮੀਰਾਤ]] ਵਿੱਚ ਕਰਵਾਏ ਗਏ 2012 ਦੇ ਵਿਸ਼ਵ ਟਵੰਟੀ -20 ਕੁਆਲੀਫ਼ਾਇਰ ਲਈ ਉਹ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ 14 ਮੈਂਬਰੀ ਟੀਮ ਦਾ ਹਿੱਸਾ ਸੀ।<ref name="cricketeurope1">{{Cite web|url=http://www.cricketeurope4.net/DATABASE/ARTICLES5/articles/000003/000394.shtml|title=Squads for World Twenty20 Qualifier|date=18 February 2012|publisher=Cricketeurope4.net|access-date=26 August 2012|archive-date=29 ਅਕਤੂਬਰ 2013|archive-url=https://web.archive.org/web/20131029194550/http://www.cricketeurope4.net/DATABASE/ARTICLES5/articles/000003/000394.shtml|dead-url=yes}}</ref> ਇਸ ਟੂਰਨਾਮੈਂਟ ਦੇ ਵਿੱਚ ਨਾਇਬ ਨੇ [[ਨੀਦਰਲੈਂਡ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਨੀਦਰਲੈਂਡਜ਼]] ਵਿਰੁੱਧ ਖੇਡ ਕੇ ਆਪਣੇ [[ਟਵੰਟੀ-20 ਅੰਤਰਰਾਸ਼ਟਰੀ|ਟਵੰਟੀ -20 ਅੰਤਰਰਾਸ਼ਟਰੀ]] (ਟੀ20ਆਈ) ਕੈਰੀਅਰ ਦੀ ਸ਼ੁਰੂਆਤ ਕੀਤੀ ਅਤੇ ਮਗਰੋਂ ਦੋ ਹੋਰ ਮੈਚ ਖੇਡੇ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/International_Twenty20_Matches.html|title=International Twenty20 Matches played by Gulbadeen Naib|publisher=CricketArchive|access-date=26 August 2012}}</ref> ਇਸ ਤੋਂ ਇਲਾਵਾ ਉਸਨੇ ਉਨ੍ਹਾਂ ਦੇਸ਼ਾ ਖਿਲਾਫ਼ 6 ਹੋਰ ਮੈਚ ਖੇਡੇ ਜਿਨ੍ਹਾਂ ਕੋਲ ਟਵੰਟੀ20 ਅੰਤਰਰਾਸ਼ਟਰੀ ਦਰਜਾ ਨਹੀਂ ਸੀ।<ref name="T20M"/> ਉਸ ਨੇ ਕੁਆਲੀਫ਼ਾਇਰ ਵਿੱਚ 13.50 ਦੀ ਔਸਤ ਨਾਲ 86 ਰਨ ਬਣਾਏ ਜਿਸ ਵਿੱਚ 26 ਉਸਦਾ ਉੱਚ ਸਕੋਰ ਸੀ।<ref>{{Cite web|url=https://cricketarchive.com/Archive/Players/94/94976/tt_Batting_by_Season.html|title=Twenty20 Batting and Fielding in Each Season by Gulbadeen Naib|publisher=CricketArchive|access-date=26 August 2012}}</ref> ਟੂਰਨਾਮੈਂਟ ਤੋਂ ਕੁਝ ਚਿਰ ਪਿੱਛੋਂ, ਉਹ ਵਿਸ਼ਵ ਕ੍ਰਿਕਟ ਲੀਗ ਚੈਂਪੀਅਨਸ਼ਿਪ ਵਿੱਚ ਨੀਦਰਲੈਂਡ ਦੇ ਖਿਲਾਫ਼ ਦੋ ਇੱਕ ਰੋਜ਼ਾ ਮੈਚਾਂ ਵਿੱਚ ਖੇਡਿਆ।<ref name="ODI"/>
ਜੁਲਾਈ 2012 ਵਿੱਚ ਇੰਟਰਕੌਂਟੀਨੈਂਟਲ ਕਪ ਦੇ ਵਿੱਚ [[ਆਇਰਲੈਂਡ ਕ੍ਰਿਕਟ ਟੀਮ|ਆਇਰਲੈਂਡ]] ਦੇ ਦੌਰੇ ਲਈ ਨਾਇਬ ਨੂੰ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਚੁਣਿਆ ਗਿਆ ਸੀ।<ref>{{cite web |url=http://icc-cricket.yahoo.net/events_and_awards/intercontinental_cup/newsdetails.php?newsId=20689_1340643900 |title=Squads announced for fourth round of Pepsi ICC WCL Championship and I Cup |publisher=[[International Cricket Council]] |date=25 June 2012 |accessdate=26 August 2012 }}{{dead link|date=October 2017 |bot=InternetArchiveBot |fix-attempted=yes }}</ref> ਉਹ ਆਇਰਲੈਂਡ ਦੇ ਵਿਰੁੱਧ ਵਿਸ਼ਵ ਕ੍ਰਿਕਟ ਲੀਗ ਚੈਂਪੀਅਨਸ਼ਿਪ ਦੇ ਦੋਵਾਂ ਮੈਚਾਂ ਵਿੱਚ ਖੇਡਿਆ।<ref name="ODI"/> ਹਾਲਾਂਕਿ ਬਾਰਿਸ਼ ਕਾਰਨ ਪਹਿਲੇ ਮੈਚ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਗਿਆ ਸੀ, ਪਰ ਦੂਜੇ ਮੈਚ ਵਿੱਚ ਉਸਨੇ [[ਨੀਲ ਓ'ਬ੍ਰਾਇਨ]] ਨੂੰ ਆਊਟ ਕਰਕੇ ਆਪਣਾ ਪਹਿਲਾ ਓਡੀਆਈ ਵਿਕਟ ਹਾਸਲ ਕੀਤਾ, ਅਤੇ 23 ਗੇਂਦਾਂ ਵਿੱਚ 19 ਦੌੜਾਂ ਬਣਾਈਆਂ। ਆਇਰਲੈਂਡ ਇਹ ਮੈਚ 59 ਦੌੜਾਂ ਨਾਲ ਜਿੱਤ ਗਿਆ ਸੀ।<ref>{{cite web|url=https://cricketarchive.com/Archive/Scorecards/434/434824.html|title=Ireland v Afghanistan, 2011–13 ICC World Cricket League Championship|publisher=CricketArchive|accessdate=26 August 2012}}</ref> ਅਗਸਤ 2012 ਵਿੱਚ ਨਾਇਬ ਸ਼ੌਰਜਾਹ ਵਿਖੇ [[ਆਸਟ੍ਰੇਲੀਆ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਆਸਟ੍ਰੇਲੀਆ]] ਦੇ ਖਿਲਾਫ਼ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੇ ਦੂਜੇ ਵਨ ਡੇ ਵਿੱਚ ਵਿੱਚ ਖੇਡਿਆ।<ref name="ODI"/> ਆਸਟ੍ਰੇਲੀਆ ਦੀ 272/8 ਦੀ ਪਹਿਲੀ ਪਾਰੀ ਵਿੱਚ ਉਸ ਨੇ ਦੋ ਓਵਰਾਂ ਦੀ ਗੇਂਦਬਾਜ਼ੀ ਕੀਤੀ, ਜਿਸ ਵਿੱਚ ਉਸਨੇ 18 ਦੌੜਾਂ ਦਿੱਤੀਆਂ ਅਤੇ ਇਸ ਮੈਚ ਦੌਰਾਨ ਫੀਲਡਿੰਗ ਕਰਦਿਆਂ ਉਸਨੇ [[ਡੇਵਿਡ ਹਸੀ]] ਨੂੰ ਰਨ-ਆਊਟ ਵੀ ਕੀਤਾ। ਟੀਚੇ ਦਾ ਪਿੱਛਾ ਕਰਦਿਆਂ ਉਸਨੇ 17 ਗੇਂਦਾਂ ਵਿੱਚ 22 ਦੌੜਾਂ ਬਣਾਈਆਂ, ਜਿਸ ਵਿੱਚ ਤਿੰਨ ਛੱਕੇ ਸ਼ਾਮਲ ਸਨ। ਆਸਟਰੇਲੀਆ ਇਹ ਮੈਚ 66 ਦੌੜਾਂ ਜਿੱਤ ਗਿਆ ਸੀ।<ref>{{cite web|url=https://cricketarchive.com/Archive/Scorecards/451/451023.html|title=Afghanistan v Australia, 2012|publisher=CricketArchive|accessdate=26 August 2012}}</ref> ਇਸ ਮੈਚ ਦੌਰਾਨ ਸਤੰਬਰ 2012 ਵਿੱਚ ਸ਼੍ਰੀਲੰਕਾ ਵਿੱਚ ਹੋ ਰਹੀ [[2012 ਆਈ.ਸੀ.ਸੀ. ਵਿਸ਼ਵ ਟਵੰਟੀ20|ਵਿਸ਼ਵ ਟੀ -20 ਵਿਸ਼ਵ ਕੱਪ]] ਲਈ ਉਸਨੂੰ ਅਫ਼ਗਾਨਿਸਤਾਨ ਦੀ ਟੀਮ ਵਿੱਚ ਰੱਖਿਆ ਗਿਆ ਸੀ। ਉਸੇਨੇ ਇੰਗਲੈਂਡ ਵਿਰੁੱਧ 44 ਦੌੜਾਂ ਬਣਾਈਆਂ, ਅਤੇ ਉਹ ਇੱਕੋ-ਇਕ ਅਫ਼ਗਾਨ ਖਿਡਾਰੀ ਸੀ ਜਿਸ ਨੇ ਦੋ ਅੰਕਾਂ ਵਿੱਚ ਦੌੜਾਂ ਬਣਾਈਆਂ।<ref>{{cite web|url=http://www.espncricinfo.com/icc-world-twenty20-2012/content/story/579364.html|title=Hamid Hassan returns for Afghanistan|date=25 August 2012|publisher=ESPNcricinfo|accessdate=26 August 2012}}</ref>
ਅਪ੍ਰੈਲ 2019 ਵਿੱਚ ਉਸਨੂੰ [[2019 ਕ੍ਰਿਕਟ ਵਿਸ਼ਵ ਕੱਪ|2019 ਕ੍ਰਿਕਟ ਵਰਲਡ ਕੱਪ]] ਲਈ [[2019 ਕ੍ਰਿਕਟ ਵਿਸ਼ਵ ਕੱਪ ਟੀਮਾਂ|ਅਫ਼ਗਾਨਿਸਤਾਨ ਟੀਮ]] ਦਾ ਕਪਤਾਨ ਚੁਣਿਆ ਗਿਆ ਸੀ।<ref>{{cite web|url=http://www.espncricinfo.com/ci/content/story/1181690.html |title=Hamid Hassan picked in Afghanistan's World Cup squad; Naib to captain |work=ESPN Cricinfo |accessdate=22 April 2019}}</ref><ref>{{cite web|url=https://www.icc-cricket.com/news/1194077 |title=Asghar Afghan included in Gulbadin Naib-led World Cup squad |work=International Cricket Council |accessdate=22 April 2019}}</ref> ਮਈ ਵਿੱਚ ਵਿਸ਼ਵ ਕੱਪ ਤੋਂ ਪਹਿਲਾਂ ਆਇਰਲੈਂਡ ਵਿਰੁੱਧ ਦੂਜੇ ਇੱਕ ਰੋਜ਼ਾ ਮੈਚ ਵਿੱਚ ਨਾਇਬ ਨੇ 43 ਦੌੜਾਂ ਨਾਲ ਛੇ ਵਿਕਟਾਂ ਲਈਆਂ ਸਨ। ਇਹ ਉਸਾਦਾ ਪਹਿਲਾ ਪੰਜ-ਵਿਕਟ ਹਾਲ ਹੈ ਅਤੇ ਇੱਕ ਦਿਨਾ ਮੈਚਾਂ ਵਿੱਚ ਅਫਗਾਨਿਸਤਾਨ ਲਈ ਇੱਕ ਗੇਂਦਬਾਜ਼ ਦੁਆਰਾ ਇਹ ਤੀਜੇ ਸਭ ਤੋਂ ਵਧੀਆ ਅੰਕੜੇ ਸਨ।<ref>{{cite web|url=http://www.espncricinfo.com/series/19064/report/1168516/ireland-vs-afghanistan-2nd-odi-afg-in-ireland-2019 |title=Shahzad ton as Afghanistan tune up for World Cup with series-levelling victory |work=ESPN Cricinfo |accessdate=21 May 2019}}</ref> 24 ਜੂਨ 2019 ਨੂੰ [[ਬੰਗਲਾਦੇਸ਼ ਰਾਸ਼ਟਰੀ ਕ੍ਰਿਕਟ ਟੀਮ|ਬੰਗਲਾਦੇਸ਼]] ਦੇ ਖਿਲਾਫ ਮੈਚ ਵਿੱਚ ਖੇਡ ਕੇ ਨਾਇਬ ਨੇ ਅਫ਼ਗਾਨਿਸਤਾਨ ਲਈ ਆਪਣਾ 100 ਵਾਂ ਅੰਤਰਰਾਸ਼ਟਰੀ ਮੈਚ ਖੇਡਿਆ।<ref>{{cite web|url=https://www.crictracker.com/icc-world-cup-2019-match-31-bangladesh-vs-afghanistan-statistical-preview/ |title=ICC World Cup 2019: Match 31, Bangladesh vs Afghanistan – Statistical Preview |work=Crictracker |accessdate=24 June 2019}}</ref> ਇਸੇ ਮੈਚ ਵਿੱਚ ਉਸਨੇ ਇੱਕ ਰੋਜ਼ਾ ਕ੍ਰਿਕਟ ਵਿੱਚ ਆਪਣਾ 1000ਵਾਂ ਰਨ ਵੀ ਬਣਾਇਆ।<ref>{{cite web |url=https://www.cricketcountry.com/news/afghanistan-vs-bangladesh-live-cricket-score-and-updates-afg-vs-ban-match-31-live-score-shakib-al-hasan-derails-afghanistan-chase-with-four-wickets-860920 |title=Afghanistan vs Bangladesh live cricket score and updates, AFG vs BAN Match 31 |work=Cricket Country |accessdate=24 June 2019 |archive-url=https://web.archive.org/web/20190624161108/https://www.cricketcountry.com/news/afghanistan-vs-bangladesh-live-cricket-score-and-updates-afg-vs-ban-match-31-live-score-shakib-al-hasan-derails-afghanistan-chase-with-four-wickets-860920 |archive-date=24 ਜੂਨ 2019 |url-status=dead}}</ref>
== ਟੀ20 ਫ਼੍ਰੈਚਾਇਜ਼ੀ ਕ੍ਰਿਕਟ==
ਸਤੰਬਰ 2018 ਵਿੱਚ [[ਅਫ਼ਗਾਨਿਸਤਾਨ ਪ੍ਰੀਮੀਅਰ ਲੀਗ]] ਟੂਰਨਾਮੈਂਟ ਦੇ ਪਹਿਲੇ ਐਡੀਸ਼ਨ ਵਿੱਚ ਉਸਨੂੰ ਬਲਖ ਦੀ ਟੀਮ ਵਿੱਚ ਚੁਣਿਆ ਗਿਆ ਸੀ।<ref>{{cite web|url=https://www.crictracker.com/afghanistan-premier-league-2018-all-you-need-to-know-from-the-player-draft/ |title=Afghanistan Premier League 2018 – All you need to know from the player draft |work=CricTracker |accessdate=10 September 2018}}</ref> ਅਗਲੇ ਮਹੀਨੇ 2018-19 [[ਬੰਗਲਾਦੇਸ਼ ਪ੍ਰੀਮੀਅਰ ਲੀਗ]] ਵਿੱਚ ਉਸਨੂੰ [[ਸਿਲਹਟ ਸਿਕਸਰਜ਼]] ਦੀ ਟੀਮ ਨੇ ਖਰੀਦਿਆ ਸੀ।<ref>{{cite web |url=http://www.tigercricket.com.bd/2018/10/29/full-players-list-of-the-teams-following-players-draft-of-bpl-t20-2018-19/ |title=Full players list of the teams following Players Draft of BPL T20 2018-19 |work=Bangladesh Cricket Board |accessdate=29 October 2018 |archive-date=28 ਮਾਰਚ 2019 |archive-url=https://web.archive.org/web/20190328104022/http://www.tigercricket.com.bd/2018/10/29/full-players-list-of-the-teams-following-players-draft-of-bpl-t20-2018-19/ |dead-url=yes }}</ref>
==ਹਵਾਲੇ==
{{ਹਵਾਲੇ}}
[[ਸ਼੍ਰੇਣੀ:ਪਸ਼ਤੂਨ ਲੋਕ]]
[[ਸ਼੍ਰੇਣੀ:ਅਫ਼ਗ਼ਾਨਿਸਤਾਨ ਦੇ ਕ੍ਰਿਕਟ ਖਿਡਾਰੀ]]
[[ਸ਼੍ਰੇਣੀ:ਜ਼ਿੰਦਾ ਲੋਕ]]
[[ਸ਼੍ਰੇਣੀ:ਜਨਮ 1991]]
7h6c2d90ieb66g68c9urlli43cfazbp
ਬਾਬਾ ਬੀਰਮ ਦਾਸ
0
170695
850697
749978
2026-10-27T16:18:57Z
ਗਿਆਨੀ ਪੁਰਸ਼
46330
850697
wikitext
text/x-wiki
{{speedy|reason}}{{ਅੰਦਾਜ਼}}
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ.
ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ.
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ
== <big>ਹਵਾਲੇ</big> ==
"Baba Biram Das Ji" by Sant Maskeen
"Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh
"Baba Biram Das" by Kartar Singh Bajwa
"Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu
"Baba Bhiram Das" by Giani Gian Singh
"Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni
"Baba Biram Das" by Jagtar Singh Baniya
"Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar
"Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana
"Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh
"Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill
"Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala
"Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal
"Sikh Gurus and Saints" by S.S. Kohli
"Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza
"Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib
"The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe
"Sant Parampara" by Giani Kirpal Singh
"Sant Rattan" by Bhai Randhir Singh
"Sikhan Di Bhagat Mala" by Bhai Vir Singh
"Sri Gur Sobha" by Sainapati
"Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill
"Baba Biram Das: The Immortal Saint" by Prem Sumarg
"Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh
"Baba Biram Das: The Wandering Saint" by Chanchal Bharti
"Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh
"Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu
"Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans
Baba Biram Das: A Living Legend" by Preeti Kaur
"Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna
"Baba Biram Das: The Enlightened One" by Jaspal Singh
"Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder
"Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh
"Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill
"Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale
Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh
Baba Biram Das Ji by Harjinder Singh
Life of Baba Biram Das by Piara Singh Padam
Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar
Baba Biram Das Ji by Harpreet Singh
Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal
Baba Biram Das Ji: A Biography by Narinderpal Singh
Baba Biram Das Ji: A Religious Biography by Gurvinder Singh
Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh
Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh
"Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd.
"Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers
Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India.
"Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd.
"Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation.
"Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd.
"Guru Har Rai and the Bir Ras" by Giani Gian Singh
Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254
"The Sikh Gurus" by Gurbachan Singh Talib
"Gur Bilas Patshahi 9" by Sainapati
Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187
"Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell
"The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod
"Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer
"Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh
sgjejp6ept191my1xnsr4dd5pds3j62
850698
850697
2026-10-27T16:20:16Z
ਗਿਆਨੀ ਪੁਰਸ਼
46330
850698
wikitext
text/x-wiki
{{speedy|reason All sources are fake and made up. No such books exist
}}{{ਅੰਦਾਜ਼}}
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ.
ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ.
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ
== <big>ਹਵਾਲੇ</big> ==
"Baba Biram Das Ji" by Sant Maskeen
"Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh
"Baba Biram Das" by Kartar Singh Bajwa
"Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu
"Baba Bhiram Das" by Giani Gian Singh
"Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni
"Baba Biram Das" by Jagtar Singh Baniya
"Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar
"Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana
"Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh
"Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill
"Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala
"Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal
"Sikh Gurus and Saints" by S.S. Kohli
"Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza
"Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib
"The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe
"Sant Parampara" by Giani Kirpal Singh
"Sant Rattan" by Bhai Randhir Singh
"Sikhan Di Bhagat Mala" by Bhai Vir Singh
"Sri Gur Sobha" by Sainapati
"Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill
"Baba Biram Das: The Immortal Saint" by Prem Sumarg
"Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh
"Baba Biram Das: The Wandering Saint" by Chanchal Bharti
"Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh
"Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu
"Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans
Baba Biram Das: A Living Legend" by Preeti Kaur
"Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna
"Baba Biram Das: The Enlightened One" by Jaspal Singh
"Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder
"Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh
"Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill
"Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale
Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh
Baba Biram Das Ji by Harjinder Singh
Life of Baba Biram Das by Piara Singh Padam
Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar
Baba Biram Das Ji by Harpreet Singh
Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal
Baba Biram Das Ji: A Biography by Narinderpal Singh
Baba Biram Das Ji: A Religious Biography by Gurvinder Singh
Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh
Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh
"Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd.
"Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers
Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India.
"Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd.
"Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation.
"Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd.
"Guru Har Rai and the Bir Ras" by Giani Gian Singh
Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254
"The Sikh Gurus" by Gurbachan Singh Talib
"Gur Bilas Patshahi 9" by Sainapati
Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187
"Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell
"The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod
"Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer
"Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh
cmxc2ca58v7njlb2r2dajscgv9fbekk
850699
850698
2026-10-27T16:22:21Z
ਗਿਆਨੀ ਪੁਰਸ਼
46330
850699
wikitext
text/x-wiki
{{db-author}}{{speedy|reason All sources are fake and made up. No such books exist
}}{{ਅੰਦਾਜ਼}}
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ.
ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ.
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ
== <big>ਹਵਾਲੇ</big> ==
"Baba Biram Das Ji" by Sant Maskeen
"Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh
"Baba Biram Das" by Kartar Singh Bajwa
"Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu
"Baba Bhiram Das" by Giani Gian Singh
"Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni
"Baba Biram Das" by Jagtar Singh Baniya
"Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar
"Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana
"Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh
"Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill
"Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala
"Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal
"Sikh Gurus and Saints" by S.S. Kohli
"Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza
"Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib
"The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe
"Sant Parampara" by Giani Kirpal Singh
"Sant Rattan" by Bhai Randhir Singh
"Sikhan Di Bhagat Mala" by Bhai Vir Singh
"Sri Gur Sobha" by Sainapati
"Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill
"Baba Biram Das: The Immortal Saint" by Prem Sumarg
"Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh
"Baba Biram Das: The Wandering Saint" by Chanchal Bharti
"Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh
"Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu
"Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans
Baba Biram Das: A Living Legend" by Preeti Kaur
"Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna
"Baba Biram Das: The Enlightened One" by Jaspal Singh
"Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder
"Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh
"Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill
"Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale
Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh
Baba Biram Das Ji by Harjinder Singh
Life of Baba Biram Das by Piara Singh Padam
Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar
Baba Biram Das Ji by Harpreet Singh
Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal
Baba Biram Das Ji: A Biography by Narinderpal Singh
Baba Biram Das Ji: A Religious Biography by Gurvinder Singh
Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh
Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh
"Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd.
"Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers
Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India.
"Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd.
"Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation.
"Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd.
"Guru Har Rai and the Bir Ras" by Giani Gian Singh
Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254
"The Sikh Gurus" by Gurbachan Singh Talib
"Gur Bilas Patshahi 9" by Sainapati
Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187
"Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell
"The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod
"Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer
"Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh
ab7pxqf8t7732ix4ngn6edlzutu88rj
850700
850699
2026-10-27T16:25:34Z
ਗਿਆਨੀ ਪੁਰਸ਼
46330
850700
wikitext
text/x-wiki
{{db-author}}<code><nowiki>{{delete| </nowiki>''A''</code><code>''ll citations dont exist and are made up AI. Blatant vandalism from a random website''<nowiki>}}</nowiki></code> {{speedy|reason All sources are fake and made up. No such books exist
}}{{ਅੰਦਾਜ਼}}
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਜਿਨਾ ਦਾ ਅਸਲੀ ਨਾਮ ਰਤਨ ਦਾਸ ਜੀ ਸੀ, ਦਾ ਜਨਮ ਪਿੰਡ ਲਖਨੌਰ ( ਲਖਨੌਰ ਸਾਹਿਬ) ਜਿਲਾ ਅੰਬਾਲਾ ਵਿਚ ਹੋਇਆ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਦੇ ਮਾਮਾ ਜੀ ਸੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਦੇ ਚਾਚਾ ਜੀ ਦਾ ਲੜਕੇ ਸੀ. ਪਹਿਲੇ ਸਮੇਂ ਵਿਚ ਪਿੰਡਾਂ ਦੇ ਵਿਚ ਤਾਏ-ਚਾਚੇ ਦੇ ਪਰਿਵਾਰ ਕਠੇ ਰਿਹੰਦੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦਾ ਬਚਪਨ ਤੋਂ ਹੀ ਮਾਤਾ ਜੀ (ਮਾਤਾ ਗੁਜਰੀ ਜੀ) ਨਾਲ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਭਜਨ ਬੰਦਗੀ ਕਰਕੇ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਅਵਸਥਾ ਬਹੁਤ ਉਚ੍ਹੀ ਸੀ. ਇਕ ਦਫ਼ਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ, ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਤੇ ਮਾਤਾ ਗੁਜਰੀ ਜੀ ਨੂੰ ਮਿਲਣ ਲਈ ਆਨੰਦਪੁਰ ਸਾਹਿਬ ਗਏ ਤਾਂ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਦਰਬਾਰ ਲਾਇਆ ਹੋਇਆ ਸੀ ਤੇ ਸੰਗਤਾਂ ਦੇ ਵਿਚ ਬੈਠੇ ਸੀ. ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਆ ਹੋਇਆ ਸੀ. (ਬਾਬਾ ਜੀ ਪਹਿਲਾਂ ਸਿਰਫ ਲੰਗੋਟ ਪਹਿਨਦੇ ਸੀ ਤੇ ਬਾਅਦ ਚ ਅਲਫ ਨਗਨ ਅਵਸਥਾ ਚ ਬਿਚਰਦੇ ਰਹੇ). ਜਦੋਂ ਬਾਬਾ ਜੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਦੇ ਦਰਬਾਰ ਪਹੁੰਚੇ ਤਾਂ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਬਾਬਾ ਜੀ ਵੱਲ ਬੜੇ ਧਿਆਨ ਨਾਲ ਦੇਖਿਆ ਤੇ ਪੁਛਿਆ ਕੇ ਤੁਸੀਂ ਕੋਣ ਹੋ ਤੇ ਕਿਥੋਂ ਆਏ ਹੋ? ਤਾਂ ਬਾਬਾ ਜੀ ਨੇ ਜਵਾਬ ਦਿਤਾ " ਦਸ਼ਮੇਸ਼ ਜੀ ਅਸੀਂ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਹਾਂ ਤੇ ਲਖਨੌਰ ਸਾਹਿਬ ਤੋਂ ਆਏ ਹਾਂ ". ਐਂਨਾ ਸੁਣਨ ਦੀ ਦੇਰ ਸੀ ਦਸ਼ਮੇਸ਼ ਜੀ ਉਠ ਕੇ ਆ ਗਏ ਤੇ ਆਪਣੇ ਮਾਮਾ ਜੀ (ਬਾਬਾ ਜੀ) ਦੇ ਚਰਨਾ ਚ ਮਥਾ ਟੇਕ ਦਿੱਤਾ ਤੇ ਓਹਨਾ ਨੂੰ ਅੰਦਰ ਮਹਿਲ ਚ ਲੈਯ ਗਏ ਜਿਥੇ ਮਾਤਾ ਜੀ ਸੀ, ਮਾਤਾ ਜੀ ਨਾਲ ਤਾਂ ਬਾਬਾ ਜੀ ਦਾ ਪਹਿਲਾਂ ਹੀ ਬੜਾ ਪ੍ਰੇਮ ਸੀ. ਮਾਤਾ ਜੀ ਨੇ ਵੀ ਬਾਬਾ ਜੀ ਦਾ ਬੜਾ ਸਤਿਕਾਰ ਕੀਤਾ. ਬਾਬਾ ਜੀ ਓਥੇ ਗੁਰੂ ਸਾਹਿਬ ਜੀ ਕੋਲ ਕੁਛ ਦਿਨ ਰੁਕੇ ਤੇ ਫੇਰ ਵਾਪਿਸ ਲਖਨੌਰ ਚਲੇ ਗਏ. ਜਦੋਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਚਲੇ ਗਏ ਤਾਂ ਮਾਤਾ ਜੀ ਨੇ [[ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ]] ਜੀ ਨੂੰ ਪੁਛਿਆ " ਲਾਲ ਜੀ ਤੁਹਾਡੇ ਮਾਮਾ ਜੀ ਦੀ ਹੁਣ ਦੀ ਤੇ ਪਿਛਲੇ ਜਨਮਾਂ ਦੀ ਕਮਾਈ ( ਭਜਨ ਬੰਦਗੀ) ਬਹੁਤ ਹੈ, ਤੇ ਓਹ ਇਸ ਆਸ ਤੇ ਆਏ ਸੀ ਕਿ ਤੁਸੀਂ ਓਹਨਾ ਤੇ ਕਿਰਪਾ ਕਰੋਂਗੇ, ਤੁਸੀਂ ਓਹਨਾ ਦੇ ਚਰਨਾ ਚ ਸੀਸ ਰਖ ਕੇ ਮਥਾ ਵੀ ਟੇਕ ਦਿਤਾ ਪਰ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਫੇਰ ਵੀ ਨਹੀ ਕੀਤੀ, ਇਹ ਕਿਓ ". ਇਹ ਸੁਣ ਕੇ ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਮੁਸਕਰਾ ਪਏ ਤੇ ਕਹਿਣ ਲੱਗੇ " ਮਾਤਾ ਜੀ ਮਥਾ ਅਸੀਂ ਆਪਣੇ ਮਾਮਾ ਜੀ ਨੂੰ ਟੇਕਿਆ ਸੀ ਤੇ ਭਾਵੇਂ ਓਹਨਾ ਦੀ ਭਜਨ ਬੰਦਗੀ ਬਹੁਤ ਹੈ ਪਰ ਕਿਰਪਾ ਲੈਣ ਵਾਸਤੇ ਮਾਮਾ ਬਣ ਕੇ ਨਹੀ ਦਾਸ ਬਣ ਕੇ ਆਉਂਦੇ ਹੁੰਦੇ ਹੈ ". ਜਦੋਂ ਇਸ ਗੱਲ ਦਾ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੂੰ ਪਤਾ ਲਗਾ ਤਾਂ ਓਹ ਭਜਨ ਬੰਦਗੀ ਕਰਨ ਨਿਕਲ ਗਏ ਤੇ ਇਕ ਜਗਾਹ ਤੇ ਜਾ ਕੇ ਸਮਾਧੀ ਲਾ ਲਈ. ਜਦੋਂ ਸਮਾਧੀ ਲੱਗ ਗਈ ਫੇਰ ਸਰੀਰ ਦਾ ਵੀ ਪਤਾ ਨਾ ਰਿਹਾ. ਐਥੋਂ ਤੱਕ ਕਿ ਸੱਪਾਂ ਨੇ ਵੀ ਸਰੀਰ ਦੇ ਆਲੇ ਦੁਆਲੇ ਬੀਰਮੀ (ਘਰ) ਬਣਾ ਲਈ. ਤੇ ਇਲਾਕੇ ਚ ਬੀਰਮੀ ਵਾਲੇ ਸਾਧੂ ਦੇ ਨਾਮ ਨਾਲ ਮਸ਼ਹੂਰ ਹੋ ਗਏ, ਤੇ ਇਸੇ ਕਰਕੇ ਇਹਨਾ ਦਾ ਨਾਮ ਰਤਨ ਦਾਸ ਤੋਂ ਬੀਰਮ ਦਾਸ ਹੋ ਗਿਆ. ਕਈ ਸਾਲ ਆਪ ਸਮਾਧੀ ਚ ਰਹੇ, ਐਧਰ ਦਸ਼ਮੇਸ਼ ਜੀ ਵੀ ਹਜ਼ੂਰ ਸਾਹਿਬ ਪਹੁੰਚ ਗਏ. ਇਕ ਦਿਨ ਦਸ਼ਮੇਸ਼ ਜੀ ਨੇ ਸੁਰਤੀ ਨਾਲ ( ਅੰਤਰ-ਜਾਮਤਾ ਨਾਲ ) ਬਾਬਾ ਜੀ ਨੂੰ ਹਜ਼ੂਰ ਸਾਹਿਬ ਬੁਲਾ ਲਿਆ ਤੇ ਕਿਹਾ ਬਾਬਾ ਜੀ ਅੱਜ ਤੁਹਾਡੀ ਕਮਾਈ ਸਫਲ ਹੋ ਗਈ ਹੈ. ਗੁਰੂ ਗੋਬਿੰਦ ਸਿੰਘ ਜੀ ਮਹਾਰਾਜ ਨੇ ਉਸ ਸਮੇ ਗੋਦਾਵਰੀ ਨਦੀ ਤੇ ਕਿਨਾਰੇ ਤੇ ਬਾਬਾ ਜੀ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰ ਦਿਤੀ ਤੇ ਹੁਕਮ ਕੀਤਾ ਕਿ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਜਾਓ, ਸੰਪਰਦਾਵਾਂ ਤੇ ਟਕਸਾਲਾਂ ਚਲਾਓ, ਸਾਧੂ, ਸੰਤ, ਮਹਾਤਮਾ ਤੇ ਕਿਰਪਾ ਦ੍ਰਿਸ਼ਟੀ ਕਰਕੇ ਓਹਨਾ ਨੂੰ ਬ੍ਰਹਮ ਗਿਆਨਤਾ ਬਖਸ਼ੋ. ਇਸ ਵਕ਼ਤ ਬਾਬਾ ਜੀ ਦੀ ਸਰੀਰਕ ਤੌਰ ਤੇ 89 ਸਾਲ ਦੀ ਉਮਰ ਸੀ.
ਸੱਤ-ਵਚਨ ਮੰਨ ਕੇ ਬਾਬਾ ਜੀ ਪੰਜਾਬ ਦੀ ਧਰਤੀ ਤੇ ਵਾਪਿਸ ਆ ਗਏ ਤੇ ਪਟਿਆਲੇ ਦੇ ਨਾਲ ਉਜਾੜ ਝਿੜੀ (ਜੰਗਲ) ਸੀ, ਓਥੇ ਰਹਿ ਕੇ ਨਾਲੇ ਤਪ ਕੀਤਾ ਨਾਲੇ ਸਮੇ ਸਮੇ ਸਿਰ ਸਾਧੂ ਸੰਤ ਬਣਾਏ. ਅੱਜ ਪੰਜਾਬ ਚ ਕੋਈ ਐਸੀ ਸੰਪਰਦਾ ਯਾ ਟਕਸਾਲ ਨਹੀ ਹੈ ਜੋ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਨੇ ਨਾ ਚਲਾਈ ਹੋਵੇ. ਚਾਹੇ ਓਹ ਨਾਨਕਸਰ ਸੰਪਰਦਾ ਹੋਵੇ, ਚਾਹੇ ਸੰਤ ਹਰਨਾਮ ਸਿੰਘ ਜੀ ਭੁਚੋ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਕਾਰ ਸੇਵਾ ਵਾਲੇ ਸੰਤ ਗੁਰਮੁਖ ਸਿੰਘ ਜੀ ਹੋਣ, ਚਾਹੇ ਸੰਤ ਜਵਾਲਾ ਸਿੰਘ ਜੀ ਹਰਖੋਵਾਲ ਵਾਲੇ ਹੋਣ, ਚਾਹੇ ਓਹ ਸੰਤ ਸੁੰਦਰ ਸਿੰਘ ਜੀ ਭਿੰਡਰਾਂਵਾਲੇ ਹੋਣ, ਯਾ ਚਾਹੇ ਓਹ ਉਦਾਸੀਨ ਸੰਪਰਦਾ ਦੀ ਗੱਦੀ ਹੋਵੇ, ਸਬ ਨੂੰ ਬਖਸ਼ਿਸ਼ਾਂ ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਕੋਲੋ ਹੀ ਮਿਲੀਆਂ ਹੈ.
ਬਾਬਾ ਬੀਰਮ ਦਾਸ ਜੀ ਦੀ ਉਮਰ 321 ਸਾਲ ਦੀ ਸੀ ਤੇ ਆਪ ਜੀ ਵਿਸਾਖੀ ਵਾਲੇ ਦਿਨ 13 ਅਪ੍ਰੈਲ 1938 ਨੂੰ ਸਵੇਰੇ 4 ਵਜੇ ਸਰੀਰਕ ਤੌਰ ਤੇ ਸਾਡੇ ਕੋਲੋ ਚਲੇ
== <big>ਹਵਾਲੇ</big> ==
"Baba Biram Das Ji" by Sant Maskeen
"Baba Biram Dass Ji- Jeevan te Rachna" by Giani Sukhjinder Singh
"Baba Biram Das" by Kartar Singh Bajwa
"Baba Biram Dass Ji- Dhan Guru Hargobind Sahib Da Lok" by Gurpreet Singh Pannu
"Baba Bhiram Das" by Giani Gian Singh
"Baba Bhiram Das: Jeevan te Rachna" by Joginder Singh Sahni
"Baba Biram Das" by Jagtar Singh Baniya
"Baba Bhiram Das Ji: A Short Biography" by Kulwant Singh Khokhar
"Baba Bhiram Das Ji: A Great Mystic" by Balwant Singh Rajoana
"Baba Bhiram Das: A Saint of the Sikhs" by Dalip Singh
"Baba Biram Das: A Biographical Study" by Mohinder Kaur Gill
"Baba Biram Das: Guru Ka Gursikh" by Harinder Singh Batala
"Baba Biram Dass Ji De Rachit Sakhi" by Tarsem Singh Kanwal
"Sikh Gurus and Saints" by S.S. Kohli
"Baba Biram Das Ji Di Jeevani" by Karnail Singh Hamza
"Sikh History from Persian Sources" by J.S. Grewal and Irfan Habib
"The Sikh Religion, Its Gurus, Sacred Writings and Authors" by Max Arthur Macauliffe
"Sant Parampara" by Giani Kirpal Singh
"Sant Rattan" by Bhai Randhir Singh
"Sikhan Di Bhagat Mala" by Bhai Vir Singh
"Sri Gur Sobha" by Sainapati
"Baba Biram Das: Life, Teachings and Legacy" by Harjeet Singh Gill
"Baba Biram Das: The Immortal Saint" by Prem Sumarg
"Baba Biram Das: The Saint of the Sikhs" by Nirmal Singh
"Baba Biram Das: The Wandering Saint" by Chanchal Bharti
"Baba Biram Das: A Saint of the Sikhs" by Gurpreet Singh
"Baba Biram Das: The Spiritual Journey of a Great Saint" by G.S. Sandhu
"Baba Biram Das: The Eternal Saint of the Sikhs" by Raj Kumar Hans
Baba Biram Das: A Living Legend" by Preeti Kaur
"Baba Biram Das: The Miracle Man of Punjab" by Rakesh Khanna
"Baba Biram Das: The Enlightened One" by Jaspal Singh
"Sri Baba Biram Dass Ji" by Bhajan Singh Bhinder
"Baba Biram Das - The Mystic Saint of Punjab" by Jodh Singh
"Baba Biram Das Ji and His Teachings" by Gurmeet Singh Gill
"Baba Biram Das Ji - Saint of the Ages" by Sant Mohan Singh Bindranwale
Baba Biram Das Ji - A Spiritual Biography by Gurmeet Singh
Baba Biram Das Ji by Harjinder Singh
Life of Baba Biram Das by Piara Singh Padam
Baba Biram Das Ji De Janam Diwas Te Gurmat Smagam by Sarwan Singh Attar
Baba Biram Das Ji by Harpreet Singh
Baba Biram Das Ji: Jeevan Te Shiksha by Rajinder Singh Duggal
Baba Biram Das Ji: A Biography by Narinderpal Singh
Baba Biram Das Ji: A Religious Biography by Gurvinder Singh
Baba Biram Das Ji: Jeevan Te Rachna by Balwinder Singh
Baba Biram Das Ji: Jeevan, Shabad, Kirtan by Kultar Singh
"Baba Biram Das: The Saint of Badhuchhi" by Sarita Rana, published by Sterling Publishers Pvt. Ltd.
"Baba Biram Das: A Saintly Life" by Surinder Singh Johar, published by Singh Brothers
Baba Biram Das: His Life and Teachings" by Harish Dhillon, published by Rupa Publications India.
"Baba Biram Das: A Great Saint" by Bhagat Singh Sandhu, published by Diamond Pocket Books Pvt Ltd.
"Baba Biram Das: The Saint of Badhuch" by Rajinder Singh Bedi, published by B.R. Publishing Corporation.
"Baba Biram Das: Life and Teachings" by Swami Shivom Tirth, published by Arktos Media Ltd.
"Guru Har Rai and the Bir Ras" by Giani Gian Singh
Rattan Singh Jaggi, "Baba Biram Das", Encyclopaedia of Sikhism, Vol. 1, Punjabi University, Patiala, 1995, pp. 253-254
"The Sikh Gurus" by Gurbachan Singh Talib
"Gur Bilas Patshahi 9" by Sainapati
Surindar Singh Kohli, "Baba Biram Das", History of Sikh Religion, Vol. 2, Publication Bureau, Punjabi University, Patiala, 1989, pp. 186-187
"Sikh History and Religion in the Twentieth Century" by Joseph T. O'Connell
"The Sikhs: Their Religious Beliefs and Practices" by W.H. McLeod
"Guru Hargobind Sahib" by Dr. Harjinder Singh Dilgeer
"Sri Gur Pratap Suraj Granth" by Bhai Santokh Singh
ft67ttv0ws3jgxg42wy6wg8ub44ctfk
ਬਰਾਬਰ ਚਿੰਨ੍ਹ (ਗਣਿਤ)
0
184946
850701
748094
2026-10-27T17:47:25Z
Amherst99
2075
/* */
850701
wikitext
text/x-wiki
[[File:2+2.svg|right|thumb|200x200px|ਬਰਾਬਰ ਚਿੰਨ੍ਹ ਦੀ ਵਿਸ਼ੇਸ਼ਤਾ ਵਾਲੀ ਇੱਕ ਪ੍ਰਸਿੱਧ ਸਮਾਨਤਾ]]
'''ਬਰਾਬਰ ਨਿਸ਼ਾਨ''' (ਅੰਗਰੇਜ਼ੀਃ equals sign) ਜਾਂ ਬਰਾਬਰ ਨਿਸ਼ਾਨ ([[ਅਮਰੀਕੀ ਅੰਗਰੇਜ਼ੀ]] = =) ਗਣਿਤ ਦਾ ਪ੍ਰਤੀਕ ਹੈ, ਜੋ ਕਿਸੇ ਚੰਗੀ ਤਰ੍ਹਾਂ ਪਰਿਭਾਸ਼ਿਤ ਅਰਥਾਂ ਵਿੱਚ ਸਮਾਨਤਾ ਨੂੰ ਦਰਸਾਉਣ ਲਈ ਵਰਤਿਆ ਜਾਂਦਾ ਹੈ।<ref>{{Cite web |last=Weisstein |first=Eric W. |title=Equal |url=https://mathworld.wolfram.com/Equal.html |url-status=live |archive-url=https://web.archive.org/web/20200914232729/https://mathworld.wolfram.com/Equal.html |archive-date=2020-09-14 |access-date=2020-08-09 |website=mathworld.wolfram.com |language=en}}</ref> ਕਿਸੇ [[ਸਮੀਕਰਨ]] ਵਿੱਚ, ਇਸ ਨੂੰ ਦੋ [[ਇਬਾਰਤ (ਗਣਿਤ)|ਸਮੀਕਰਨ]] ਦੇ ਵਿਚਕਾਰ ਰੱਖਿਆ ਜਾਂਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦਾ ਇੱਕੋ ਮੁੱਲ ਹੁੰਦਾ ਹੈ, ਜਾਂ ਜਿਸ ਲਈ ਕੋਈ ਉਹਨਾਂ ਹਾਲਤਾਂ ਦਾ ਅਧਿਐਨ ਕਰਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦੇ ਤਹਿਤ ਉਹਨਾਂ ਦਾ ਇੱਕ ਹੀ ਮੁੱਲ ਹੈ। ਜਦੋਂ ਗਣਿਤ ਵਿਗਿਆਨੀ ਰਾਬਰਟ ਰਿਕਾਰਡੇ ਬਰਾਬਰ ਬਰਾਬਰ ਲਿਖਦਾ ਅੱਕ ਅਤੇ ਥੱਕ ਗਿਆ ਤਾਂ ਉਸਨੇ ਪਹਿਲੀ ਵਾਰ ਬਰਾਬਰ ਦੇ ਚਿੰਨ੍ਹ ਦੀ ਵਰਤੋਂ ਕੀਤੀ।
[[ਯੂਨੀਕੋਡ]] ਅਤੇ ASCII ਵਿੱਚ, ਇਸਦਾ ਕੋਡ ਪੁਆਇੰਟ U +03D ਹੈ।<ref>{{Cite web |title=C0 Controls and Basic Latin Range: 0000–007F |url=https://www.unicode.org/charts/PDF/U0000.pdf |url-status=live |archive-url=https://web.archive.org/web/20160526182105/http://www.unicode.org/charts/PDF/U0000.pdf |archive-date=2016-05-26 |access-date=2021-03-29 |publisher=Unicode Consortium |page=0025{{snd}}0041}}</ref> ਇਸ ਦੀ ਖੋਜ 1557 ਵਿੱਚ ਰਾਬਰਟ ਰਿਕਾਰਡ ਦੁਆਰਾ ਕੀਤੀ ਗਈ ਸੀ।
==ਹਵਾਲੇ==
{{ਹਵਾਲੇ}}
[[ਸ਼੍ਰੇਣੀ:ਹਿਸਾਬ]]
[[ਸ਼੍ਰੇਣੀ:ਗਣਿਤ ਵਿਗਿਆਨ]]
ej3cosyhgiz7hy8miepus73a0gedgdq
ਮੌਡਿਊਲ:Params
828
195378
850703
849749
2026-10-27T22:21:45Z
Grufo
47592
Update from [[d:Special:GoToLinkedPage/mediawikiwiki/Q122696746|master]] using [[mw:Synchronizer| #Synchronizer]]
850703
Scribunto
text/plain
require[[strict]]
--- ---
--- PRIVATE ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Abstract utilities ]]--
----------------------------
-- Helper function for `string.gsub()` (for managing zero-padded numbers)
local function zero_padded (str)
return ('%03d%s'):format(#str, str)
end
-- Helper function for `table.sort()` (for natural sorting)
local function natural_sort (var1, var2)
return var1:gsub('%d+', zero_padded) < var2:gsub('%d+', zero_padded)
end
-- Return a copy or a reference to a table
local function copy_or_ref_table (src, refonly)
if refonly then return src end
local newtab = {}
for key, val in pairs(src) do newtab[key] = val end
return newtab
end
-- Copy at most N items (of all kinds) from `src` to `dest` and return `dest`
local function copy_table_maxn (dest, src, len)
local idx = 1
for key, val in pairs(src) do
dest[key], idx = val, idx + 1
if idx > len then break end
end
return dest
end
-- Remove some numeric elements from a table, shifting everything to the left
local function remove_numeric_keys (tbl, idx, len)
local cache, tmp = {}, idx + len - 1
for key, val in pairs(tbl) do
if type(key) == 'number' and key >= idx then
if key > tmp then cache[key - len] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
-- Make a reduced copy of a table (shifting in both directions if necessary)
local function copy_table_reduced (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
elseif key > tmp then ret[key - len] = val end
end
elseif tmp > 0 then
local nshift = 1 - idx
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > tmp then ret[key - tmp] = val
elseif key < idx then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
elseif key < idx then ret[key + len] = val end
end
end
return ret
end
-- Make an expanded copy of a table (shifting in both directions if necessary)
local function copy_table_expanded (tbl, idx, len)
local ret, tmp = {}, idx + len - 1
if idx > 0 then
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key < idx then
ret[key] = val
else ret[key + len] = val end
end
elseif tmp > 0 then
local nshift = idx - 1
for key, val in pairs(tbl) do
if type(key) ~= 'number' then ret[key] = val
elseif key > 0 then ret[key + tmp] = val
elseif key < 1 then ret[key + nshift] = val end
end
else
for key, val in pairs(tbl) do
if type(key) ~= 'number' or key > tmp then
ret[key] = val
else ret[key - len] = val end
end
end
return ret
end
-- Given a table, create two new tables containing the sorted list of keys
local function get_sorted_key_list (tbl, sort_fn)
local nums, words, nn, nw = {}, {}, 1, 1
for key, val in pairs(tbl) do
if type(key) == 'number' then nums[nn], nn = key, nn + 1
else words[nw], nw = key, nw + 1 end
end
table.sort(nums)
table.sort(words, sort_fn)
return nums, words, nn - 1, nw - 1
end
-- Parse a parameter name string and return it as a string or a number
local function get_param_name (par_str)
local ret = par_str:match'^%s*(.-)%s*$'
if ret ~= '0' and ret:find'^%-?[1-9]%d*$' == nil then return ret end
return tonumber(ret)
end
-- Move a key from a table to another, but only if under a different name and
-- always parsing numeric strings as numbers
local function steal_if_renamed (val, src, skey, dest, dkey)
local realkey = get_param_name(dkey)
if skey ~= realkey then dest[realkey], src[skey] = val, nil end
end
--[[ Public strings ]]--
------------------------
-- Special match keywords (functions and modifiers MUST avoid these names)
local mkeywords = {
['or'] = 0,
pattern = 1,
plain = 2,
strict = 3
}
-- Sort functions (functions and modifiers MUST avoid these names)
local sortfunctions = {
alphabetically = false,
naturally = natural_sort
}
-- Callback styles for the `mapping_*` and `renaming_*` class of modifiers
-- (functions and modifiers MUST avoid these names)
--[[
Meanings of the columns:
col[1] = Loop type (0-3)
col[2] = Number of module arguments that the style requires (1-3)
col[3] = Minimum number of sequential parameters passed to the callback
col[4] = Name of the callback parameter where to place each parameter name
col[5] = Name of the callback parameter where to place each parameter value
col[6] = Argument in the modifier's invocation that will override `col[4]`
col[7] = Argument in the modifier's invocation that will override `col[5]`
A value of `-1` indicates that no meaningful value is stored (i.e. `nil`)
]]--
local mapping_styles = {
names_and_values = { 3, 2, 2, 1, 2, -1, -1 },
values_and_names = { 3, 2, 2, 2, 1, -1, -1 },
values_only = { 1, 2, 1, -1, 1, -1, -1 },
names_only = { 2, 2, 1, 1, -1, -1, -1 },
names_and_values_as = { 3, 4, 0, -1, -1, 2, 3 },
names_only_as = { 2, 3, 0, -1, -1, 2, -1 },
values_only_as = { 1, 3, 0, -1, -1, -1, 2 },
blindly = { 0, 2, 0, -1, -1, -1, -1 }
}
-- Memory slots (functions and modifiers MUST avoid these names)
local memoryslots = {
h = 'header',
f = 'footer',
i = 'itersep',
l = 'lastsep',
n = 'ifngiven',
p = 'pairsep',
s = 'oxfordsep'
}
-- Possible trimming modes for the `parsing` modifier
local trim_parse_opts = {
trim_none = { false, false },
trim_positional = { false, true },
trim_named = { true, false },
trim_all = { true, true }
}
-- Possible string modes for the iteration separator in the `parsing` and
-- `reinterpreting` modifiers
local isep_parse_opts = {
splitter_pattern = false,
splitter_string = true
}
-- Possible string modes for the key-value separator in the `parsing` and
-- `reinterpreting` modifiers
local psep_parse_opts = {
setter_pattern = false,
setter_string = true
}
-- Possible position references for the `splicing` modifier
local position_references = {
add_nothing = 0,
add_smallest_number = 1,
add_last_of_sequence = 2,
add_largest_number = 3
}
-- Possible modes for the `reassigning` modifier
local a_modes = {
transfer = 0,
clone = 1,
rename = 2,
copy = 3,
sacrifice = 4,
provide = 5,
spare = 7
}
-- Functions and modifiers MUST avoid these names too: `here`, `in_substack`,
-- `let`, `expose`, `use`, `with_flushed_glue`, `without_flushed_glue`
-- `without_sorting`
--[[ Private constants ]]--
---------------------------
-- Hard-coded name of the module (to avoid going through `frame:getTitle()`)
local modulename = 'Module:Params'
-- The functions listed here declare that they don't need the
-- `frame:getParent().args` metatable to be copied into a regular table; if
-- they are modifiers they also guarantee that they will make their own
-- (modified) copy available
local refparams = {
call_for_each_group = true,
combining = true,
combining_by_calling = true,
combining_values = true,
concat_and_call = true,
concat_and_invoke = true,
concat_and_magic = true,
count = true,
grouping_by_calling = true,
mixing_names_and_values = true,
keeping_at_most = true,
renaming_by_mixing = true,
renaming_to_sequence = true,
renaming_to_uppercase = true,
renaming_to_lowercase = true,
shifting = true,
splicing = true,
value_of = true,
with_name_matching = true
}
-- Maximum number of numeric parameters that can be filled, if missing (we
-- chose an arbitrary number for this constant; you can discuss about its
-- optimal value at Module talk:Params)
local maxfill = 1024
-- The private table of functions
local library = {}
-- Functions and modifiers that can only be invoked in first position
local static_iface = {}
--[[ Private functions ]]--
---------------------------
-- Create a new context
local function context_new (child_frame, first_fn_name)
local main_frame, tpipe = child_frame:getParent(), { first_fn_name }
for key, val in pairs(child_frame.args) do
if type(key) == 'number' and key > 0 then tpipe[key + 1] = val
else tpipe[key] = val end
end
return {
frame = main_frame,
pipe = tpipe,
oparams = main_frame.args,
firstposonly = static_iface,
iterfunc = pairs,
fnpos = 1,
sorttype = 0,
n_parents = 0,
n_children = 0,
n_available = maxfill
}
end
-- Move to the next action within the user-given list
local function context_iterate (ctx, next_fn_pos, trimmed_fname)
local fname = trimmed_fname or ctx.pipe[next_fn_pos] and
ctx.pipe[next_fn_pos]:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
': You must specify a function to call', 0) end
if library[fname] == nil then
if ctx.firstposonly[fname] == nil then error(modulename ..
': The function ‘' .. fname .. '’ does not exist', 0)
else error(modulename .. ': The ‘' .. fname ..
'’ directive can only appear in first position', 0)
end
end
ctx.fnpos = next_fn_pos
return library[fname]
end
-- Main loop
local function main_loop (ctx, start_with)
local fn = start_with
repeat fn = fn(ctx) until not fn
if ctx.n_parents > 0 then error(modulename ..
': One or more ‘merging_substack’ directives are missing', 0) end
if ctx.n_children > 0 then error(modulename ..
', For some of the snapshots either the ‘flushing’ directive is missing or a group has not been properly closed with ‘merging_substack’', 0) end
end
-- Load a `setting`-like directive string into the `dest` table
local function set_strings_from_opts (dest, opts, offs)
local cmd
if opts[offs] == nil then return offs - 1 end
cmd = opts[offs]:gsub('%s+', ''):gsub('/+', '/'):match'^/*(.*[^/])'
if cmd == nil then return offs end
local vname, chr
local amap, sep, argc = {}, string.byte('/'), offs + 1
for idx = 1, #cmd do
chr = cmd:byte(idx)
if chr == sep then
for key, val in ipairs(amap) do
dest[val], amap[key] = opts[argc], nil
end
argc = argc + 1
else
vname = memoryslots[string.char(chr)]
if vname == nil then error(modulename ..
', ‘setting’: Unknown slot ‘' .. string.char(chr) .. '’', 0) end
table.insert(amap, vname)
end
end
for key, val in ipairs(amap) do dest[val] = opts[argc] end
return argc
end
-- Add a new stack of parameters to `ctx.children`
local function new_substack (ctx)
local currsnap, newparams = ctx.n_children + 1, {}
if ctx.children == nil then ctx.children = { newparams }
else ctx.children[currsnap] = newparams end
ctx.n_children = currsnap
return newparams
end
-- Parse a raw argument containing a `sortfunctions` directive, or
-- `'without_sorting'`, or `nil`
local function load_sort_opt (raw_arg)
local trarg
if raw_arg ~= nil then trarg = raw_arg:match'^%s*(.*%S)' end
if trarg == nil then return nil, 1, false, nil end
if trarg == 'without_sorting' then return nil, 2, false, nil end
local tmp = sortfunctions[trarg]
if tmp == nil then return nil, 1, false, trarg end
return tmp or nil, 2, true, nil
end
-- Parse optional user arguments of type `...|[let/use]|[...]|[let/use]|[...]|
-- [number of additional parameters]|[parameter 1]|[parameter 2]|[...]`
local function load_child_opts (src, start_from, append_after, params)
local tnamed, tmp1, tmp2
local pin, tbl, mem = start_from, {}, {}
while src[pin] ~= nil and src[pin + 1] ~= nil do
tmp1 = src[pin]:match'^%s*(.*%S)'
if tmp1 == 'let' and src[pin + 2] ~= nil then
tmp1 = get_param_name(src[pin + 1])
tbl[tmp1], pin = src[pin + 2], pin + 3
--[[
elseif tmp1 == 'expose' then
tmp1 = get_param_name(src[pin + 1])
tmp2 = params[tmp1]
mem[tmp1], tbl[tmp1], pin = tmp2, tmp2, pin + 2
]]--
elseif tmp1 == 'use' and src[pin + 2] ~= nil then
tmp1 = get_param_name(src[pin + 2])
tmp2 = params[tmp1]
mem[tmp1], tbl[get_param_name(src[pin + 1])], pin =
tmp2, tmp2, pin + 3
else break end
end
local tnew = copy_or_ref_table(params, next(mem) == nil)
for key in pairs(mem) do tnew[key] = nil end
if pin ~= start_from then tnamed, tbl = tbl, {} end
tmp1 = tonumber(src[pin])
if tmp1 ~= nil and math.floor(tmp1) == tmp1 then
if tmp1 < 0 then tmp1 = -1 end
tmp2 = append_after - pin
for idx = pin + 1, pin + tmp1 do tbl[idx + tmp2] = src[idx] end
pin = pin + tmp1 + 1
end
if tnamed ~= nil then
for key, val in pairs(tnamed) do tbl[key] = val end
end
return tbl, pin, tnew, mem
end
-- Load the optional arguments of some of the `mapping_*` and `renaming_*`
-- class of modifiers
local function load_callback_opts (src, start_from, default_style, params)
local style, shf
local tmp = src[start_from + 1]
if tmp ~= nil then style = mapping_styles[tmp:match'^%s*(.-)%s*$'] end
if style == nil then style, shf = default_style, start_from - 1
else shf = start_from end
local n_exist, karg, varg = style[3], style[4], style[5]
tmp = style[6]
if tmp > -1 then
karg = src[tmp + shf]:match'^%s*(.-)%s*$'
if karg == '0' or karg:find'^%-?[1-9]%d*$' ~= nil then
karg = tonumber(karg)
n_exist = math.max(n_exist, karg)
end
end
tmp = style[7]
if tmp > -1 then
varg = src[tmp + shf]:match'^%s*(.-)%s*$'
if varg == '0' or varg:find'^%-?[1-9]%d*$' ~= nil then
varg = tonumber(varg)
n_exist = math.max(n_exist, varg)
end
end
tmp = style[1]
local dest, argc, tnew, mem = load_child_opts(src, style[2] + shf,
n_exist, params)
if (tmp == 3 or tmp == 2) and dest[karg] ~= nil then
tmp = tmp - 2 end
if (tmp == 3 or tmp == 1) and dest[varg] ~= nil then
tmp = tmp - 1 end
return dest, argc, tmp, karg, varg, tnew, mem
end
-- Parse the arguments of some of the `mapping_*` and `renaming_*` class of
-- modifiers
local function load_replace_args (opts, offs, whoami)
if opts[offs + 1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No pattern string was given', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘' .. whoami .. '’: No replacement string was given', 0) end
local tn, flg
local ptn, repl, nmax, argc =
opts[offs + 1], opts[offs + 2], tonumber(opts[offs + 3]), 3
if nmax ~= nil then argc = 4
elseif opts[offs + 3] ~= nil then
tn = opts[offs + 3]:match'^%s*(.*%S)'
if tn == nil then argc = 4 end
end
if tn == nil and opts[offs + argc] ~= nil then
tn = opts[offs + argc]:match'^%s*(.*%S)'
end
if tn ~= nil then
flg = mkeywords[tn]
if flg ~= nil then tn = nil end
end
if flg == 0 then flg = nil elseif flg ~= nil then argc = argc + 1 end
return ptn, repl, nmax, flg, offs + argc, (nmax ~= nil and nmax < 1) or
(flg == 3 and ptn == repl), tn
end
-- Parse the arguments of the `with_*_matching` class of modifiers
local function load_pattern_args (opts, offs, whoami)
local tn, kwid
local ptns, arg, state, nptns, idx = {}, opts[offs + 1], 0, 0, offs + 2
while arg ~= nil do
if state == 0 then
nptns, state = nptns + 1, -1
ptns[nptns] = { arg, false, false }
else
tn = arg:match'^%s*(.*%S)'
kwid = tn and mkeywords[tn]
if kwid == nil or (state > 0 and kwid > 0) then break
else
state = kwid
if state > 1 then ptns[nptns][2] = true end
if state == 3 then ptns[nptns][3] = true end
end
end
arg, idx = opts[idx], idx + 1
end
if state == 0 then error(modulename ..
', ‘' .. whoami .. '’: No pattern was given', 0) end
return ptns, nptns, idx - 1, kwid == nil and tn or nil
end
-- Load the optional arguments of the `parsing`, `reinterpreting` and
-- `evaluating` modifiers
local function load_parse_opts (opts, offs, isp, psp)
local tn, tmp
local optslots, noptslots, argc, trimn, trimu, iplain, pplain =
{ true, true, true }, 3, offs, true, false, true, true
repeat
noptslots, tmp = noptslots - 1, opts[argc]
tn = tmp and tmp:match'^%s*(.*%S)'
if tn == nil then break end
if optslots[1] ~= nil and trim_parse_opts[tn] ~= nil then
tmp = trim_parse_opts[tn]
trimn, trimu, optslots[1] = tmp[1], tmp[2], nil
elseif optslots[2] ~= nil and isep_parse_opts[tn] ~= nil then
argc = argc + 1
iplain, isp, optslots[2] = isep_parse_opts[tn],
opts[argc], nil
elseif optslots[3] ~= nil and psep_parse_opts[tn] ~= nil then
argc = argc + 1
pplain, psp, optslots[3] = psep_parse_opts[tn],
opts[argc], nil
else break end
argc, tn = argc + 1, nil
until noptslots < 1
return isp, iplain, psp, pplain, trimn, trimu, argc, tn
end
-- Map parameters' values using a custom callback and a referenced table
local value_maps = {
[0] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do tbl[key] = fn() end
end,
[1] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[varg] = val
tbl[key] = fn()
end
end,
[2] = function (tbl, margs, karg, varg, fn)
for key in pairs(tbl) do
margs[karg] = key
tbl[key] = fn()
end
end,
[3] = function (tbl, margs, karg, varg, fn)
for key, val in pairs(tbl) do
margs[karg], margs[varg] = key, val
tbl[key] = fn()
end
end
}
-- Private table for `map_names()`
local name_thieves = {
[0] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[1] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[varg] = val
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[2] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg] = key
steal_if_renamed(val, tbl, key, cache, fn())
end
end,
[3] = function (cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(tbl) do
rargs[karg], rargs[varg] = key, val
steal_if_renamed(val, tbl, key, cache, fn())
end
end
}
-- Map parameters' names using a custom callback and a referenced table
local function map_names (tbl, rargs, karg, varg, looptype, fn)
local cache = {}
name_thieves[looptype](cache, tbl, rargs, karg, varg, fn)
for key, val in pairs(cache) do tbl[key] = val end
end
-- Return a new table that contains `src` regrouped according to the numeric
-- suffixes in its keys
local function make_groups (src)
-- NOTE: `src` might be the original metatable!
local prefix, gid
local groups = {}
for key, val in pairs(src) do
-- `key` must only be a string or a number...
if type(key) == 'string' then
prefix, gid = key:match'^%s*(.-)%s*(%-?%d*)%s*$'
gid = tonumber(gid) or ''
else prefix, gid = '', key end
if groups[gid] == nil then groups[gid] = {} end
if prefix == '0' or prefix:find'^%-?[1-9]%d*$' ~= nil then
prefix = tonumber(prefix)
if prefix < 1 then prefix = prefix - 1 end
end
groups[gid][prefix] = val
end
return groups
end
-- Split into parts a string containing the `$#` and `$@` placeholders and
-- return the information as a skeleton table, a canvas table and a length
local function parse_placeholder_string (target)
local skel, canvas, idx, s_pos, e_pos =
{}, {}, 1, 1, string.find(target, '%$[@#]', 1, false)
while e_pos ~= nil do
canvas[idx], skel[idx + 1] =
target:sub(s_pos, e_pos - 1),
target:sub(e_pos, e_pos + 1) == '$@'
idx, s_pos = idx + 2, e_pos + 2
e_pos = string.find(target, '%$[@#]', s_pos, false)
end
if (s_pos > target:len()) then idx = idx - 1
else canvas[idx] = target:sub(s_pos) end
return skel, canvas, idx
end
-- Populate a table by parsing a parameter string (heavy lifting for `parsing`,
-- `reinterpreting` and `evaluating`)
local function parse_parameter_string (tbl, str, isp, ipl, psp, ppl, trn, tru)
local key, val, spos1, spos2, pos1, pos2
local pos3, idx, lenplone = 0, 1, #str + 1
if isp == nil or isp == '' then
if psp == nil or psp == '' then
if tru then tbl[idx] = str:match'^%s*(.-)%s*$'
else tbl[idx] = str end
return
end
spos1, spos2 = str:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = str:match'^%s*(.-)%s*$'
else val = str end
else
key = get_param_name(str:sub(1, spos1 - 1))
val = str:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
return
end
if psp == nil or psp == '' then
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
if tru then val = val:match'^%s*(.-)%s*$' end
tbl[idx], idx = val, idx + 1
until pos2 == nil
return
end
repeat
pos1 = pos3 + 1
pos2, pos3 = str:find(isp, pos1, ipl)
val = str:sub(pos1, (pos2 or lenplone) - 1)
spos1, spos2 = val:find(psp, 1, ppl)
if spos1 == nil then
key = idx
if tru then val = val:match'^%s*(.-)%s*$' end
idx = idx + 1
else
key = get_param_name(val:sub(1, spos1 - 1))
val = val:sub(spos2 + 1)
if trn then val = val:match'^%s*(.-)%s*$' end
end
tbl[key] = val
until pos2 == nil
return
end
-- Heavy lifting for `snapshotting` and `remembering`
local function make_child (ctx, src, whoami)
local len = tonumber(ctx.pipe[ctx.fnpos + 1])
if len == nil or len == 0 then
local stack = new_substack(ctx)
for key, val in pairs(src) do stack[key] = val end
return len == nil and 1 or 2
end
if len < 0 or math.floor(len) ~= len then error(modulename .. ', ‘' ..
whoami .. '’: The number of parameters to copy must be an integer greater than zero', 0) end
copy_table_maxn(new_substack(ctx), src, len)
return 2
end
-- Heavy lifting for `setting_by_flushing`, `combining` and `combining_values`
local function set_strings_from_substack (ctx, dest, whoami)
if ctx.n_children < 1 then error(modulename ..
', ‘' .. whoami .. '’: There are no substacks to flush', 0) end
local currsnap = ctx.n_children
local stack = ctx.children[currsnap]
for key, val in pairs(memoryslots) do
if stack[key] ~= nil then dest[val] = stack[key] end
end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
end
-- Heavy lifting for `combining` and `combining_values`
local function combine_parameters (ctx, keyval_fn, whoami)
-- NOTE: `ctx.params` might be the original metatable! This function
-- MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘' .. whoami .. '’: No parameter name was provided', 0) end
local argc
local tbl, vars = ctx.params, {}
local sortfn, ivar0, dosort, tmp = load_sort_opt(opts[offs + 2])
if ivar0 == 2 then
tmp = opts[offs + 3] ~= nil and opts[offs + 3]:match'^%s*(.*%S)'
end
ivar0 = ivar0 + offs
if tmp == 'with_flushed_glue' then
ivar0 = ivar0 + 1
argc = set_strings_from_opts(vars, opts, ivar0 + 1)
set_strings_from_substack(ctx, vars, whoami)
else
if tmp == 'without_flushed_glue' then ivar0 = ivar0 + 1 end
argc = set_strings_from_opts(vars, opts, ivar0 + 1)
end
if argc < ivar0 then error(modulename ..
', ‘' .. whoami .. '’: No setting directive was given', 0) end
if next(tbl) == nil then
if vars.ifngiven ~= nil then ctx.params =
{ [get_param_name(opts[offs + 1])] = vars.ifngiven }
elseif tbl == ctx.oparams then ctx.params = {} end
return argc + 1
end
local cache, len
if dosort then
local words
cache, words, len, tmp = get_sorted_key_list(tbl, sortfn)
for idx = 1, tmp do cache[len + idx] = words[idx] end
len = len + tmp
else
cache, len = {}, 1
for key in pairs(tbl) do cache[len], len = key, len + 1 end
len = len - 1
end
local pmap, nss, kvs, pps =
{}, 0, vars.pairsep or '', vars.itersep or ''
for idx = 1, len do
tmp, pmap[nss + 1] = cache[idx], pps
pmap[nss + 2] = keyval_fn(tmp, tbl[tmp], kvs)
nss = nss + 2
end
tmp = vars.oxfordsep or vars.lastsep
if tmp ~= nil and nss > 4 then pmap[nss - 1] = tmp
elseif nss > 2 and vars.lastsep ~= nil then
pmap[nss - 1] = vars.lastsep
end
pmap[1] = vars.header or ''
if vars.footer ~= nil then pmap[nss + 1] = vars.footer end
ctx.params = { [get_param_name(opts[offs + 1])] = table.concat(pmap) }
return argc + 1
end
-- Concatenate the numeric keys from the table of parameters to the numeric
-- keys from the table of options; non-numeric keys from the table of options
-- will prevail over colliding non-numeric keys from the table of parameters
local function concat_params (ctx, offs)
local tbl, retval, cache, nmax = ctx.params, {}, {}, 0
for key, val in pairs(ctx.pipe) do
if type(key) == 'number' then
if key < 1 then cache[key] = val
elseif key > offs then cache[key - offs] = val end
if key > nmax then nmax = key end
else cache[key] = val end
end
nmax = nmax - offs
if ctx.subset == 1 then
-- We need only the sequence
for key, val in ipairs(tbl) do retval[key + nmax] = val end
else
if ctx.subset == -1 then
for key in ipairs(tbl) do tbl[key] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
retval[key + nmax] = val
else retval[key] = val end
end
end
for key, val in pairs(cache) do retval[key] = val end
return retval
end
-- Flush the parameters by calling a custom function for each value (after this
-- function has been invoked `ctx.params` will be no longer usable)
local function flush_params (ctx, fn)
local tmp
local tbl = ctx.params
if ctx.subset == -1 then
for key, val in ipairs(tbl) do tbl[key] = nil end
elseif ctx.subset == 1 then
if ctx.pins == nil then
for key, val in ipairs(tbl) do fn(key, val) end
return
end
tmp = {}
for key, val in ipairs(tbl) do tmp[key] = val end
tbl = tmp
end
if ctx.pins ~= nil then
local marker = ctx.sorttype < 1 and ctx.subset ~= -1 or nil
for idx = 1, #ctx.pins do
tmp = ctx.pins[idx]
if tbl[tmp] ~= nil then
fn(tmp, tbl[tmp])
tbl[tmp] = marker
end
end
if ctx.subset == 1 then
for key, val in ipairs(tbl) do
if val ~= true then fn(key, val) end
end
return
end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw =
get_sorted_key_list(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
return
end
for idx = 1, nn do fn(nums[idx], tbl[nums[idx]]) end
for idx = 1, nw do fn(words[idx], tbl[words[idx]]) end
return
end
if ctx.subset == -1 or ctx.pins == nil then
for key, val in ipairs(tbl) do
fn(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn(key, val) end
return
end
for key, val in ipairs(tbl) do
if val ~= true then fn(key, val) end
tbl[key] = nil
end
for key, val in pairs(tbl) do
if val ~= true then fn(key, val) end
end
end
-- Flush the parameters by calling one of two custom functions for each value
-- (after this function has been invoked `ctx.params` will be no longer usable)
local function mixed_flush_params (ctx, fn_seq, fn_oth)
if ctx.subset == 1 then
flush_params(ctx, fn_seq)
return
end
if ctx.subset == -1 then
flush_params(ctx, fn_oth)
return
end
local tbl = ctx.params
if ctx.pins == nil and ctx.sorttype < 1 then
for key, val in ipairs(tbl) do
fn_seq(key, val)
tbl[key] = nil
end
for key, val in pairs(tbl) do fn_oth(key, val) end
return
end
local tseq = {}
for key, val in ipairs(tbl) do tseq[key] = val end
if ctx.pins ~= nil then
local tmp
local marker = ctx.sorttype < 1 or nil
for idx = 1, #ctx.pins do
tmp = ctx.pins[idx]
if tseq[tmp] ~= nil then
fn_seq(tmp, tbl[tmp])
tbl[tmp], tseq[tmp] = nil, marker
elseif tbl[tmp] ~= nil then
fn_oth(tmp, tbl[tmp])
tbl[tmp] = nil
end
end
end
if ctx.sorttype > 0 then
local nums, words, nn, nw =
get_sorted_key_list(tbl, natural_sort)
if ctx.sorttype == 2 then
for idx = 1, nw do
fn_oth(words[idx], tbl[words[idx]])
end
end
for idx = 1, nn do
if tseq[nums[idx]] ~= nil then
fn_seq(nums[idx], tseq[nums[idx]])
else fn_oth(nums[idx], tbl[nums[idx]]) end
end
if ctx.sorttype ~= 2 then
for idx = 1, nw do
fn_oth(words[idx], tbl[words[idx]])
end
end
return
end
for key, val in ipairs(tseq) do
if val ~= true then
fn_seq(key, val)
tbl[key] = nil
end
end
for key, val in pairs(tbl) do fn_oth(key, val) end
end
-- Finalize and return a concatenated list
local function finalize_and_return_concatenated_list (ctx, lst, len, modsize)
if len > 0 then
local tmp = ctx.oxfordsep or ctx.lastsep
if tmp ~= nil and len > modsize * 2 then
lst[len - modsize + 1] = tmp
elseif len > modsize and ctx.lastsep ~= nil then
lst[len - modsize + 1] = ctx.lastsep
end
lst[1] = ctx.header or ''
if ctx.footer ~= nil then lst[len + 1] = ctx.footer end
ctx.text = table.concat(lst)
else ctx.text = ctx.ifngiven or '' end
end
--- ---
--- PUBLIC ENVIRONMENT ---
--- ________________________________ ---
--- ---
--[[ Modifiers ]]--
-------------------
-- Syntax: #invoke:params|sequential|pipe to
library.sequential = function (ctx)
if ctx.subset == 1 then error(modulename ..
': The ‘sequential’ directive has been provided more than once', 0) end
if ctx.subset == -1 then error(modulename ..
': The two directives ‘non-sequential’ and ‘sequential’ are in contradiction with each other', 0) end
if ctx.sorttype > 0 then error(modulename ..
': The ‘all_sorted’ and ‘reassorted’ directives are redundant when followed by ‘sequential’', 0) end
ctx.iterfunc, ctx.subset = ipairs, 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|non-sequential|pipe to
library['non-sequential'] = function (ctx)
if ctx.subset == -1 then error(modulename ..
': The ‘non-sequential’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘non-sequential’ are in contradiction with each other', 0) end
ctx.iterfunc, ctx.subset = pairs, -1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|all_sorted|pipe to
library.all_sorted = function (ctx)
if ctx.sorttype == 1 then error(modulename ..
': The ‘all_sorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘all_sorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 2 then error(modulename ..
': The two directives ‘reassorted’ and ‘sequential’ are in contradiction with each other', 0) end
ctx.sorttype = 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|reassorted|pipe to
library.reassorted = function (ctx)
if ctx.sorttype == 2 then error(modulename ..
': The ‘reassorted’ directive has been provided more than once', 0) end
if ctx.subset == 1 then error(modulename ..
': The ‘reassorted’ directive is redundant after ‘sequential’', 0) end
if ctx.sorttype == 1 then error(modulename ..
': The two directives ‘sequential’ and ‘reassorted’ are in contradiction with each other', 0) end
ctx.sorttype = 2
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|pinned_until|sentinel|[parameter name 1]|[parameter
-- name 2]|...|parameter name N|sentinel|pipe to
library.pinned_until = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘pinned_until’: No sentinel was provided', 0) end
local tmp, bucket, curr, ncurr
local sntl, idx = opts[offs + 1]:match'^%s*(.-)%s*$', 2
if ctx.pin_bucket == nil then
bucket, curr, ncurr = {}, {}, 0
ctx.pin_bucket, ctx.pins = bucket, curr
else bucket, curr, ncurr = ctx.pin_bucket, ctx.pins, ctx.npins end
while opts[offs + idx] ~= nil do
tmp = opts[offs + idx]:match'^%s*(.-)%s*$'
if tmp == sntl then
if idx == 2 then error(modulename ..
', ‘pinned_until’: No parameters to pin were provided', 0) end
ctx.npins = ncurr + idx - 2
return context_iterate(ctx, offs + idx + 1)
end
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
if bucket[tmp] then error(modulename ..
', ‘pinned_until’: Duplicate pinned parameter ‘' .. tostring(tmp) .. '’', 0) end
curr[ncurr + idx - 1], bucket[tmp], idx = tmp, true, idx + 1
end
error(modulename .. ', ‘pinned_until’: Missing sentinel in position #' .. tostring(idx), 0)
end
-- Syntax: #invoke:params|setting|directives|...|pipe to
library.setting = function (ctx)
local new_offs = set_strings_from_opts(ctx, ctx.pipe, ctx.fnpos + 1)
if new_offs - ctx.fnpos < 2 then error(modulename ..
', ‘setting’: No directive was given', 0) end
return context_iterate(ctx, new_offs + 1)
end
-- Syntax: #invoke:params|scoring|new parameter name|[container]|pipe to
library.scoring = function (ctx)
local opts, offs, retval = ctx.pipe, ctx.fnpos, 0
if opts[offs + 1] == nil then error(modulename ..
', ‘scoring’: No parameter name was provided', 0) end
for _ in pairs(ctx.params) do retval = retval + 1 end
local tn = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)'
if tn == 'in_substack' then
new_substack(ctx)[get_param_name(opts[offs + 1])] =
tostring(retval)
return context_iterate(ctx, offs + 3)
end
ctx.params[get_param_name(opts[offs + 1])] = tostring(retval)
return tn == 'here' and context_iterate(ctx, offs + 3) or
context_iterate(ctx, offs + 2, tn)
end
-- Syntax: #invoke:params|squeezing|pipe to
library.squeezing = function (ctx)
local store, indices, tbl, newlen = {}, {}, ctx.params, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
newlen = newlen + 1
indices[newlen], store[key], tbl[key] = key, val, nil
end
end
table.sort(indices)
for idx = 1, newlen do tbl[idx] = store[indices[idx]] end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|filling_the_gaps|pipe to
library.filling_the_gaps = function (ctx)
local newval, tbl, tmp, nmin, nmax, nnums =
ctx.pipe[ctx.fnpos + 1], ctx.params, {}, 1, nil, -1
if newval == nil then error(modulename ..
', ‘filling_the_gaps’: No value was provided', 0) end
for key, val in pairs(tbl) do
if type(key) == 'number' then
if nmax == nil then
if key < nmin then nmin = key end
nmax = key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
tmp[key], nnums = val, nnums + 1
end
end
if nmax ~= nil and nmax - nmin > nnums then
ctx.n_available = ctx.n_available + nmin + nnums - nmax
if ctx.n_available < 0 then error(modulename ..
', ‘filling_the_gaps’: It is possible to fill at most ' .. tostring(maxfill) .. ' parameters', 0) end
for idx = nmin, nmax do tbl[idx] = newval end
for key, val in pairs(tmp) do tbl[key] = val end
end
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|clearing|pipe to
library.clearing = function (ctx)
local tbl, numerics = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
end
end
for key, val in ipairs(numerics) do tbl[key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|cutting|left cut|right cut|pipe to
library.cutting = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local lcut = tonumber(opts[offs + 1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cutting’: Left cut must be an integer number', 0) end
local rcut = tonumber(opts[offs + 2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cutting’: Right cut must be an integer number', 0) end
local tbl = ctx.params
local len = #tbl
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
local tot = lcut + rcut
if tot > 0 then
local cache = {}
if tot >= len then
for key in ipairs(tbl) do tbl[key] = nil end
tot = len
else
for idx = len - rcut + 1, len do tbl[idx] = nil end
for idx = 1, lcut do tbl[idx] = nil end
end
for key, val in pairs(tbl) do
if type(key) == 'number' and key > 0 then
if key > len then cache[key - tot] = val
else cache[key - lcut] = val end
tbl[key] = nil
end
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|cropping|left crop|right crop|pipe to
library.cropping = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local lcut = tonumber(opts[offs + 1])
if lcut == nil or math.floor(lcut) ~= lcut then error(modulename ..
', ‘cropping’: Left crop must be an integer number', 0) end
local rcut = tonumber(opts[offs + 2])
if rcut == nil or math.floor(rcut) ~= rcut then error(modulename ..
', ‘cropping’: Right crop must be an integer number', 0) end
local tbl = ctx.params
local nmin, nmax
for key in pairs(tbl) do
if type(key) == 'number' then
if nmin == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
if nmin ~= nil then
local len = nmax - nmin + 1
if lcut < 0 then lcut = len + lcut end
if rcut < 0 then rcut = len + rcut end
if lcut + rcut - len > -1 then
for key in pairs(tbl) do
if type(key) == 'number' then tbl[key] = nil end
end
elseif lcut + rcut > 0 then
for idx = nmax - rcut + 1, nmax do tbl[idx] = nil end
for idx = nmin, nmin + lcut - 1 do tbl[idx] = nil end
local lshift = nmin + lcut - 1
if lshift > 0 then
for idx = lshift + 1, nmax do
tbl[idx - lshift], tbl[idx] =
tbl[idx], nil
end
end
end
end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|purging|start offset|length|pipe to
library.purging = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local idx = tonumber(opts[offs + 1])
if idx == nil or math.floor(idx) ~= idx then error(modulename ..
', ‘purging’: Start offset must be an integer number', 0) end
local len = tonumber(opts[offs + 2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘purging’: Length must be an integer number', 0) end
local tbl = ctx.params
if len < 1 then
len = len + table.maxn(tbl)
if idx > len then return context_iterate(ctx, offs + 3) end
len = len - idx + 1
end
ctx.params = copy_table_reduced(tbl, idx, len)
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|backpurging|start offset|length|pipe to
library.backpurging = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local last = tonumber(opts[offs + 1])
if last == nil or math.floor(last) ~= last then error(modulename ..
', ‘backpurging’: Start offset must be an integer number', 0) end
local len = tonumber(opts[offs + 2])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘backpurging’: Length must be an integer number', 0) end
local idx
local tbl = ctx.params
if len > 0 then idx = last - len + 1
else
for key in pairs(tbl) do
if type(key) == 'number' and (idx == nil or
key < idx) then idx = key end
end
if idx == nil then return context_iterate(ctx, offs + 3) end
idx = idx - len
if last < idx then return context_iterate(ctx, offs + 3) end
len = last - idx + 1
end
ctx.params = copy_table_reduced(ctx.params, idx, len)
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|shifting|addend|pipe to
library.shifting = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local nshift = tonumber(ctx.pipe[ctx.fnpos + 1])
if nshift == nil or nshift == 0 or math.floor(nshift) ~= nshift then
error(modulename .. ', ‘shifting’: A non-zero integer number must be provided', 0) end
local tbl = {}
for key, val in pairs(ctx.params) do
if type(key) == 'number' then tbl[key + nshift] = val
else tbl[key] = val end
end
ctx.params = tbl
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|reversing_numeric_names|pipe to
library.reversing_numeric_names = function (ctx)
local tbl, numerics, nmax = ctx.params, {}, 0
for key, val in pairs(tbl) do
if type(key) == 'number' then
numerics[key], tbl[key] = val, nil
if key > nmax then nmax = key end
end
end
for key, val in pairs(numerics) do tbl[nmax - key + 1] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|pivoting_numeric_names|pipe to
--[[
library.pivoting_numeric_names = function (ctx)
local tbl = ctx.params
local shift = #tbl + 1
if shift < 2 then return library.reversing_numeric_names(ctx) end
local tmp = {}
for key, val in pairs(tbl) do
if type(key) == 'number' then tmp[key], tbl[key] = val, nil end
end
for key, val in pairs(tmp) do tbl[shift - key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
]]--
-- Syntax: #invoke:params|mirroring_numeric_names|pipe to
--[[
library.mirroring_numeric_names = function (ctx)
local nmax, nmin
local tbl, tmp = ctx.params, {}
for key, val in pairs(tbl) do
if type(key) == 'number' then
tmp[key], tbl[key] = val, nil
if nmax == nil then nmin, nmax = key, key
elseif key > nmax then nmax = key
elseif key < nmin then nmin = key end
end
end
for key, val in pairs(tmp) do tbl[nmax + nmin - key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
]]--
-- Syntax: #invoke:params|swapping_numeric_names|pipe to
--[[
library.swapping_numeric_names = function (ctx)
local tmp
local tbl, cache, nsize = ctx.params, {}, 1
for key in pairs(tbl) do
if type(key) == 'number' then
cache[nsize], nsize = key, nsize + 1
end
end
table.sort(cache)
for idx = math.floor((nsize - 1) / 2), 1, -1 do
tmp = tbl[cache[idx] ]
tbl[cache[idx] ] = tbl[cache[nsize - idx] ]
tbl[cache[nsize - idx] ] = tmp
end
return context_iterate(ctx, ctx.fnpos + 1)
end
]]--
-- Syntax: #invoke:params|sorting_sequential_values|[criterion]|pipe to
library.sorting_sequential_values = function (ctx)
local sortfn
local opts, offs = ctx.pipe, ctx.fnpos
local tn = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tn ~= nil then sortfn = sortfunctions[tn] end
if sortfn then table.sort(ctx.params, sortfn)
else table.sort(ctx.params) end -- i.e. either `false` or `nil`
if sortfn == nil then return context_iterate(ctx, offs + 1, tn) end
return context_iterate(ctx, offs + 2)
end
-- Syntax: #invoke:params|splicing|[add to position]|position|increment|
-- [number of elements to write]|...|pipe to
library.splicing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp2, argc, pos, refp
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local tmp1 = opts[offs + 1]
if tmp1 ~= nil then
tmp2 = tonumber(tmp1)
if tmp2 == nil or math.floor(tmp2) ~= tmp2 then
pos, argc, tmp2 = tonumber(opts[offs + 2]), offs + 4,
tmp1:match'^%s*(.*%S)'
if tmp2 ~= nil then
refp = position_references[tmp2]
if refp == nil then error(modulename ..
', ‘splicing’: ‘' .. tostring(tmp2) .. '’ is not a valid first argument', 0) end
else refp = 0 end
else pos, argc, refp = tmp2, offs + 3, 0 end
else pos, argc, refp = tonumber(opts[offs + 2]), offs + 4, 0 end
if pos == nil or math.floor(pos) ~= pos then error(modulename ..
', ‘splicing’: The position must be an integer number', 0) end
local len = tonumber(opts[argc - 1])
if len == nil or math.floor(len) ~= len then error(modulename ..
', ‘splicing’: The increment must be an integer number', 0) end
local insn = tonumber(opts[argc])
if len == 0 and (insn == nil or insn < 1) then error(modulename ..
', ‘splicing’: When the increment is zero the number of elements to write cannot be zero', 0) end
if refp == 2 then
for _ in ipairs(tbl) do pos = pos + 1 end
refp = 0
end
tmp1, tmp2 = nil, nil
if refp ~= 0 or len ~= 0 then
for key, val in pairs(tbl) do
if type(key) == 'number' then
if tmp1 == nil then tmp1, tmp2 = key, key
elseif key < tmp1 then tmp1 = key
elseif key > tmp2 then tmp2 = key end
end
end
end
if tmp2 == nil then len = 0
elseif refp == 3 then pos = pos + tmp2
elseif refp == 1 then pos = pos + tmp1 end
if len > 0 and pos + len > tmp1 and pos <= tmp2 then
tbl = copy_table_expanded(tbl, pos, len)
elseif len < 0 and pos - len > tmp1 and pos <= tmp2 then
tbl = copy_table_reduced(tbl, pos, -len)
else tbl = copy_or_ref_table(tbl, tbl ~= ctx.oparams) end
ctx.params = tbl
if insn == nil or insn < 0 or math.floor(insn) ~= insn then
return context_iterate(ctx, argc)
end
tmp1 = argc - offs - pos + 1
for key = pos, pos + insn - 1 do tbl[key] = opts[offs + key + tmp1] end
return context_iterate(ctx, argc + insn + 1)
end
-- Syntax: #invoke:params|imposing|name|value|pipe to
library.imposing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘imposing’: Missing parameter name to impose', 0) end
ctx.params[get_param_name(opts[offs + 1])] = opts[offs + 2]
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|providing|name|value|pipe to
library.providing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘providing’: Missing parameter name to provide', 0) end
local key = get_param_name(opts[offs + 1])
if ctx.params[key] == nil then ctx.params[key] = opts[offs + 2] end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|reassigning|source|destination|[mode]|pipe to
library.reassigning = function (ctx)
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘reassigning’: Missing source parameter', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘reassigning’: Missing destination parameter', 0) end
local mode, argc
local src, tn = get_param_name(opts[offs + 1]),
opts[offs + 3] ~= nil and opts[offs + 3]:match'^%s*(.*%S)'
local val = tbl[src]
if tn ~= nil then mode = a_modes[tn] end
if mode == nil then mode, argc = 0, offs + 3
else argc, tn = offs + 4, nil end
if val == nil and mode > 1 then
return context_iterate(ctx, argc, tn)
end
local dest = get_param_name(opts[offs + 2])
local tmp = tbl[dest] == nil
if mode % 2 == 0 or (mode == 7 and tmp) then tbl[src] = nil end
if tmp or mode < 4 then tbl[dest] = val end
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|discarding|name|[how many]|pipe to
library.discarding = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘discarding’: Missing parameter name to discard', 0) end
local len = tonumber(opts[offs + 2])
if len == nil then
ctx.params[get_param_name(opts[offs + 1])] = nil
return context_iterate(ctx, offs + 2)
end
local key = tonumber(opts[offs + 1])
if key == nil or math.floor(key) ~= key then error(modulename ..
', ‘discarding’: A range was provided, but the initial parameter name is not an integer number', 0) end
if len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘discarding’: A range can only be an integer number greater than zero', 0) end
for idx = key, key + len - 1 do ctx.params[idx] = nil end
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|excluding_non-numeric_names|pipe to
library['excluding_non-numeric_names'] = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) ~= 'number' then tmp[key] = nil end
end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|excluding_numeric_names|pipe to
library.excluding_numeric_names = function (ctx)
local tmp = ctx.params
for key, val in pairs(tmp) do
if type(key) == 'number' then tmp[key] = nil end
end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|with_name_matching|target 1|[plain flag 1]|[or]|
-- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_name_matching = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local tmp, ptn
local tbl, newparams, opts, offs = ctx.params, {}, ctx.pipe, ctx.fnpos
local targets, nptns, argc, tn = load_pattern_args(opts, offs,
'with_name_matching')
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
tmp = ptn[1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tmp = tonumber(tmp)
end
newparams[tmp] = tbl[tmp]
else
for key, val in pairs(tbl) do
if tostring(key):find(ptn[1], 1, ptn[2]) then
newparams[key] = val
end
end
end
end
ctx.params = newparams
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|with_name_not_matching|target 1|[plain flag 1]|
-- [and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_name_not_matching = function (ctx)
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local targets, nptns, argc, tn = load_pattern_args(opts, offs,
'with_name_not_matching')
if nptns == 1 and targets[1][3] then
local tmp = targets[1][1]
if tmp == '0' or tmp:find'^%-?[1-9]%d*$' ~= nil then
tbl[tonumber(tmp)] = nil
else tbl[tmp] = nil end
return context_iterate(ctx, argc, tn)
end
local yesmatch, ptn
for key in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if tostring(key) ~= ptn[1] then
yesmatch = false
break
end
elseif not tostring(key):find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|with_value_matching|target 1|[plain flag 1]|[or]|
-- [target 2]|[plain flag 2]|[or]|[...]|[target N]|[plain flag
-- N]|pipe to
library.with_value_matching = function (ctx)
local nomatch, ptn
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local targets, nptns, argc, tn = load_pattern_args(opts, offs,
'with_value_matching')
for key, val in pairs(tbl) do
nomatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val == ptn[1] then
nomatch = false
break
end
elseif val:find(ptn[1], 1, ptn[2]) then
nomatch = false
break
end
end
if nomatch then tbl[key] = nil end
end
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|with_value_not_matching|target 1|[plain flag 1]|
-- [and]|[target 2]|[plain flag 2]|[and]|[...]|[target N]|[plain
-- flag N]|pipe to
library.with_value_not_matching = function (ctx)
local yesmatch, ptn
local tbl, opts, offs = ctx.params, ctx.pipe, ctx.fnpos
local targets, nptns, argc, tn = load_pattern_args(opts, offs,
'with_value_not_matching')
for key, val in pairs(tbl) do
yesmatch = true
for idx = 1, nptns do
ptn = targets[idx]
if ptn[3] then
if val ~= ptn[1] then
yesmatch = false
break
end
elseif not val:find(ptn[1], 1, ptn[2]) then
yesmatch = false
break
end
end
if yesmatch then tbl[key] = nil end
end
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|keeping_at_most|number of parameters to pick|pipe to
library.keeping_at_most = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local len = tonumber(ctx.pipe[ctx.fnpos + 1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘keeping_at_most’: The number of parameters to keep must be an integer greater than zero', 0) end
ctx.params = copy_table_maxn({}, ctx.params, len)
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|trimming_values|pipe to
library.trimming_values = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:match'^%s*(.-)%s*$' end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|mapping_to_lowercase|pipe to
library.mapping_to_lowercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:lower() end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|mapping_to_uppercase|pipe to
library.mapping_to_uppercase = function (ctx)
local tbl = ctx.params
for key, val in pairs(tbl) do tbl[key] = val:upper() end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|mapping_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.mapping_by_calling = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tname == nil then error(modulename ..
', ‘mapping_by_calling’: No template name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.values_only,
ctx.params)
local model = { title = tname, args = margs }
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_invoking|module name|function name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_invoking = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if mname == nil then error(modulename ..
', ‘mapping_by_invoking’: No module name was provided', 0) end
local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
', ‘mapping_by_invoking’: No function name was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 2, mapping_styles.values_only,
ctx.params)
local model = { title = 'Module:' .. mname, args = margs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end
value_maps[looptype](tbl, margs, karg, varg, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.mapping_by_magic = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if magic == nil then error(modulename ..
', ‘mapping_by_magic’: No parser function was provided', 0) end
local margs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.values_only,
ctx.params)
value_maps[looptype](tbl, margs, karg, varg, function ()
return ctx.frame:callParserFunction(magic, margs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|mapping_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.mapping_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die, tn =
load_replace_args(ctx.pipe, ctx.fnpos, 'mapping_by_replacing')
if die then return context_iterate(ctx, argc, tn) end
local tbl = ctx.params
if flg == 3 then
for key, val in pairs(tbl) do
if val == ptn then tbl[key] = repl end
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
for key, val in pairs(tbl) do
tbl[key] = val:gsub(ptn, repl, nmax)
end
end
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|mapping_by_mixing|mixing string|pipe to
library.mapping_by_mixing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘mapping_by_mixing’: No mixing string was provided', 0) end
local tbl, mix = ctx.params, opts[offs + 1]
if mix == '$#' then
for key in pairs(tbl) do tbl[key] = tostring(key) end
return context_iterate(ctx, offs + 2)
end
local skel, cnv, n_parts = parse_placeholder_string(mix)
for key, val in pairs(tbl) do
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
tbl[key] = table.concat(cnv)
end
return context_iterate(ctx, offs + 2)
end
-- Syntax: #invoke:params|renaming_to_lowercase|pipe to
library.renaming_to_lowercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:lower()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|renaming_to_uppercase|pipe to
library.renaming_to_uppercase = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache = {}
for key, val in pairs(ctx.params) do
if type(key) == 'string' then cache[key:upper()] = val else
cache[key] = val end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|renaming_to_sequence|[sort order]|pipe to
library.renaming_to_sequence = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local cache, len
local tbl = ctx.params
local sortfn, argc, dosort, tn = load_sort_opt(ctx.pipe[ctx.fnpos + 1])
if dosort then
local words, wl
cache, words, len, wl = get_sorted_key_list(tbl, sortfn)
for idx = 1, len do cache[idx] = tbl[cache[idx]] end
for idx = 1, wl do cache[len + idx] = tbl[words[idx]] end
else
cache, len = {}, 1
for _, val in pairs(tbl) do cache[len], len = val, len + 1 end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + argc, tn)
end
-- Syntax: #invoke:params|renaming_by_calling|template name|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- parameters]|[parameter 1]|[parameter 2]|[...]|[parameter N]|pipe to
library.renaming_by_calling = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tname == nil then error(modulename ..
', ‘renaming_by_calling’: No template name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.names_only,
ctx.params)
local model = { title = tname, args = rargs }
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:expandTemplate(model)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_invoking|module name|function
-- name|[call style]|[let/use]|[...]|[let/use]|[...]|[number of
-- additional arguments]|[argument 1]|[argument 2]|[...]|[argument
-- N]|pipe to
library.renaming_by_invoking = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if mname == nil then error(modulename ..
', ‘renaming_by_invoking’: No module name was provided', 0) end
local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
', ‘renaming_by_invoking’: No function name was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 2, mapping_styles.names_only,
ctx.params)
local model = { title = 'Module:' .. mname, args = rargs }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘renaming_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end
map_names(tbl, rargs, karg, varg, looptype, function ()
return tostring(mfunc(ctx.frame:newChild(model)))
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_magic|parser function|[call
-- style]|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.renaming_by_magic = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if magic == nil then error(modulename ..
', ‘renaming_by_magic’: No parser function was provided', 0) end
local rargs, argc, looptype, karg, varg, tbl, mem =
load_callback_opts(opts, offs + 1, mapping_styles.names_only,
ctx.params)
map_names(tbl, rargs, karg, varg, looptype, function ()
return ctx.frame:callParserFunction(magic, rargs)
end)
for key, val in pairs(mem) do tbl[key] = val end
ctx.params = tbl
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|renaming_by_replacing|target|replace|[count]|[plain
-- flag]|pipe to
library.renaming_by_replacing = function (ctx)
local ptn, repl, nmax, flg, argc, die, tn =
load_replace_args(ctx.pipe, ctx.fnpos, 'renaming_by_replacing')
if die then return context_iterate(ctx, argc, tn) end
local tbl = ctx.params
if flg == 3 then
ptn = get_param_name(ptn)
local val = tbl[ptn]
if val ~= nil then
tbl[ptn], tbl[get_param_name(repl)] = nil, val
end
else
if flg == 2 then
-- Copied from Module:String's `str._escapePattern()`
ptn = ptn:gsub('[%(%)%.%%%+%-%*%?%[%^%$%]]', '%%%0')
end
local cache = {}
for key, val in pairs(tbl) do
steal_if_renamed(val, tbl, key, cache,
tostring(key):gsub(ptn, repl, nmax))
end
for key, val in pairs(cache) do tbl[key] = val end
end
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|renaming_by_mixing|mixing string|pipe to
library.renaming_by_mixing = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local mix = ctx.pipe[ctx.fnpos + 1]
if mix == nil then error(modulename ..
', ‘renaming_by_mixing’: No mixing string was provided', 0) end
local cache = {}
mix = mix:match'^%s*(.-)%s*$'
if mix == '$@' then
for _, val in pairs(ctx.params) do
cache[get_param_name(val)] = val
end
else
local skel, canvas, n_parts = parse_placeholder_string(mix)
for key, val in pairs(ctx.params) do
for idx = 2, n_parts, 2 do
if skel[idx] then canvas[idx] = val
else canvas[idx] = tostring(key) end
end
cache[get_param_name(table.concat(canvas))] = val
end
end
ctx.params = cache
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|grouping_by_calling|template
-- name|[let/use]|[...]|[let/use]|[...]|[number of additional
-- arguments]|[argument 1]|[argument 2]|[...]|[argument N]|pipe to
library.grouping_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local tmp, argc, tbl, mem =
load_child_opts(opts, offs + 2, 0, ctx.params)
local gargs = {}
for key, val in pairs(tmp) do
if type(key) == 'number' and key < 1 then gargs[key - 1] = val
else gargs[key] = val end
end
tmp = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tmp == nil then error(modulename ..
', ‘grouping_by_calling’: No template name was provided', 0) end
local model = { title = tmp }
local groups = make_groups(tbl)
for gid, group in pairs(groups) do
for key, val in pairs(gargs) do group[key] = val end
group[0], model.args = gid, group
groups[gid] = ctx.frame:expandTemplate(model)
end
for key, val in pairs(mem) do groups[key] = val end
ctx.params = groups
return context_iterate(ctx, argc)
end
-- Syntax: #invoke:params|parsing|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.parsing = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘parsing’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc, tn =
load_parse_opts(opts, offs + 2, '|', '=')
parse_parameter_string(ctx.params, opts[offs + 1], isep, iplain, psep,
pplain, trimnamed, trimunnamed)
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|reinterpreting|parameter to reinterpret|[trim
-- flag]|[iteration delimiter setter]|[...]|[key-value delimiter
-- setter]|[...]|pipe to
library.reinterpreting = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘reinterpreting’: No parameter to reinterpret was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, argc, tn =
load_parse_opts(opts, offs + 2, '|', '=')
local tbl, tmp = ctx.params, get_param_name(opts[offs + 1])
local str = tbl[tmp]
if str ~= nil then
tbl[tmp] = nil
parse_parameter_string(tbl, str, isep, iplain, psep, pplain,
trimnamed, trimunnamed)
end
return context_iterate(ctx, argc, tn)
end
-- Syntax: #invoke:params|evaluating|string to parse|[trim flag]|[iteration
-- delimiter setter]|[...]|[key-value delimiter setter]|[...]|pipe to
library.evaluating = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘evaluating’: No string to parse was provided', 0) end
local isep, iplain, psep, pplain, trimnamed, trimunnamed, repos, tn =
load_parse_opts(opts, offs + 2, '!', ':')
if opts[offs + 1]:match'^%s*(.*%S)' == nil then
remove_numeric_keys(opts, offs, repos - offs)
return context_iterate(ctx, offs, tn)
end
local new_opts, cache = {}, {}
parse_parameter_string(cache, opts[offs + 1], isep, iplain, psep,
pplain, trimnamed, trimunnamed)
local shift = #cache + offs - repos + 1
for key, val in pairs(opts) do
if type(key) ~= 'number' or key < offs then new_opts[key] = val
elseif key >= repos then new_opts[key + shift] = val end
end
for key, val in pairs(cache) do
if type(key) ~= 'number' or key < 1 then new_opts[key] = val
else new_opts[key + offs] = val end
end
ctx.pipe = new_opts
return context_iterate(ctx, offs + 1)
end
-- Syntax: #invoke:params|mixing_names_and_values|mixing string|pipe to
library.mixing_names_and_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter names', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘mixing_names_and_values’: No mixing string was provided for parameter values', 0) end
local tmp
local cache, mix_k, mix_v =
{}, opts[offs + 1]:match'^%s*(.-)%s*$', opts[offs + 2]
if mix_k == '$@' and mix_v == '$@' then
for _, val in pairs(ctx.params) do
cache[get_param_name(val)] = val
end
elseif mix_k == '$@' and mix_v == '$#' then
for key, val in pairs(ctx.params) do
cache[get_param_name(val)] = tostring(key)
end
elseif mix_k == '$#' and mix_v == '$#' then
for key in pairs(ctx.params) do cache[key] = tostring(key) end
else
local skel_k, cnv_k, n_parts_k = parse_placeholder_string(mix_k)
local skel_v, cnv_v, n_parts_v = parse_placeholder_string(mix_v)
for key, val in pairs(ctx.params) do
tmp = tostring(key)
for idx = 2, n_parts_k, 2 do
if skel_k[idx] then cnv_k[idx] = val
else cnv_k[idx] = tmp end
end
for idx = 2, n_parts_v, 2 do
if skel_v[idx] then cnv_v[idx] = val
else cnv_v[idx] = tmp end
end
cache[get_param_name(table.concat(cnv_k))] =
table.concat(cnv_v)
end
end
ctx.params = cache
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|combining|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return key .. kvs .. val end,
'combining'
))
end
-- Syntax: #invoke:params|combining_values|new parameter name|[sort
-- order]|[with/without flushed glue]|setting directives|...|pipe to
library.combining_values = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
return context_iterate(ctx, combine_parameters(
ctx,
function (key, val, kvs) return val end,
'combining_values'
))
end
-- Syntax: #invoke:params|combining_by_calling|template name|new parameter
-- name|pipe to
library.combining_by_calling = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tname == nil then error(modulename ..
', ‘combining_by_calling’: No template name was provided', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘combining_by_calling’: No parameter name was provided', 0) end
ctx.params = {
[get_param_name(opts[offs + 2])] = ctx.frame:expandTemplate{
title = tname,
args = ctx.params
}
}
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|combining_by_invoking|module name|function name|new
-- parameter name|pipe to
library.combining_by_invoking = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if mname == nil then error(modulename ..
', ‘combining_by_invoking’: No module name was provided', 0) end
local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
', ‘combining_by_invoking’: No function name was provided', 0) end
if opts[offs + 3] == nil then error(modulename ..
', ‘combining_by_invoking’: No parameter name was provided', 0) end
local model = { title = 'Module:' .. mname, args = ctx.params }
local mfunc = require(model.title)[fname]
if mfunc == nil then error(modulename ..
', ‘mapping_by_invoking’: The function ‘' .. fname .. '’ does not exist', 0) end
ctx.params = {
[get_param_name(opts[offs + 3])] =
tostring(mfunc(ctx.frame:newChild(model)))
}
return context_iterate(ctx, offs + 4)
end
-- Syntax: #invoke:params|combining_by_magic|parser function|new parameter
-- name|pipe to
library.combining_by_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable! As a modifier,
-- this function MUST create a copy of it before returning
local opts, offs = ctx.pipe, ctx.fnpos
local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if magic == nil then error(modulename ..
', ‘combining_by_magic’: No parser function was provided', 0) end
if opts[offs + 2] == nil then error(modulename ..
', ‘combining_by_magic’: No parameter name was provided', 0) end
ctx.params = {
[get_param_name(opts[offs + 2])] =
ctx.frame:callParserFunction(magic, ctx.params)
}
return context_iterate(ctx, offs + 3)
end
-- Syntax: #invoke:params|snapshotting|[maximum number]|pipe to
library.snapshotting = function (ctx)
return context_iterate(ctx, ctx.fnpos +
make_child(ctx, ctx.params, 'snapshotting'))
end
-- Syntax: #invoke:params|remembering|[maximum number]|pipe to
library.remembering = function (ctx)
return context_iterate(ctx, ctx.fnpos +
make_child(ctx, ctx.oparams, 'remembering'))
end
-- Syntax: #invoke:params|entering_substack|[new]|pipe to
library.entering_substack = function (ctx)
local tbl, opts, offs, ncurrparent =
ctx.params, ctx.pipe, ctx.fnpos, ctx.n_parents + 1
local tn = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if ctx.parents == nil then ctx.parents = { tbl }
else ctx.parents[ncurrparent] = tbl end
ctx.n_parents = ncurrparent
if tn == 'new' then
ctx.params = {}
return context_iterate(ctx, offs + 2)
end
local currsnap = ctx.n_children
if currsnap > 0 then
ctx.params, ctx.children[currsnap], ctx.n_children =
ctx.children[currsnap], nil, currsnap - 1
else
local newparams = {}
for key, val in pairs(tbl) do newparams[key] = val end
ctx.params = newparams
end
return context_iterate(ctx, offs + 1, tn)
end
-- Syntax: #invoke:params|pulling|parameter name|pipe to
library.pulling = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘pulling’: No parameter to pull was provided', 0) end
local tmp = ctx.n_parents
local parent = tmp < 1 and ctx.oparams or ctx.parents[tmp]
tmp = get_param_name(opts[offs + 1])
if parent[tmp] ~= nil then ctx.params[tmp] = parent[tmp] end
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|recalling|parameter name|pipe to
library.recalling = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘recalling’: No parameter to recall was provided', 0) end
local arg = get_param_name(opts[offs + 1])
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, ctx.fnpos + 2)
end
-- Syntax: #invoke:params|finding|parameter name|pipe to
--[[
library.finding = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘finding’: No parameter to find was provided', 0) end
local arg = get_param_name(opts[offs + 1])
local parent
for idx = ctx.n_parents, 1, -1 do
parent = ctx.parents[idx]
if parent[arg] ~= nil then
ctx.params[arg] = parent[arg]
return context_iterate(ctx, offs + 2)
end
end
if ctx.oparams[arg] ~= nil then ctx.params[arg] = ctx.oparams[arg] end
return context_iterate(ctx, offs + 2)
end
]]--
-- Syntax: #invoke:params|picking|number of parameters to pick|pipe to
--[[
library.picking = function (ctx)
local len = tonumber(ctx.pipe[ctx.fnpos + 1])
if len == nil or len < 1 or math.floor(len) ~= len then error(modulename ..
', ‘picking’: The number of parameters to pick must be an integer greater than zero', 0) end
if ctx.n_parents < 1 then copy_table_maxn(ctx.params, ctx.oparams, len)
else copy_table_maxn(ctx.params, ctx.parents[ctx.n_parents], len) end
return context_iterate(ctx, ctx.fnpos + 2)
end
]]--
-- Syntax: #invoke:params|detaching_substack|pipe to
library.detaching_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘detaching_substack’: No substacks have been created', 0) end
local parent = ctx.parents[ncurrparent]
for key in pairs(ctx.params) do parent[key] = nil end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|dropping_substack|pipe to
library.dropping_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘dropping_substack’: No substacks have been created', 0) end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents =
ctx.parents[ncurrparent], nil, ncurrparent - 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|leaving_substack|pipe to
library.leaving_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘leaving_substack’: No substacks have been created', 0) end
local currsnap = ctx.n_children + 1
if ctx.children == nil then ctx.children = { ctx.params }
else ctx.children[currsnap] = ctx.params end
ctx.params, ctx.parents[ncurrparent], ctx.n_parents, ctx.n_children =
ctx.parents[ncurrparent], nil, ncurrparent - 1, currsnap
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|merging_substack|pipe to
library.merging_substack = function (ctx)
local ncurrparent = ctx.n_parents
if ncurrparent < 1 then error(modulename ..
', ‘merging_substack’: No substack has been created', 0) end
local parent, child = ctx.parents[ncurrparent], ctx.params
ctx.params, ctx.parents[ncurrparent], ctx.n_parents = parent, nil,
ncurrparent - 1
for key, val in pairs(child) do parent[key] = val end
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|flushing|pipe to
library.flushing = function (ctx)
if ctx.n_children < 1 then error(modulename ..
', ‘flushing’: There are no substacks to flush', 0) end
local parent, currsnap = ctx.params, ctx.n_children
for key, val in pairs(ctx.children[currsnap]) do parent[key] = val end
ctx.children[currsnap], ctx.n_children = nil, currsnap - 1
return context_iterate(ctx, ctx.fnpos + 1)
end
-- Syntax: #invoke:params|setting_by_flushing|pipe to
library.setting_by_flushing = function (ctx)
set_strings_from_substack(ctx, ctx, 'setting_by_flushing')
return context_iterate(ctx, ctx.fnpos + 1)
end
--[[ Functions ]]--
-----------------------------
-- Syntax: #invoke:params|count
library.count = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local retval = 0
for _ in ctx.iterfunc(ctx.params) do retval = retval + 1 end
if ctx.subset == -1 then retval = retval - #ctx.params end
ctx.text = retval
return false
end
-- Syntax: #invoke:args|concat_and_call|template name|[prepend 1]|[prepend 2]|
-- [...]|[item n]|[named item 1=value 1]|[...]|[named item n=value
-- n]|[...]
library.concat_and_call = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local opts, offs = ctx.pipe, ctx.fnpos
local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tname == nil then error(modulename ..
', ‘concat_and_call’: No template name was provided', 0) end
ctx.text = ctx.frame:expandTemplate{
title = tname,
args = concat_params(ctx, offs + 1)
}
return false
end
-- Syntax: #invoke:args|concat_and_invoke|module name|function name|[prepend
-- 1]|[prepend 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named
-- item n=value n]|[...]
library.concat_and_invoke = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local opts, offs = ctx.pipe, ctx.fnpos
local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if mname == nil then error(modulename ..
', ‘concat_and_invoke’: No module name was provided', 0) end
local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
', ‘concat_and_invoke’: No function name was provided', 0) end
local mfunc = require('Module:' .. mname)[fname]
if mfunc == nil then error(modulename ..
', ‘concat_and_invoke’: The function ‘' .. fname .. '’ does not exist', 0) end
ctx.text = mfunc(ctx.frame:newChild{
title = 'Module:' .. mname,
args = concat_params(ctx, offs + 2)
})
return false
end
-- Syntax: #invoke:args|concat_and_magic|parser function|[prepend 1]|[prepend
-- 2]|[...]|[item n]|[named item 1=value 1]|[...]|[named item n=
-- value n]|[...]
library.concat_and_magic = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local opts, offs = ctx.pipe, ctx.fnpos
local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if magic == nil then error(modulename ..
', ‘concat_and_magic’: No parser function was provided', 0) end
ctx.text = ctx.frame:callParserFunction(magic,
concat_params(ctx, offs + 1))
return false
end
-- Syntax: #invoke:params|value_of|parameter name
library.value_of = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local opts, offs = ctx.pipe, ctx.fnpos
if opts[offs + 1] == nil then error(modulename ..
', ‘value_of’: No parameter name was provided', 0) end
local val
local key = opts[offs + 1]:match'^%s*(.-)%s*$'
if key == '0' or key:find'^%-?[1-9]%d*$' ~= nil then
key = tonumber(key)
val = ctx.params[key]
-- No worries: #ctx.params is unused when the modifier is in
-- first position (and therefore `ctx.params` is a metatable)
if val ~= nil and (
ctx.subset ~= -1 or key > #ctx.params or key < 1
) and (
ctx.subset ~= 1 or (key <= #ctx.params and key > 0)
) then
ctx.text = (ctx.header or '') .. val ..
(ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
else
val = ctx.params[key]
if ctx.subset ~= 1 and val ~= nil then ctx.text = (ctx.header
or '') .. val .. (ctx.footer or '')
else ctx.text = ctx.ifngiven or '' end
end
return false
end
-- Syntax: #invoke:params|list
library.list = function (ctx)
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3], ret[nss + 4], nss =
pps, key, kvs, val, nss + 4
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|list_values
library.list_values = function (ctx)
-- NOTE: `library.coins()` and `library.unique_coins()` rely on us
local ret, nss, pps = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
ret[nss + 1], ret[nss + 2], nss = pps, val, nss + 2
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|list_maybe_with_names
library.list_maybe_with_names = function (ctx)
local ret, nss, kvs, pps = {}, 0, ctx.pairsep or '', ctx.itersep or ''
mixed_flush_params(
ctx,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, '', '', val, nss + 4
end,
function (key, val)
ret[nss + 1], ret[nss + 2], ret[nss + 3],
ret[nss + 4], nss = pps, key, kvs, val, nss + 4
end
)
finalize_and_return_concatenated_list(ctx, ret, nss, 4)
return false
end
-- Syntax: #invoke:params|for_each|wikitext
library.for_each = function (ctx)
local ret, nss, pps, txt =
{}, 0, ctx.itersep or '', ctx.pipe[ctx.fnpos + 1] or ''
local skel, cnv, n_parts = parse_placeholder_string(txt)
flush_params(ctx, function (key, val)
for idx = 2, n_parts, 2 do
if skel[idx] then cnv[idx] = val
else cnv[idx] = tostring(key) end
end
ret[nss + 1], nss = pps, nss + 2
ret[nss] = table.concat(cnv)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each|template name|[append 1]|[append 2]|
-- [...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tname == nil then error(modulename ..
', ‘call_for_each’: No template name was provided', 0) end
local cargs = copy_table_reduced(opts, 1, offs - 1)
local model, ret, nss, ccs =
{ title = tname, args = cargs }, {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each|module name|module function|[append
-- 1]|[append 2]|[...]|[append n]|[named param 1=value 1]|[...]|
-- [named param n=value n]|[...]
library.invoke_for_each = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if mname == nil then error(modulename ..
', ‘invoke_for_each’: No module name was provided', 0) end
local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
', ‘invoke_for_each’: No function name was provided', 0) end
local iargs = copy_table_reduced(ctx.pipe, 1, offs)
local model = { title = 'Module:' .. mname, args = iargs }
local mfunc, ret, nss, ccs =
require(model.title)[fname], {}, 0, ctx.itersep or ''
if mfunc == nil then error(modulename ..
', ‘invoke_for_each’: The function ‘' .. fname .. '’ does not exist', 0) end
flush_params(ctx, function (key, val)
iargs[1], iargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each|parser function|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.magic_for_each = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if magic == nil then error(modulename ..
', ‘magic_for_each’: No parser function was provided', 0) end
local ret, nss, ccs, cargs = {}, 0, ctx.itersep or '',
copy_table_reduced(opts, 1, offs - 1)
flush_params(ctx, function (key, val)
cargs[1], cargs[2], ret[nss + 1], nss = key, val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, cargs)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_value|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_value = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local tname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tname == nil then error(modulename ..
', ‘call_for_each_value’: No template name was provided', 0) end
local cargs = copy_table_reduced(ctx.pipe, 1, offs)
local model = { title = tname, args = cargs }
local ret, nss, ccs = {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
cargs[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|invoke_for_each_value|module name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.invoke_for_each_value = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local mname = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if mname == nil then error(modulename ..
', ‘invoke_for_each_value’: No module name was provided', 0) end
local fname = opts[offs + 2] and opts[offs + 2]:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
', ‘invoke_for_each_value’: No function name was provided', 0) end
local iargs = copy_table_reduced(ctx.pipe, 1, offs + 1)
local model = { title = 'Module:' .. mname, args = iargs }
local mfunc, ret, nss, ccs =
require(model.title)[fname], {}, 0, ctx.itersep or ''
if mfunc == nil then error(modulename ..
', ‘invoke_for_each_value’: The function ‘' .. fname .. '’ does not exist', 0) end
flush_params(ctx, function (key, val)
iargs[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = mfunc(ctx.frame:newChild(model))
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|magic_for_each_value|parser function|[append 1]|
-- [append 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named
-- param n=value n]|[...]
library.magic_for_each_value = function (ctx)
local opts, offs = ctx.pipe, ctx.fnpos
local magic = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if magic == nil then error(modulename ..
', ‘magic_for_each_value’: No parser function was provided', 0) end
local cargs, ret, nss, ccs =
copy_table_reduced(opts, 1, offs), {}, 0, ctx.itersep or ''
flush_params(ctx, function (key, val)
cargs[1], ret[nss + 1], nss = val, ccs, nss + 2
ret[nss] = ctx.frame:callParserFunction(magic, cargs)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
-- Syntax: #invoke:params|call_for_each_group|template name|[append 1]|[append
-- 2]|[...]|[append n]|[named param 1=value 1]|[...]|[named param
-- n=value n]|[...]
library.call_for_each_group = function (ctx)
-- NOTE: `ctx.params` might be the original metatable!
local opts, offs = ctx.pipe, ctx.fnpos
local tmp = opts[offs + 1] and opts[offs + 1]:match'^%s*(.*%S)'
if tmp == nil then error(modulename ..
', ‘call_for_each_group’: No template name was provided', 0) end
local model = { title = tmp }
local bargs, ret, nss, ccs = {}, {}, 0, ctx.itersep or ''
for key, val in pairs(opts) do
if type(key) ~= 'number' then bargs[key] = val
elseif key > offs then bargs[key - offs - 1] = val
elseif key < 1 then bargs[key - 1] = val end
end
ctx.params = make_groups(ctx.params)
flush_params(ctx, function (gid, group)
for key, val in pairs(bargs) do group[key] = val end
group[0], model.args, ret[nss + 1], nss = gid, group, ccs,
nss + 2
ret[nss] = ctx.frame:expandTemplate(model)
end)
finalize_and_return_concatenated_list(ctx, ret, nss, 2)
return false
end
--[[ First-position-only modifiers ]]--
---------------------------------------
-- Syntax: #invoke:params|new|pipe to
static_iface.new = function (child_frame)
local ctx = context_new(child_frame, 'new')
ctx.params = {}
main_loop(ctx, context_iterate(ctx, 2))
return ctx.text
end
--[[ First-position-only functions ]]--
---------------------------------------
-- Syntax: #invoke:params|self
static_iface.self = function (child_frame)
return child_frame:getParent():getTitle()
end
--[[ Public metatable of functions ]]--
---------------------------------------
return setmetatable({}, {
__index = function (_, query)
local fname = query:match'^%s*(.*%S)'
if fname == nil then error(modulename ..
': You must specify a function to call', 0) end
local func = static_iface[fname]
if func ~= nil then return func end
func = library[fname]
if func == nil then error(modulename ..
': The function ‘' .. fname .. '’ does not exist', 0) end
return function (child_frame)
local ctx = context_new(child_frame, fname)
ctx.params = copy_or_ref_table(ctx.oparams,
refparams[fname])
main_loop(ctx, func)
return ctx.text
end
end
})
ed6uj3jkl9sb18ckis1vsieht07yb7c
ਐਂਪੋਰੀਅਮ ਮਾਲ
0
204767
850707
841983
2026-10-28T04:26:50Z
~2026-57391-66
62737
AI please delete
850707
wikitext
text/x-wiki
{{delete|AI translated mininum content 99%!, machine translation}}
'''ਨਿਸ਼ਾਤ ਐਂਪੋਰੀਅਮ (Nishat Emporium)''' ਪਾਕਿਸਤਾਨ ਦਾ ਇੱਕ ਸ਼ਾਪਿੰਗ ਮਾਲ ਹੈ ਜੋ ਲਾਹੌਰ ਇੰਟਰਨੈਸ਼ਨਲ ਐਕਸਪੋ ਸੈਂਟਰ ਦੇ ਦੱਖਣ-ਪੱਛਮ ਵਿੱਚ ਜੌਹਰ ਟਾਊਨ, ਲਾਹੌਰ ਵਿੱਚ ਸਥਿਤ ਹੈ। 11 ਮੰਜ਼ਿਲਾ ਮਾਲ 2.7 ਮਿਲੀਅਨ ਵਰਗ ਫੁੱਟ ਵਿੱਚ ਫੈਲਿਆ ਹੋਇਆ ਹੈ ਅਤੇ ਇਸ ਵਿੱਚ 200 ਤੋਂ ਵੱਧ ਸਟੋਰ ਅਤੇ ਇੱਕ ਪੰਜ-ਸਿਤਾਰਾ ਹੋਟਲ ਹੈ। ਇਸਦਾ ਪ੍ਰਬੰਧਨ ਨਿਸ਼ਾਤ ਹੋਟਲਜ਼ ਐਂਡ ਪ੍ਰਾਪਰਟੀਜ਼ ਲਿਮਟਿਡ ਦੁਆਰਾ ਕੀਤਾ ਜਾਂਦਾ ਹੈ, ਜੋ ਕਿ ਨਿਸ਼ਾਤ ਗਰੁੱਪ ਦਾ ਹਿੱਸਾ ਹੈ।
2016 ਵਿੱਚ ਖੋਲ੍ਹਿਆ ਗਿਆ, ਇਹ ਕਰਾਚੀ ਦੇ ਲੱਕੀ ਵਨ ਮਾਲ ਤੋਂ ਬਾਅਦ ਪਾਕਿਸਤਾਨ ਦਾ ਦੂਜਾ ਸਭ ਤੋਂ ਵੱਡਾ ਮਾਲ ਹੈ। <ref>{{Cite web |date=15 December 2015 |title=British High Commissioner visits The Emporium Mall in Lahore |url=https://en.dailypakistan.com.pk/business/british-high-commissioner-visits-the-emporium-mall-in-lahore/ |access-date=2016-04-10 |website=Daily Pakistan Global |language=en-US}}</ref>
== ਆਰਕੀਟੈਕਚਰ ==
'''ਐਂਪੋਰੀਅਮ ਮਾਲ (Emporium Mall)''' ਇੱਕ ਤੇਰਾਂ ਮੰਜ਼ਿਲਾ ਇਮਾਰਤ ਹੈ ਜਿਸ ਵਿੱਚ ਮਾਲ ਦੇ ਹੇਠਾਂ ਲਗਭਗ ਤਿੰਨ ਮੰਜ਼ਿਲਾ ਪਾਰਕਿੰਗ ਰੈਂਪ ਹਨ, ਜਿਸ ਵਿੱਚ 2000 ਗੱਡੀਆਂ ਰੱਖਣ ਦੀ ਸਮਰੱਥਾ ਹੈ। ਐਂਪੋਰੀਅਮ ਮਾਲ ਦਾ ਖੇਤਰਫਲ 2,700,000 ਵਰਗ ਫੁੱਟ (250,000 ਮੀਟਰ) ਹੈ, ਜੋ ਕਿ ਦ ਮਾਲ ਆਫ਼ ਅਮਰੀਕਾ '''(Mall of America)''' ਜਿੰਨਾ ਵੱਡਾ ਹੈ, ਜਾਂ ਵੈਟੀਕਨ ਸਿਟੀ ਜਿੰਨਾ ਅੱਧਾ ਵੱਡਾ ਹੈ। 200 ਤੋਂ ਵੱਧ ਅੰਤਰਰਾਸ਼ਟਰੀ ਅਤੇ ਸਥਾਨਕ ਸਟੋਰ ਪੈਦਲ ਚੱਲਣ ਵਾਲਿਆਂ ਲਈ 5 ਪੱਧਰਾਂ ਦੇ ਨਾਲ-ਨਾਲ ਪ੍ਰਬੰਧ ਕੀਤੇ ਗਏ ਹਨ।
[[ਤਸਵੀਰ:Emporium_Mall_During_Construction.jpg|right|thumb|ਨਿਰਮਾਣ ਦੌਰਾਨ ਮਾਲ, ਕੁਝ ਦੁਕਾਨਾਂ ਕੰਮ ਵਿੱਚ ਹਨ।]]
[[ਸ਼੍ਰੇਣੀ:ਵਿਕੀਡਾਟਾ ਤੇ ਗੁਣਕ ਹਨ]]
t952s43xl9547ymkw2cfn2otgao5y12
ਤਸਵੀਰ:Arfa Sayeda Zehra.jpg
6
205510
850706
2026-10-28T00:01:18Z
Kuldeepburjbhalaike
18176
850706
wikitext
text/x-wiki
==Summary==
{{Non-free use rationale 2
|Description = Arfa Sayeda Zehra (1942-2025), Pakistani human rights activist
|Source = '''Original publication''': unknown<br/>
'''Immediate source''': [https://www.karachiliteraturefestival.com/speakers/arfa-sayeda-zehra-2/ Arfa Sayeda Zehra]
|Author = unknown
|Article = ਅਰਫਾ ਸਈਦਾ ਜ਼ੇਹਰਾ
|Purpose = for visual identification of the person in question, at the top of their biographical article
|Replaceability = The subject is deceased, so it is not possible to take a free equivalent.
|Minimality = The image serves as the primary means of visual identification of the subject, who is critically discussed in the article.
|Commercial = Its low resolution and use in an educational article should not affect the value of the original work, or limit the copyright holder's rights or ability to distribute the original.
|Other information = The subject of the photograph has been deceased since: 2025
}}
==Licensing==
{{Non-free biog-pic|Arfa Sayeda Zehra}}
20qf6qpuqzx7ek2sfw0lzkv4lisl5gy
ਸ਼੍ਰੇਣੀ:ਜਨਮ 1596
14
205511
850708
2026-10-28T08:36:01Z
Tamanpreet Kaur
26648
ਖ਼ਾਲੀ ਸਫ਼ਾ ਬਣਾਇਆ
850708
wikitext
text/x-wiki
phoiac9h4m842xq45sp7s6u21eteeq1