Vicipedia
lfnwiki
https://lfn.wikipedia.org/wiki/Paje_xef
MediaWiki 1.47.0-wmf.9
first-letter
Media
Spesial
Discute
Usor
Usor Discute
Vicipedia
Vicipedia Discute
Fix
Fix Discute
MediaWiki
MediaWiki talk
Model
Model Discute
Aida
Aida Discute
Categoria
Categoria Discute
TimedText
TimedText talk
Modulo
Modulo Discute
Event
Event talk
Jesus Cristo
0
1280
43227
43224
2026-07-06T21:40:43Z
Elefentistenova
13358
43227
wikitext
text/x-wiki
{{Biografia
| imaje = Spas vsederzhitel sinay (cropped1).jpg
| descrive = La [[Cristo Pantocrator (Sinai)|Cristo Pantocrator]] de la [[Monceria de San Catalina de Monte Sinai]] a [[Monte Sinai]], sentenio 6 ec
| nase = 6 a 4 aec, [[rena de Herod]], Impero Roman
| mori = 30 o 33 ec, [[Ieruxalim]], [[Iudea]], Impero Roman
| profesa = carpentor, predicor iudi
}}
'''Jesus''' (s 6 a 4 aec - 30 o 33 ec),{{efn|{{lang|grc|Ἰησοῦς}}, {{peti|romanida:}} {{transleteri|grc|Iēsoús}}, probable de {{langx|he|יֵשׁוּעַ|label=[[ivri (lingua)|ivri]] o [[arami (lingua)|arami]]}}, {{peti|romanida:}} {{transleteri|und|[[Yeshua|Yēšūaʿ]]}} }} ci on nomi ance '''Jesus Cristo''',{{efn|[[copta (lingua)|copta]]: {{lang|cop|Ⲓⲏⲥⲟⲩⲥ Ⲡⲓⲭ́ρⲓⲥτⲟⲥ}}; [[itiopica]]: {{lang|gez|መሲህ ኢየሱስ}}; [[coine|elinica]]: {{lang|grc|Ἰησοῦς Χριστός}}; [[ivri (lingua)|ivri]]: {{lang|hbo|ישוע המשיח}}; [[latina (lingua)|latina]]: {{lang|la|Iesus Christus}}; [[slavonica vea eglesal|slavonica]]: {{lang|cu|І҆исоу́съ Хрїсто́съ}}; [[siriaca clasica|siriaca]]: {{lang|syc|ܝܫܘܥ ܡܫܺܝܚܳܐ}}}}, '''Jesus de Nazaret''' e otra nomes e titulos variosa, ia es un predicor [[iudisme|iudi]] e [[Jesus en cristianisme|xef relijiosa]] de la sentenio prima en la provinse roman [[Iudea]].{{sfn|Vermes|1981|pp=20, 26, 27, 29}} El es la figur sentral de [[cristianisme]], la relijio la plu grande de la mundo. La plu de ramos de cristianisme regarda Jesus como la [[incarne (cristianism)|incarne]] de [[Dio la Fio]] e la [[Maxia]] o [[Cristo]] espetada. La [[Evanjelio]]s, spesial la cuatro Evanjelios canonal de la [[Atesta Nova]], conteni la naras de la vive de Jesus. De la [[Lumina]], rexerca academial ia produi vistas diversa sur la fidablia istorial de la Evanjelios e la grado a cual los refleta la Jesus istorial,{{sfn|Powell|1998|pp=168–173}}{{efn|Ehrman scrive: "La mundo academial comparti jeneral la idea ce la naras de la evanjelios no es intera esata ma remane importante per la verias relijiosa cual los atenta comunica, an si persones estra de lo no conose o crede lo tan vasta."<ref>Bart D. Ehrman. [http://www.thegreatcourses.com/courses/historical-jesus.html Historical Jesus. 'Prophet of the New Millennium']. {{Webarchive|url=https://web.archive.org/web/20190123155853/https://www.thegreatcourses.com/courses/historical-jesus.html |date=23 January 2019 |arcivo=1}} Course handbook, p. 10 (Lecture Three. V. B.), The Teaching Company, 2000, Lecture 24</ref><br />Sanders scrive: "La cristianes la plu temprana no ia scrive un nara de la vive de Jesus, ma plu esata los ia usa, e donce ia conserva, unias individua - pasajes corta sur sua parolas e atas. Plu tarda, autores e editores ia move e ordina esta unias. [...] Cristianes temprana ia revisa alga materias e ia crea otras."{{sfn|Sanders|1993|p=57}}}}{{Sfn|Bowman Jr.|Komoszewski|2019|p=22–23}}<ref>{{Cite journal|author-first1=Craig A. |author-last1=Evans|url=https://theologicalstudies.net/wp-content/uploads/2022/08/54.1.1.pdf|title=Life-of-Jesus Research and the Eclipse of Mythology|journal=Theological Studies |volume=54 |year=1993|pages= 13–14|quote=First, the New Testament Gospels are now viewed as useful, if not essentially reliable, historical sources. Gone is the extreme skepticism that for so many years dominated gospel research. Representative of many is the position of E. P. Sanders and Marcus Borg, who have concluded that it is possible to recover a fairly reliable picture of the historical Jesus.}}</ref> ma cuasi tota eruditas moderna de [[anticia clasica|anticia]] acorda ce Jesus ia esiste istorial.{{efn |name=exist|En un resenia de 2011 sur la state de eruditia moderna, [[Bart D. Ehrman]] ia scrive: "Sin duta el ia esiste, como cuasi cada erudita capas de la antica clasica, cristian o noncristian, acorda."{{sfn|Ehrman|2011|p=[https://archive.org/details/forged_ehrm_2011_000_10544376/page/n298 285]}} [[Richard A. Burridge]] declara: "Algas argumenta ce Jesus es mera un produida de la imajina de la Eglesa, e ce Jesus is esiste nunca. Me debe dise ce me conose no erudita criticante e respetable ci dise acel ancora."<ref>{{cite book |title=Jesus Now and Then |first1=Richard A. |last1=Burridge |first2=Graham |last2=Gould |year=2004 |isbn=978-0-8028-0977-3 |page=[https://archive.org/details/jesusnowthen0000burr/page/34 34] |publisher=Wm. B. Eerdmans |url=https://archive.org/details/jesusnowthen0000burr/page/34}}</ref> [[Robert M. Price]] no crede ce Jesus ia esiste, ma el acorda ce esta perspetiva oposa la opinas de la majoria de eruditas. <ref>{{cite encyclopedia |first=Robert M. |last=Price |title=Jesus at the Vanishing Point |encyclopedia=The Historical Jesus: Five Views |editor-last1=Beilby |editor-last2=Eddy |year=2009 |publisher=InterVarsity |isbn=978-0-8308-7853-6 |editor-first=James K. |pages=55, 61 |url=https://books.google.com/books?id=O33P7xrFnLQC&pg=PA55 |editor2-first=Paul R. |access-date=14 August 2015 |archive-date=7 September 2015 |archive-url=https://web.archive.org/web/20150907112540/https://books.google.com/books?id=O33P7xrFnLQC&pg=PA55 |url-status=live}}</ref> [[James D. G. Dunn]] nomi la teorias sur la nonesiste de Jesus "un tese intera mor".<ref>{{cite encyclopedia |title=Paul's understanding of the death of Jesus |encyclopedia=Sacrifice and Redemption |first=Stephen W. |last=Sykes |year=2007 |publisher=Cambridge University Press |isbn=978-0-521-04460-8 |pages=35–36}}</ref> Longo [[Michael Grant]] (un clasiciste): "En anios resente [de 2004], 'no erudita seria ia osa proposa la nonesiste istorial de Jesus', o a la min vera poca ia fa lo, e los no ia susede refuta la indicas multe plu forte e vera abundante per la oposada."<ref>{{cite book |first=Michael |last=Grant |title=Jesus|publisher=Phoenix |year=2004 |isbn=978-0-684-14889-2 |page=200}}</ref> [[Robert E. Van Voorst]] declara ce eruditas biblial e istoristes clasica opina ce on ia refuta eficas la teorias sur la nonesiste de Jesus.{{sfn|Van Voorst|2000|p=16}} Scrivente en ''[[The Daily Beast]]'', [[Candida Moss]] e [[Joel Baden]] declara ce "on ave un consensa cuasi universal entre eruditas biblial – a la min la eruditas autentica – ce Jesus ia es, en fato, un om real."<ref>{{Cite news |url=https://www.thedailybeast.com/so-called-biblical-scholar-says-jesus-a-made-up-myth |title=So-Called 'Biblical Scholar' Says Jesus a Made-Up Myth |newspaper=The Daily Beast |date=5 October 2014 |author-first2=Joel |author-last2=Baden |author-link1=Candida Moss|author-first1=Candida |author-last1=Moss |access-date=14 July 2021 |archive-date=5 December 2021 |archive-url=https://web.archive.org/web/20211205210029/https://www.thedailybeast.com/so-called-biblical-scholar-says-jesus-a-made-up-myth |url-status=live}}</ref>}}
Longo la tradision cristian, como la Evanjelios e la [[Atas de la Apostoles]] representa lo, sua jenitores ia [[sircoside de Jesus|sircoside Jesus]] a eda de oto dias e ia [[presenta de Jesus|presenta]] el a la [[Templo de Ieruxalim]] a 40 dias. [[Joan la Batizor]] ia [[batiza de Jesus|batiza]] el cuando el ia es un adulte joven, e, pos [[tenta de Jesus|40 dias e notes]] de juna en la tera savaje, el ia comensa sua servi publica. El ia es un ensenior vagante ci, longo la credes de sua seguores, ia posese autoria divin per interprete la lege iudi. Frecuente Jesus ia debate con otra iudis, la plu comun la [[fariseos]] e [[saduseos]], sur la modo la plu bon per segue Dio. El ia remedia maladas, ia ensenia par parabolas, e ia colie seguores, de ci el ia asinia 12 per es sua apostoles. Longo la naras de la Atesta Nova, la autoriosas ia aresta el en Ieruxalim e la [[Sanhedrin]] ia litiga el.{{sfn|Sanders|1993|p=11}} Los ia dona el a la autoriosas roman, e [[Pontio Pilato]], la prefeto roman de Iudea, ia comanda ce on [[crusi de Jesus|crusi]] el. En la [[teolojia cristian]], Cristo ia [[revive de Jesus|revive de la mores]] a la dia tre pos sua mori, e esta funda de crede ia developa a la [[cristianisme primitiva|Eglesa cristian temprana]], cual ia estende a un [[sperde de cristianisme|promove mundal]].{{sfn|Sanders|1993|pp=11, 14}}
La teolojia cristian inclui la credes ce la [[Spirito Santa]] ia consepi Jesus, ce un virjin nomida [[Maria (madre de Jesus)|Maria]] ia [[nase virjinal de Jesus|pari]] el, ce el ia fa [[miracles de Jesus|miracles]], ia fundi la [[Eglesa]] cristian, ia mori par crusi como un sacrifia per espia pecas, ia revive de la mores a la dia tre, e ia [[asende de Jesus|asende]] a [[Sielo en cristianisme|Sielo]], de do el va reveni. Cristianes crede comun ce Jesus capasi ce la popla reconsilia con [[Dio en cristianisme|Dio]]. La [[Crede de Nisea]] afirma ce Jesus va [[judi final|judi la viventes e la mores]], o ante o pos lor [[revive universal|revive corpal]], un aveni cual [[escatolojia cristian]] asosia con la [[Ariva Du]] de Jesus. Multe ramos de cristianisme regarda Jesus como la incarne de Dio la Fio, la person du de la tre persones de la [[Trinia]]. A cada anio, tipal a 25 desembre, on selebra la nase de Jesus en Betlehem como [[natal]].{{efn|La plu de cristianes e [[alauistes]] selebra natal. Un parte de la eglesas de [[cristianes este|cristian este]] selebra natal a 25 desembre de [[calendario julian]]. Selebras natal comensa la [[vijila de natal]], tipal a 24 desembre.}} On onora sua [[crusi]] a [[venerdi santa]] e sua revive a soldi de [[pascua]]. La eda de calendario cual la mundo usa la plu vasta, en cual la anio presente es {{CURRENTYEAR}} [[eda comun|ec]], es fundida tradisional sur la data aprosima de la nase de Jesus.
[[Iudisme]] tradisional rejeta la crede ce Jesus ia es la maxia espetada, afirmante ce el no ia reali la predises maxial, ce nun ia [[unje|unje legal]] el, e ce el ia es no divin no reviveda. Par contrasta, [[Jesus en islam|islam regarda Jesus]]{{efn|Frecuente nomida par sua nom curanal, {{transleteri|ar|ISO|[[Isa (nom)|ʿĪsā]]}}}} como la maxia e un [[profetas de islam|profeta]] de [[Dio en Islam|Dio]], ci Dio ia envia a la ivris e ci va reveni a Tera ante la [[Dia de Judi en Islam|Dia de Judi]]. [[Muslim]]es crede ce la virjin [[Maria en Islam|Maria]] ia pari Jesus, ma ce el ia es no Dio no la fio de Dio. La plu de muslimes no crede ce on ia mata o ia crusi el, ma ce Dio ia leva el a Sielo en cuando el ia es ancora vivente. {{efn|Alga muslimes medieval ia crede ce on ia crusi Jesus, como ance la membros de la promove moderna Ahmadiyya}} La credores de [[bahaisme]], [[durzi]] e [[rastafarisme]] venera ance Jesus.
== Nom ==
Un person iudi en la tempo de Jesus ia ave tipal sola un nom, pos cual on ia ajunta a veses un espresa padral en la forma "fio de [nom de padre]", o la vila de orijina de la person.<!--<ref name="Britannica" />--> Donce, en la Atesta Nova, on nomi comun Jesus como "Jesus de [[Nazaret]]". La visinas de Jesus en Nazaret ia nomi el "la carpentor, la fio de [[Maria (madre de Jesus)|Maria]] e frate de [[Jacobo (frate de Jesus)|Jacobo]] e [[Josef (frate de Jesus)|Joses]] e [[Judas (frate de Jesus)|Judas]] e [[Simon (frate de Jesus)|Simon]]", "la fio de la carpentor", o "la fio de [[San Josef|Josef]]"; en la [[Evanjelio de Joan]], la disiplo [[Filipo la Apostol|Filipo]] refere a el como "Jesus, fio de Josef, de Nazaret".
La nom Jesus es la transleteri (tra la latina ''Iesus'') de la [[elinica antica]] {{lang|grc|Ἰησοῦς}}, cual es la varia elinica de la nom [[ivri]] Joxua (יְהוֹשֻׁעַ ''Yehoxua'').<ref>{{Cite web |title=Strong's Greek: 2424. Ἰησοῦς (Iésous) -- Jesus |url=https://biblehub.com/greek/2424.htm |access-date=2026-01-15 |website=biblehub.com |quote=''The Greek name corresponds to the Hebrew "Joshua."''}}</ref><ref>{{Cite web |title=Matthew 1 Benson Commentary |url=https://biblehub.com/commentaries/benson/matthew/1.htm |access-date=2026-01-15 |website=biblehub.com |quote=''The name Jesus, in Greek, answers to Joshua, or rather, Jehoshuah, in Hebrew, which signifies Jehovah shall save;''}}</ref> La nom ivri/[[arami (lingua)|arami]] ia es comun entre iudis judean a la tempo de la nase de Jesus,<ref>{{Cite web |title=Matthew 1 Barnes' Notes |url=https://biblehub.com/commentaries/barnes/matthew/1.htm |access-date=2026-01-15 |website=biblehub.com |quote=''It was a very common name among the Jews.''}}</ref> an si a acel periodo popla ia corti ja lo de יְהוֹשֻׁעַ (''Yehoxua'') a יֵשׁוּעַ (''Yexua''); la corti ia aveni ja en libros biblial plu tarda como [[Nehemia]],<ref>{{Cite web |title=H3442 - yēšûaʿ - Strong's Hebrew Lexicon (KJV) |url=https://www.blueletterbible.org/kjv/gen/1/1/s_1001 |access-date=2026-01-15 |website=Blue Letter Bible |language=en |quote=''Gesenius' Hebrew-Chaldee Lexicon: יֵשׁוּעַ [Jeshua] a contracted form of the proper name יְהוֹשֻׁעַ used in the later Hebrew ... proper name of other men, mentioned in the books of Chronicles, Ezra and Nehemiah''}}</ref> en cual on nomi [[Joxua]] como Yexua.<ref>{{Cite web |title=Nehemiah 8:17 Hebrew Interlinear: ... for the sons of Israel had not done, from the days of '''Jeshua [יֵשׁוּעַ, Yeshua] son of Nun''' ... |url=https://biblehub.com/interlinear/nehemiah/8-17.htm |access-date=2026-01-15 |website=biblehub.com}}</ref>
La nom sinifia "Dio salva" en ivri, leteral "[[Iaue]] salva",<ref>{{Cite web |title=Strong's Hebrew: 3091. יְהוֹשׁ֫וּעַ (Yehoshua) -- Joshua |url=https://biblehub.com/hebrew/3091.htm |access-date=2026-01-15 |website=biblehub.com |quote=''Both Joshua son of Nun and Jesus of Nazareth bear the name "Yahweh saves"''}}</ref> de la radis ישׁע (''y-š-ʿ,'' 'salva') e la nom יְשׁוּעָה (''yexuah'', 'salva'). La [[Evanjelio de Mateo]] afirma direta la sinifia etimolojial de la nom de Jesus en la predise de la anjel a Josef sur sua nase: "tu va nomi el Jesus (Ἰησοῦς), car el va salva sua popla de lor pecas".
Comentores ia dona un sinifia teolojial a la fato ce [[Joxua]], la susedor de [[Moxe]], porta la mesma nom como Jesus en la elinica, ivri, e arami orijinal, car on trasa frecuente un paralel entre la du xefes e la etimolojia de lor nom compartida ('salva'): Joxua gida la iudis a en la Tera Prometeda, en cuando la teolojia cristian dise ce Jesus salva e iudis e noniudis de lor pecas.<ref>{{Cite web |title=Matthew 1 Matthew Poole's Commentary |url=https://biblehub.com/commentaries/poole/matthew/1.htm |access-date=2026-01-15 |website=biblehub.com |quote=''Joshua had his name from the same word, because he was to be a temporal saviour to save the Jews, the whole body of the Jews, from the Canaanites their enemies. This Jesus was to save his people, all that should believe in his name, whether Jews or Gentiles, from their sins.''}}</ref><ref>{{Cite web |title=Matthew 1 Vincent's Word Studies |url=https://biblehub.com/commentaries/vws/matthew/1.htm |access-date=2026-01-15 |website=biblehub.com |quote=''Under Joshua the enemies of Israel were conquered, and the people established in the Promised Land. So Jesus leads his people in the fight with sin and temptation.''}}</ref><ref>{{Cite web |title=Matthew 1 Benson Commentary |url=https://biblehub.com/commentaries/benson/matthew/1.htm |access-date=2026-01-15 |website=biblehub.com |quote=''It was not without reason that the successor of Moses was called by this name; for, by subduing the Canaanites, and putting the tribes of Israel in possession of the promised land, he showed himself to be, under God, the Saviour of his people. But this name agrees much better to our Jesus, who both delivers his followers from much more dangerous enemies, and divides unto them a much more glorious inheritance.''}}</ref><ref>{{Cite web |title=Matthew 1 Cambridge Bible for Schools and Colleges |url=https://biblehub.com/commentaries/cambridge/matthew/1.htm |access-date=2026-01-15 |website=biblehub.com |quote=''Joshua who led the Israelites into the Promised Land, and Joshua or Jeshua, who was high priest at the time of the return from the Babylonish Captivity, are types of Jesus Christ in respect both of work and name.''}}</ref>
=== Jesus Cristo ===
De la sentenio prima, cristianes nomi comun Jesus como "Jesus Cristo".{{sfn|Doninger|1999|p=212}} La parola Cristo no es un nom individual ma ia es orijinal un titulo o posto ("la Cristo"), sinifiante "la [[Maxia]]".{{sfn|Pannenberg|1968|pp=30–31}}<ref>{{cite book |title=Theology of the New Testament |first=Rudolf K. |last=Bultmann |year=2007 |isbn=978-1-932792-93-5 |page=80 |publisher=Baylor University Press}}</ref> La terma deriva de la elinica {{lang|grc|[[wikt:Χριστός|Χριστός]]}} ({{transleteri|grc|Christos}}),<ref>{{CathEncy |wstitle= Origin of the Name of Jesus Christ |first=Anthony J. |last= Maas}}</ref><ref>{{cite book |last=Heil |first=John P. |url=https://books.google.com/books?id=i4u42_PsPNsC&pg=PA66 |title=Philippians: Let Us Rejoice in Being Conformed to Christ |publisher=Society of Biblical Literature |year=2010 |isbn=978-1-58983-482-8 |page=66 |access-date=14 August 2015 |archive-url=https://web.archive.org/web/20150907173832/https://books.google.com/books?id=i4u42_PsPNsC&pg=PA66 |archive-date=7 September 2015 |url-status=live}}</ref> un tradui prestada de la parola ivri {{lang|he|[[wikt:מָשִׁיחַ|משיח]]}} ({{transleteri|he|maxiakh}}), transleteri a elefen como ''maxia''.{{sfn|Vine|1940|pp=274–275}} La terma ivri sinifia "[[unjeda]]", de la verbo מָשַׁח (''maxaḥ''), "frota con olio, unje". En la [[Septuajinta]], la traduores ia usa la parola elinica χριστός (''christos''), sinifiante "unjeda",<ref>{{Cite web |title=χριστός Greek Word Study Tool|url=https://www.perseus.tufts.edu/hopper/morph?l=χριστός&la=greek#lexicon|access-date=2026-01-21|website=www.perseus.tufts.edu|quote=of persons, anointed}}</ref> de la verbo χρίω (''chrio''), "frota con olio, unje".<ref>{{Cite web |title=χρίω Greek Word Study Tool|url=https://www.perseus.tufts.edu/hopper/morph?l=χρίω&la=greek#lexicon|access-date=2026-01-21|website=www.perseus.tufts.edu|quote=Autenrieth: smear with oil, anoint, LSJ: rub, anoint with scented unguents or oil}}</ref> En iudisme biblial, pretes ia usa olio santa per unje persones e ojetos spesial santa como parte de lor indui relijiosa.
Cristianes temprana ia nomi Jesus como "la Cristo" car los ia crede ce el es la Maxia de ci la ariva es prediseda en la [[Biblia ivri]] (Atesta Vea). En usa posbiblial, la popla ia comensa regarda ''Cristo'' como un nom — un parte de "Jesus Cristo". La parola ''[[cristian]]'', sinifiante un seguor de Cristo, es en usa de la sentenio prima.{{sfn|Mills|Bullard|1998|p=[https://books.google.com/books?id=goq0VWw9rGIC&pg=PA142 142]}}
== Vive e instruis en la Atesta Nova ==
=== Evanjelios canonal ===
[[File:Dublin, Chester Beatty Ms Papyrus 45 BP I ff.13-14 Luke 11.50-12.12; 12.18-37; 12.42-13.1; 13.jpg|alt=Un manoscrito de papiro de cuatro pajes cual es laserada en multe locas.|thumb|Un [[papiro]] elinica de sentenio 3 de [[Evanjelio de Lucas]]]]
La cuatro [[evanjelios canonal]] ([[Evanjelio de Mateo|Mateo]], [[Evanjelio de Marco|Marco]], [[Evanjelio de Lucas|Lucas]], e [[Evanjelio de Joan|Joan]]) es la fontes xef per la vive e mesaje de Jesus.<!-- <ref name="Britannica" /> --> Otra partes de la Atesta Nova inclui ance referes a episodios clavin en sua vive, como la [[Come Ultima]] en 1 Corintianes 11:23-26. [[Atas de la Apostoles]] refere a la servi temprana de Jesus e la previde de lo par [[Joan la Batizor]].<ref>{{cite book |title=The Book of the Acts|series=New International Commentary on the New Testament|first=Frederick F. |last=Bruce |year=1988 |isbn=978-0-8028-2505-6 |page=362 |publisher=Wm. B. Eerdmans}}</ref>{{sfn|Rausch|2003|p=77}}{{sfn|Vermes|1981|pp=20, 26, 27, 29}} Atas 1:1-11 furni plu detalias sur la [[Asende de Jesus]] ca la evanjelios canonal.{{sfn|Evans|2003|pp=521–530}} En la leteras nondisputada de Paulo, cual el ia scrive plu temprana ca la evanjelios, el sita a alga veses la parolas o instruis de Jesus.
Alga grupos cristian temprana ia ave descrives separada de la vive e instruis de Jesus cual la Atesta Nova no inclui. Estas inclui la [[Evanjelio de Tomas]], la [[Evanjelio de Petro]], la [[Evanjelio de Judas]], la [[Apocrifa de Jacobo]], e multe otra scrivedas apocrifa. La plu de eruditas conclui ce autores ia scrive esta testos plu tarda, e ce los es min fidable istorial ca la evanjelios canonal.{{sfn|Brown|1997|pp=835–840}}<ref>{{cite book |last1=Evans |first1=C. A. |title=Exploring the Origins of the Bible |date=2008 |publisher=Baker |page=154}}</ref>{{sfn|Keener|2009|p=56}}
==== Autoria, data, e fidablia ====
La evanjelios canonal es cuatro naras, e la tradision atribui cada a un autor diferente. La eruditas regarda jeneral la autores de la evanjelios como usante nomes falsa. La tradision atribui los a la [[cuatro evanjelistes]], cada asosiada con Jesus o sua seguores prosima:{{sfn|Funk|Hoover|The Jesus Seminar|1993|p=3}} Marco a [[Joan Marco]], un acompanior de [[San Petro|Petro]];<!-- <ref name="May Metzger Mark" /> --> [[Mateo (apostol)|Mateo]] a un de la disiplos de Jesus;{{sfn|Funk|Hoover|The Jesus Seminar|1993|p=3}} [[Lucas (evanjeliste)|Lucas]] a un acompanior de [[Paulo (apostol)|Paulo]] notada en alga leteras;{{sfn|Funk|Hoover|The Jesus Seminar|1993|p=3}} e Joan a un otra de la disiplos de Jesus,{{sfn|Funk|Hoover|The Jesus Seminar|1993|p=3}} la "[[disiplo amada]]".{{sfn|Cross|Livingstone|2005|loc=John, St.}}
Seguente la [[primia de Marco]], la evanjelio prima cual on ia scrive ia es la [[Evanjelio de Marco]] (60-75 ec), segueda par la Evanjelio de Mateo (65-85 ec), la Evanjelio de Lucas (65-95 ec), e la Evanjelio de Joan (75-100 ec).<ref>{{cite book |url=https://books.google.com/books?id=l2sloGWzzV8C&pg=PA58 |title=Can We Trust the Gospels?: Investigating the Reliability of Matthew, Mark, Luke, and John |publisher=Crossway |year=2007 |page=58 |isbn=978-1-4335-1978-9 |first=Mark D. |last=Roberts |access-date=14 August 2015 |archive-date=7 September 2015 |archive-url=https://web.archive.org/web/20150907174109/https://books.google.com/books?id=l2sloGWzzV8C&pg=PA58 |url-status=live}}</ref> La plu de eruditas acorda ce la autores de Mateo e Lucas ia usa Marco como un fonte per lor evanjelios. Car Mateo e Lucas comparti ance alga contenida no trovada en Marco, multe eruditas dedui ce los ia usa un [[fonte Q|fonte ipotesal Q]] en ajunta a Marco, en cuando un cuantia cresente suporta la [[ipotese de Farrer]] o la Posterioria Matean, en cual Mateo e Lucas ia usa direta lunlotra.<ref name=":022">{{Cite book |last=Runesson|first=Anders|title=Jesus, New Testament, Christian Origins|date=2021|publisher=Eerdmans|isbn=9780802868923}}</ref><ref name="TSP20222">{{Cite book |title=The Synoptic Problem 2022: Proceedings of the Loyola University Conference|publisher=Peeters Pub and Booksellers|year=2023|isbn=9789042950344|pages=5|editor-first1=Olegs|editor-last1=Andrejevs|editor-first2=Simon J. |editor-last2=Joseph|editor-first3=Edmondo|editor-last3=Lupieri|editor-first4=Joseph|editor-last4=Verhayden}}</ref>{{sfn|Licona|2010|pp=210–221}} Lucas e Mateo trata lor fontes plu conservante ca otra istoristes antica como [[Diodoro de Sisilia]], an si la paraleles e varias de la evanjelios sinotica es tipal de biografias istorial antica.<ref name="Kloppenborg 49–79">{{Cite journal |last=Kloppenborg|first=John|title=Variation in the Reproduction of the Double Tradition and an Oral Q?|journal=Ephemerides Theologicae Lovaniensis|volume=83|issue=1|pages=49–79}}</ref><ref name="Licona 2016 XIII-XIV">{{Cite book |last=Licona |first=Mike |title=Why are there Differences in the Gospels? What we can Learn from Ancient Biography |publisher=Oxford University Press |year=2016 |isbn=978-0190264260 |pages=XIII-XIV}}</ref>
Un aspeta importante de la studia de la evanjelios es la [[jenero leteratural]] a cual los parteni. La jenero "es un costum clavin cual gida e la composa e la interprete de scrivedas".<ref>{{Cite book|last1=Burridge|first1=R. A. |year=2006|chapter=Gospels|editor-first1=J. W. |editor-last1=Rogerson|editor-first2=Judith M. |editor-last2=Lieu|title=The Oxford Handbook of Biblical Studies|publisher=Oxford University Press|page=433}}</ref> Esce la autores de la evanjelios ia intende scrive novelas, mitos, istorias, o biografias ave un efeto sinifiante sur como on debe interprete lor obras. Alga studias ia sujesta ce on debe regarda la evanjelios como un forma de biografia antica.<ref>Talbert, C. H. (1977). ''What is a Gospel? The Genre of the Canonical Gospels''. Philadelphia, Pennsylvania: Fortress Press.</ref><ref>Wills, L. M. (1997). ''The Quest of the Historical Gospel: Mark, John and the Origins of the Gospel Genre''. London: Routledge. p. 10.</ref><ref>Burridge, R. A. (2004). ''What are the Gospels? A Comparison with Graeco-Roman Biography''. revised updated edn. Grand Rapids, Michigan: Eerdmans.</ref> An si criticistes esiste,<ref>e.g. Vines, M. E. (2002). ''The Problem of the Markan Genre: The Gospel of Mark and the Jewish Novel''. Atlanta, Georgia: Society of Biblical Literature. pp. 161–162.</ref> la vista ce la evanjelios es un tipo de biografia antica representa la acorda jeneral entre la eruditas oji.<ref>{{cite book |last=Stanton |first=Graham N. |url=https://books.google.com/books?id=A7wNGMrAiD0C |title=Jesus and Gospel |publisher=Cambridge University Press |year=2004 |isbn=978-0-521-00802-0 |page=192 |access-date=22 August 2017 |archive-url=https://web.archive.org/web/20200226005236/https://books.google.com/books?id=A7wNGMrAiD0C |archive-date=26 February 2020 |url-status=live}}</ref><ref>{{cite book |last1=Rogerson |first1=J. W. |url=https://books.google.com/books?id=eKZYMifS1fAC |title=The Oxford Handbook of Biblical Studies |last2=Lieu |first2=Judith M. |publisher=Oxford University Press |year=2006 |isbn=978-0-19-925425-5 |page=437 |access-date=22 August 2017 |archive-url=https://web.archive.org/web/20191225204746/https://books.google.com/books?id=eKZYMifS1fAC |archive-date=25 December 2019 |url-status=live}}</ref>
Consernante la esatia de la naras, la puntos de vista varia entre regarda los como descrives nonerante de la vive de Jesus,{{sfn|Grudem|1994|pp=90–91}} asta duta lor fidablia istorial a puntos diversa,{{sfn|Sanders|1993|p=3}} e asta regarda ce los furni multe poca informa istorial sur sua vive ultra la fatos fundal.{{sfn|Köstenberger|Kellum|Quarles|2009|pp=117–125}}{{sfn|Ehrman|1999|pp=22–23}}
==== Strutur e contenida comparativa ====
On nomi Mateo, Marco e Lucas la Evanjelios Sinotica, de la elinica {{lang|grc|σύν}} ({{transleteri|grc|syn}}, 'en junta') e {{lang|grc|ὄψις}} ({{transleteri|grc|opsis}}, 'vista'),<ref name="Haffner-2008" /><ref name="Scroggie-1995" /><ref>{{OED|synoptic}}</ref> car los es simil en contenida, ordina de nara, lingua e strutur de paragrafes, e on pote pone fasil los a lado de lunlotra per un compara sinotica.<ref name="Haffner-2008">{{cite book |title=New Testament Theology |first=Paul |last=Haffner |year=2008 |isbn=978-88-902268-0-9 |page=135 |publisher=Gracewing}}</ref><ref name="Scroggie-1995">{{cite book |title=A Guide to the Gospels |first=W. Graham |last=Scroggie |year=1995 |isbn=978-0-8254-9571-7 |page=128 |publisher=[[Kregel Publications]]}}</ref><ref>{{Britannica URL |title=Synoptic Gospels |url=topic/Synoptic-Gospels}}</ref> Eruditas acorda tipal ce lo es nonposible trova cualce relata leteratural direta entre la Evanjelios Sinotica e la Evanjelio de Joan.<ref>{{cite book |title=The Gospel of John |first1=Francis J. |last1=Moloney |first2=Daniel J. |last2=Harrington |year=1998 |isbn=978-0-8146-5806-2 |page=[https://archive.org/details/gospelofjohn0004molo/page/3 3] |publisher=Liturgical Press |url=https://archive.org/details/gospelofjohn0004molo/page/3}}</ref> Multe avenis — como la batiza de Jesus, sua crusi, e la interatas con sua apostoles — apare en la Evanjelios Sinotica, ma avenis como la [[muta de Jesus|muta]] e la [[esorsi]] de demones{{sfn|Witherington|1997|p=113}} par Jesus no apare en Joan, cual difere ance sur otra temas, como la [[purga de la Templo]].<ref>{{cite book |last=Ladd |first=George E. |title=A Theology of the New Testament |year=1993 |publisher=Wm. B. Eerdmans |isbn=978-0-8028-0680-2 |page=251 |url=https://books.google.com/books?id=eIdkM00EdlAC&pg=PA251 |access-date=14 August 2015 |archive-date=7 September 2015 |archive-url=https://web.archive.org/web/20150907103156/https://books.google.com/books?id=eIdkM00EdlAC&pg=PA251 |url-status=live}}</ref>
La Sinoticas asentua aspetas diferente de Jesus. En Marco, Jesus es la [[Fio de Dio (cristianisme)|Fio de Dio]], de ci sua obras potiosa demostra la presentia de la [[Rena de Dio]].<ref name="May Metzger Mark" /> La autor portrae el como un faor nonfatigable de miracles e la servor de e Dio e umanas.<ref name="ThompsonPortraits">{{Cite book|editor-last1=Thompson|editor-first1=Frank Charles|title=The Thompson Chain-Reference Bible|publisher=Kirk Bride Bible Company & Zondervan Bible Publishers|year=1983|pages= 1563–1564}}</ref> Esta evanjelio corta rejistra un cuantia relativa peti de la parolas o instruis estendeda de Jesus.<ref name="May Metzger Mark" /> La Evanjelio de Mateo asentua ce Jesus es la reali de la vole de Dio como revelada en la Atesta Vea e la Senior de la Eglesa.<ref>{{Cite book|editor-last1=May|editor-first1=Herbert G. |editor-first2=Bruce M. |editor-last2=Metzger|title=The New Oxford Annotated Bible with the Apocrypha|year=1977|chapter=Matthew|pages=1171–1212}}</ref> Lo presenta el como la "Fio de David", un "re", e la Maxia.<ref name="ThompsonPortraits" />{{sfn|McGrath|2006|pp=4–6}} Lucas presenta Jesus como la salvor divin-umana ci mostra compatia a la povres.<ref name="May Metzger Luke">{{Cite book|editor-last1=May|editor-first1=Herbert G. |editor-first2=Bruce M. |editor-last2=Metzger|title=The New Oxford Annotated Bible with the Apocrypha|year=1977|chapter=Luke|pages=1240–1285}}</ref> La testo depinta el como la ami de pecores e escluidas, ci ia veni per xerca e salva la perdedas.<ref name="ThompsonPortraits" /> Esta evanjelio inclui parabolas bon conoseda, como la [[Bon Samaritan]] e la [[Fio Perosa]].<ref name="May Metzger Luke" />
La [[prologa de la Evanjelio de Joan]] identifia Jesus como un incarne de la Parola divin ([[Logos (cristianism)|Logos]]).<ref name="MayMetzgerJohn">{{Cite book|editor-last1=May|editor-first1=Herbert G. |editor-first2=Bruce M. |editor-last2=Metzger|title=The New Oxford Annotated Bible with the Apocrypha|year=1977|chapter=John|pages=1286–1318}}</ref> Como la Parola, la testo descrive Jesus como eterna presente con Dio, ativa en tota la crea, e la fonte de la natur moral e spirital de umanas.<ref name="MayMetzgerJohn" /> En esta evanjelio, Joan portrae Jesus como no sola plu grande ca cualce profeta umana pasada, ma plu grande ca cualce profeta ta pote es: el no sola parla la Parola de Dio; el es la Parola de Dio.{{sfn|Harris|1985|pp=302–310}} En la Evanjelio de Joan, Jesus revela publica sua rol divin e on depinta el como la [[Pan de Vive]], la [[Lus de la Mundo]], la [[Vite Vera]], e plu.
La autores de la Atesta Nova ia mostra jeneral poca interesa a fundi un cronolojia asoluta de la vive de Jesus o a sincroni la episodios de sua vive con la istoria secular de la eda.{{sfn|Rahner|2004|pp=730–731}} Como Joan 21:25 declara, la evanjelios no alega furni un lista completa de la avenis de la vive de Jesus.<ref>{{cite book |last=O'Collins |first=Gerald |title=Christology: A Biblical, Historical, and Systematic Study of Jesus |publisher=Oxford University Press |year=2009 |isbn=978-0-19-955787-5 |pages=1–3}}</ref> La autores ia scrive la naras xef como documentos teolojial en la contesto de [[cristianisme temprana]], considerante la linias de tempo como minor.<ref name="Wiarda75">{{cite book |title=Interpreting Gospel Narratives: Scenes, People, and Theology |first=Timothy |last=Wiarda |year=2010 |isbn=978-0-8054-4843-6 |pages=75–78 |publisher=B&H}}</ref> La evanjelios dedica sirca un tri de lor testo a la semana final de la vive de Jesus en [[Ieruxalim]], cual on nomi la [[Pasion (cristianisme)|Pasion]].<ref name="Turner613">{{cite book |title=Matthew |first=David L. |last=Turner |year=2008 |isbn=978-0-8010-2684-3 |page=613 |publisher=Baker}}</ref> Los no furni sufisinte detalias per sasia la esijes de istoristes moderna consernante datas esata, ma on pote estrae de los un imaje jeneral de la istoria de la vive de Jesus.{{sfn|Sanders|1993|p=3}}
=== Jenealojia e nase ===
{{Xef|Nase de Jesus}}
Jesus ia es iudi,{{sfn|Vermes|1981|pp=20, 26, 27, 29}} e [[Maria (madre de Jesus)|Maria]], la sposa de [[San Josef|Josef]], ia pari el. La Evanjelios de Mateo e Lucas ofre du naras diferente de sua [[jenealojia]]. Mateo trasa la asendentes de Jesus a [[Abraham]] tra [[David]],{{sfn|Sanders|1993|pp=80–91}} en cuando Lucas trasa la asendentes de Jesus tra [[Adam]] a Dio.{{sfn|Brown|1978|p=[https://books.google.com/books?id=ML1mnUBwmhcC&pg=PA163 163]}} La listas es identica entre Abraham e David ma difere forte pos acel punto; Mateo ave 27 jeneras de David a Josef, en cuando Lucas ave 42, cuasi sin coaveni entre la nomes en la du listas. Eruditas ia proposa teorias variosa per esplica perce la du jenealojias es tan diferente.
[[File:Gerard van Honthorst - Adoration of the Shepherds (1622).jpg|thumb|left|''Adora par la Pastores'' par [[Gerard van Honthorst]], 1622|alt=Un sena natal; omes e animales ensirca Maria e la Jesus nova naseda, ci es covreda en lus]]
E Mateo e Lucas descrive la nase de Jesus, spesial ce un virjin nomida Maria ia pari el en [[Betlehem]] per reali la [[profeti|profetida]]. La nara de Lucas asentua la avenis ante la [[nase de Jesus Cristo|nase de Jesus]] e foca a Maria, en cuando lo de Mateo covre xef avenis pos la nase e foca a Josef.{{sfn|Mills|Bullard|1998|p=556}}<ref name="marsh37">{{cite book |title=Jesus and the Gospels |last=Marsh |first=Clive |author-last2=Moyise|author-first2= Steve |year=2006 |isbn=978-0-567-04073-2 |page=37 |publisher=Clark International |url=https://books.google.com/books?id=ecHpPzDLkhcC&pg=PA37 |access-date=14 August 2015 |archive-date=7 September 2015 |archive-url=https://web.archive.org/web/20150907095218/https://books.google.com/books?id=ecHpPzDLkhcC&pg=PA37 |url-status=live}}</ref>{{sfn|Morris|1992|page=26}} Ambos naras declara ce Maria ia es prometeda a un om nomida Josef, ci ia es un desendente de la Re David e no ia es la padre biolojial de Jesus. Ambos suporta la dotrina de la [[nase virjin de Jesus]], longo cual la [[Spirito Santa]] ia consepi miraclosa Jesus en la utero de Maria cuando el ia es ancora un virjin.<ref name="Jeffrey">{{cite book |last=Jeffrey |first=David L. |url=https://books.google.com/books?id=7R0IGTSvIVIC |title=A Dictionary of biblical tradition in English literature |publisher=Wm. B. Eerdmans |year=1992 |isbn=978-0-85244-224-1 |pages=538–540 |access-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008221946/https://books.google.com/books?id=7R0IGTSvIVIC |archive-date=8 October 2020 |url-status=live}}</ref>{{sfn|Cox|Easley|2007|pp=30–37}}<ref>{{cite book |title=Who's Who in the New Testament |last=Brownrigg |first=Ronald |year=2002 |isbn=978-0-415-26036-7 |pages=96–100 |publisher=Taylor & Francis}}</ref> A la mesma tempo, on ave atestas, a la min en la ''Atas de la Apostoles'' par Lucas, ce persones ia pensa ce Jesus ia ave, como multe figures en anticia, un padria dual, car on declara ala ce el ia desende de la seme de David.<ref>{{Cite journal |last=Lincoln |first=Andrew T. |date=2013 |title=Luke and Jesus' Conception: A Case of Double Paternity? |journal=Journal of Biblical Literature |volume=132 |issue=3 |pages=639–658 |jstor=23487891 |issn=0021-9231}}</ref> Par aseta Jesus como sua propre fio, on comprende ce Josef dona a el la desende nesesada de David.<ref>{{Cite web |url=http://www.thesevernforum.org.uk/palette/lecture_lincoln_2015.pdf |last1=Lincoln|first1=Andrew T. |title=Conceiving Jesus: re-examining Jesus' conception in canon, Christology, and creed|publisher=The Severn Forum|date=5 March 2015|page= 4 |access-date=2 July 2019 |archive-date=10 May 2020 |archive-url=https://web.archive.org/web/20200510100248/http://www.thesevernforum.org.uk/palette/lecture_lincoln_2015.pdf |url-status=live}}</ref> Alga eruditas sujesta ce Jesus ia ave un erita levita de Maria, fundida sur sua relata de sangue con [[Elizabeth (madre de Joan la Batizor)|Elizabeth]].<ref>For example, {{citation |title=Carmen 18}}</ref>
[[File:Bellini-circumcision-NG1455-fm.jpg|thumb|alt=74.9 × 102.2 cm|''La sircoside'' par [[Giovanni Bellini]], sirca 1500. La obra depinta la [[sircoside de Jesus]].]]
En Mateo, Josef es turbada car Maria, sua prometeda, es ensinta,<ref>[[Mateo 1:19]]–[[Mateo 1:20|20]].</ref> ma en la prima de la [[sonias de San Josef|cuatro sonias de Josef]], un anjel serti a el ce el no debe teme sposi Maria, car la Spirito Santa ia consepi sua enfante.<ref name="Talbert">{{cite book |title=Matthew |first=Charles H. |last=Talbert |year=2010 |isbn=978-0-8010-3192-2 |publisher=Baker |url=https://books.google.com/books?id=tbmoR2j0-sgC |pages=29–30 |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008221946/https://books.google.com/books?id=tbmoR2j0-sgC |url-status=live}}</ref> En Mateo 2:1-12, sajas o majos de la Este trae donadas a la Jesus joven como la Re de la Iudis. Los trova el en un casa en Betlehem. [[Herode la Grande]] oia sur la nase de Jesus e, volente mata el, [[masacra de la inosentes|comanda la mata de tota bebes mas]] en Betlehem e sua visineria. An tal, un anjel averti Josef en sua sonia du, e la familia [[fuji a Ejipte]], plu tarda reveninte e abitante en Nazaret.<ref name="Talbert" />{{sfn|Harris|1985|pp=272–285}}<ref>{{cite book |last=Schnackenburg |first=Rudolf |title=The Gospel of Matthew |year=2002 |isbn=978-0-8028-4438-5 |publisher=Wm. B. Eerdmans |url=https://books.google.com/books?id=pvR39Z9O01kC&pg=PA9 |pages=9–11 |access-date=14 August 2015 |archive-date=7 September 2015 |archive-url=https://web.archive.org/web/20150907052207/https://books.google.com/books?id=pvR39Z9O01kC&pg=PA9 |url-status=live}}</ref>
En Lucas 1:31-38, Maria aprende de la anjel [[Gabriel]] ce el va consepi e pari un enfante nomida Jesus tra la ata de la Spirito Santa.<ref name="marsh37" /><ref name="Jeffrey" /> Cuando Maria es a punto de pari, el e Josef viaja de Nazaret a la casa asendente de Josef en Betlehem per enscrive en la conta de abitores comandada par [[Cesar Augusto]]. Ala, Maria pari Jesus, e car los ia trova no sala en la otel, el pone la bebeta en un [[portafeno de natal|portafeno]]. Un [[anusia a la pastores|anjel anunsia la nase a un grupo de pastores]], ci vade a Betlehem per vide Jesus e a pos sperde la novas sirca la rejion. Lucas 2:21 raconta como Josef e Maria fa ce on [[sircoside de Jesus|sircoside lor bebe a la dia oto pos la nase]] e nomi el Jesus, como Gabriel ia comanda a Maria. Pos la [[presenta de Jesus a la Templo]], Josef, Maria, e Jesus reveni a Nazaret.<ref name="marsh37" /><ref name="Jeffrey" />
=== Vive temprana, familia e profesa ===
[[File:William Holman Hunt - The Finding of the Saviour in the Temple - Google Art Project.jpg|thumb|upright=1.2|''[[Trova de la Salvor en la Templo]]'' par [[William Holman Hunt]], 1860|alt=Maria e Josef trova Jesus en la Templo]]
La Evanjelios de Lucas e Mateo identifia la site de la enfantia de Jesus como Nazaret, un vila en [[Galilea]] en la [[Israel]] moderna, do el ia abita con sua familia. An si Josef apare en descrives de la enfantia de Jesus, la testos no nota el a pos.<ref>{{cite book |last=Perrotta |first=Louise B. |title=Saint Joseph: His Life and His Role in the Church Today |publisher=Our Sunday Visitor Publishing |year=2000 |isbn=978-0-87973-573-9 |pages=21, 110–112}}</ref><ref>{{cite book |author=Reverend Archdeacon Kinane |chapter-url=https://books.google.com/books?id=EmUhCgAAQBAJ&pg=PT138 |title=Saint Joseph: His Life, His Virtues, His Privileges, His Power |page=138 |chapter=Section VI – The perpetual virginity of St. Joseph |publisher=Aeterna Press|access-date=7 June 2021 |archive-date=9 March 2024 |archive-url=https://web.archive.org/web/20240309230526/https://books.google.com/books?id=EmUhCgAAQBAJ&pg=PT138#v=onepage&q&f=false |url-status=live}}</ref> La Evanjelios e otra fontes nota sua otra membros de familia, incluinte sua madre Maria; sua cuatro [[frates de Jesus|frates]], [[Jacobo (frate de Jesus)|Jacobo]], [[Josef (frate de Jesus)|Joses]] (o Josef), [[Judas (frate de Jesus)|Judas]], e [[Simon (frate de Jesus)|Simon]]; e sua sores nonomida.<ref>{{cite book |title=Zealot: The Life and Times of Jesus of Nazareth |last=Aslan |first=Reza |author-link=Reza Aslan |year=2013 |publisher=Random House |page=[https://archive.org/details/zealotlifetimeso00reza/page/756 36] |isbn=978-1-4000-6922-4 |url=https://archive.org/details/zealotlifetimeso00reza/page/756}}</ref> La [[Evanjelio de Jacobo]] nomi la avis madral de Jesus como Joachim e Ana.<ref>{{cite book |last=Brownrigg |first=Ronald |title=Who's Who in the New Testament |url=https://books.google.com/books?id=JXqBAgAAQBAJ&q=joachim |page=194 |year=2003 |publisher=Routledge |location=New York |isbn=978-1-134-50949-2 |access-date=31 March 2023 |archive-date=9 March 2024 |archive-url=https://web.archive.org/web/20240309230540/https://books.google.com/books?id=JXqBAgAAQBAJ&q=joachim#v=snippet&q=joachim&f=false |url-status=live}}</ref> La Evanjelio de Lucas rejistra ce Maria ia es un relatada de Elizabeth, la madre de Joan la Batistor. Alga fontes contempora e estrabiblial regarda Jesus e Joan la Batistor como cusinos de grado du, fundida sur la crede ce Elizabeth ia es la fia de [[Sobe (sore de San Ana)|Sobe]], la sore de Ana.<ref>[[Patrologia Graeca|PG]] 97.1325.</ref><ref>[[Patrologia Graeca|PG]] 120.189.</ref><ref>[[Patrologia Graeca|PG]] 145.760 ([[Nicephorus Callistus]], ''Historia ecclesiastica'', 2.3).</ref>
La Evanjelio de Marco reporta ce, a la comensa de sua servi, Jesus ave un conflita con sua visinas e familia.{{sfn|Harris|1985|pp=270–272}} La madre e frates de Jesus veni per prende el car la popla dise ce el es [[Sania mental de Jesus|loco]]. Jesus responde ce sua seguores es sua familia vera. En la Evanjelio de Joan, Jesus e sua madre atende un [[rituo de sposi en Cana]], do el fa sua miracle prima pos la solisita de sua madre. Plu tarda, el es presente a sua crusi, e Jesus espresa conserna per sua bonstate.
En Marco 6:3 on nomi Jesus un {{lang|grc|τέκτων}} ({{transleteri|grc|tektōn}}), un terma cual on comprende tradisional como "carpentor" ma cual pote ance refere a fabricores de ojetos en materias diversa, incluinte construores.<ref>{{cite book |last1=Liddell |first1=Henry G. |last2=Scott |first2=Robert |title=An Intermediate Greek–English Lexicon: The Seventh Edition of Liddell and Scott's Greek–English Lexicon |publisher=Clarendon Press |year=1889 |page=797}}</ref>{{sfn|Dickson|2008|pp=68–69}} Considerante la estende semantical larga de la terma e "la realia sosioistorial de un τέκτων comun nazaretan", Matthew K. Robinson, un prete e erudita, prefere tradui τέκτων como 'construor-artisan'.<ref>{{cite journal |last1=Robinson |first1=Matthew K. |title="Is This Not the Τέκτων?": Revisiting Jesus's Vocation in Mark 6:3 |journal=Neotestamentica |date=2021 |volume=55 |issue=2 |pages=431–445 |doi=10.1353/neo.2021.0038}}</ref><ref>{{cite web |title=Matthew Robinson |url=https://www.theology.ox.ac.uk/people/matthew-robinson |publisher=[[University of Oxford]] |access-date=1 April 2025 |language=en}}</ref> La Evanjelios indica ce Jesus ia pote leje, parafrase e debate testos santa, ma esta no sinifia nesesada ce el ia reseta instrui formal de scrivistes.<ref>{{cite encyclopedia |year=2001 |title=Context, family and formation |encyclopedia=Cambridge companion to Jesus |publisher=Cambridge University Press |url=https://books.google.com/books?id=vSehrtQpcYcC&pg=PA14 |access-date=14 August 2015 |last=Evans |first=Craig A. |editor-last=Bockmuehl |editor-first=Markus N. A. |pages=14, 21 |isbn=978-0-521-79678-1 |archive-url=https://web.archive.org/web/20150907175830/https://books.google.com/books?id=vSehrtQpcYcC&pg=PA14 |archive-date=7 September 2015 |url-status=live|doi=10.1017/CCOL0521792614.002}}</ref>
La Evanjelio de Lucas reporta du viajas de Jesus e sua jenitores en Ieruxalim en sua enfantia. Los veni a la [[Templo en Ieruxalim]] per la [[presenta de Jesus]] como un bebe, acordante con la Lege iudi, do un om nomida Simeon profeti sur Jesus e Maria. Cuando Jesus, a la eda de des-du anios, perde se a un peregrina a Ieruxalim per pesah, sua jenitores [[trova en la Templo|trova el en la Templo]], sentante entre la instruores, escutante los e fante demandas, e la popla es stonada par sua comprende e respondes. Maria reproxa Jesus per perde se, a cual Jesus responde ce el debe "es en la casa de sua Padre".
=== Batiza e tenta ===
[[File:El bautismo de Jesús, por José Ferraz de Almeida Júnior.jpg|thumb|upright=0.8|''[[Batiza de Jesus|La Batiza de Cristo]] par [[Joan la Batizor]]'', par [[Almeida Júnior]], 1895|alt=Jesus ia es batizada par Joan. La Spirito Santa en la forma de un pijon es a supra.]]
La [[evanjelios sinotica]] descrive la [[batiza de Jesus]] en la [[Rio Urdun]] e la [[tenta de Jesus|tentas]] cual el ia fasa tra 40 dias en la [[Deserto Iudean]] como un prepara per sua servi publica.<ref>{{cite book |last=Sheen |first=Fulton J. |title=Life of Christ |year=2008 |publisher=Random House |isbn=978-0-385-52699-9 |page=65 |url=https://books.google.com/books?id=KyqQKohpVR4C&pg=PA65 |access-date=14 August 2015 |archive-date=10 September 2015 |archive-url=https://web.archive.org/web/20150910165309/https://books.google.com/books?id=KyqQKohpVR4C&pg=PA65 |url-status=live}}</ref> En cada de esta naras, informa sur Joan la Batizor presede la naras de la batiza de Jesus.{{sfn|Blomberg|2009|pp=224–229}}{{sfn|Köstenberger|Kellum|Quarles|2009|pp=141–143}}{{sfn|McGrath|2006|pp=16–22}} Los portrae Joan predicante la repenti per la pardona de pecas, corajinte carita a la povres, batizante persones en la rejion de la Rio Urdun sirca [[Perea]], e predisente la ariva de algun "plu potiosa" ca el.<ref>{{cite book |title=Eerdmans commentary on the Bible |first1=James D. G. |last1=Dunn |first2=John W. |last2=Rogerson |year=2003 |isbn=978-0-8028-3711-0 |page=1010 |publisher=Wm. B. Eerdmans}}</ref>
[[File:Ary Scheffer - The Temptation of Christ (1854).jpg|thumb|left|upright=0.8|Jesus e la Diablo depintida en ''[[Tenta de Jesus|La tenta de Jesus]]'', par [[Ary Scheffer]], 1854]]
En la Evanjelio de Marco, Joan la Batizor batiza Jesus, e cuando Jesus sorti de la acua el vide la Spirito Santa desendente a el como un pijon, e un vose veni de la sielo e declara el como la Fio de Dio. Esta es un de la du avenis descriveda en la Evanjelios en cual un vose de Sielo refere a Jesus como "Fio", e la otra es la Muta. A pos, la Spirito forsa el a en la tera savaje, do Satan tenta el. Pos la aresta de Joan, Jesus comensa sua servi en Galilea.
En la Evanjelio de Mateo, cuando Jesus veni a Joan per reseta la batiza, Joan protesta, disente, "Me nesesa ce tu batiza me." Jesus instrui el a continua con la batiza "per reali tota la virtua". A pos, Mateo nara tre tentas spesifiada cual Satan ofre a Jesus en la tera savaje. En la Evanjelio de Lucas, la Spirito Santa desende en forma fisical como un pijon pos cuando Joan ia batiza ja tota la persones e en cuando Jesus prea. Plu tarda, Joan reconose nonesplicada Jesus par envia sua seguores per fa demandas sur el. Lucas descrive ance tre tentas cual Jesus ia esperia en la tera savaje ante el comensa sua servi en Galilea.
La Evanjelio de Joan no nara la batiza e tenta de Jesus. En loca, Joan la Batizor atesta ce el ia vide la Spirito desende e resta sur Jesus. Joan proclama publica Jesus como la Ovea de Dio, e alga seguores de Joan deveni disiplos de Jesus. Ante cuando la autoriosas prisoni Joan, Jesus gida sua seguores per batiza, e los batiza plu persones ca Joan.
=== Servi publica ===
[[File:Bloch-SermonOnTheMount.jpg|thumb|''Sermon sur la Monte'', par [[Carl Bloch]], 1877, depinta [[Sermon sur la Monte|la parla importante de Jesus]].|alt=Jesus senta sur un monte, predicante a un fola]]
La Sinoticas depinta du locas jeografial xef en la servi de Jesus. La prima aveni en Galilea, a norde de [[Iudea]], do Jesus gida un servi multe susedosa; la du aveni en Ieruxalim, do la autoriosas rejeta e mata el.<ref name="ISBEO">{{cite web |year=1939 |editor-last=Orr |editor-first=James |title=International Standard Bible Encyclopedia Online |url=http://www.internationalstandardbible.com/R/rabbi.html |url-status=dead |archive-url=https://web.archive.org/web/20160817024703/http://www.internationalstandardbible.com/R/rabbi.html |archive-date=17 August 2016 |access-date=30 July 2016 |publisher=Wm. B. Eerdmans}}</ref> Frecuente nomida "rabi",<ref name="ISBEO" /> Jesus presenta sua mesaje par parla.<ref name="Dunn2013">{{cite book |last=Dunn |first=James D. G. |title=The Oral Gospel Tradition |publisher=Wm. B. Eerdmans |year=2013 |pages=290–291}}</ref> En esta naras, el proibi ce los ci reconose el como la maxia — incluinte persones ci el remedia e demones cual, como on dise, el esorsi — parla sur lo (vide Secreta Maxial).{{sfn|Harris|1985|pp=285–296}} Par contrasta, la Evanjelio de Joan portrae la servi de Jesus como aveninte xef en e sirca Ieruxalim en loca de en Galilea, e on proclama e reconose plu abrida sua natur divin.{{sfn|Harris|1985|pp=302–310}}
Eruditas divide comun la servi de Jesus a grados variosa. La servi galilean comensa cuando Jesus reveni a Galilea de la [[Deserto Iudean]] pos resiste la tentas de [[Satan]]. A pos el predica tra Galilea, e en Mateo 4:18-20, sua disiplos prima — ci va formi plu tarda la nucleo de la Eglesa temprana — encontra el e comensa segue el.{{sfn|McGrath|2006|pp=16–22}}{{sfn|Redford|2007|pp=117–130}} Esta periodo inclui la Sermon sur la Monte, un de la parlas major de Jesus,{{sfn|Redford|2007|pp=117–130}}<ref>{{cite book |title=The Sermon on the mount: a theological investigation |first=Carl G. |last=Vaught |year=2001 |publisher=Baylor University Press |isbn=978-0-918954-76-3 |pages=xi–xiv}}</ref> como ance la [[calmi de la tempesta]], la [[nuri de la 5000]], [[Jesus pasea sur acua|pasea sur acua]], e otra miracles e parabolas diversa.{{sfn|Redford|2007|pp=143–160}} Lo conclui con la [[Confesa de Petro]] e la [[Muta]].<ref>{{cite encyclopedia |title=Transfiguration, The |encyclopedia=The New Schaff-Herzog Encyclopedia of Religious Thought: Son of Man-Tremellius V11 |isbn=978-1-4286-3189-2 |publisher=Funk & Wagnalls |year=1909 |url=https://books.google.com/books?id=js5-eDk13TcC&pg=PA493 |page=493 |last=Nash |first=Henry S. |editor-first=Samuel M. |editor-last=Jackson |access-date=14 August 2015 |archive-date=7 September 2015 |archive-url=https://web.archive.org/web/20150907052036/https://books.google.com/books?id=js5-eDk13TcC&pg=PA493 |url-status=live}}</ref><ref name="Barton132">{{cite book |last=Barton |first=Stephen C. |url=https://archive.org/details/cambridgecompani00bart_994 |title=The Cambridge Companion to the Gospels |date=23 November 2006 |publisher=Cambridge University Press |isbn=978-0-521-80766-1 |pages=[https://archive.org/details/cambridgecompani00bart_994/page/n138 132]–133 |url-access=limited}}</ref>
En cuando Jesus viaja en dirije a Ieruxalim, en lo cual on nomi frecuente la servi perean, el reveni a la rejion do el ia es batizada, a sirca un tri de la distantia a su de la [[Mar de Galilea]] longo la Rio Urdun.{{sfn|Cox|Easley|2007|p=137}}{{sfn|Redford|2007|pp=211–229}} La fase final de sua servi, en Ieruxalim, comensa con sua entra vinsal a en la site a [[soldi de palmas]].{{sfn|Cox|Easley|2007|pp=155–170}} En la Evanjelios Sinotica, en acel semana Jesus [[Puri de la Templo|espulsa la intercambiores]] de la [[Templo Du]], e [[Tradi de Judas|Judas negosia per tradi]] el. Esta periodo culmina en la [[Come Ultima]] e, en la nara par Joan, la [[Parla de Adio]].{{sfn|Blomberg|2009|pp=224–229}}{{sfn|Cox|Easley|2007|pp=155–170}}{{sfn|Redford|2007|pp=257–274}}
==== Disiplos e seguores ====
[[File:Brooklyn Museum - The Exhortation to the Apostles (Recommandation aux apôtres) - James Tissot.jpg|thumb|''La recomenda a la apostoles'', par [[James Tissot]], portrae Jesus parlante a sua des-du disiplos.]]
Prosima a la comensa de sua servi, Jesus asinia des-du apostoles. En Mateo e Marco, Jesus clama sua cuatro apostoles prima, ci es pexores, e la testo descrive ce los abandona direta lor redes per segue el. En Joan, la du apostoles prima de Jesus es a prima disiplos de Joan la Batizor; la Batizor vide Jesus e nomi el la Ovea de Dio, e la du, oiante esta, comensa segue Jesus.{{sfn|Brown|1988|pp=25–27}}{{sfn|Boring|Craddock|2004|pp=292–293}} En ajunta a la Des-du Apostoles, la introdui a la Sermon sur la Plano en Lucas identifia un grupo multe plu grande de persones como disiplos. En Lucas 10:1-16, Jesus envia [[setedes disiplos|70 o 72 de sua seguores]] en duples per prepara vilas per sua visitas futur; el instrui los a aseta ospitia, remedia maladas, e proclama la [[Rena de Dio]].<ref>{{cite encyclopedia |title=The Gospel According to Luke |encyclopedia=New Collegeville Bible Commentary: New Testament |publisher=Liturgical Press |year=2009 |url=https://books.google.com/books?id=sdooTRyPMCwC&pg=PA255 |page=255 |first=Michael F. |last=Patella |editor-first=Daniel |editor-last=Durken |isbn=978-0-8146-3260-4 |access-date=14 August 2015 |archive-date=10 September 2015 |archive-url=https://web.archive.org/web/20150910044704/https://books.google.com/books?id=sdooTRyPMCwC&pg=PA255 |url-status=live}}</ref>
==== Instruis e miracles ====
[[File:Hoffman-ChristAndTheRichYoungRuler.jpg|thumb|''[[Jesus e la joven rica]]'' par [[Heinrich Hofmann (pintor)|Heinrich Hofmann]], 1889]]
En la Sinoticas, Jesus ensenia multe — comun en parabolas{{sfn|Theissen|Merz|1998|pp=316–346}} — sur la Rena de Dio. Jesus parla ance sur la "Fio de Umana", un figur [[Apocalise|apocalisal]] ci va veni per colie la elejedas.<ref name="Britannica" /> Jesus clama la popla a repenti de lor pecas e dedica se intera a Dio.<ref name="Britannica">{{Britannica |id=303091 |title=Jesus Christ |first1=E. P. |last1=Sanders |first2=Jaroslav J. |last2=Pelikan}}</ref> El instrui sua seguores a obedi la [[lege iudi]], an si alga contemporas persepi ce el mesma ia rompe la lege, per esemplo en relata a la obedi a la sabat.<ref name="Britannica" /> Cuando on demanda de el cual es la comanda la plu grande, Jesus responde: "Tu va ama la Senior tua Dio con tota tua cor, e con tota tua spirito, e con tota tua mente... E la du es simil: 'Tu va ama tua visina como tu mesma.'" Otra instruis etical cual on atribui a Jesus inclui ama enemis, asteni de odia e desira sesal, ofre la otra jena, e pardona los ci ia peca contra on.<ref>{{cite book |last1=Stassen |first1=Glen H. |url=https://books.google.com/books?id=LlMVrmA-b-4C |title=Kingdom Ethics: Following Jesus in Contemporary Context |last2=Gushee |first2=David P. |publisher=InterVarsity |year=2003 |isbn=978-0-8308-2668-1 |pages=102–103, 138–140, 197–198, 295–298 |access-date=14 August 2015 |archive-url=https://web.archive.org/web/20200226062140/https://books.google.com/books?id=LlMVrmA-b-4C |archive-date=26 February 2020 |url-status=live}}</ref>
La Evanjelio de Joan presenta la instruis de Jesus no mera como sua propre predica ma como revela divin. Joan la Batizor, per esemplo, declara en Joan 3:34: "El ci Dio ia envia parla la parolas de Dio, car el dona la Spirito sin mesura." En Joan 7:16, Jesus dise, "Mea instrui no es de me ma de el ci ia envia me." El repete esta en Joan 14:10: "Tu no crede ce me es en la Padre e la Padre es en me? La parolas cual me dise a tu, me no dise de me mesma; ma la Padre ci abita en me fa sua obras."<ref name="Osborn-1993" /><ref>{{cite book |last=Köstenberger |first=Andreas J. |title=The missions of Jesus and the disciples according to the Fourth Gospel |publisher=Wm. B. Eerdmans |year=1998 |isbn=978-0-8028-4255-8 |pages=108–109}}</ref>
[[File:Pompeo Batoni 003.jpg|thumb|left|upright=0.8|''[[Parabola de la Fio Perosa|La reveni de la fio perosa]]'' par [[Pompeo Batoni]], 1773]]
Sirca 30 parabolas composa sirca un tri de la instruis rejistrada de Jesus.<ref name="Osborn-1993">{{cite book |first=Eric F. |last=Osborn |year=1993 |title=The emergence of Christian theology |url=https://archive.org/details/emergencechristi00osbo |url-access=limited |isbn=978-0-521-43078-4 |page=[https://archive.org/details/emergencechristi00osbo/page/n115 98] |publisher=Cambridge University Press}}</ref><ref>{{cite book |first=J. Dwight |last=Pentecost |year=1998 |title=The parables of Jesus: lessons in life from the Master Teacher |isbn=978-0-8254-9715-5 |page=10 |publisher=Kregel}}</ref> La parabolas apare e en sermones plu longa e a locas diversa en la nara.<ref>{{cite book |title=The Sermons of Jesus the Messiah |first=E. Keith |last=Howick |year=2003 |publisher=WindRiver |isbn=978-1-886249-02-8 |pages=7–9}}</ref> Los conteni comun simbolisme e relata tipal aspetas de la mundo fisical a realias spirital.<ref>{{cite book |first=Friedrich G. |last=Lisco |year=1850 |title=The Parables of Jesus |publisher=Daniels and Smith Publishers |pages=[https://archive.org/details/bub_gb_OoIuAAAAYAAJ/page/n12 9]–11 |url=https://archive.org/details/bub_gb_OoIuAAAAYAAJ}}</ref><ref>{{cite book |first=Ashton |last=Oxenden |year=1864 |title=The parables of our Lord? |publisher=William Macintosh Publishers |page=[https://archive.org/details/bub_gb_5bUCAAAAQAAJ/page/n15 6] |url=https://archive.org/details/bub_gb_5bUCAAAAQAAJ}}</ref> Temas comun inclui la compatia e jenerosia de Dio, como ance la periles e resultas de peca.<ref>{{cite book |url=https://books.google.com/books?id=dPdANFaNgagC&pg=448 |title=Interpreting the Parables |publisher=InterVarsity |year=2012 |page=448 |isbn=978-0-8308-3967-4 |first=Craig L. |last=Blomberg |access-date=14 August 2015 |archive-date=10 September 2015 |archive-url=https://web.archive.org/web/20150910175429/https://books.google.com/books?id=dPdANFaNgagC&pg=448 |url-status=live}}</ref> Alga parabolas, como lo de la Fio Perosa, es relativa simple, en cuando otras, como la [[Parabola de la Seme Cresente|Seme Cresente]], es plu complicada, profonda, e difisil per interprete.<ref>{{cite web |first=Madeleine I. |last=Boucher |url=https://www.pbs.org/wgbh/pages/frontline/shows/religion/jesus/parables.html |title=The Parables |website=Frontline|publisher=PBS |access-date=3 June 2013 |archive-date=10 August 2013 |archive-url=https://web.archive.org/web/20130810144100/http://www.pbs.org/wgbh/pages/frontline/shows/religion/jesus/parables.html |url-status=live}}</ref> Cuando sua disiplos demanda perce el parla a la popla en parabolas, Jesus responde ce Dio ia permete ce la disiplos elejeda "sabe la secretas de la rena de sielo", no como la resta, ajuntante: "Car a el ci ave, on va dona plu e el va ave en abunda. Ma a el ci no ave, on va priva el an plu", e el continua par dise ce la plu de lor jenera ia developa "cores lente" e no es donce capas de comprende.
[[File:Christ cleans leper man.jpg|thumb|upright=0.8|''[[Jesus remediante la leprosa]]'', [[mosaica]] medieval de la [[Catedral de Monreale]], de sentenios 12 a 13|alt=Jesus, sua testas areolada, pone sua manos sur un leprosa, remediante el]]
En la naras de evanjelio, Jesus dedica un parte major de sua servi a fa [[miracle]]s, spesial remedias.{{sfn|Green|McKnight |Marshall|1992|p=299}} On clasi comun esta miracles a du categorias xef: miracles de remedia e miracles natural.{{sfn|Twelftree|1999|p=350}}{{sfn|Levine|2006|p=4}}<ref>{{cite book |last1=Charlesworth |first1=James H. |url=https://books.google.com/books?id=YTIGy5t45WgC&pg=PT113 |title=The Historical Jesus: An Essential Guide |date=2008 |publisher=Abingdon Press |isbn=978-1-4267-2475-6 |page=113 |access-date=29 March 2017 |archive-url=https://web.archive.org/web/20201008221947/https://books.google.com/books?id=YTIGy5t45WgC&pg=PT113 |archive-date=8 October 2020 |url-status=live}}</ref> La miracles de remedia inclui la remedia de maladias fisical, [[esorsi]]s,{{sfn|Witherington|1997|p=113}}{{sfn|Theissen|Merz|1998|p=298}} e la revive de mores.{{sfn|Green|McKnight|Marshall|1992|p=300}}<ref name="Oxford Companion" /><ref>{{cite web |last=Tabor |first=James |date=22 March 2013 |title=What the Bible Says About Death, Afterlife, and the Future |url=https://clas-pages.uncc.edu/james-tabor/ancient-judaism/death-afterlife-future/ |url-status=dead |archive-url=https://web.archive.org/web/20160823115040/https://clas-pages.uncc.edu/james-tabor/ancient-judaism/death-afterlife-future/ |archive-date=23 August 2016 |access-date=13 June 2015 |publisher=UNCC}}</ref><ref>{{cite book |last=Hoekema |first=Anthony A. |url=https://books.google.com/books?id=c2yT_7xw35sC |title=The Bible and the Future |publisher=Wm. B. Eerdmans |year=1994 |isbn=978-0-85364-624-2 |pages=88–89 |access-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008221946/https://books.google.com/books?id=c2yT_7xw35sC |archive-date=8 October 2020 |url-status=live}}</ref> La miracles natural demostra autoria supra la mundo natural e inclui [[muta acua a vino]], pasea sur acua, e calmi un tempesta, entre otras. Jesus atribui sua miracles a un fonte divin. Cuando oposores acusa el de espulsa demones par la potia de Belzebub, la prinse de demones, el responde ce el fa esta par la "Spirito de Dio" (Mateo 12:28) o la "dito de Dio", argumentante ce lo ta es nonlojical ce Satan dana sua propre rena; el ance demanda, si el esorsi par [[Belzebub]], "par ci vosa fios espulsa los?"<ref name="Britannica" /><ref>{{cite book |url=https://books.google.com/books?id=Js9nFESO0VAC&pg=PA100 |title=Zondervan King James Version Commentary: New Testament |last2=Mitchell |first2=Daniel R. |publisher=Zondervan |year=2010 |isbn=978-0-310-25150-7 |page=100 |first1=Edward E. |last1=Hindson |access-date=14 August 2015 |archive-date=10 September 2015 |archive-url=https://web.archive.org/web/20150910171333/https://books.google.com/books?id=Js9nFESO0VAC&pg=PA100 |url-status=live}}</ref> En Mateo 12:31-32, el declara ance ce, an si Dio pote pardona tota spesies de peca, incluinte "insultas contra Dio" o "insultas contra la Fio de Umana", Dio va pardona nunca blasfema contra "La [[Spirito Santa]]", e los ci es culpable de lo porta permanente lor peca.<ref>{{Cite web|title=Bible Gateway passage: Matthew 12:31-32 - New International Version|url=https://www.biblegateway.com/passage/?search=Matthew%2012%3A31-32&version=NIV|website=Bible Gateway|access-date=2026-01-30|language=en}}</ref>
En Joan, la testo descrive la miracles de Jesus como "sinias", fada per evidenti sua mision e identia.<ref name="Sign" />{{sfn|Ehrman|2009|page=[https://archive.org/details/jesusinterrupted00ehrm_0/page/84 84]}} En la Evanjelios Sinotica, cuando alga instruores de la lege e fariseos demanda de el un sinia miraclosa per validi sua autoria, Jesus refusa,<ref name="Sign">{{cite book |title=Introducing the New Testament: Its Literature and Theology |year=2001 |publisher=Wm. B. Eerdmans |isbn=978-0-8028-3717-2 |page=[https://archive.org/details/introducingnewte00paul/page/198 198] |url=https://archive.org/details/introducingnewte00paul/page/198 |first1=Paul J. |last1=Achtemeier |first2=Joel B. |last2=Green |first3=Marianne M. |last3=Thompson}}</ref> disente ce Dio va dona no sinia a un jenera mal e dejenerada, con eseta de la sinia de la profeta [[Jona]]. En la Sinoticas, la folas responde tipal a sua miracles con stona e presa el per remedia lor maladas, ma en Joan, on depinta Jesus como min restrinjeda par la folas, ci responde frecuente a sua sinias con crede e fida.{{sfn|Twelftree|1999|p=236}} Un cualia comun a tota naras de miracles es ce Jesus fa los libre e no solisita o aseta paia.<ref>{{cite book |last=van der Loos |first=Hendrik |title=The Miracles Of Jesus |year=1965 |publisher=Brill |page=197 |url=https://books.google.com/books?id=n4geAAAAIAAJ&pg=PA197 |access-date=14 August 2015 |archive-date=10 September 2015 |archive-url=https://web.archive.org/web/20150910165838/https://books.google.com/books?id=n4geAAAAIAAJ&pg=PA197 |url-status=live}}</ref> Frecuente la naras de miracles es entretexeda con instruis, e la miracles mesma porta comun un dimension instruinte.<ref>{{cite book |title=The words and works of Jesus Christ |first=J. Dwight |last=Pentecost |year=1981 |isbn=978-0-310-30940-6 |page=212 |url=https://books.google.com/books?id=bh3M_AfgXZAC&pg=PA212 |publisher=Zondervan |access-date=14 August 2015 |archive-date=10 September 2015 |archive-url=https://web.archive.org/web/20150910063513/https://books.google.com/books?id=bh3M_AfgXZAC&pg=PA212 |url-status=live}}</ref>{{sfn|Twelftree|1999 |p=95}} Multe asentua la importa de fida: en la [[remedia de des leprosas]] e la revive de la fia de Iairo, per esemplo, Jesus dise a la beneficadas ce lor fida es la causa de lor remedia.{{sfn|Donahue|Harrington |2002|p=182}}<ref>{{cite book |last=Lockyer |first=Herbert |year=1988 |title=All the Miracles of the Bible |isbn=978-0-310-28101-6 |page=235 |publisher=Zondervan}}</ref>
En ''A Marginal Jew'', erudita [[John P. Meier]] argumenta ce "la tradisiones de miracles sur la servi publica de Jesus es ja atestada tan vasta en fontes diversa" ce cualce "fabrica intera par la eglesa temprana es, en modo pratical, nonposible". El fundi esta alega sur fontes leteratural como la Evanjelios de Mateo, Lucas, e Joan, como ance sur la scrivedas de la istoriste Josefo. Meier argumenta ce la "criterio de atestas multiple de fontes e formas" suporta la conclui ce Jesus ia fa "obras estracomun" cual sua contemporas ia regarda como miracles.<ref>{{Cite book |last=John Meier |url=http://archive.org/details/Marginal-Jew_vol-2_Meier_1994 |title=A Marginal Jew/Маргинальный еврей |date=November 1994}}</ref>
Erudita [[Paul J. Achtemeier]] argumenta ce tal miracles no ia es unica a Jesus en la mundo antica e ce an atestores ia persepi los como ambigua. El nota ce probable Jesus ia fa atas cual on ia comprende como esorsis, cual "ia es asetada como realia par sua contemporas", ma ce on no debe vide estas como avente "valua demostrante consernante Jesus," car atestores ia pote alega ce el ia labora o con Satan o con Dio.<ref>{{Cite journal |last=Achtemeier |first=Paul J. |date=1975 |title=Miracles and the Historical Jesus: A Study of Mark 9:14-29 |url=https://www.jstor.org/stable/43714056 |journal=The Catholic Biblical Quarterly |volume=37 |issue=4 |pages=471–491 |issn=0008-7912}}</ref> Erudita [[Gregory Sterling]] oserva ce, en la caso de la esorsis alegada fada par Jesus, "Per galileanes de la sentenio prima ci ia crede a la presentia personal de malia en forma de demones, la ata de Jesus ia es un validi de sua servi."<ref>{{Cite journal |last=Sterling |first=Gregory E. |date=1993 |title=Jesus as Exorcist: An Analysis of Matthew 17:14-20; Mark 9:14-29; Luke 9:37-43a |url=https://www.jstor.org/stable/43721315 |journal=The Catholic Biblical Quarterly |volume=55 |issue=3 |pages=467–493 |issn=0008-7912}}</ref>
==== Proclama, Muta, e Semana de Pasion ====
[[File:Transfigurationbloch.jpg|thumb|upright=0.8|La [[Muta de Jesus]], depintida par [[Carl Bloch]], sentenio 19]]
Aprosima a la media de cada de la tre Evanjelios Sinotica, la autores nara du avenis sinifiante: la Confesa de [[San Petro|Petro]] e la Muta de Jesus — cual la Evanjelio de Joan no nota.<ref name="Barton132" /><ref>{{cite book |title=The Christology of Mark's Gospel |url=https://archive.org/details/christologyofmar0000king |url-access=limited |first=Jack D. |last=Kingsbury |year=1983 |isbn=978-1-4514-1007-5 |publisher=Fortress Press |pages=[https://archive.org/details/christologyofmar0000king/page/91 91]–95}}</ref>{{sfn|Lee|2004|pp=21–30}}<ref name="Nobbs" />{{sfn|Cross|Livingstone|2005|loc=John, Gospel of}} En la Confesa de Petro, Petro declara a Jesus, "Tu es la Maxia, la Fio de la Dio vivente";<ref>{{cite book |last=Karris|first=Robert J.|title=The Collegeville Bible Commentary: New Testament|publisher=Liturgical Press|year=1992|isbn=978-0-8146-2211-7|pages=885–886}}</ref><ref>{{cite book |title=Who do you say that I am? Essays on Christology|first1=Jack D.|last1=Kingsbury|first2=Mark A.|last2=Powell|first3=David R.|last3=Bauer|year=1999|isbn=978-0-664-25752-1|publisher=Westminster John Knox Press|page=xvi}}</ref>{{sfn|Donahue|Harrington|2002|p=336}} Jesus afirma ce esta es un veria divin revelada.<ref>{{cite book |last=Yieh|first=John Y. H.|url=https://books.google.com/books?id=g0-NaraCrAoC|title=One teacher: Jesus' teaching role in Matthew's gospel|publisher=Walter de Gruyter|year=2004|isbn=978-3-11-018151-7|pages=240–241|access-date=8 October 2020|archive-url=https://web.archive.org/web/20201008221947/https://books.google.com/books?id=g0-NaraCrAoC|archive-date=8 October 2020|url-status=live}}</ref>{{sfn|Pannenberg|1968|pp=53–54}} Pos esta confesa, Jesus comensa parla a sua disiplos sur sua sufri, mori, e revive prosiminte. En la Muta,{{sfn|Lee|2004|pp=21–30}}<ref name="Nobbs" /><ref name="Barton132" /> Jesus trae Petro e du otra apostoles a la culmina de un monte nonomida, do "el ia es mutada ante los, e sua fas ia brilia como la sol, e sua vestes ia deveni briliante blanca".{{sfn|Lee|2004|pp=72–76}} Un nube briliante covre los, e un vose de la nube proclama, "Esta es mea Fio, la Amada; con el me es multe plaseda; escuta a el."{{sfn|Lee|2004|pp=21–30}}
La descrive de la semana final de la vive de Jesus — comun nomida la [[Semana de Pasion]] — ocupa aprosima un tri de la nara en la evanjelios canonal. Esta parte comensa con la entra vinsal de Jesus a Ieruxalim e conclui con sua crusi.{{sfn|Blomberg|2009|pp=224–229}}{{sfn|Cox|Easley|2007|pp=155–170}}
==== Fadas en Ieruxalim ====
[[File:Gérôme - L'entrée du Christ à Jérusalem - cadre.jpg|thumb|upright=1.2|Un depinta de la [[entra vinsal de Jesus a Ieruxalim|la entra ultima de Jesus a Ieruxalim]], par [[Jean-Léon Gérôme]], 1897|alt=Jesus, montante un asineta, viaja a Ieruxalim. Un fola grande bonveni el estra la murones.]]
En la Evanjelios Sinotica, la semana final en Ieruxalim conclui la viaja tra Perea e Iudea cual Jesus ia comensa en Galilea.{{sfn|Cox|Easley|2007|pp=155–170}} Jesus entra a Ieruxalim montante un asino joven, evocante la motif de la asino de la Maxia de la [[Zecaria|Libro de Zecaria]], en cual la re umil de la Iudis ariva a la site en esta modo.<ref name="May Metzger Mark">{{Cite book|editor-last1=May|editor-first1=Herbert G. |editor-first2=Bruce M. |editor-last2=Metzger|title=The New Oxford Annotated Bible with the Apocrypha|year= 1977|chapter=Mark|pages= 1213–1239}}</ref> En cuando el avansa, popla sperde capas e ramos peti de arbores (plumas de palma) sur la strada ante el e canta linias de Salmo 118:25-26.{{sfn|Boring|Craddock|2004|pp=256–258}}{{sfn|Majerník|Ponessa|Manhardt|2005|pp=133–134}}{{sfn|Evans|2003|pp=381–395}}
Pos esta, Jesus espulsa la intercambiores de la Templo, acusante los de cambia lo a un asconderia de furores par lor comersia. La plu de eruditas acorda ce lo es multe probable ce Jesus ia fa alga cosa en la templo e ia nota sua destrui.<ref>{{cite book |last= Sanders |first= E.P. |author-link= E.P. Sanders |year= 1985 |title= Jesus and Judaism |publisher= Fortress Press |page= 61 |isbn= 978-0800620615|title-link=Jesus and Judaism}}</ref>{{sfn|Harris|1985|pp=285–296}} En Joan, la Purga de la Templo aveni a la comensa de la servi de Jesus en loca de a la fini.{{sfn|Harris|1985|pp=302–310}} Praticas antica de composa ia inclui tal deslocas e compresas cronolojial, e an biografistes fidable como [[Plutarco]] ia usa los.<ref>{{Cite journal |last=Vytlačilová |first=Magdalena |date=2023 |title=Jesus, the Gospels, and the Galilean Crisis by Tucker S. Ferda (review) |journal=Neotestamentica |volume=57 |issue=1 |pages=197–202 |doi=10.1353/neo.2023.a938405}}</ref>
Jesus ave conflitas con la veas iudi, per esemplo cuando los demanda sur sua autoria e cuando el critica los e nomi los ipocritas.{{sfn|Boring|Craddock|2004|pp=256–258}}{{sfn|Evans|2003|pp=381–395}} [[Judas Iscariot]], un de la des-du apostoles, fini un negosia secreta con la veas iudi, prometente tradi Jesus a los per 30 monetas de arjento.<ref>{{cite book |last=Lockyer |first=Herbert |url=https://books.google.com/books?id=-Q7l-_UFHmYC |title=All the Apostles of the Bible |publisher=Zondervan |year=1988 |isbn=978-0-310-28011-8 |pages=106–111 |access-date=11 July 2017 |archive-url=https://web.archive.org/web/20200229044027/https://books.google.com/books?id=-Q7l-_UFHmYC |archive-date=29 February 2020 |url-status=live}}</ref><ref>{{cite book |title=The Synoptic Gospels and the Book of Acts |first=Doremus A. |last=Hayes |year=2009 |isbn=978-1-313-53490-1 |page=88 |publisher=HardPress}}</ref>
La Evanjelio de Joan raconta du otra festas en cual Jesus ia ensenia en Ieruxalim ante la Semana de Pasion.{{sfn|Harris|1985|pp=270–272}} En Betania, un vileta prosima a Ieruxalim, Jesus [[revive de Lazaro|revive Lazaro de la mores]]. Esta sinia potiosa{{sfn|Harris|1985|pp=302–310}} grandi la tensa con la autoriosas,{{sfn|Cox|Easley|2007|pp=155–170}} ci conspira per mata el.{{sfn|Harris|1985|pp=270–272}} [[Maria de Betania]] unje la pedes de Jesus, predisente sua entera.{{sfn|Funk|Hoover|The Jesus Seminar|1993|pp=401–470}} A pos, Jesus fa sua entra maxial a Ieruxalim.{{sfn|Harris|1985|pp=270–272}} La folas aclamante ci saluta Jesus cuando el entra a Ieruxalim grandi la enemia entre el e la xefes ofisial.{{sfn|Cox|Easley|2007|pp=155–170}} En Joan, Jesus ia purga ja la Templo Du en un visita a Ieruxalim en un pesah plu temprana. A pos, Joan raconta la Come Ultima de Jesus con sua disiplos.{{sfn|Harris|1985|pp=270–272}}
== Notas ==
{{notelist}}
{{notelist|30em}}
== Referes ==
{{reflist|colwidth=20em}}
=== Fontes ===
{{refbegin|30em}}
* {{cite book |first=Douglas |last=Hare |title=Matthew |publisher=Westminster John Knox Press |language=en|year=1993 |isbn=978-0-664-23433-1}}
* {{cite book |first=Craig L. |last=Blomberg |author-link=Craig Blomberg |title=Jesus and the Gospels: An Introduction and Survey |year=2009 |language=en|isbn=978-0-8054-4482-7 |url=https://books.google.com/books?id=U5rIPC1UgsgC |publisher=B&H |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222031/https://books.google.com/books?id=U5rIPC1UgsgC |url-status=live}}
* {{cite book |title=The People's New Testament Commentary |first1=M. Eugene |last1=Boring |first2=Fred B. |last2=Craddock |author-link2=Fred Craddock |language=en|year=2004 |isbn=978-0-664-22754-8 |publisher=Westminster John Knox Press |url=https://books.google.com/books?id=N0tLXRIiIe0C |access-date=14 August 2015 |archive-date=4 January 2014 |archive-url=https://web.archive.org/web/20140104165219/http://books.google.com/books?id=N0tLXRIiIe0C |url-status=live}}
* {{cite book |first=Raymond E. |last=Brown |title=The Birth of the Messiah: A Commentary on the Infancy Narratives in Matthew and Luke |year=1977 |language=en|isbn=978-0-385-05907-7 |publisher=Doubleday}}
* {{cite book |title=Mary in the New Testament |first=Raymond E. |last=Brown |year=1978 |isbn=978-0-8091-2168-7 |url=https://books.google.com/books?id=ML1mnUBwmhcC |publisher=Paulist Press |access-date=14 August 2015 |archive-date=17 September 2014 |archive-url=https://web.archive.org/web/20140917011141/http://books.google.com/books?id=ML1mnUBwmhcC |url-status=live}}
* {{cite book |title=The Gospel and Epistles of John: A Concise Commentary |first=Raymond E. |last=Brown |language=en|author-link=Raymond E. Brown |year=1988 |isbn=978-0-8146-1283-5 |publisher=Liturgical Press |url=https://archive.org/details/gospelepistleso00brow}}
* {{cite book |last=Brown |first=Raymond E. |title=An Introduction to the New Testament |publisher=Doubleday |language=en|year=1997 |isbn=978-0-385-24767-2 |url=https://archive.org/details/introductiontone00brow_0}}
* {{cite book |last=Carter |first=Warren |author-link=Warren Carter |title=Pontius Pilate: Portraits of a Roman Governor |year=2003 |isbn=978-0-8146-5113-1 |language=en|url=https://books.google.com/books?id=mvhHcXKK0UEC |publisher=Liturgical Press |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222031/https://books.google.com/books?id=mvhHcXKK0UEC |url-status=live}}
* {{cite book |title=Studying the Historical Jesus: Evaluations of the State of Current Research |first1=Bruce |last1=Chilton |author-link1=Bruce Chilton |first2=Craig A. |last2=Evans |author-link2=Craig A. Evans |year=1998 |isbn=978-90-04-11142-4 |publisher=Brill |language=en|url=https://books.google.com/books?id=AJM9grxOjjMC |access-date=8 October 2020 |archive-date=4 October 2020 |archive-url=https://web.archive.org/web/20201004084608/https://books.google.com/books?id=AJM9grxOjjMC |url-status=live}}
* {{cite book |last=Bowman Jr. |first=Robert M. |title=Jesus, Skepticism & The Problem of History: Criteria and Context in the Study of Christian Origins |last2=Komoszewski |first2=J. Ed |date=2019 |language=en|publisher=Zondervan |isbn=978-0-310-53476-1 |editor1-last=Komoszewski |editor1-first=J. Ed |pages= |quote= |editor2-last=Bock |editor2-first=Darrell L.}}
* {{cite book |first1=Steven L. |last1=Cox |first2=Kendell H. |last2=Easley |year=2007 |title=Harmony of the Gospels |isbn=978-0-8054-9444-0 |language=en|url=https://books.google.com/books?id=QjmwuFUksOQC |publisher=B&H |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222032/https://books.google.com/books?id=QjmwuFUksOQC |url-status=live}}
* {{cite book |editor-first1=Frank L. |editor-last1=Cross |language=en |editor-first2=E. A. |editor-last2=Livingstone |title=The Oxford Dictionary of the Christian Church |publisher=Oxford University Press |year=2005 |url=https://books.google.com/books?id=fUqcAQAAQBAJ |isbn=978-0-19-280290-3 |access-date=8 October 2020 |archive-date=15 May 2019 |archive-url=https://web.archive.org/web/20190515065637/https://books.google.com/books?id=fUqcAQAAQBAJ |url-status=live}}
* {{cite book |first1=John D. |last1=Crossan |author-link1=John Dominic Crossan |first2=Richard G. |language=en |last2=Watts |title=Who Is Jesus?: Answers to Your Questions About the Historical Jesus |publisher=Westminster John Knox Press |year=1999 |isbn=978-0-664-25842-9 |url=https://archive.org/details/whoisjesusanswer00cros}}
* {{cite book |last=De Smet |first=Daniel |year=2016 |chapter=Les racines docétistes de l'imamologie shi'ite |language=fr |editor1-last=Amir-Moezzi |editor1-first=Mohammad Ali |editor2-last=De Cillis |editor2-first=Maria |editor3-last=De Smet |editor3-first=Daniel |editor4-last=Mir-Kasimov |editor4-first=Orkhan |title=L'Ésotérisme shi'ite, ses racines et ses prolongements – Shi'i Esotericism: Its Roots and Developments |series=Bibliothèque de l'Ecole des Hautes Etudes, Sciences Religieuses |volume=177 |location=Turnhout |publisher=Brepols |pages=87–112 |doi=10.1484/M.BEHE-EB.4.01163 |isbn=978-2-503-56874-4}}
* {{cite book |last=Dickson |first=John |author-link=John Dickson (author) |title=Jesus: A Short Life |publisher=Kregel Publications |year=2008 |language=en|isbn=978-0-8254-7802-4}}
* {{cite book |last=Dillenberger |first=John |author-link=John Dillenberger |title=Images and Relics: Theological Perceptions and Visual Images in Sixteenth-Century Europe |language=en|publisher=Oxford University Press |year=1999 |isbn=978-0-19-976146-3}}
* {{cite book |first1=John R. |last1=Donahue |first2=Daniel J. |last2=Harrington |author-link2=Daniel J. Harrington |title=The Gospel of Mark |publisher=Liturgical Press |language=en|year=2002 |url=https://books.google.com/books?id=xZAIsUZOwSQC |isbn=978-0-8146-5804-8 |access-date=8 October 2020 |archive-date=3 January 2014 |archive-url=https://web.archive.org/web/20140103010742/http://books.google.com/books?id=xZAIsUZOwSQC |url-status=live}}
* {{cite book |last=Doninger |first=Wendy |year=1999 |title=Merriam-Webster's Encyclopedia of World Religions |publisher=Merriam-Webster |language=en|url=https://archive.org/details/isbn_9780877790440 |isbn=978-0-87779-044-0}}
* {{cite book |first=James D. G. |last=Dunn |author-link=James Dunn (theologian) |title=Jesus Remembered |language=en|year=2003 |isbn=978-0-8028-3931-2 |publisher=Wm. B. Eerdmans |url=https://books.google.com/books?id=G4qpnvoautgC}}
* {{cite book |last1=Eddy |first1=Paul R. |last2=Boyd |first2=Gregory A. |author-link2=Greg Boyd (theologian) |year=2007 |title=The Jesus Legend: A Case for the Historical Reliability of the Synoptic Jesus tradition |language=en|publisher=Baker |isbn=978-0-8010-3114-4 |url=https://books.google.com/books?id=U26_85NmwPUC |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222033/https://books.google.com/books?id=U26_85NmwPUC |url-status=live}}
* {{cite book |title=Jesus: Apocalyptic Prophet of the New Millennium |first=Bart |last=Ehrman |author-link=Bart D. Ehrman |year=1999 |isbn=978-0-19-983943-8 |publisher=Oxford University Press |language=en|url=https://archive.org/details/jesusapocalyptic00ehrm |url-access=registration}}
* {{cite book |title=Jesus, Interrupted: Revealing the Hidden Contradictions in the Bible (and Why We Don't Know About Them) |last=Ehrman |first=Bart D. |year=2009 |language=en|url=https://archive.org/details/jesusinterrupted00ehrm_0/ |publisher=HarperOne |isbn=978-0-06-117393-6}}
* {{cite book |last=Ehrman |first=Bart D. |title=How Jesus Became God |publisher=HarperCollins |year=2014 |language=en|url=https://books.google.com/books?id=dmspAgAAQBAJ |isbn=978-0-06-225219-7}}
* {{cite book |first=Bart |last=Ehrman |year=2011 |title=Forged: Writing in the Name of God – Why the Bible's Authors Are Not Who We Think They Are |isbn=978-0-06-207863-6 |language=en|url=https://archive.org/details/forged_ehrm_2011_000_10544376 |url-access=registration |publisher=HarperCollins}}
* {{cite book |last=Ehrman |first=Bart D. |title=Did Jesus Exist?: The Historical Argument for Jesus of Nazareth |year=2012 |publisher=HarperOne |isbn=978-0-06-208994-6 |language=en|url=https://books.google.com/books?id=hf5Rj8EtsPkC |access-date=8 October 2020 |archive-date=3 August 2020 |archive-url=https://web.archive.org/web/20200803200020/https://books.google.com/books?id=hf5Rj8EtsPkC |url-status=live}}
* {{cite book |last=Evans |first=Craig A. |author-link=Craig A. Evans |year=2003 |title=The Bible Knowledge Background Commentary: Matthew–Luke |isbn=978-0-7814-3868-1 |language=en|publisher=Victor (Cook Communications Ministries)|url=https://archive.org/details/bibleknowledgeba00crai}}
* {{cite book |first=Craig A. |last=Evans |url=https://books.google.com/books?id=87x8TqW6MJQC |title=Jesus and His World: The Archaeological Evidence |year=2012a |language=en|publisher=Westminster John Knox Press |isbn=978-0-664-23413-3 |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222033/https://books.google.com/books?id=87x8TqW6MJQC |url-status=live}}
* {{cite book |last=Evans |first=Craig A. |title=Matthew (New Cambridge Bible Commentary) |date=2012b |language=en|publisher=Cambridge University Press |isbn=978-0-521-01106-8}}
* {{cite book |last=Finegan |first=Jack |title=Handbook of Biblical Chronology |year=1998 |publisher=Hendrickson Publishers |isbn=978-1-56563-143-4 |language=en|url=https://archive.org/details/handbookbiblical00fine |url-access=limited}}
* {{cite book |first=David N. |last=Freedman |author-link=David Noel Freedman |title=Eerdmans Dictionary of the Bible |year=2000 |publisher=Amsterdam University Press |language=en|isbn=978-0-8028-2400-4 |url=https://books.google.com/books?id=P9sYIRXZZ2MC |access-date=8 October 2020 |archive-date=3 August 2020 |archive-url=https://web.archive.org/web/20200803133406/https://books.google.com/books?id=P9sYIRXZZ2MC |url-status=live}}
* {{cite book |last=Friedmann |first=Yohanan |year=1989 |title=Prophecy Continuous: Aspects of Ahmadi Religious Thought and Its Medieval Background |location=Berkeley |language=en|publisher=University of California Press |isbn=978-0-520-05772-2}}
* {{cite book |first1=Robert W. |last1=Funk |first2=Roy W. |last2=Hoover |author3=The Jesus Seminar |author-link3=Jesus Seminar |title=The Five Gospels |language=en|publisher=Scribner |year=1993 |isbn=978-0-02-541949-0}}
* {{cite book |first1=Joel B. |last1=Green |first2=Scot |last2=McKnight |first3=I. Howard |last3=Marshall |author-link1=Joel B. Green |author-link2=Scot McKnight |author-link3=I. Howard Marshall |title=Dictionary of Jesus and the Gospels |url=https://books.google.com/books?id=9ntwNm-tOogC |language=en|publisher=InterVarsity |year=1992 |page=442 |isbn=978-0-8308-1777-1 |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222034/https://books.google.com/books?id=9ntwNm-tOogC |url-status=live}}
* {{cite book |title=Systematic Theology: An Introduction to Biblical Doctrine |last=Grudem |first=Wayne |author-link=Wayne Grudem |year=1994 |publisher=Zondervan |language=en|location=Grand Rapids, Michigan |isbn=978-0-310-28670-7 |url=https://archive.org/details/systematictheolo00grud_0}}
* {{cite book |first=Stephen L. |last=Harris |language=en|title=Understanding the Bible |publisher=Mayfield |year=1985}}
* {{cite book |last=Houlden |first=J. Leslie |title=Jesus: The Complete Guide |year=2006 |isbn=978-0-8264-8011-8 |publisher=Continuum |language=en|url=https://books.google.com/books?id=Ey8mZKV_jfkC |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222034/https://books.google.com/books?id=Ey8mZKV_jfkC |url-status=live}}
* {{cite journal |last1=Humphreys |first1=Colin J. |last2=Waddington |first2=W. G. |date=1992 |language=en|url=https://legacy.tyndalehouse.com/tynbul/Library/TynBull_1992_43_2_06_Humphreys_DateChristsCrucifixion.pdf |title=The Jewish Calendar, a Lunar Eclipse and the Date of Christ's Crucifixion |journal=Tyndale Bulletin |volume=43 |issue=2 |pages=331–151 |doi=10.53751/001c.30487 |s2cid=189519018 |access-date=21 April 2019 |archive-date=21 April 2019 |archive-url=https://web.archive.org/web/20190421091510/https://legacy.tyndalehouse.com/tynbul/Library/TynBull_1992_43_2_06_Humphreys_DateChristsCrucifixion.pdf |url-status=live}}
* {{cite book |last=Keener |first=Craig S. |title=The Gospel of Matthew: A Socio-Rhetorical Commentary |language=en|date=2009b |publisher=Wm. B. Eerdmans |isbn=978-0-8028-6498-7}}
* {{cite book |last=Keener |first=Craig S. |title=The Historical Jesus of the Gospels |date=2009 |language=en|publisher=Wm. B. Eerdmans}}
* {{cite book |last=Keener |first=Craig S. |title=The Historical Jesus of the Gospels |year=2012 |language=en|publisher=Wm. B. Eerdmans |isbn=978-0-8028-6292-1}}
* {{cite book |first1=Andreas J. |last1=Köstenberger |first2=L. Scott |last2=Kellum |first3=Charles L. |last3=Quarles |title=The Cradle, the Cross, and the Crown: An Introduction to the New Testament |language=en|year=2009 |isbn=978-0-8054-4365-3 |url=https://books.google.com/books?id=g-MG9sFLAz0C |publisher=B&H |access-date=8 October 2020 |archive-date=27 July 2020 |archive-url=https://web.archive.org/web/20200727131059/https://books.google.com/books?id=g-MG9sFLAz0C |url-status=live}}
* {{cite book |last=Lawson |first=Todd |year=2009 |title=The Crucifixion and the Qur'an: A Study in the History of Muslim Thought |language=en|location=Oxford |publisher=Oneworld |isbn=978-1-85168-635-3}}
* {{cite book |title=Transfiguration |first=Dorothy A. |last=Lee |author-link=Dorothy Lee (theologian) |year=2004 |isbn=978-0-8264-7595-4 |url=https://books.google.com/books?id=cYWwEefwCegC |publisher=Continuum |language=en|access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222034/https://books.google.com/books?id=cYWwEefwCegC |url-status=live}}
* {{cite encyclopedia |title=Introduction |first=Amy-Jill |last=Levine |author-link=Amy-Jill Levine |encyclopedia=The Historical Jesus in Context |editor-last1=Levine |editor-last2=Allison |editor-first3=John D. |editor-last3=Crossan |language=en|publisher=Princeton University Press |isbn=978-0-691-00992-6 |year=2006 |editor1-first=Amy-Jill |editor2-first=Dale C. |editor2-link=Dale Allison |url=https://books.google.com/books?id=HIp_0N3uPPcC |access-date=8 October 2020 |archive-date=10 April 2014 |archive-url=https://web.archive.org/web/20140410102712/http://books.google.com/books?id=HIp_0N3uPPcC |url-status=live}}
* {{cite book |title=The Misunderstood Jew: The Church and the Scandal of the Jewish Jesus |first=Amy-Jill |last=Levine |author-link=Amy-Jill Levine |year=2007 |language=en|isbn=978-0-06-174811-0 |url=https://archive.org/details/TheMisunderstoodJewTheChurchAndTheScandalOfTheJewishJesus |publisher=HarperCollins}}
* {{cite book |url=https://books.google.com/books?id=rv8xNoRBtxMC |title=The Resurrection of Jesus: A New Historiographical Approach |publisher=InterVarsity |year=2010 |isbn=978-0-8308-2719-0 |first=Michael R. |last=Licona |language=en|access-date=29 July 2015 |archive-date=18 February 2020 |archive-url=https://web.archive.org/web/20200218101307/https://books.google.com/books?id=rv8xNoRBtxMC |url-status=live}}
* {{cite encyclopedia |first=Paul L. |last=Maier |author-link=Paul L. Maier |title=The Date of the Nativity and Chronology of Jesus |encyclopedia=''Chronos'', ''Kairos'', ''Christos'': Nativity and Chronological Studies |editor-last1=Finegan |editor-first2=Jerry |editor-last2=Vardaman |editor-first3=Edwin M. |editor-last3=Yamauchi |year=1989 |isbn=978-0-931464-50-8 |url=https://books.google.com/books?id=UCBBY_O88uYC&pg=PA113 |publisher=Eisenbrauns |editor-first=Jack |editor1-link=Jack Finegan |editor3-link=Edwin M. Yamauchi |language=en|access-date=14 August 2015 |archive-date=7 September 2015 |archive-url=https://web.archive.org/web/20150907110057/https://books.google.com/books?id=UCBBY_O88uYC&pg=PA113 |url-status=live}}
* {{cite book |title=The Synoptics: Matthew, Mark, Luke |first1=Ján |last1=Majerník |first2=Joseph |last2=Ponessa |first3=Laurie W. |last3=Manhardt |year=2005 |isbn=978-1-931018-31-9 |language=en|url=https://books.google.com/books?id=cqP5xHXGYPQC |publisher=Emmaus Road |access-date=8 October 2020 |archive-date=19 August 2020 |archive-url=https://web.archive.org/web/20200819025434/https://books.google.com/books?id=cqP5xHXGYPQC |url-status=live}}
* {{cite book |url=https://books.google.com/books?id=v26doW8jIyYC&pg=PA4 |title=Christianity: An Introduction |publisher=John Wiley & Sons |last=McGrath |first=Alister E. |author-link=Alister McGrath |year=2006 |language=en|pages=4–6 |isbn=978-1-4051-0899-7 |access-date=14 August 2015 |archive-date=10 September 2015 |archive-url=https://web.archive.org/web/20150910073956/https://books.google.com/books?id=v26doW8jIyYC&pg=PA4 |url-status=live}}
* {{cite book |last=Meier |first=John P. |author-link=John P. Meier |title=A Marginal Jew: The Roots of the Problem and the Person |year=1991 |publisher=Yale University Press |language=en|isbn=978-0-300-14018-7}}
* {{cite encyclopedia |last=Meier |first=John P. |title=How do we decide what comes from Jesus |encyclopedia=The Historical Jesus in Recent Research |editor-last1=Dunn |editor-last2=McKnight |year=2006 |isbn=978-1-57506-100-9 |url=https://books.google.com/books?id=37uJRUF6btAC |editor1-first=James D. G. |publisher=Eisenbrauns |editor2-first=Scot |access-date=14 August 2015 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222035/https://books.google.com/books?id=37uJRUF6btAC |url-status=live}}
* {{cite book |last1=Melton |first1=J. Gordon |year=2010 |chapter=Ahmad, Mirza Ghulam Hazrat |editor1-last=Melton |editor1-first=J. Gordon |editor2-last=Baumann |editor2-first=Martin |title=Religions of the World: A Comprehensive Encyclopedia of Beliefs and Practices |language=en|volume=1 |pages=54–56 |edition=2nd |isbn=978-1-59884-203-6 |location=Santa Barbara |publisher=ABC-CLIO |chapter-url=https://books.google.com/books?id=v2yiyLLOj88C&pg=PA55 |access-date=14 August 2015 |archive-date=21 October 2016 |archive-url=https://web.archive.org/web/20161021175959/https://books.google.com/books?id=v2yiyLLOj88C&pg=PA55 |url-status=live}}
* {{cite book |last1=Mills |first1=Watson E. |last2=Bullard |first2=Roger A. |year=1998 |title=Mercer Dictionary of the Bible |publisher=Mercer University Press |isbn=978-0-86554-373-7 |language=en|url=https://books.google.com/books?id=goq0VWw9rGIC |access-date=14 August 2015 |archive-date=18 October 2017 |archive-url=https://web.archive.org/web/20171018095243/https://books.google.com/books?id=goq0VWw9rGIC |url-status=live}}
* {{cite book |last=Morris |first=Leon |author-link=Leon Morris |year=1992 |title=The Gospel According to Matthew |publisher=Wm. B. Eerdmans |isbn=978-0-85111-338-8 |language=en|url=https://books.google.com/books?id=-pwaSKcHyEEC |access-date=8 October 2020 |archive-date=2 August 2020 |archive-url=https://web.archive.org/web/20200802002134/https://books.google.com/books?id=-pwaSKcHyEEC |url-status=live}}
* {{cite book |last=Niswonger |first=Richard L. |title=New Testament History |year=1992 |isbn=978-0-310-31201-7 |language=en|publisher=Zondervan |url=https://books.google.com/books?id=uyAXaNnz9sUC}}
* {{cite book |last=Pannenberg |first=Wolfhart |author-link=Wolfhart Pannenberg |url=https://books.google.com/books?id=zWfvlpURwiIC |title=Jesus: God and Man |year=1968 |isbn=978-0-334-00783-8 |language=en|publisher=S. C. M. Press |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222035/https://books.google.com/books?id=zWfvlpURwiIC |url-status=live}}
* {{cite book |last=Powell |first=Mark A. |author-link=Mark Allan Powell |title=Jesus as a Figure in History: How Modern Historians View the Man from Galilee |year=1998 |language=en|isbn=978-0-664-25703-3 |url=https://archive.org/details/jesusasfigureinh0000powe |url-access=registration |publisher=Westminster John Knox Press}}
* {{cite book |last=Rahner |first=Karl |author-link=Karl Rahner |title=Encyclopedia of Theology: A Concise ''Sacramentum Mundi'' |year=2004 |isbn=978-0-86012-006-3 |publisher=Continuum |url=https://books.google.com/books?id=WtnR-6_PlJAC |language=en|access-date=8 October 2020 |archive-date=27 July 2020 |archive-url=https://web.archive.org/web/20200727115653/https://books.google.com/books?id=WtnR-6_PlJAC |url-status=live}}
* {{cite book |title=Who Is Jesus? An Introduction to Christology |first=Thomas P. |last=Rausch |author-link=Thomas Rausch |language=en|year=2003 |publisher=Liturgical Press |isbn=978-0-8146-5078-3 |url=https://books.google.com/books?id=8OJCa6euw5gC |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222036/https://books.google.com/books?id=8OJCa6euw5gC |url-status=live}}
* {{cite book |last=Redford |first=Douglas |title=The Life and Ministry of Jesus: The Gospels |year=2007 |language=en|isbn=978-0-7847-1900-8 |url=https://books.google.com/books?id=dDMQz5BVFbEC |publisher=Standard Publishing |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222036/https://books.google.com/books?id=dDMQz5BVFbEC |url-status=live}}
* {{cite book |title=Archaeology and the Galilean Jesus: A Re-examination of the Evidence |first=Jonathan L. |last=Reed |year=2002 |isbn=978-1-56338-394-6 |url=https://books.google.com/books?id=Xrav1ge-A_sC |language=en|publisher=Continuum |access-date=8 October 2020 |archive-date=4 May 2016 |archive-url=https://web.archive.org/web/20160504050031/https://books.google.com/books?id=Xrav1ge-A_sC |url-status=live}}
* {{cite book |last=Robinson |first=Neal |year=1991 |title=Christ in Islam and Christianity |location=Albany |language=en|publisher=State University of New York Press |isbn=978-0-7914-0559-8}}
* {{cite encyclopedia |last=Robinson |first=Neal |year=2005 |title=Jesus |editor1-last=McAuliffe |editor1-first=Jane Dammen |language=en|encyclopedia=Encyclopaedia of the Qurʾān |publisher=Brill |doi=10.1163/1875-3922_q3_EQCOM_00099}}
* {{cite book |last=Sanders |first=E. P. |author-link=E. P. Sanders |title=The Historical Figure of Jesus |language=en|publisher=Allen Lane Penguin Press |year=1993 |url=https://books.google.com/books?id=lkbTL36ZgPIC |isbn=978-0-14-192822-7 |access-date=8 October 2020 |archive-date=18 April 2017 |archive-url=https://web.archive.org/web/20170418040039/https://books.google.com/books?id=lkbTL36ZgPIC |url-status=live}}
* {{cite book |last1=Theissen |first1=Gerd |author-link1=Gerd Theissen |last2=Merz |first2=Annette |author-link2=Annette Merz |year=1998 |title=The Historical Jesus: A Comprehensive Guide |isbn=978-1-4514-0863-8 |language=en|publisher=Fortress Press |url=https://books.google.com/books?id=3ZU97DQMH6UC |access-date=8 October 2020 |archive-date=5 August 2020 |archive-url=https://web.archive.org/web/20200805091805/https://books.google.com/books?id=3ZU97DQMH6UC |url-status=live}}
* {{cite book |title=The Quest for the Plausible Jesus: The Question of Criteria |first1=Gerd |last1=Theissen |first2=Dagmar |last2=Winter |year=2002 |isbn=978-0-664-22537-7 |publisher=Westminster John Knox Press |language=en|url=https://books.google.com/books?id=qB5ulgKx4OUC |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222036/https://books.google.com/books?id=qB5ulgKx4OUC |url-status=live}}
* {{cite book |first=Graham H. |last=Twelftree |author-link=Graham Twelftree |title=Jesus the Miracle Worker: A Historical & Theological Study |isbn=978-0-8308-1596-8 |language=en|url=https://archive.org/details/jesusmiraclework00grah/page/95 |year=1999 |publisher=InterVarsity |page=[https://archive.org/details/jesusmiraclework00grah/page/95 95]}}
* {{cite book |last=Van Voorst |first=Robert E. |year=2000 |title=Jesus Outside the New Testament: An Introduction to the Ancient Evidence |publisher=Wm. B. Eerdmans |isbn=978-0-8028-4368-5 |language=en|url=https://books.google.com/books?id=lwzliMSRGGkC |access-date=8 October 2020 |archive-date=19 August 2020 |archive-url=https://web.archive.org/web/20200819143206/https://books.google.com/books?id=lwzliMSRGGkC |url-status=live}}
* {{cite book |title=Expository Dictionary of New Testament Words |last=Vine |first=William E. |author-link=William Edwy Vine |orig-year=1940 |language=en|year=1985|publisher=Fleming H. Revell |isbn=978-0-916441-31-9|ref={{SfnRef|Vine|1940}} }}
* {{cite book |title=Jesus the Jew: A Historian's Reading of the Gospels |last=Vermes |first=Geza |author-link1=Geza Vermes |year=1981 |publisher=First Fortress |location=Philadelphia |isbn=978-0-8006-1443-0 |url=https://books.google.com/books?id=RvSEK2HALnwC |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222037/https://books.google.com/books?id=RvSEK2HALnwC |url-status=live}}
* {{cite book |title=The Bible Knowledge Commentary: New Testament |first1=John F. |last1=Walvoord |author-link1=John Walvoord |first2=Roy B. |last2=Zuck |year=1983 |language=en|isbn=978-0-88207-812-0 |publisher=David C. Cook |url=https://books.google.com/books?id=DP4UiA4gQNMC |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222037/https://books.google.com/books?id=DP4UiA4gQNMC |url-status=live}}
* {{cite book |title=The Jesus Quest: The Third Search for the Jew of Nazareth |first=Ben |last=Witherington |author-link=Ben Witherington III |year=1997 |isbn=978-0-8308-1544-9 |publisher=InterVarsity |language=en|url=https://books.google.com/books?id=IE_T3Xh2fyUC |access-date=8 October 2020 |archive-date=8 October 2020 |archive-url=https://web.archive.org/web/20201008222039/https://books.google.com/books?id=IE_T3Xh2fyUC |url-status=live}}
{{refend}}
[[Categoria:Jesus Cristo]]
[[Categoria:Cristianisme]]
9ipg6gnh7ohpglkkw9jr93o9eg5kbjt
Modulo:Documentation
828
4737
43235
23909
2026-07-06T23:23:06Z
Ne
1118
redirije
43235
Scribunto
text/plain
return require('Modulo:Documenti')
o3my6f9ceqx71i9u69pyaqdno1rmfkz
Model:Documentation
10
4738
43238
23910
2026-07-06T23:26:34Z
Ne
1118
redirije
43238
wikitext
text/x-wiki
#REDIRECT [[Model:Documenti]]
pd3agya66glpi5co6vkycx4704962td
Modulo:Message box
828
4740
43249
42281
2026-07-07T00:04:21Z
Ne
1118
varia corente de enwiki
43249
Scribunto
text/plain
require('strict')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
self.typeImageNeedsLink = typeData.imageNeedsLink
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Set the below row.
self.below = cfg.below and args.below
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
if self.below then
self:addClass('mbox-with-below')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Set image classes.
self.imageRightClass = args.imagerightclass or args.imageclass
self.imageLeftClass = args.imageleftclass or args.imageclass
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'This ' .. (cfg.sectionDefault or 'page')
elseif type(args.sect) == 'string' then
sect = 'This ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == '#' and '' or '#') .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s' .. (talk == '#' and '' or '#') .. '%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage
or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" )
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:exportDiv()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box.
local mbox = root:tag('div')
mbox:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
mbox:addClass(class or nil)
end
mbox
:cssText(self.style or nil)
if self.attrs then
mbox:attr(self.attrs)
end
local flex_container
if self.below then
-- we need to wrap the flex components (`image(right)` and `text`) in their
-- own container div to support the `below` parameter
flex_container = mw.html.create('div')
flex_container:addClass('mbox-flex')
else
-- the mbox itself is the parent, so we need no HTML flex_container
flex_container = mw.html.create()
end
-- Add the left-hand image.
if self.imageLeft then
local imageLeftCell = flex_container:tag('div'):addClass('mbox-image')
imageLeftCell
:addClass(self.imageLeftClass)
:wikitext(self.imageLeft or nil)
end
-- Add the text.
local textCell = flex_container:tag('div'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = flex_container:tag('div'):addClass('mbox-imageright')
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
mbox:node(flex_container)
-- Add the below row.
if self.below then
mbox:tag('div')
:addClass('mbox-text mbox-below')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell
:addClass(self.imageLeftClass)
:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
-- DIV MIGRATION CONDITIONAL
if box.cfg.div_structure then
return box:exportDiv()
end
-- END DIV MIGRATION CONDITIONAL
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
ocboyo877qnpqum2b9fyiquh72vukqa
43253
43249
2026-07-07T00:32:34Z
Ne
1118
43253
Scribunto
text/plain
require('strict')
local getArgs
local yesno = require('Module:Yesno')
local lang = mw.language.getContentLanguage()
local CONFIG_MODULE = 'Module:Message box/configuration'
local DEMOSPACES = {talk = 'tmbox', image = 'imbox', file = 'imbox', category = 'cmbox', article = 'ambox', main = 'ambox'}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function getTitleObject(...)
-- Get the title object, passing the function through pcall
-- in case we are over the expensive function count limit.
local success, title = pcall(mw.title.new, ...)
if success then
return title
end
end
local function union(t1, t2)
-- Returns the union of two arrays.
local vals = {}
for i, v in ipairs(t1) do
vals[v] = true
end
for i, v in ipairs(t2) do
vals[v] = true
end
local ret = {}
for k in pairs(vals) do
table.insert(ret, k)
end
table.sort(ret)
return ret
end
local function getArgNums(args, prefix)
local nums = {}
for k, v in pairs(args) do
local num = mw.ustring.match(tostring(k), '^' .. prefix .. '([1-9]%d*)$')
if num then
table.insert(nums, tonumber(num))
end
end
table.sort(nums)
return nums
end
--------------------------------------------------------------------------------
-- Box class definition
--------------------------------------------------------------------------------
local MessageBox = {}
MessageBox.__index = MessageBox
function MessageBox.new(boxType, args, cfg)
args = args or {}
local obj = {}
-- Set the title object and the namespace.
obj.title = getTitleObject(args.page) or mw.title.getCurrentTitle()
-- Set the config for our box type.
obj.cfg = cfg[boxType]
if not obj.cfg then
local ns = obj.title.namespace
-- boxType is "mbox" or invalid input
if args.demospace and args.demospace ~= '' then
-- implement demospace parameter of mbox
local demospace = string.lower(args.demospace)
if DEMOSPACES[demospace] then
-- use template from DEMOSPACES
obj.cfg = cfg[DEMOSPACES[demospace]]
elseif string.find( demospace, 'talk' ) then
-- demo as a talk page
obj.cfg = cfg.tmbox
else
-- default to ombox
obj.cfg = cfg.ombox
end
elseif ns == 0 then
obj.cfg = cfg.ambox -- main namespace
elseif ns == 6 then
obj.cfg = cfg.imbox -- file namespace
elseif ns == 14 then
obj.cfg = cfg.cmbox -- category namespace
else
local nsTable = mw.site.namespaces[ns]
if nsTable and nsTable.isTalk then
obj.cfg = cfg.tmbox -- any talk namespace
else
obj.cfg = cfg.ombox -- other namespaces or invalid input
end
end
end
-- Set the arguments, and remove all blank arguments except for the ones
-- listed in cfg.allowBlankParams.
do
local newArgs = {}
for k, v in pairs(args) do
if v ~= '' then
newArgs[k] = v
end
end
for i, param in ipairs(obj.cfg.allowBlankParams or {}) do
newArgs[param] = args[param]
end
obj.args = newArgs
end
-- Define internal data structure.
obj.categories = {}
obj.classes = {}
-- For lazy loading of [[Module:Category handler]].
obj.hasCategories = false
return setmetatable(obj, MessageBox)
end
function MessageBox:addCat(ns, cat, sort)
if not cat then
return nil
end
if sort then
cat = string.format('[[Category:%s|%s]]', cat, sort)
else
cat = string.format('[[Category:%s]]', cat)
end
self.hasCategories = true
self.categories[ns] = self.categories[ns] or {}
table.insert(self.categories[ns], cat)
end
function MessageBox:addClass(class)
if not class then
return nil
end
table.insert(self.classes, class)
end
function MessageBox:setParameters()
local args = self.args
local cfg = self.cfg
-- Get type data.
self.type = args.type
local typeData = cfg.types[self.type]
self.invalidTypeError = cfg.showInvalidTypeError
and self.type
and not typeData
typeData = typeData or cfg.types[cfg.default]
self.typeClass = typeData.class
self.typeImage = typeData.image
self.typeImageNeedsLink = typeData.imageNeedsLink
-- Find if the box has been wrongly substituted.
self.isSubstituted = cfg.substCheck and args.subst == 'SUBST'
-- Find whether we are using a small message box.
self.isSmall = cfg.allowSmall and (
cfg.smallParam and args.small == cfg.smallParam
or not cfg.smallParam and yesno(args.small)
)
-- Set the below row.
self.below = cfg.below and args.below
-- Add attributes, classes and styles.
self.id = args.id
self.name = args.name
if self.name then
self:addClass('box-' .. string.gsub(self.name,' ','_'))
end
if yesno(args.plainlinks) ~= false then
self:addClass('plainlinks')
end
if self.below then
self:addClass('mbox-with-below')
end
for _, class in ipairs(cfg.classes or {}) do
self:addClass(class)
end
if self.isSmall then
self:addClass(cfg.smallClass or 'mbox-small')
end
self:addClass(self.typeClass)
self:addClass(args.class)
self.style = args.style
self.attrs = args.attrs
-- Set text style.
self.textstyle = args.textstyle
-- Set image classes.
self.imageRightClass = args.imagerightclass or args.imageclass
self.imageLeftClass = args.imageleftclass or args.imageclass
-- Find if we are on the template page or not. This functionality is only
-- used if useCollapsibleTextFields is set, or if both cfg.templateCategory
-- and cfg.templateCategoryRequireName are set.
self.useCollapsibleTextFields = cfg.useCollapsibleTextFields
if self.useCollapsibleTextFields
or cfg.templateCategory
and cfg.templateCategoryRequireName
then
if self.name then
local templateName = mw.ustring.match(
self.name,
'^[tT][eE][mM][pP][lL][aA][tT][eE][%s_]*:[%s_]*(.*)$'
) or self.name
templateName = 'Template:' .. templateName
self.templateTitle = getTitleObject(templateName)
end
self.isTemplatePage = self.templateTitle
and mw.title.equals(self.title, self.templateTitle)
end
-- Process data for collapsible text fields. At the moment these are only
-- used in {{ambox}}.
if self.useCollapsibleTextFields then
-- Get the self.issue value.
if self.isSmall and args.smalltext then
self.issue = args.smalltext
else
local sect
if args.sect == '' then
sect = 'Esta ' .. (cfg.sectionDefault or 'paje')
elseif type(args.sect) == 'string' then
sect = 'Esta ' .. args.sect
end
local issue = args.issue
issue = type(issue) == 'string' and issue ~= '' and issue or nil
local text = args.text
text = type(text) == 'string' and text or nil
local issues = {}
table.insert(issues, sect)
table.insert(issues, issue)
table.insert(issues, text)
self.issue = table.concat(issues, ' ')
end
-- Get the self.talk value.
local talk = args.talk
-- Show talk links on the template page or template subpages if the talk
-- parameter is blank.
if talk == ''
and self.templateTitle
and (
mw.title.equals(self.templateTitle, self.title)
or self.title:isSubpageOf(self.templateTitle)
)
then
talk = '#'
elseif talk == '' then
talk = nil
end
if talk then
-- If the talk value is a talk page, make a link to that page. Else
-- assume that it's a section heading, and make a link to the talk
-- page of the current page with that section heading.
local talkTitle = getTitleObject(talk)
local talkArgIsTalkPage = true
if not talkTitle or not talkTitle.isTalkPage then
talkArgIsTalkPage = false
talkTitle = getTitleObject(
self.title.text,
mw.site.namespaces[self.title.namespace].talk.id
)
end
if talkTitle and talkTitle.exists then
local talkText
if self.isSmall then
local talkLink = talkArgIsTalkPage and talk or (talkTitle.prefixedText .. (talk == '#' and '' or '#') .. talk)
talkText = string.format('([[%s|talk]])', talkLink)
else
talkText = 'Relevant discussion may be found on'
if talkArgIsTalkPage then
talkText = string.format(
'%s [[%s|%s]].',
talkText,
talk,
talkTitle.prefixedText
)
else
talkText = string.format(
'%s the [[%s' .. (talk == '#' and '' or '#') .. '%s|talk page]].',
talkText,
talkTitle.prefixedText,
talk
)
end
end
self.talk = talkText
end
end
-- Get other values.
self.fix = args.fix ~= '' and args.fix or nil
local date
if args.date and args.date ~= '' then
date = args.date
elseif args.date == '' and self.isTemplatePage then
date = lang:formatDate('F Y')
end
if date then
self.date = string.format(" <span class='date-container'><i>(<span class='date'>%s</span>)</i></span>", date)
end
self.info = args.info
if yesno(args.removalnotice) then
self.removalNotice = cfg.removalNotice
end
end
-- Set the non-collapsible text field. At the moment this is used by all box
-- types other than ambox, and also by ambox when small=yes.
if self.isSmall then
self.text = args.smalltext or args.text
else
self.text = args.text
end
-- General image settings.
self.imageCellDiv = not self.isSmall and cfg.imageCellDiv
self.imageEmptyCell = cfg.imageEmptyCell
-- Left image settings.
local imageLeft = self.isSmall and args.smallimage or args.image
if cfg.imageCheckBlank and imageLeft ~= 'blank' and imageLeft ~= 'none'
or not cfg.imageCheckBlank and imageLeft ~= 'none'
then
self.imageLeft = imageLeft
if not imageLeft then
local imageSize = self.isSmall
and (cfg.imageSmallSize or '30x30px')
or '40x40px'
self.imageLeft = string.format('[[File:%s|%s%s|alt=]]', self.typeImage
or 'Information icon4.svg', imageSize, self.typeImageNeedsLink and "" or "|link=" )
end
end
-- Right image settings.
local imageRight = self.isSmall and args.smallimageright or args.imageright
if not (cfg.imageRightNone and imageRight == 'none') then
self.imageRight = imageRight
end
-- set templatestyles
self.base_templatestyles = cfg.templatestyles
self.templatestyles = args.templatestyles
end
function MessageBox:setMainspaceCategories()
local args = self.args
local cfg = self.cfg
if not cfg.allowMainspaceCategories then
return nil
end
local nums = {}
for _, prefix in ipairs{'cat', 'category', 'all'} do
args[prefix .. '1'] = args[prefix]
nums = union(nums, getArgNums(args, prefix))
end
-- The following is roughly equivalent to the old {{Ambox/category}}.
local date = args.date
date = type(date) == 'string' and date
local preposition = 'from'
for _, num in ipairs(nums) do
local mainCat = args['cat' .. tostring(num)]
or args['category' .. tostring(num)]
local allCat = args['all' .. tostring(num)]
mainCat = type(mainCat) == 'string' and mainCat
allCat = type(allCat) == 'string' and allCat
if mainCat and date and date ~= '' then
local catTitle = string.format('%s %s %s', mainCat, preposition, date)
self:addCat(0, catTitle)
catTitle = getTitleObject('Category:' .. catTitle)
if not catTitle or not catTitle.exists then
self:addCat(0, 'Articles with invalid date parameter in template')
end
elseif mainCat and (not date or date == '') then
self:addCat(0, mainCat)
end
if allCat then
self:addCat(0, allCat)
end
end
end
function MessageBox:setTemplateCategories()
local args = self.args
local cfg = self.cfg
-- Add template categories.
if cfg.templateCategory then
if cfg.templateCategoryRequireName then
if self.isTemplatePage then
self:addCat(10, cfg.templateCategory)
end
elseif not self.title.isSubpage then
self:addCat(10, cfg.templateCategory)
end
end
-- Add template error categories.
if cfg.templateErrorCategory then
local templateErrorCategory = cfg.templateErrorCategory
local templateCat, templateSort
if not self.name and not self.title.isSubpage then
templateCat = templateErrorCategory
elseif self.isTemplatePage then
local paramsToCheck = cfg.templateErrorParamsToCheck or {}
local count = 0
for i, param in ipairs(paramsToCheck) do
if not args[param] then
count = count + 1
end
end
if count > 0 then
templateCat = templateErrorCategory
templateSort = tostring(count)
end
if self.categoryNums and #self.categoryNums > 0 then
templateCat = templateErrorCategory
templateSort = 'C'
end
end
self:addCat(10, templateCat, templateSort)
end
end
function MessageBox:setAllNamespaceCategories()
-- Set categories for all namespaces.
if self.invalidTypeError then
local allSort = (self.title.namespace == 0 and 'Main:' or '') .. self.title.prefixedText
self:addCat('all', 'Wikipedia message box parameter needs fixing', allSort)
end
if self.isSubstituted then
self:addCat('all', 'Pages with incorrectly substituted templates')
end
end
function MessageBox:setCategories()
if self.title.namespace == 0 then
self:setMainspaceCategories()
elseif self.title.namespace == 10 then
self:setTemplateCategories()
end
self:setAllNamespaceCategories()
end
function MessageBox:renderCategories()
if not self.hasCategories then
-- No categories added, no need to pass them to Category handler so,
-- if it was invoked, it would return the empty string.
-- So we shortcut and return the empty string.
return ""
end
-- Convert category tables to strings and pass them through
-- [[Module:Category handler]].
return require('Module:Category handler')._main{
main = table.concat(self.categories[0] or {}),
template = table.concat(self.categories[10] or {}),
all = table.concat(self.categories.all or {}),
nocat = self.args.nocat,
page = self.args.page
}
end
function MessageBox:exportDiv()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box.
local mbox = root:tag('div')
mbox:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
mbox:addClass(class or nil)
end
mbox
:cssText(self.style or nil)
if self.attrs then
mbox:attr(self.attrs)
end
local flex_container
if self.below then
-- we need to wrap the flex components (`image(right)` and `text`) in their
-- own container div to support the `below` parameter
flex_container = mw.html.create('div')
flex_container:addClass('mbox-flex')
else
-- the mbox itself is the parent, so we need no HTML flex_container
flex_container = mw.html.create()
end
-- Add the left-hand image.
if self.imageLeft then
local imageLeftCell = flex_container:tag('div'):addClass('mbox-image')
imageLeftCell
:addClass(self.imageLeftClass)
:wikitext(self.imageLeft or nil)
end
-- Add the text.
local textCell = flex_container:tag('div'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = flex_container:tag('div'):addClass('mbox-imageright')
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
mbox:node(flex_container)
-- Add the below row.
if self.below then
mbox:tag('div')
:addClass('mbox-text mbox-below')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
function MessageBox:export()
local root = mw.html.create()
-- Add the subst check error.
if self.isSubstituted and self.name then
root:tag('b')
:addClass('error')
:wikitext(string.format(
'Template <code>%s[[Template:%s|%s]]%s</code> has been incorrectly substituted.',
mw.text.nowiki('{{'), self.name, self.name, mw.text.nowiki('}}')
))
end
local frame = mw.getCurrentFrame()
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.base_templatestyles },
})
-- Add support for a single custom templatestyles sheet. Undocumented as
-- need should be limited and many templates using mbox are substed; we
-- don't want to spread templatestyles sheets around to arbitrary places
if self.templatestyles then
root:wikitext(frame:extensionTag{
name = 'templatestyles',
args = { src = self.templatestyles },
})
end
-- Create the box table.
local boxTable = root:tag('table')
boxTable:attr('id', self.id or nil)
for i, class in ipairs(self.classes or {}) do
boxTable:addClass(class or nil)
end
boxTable
:cssText(self.style or nil)
:attr('role', 'presentation')
if self.attrs then
boxTable:attr(self.attrs)
end
-- Add the left-hand image.
local row = boxTable:tag('tr')
if self.imageLeft then
local imageLeftCell = row:tag('td'):addClass('mbox-image')
if self.imageCellDiv then
-- If we are using a div, redefine imageLeftCell so that the image
-- is inside it. Divs use style="width: 52px;", which limits the
-- image width to 52px. If any images in a div are wider than that,
-- they may overlap with the text or cause other display problems.
imageLeftCell = imageLeftCell:tag('div'):addClass('mbox-image-div')
end
imageLeftCell
:addClass(self.imageLeftClass)
:wikitext(self.imageLeft or nil)
elseif self.imageEmptyCell then
-- Some message boxes define an empty cell if no image is specified, and
-- some don't. The old template code in templates where empty cells are
-- specified gives the following hint: "No image. Cell with some width
-- or padding necessary for text cell to have 100% width."
row:tag('td')
:addClass('mbox-empty-cell')
end
-- Add the text.
local textCell = row:tag('td'):addClass('mbox-text')
if self.useCollapsibleTextFields then
-- The message box uses advanced text parameters that allow things to be
-- collapsible. At the moment, only ambox uses this.
textCell:cssText(self.textstyle or nil)
local textCellDiv = textCell:tag('div')
textCellDiv
:addClass('mbox-text-span')
:wikitext(self.issue or nil)
if (self.talk or self.fix) then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:wikitext(self.talk and (' ' .. self.talk) or nil)
:wikitext(self.fix and (' ' .. self.fix) or nil)
end
textCellDiv:wikitext(self.date and (' ' .. self.date) or nil)
if self.info and not self.isSmall then
textCellDiv
:tag('span')
:addClass('hide-when-compact')
:wikitext(self.info and (' ' .. self.info) or nil)
end
if self.removalNotice then
textCellDiv:tag('span')
:addClass('hide-when-compact')
:tag('i')
:wikitext(string.format(" (%s)", self.removalNotice))
end
else
-- Default text formatting - anything goes.
textCell
:cssText(self.textstyle or nil)
:wikitext(self.text or nil)
end
-- Add the right-hand image.
if self.imageRight then
local imageRightCell = row:tag('td'):addClass('mbox-imageright')
if self.imageCellDiv then
-- If we are using a div, redefine imageRightCell so that the image
-- is inside it.
imageRightCell = imageRightCell:tag('div'):addClass('mbox-image-div')
end
imageRightCell
:addClass(self.imageRightClass)
:wikitext(self.imageRight or nil)
end
-- Add the below row.
if self.below then
boxTable:tag('tr')
:tag('td')
:attr('colspan', self.imageRight and '3' or '2')
:addClass('mbox-text')
:cssText(self.textstyle or nil)
:wikitext(self.below or nil)
end
-- Add error message for invalid type parameters.
if self.invalidTypeError then
root:tag('div')
:addClass('mbox-invalid-type')
:wikitext(string.format(
'This message box is using an invalid "type=%s" parameter and needs fixing.',
self.type or ''
))
end
-- Add categories.
root:wikitext(self:renderCategories() or nil)
return tostring(root)
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p, mt = {}, {}
function p._exportClasses()
-- For testing.
return {
MessageBox = MessageBox
}
end
function p.main(boxType, args, cfgTables)
local box = MessageBox.new(boxType, args, cfgTables or mw.loadData(CONFIG_MODULE))
box:setParameters()
box:setCategories()
-- DIV MIGRATION CONDITIONAL
if box.cfg.div_structure then
return box:exportDiv()
end
-- END DIV MIGRATION CONDITIONAL
return box:export()
end
function mt.__index(t, k)
return function (frame)
if not getArgs then
getArgs = require('Module:Arguments').getArgs
end
return t.main(k, getArgs(frame, {trim = false, removeBlanks = false}))
end
end
return setmetatable(p, mt)
fr63nel7jox4brac8mry6mkl4j9hzqz
Modulo:Documentation/config
828
4743
43236
23915
2026-07-06T23:23:18Z
Ne
1118
redirije
43236
Scribunto
text/plain
return require('Modulo:Documenti/ajusta')
mtchbl2bg4egoht97q9z960zf50kl7z
Modulo:Message box/configuration
828
4744
43250
23916
2026-07-07T00:10:52Z
Ne
1118
varia corente de enwiki
43250
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Message box configuration --
-- --
-- This module contains configuration data for [[Module:Message box]]. --
--------------------------------------------------------------------------------
return {
ambox = {
types = {
speedy = {
class = 'ambox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ambox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ambox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ambox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ambox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ambox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ambox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
allowBlankParams = {'talk', 'sect', 'date', 'issue', 'fix', 'subst', 'hidden'},
allowSmall = true,
smallParam = 'left',
smallClass = 'mbox-small-left',
substCheck = true,
classes = {'metadata', 'ambox'},
imageEmptyCell = true,
imageCheckBlank = true,
imageSmallSize = '20x20px',
imageCellDiv = true,
useCollapsibleTextFields = true,
imageRightNone = true,
sectionDefault = 'article',
allowMainspaceCategories = true,
templateCategory = 'Article message templates',
templateCategoryRequireName = true,
templateErrorCategory = 'Article message templates with missing parameters',
templateErrorParamsToCheck = {'issue', 'fix', 'subst'},
removalNotice = '<small>[[Help:Maintenance template removal|Learn how and when to remove this message]]</small>',
templatestyles = 'Module:Message box/ambox.css'
},
cmbox = {
types = {
speedy = {
class = 'cmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'cmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'cmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'cmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'cmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'cmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'cmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'cmbox'},
imageEmptyCell = true,
templatestyles = 'Module:Message box/cmbox.css',
div_structure = true,
},
fmbox = {
types = {
warning = {
class = 'fmbox-warning',
image = 'Ambox warning pn.svg'
},
editnotice = {
class = 'fmbox-editnotice',
image = 'Information icon4.svg'
},
system = {
class = 'fmbox-system',
image = 'Information icon4.svg'
}
},
default = 'system',
showInvalidTypeError = true,
classes = {'fmbox'},
imageEmptyCell = false,
imageRightNone = false,
templatestyles = 'Module:Message box/fmbox.css',
div_structure = true,
},
imbox = {
types = {
speedy = {
class = 'imbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'imbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'imbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'imbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'imbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'imbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
license = {
class = 'imbox-license licensetpl',
image = 'Imbox-license.svg'
},
["license-related"] = {
class = 'imbox-license',
image = 'Imbox-license.svg'
},
featured = {
class = 'imbox-featured',
image = 'Cscr-featured.svg',
imageNeedsLink = true
},
notice = {
class = 'imbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'imbox'},
imageEmptyCell = true,
below = true,
templateCategory = 'File message boxes',
templatestyles = 'Module:Message box/imbox.css',
div_structure = true,
},
ombox = {
types = {
speedy = {
class = 'ombox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'ombox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'ombox-content',
image = 'Ambox important.svg'
},
style = {
class = 'ombox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'ombox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'ombox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'ombox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'ombox'},
allowSmall = true,
imageEmptyCell = true,
imageRightNone = true,
templatestyles = 'Module:Message box/ombox.css'
},
tmbox = {
types = {
speedy = {
class = 'tmbox-speedy',
image = 'Ambox warning pn.svg'
},
delete = {
class = 'tmbox-delete',
image = 'Ambox warning pn.svg'
},
content = {
class = 'tmbox-content',
image = 'Ambox important.svg'
},
style = {
class = 'tmbox-style',
image = 'Edit-clear.svg'
},
move = {
class = 'tmbox-move',
image = 'Merge-split-transwiki default.svg'
},
protection = {
class = 'tmbox-protection',
image = 'Semi-protection-shackle-keyhole.svg'
},
notice = {
class = 'tmbox-notice',
image = 'Information icon4.svg'
}
},
default = 'notice',
showInvalidTypeError = true,
classes = {'tmbox'},
allowSmall = true,
imageRightNone = true,
imageEmptyCell = true,
templateCategory = 'Talk message boxes',
templatestyles = 'Module:Message box/tmbox.css'
}
}
p36hrbxjy99m7clj64lhlint2en3bo0
Manuscrito
0
7671
43255
41597
2026-07-07T01:10:10Z
Ne
1118
43255
wikitext
text/x-wiki
{{Fusa|manoscrito}}
La arte de scrive se nomina '''[[caligrafia]]''' e es intima relata con la manoscritos; lo es multe posible ce la inventa de la primi ta fa ce alga de esta grafias ta es desapare merita a desusa sua.
efy7nfxs4yy3wg4tcqcaydgp6t0s3vg
Modulo:Documentation/proba
828
8002
43228
2026-07-06T22:55:20Z
Ne
1118
tradui de proba de Modulo:Documentation
43228
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[Image:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = 'paje de [[Wikipedia:Template test cases|proba per modeles]]'
cfg['sandbox-notice-pagetype-module'] = 'paje de [[Wikipedia:Template test cases|proba per modulos]]'
cfg['sandbox-notice-pagetype-other'] = 'paje de proba'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'Esta es la $1 per $2.'
cfg['sandbox-notice-diff-blurb'] = 'Esta es la $1 per $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'dif'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'Vide ance la supaje acompaniante per $1.'
cfg['sandbox-notice-testcases-link-display'] = 'casos de proba'
cfg['sandbox-notice-testcases-run-blurb'] = 'Vide ance la supaje acompaniante per $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'esecuta'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Pajes de proba de modeles'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Documenti de model'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Documenti de modulo'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Resoma'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documenti'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'vide'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edita'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'istoria'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purga'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'La [[Wikipedia:Template documentation|paje de documenti]] de supra es [[Wikipedia:Transclusion|emportada]] de $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'Tu ta vole $1 un paje de documenti per esta [[Wikipedia:Lua|modulo Scribunto]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editores pote experimenta en la pajes $1 e $2 de esta model."
cfg['experiment-blurb-module'] = "Editores pote experimenta en la pajes $1 e $2 de esta modulo."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'proba'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'de proba'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edita'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'crea'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'dif'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Crea varia de proba de $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirori'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/miror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'casos de proba'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'de casos de proba'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edita'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'esecuta'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Ajunta categorias a la supaje $1.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Supajes de esta $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'model'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'modulo'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'paje'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['file-docpage-preload']
-- Preload file for documentation page in the file namespace.
cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- Print version configuration
----------------------------------------------------------------------------------------------------
-- cfg['print-subpage']
-- The name of the template subpage used for print versions.
cfg['print-subpage'] = 'Primi'
-- cfg['print-link-display']
-- The text to display when linking to the /Print subpage.
cfg['print-link-display'] = '/Primi'
-- cfg['print-blurb']
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg['print-link-display'].
cfg['print-blurb'] = 'Un [[Help:Books/for experts#Improving the book layout|varia de primi]] de esta model esiste en $1.'
.. ' Si tu fa un cambia a esta model, por favore ance corenti la varia de primi.'
-- cfg['display-print-category']
-- Set to true to enable output of cfg['print-category'] if a /Print subpage exists.
-- This should be a boolean value (either true or false).
cfg['display-print-category'] = true
-- cfg['print-category']
-- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists.
cfg['print-category'] = 'Modeles con varias de primi'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['main-div-id']
-- The "id" attribute of the main HTML "div" tag.
cfg['main-div-id'] = 'template-documentation'
-- cfg['main-div-classes']
-- The CSS classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'template-documentation iezoomfix'
-- cfg['start-box-linkclasses']
-- The CSS classes used for the [view][edit][history] or [create] links in the start box.
cfg['start-box-linkclasses'] = 'mw-editsection-like plainlinks'
-- cfg['start-box-link-id']
-- The HTML "id" attribute for the links in the start box.
cfg['start-box-link-id'] = 'doc_editlinks'
----------------------------------------------------------------------------------------------------
-- {{fmbox}} template configuration
----------------------------------------------------------------------------------------------------
-- cfg['fmbox-id']
-- The id sent to the "id" parameter of the {{fmbox}} template.
cfg['fmbox-id'] = 'documentation-meta-data'
-- cfg['fmbox-style']
-- The value sent to the style parameter of {{fmbox}}.
cfg['fmbox-style'] = 'background-color: #ecfcf4'
-- cfg['fmbox-textstyle']
-- The value sent to the "textstyle parameter of {{fmbox}}.
cfg['fmbox-textstyle'] = 'font-style: italic'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Pajes de' .. mw.site.siteName .. 'con usa strana de ((documentation))'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
e00t00jvxq84p0c2mg65oshy0cmtb96
43230
43228
2026-07-06T23:00:02Z
Ne
1118
paje de proba per la modulo
43230
Scribunto
text/plain
-- This module implements {{documentation}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
local messageBox = require('Module:Message box')
-- Get the config table.
local cfg = mw.loadData('Module:Documentation/config/proba')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
return ret
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
return '<small style="font-style: normal;">(' .. table.concat(ret, ' | ') .. ')</small>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Main function
----------------------------------------------------------------------------
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--
-- Messages:
-- 'main-div-id' --> 'template-documentation'
-- 'main-div-classes' --> 'template-documentation iezoomfix'
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
-- This div tag is from {{documentation/start box}}, but moving it here
-- so that we don't have to worry about unclosed tags.
:tag('div')
:attr('id', message('main-div-id'))
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
:css('clear', 'both') -- So right or left floating items don't stick out of the doc box.
:newline()
:done()
:done()
:wikitext(p._endBox(args, env))
:wikitext(p.addTrackingCategories(env))
return tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title objects and other namespace- or
-- path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
-- env.printTitle - the print version of the template, located at the /Print subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.printTitle()
--[[
-- Title object for the /Print subpage.
-- Messages:
-- 'print-subpage' --> 'Print'
--]]
return env.templateTitle:subPageTitle(message('print-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the same as the
-- subject namespace. However, pages in the Article, File, MediaWiki or Category
-- namespaces must have their /doc, /sandbox and /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.namespace == mw.site.namespaces.Module.id then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
text = text .. makeCategoryLink(message('sandbox-category'))
omargs.text = text
local ret = '<div style="clear: both;"></div>'
ret = ret .. messageBox.main('ombox', omargs)
return ret
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels, mProtectionBanner
local title = env.title
protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
mProtectionBanner = require('Module:Protection banner')
local reason = message('protection-reason-edit')
return mProtectionBanner._main{reason, small = true}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
mProtectionBanner = require('Module:Protection banner')
return mProtectionBanner._main{action = 'move', small = true}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 6 then -- File namespace
preload = message('file-docpage-preload')
elseif subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'start-box-linkclasses' --> 'mw-editsection-like plainlinks'
-- 'start-box-link-id' --> 'doc_editlinks'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
elseif subjectSpace == 10 then
-- We are in the template or template talk namespaces.
data.headingFontWeight = 'bold'
data.headingFontSize = '125%'
else
data.headingFontSize = '150%'
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
data.linksClass = message('start-box-linkclasses')
data.linksId = message('start-box-link-id')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
:css('padding-bottom', '3px')
:css('border-bottom', '1px solid #aaa')
:css('margin-bottom', '1ex')
:newline()
:tag('span')
:cssText(data.headingStyleText)
:css('font-weight', data.headingFontWeight)
:css('font-size', data.headingFontSize)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'fmbox-id' --> 'documentation-meta-data'
-- 'fmbox-style' --> 'background-color: #ecfcf4'
-- 'fmbox-textstyle' --> 'font-style: italic'
--
-- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]].
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the arguments for {{fmbox}}.
local fmargs = {}
fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data'
fmargs.image = 'none'
fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4'
fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;'
-- Assemble the fmbox text field.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '')
text = text .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.
if printBlurb then
text = text .. '<br />' .. printBlurb
end
end
end
fmargs.text = text
return messageBox.main('fmbox', fmargs)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Wikipedia:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if subjectSpace == 828 and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
function p.makePrintBlurb(args, env)
--[=[
-- Generates the blurb displayed when there is a print version of the template available.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'print-link-display' --> '/Print'
-- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]'
-- .. ' of this template exists at $1.'
-- .. ' If you make a change to this template, please update the print version as well.'
-- 'display-print-category' --> true
-- 'print-category' --> 'Templates with print versions'
--]=]
local printTitle = env.printTitle
if not printTitle then
return nil
end
local ret
if printTitle.exists then
local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display'))
ret = message('print-blurb', {printLink})
local displayPrintCategory = message('display-print-category', nil, 'boolean')
if displayPrintCategory then
ret = ret .. makeCategoryLink(message('print-category'))
end
end
return ret
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
ihlihx74iqjdcjdeemh627y90ayphrj
43233
43230
2026-07-06T23:17:21Z
Ne
1118
proba de la redirije
43233
Scribunto
text/plain
return require('Modulo:Documenti')
o3my6f9ceqx71i9u69pyaqdno1rmfkz
Modulo:Documentation/config/proba
828
8003
43229
2026-07-06T22:57:51Z
Ne
1118
tradui de proba de Modulo:Documentation/config
43229
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[Image:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = 'paje de [[Wikipedia:Template test cases|proba per modeles]]'
cfg['sandbox-notice-pagetype-module'] = 'paje de [[Wikipedia:Template test cases|proba per modulos]]'
cfg['sandbox-notice-pagetype-other'] = 'paje de proba'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'Esta es la $1 per $2.'
cfg['sandbox-notice-diff-blurb'] = 'Esta es la $1 per $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'dif'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'Vide ance la supaje acompaniante per $1.'
cfg['sandbox-notice-testcases-link-display'] = 'casos de proba'
cfg['sandbox-notice-testcases-run-blurb'] = 'Vide ance la supaje acompaniante per $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'esecuta'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Pajes de proba de modeles'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Documenti de model'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Documenti de modulo'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Resoma'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documenti'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'vide'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edita'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'istoria'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purga'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'La [[Wikipedia:Template documentation|paje de documenti]] de supra es [[Wikipedia:Transclusion|emportada]] de $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'Tu ta vole $1 un paje de documenti per esta [[Wikipedia:Lua|modulo Scribunto]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editores pote experimenta en la pajes $1 e $2 de esta model."
cfg['experiment-blurb-module'] = "Editores pote experimenta en la pajes $1 e $2 de esta modulo."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'proba'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'de proba'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edita'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'crea'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'dif'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Crea varia de proba de $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirori'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/miror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'casos de proba'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'de casos de proba'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edita'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'esecuta'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Ajunta categorias a la supaje $1.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Supajes de esta $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'model'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'modulo'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'paje'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['file-docpage-preload']
-- Preload file for documentation page in the file namespace.
cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- Print version configuration
----------------------------------------------------------------------------------------------------
-- cfg['print-subpage']
-- The name of the template subpage used for print versions.
cfg['print-subpage'] = 'Primi'
-- cfg['print-link-display']
-- The text to display when linking to the /Print subpage.
cfg['print-link-display'] = '/Primi'
-- cfg['print-blurb']
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg['print-link-display'].
cfg['print-blurb'] = 'Un [[Help:Books/for experts#Improving the book layout|varia de primi]] de esta model esiste en $1.'
.. ' Si tu fa un cambia a esta model, por favore ance corenti la varia de primi.'
-- cfg['display-print-category']
-- Set to true to enable output of cfg['print-category'] if a /Print subpage exists.
-- This should be a boolean value (either true or false).
cfg['display-print-category'] = true
-- cfg['print-category']
-- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists.
cfg['print-category'] = 'Modeles con varias de primi'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['main-div-id']
-- The "id" attribute of the main HTML "div" tag.
cfg['main-div-id'] = 'template-documentation'
-- cfg['main-div-classes']
-- The CSS classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'template-documentation iezoomfix'
-- cfg['start-box-linkclasses']
-- The CSS classes used for the [view][edit][history] or [create] links in the start box.
cfg['start-box-linkclasses'] = 'mw-editsection-like plainlinks'
-- cfg['start-box-link-id']
-- The HTML "id" attribute for the links in the start box.
cfg['start-box-link-id'] = 'doc_editlinks'
----------------------------------------------------------------------------------------------------
-- {{fmbox}} template configuration
----------------------------------------------------------------------------------------------------
-- cfg['fmbox-id']
-- The id sent to the "id" parameter of the {{fmbox}} template.
cfg['fmbox-id'] = 'documentation-meta-data'
-- cfg['fmbox-style']
-- The value sent to the style parameter of {{fmbox}}.
cfg['fmbox-style'] = 'background-color: #ecfcf4'
-- cfg['fmbox-textstyle']
-- The value sent to the "textstyle parameter of {{fmbox}}.
cfg['fmbox-textstyle'] = 'font-style: italic'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Pajes de' .. mw.site.siteName .. 'con usa strana de ((documentation))'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
e00t00jvxq84p0c2mg65oshy0cmtb96
43234
43229
2026-07-06T23:18:04Z
Ne
1118
proba de la redirije
43234
Scribunto
text/plain
return require('Modulo:Documenti/ajusta')
mtchbl2bg4egoht97q9z960zf50kl7z
Modulo:Documenti
828
8004
43231
2026-07-06T23:14:11Z
Ne
1118
Paje creada con "-- This module implements {{documenti}}. -- Get required modules. local getArgs = require('Module:Arguments').getArgs local messageBox = require('Module:Message box') -- Get the config table. local cfg = mw.loadData('Modulo:Documenti/ajusta') local p = {} -- Often-used functions. local ugsub = mw.ustring.gsub ---------------------------------------------------------------------------- -- Helper functions -- -- These are defined as local functions, but are made availab..."
43231
Scribunto
text/plain
-- This module implements {{documenti}}.
-- Get required modules.
local getArgs = require('Module:Arguments').getArgs
local messageBox = require('Module:Message box')
-- Get the config table.
local cfg = mw.loadData('Modulo:Documenti/ajusta')
local p = {}
-- Often-used functions.
local ugsub = mw.ustring.gsub
----------------------------------------------------------------------------
-- Helper functions
--
-- These are defined as local functions, but are made available in the p
-- table for testing purposes.
----------------------------------------------------------------------------
local function message(cfgKey, valArray, expectType)
--[[
-- Gets a message from the cfg table and formats it if appropriate.
-- The function raises an error if the value from the cfg table is not
-- of the type expectType. The default type for expectType is 'string'.
-- If the table valArray is present, strings such as $1, $2 etc. in the
-- message are substituted with values from the table keys [1], [2] etc.
-- For example, if the message "foo-message" had the value 'Foo $2 bar $1.',
-- message('foo-message', {'baz', 'qux'}) would return "Foo qux bar baz."
--]]
local msg = cfg[cfgKey]
expectType = expectType or 'string'
if type(msg) ~= expectType then
error('message: type error in message cfg.' .. cfgKey .. ' (' .. expectType .. ' expected, got ' .. type(msg) .. ')', 2)
end
if not valArray then
return msg
end
local function getMessageVal(match)
match = tonumber(match)
return valArray[match] or error('message: no value found for key $' .. match .. ' in message cfg.' .. cfgKey, 4)
end
local ret = ugsub(msg, '$([1-9][0-9]*)', getMessageVal)
return ret
end
p.message = message
local function makeWikilink(page, display)
if display then
return mw.ustring.format('[[%s|%s]]', page, display)
else
return mw.ustring.format('[[%s]]', page)
end
end
p.makeWikilink = makeWikilink
local function makeCategoryLink(cat, sort)
local catns = mw.site.namespaces[14].name
return makeWikilink(catns .. ':' .. cat, sort)
end
p.makeCategoryLink = makeCategoryLink
local function makeUrlLink(url, display)
return mw.ustring.format('[%s %s]', url, display)
end
p.makeUrlLink = makeUrlLink
local function makeToolbar(...)
local ret = {}
local lim = select('#', ...)
if lim < 1 then
return nil
end
for i = 1, lim do
ret[#ret + 1] = select(i, ...)
end
return '<small style="font-style: normal;">(' .. table.concat(ret, ' | ') .. ')</small>'
end
p.makeToolbar = makeToolbar
----------------------------------------------------------------------------
-- Argument processing
----------------------------------------------------------------------------
local function makeInvokeFunc(funcName)
return function (frame)
local args = getArgs(frame, {
valueFunc = function (key, value)
if type(value) == 'string' then
value = value:match('^%s*(.-)%s*$') -- Remove whitespace.
if key == 'heading' or value ~= '' then
return value
else
return nil
end
else
return value
end
end
})
return p[funcName](args)
end
end
----------------------------------------------------------------------------
-- Main function
----------------------------------------------------------------------------
p.main = makeInvokeFunc('_main')
function p._main(args)
--[[
-- This function defines logic flow for the module.
-- @args - table of arguments passed by the user
--
-- Messages:
-- 'main-div-id' --> 'template-documentation'
-- 'main-div-classes' --> 'template-documentation iezoomfix'
--]]
local env = p.getEnvironment(args)
local root = mw.html.create()
root
:wikitext(p.protectionTemplate(env))
:wikitext(p.sandboxNotice(args, env))
-- This div tag is from {{documentation/start box}}, but moving it here
-- so that we don't have to worry about unclosed tags.
:tag('div')
:attr('id', message('main-div-id'))
:addClass(message('main-div-classes'))
:newline()
:wikitext(p._startBox(args, env))
:wikitext(p._content(args, env))
:tag('div')
:css('clear', 'both') -- So right or left floating items don't stick out of the doc box.
:newline()
:done()
:done()
:wikitext(p._endBox(args, env))
:wikitext(p.addTrackingCategories(env))
return tostring(root)
end
----------------------------------------------------------------------------
-- Environment settings
----------------------------------------------------------------------------
function p.getEnvironment(args)
--[[
-- Returns a table with information about the environment, including title objects and other namespace- or
-- path-related data.
-- @args - table of arguments passed by the user
--
-- Title objects include:
-- env.title - the page we are making documentation for (usually the current title)
-- env.templateTitle - the template (or module, file, etc.)
-- env.docTitle - the /doc subpage.
-- env.sandboxTitle - the /sandbox subpage.
-- env.testcasesTitle - the /testcases subpage.
-- env.printTitle - the print version of the template, located at the /Print subpage.
--
-- Data includes:
-- env.protectionLevels - the protection levels table of the title object.
-- env.subjectSpace - the number of the title's subject namespace.
-- env.docSpace - the number of the namespace the title puts its documentation in.
-- env.docpageBase - the text of the base page of the /doc, /sandbox and /testcases pages, with namespace.
-- env.compareUrl - URL of the Special:ComparePages page comparing the sandbox with the template.
--
-- All table lookups are passed through pcall so that errors are caught. If an error occurs, the value
-- returned will be nil.
--]]
local env, envFuncs = {}, {}
-- Set up the metatable. If triggered we call the corresponding function in the envFuncs table. The value
-- returned by that function is memoized in the env table so that we don't call any of the functions
-- more than once. (Nils won't be memoized.)
setmetatable(env, {
__index = function (t, key)
local envFunc = envFuncs[key]
if envFunc then
local success, val = pcall(envFunc)
if success then
env[key] = val -- Memoise the value.
return val
end
end
return nil
end
})
function envFuncs.title()
-- The title object for the current page, or a test page passed with args.page.
local title
local titleArg = args.page
if titleArg then
title = mw.title.new(titleArg)
else
title = mw.title.getCurrentTitle()
end
return title
end
function envFuncs.templateTitle()
--[[
-- The template (or module, etc.) title object.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
-- 'testcases-subpage' --> 'testcases'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local subpage = title.subpageText
if subpage == message('sandbox-subpage') or subpage == message('testcases-subpage') then
return mw.title.makeTitle(subjectSpace, title.baseText)
else
return mw.title.makeTitle(subjectSpace, title.text)
end
end
function envFuncs.docTitle()
--[[
-- Title object of the /doc subpage.
-- Messages:
-- 'doc-subpage' --> 'doc'
--]]
local title = env.title
local docname = args[1] -- User-specified doc page.
local docpage
if docname then
docpage = docname
else
docpage = env.docpageBase .. '/' .. message('doc-subpage')
end
return mw.title.new(docpage)
end
function envFuncs.sandboxTitle()
--[[
-- Title object for the /sandbox subpage.
-- Messages:
-- 'sandbox-subpage' --> 'sandbox'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('sandbox-subpage'))
end
function envFuncs.testcasesTitle()
--[[
-- Title object for the /testcases subpage.
-- Messages:
-- 'testcases-subpage' --> 'testcases'
--]]
return mw.title.new(env.docpageBase .. '/' .. message('testcases-subpage'))
end
function envFuncs.printTitle()
--[[
-- Title object for the /Print subpage.
-- Messages:
-- 'print-subpage' --> 'Print'
--]]
return env.templateTitle:subPageTitle(message('print-subpage'))
end
function envFuncs.protectionLevels()
-- The protection levels table of the title object.
return env.title.protectionLevels
end
function envFuncs.subjectSpace()
-- The subject namespace number.
return mw.site.namespaces[env.title.namespace].subject.id
end
function envFuncs.docSpace()
-- The documentation namespace number. For most namespaces this is the same as the
-- subject namespace. However, pages in the Article, File, MediaWiki or Category
-- namespaces must have their /doc, /sandbox and /testcases pages in talk space.
local subjectSpace = env.subjectSpace
if subjectSpace == 0 or subjectSpace == 6 or subjectSpace == 8 or subjectSpace == 14 then
return subjectSpace + 1
else
return subjectSpace
end
end
function envFuncs.docpageBase()
-- The base page of the /doc, /sandbox, and /testcases subpages.
-- For some namespaces this is the talk page, rather than the template page.
local templateTitle = env.templateTitle
local docSpace = env.docSpace
local docSpaceText = mw.site.namespaces[docSpace].name
-- Assemble the link. docSpace is never the main namespace, so we can hardcode the colon.
return docSpaceText .. ':' .. templateTitle.text
end
function envFuncs.compareUrl()
-- Diff link between the sandbox and the main template using [[Special:ComparePages]].
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
if templateTitle.exists and sandboxTitle.exists then
local compareUrl = mw.uri.fullUrl(
'Special:ComparePages',
{page1 = templateTitle.prefixedText, page2 = sandboxTitle.prefixedText}
)
return tostring(compareUrl)
else
return nil
end
end
return env
end
----------------------------------------------------------------------------
-- Auxiliary templates
----------------------------------------------------------------------------
function p.sandboxNotice(args, env)
--[=[
-- Generates a sandbox notice for display above sandbox pages.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-notice-image' --> '[[Image:Sandbox.svg|50px|alt=|link=]]'
-- 'sandbox-notice-blurb' --> 'This is the $1 for $2.'
-- 'sandbox-notice-diff-blurb' --> 'This is the $1 for $2 ($3).'
-- 'sandbox-notice-pagetype-template' --> '[[Wikipedia:Template test cases|template sandbox]] page'
-- 'sandbox-notice-pagetype-module' --> '[[Wikipedia:Template test cases|module sandbox]] page'
-- 'sandbox-notice-pagetype-other' --> 'sandbox page'
-- 'sandbox-notice-compare-link-display' --> 'diff'
-- 'sandbox-notice-testcases-blurb' --> 'See also the companion subpage for $1.'
-- 'sandbox-notice-testcases-link-display' --> 'test cases'
-- 'sandbox-category' --> 'Template sandboxes'
--]=]
local title = env.title
local sandboxTitle = env.sandboxTitle
local templateTitle = env.templateTitle
local subjectSpace = env.subjectSpace
if not (subjectSpace and title and sandboxTitle and templateTitle and mw.title.equals(title, sandboxTitle)) then
return nil
end
-- Build the table of arguments to pass to {{ombox}}. We need just two fields, "image" and "text".
local omargs = {}
omargs.image = message('sandbox-notice-image')
-- Get the text. We start with the opening blurb, which is something like
-- "This is the template sandbox for [[Template:Foo]] (diff)."
local text = ''
local pagetype
if subjectSpace == 10 then
pagetype = message('sandbox-notice-pagetype-template')
elseif subjectSpace == 828 then
pagetype = message('sandbox-notice-pagetype-module')
else
pagetype = message('sandbox-notice-pagetype-other')
end
local templateLink = makeWikilink(templateTitle.prefixedText)
local compareUrl = env.compareUrl
if compareUrl then
local compareDisplay = message('sandbox-notice-compare-link-display')
local compareLink = makeUrlLink(compareUrl, compareDisplay)
text = text .. message('sandbox-notice-diff-blurb', {pagetype, templateLink, compareLink})
else
text = text .. message('sandbox-notice-blurb', {pagetype, templateLink})
end
-- Get the test cases page blurb if the page exists. This is something like
-- "See also the companion subpage for [[Template:Foo/testcases|test cases]]."
local testcasesTitle = env.testcasesTitle
if testcasesTitle and testcasesTitle.exists then
if testcasesTitle.namespace == mw.site.namespaces.Module.id then
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesRunLinkDisplay = message('sandbox-notice-testcases-run-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-run-blurb', {testcasesLink, testcasesRunLink})
else
local testcasesLinkDisplay = message('sandbox-notice-testcases-link-display')
local testcasesLink = makeWikilink(testcasesTitle.prefixedText, testcasesLinkDisplay)
text = text .. '<br />' .. message('sandbox-notice-testcases-blurb', {testcasesLink})
end
end
-- Add the sandbox to the sandbox category.
text = text .. makeCategoryLink(message('sandbox-category'))
omargs.text = text
local ret = '<div style="clear: both;"></div>'
ret = ret .. messageBox.main('ombox', omargs)
return ret
end
function p.protectionTemplate(env)
-- Generates the padlock icon in the top right.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'protection-template' --> 'pp-template'
-- 'protection-template-args' --> {docusage = 'yes'}
local protectionLevels, mProtectionBanner
local title = env.title
protectionLevels = env.protectionLevels
if not protectionLevels then
return nil
end
local editProt = protectionLevels.edit and protectionLevels.edit[1]
local moveProt = protectionLevels.move and protectionLevels.move[1]
if editProt then
-- The page is edit-protected.
mProtectionBanner = require('Module:Protection banner')
local reason = message('protection-reason-edit')
return mProtectionBanner._main{reason, small = true}
elseif moveProt and moveProt ~= 'autoconfirmed' then
-- The page is move-protected but not edit-protected. Exclude move
-- protection with the level "autoconfirmed", as this is equivalent to
-- no move protection at all.
mProtectionBanner = require('Module:Protection banner')
return mProtectionBanner._main{action = 'move', small = true}
else
return nil
end
end
----------------------------------------------------------------------------
-- Start box
----------------------------------------------------------------------------
p.startBox = makeInvokeFunc('_startBox')
function p._startBox(args, env)
--[[
-- This function generates the start box.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- The actual work is done by p.makeStartBoxLinksData and p.renderStartBoxLinks which make
-- the [view] [edit] [history] [purge] links, and by p.makeStartBoxData and p.renderStartBox
-- which generate the box HTML.
--]]
env = env or p.getEnvironment(args)
local links
local content = args.content
if not content then
-- No need to include the links if the documentation is on the template page itself.
local linksData = p.makeStartBoxLinksData(args, env)
if linksData then
links = p.renderStartBoxLinks(linksData)
end
end
-- Generate the start box html.
local data = p.makeStartBoxData(args, env, links)
if data then
return p.renderStartBox(data)
else
-- User specified no heading.
return nil
end
end
function p.makeStartBoxLinksData(args, env)
--[[
-- Does initial processing of data to make the [view] [edit] [history] [purge] links.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'view-link-display' --> 'view'
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'purge-link-display' --> 'purge'
-- 'file-docpage-preload' --> 'Template:Documentation/preload-filespace'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'docpage-preload' --> 'Template:Documentation/preload'
-- 'create-link-display' --> 'create'
--]]
local subjectSpace = env.subjectSpace
local title = env.title
local docTitle = env.docTitle
if not title or not docTitle then
return nil
end
local data = {}
data.title = title
data.docTitle = docTitle
-- View, display, edit, and purge links if /doc exists.
data.viewLinkDisplay = message('view-link-display')
data.editLinkDisplay = message('edit-link-display')
data.historyLinkDisplay = message('history-link-display')
data.purgeLinkDisplay = message('purge-link-display')
-- Create link if /doc doesn't exist.
local preload = args.preload
if not preload then
if subjectSpace == 6 then -- File namespace
preload = message('file-docpage-preload')
elseif subjectSpace == 828 then -- Module namespace
preload = message('module-preload')
else
preload = message('docpage-preload')
end
end
data.preload = preload
data.createLinkDisplay = message('create-link-display')
return data
end
function p.renderStartBoxLinks(data)
--[[
-- Generates the [view][edit][history][purge] or [create] links from the data table.
-- @data - a table of data generated by p.makeStartBoxLinksData
--]]
local function escapeBrackets(s)
-- Escapes square brackets with HTML entities.
s = s:gsub('%[', '[') -- Replace square brackets with HTML entities.
s = s:gsub('%]', ']')
return s
end
local ret
local docTitle = data.docTitle
local title = data.title
if docTitle.exists then
local viewLink = makeWikilink(docTitle.prefixedText, data.viewLinkDisplay)
local editLink = makeUrlLink(docTitle:fullUrl{action = 'edit'}, data.editLinkDisplay)
local historyLink = makeUrlLink(docTitle:fullUrl{action = 'history'}, data.historyLinkDisplay)
local purgeLink = makeUrlLink(title:fullUrl{action = 'purge'}, data.purgeLinkDisplay)
ret = '[%s] [%s] [%s] [%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, viewLink, editLink, historyLink, purgeLink)
else
local createLink = makeUrlLink(docTitle:fullUrl{action = 'edit', preload = data.preload}, data.createLinkDisplay)
ret = '[%s]'
ret = escapeBrackets(ret)
ret = mw.ustring.format(ret, createLink)
end
return ret
end
function p.makeStartBoxData(args, env, links)
--[=[
-- Does initial processing of data to pass to the start-box render function, p.renderStartBox.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- @links - a string containing the [view][edit][history][purge] links - could be nil if there's an error.
--
-- Messages:
-- 'documentation-icon-wikitext' --> '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- 'template-namespace-heading' --> 'Template documentation'
-- 'module-namespace-heading' --> 'Module documentation'
-- 'file-namespace-heading' --> 'Summary'
-- 'other-namespaces-heading' --> 'Documentation'
-- 'start-box-linkclasses' --> 'mw-editsection-like plainlinks'
-- 'start-box-link-id' --> 'doc_editlinks'
-- 'testcases-create-link-display' --> 'create'
--]=]
local subjectSpace = env.subjectSpace
if not subjectSpace then
-- Default to an "other namespaces" namespace, so that we get at least some output
-- if an error occurs.
subjectSpace = 2
end
local data = {}
-- Heading
local heading = args.heading -- Blank values are not removed.
if heading == '' then
-- Don't display the start box if the heading arg is defined but blank.
return nil
end
if heading then
data.heading = heading
elseif subjectSpace == 10 then -- Template namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('template-namespace-heading')
elseif subjectSpace == 828 then -- Module namespace
data.heading = message('documentation-icon-wikitext') .. ' ' .. message('module-namespace-heading')
elseif subjectSpace == 6 then -- File namespace
data.heading = message('file-namespace-heading')
else
data.heading = message('other-namespaces-heading')
end
-- Heading CSS
local headingStyle = args['heading-style']
if headingStyle then
data.headingStyleText = headingStyle
elseif subjectSpace == 10 then
-- We are in the template or template talk namespaces.
data.headingFontWeight = 'bold'
data.headingFontSize = '125%'
else
data.headingFontSize = '150%'
end
-- Data for the [view][edit][history][purge] or [create] links.
if links then
data.linksClass = message('start-box-linkclasses')
data.linksId = message('start-box-link-id')
data.links = links
end
return data
end
function p.renderStartBox(data)
-- Renders the start box html.
-- @data - a table of data generated by p.makeStartBoxData.
local sbox = mw.html.create('div')
sbox
:css('padding-bottom', '3px')
:css('border-bottom', '1px solid #aaa')
:css('margin-bottom', '1ex')
:newline()
:tag('span')
:cssText(data.headingStyleText)
:css('font-weight', data.headingFontWeight)
:css('font-size', data.headingFontSize)
:wikitext(data.heading)
local links = data.links
if links then
sbox:tag('span')
:addClass(data.linksClass)
:attr('id', data.linksId)
:wikitext(links)
end
return tostring(sbox)
end
----------------------------------------------------------------------------
-- Documentation content
----------------------------------------------------------------------------
p.content = makeInvokeFunc('_content')
function p._content(args, env)
-- Displays the documentation contents
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
local content = args.content
if not content and docTitle and docTitle.exists then
content = args._content or mw.getCurrentFrame():expandTemplate{title = docTitle.prefixedText}
end
-- The line breaks below are necessary so that "=== Headings ===" at the start and end
-- of docs are interpreted correctly.
return '\n' .. (content or '') .. '\n'
end
p.contentTitle = makeInvokeFunc('_contentTitle')
function p._contentTitle(args, env)
env = env or p.getEnvironment(args)
local docTitle = env.docTitle
if not args.content and docTitle and docTitle.exists then
return docTitle.prefixedText
else
return ''
end
end
----------------------------------------------------------------------------
-- End box
----------------------------------------------------------------------------
p.endBox = makeInvokeFunc('_endBox')
function p._endBox(args, env)
--[=[
-- This function generates the end box (also known as the link box).
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'fmbox-id' --> 'documentation-meta-data'
-- 'fmbox-style' --> 'background-color: #ecfcf4'
-- 'fmbox-textstyle' --> 'font-style: italic'
--
-- The HTML is generated by the {{fmbox}} template, courtesy of [[Module:Message box]].
--]=]
-- Get environment data.
env = env or p.getEnvironment(args)
local subjectSpace = env.subjectSpace
local docTitle = env.docTitle
if not subjectSpace or not docTitle then
return nil
end
-- Check whether we should output the end box at all. Add the end
-- box by default if the documentation exists or if we are in the
-- user, module or template namespaces.
local linkBox = args['link box']
if linkBox == 'off'
or not (
docTitle.exists
or subjectSpace == 2
or subjectSpace == 828
or subjectSpace == 10
)
then
return nil
end
-- Assemble the arguments for {{fmbox}}.
local fmargs = {}
fmargs.id = message('fmbox-id') -- Sets 'documentation-meta-data'
fmargs.image = 'none'
fmargs.style = message('fmbox-style') -- Sets 'background-color: #ecfcf4'
fmargs.textstyle = message('fmbox-textstyle') -- 'font-style: italic;'
-- Assemble the fmbox text field.
local text = ''
if linkBox then
text = text .. linkBox
else
text = text .. (p.makeDocPageBlurb(args, env) or '') -- "This documentation is transcluded from [[Foo]]."
if subjectSpace == 2 or subjectSpace == 10 or subjectSpace == 828 then
-- We are in the user, template or module namespaces.
-- Add sandbox and testcases links.
-- "Editors can experiment in this template's sandbox and testcases pages."
text = text .. (p.makeExperimentBlurb(args, env) or '')
text = text .. '<br />'
if not args.content and not args[1] then
-- "Please add categories to the /doc subpage."
-- Don't show this message with inline docs or with an explicitly specified doc page,
-- as then it is unclear where to add the categories.
text = text .. (p.makeCategoriesBlurb(args, env) or '')
end
text = text .. ' ' .. (p.makeSubpagesBlurb(args, env) or '') --"Subpages of this template"
local printBlurb = p.makePrintBlurb(args, env) -- Two-line blurb about print versions of templates.
if printBlurb then
text = text .. '<br />' .. printBlurb
end
end
end
fmargs.text = text
return messageBox.main('fmbox', fmargs)
end
function p.makeDocPageBlurb(args, env)
--[=[
-- Makes the blurb "This documentation is transcluded from [[Template:Foo]] (edit, history)".
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'edit-link-display' --> 'edit'
-- 'history-link-display' --> 'history'
-- 'transcluded-from-blurb' -->
-- 'The above [[Wikipedia:Template documentation|documentation]]
-- is [[Wikipedia:Transclusion|transcluded]] from $1.'
-- 'module-preload' --> 'Template:Documentation/preload-module-doc'
-- 'create-link-display' --> 'create'
-- 'create-module-doc-blurb' -->
-- 'You might want to $1 a documentation page for this [[Wikipedia:Lua|Scribunto module]].'
--]=]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local ret
if docTitle.exists then
-- /doc exists; link to it.
local docLink = makeWikilink(docTitle.prefixedText)
local editUrl = docTitle:fullUrl{action = 'edit'}
local editDisplay = message('edit-link-display')
local editLink = makeUrlLink(editUrl, editDisplay)
local historyUrl = docTitle:fullUrl{action = 'history'}
local historyDisplay = message('history-link-display')
local historyLink = makeUrlLink(historyUrl, historyDisplay)
ret = message('transcluded-from-blurb', {docLink})
.. ' '
.. makeToolbar(editLink, historyLink)
.. '<br />'
elseif env.subjectSpace == 828 then
-- /doc does not exist; ask to create it.
local createUrl = docTitle:fullUrl{action = 'edit', preload = message('module-preload')}
local createDisplay = message('create-link-display')
local createLink = makeUrlLink(createUrl, createDisplay)
ret = message('create-module-doc-blurb', {createLink})
.. '<br />'
end
return ret
end
function p.makeExperimentBlurb(args, env)
--[[
-- Renders the text "Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'sandbox-link-display' --> 'sandbox'
-- 'sandbox-edit-link-display' --> 'edit'
-- 'compare-link-display' --> 'diff'
-- 'module-sandbox-preload' --> 'Template:Documentation/preload-module-sandbox'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'sandbox-create-link-display' --> 'create'
-- 'mirror-edit-summary' --> 'Create sandbox version of $1'
-- 'mirror-link-display' --> 'mirror'
-- 'mirror-link-preload' --> 'Template:Documentation/mirror'
-- 'sandbox-link-display' --> 'sandbox'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display'--> 'edit'
-- 'template-sandbox-preload' --> 'Template:Documentation/preload-sandbox'
-- 'testcases-create-link-display' --> 'create'
-- 'testcases-link-display' --> 'testcases'
-- 'testcases-edit-link-display' --> 'edit'
-- 'module-testcases-preload' --> 'Template:Documentation/preload-module-testcases'
-- 'template-testcases-preload' --> 'Template:Documentation/preload-testcases'
-- 'experiment-blurb-module' --> 'Editors can experiment in this module's $1 and $2 pages.'
-- 'experiment-blurb-template' --> 'Editors can experiment in this template's $1 and $2 pages.'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
local sandboxTitle = env.sandboxTitle
local testcasesTitle = env.testcasesTitle
local templatePage = templateTitle.prefixedText
if not subjectSpace or not templateTitle or not sandboxTitle or not testcasesTitle then
return nil
end
-- Make links.
local sandboxLinks, testcasesLinks
if sandboxTitle.exists then
local sandboxPage = sandboxTitle.prefixedText
local sandboxDisplay = message('sandbox-link-display')
local sandboxLink = makeWikilink(sandboxPage, sandboxDisplay)
local sandboxEditUrl = sandboxTitle:fullUrl{action = 'edit'}
local sandboxEditDisplay = message('sandbox-edit-link-display')
local sandboxEditLink = makeUrlLink(sandboxEditUrl, sandboxEditDisplay)
local compareUrl = env.compareUrl
local compareLink
if compareUrl then
local compareDisplay = message('compare-link-display')
compareLink = makeUrlLink(compareUrl, compareDisplay)
end
sandboxLinks = sandboxLink .. ' ' .. makeToolbar(sandboxEditLink, compareLink)
else
local sandboxPreload
if subjectSpace == 828 then
sandboxPreload = message('module-sandbox-preload')
else
sandboxPreload = message('template-sandbox-preload')
end
local sandboxCreateUrl = sandboxTitle:fullUrl{action = 'edit', preload = sandboxPreload}
local sandboxCreateDisplay = message('sandbox-create-link-display')
local sandboxCreateLink = makeUrlLink(sandboxCreateUrl, sandboxCreateDisplay)
local mirrorSummary = message('mirror-edit-summary', {makeWikilink(templatePage)})
local mirrorPreload = message('mirror-link-preload')
local mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = mirrorPreload, summary = mirrorSummary}
if subjectSpace == 828 then
mirrorUrl = sandboxTitle:fullUrl{action = 'edit', preload = templateTitle.prefixedText, summary = mirrorSummary}
end
local mirrorDisplay = message('mirror-link-display')
local mirrorLink = makeUrlLink(mirrorUrl, mirrorDisplay)
sandboxLinks = message('sandbox-link-display') .. ' ' .. makeToolbar(sandboxCreateLink, mirrorLink)
end
if testcasesTitle.exists then
local testcasesPage = testcasesTitle.prefixedText
local testcasesDisplay = message('testcases-link-display')
local testcasesLink = makeWikilink(testcasesPage, testcasesDisplay)
local testcasesEditUrl = testcasesTitle:fullUrl{action = 'edit'}
local testcasesEditDisplay = message('testcases-edit-link-display')
local testcasesEditLink = makeUrlLink(testcasesEditUrl, testcasesEditDisplay)
-- for Modules, add testcases run link if exists
if subjectSpace == 828 and testcasesTitle.talkPageTitle and testcasesTitle.talkPageTitle.exists then
local testcasesRunLinkDisplay = message('testcases-run-link-display')
local testcasesRunLink = makeWikilink(testcasesTitle.talkPageTitle.prefixedText, testcasesRunLinkDisplay)
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink, testcasesRunLink)
else
testcasesLinks = testcasesLink .. ' ' .. makeToolbar(testcasesEditLink)
end
else
local testcasesPreload
if subjectSpace == 828 then
testcasesPreload = message('module-testcases-preload')
else
testcasesPreload = message('template-testcases-preload')
end
local testcasesCreateUrl = testcasesTitle:fullUrl{action = 'edit', preload = testcasesPreload}
local testcasesCreateDisplay = message('testcases-create-link-display')
local testcasesCreateLink = makeUrlLink(testcasesCreateUrl, testcasesCreateDisplay)
testcasesLinks = message('testcases-link-display') .. ' ' .. makeToolbar(testcasesCreateLink)
end
local messageName
if subjectSpace == 828 then
messageName = 'experiment-blurb-module'
else
messageName = 'experiment-blurb-template'
end
return message(messageName, {sandboxLinks, testcasesLinks})
end
function p.makeCategoriesBlurb(args, env)
--[[
-- Generates the text "Please add categories to the /doc subpage."
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'doc-link-display' --> '/doc'
-- 'add-categories-blurb' --> 'Please add categories to the $1 subpage.'
--]]
local docTitle = env.docTitle
if not docTitle then
return nil
end
local docPathLink = makeWikilink(docTitle.prefixedText, message('doc-link-display'))
return message('add-categories-blurb', {docPathLink})
end
function p.makeSubpagesBlurb(args, env)
--[[
-- Generates the "Subpages of this template" link.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'template-pagetype' --> 'template'
-- 'module-pagetype' --> 'module'
-- 'default-pagetype' --> 'page'
-- 'subpages-link-display' --> 'Subpages of this $1'
--]]
local subjectSpace = env.subjectSpace
local templateTitle = env.templateTitle
if not subjectSpace or not templateTitle then
return nil
end
local pagetype
if subjectSpace == 10 then
pagetype = message('template-pagetype')
elseif subjectSpace == 828 then
pagetype = message('module-pagetype')
else
pagetype = message('default-pagetype')
end
local subpagesLink = makeWikilink(
'Special:PrefixIndex/' .. templateTitle.prefixedText .. '/',
message('subpages-link-display', {pagetype})
)
return message('subpages-blurb', {subpagesLink})
end
function p.makePrintBlurb(args, env)
--[=[
-- Generates the blurb displayed when there is a print version of the template available.
-- @args - a table of arguments passed by the user
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
--
-- Messages:
-- 'print-link-display' --> '/Print'
-- 'print-blurb' --> 'A [[Help:Books/for experts#Improving the book layout|print version]]'
-- .. ' of this template exists at $1.'
-- .. ' If you make a change to this template, please update the print version as well.'
-- 'display-print-category' --> true
-- 'print-category' --> 'Templates with print versions'
--]=]
local printTitle = env.printTitle
if not printTitle then
return nil
end
local ret
if printTitle.exists then
local printLink = makeWikilink(printTitle.prefixedText, message('print-link-display'))
ret = message('print-blurb', {printLink})
local displayPrintCategory = message('display-print-category', nil, 'boolean')
if displayPrintCategory then
ret = ret .. makeCategoryLink(message('print-category'))
end
end
return ret
end
----------------------------------------------------------------------------
-- Tracking categories
----------------------------------------------------------------------------
function p.addTrackingCategories(env)
--[[
-- Check if {{documentation}} is transcluded on a /doc or /testcases page.
-- @env - environment table containing title objects, etc., generated with p.getEnvironment
-- Messages:
-- 'display-strange-usage-category' --> true
-- 'doc-subpage' --> 'doc'
-- 'testcases-subpage' --> 'testcases'
-- 'strange-usage-category' --> 'Wikipedia pages with strange ((documentation)) usage'
--
-- /testcases pages in the module namespace are not categorised, as they may have
-- {{documentation}} transcluded automatically.
--]]
local title = env.title
local subjectSpace = env.subjectSpace
if not title or not subjectSpace then
return nil
end
local subpage = title.subpageText
local ret = ''
if message('display-strange-usage-category', nil, 'boolean')
and (
subpage == message('doc-subpage')
or subjectSpace ~= 828 and subpage == message('testcases-subpage')
)
then
ret = ret .. makeCategoryLink(message('strange-usage-category'))
end
return ret
end
return p
6xeyzv7ll0uxe1a8cnst0ozvaf17m37
Modulo:Documenti/ajusta
828
8005
43232
2026-07-06T23:14:30Z
Ne
1118
Paje creada con "---------------------------------------------------------------------------------------------------- -- -- Configuration for Module:Documentation -- -- Here you can set the values of the parameters and messages used in Module:Documentation to -- localise it to your wiki and your language. Unless specified otherwise, values given here -- should be string values. -----------------------------------------------------------------------------------..."
43232
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[Image:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = 'paje de [[Wikipedia:Template test cases|proba per modeles]]'
cfg['sandbox-notice-pagetype-module'] = 'paje de [[Wikipedia:Template test cases|proba per modulos]]'
cfg['sandbox-notice-pagetype-other'] = 'paje de proba'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'Esta es la $1 per $2.'
cfg['sandbox-notice-diff-blurb'] = 'Esta es la $1 per $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'dif'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'Vide ance la supaje acompaniante per $1.'
cfg['sandbox-notice-testcases-link-display'] = 'casos de proba'
cfg['sandbox-notice-testcases-run-blurb'] = 'Vide ance la supaje acompaniante per $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'esecuta'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Pajes de proba de modeles'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Documenti de model'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Documenti de modulo'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Resoma'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documenti'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'vide'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edita'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'istoria'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purga'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'La [[Wikipedia:Template documentation|paje de documenti]] de supra es [[Wikipedia:Transclusion|emportada]] de $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'Tu ta vole $1 un paje de documenti per esta [[Wikipedia:Lua|modulo Scribunto]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editores pote experimenta en la pajes $1 e $2 de esta model."
cfg['experiment-blurb-module'] = "Editores pote experimenta en la pajes $1 e $2 de esta modulo."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'proba'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'de proba'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edita'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'crea'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'dif'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Crea varia de proba de $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirori'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/miror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'casos de proba'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'de casos de proba'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edita'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'esecuta'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Ajunta categorias a la supaje $1.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Supajes de esta $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'model'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'modulo'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'paje'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['file-docpage-preload']
-- Preload file for documentation page in the file namespace.
cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- Print version configuration
----------------------------------------------------------------------------------------------------
-- cfg['print-subpage']
-- The name of the template subpage used for print versions.
cfg['print-subpage'] = 'Primi'
-- cfg['print-link-display']
-- The text to display when linking to the /Print subpage.
cfg['print-link-display'] = '/Primi'
-- cfg['print-blurb']
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg['print-link-display'].
cfg['print-blurb'] = 'Un [[Help:Books/for experts#Improving the book layout|varia de primi]] de esta model esiste en $1.'
.. ' Si tu fa un cambia a esta model, por favore ance corenti la varia de primi.'
-- cfg['display-print-category']
-- Set to true to enable output of cfg['print-category'] if a /Print subpage exists.
-- This should be a boolean value (either true or false).
cfg['display-print-category'] = true
-- cfg['print-category']
-- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists.
cfg['print-category'] = 'Modeles con varias de primi'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['main-div-id']
-- The "id" attribute of the main HTML "div" tag.
cfg['main-div-id'] = 'template-documentation'
-- cfg['main-div-classes']
-- The CSS classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'template-documentation iezoomfix'
-- cfg['start-box-linkclasses']
-- The CSS classes used for the [view][edit][history] or [create] links in the start box.
cfg['start-box-linkclasses'] = 'mw-editsection-like plainlinks'
-- cfg['start-box-link-id']
-- The HTML "id" attribute for the links in the start box.
cfg['start-box-link-id'] = 'doc_editlinks'
----------------------------------------------------------------------------------------------------
-- {{fmbox}} template configuration
----------------------------------------------------------------------------------------------------
-- cfg['fmbox-id']
-- The id sent to the "id" parameter of the {{fmbox}} template.
cfg['fmbox-id'] = 'documentation-meta-data'
-- cfg['fmbox-style']
-- The value sent to the style parameter of {{fmbox}}.
cfg['fmbox-style'] = 'background-color: #ecfcf4'
-- cfg['fmbox-textstyle']
-- The value sent to the "textstyle parameter of {{fmbox}}.
cfg['fmbox-textstyle'] = 'font-style: italic'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Pajes de' .. mw.site.siteName .. 'con usa strana de ((documentation))'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
e00t00jvxq84p0c2mg65oshy0cmtb96
43239
43232
2026-07-06T23:29:39Z
Ne
1118
emportada -> transcluida
43239
Scribunto
text/plain
----------------------------------------------------------------------------------------------------
--
-- Configuration for Module:Documentation
--
-- Here you can set the values of the parameters and messages used in Module:Documentation to
-- localise it to your wiki and your language. Unless specified otherwise, values given here
-- should be string values.
----------------------------------------------------------------------------------------------------
local cfg = {} -- Do not edit this line.
----------------------------------------------------------------------------------------------------
-- Protection template configuration
----------------------------------------------------------------------------------------------------
-- cfg['protection-reason-edit']
-- The protection reason for edit-protected templates to pass to
-- [[Module:Protection banner]].
cfg['protection-reason-edit'] = 'template'
--[[
----------------------------------------------------------------------------------------------------
-- Sandbox notice configuration
--
-- On sandbox pages the module can display a template notifying users that the current page is a
-- sandbox, and the location of test cases pages, etc. The module decides whether the page is a
-- sandbox or not based on the value of cfg['sandbox-subpage']. The following settings configure the
-- messages that the notices contains.
----------------------------------------------------------------------------------------------------
--]]
-- cfg['sandbox-notice-image']
-- The image displayed in the sandbox notice.
cfg['sandbox-notice-image'] = '[[Image:Sandbox.svg|50px|alt=|link=]]'
--[[
-- cfg['sandbox-notice-pagetype-template']
-- cfg['sandbox-notice-pagetype-module']
-- cfg['sandbox-notice-pagetype-other']
-- The page type of the sandbox page. The message that is displayed depends on the current subject
-- namespace. This message is used in either cfg['sandbox-notice-blurb'] or
-- cfg['sandbox-notice-diff-blurb'].
--]]
cfg['sandbox-notice-pagetype-template'] = 'paje de [[Wikipedia:Template test cases|proba per modeles]]'
cfg['sandbox-notice-pagetype-module'] = 'paje de [[Wikipedia:Template test cases|proba per modulos]]'
cfg['sandbox-notice-pagetype-other'] = 'paje de proba'
--[[
-- cfg['sandbox-notice-blurb']
-- cfg['sandbox-notice-diff-blurb']
-- cfg['sandbox-notice-diff-display']
-- Either cfg['sandbox-notice-blurb'] or cfg['sandbox-notice-diff-blurb'] is the opening sentence
-- of the sandbox notice. The latter has a diff link, but the former does not. $1 is the page
-- type, which is either cfg['sandbox-notice-pagetype-template'],
-- cfg['sandbox-notice-pagetype-module'] or cfg['sandbox-notice-pagetype-other'] depending what
-- namespace we are in. $2 is a link to the main template page, and $3 is a diff link between
-- the sandbox and the main template. The display value of the diff link is set by
-- cfg['sandbox-notice-compare-link-display'].
--]]
cfg['sandbox-notice-blurb'] = 'Esta es la $1 per $2.'
cfg['sandbox-notice-diff-blurb'] = 'Esta es la $1 per $2 ($3).'
cfg['sandbox-notice-compare-link-display'] = 'dif'
--[[
-- cfg['sandbox-notice-testcases-blurb']
-- cfg['sandbox-notice-testcases-link-display']
-- cfg['sandbox-notice-testcases-run-blurb']
-- cfg['sandbox-notice-testcases-run-link-display']
-- cfg['sandbox-notice-testcases-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit. $1 is a link to the test cases page.
-- cfg['sandbox-notice-testcases-link-display'] is the display value for that link.
-- cfg['sandbox-notice-testcases-run-blurb'] is a sentence notifying the user that there is a test cases page
-- corresponding to this sandbox that they can edit, along with a link to run it. $1 is a link to the test
-- cases page, and $2 is a link to the page to run it.
-- cfg['sandbox-notice-testcases-run-link-display'] is the display value for the link to run the test
-- cases.
--]]
cfg['sandbox-notice-testcases-blurb'] = 'Vide ance la supaje acompaniante per $1.'
cfg['sandbox-notice-testcases-link-display'] = 'casos de proba'
cfg['sandbox-notice-testcases-run-blurb'] = 'Vide ance la supaje acompaniante per $1 ($2).'
cfg['sandbox-notice-testcases-run-link-display'] = 'esecuta'
-- cfg['sandbox-category']
-- A category to add to all template sandboxes.
cfg['sandbox-category'] = 'Pajes de proba de modeles'
----------------------------------------------------------------------------------------------------
-- Start box configuration
----------------------------------------------------------------------------------------------------
-- cfg['documentation-icon-wikitext']
-- The wikitext for the icon shown at the top of the template.
cfg['documentation-icon-wikitext'] = '[[File:Test Template Info-Icon - Version (2).svg|50px|link=|alt=]]'
-- cfg['template-namespace-heading']
-- The heading shown in the template namespace.
cfg['template-namespace-heading'] = 'Documenti de model'
-- cfg['module-namespace-heading']
-- The heading shown in the module namespace.
cfg['module-namespace-heading'] = 'Documenti de modulo'
-- cfg['file-namespace-heading']
-- The heading shown in the file namespace.
cfg['file-namespace-heading'] = 'Resoma'
-- cfg['other-namespaces-heading']
-- The heading shown in other namespaces.
cfg['other-namespaces-heading'] = 'Documenti'
-- cfg['view-link-display']
-- The text to display for "view" links.
cfg['view-link-display'] = 'vide'
-- cfg['edit-link-display']
-- The text to display for "edit" links.
cfg['edit-link-display'] = 'edita'
-- cfg['history-link-display']
-- The text to display for "history" links.
cfg['history-link-display'] = 'istoria'
-- cfg['purge-link-display']
-- The text to display for "purge" links.
cfg['purge-link-display'] = 'purga'
-- cfg['create-link-display']
-- The text to display for "create" links.
cfg['create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Link box (end box) configuration
----------------------------------------------------------------------------------------------------
-- cfg['transcluded-from-blurb']
-- Notice displayed when the docs are transcluded from another page. $1 is a wikilink to that page.
cfg['transcluded-from-blurb'] = 'La [[Wikipedia:Template documentation|paje de documenti]] de supra es [[Wikipedia:Transclusion|transcluida]] de $1.'
--[[
-- cfg['create-module-doc-blurb']
-- Notice displayed in the module namespace when the documentation subpage does not exist.
-- $1 is a link to create the documentation page with the preload cfg['module-preload'] and the
-- display cfg['create-link-display'].
--]]
cfg['create-module-doc-blurb'] = 'Tu ta vole $1 un paje de documenti per esta [[Wikipedia:Lua|modulo Scribunto]].'
----------------------------------------------------------------------------------------------------
-- Experiment blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['experiment-blurb-template']
-- cfg['experiment-blurb-module']
-- The experiment blurb is the text inviting editors to experiment in sandbox and test cases pages.
-- It is only shown in the template and module namespaces. With the default English settings, it
-- might look like this:
--
-- Editors can experiment in this template's sandbox (edit | diff) and testcases (edit) pages.
--
-- In this example, "sandbox", "edit", "diff", "testcases", and "edit" would all be links.
--
-- There are two versions, cfg['experiment-blurb-template'] and cfg['experiment-blurb-module'], depending
-- on what namespace we are in.
--
-- Parameters:
--
-- $1 is a link to the sandbox page. If the sandbox exists, it is in the following format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-edit-link-display'] | cfg['compare-link-display'])
--
-- If the sandbox doesn't exist, it is in the format:
--
-- cfg['sandbox-link-display'] (cfg['sandbox-create-link-display'] | cfg['mirror-link-display'])
--
-- The link for cfg['sandbox-create-link-display'] link preloads the page with cfg['template-sandbox-preload']
-- or cfg['module-sandbox-preload'], depending on the current namespace. The link for cfg['mirror-link-display']
-- loads a default edit summary of cfg['mirror-edit-summary'].
--
-- $2 is a link to the test cases page. If the test cases page exists, it is in the following format:
--
-- cfg['testcases-link-display'] (cfg['testcases-edit-link-display'] | cfg['testcases-run-link-display'])
--
-- If the test cases page doesn't exist, it is in the format:
--
-- cfg['testcases-link-display'] (cfg['testcases-create-link-display'])
--
-- If the test cases page doesn't exist, the link for cfg['testcases-create-link-display'] preloads the
-- page with cfg['template-testcases-preload'] or cfg['module-testcases-preload'], depending on the current
-- namespace.
--]]
cfg['experiment-blurb-template'] = "Editores pote experimenta en la pajes $1 e $2 de esta model."
cfg['experiment-blurb-module'] = "Editores pote experimenta en la pajes $1 e $2 de esta modulo."
----------------------------------------------------------------------------------------------------
-- Sandbox link configuration
----------------------------------------------------------------------------------------------------
-- cfg['sandbox-subpage']
-- The name of the template subpage typically used for sandboxes.
cfg['sandbox-subpage'] = 'proba'
-- cfg['template-sandbox-preload']
-- Preload file for template sandbox pages.
cfg['template-sandbox-preload'] = 'Template:Documentation/preload-sandbox'
-- cfg['module-sandbox-preload']
-- Preload file for Lua module sandbox pages.
cfg['module-sandbox-preload'] = 'Template:Documentation/preload-module-sandbox'
-- cfg['sandbox-link-display']
-- The text to display for "sandbox" links.
cfg['sandbox-link-display'] = 'de proba'
-- cfg['sandbox-edit-link-display']
-- The text to display for sandbox "edit" links.
cfg['sandbox-edit-link-display'] = 'edita'
-- cfg['sandbox-create-link-display']
-- The text to display for sandbox "create" links.
cfg['sandbox-create-link-display'] = 'crea'
-- cfg['compare-link-display']
-- The text to display for "compare" links.
cfg['compare-link-display'] = 'dif'
-- cfg['mirror-edit-summary']
-- The default edit summary to use when a user clicks the "mirror" link. $1 is a wikilink to the
-- template page.
cfg['mirror-edit-summary'] = 'Crea varia de proba de $1'
-- cfg['mirror-link-display']
-- The text to display for "mirror" links.
cfg['mirror-link-display'] = 'mirori'
-- cfg['mirror-link-preload']
-- The page to preload when a user clicks the "mirror" link.
cfg['mirror-link-preload'] = 'Template:Documentation/miror'
----------------------------------------------------------------------------------------------------
-- Test cases link configuration
----------------------------------------------------------------------------------------------------
-- cfg['testcases-subpage']
-- The name of the template subpage typically used for test cases.
cfg['testcases-subpage'] = 'casos de proba'
-- cfg['template-testcases-preload']
-- Preload file for template test cases pages.
cfg['template-testcases-preload'] = 'Template:Documentation/preload-testcases'
-- cfg['module-testcases-preload']
-- Preload file for Lua module test cases pages.
cfg['module-testcases-preload'] = 'Template:Documentation/preload-module-testcases'
-- cfg['testcases-link-display']
-- The text to display for "testcases" links.
cfg['testcases-link-display'] = 'de casos de proba'
-- cfg['testcases-edit-link-display']
-- The text to display for test cases "edit" links.
cfg['testcases-edit-link-display'] = 'edita'
-- cfg['testcases-run-link-display']
-- The text to display for test cases "run" links.
cfg['testcases-run-link-display'] = 'esecuta'
-- cfg['testcases-create-link-display']
-- The text to display for test cases "create" links.
cfg['testcases-create-link-display'] = 'crea'
----------------------------------------------------------------------------------------------------
-- Add categories blurb configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['add-categories-blurb']
-- Text to direct users to add categories to the /doc subpage. Not used if the "content" or
-- "docname fed" arguments are set, as then it is not clear where to add the categories. $1 is a
-- link to the /doc subpage with a display value of cfg['doc-link-display'].
--]]
cfg['add-categories-blurb'] = 'Ajunta categorias a la supaje $1.'
-- cfg['doc-link-display']
-- The text to display when linking to the /doc subpage.
cfg['doc-link-display'] = '/doc'
----------------------------------------------------------------------------------------------------
-- Subpages link configuration
----------------------------------------------------------------------------------------------------
--[[
-- cfg['subpages-blurb']
-- The "Subpages of this template" blurb. $1 is a link to the main template's subpages with a
-- display value of cfg['subpages-link-display']. In the English version this blurb is simply
-- the link followed by a period, and the link display provides the actual text.
--]]
cfg['subpages-blurb'] = '$1.'
--[[
-- cfg['subpages-link-display']
-- The text to display for the "subpages of this page" link. $1 is cfg['template-pagetype'],
-- cfg['module-pagetype'] or cfg['default-pagetype'], depending on whether the current page is in
-- the template namespace, the module namespace, or another namespace.
--]]
cfg['subpages-link-display'] = 'Supajes de esta $1'
-- cfg['template-pagetype']
-- The pagetype to display for template pages.
cfg['template-pagetype'] = 'model'
-- cfg['module-pagetype']
-- The pagetype to display for Lua module pages.
cfg['module-pagetype'] = 'modulo'
-- cfg['default-pagetype']
-- The pagetype to display for pages other than templates or Lua modules.
cfg['default-pagetype'] = 'paje'
----------------------------------------------------------------------------------------------------
-- Doc link configuration
----------------------------------------------------------------------------------------------------
-- cfg['doc-subpage']
-- The name of the subpage typically used for documentation pages.
cfg['doc-subpage'] = 'doc'
-- cfg['file-docpage-preload']
-- Preload file for documentation page in the file namespace.
cfg['file-docpage-preload'] = 'Template:Documentation/preload-filespace'
-- cfg['docpage-preload']
-- Preload file for template documentation pages in all namespaces.
cfg['docpage-preload'] = 'Template:Documentation/preload'
-- cfg['module-preload']
-- Preload file for Lua module documentation pages.
cfg['module-preload'] = 'Template:Documentation/preload-module-doc'
----------------------------------------------------------------------------------------------------
-- Print version configuration
----------------------------------------------------------------------------------------------------
-- cfg['print-subpage']
-- The name of the template subpage used for print versions.
cfg['print-subpage'] = 'Primi'
-- cfg['print-link-display']
-- The text to display when linking to the /Print subpage.
cfg['print-link-display'] = '/Primi'
-- cfg['print-blurb']
-- Text to display if a /Print subpage exists. $1 is a link to the subpage with a display value of cfg['print-link-display'].
cfg['print-blurb'] = 'Un [[Help:Books/for experts#Improving the book layout|varia de primi]] de esta model esiste en $1.'
.. ' Si tu fa un cambia a esta model, por favore ance corenti la varia de primi.'
-- cfg['display-print-category']
-- Set to true to enable output of cfg['print-category'] if a /Print subpage exists.
-- This should be a boolean value (either true or false).
cfg['display-print-category'] = true
-- cfg['print-category']
-- Category to output if cfg['display-print-category'] is set to true, and a /Print subpage exists.
cfg['print-category'] = 'Modeles con varias de primi'
----------------------------------------------------------------------------------------------------
-- HTML and CSS configuration
----------------------------------------------------------------------------------------------------
-- cfg['main-div-id']
-- The "id" attribute of the main HTML "div" tag.
cfg['main-div-id'] = 'template-documentation'
-- cfg['main-div-classes']
-- The CSS classes added to the main HTML "div" tag.
cfg['main-div-classes'] = 'template-documentation iezoomfix'
-- cfg['start-box-linkclasses']
-- The CSS classes used for the [view][edit][history] or [create] links in the start box.
cfg['start-box-linkclasses'] = 'mw-editsection-like plainlinks'
-- cfg['start-box-link-id']
-- The HTML "id" attribute for the links in the start box.
cfg['start-box-link-id'] = 'doc_editlinks'
----------------------------------------------------------------------------------------------------
-- {{fmbox}} template configuration
----------------------------------------------------------------------------------------------------
-- cfg['fmbox-id']
-- The id sent to the "id" parameter of the {{fmbox}} template.
cfg['fmbox-id'] = 'documentation-meta-data'
-- cfg['fmbox-style']
-- The value sent to the style parameter of {{fmbox}}.
cfg['fmbox-style'] = 'background-color: #ecfcf4'
-- cfg['fmbox-textstyle']
-- The value sent to the "textstyle parameter of {{fmbox}}.
cfg['fmbox-textstyle'] = 'font-style: italic'
----------------------------------------------------------------------------------------------------
-- Tracking category configuration
----------------------------------------------------------------------------------------------------
-- cfg['display-strange-usage-category']
-- Set to true to enable output of cfg['strange-usage-category'] if the module is used on a /doc subpage
-- or a /testcases subpage. This should be a boolean value (either true or false).
cfg['display-strange-usage-category'] = true
-- cfg['strange-usage-category']
-- Category to output if cfg['display-strange-usage-category'] is set to true and the module is used on a
-- /doc subpage or a /testcases subpage.
cfg['strange-usage-category'] = 'Pajes de' .. mw.site.siteName .. 'con usa strana de ((documentation))'
--[[
----------------------------------------------------------------------------------------------------
-- End configuration
--
-- Don't edit anything below this line.
----------------------------------------------------------------------------------------------------
--]]
return cfg
7x91lpzkepi0zl32a411aesdy630pax
Model:Documenti
10
8006
43237
2026-07-06T23:25:54Z
Ne
1118
tradui de Template:Documentation
43237
wikitext
text/x-wiki
{{#invoke:documenti|main|_content={{ {{#invoke:documenti|contentTitle}}}}}}<noinclude>
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
g2506wnidqfy13vthjziwry16r9m3u6
Modulo:Category handler
828
8007
43240
2026-07-06T23:40:44Z
Ne
1118
Paje creada con "-------------------------------------------------------------------------------- -- -- -- CATEGORY HANDLER -- -- -- -- This module implements the {{category handler}} template in Lua, -- -- with a few improvements: all namespaces and all namespace aliase..."
43240
Scribunto
text/plain
--------------------------------------------------------------------------------
-- --
-- CATEGORY HANDLER --
-- --
-- This module implements the {{category handler}} template in Lua, --
-- with a few improvements: all namespaces and all namespace aliases --
-- are supported, and namespace names are detected automatically for --
-- the local wiki. This module requires [[Module:Namespace detect]] --
-- and [[Module:Yesno]] to be available on the local wiki. It can be --
-- configured for different wikis by altering the values in --
-- [[Module:Category handler/config]], and pages can be blacklisted --
-- from categorisation by using [[Module:Category handler/blacklist]]. --
-- --
--------------------------------------------------------------------------------
-- Load required modules
local yesno = require('Module:Yesno')
-- Lazily load things we don't always need
local mShared, mappings
local p = {}
--------------------------------------------------------------------------------
-- Helper functions
--------------------------------------------------------------------------------
local function trimWhitespace(s, removeBlanks)
if type(s) ~= 'string' then
return s
end
s = s:match('^%s*(.-)%s*$')
if removeBlanks then
if s ~= '' then
return s
else
return nil
end
else
return s
end
end
--------------------------------------------------------------------------------
-- CategoryHandler class
--------------------------------------------------------------------------------
local CategoryHandler = {}
CategoryHandler.__index = CategoryHandler
function CategoryHandler.new(data, args)
local obj = setmetatable({ _data = data, _args = args }, CategoryHandler)
-- Set the title object
do
local pagename = obj:parameter('demopage')
local success, titleObj
if pagename then
success, titleObj = pcall(mw.title.new, pagename)
end
if success and titleObj then
obj.title = titleObj
if titleObj == mw.title.getCurrentTitle() then
obj._usesCurrentTitle = true
end
else
obj.title = mw.title.getCurrentTitle()
obj._usesCurrentTitle = true
end
end
-- Set suppression parameter values
for _, key in ipairs{'nocat', 'categories'} do
local value = obj:parameter(key)
value = trimWhitespace(value, true)
obj['_' .. key] = yesno(value)
end
do
local subpage = obj:parameter('subpage')
local category2 = obj:parameter('category2')
if type(subpage) == 'string' then
subpage = mw.ustring.lower(subpage)
end
if type(category2) == 'string' then
subpage = mw.ustring.lower(category2)
end
obj._subpage = trimWhitespace(subpage, true)
obj._category2 = trimWhitespace(category2) -- don't remove blank values
end
return obj
end
function CategoryHandler:parameter(key)
local parameterNames = self._data.parameters[key]
local pntype = type(parameterNames)
if pntype == 'string' or pntype == 'number' then
return self._args[parameterNames]
elseif pntype == 'table' then
for _, name in ipairs(parameterNames) do
local value = self._args[name]
if value ~= nil then
return value
end
end
return nil
else
error(string.format(
'invalid config key "%s"',
tostring(key)
), 2)
end
end
function CategoryHandler:isSuppressedByArguments()
return
-- See if a category suppression argument has been set.
self._nocat == true
or self._categories == false
or (
self._category2
and self._category2 ~= self._data.category2Yes
and self._category2 ~= self._data.category2Negative
)
-- Check whether we are on a subpage, and see if categories are
-- suppressed based on our subpage status.
or self._subpage == self._data.subpageNo and self.title.isSubpage
or self._subpage == self._data.subpageOnly and not self.title.isSubpage
end
function CategoryHandler:shouldSkipBlacklistCheck()
-- Check whether the category suppression arguments indicate we
-- should skip the blacklist check.
return self._nocat == false
or self._categories == true
or self._category2 == self._data.category2Yes
end
function CategoryHandler:matchesBlacklist()
if self._usesCurrentTitle then
return self._data.currentTitleMatchesBlacklist
else
mShared = mShared or require('Module:Category handler/shared')
return mShared.matchesBlacklist(
self.title.prefixedText,
mw.loadData('Module:Category handler/blacklist')
)
end
end
function CategoryHandler:isSuppressed()
-- Find if categories are suppressed by either the arguments or by
-- matching the blacklist.
return self:isSuppressedByArguments()
or not self:shouldSkipBlacklistCheck() and self:matchesBlacklist()
end
function CategoryHandler:getNamespaceParameters()
if self._usesCurrentTitle then
return self._data.currentTitleNamespaceParameters
else
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
return mShared.getNamespaceParameters(
self.title,
mappings
)
end
end
function CategoryHandler:namespaceParametersExist()
-- Find whether any namespace parameters have been specified.
-- We use the order "all" --> namespace params --> "other" as this is what
-- the old template did.
if self:parameter('all') then
return true
end
if not mappings then
mShared = mShared or require('Module:Category handler/shared')
mappings = mShared.getParamMappings(true) -- gets mappings with mw.loadData
end
for ns, params in pairs(mappings) do
for i, param in ipairs(params) do
if self._args[param] then
return true
end
end
end
if self:parameter('other') then
return true
end
return false
end
function CategoryHandler:getCategories()
local params = self:getNamespaceParameters()
local nsCategory
for i, param in ipairs(params) do
local value = self._args[param]
if value ~= nil then
nsCategory = value
break
end
end
if nsCategory ~= nil or self:namespaceParametersExist() then
-- Namespace parameters exist - advanced usage.
if nsCategory == nil then
nsCategory = self:parameter('other')
end
local ret = {self:parameter('all')}
local numParam = tonumber(nsCategory)
if numParam and numParam >= 1 and math.floor(numParam) == numParam then
-- nsCategory is an integer
ret[#ret + 1] = self._args[numParam]
else
ret[#ret + 1] = nsCategory
end
if #ret < 1 then
return nil
else
return table.concat(ret)
end
elseif self._data.defaultNamespaces[self.title.namespace] then
-- Namespace parameters don't exist, simple usage.
return self._args[1]
end
return nil
end
--------------------------------------------------------------------------------
-- Exports
--------------------------------------------------------------------------------
local p = {}
function p._exportClasses()
-- Used for testing purposes.
return {
CategoryHandler = CategoryHandler
}
end
function p._main(args, data)
data = data or mw.loadData('Module:Category handler/data')
local handler = CategoryHandler.new(data, args)
if handler:isSuppressed() then
return nil
end
return handler:getCategories()
end
function p.main(frame, data)
data = data or mw.loadData('Module:Category handler/data')
local args = require('Module:Arguments').getArgs(frame, {
wrappers = data.wrappers,
valueFunc = function (k, v)
v = trimWhitespace(v)
if type(k) == 'number' then
if v ~= '' then
return v
else
return nil
end
else
return v
end
end
})
return p._main(args, data)
end
return p
letwavu3yvlayfzew66uuwixmwebq5b
Modulo:Category handler/data
828
8008
43241
2026-07-06T23:41:57Z
Ne
1118
Paje creada con "-- This module assembles data to be passed to [[Module:Category handler]] using -- mw.loadData. This includes the configuration data and whether the current -- page matches the title blacklist. local data = require('Module:Category handler/config') local mShared = require('Module:Category handler/shared') local blacklist = require('Module:Category handler/blacklist') local title = mw.title.getCurrentTitle() data.currentTitleMatchesBlacklist = mShared.matchesBlacklist( t..."
43241
Scribunto
text/plain
-- This module assembles data to be passed to [[Module:Category handler]] using
-- mw.loadData. This includes the configuration data and whether the current
-- page matches the title blacklist.
local data = require('Module:Category handler/config')
local mShared = require('Module:Category handler/shared')
local blacklist = require('Module:Category handler/blacklist')
local title = mw.title.getCurrentTitle()
data.currentTitleMatchesBlacklist = mShared.matchesBlacklist(
title.prefixedText,
blacklist
)
data.currentTitleNamespaceParameters = mShared.getNamespaceParameters(
title,
mShared.getParamMappings()
)
return data
k26mwixuaeijisfddb0sxkg82iux8v4
Modulo:Category handler/config
828
8009
43242
2026-07-06T23:42:19Z
Ne
1118
Paje creada con "-------------------------------------------------------------------------------- -- [[Module:Category handler]] configuration data -- -- Language-specific parameter names and values can be set here. -- -- For blacklist config, see [[Module:Category handler/blacklist]]. -- -------------------------------------------------------------------------------- local cfg = {} -- Don't edit this line. ------------------------------..."
43242
Scribunto
text/plain
--------------------------------------------------------------------------------
-- [[Module:Category handler]] configuration data --
-- Language-specific parameter names and values can be set here. --
-- For blacklist config, see [[Module:Category handler/blacklist]]. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Start configuration data --
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- foo = 'parameter name', --
-- --
-- To add multiple names, you can use this format: --
-- --
-- foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'}, --
--------------------------------------------------------------------------------
cfg.parameters = {
-- The nocat and categories parameter suppress
-- categorisation. They are used with Module:Yesno, and work as follows:
--
-- cfg.nocat:
-- Result of yesno() Effect
-- true Categorisation is suppressed
-- false Categorisation is allowed, and
-- the blacklist check is skipped
-- nil Categorisation is allowed
--
-- cfg.categories:
-- Result of yesno() Effect
-- true Categorisation is allowed, and
-- the blacklist check is skipped
-- false Categorisation is suppressed
-- nil Categorisation is allowed
nocat = 'nocat',
categories = 'categories',
-- The parameter name for the legacy "category2" parameter. This skips the
-- blacklist if set to the cfg.category2Yes value, and suppresses
-- categorisation if present but equal to anything other than
-- cfg.category2Yes or cfg.category2Negative.
category2 = 'category2',
-- cfg.subpage is the parameter name to specify how to behave on subpages.
subpage = 'subpage',
-- The parameter for data to return in all namespaces.
all = 'all',
-- The parameter name for data to return if no data is specified for the
-- namespace that is detected.
other = 'other',
-- The parameter name used to specify a page other than the current page;
-- used for testing and demonstration.
demopage = 'page',
}
--------------------------------------------------------------------------------
-- Parameter values --
-- These are set values that can be used with certain parameters. Only one --
-- value can be specified, like this: --
-- --
-- cfg.foo = 'value name' -- --
--------------------------------------------------------------------------------
-- The following settings are used with the cfg.category2 parameter. Setting
-- cfg.category2 to cfg.category2Yes skips the blacklist, and if cfg.category2
-- is present but equal to anything other than cfg.category2Yes or
-- cfg.category2Negative then it supresses cateogrisation.
cfg.category2Yes = 'yes'
cfg.category2Negative = '¬'
-- The following settings are used with the cfg.subpage parameter.
-- cfg.subpageNo is the value to specify to not categorise on subpages;
-- cfg.subpageOnly is the value to specify to only categorise on subpages.
cfg.subpageNo = 'no'
cfg.subpageOnly = 'only'
--------------------------------------------------------------------------------
-- Default namespaces --
-- This is a table of namespaces to categorise by default. The keys are the --
-- namespace numbers. --
--------------------------------------------------------------------------------
cfg.defaultNamespaces = {
[ 0] = true, -- main
[ 6] = true, -- file
[ 12] = true, -- help
[ 14] = true, -- category
[100] = true, -- portal
[108] = true, -- book
}
--------------------------------------------------------------------------------
-- Wrappers --
-- This is a wrapper template or a list of wrapper templates to be passed to --
-- [[Module:Arguments]]. --
--------------------------------------------------------------------------------
cfg.wrappers = 'Template:Category handler'
--------------------------------------------------------------------------------
-- End configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
6ga9hbq2pdwalsvx68i53dmbr421rq5
Modulo:Category handler/shared
828
8010
43243
2026-07-06T23:42:56Z
Ne
1118
Paje creada con "-- This module contains shared functions used by [[Module:Category handler]] -- and its submodules. local p = {} function p.matchesBlacklist(page, blacklist) for i, pattern in ipairs(blacklist) do local match = mw.ustring.match(page, pattern) if match then return true end end return false end function p.getParamMappings(useLoadData) local dataPage = 'Module:Namespace detect/data' if useLoadData then return mw.loadData(dataPage).mappings else return re..."
43243
Scribunto
text/plain
-- This module contains shared functions used by [[Module:Category handler]]
-- and its submodules.
local p = {}
function p.matchesBlacklist(page, blacklist)
for i, pattern in ipairs(blacklist) do
local match = mw.ustring.match(page, pattern)
if match then
return true
end
end
return false
end
function p.getParamMappings(useLoadData)
local dataPage = 'Module:Namespace detect/data'
if useLoadData then
return mw.loadData(dataPage).mappings
else
return require(dataPage).mappings
end
end
function p.getNamespaceParameters(titleObj, mappings)
-- We don't use title.nsText for the namespace name because it adds
-- underscores.
local mappingsKey
if titleObj.isTalkPage then
mappingsKey = 'talk'
else
mappingsKey = mw.site.namespaces[titleObj.namespace].name
end
mappingsKey = mw.ustring.lower(mappingsKey)
return mappings[mappingsKey] or {}
end
return p
omlsnhudxz6juptvtxz7ns97jutbzc5
Modulo:Category handler/blacklist
828
8011
43244
2026-07-06T23:43:19Z
Ne
1118
Paje creada con "-- This module contains the blacklist used by [[Module:Category handler]]. -- Pages that match Lua patterns in this list will not be categorised unless -- categorisation is explicitly requested. return { '^Main Page$', -- don't categorise the main page. -- Don't categorise the following pages or their subpages. -- "%f[/\0]" matches if the next character is "/" or the end of the string. '^Wikipedia:Cascade%-protected items%f[/\0]', '^User:UBX%f[/\0]', -- The userbox..."
43244
Scribunto
text/plain
-- This module contains the blacklist used by [[Module:Category handler]].
-- Pages that match Lua patterns in this list will not be categorised unless
-- categorisation is explicitly requested.
return {
'^Main Page$', -- don't categorise the main page.
-- Don't categorise the following pages or their subpages.
-- "%f[/\0]" matches if the next character is "/" or the end of the string.
'^Wikipedia:Cascade%-protected items%f[/\0]',
'^User:UBX%f[/\0]', -- The userbox "template" space.
'^User talk:UBX%f[/\0]',
-- Don't categorise subpages of these pages, but allow
-- categorisation of the base page.
'^Wikipedia:Template index/.*$',
-- Don't categorise archives.
'/[aA]rchive',
"^Wikipedia:Administrators' noticeboard/IncidentArchive%d+$",
}
fsv1drcay6t25e91hzhqxtyp7pckbpx
Modulo:Namespace detect
828
8012
43245
2026-07-06T23:46:05Z
Ne
1118
Paje creada con "--[[ -------------------------------------------------------------------------------- -- -- -- NAMESPACE DETECT -- -- -- -- This module implements the {{namespace detect}} template in Lua, with a -- -- few improvements: all namespaces and all namespace aliases are s..."
43245
Scribunto
text/plain
--[[
--------------------------------------------------------------------------------
-- --
-- NAMESPACE DETECT --
-- --
-- This module implements the {{namespace detect}} template in Lua, with a --
-- few improvements: all namespaces and all namespace aliases are supported, --
-- and namespace names are detected automatically for the local wiki. The --
-- module can also use the corresponding subject namespace value if it is --
-- used on a talk page. Parameter names can be configured for different wikis --
-- by altering the values in the "cfg" table in --
-- Module:Namespace detect/config. --
-- --
--------------------------------------------------------------------------------
--]]
local data = mw.loadData('Module:Namespace detect/data')
local argKeys = data.argKeys
local cfg = data.cfg
local mappings = data.mappings
local yesno = require('Module:Yesno')
local mArguments -- Lazily initialise Module:Arguments
local mTableTools -- Lazily initilalise Module:TableTools
local ustringLower = mw.ustring.lower
local p = {}
local function fetchValue(t1, t2)
-- Fetches a value from the table t1 for the first key in array t2 where
-- a non-nil value of t1 exists.
for i, key in ipairs(t2) do
local value = t1[key]
if value ~= nil then
return value
end
end
return nil
end
local function equalsArrayValue(t, value)
-- Returns true if value equals a value in the array t. Otherwise
-- returns false.
for i, arrayValue in ipairs(t) do
if value == arrayValue then
return true
end
end
return false
end
function p.getPageObject(page)
-- Get the page object, passing the function through pcall in case of
-- errors, e.g. being over the expensive function count limit.
if page then
local success, pageObject = pcall(mw.title.new, page)
if success then
return pageObject
else
return nil
end
else
return mw.title.getCurrentTitle()
end
end
-- Provided for backward compatibility with other modules
function p.getParamMappings()
return mappings
end
local function getNamespace(args)
-- This function gets the namespace name from the page object.
local page = fetchValue(args, argKeys.demopage)
if page == '' then
page = nil
end
local demospace = fetchValue(args, argKeys.demospace)
if demospace == '' then
demospace = nil
end
local subjectns = fetchValue(args, argKeys.subjectns)
local ret
if demospace then
-- Handle "demospace = main" properly.
if equalsArrayValue(argKeys.main, ustringLower(demospace)) then
ret = mw.site.namespaces[0].name
else
ret = demospace
end
else
local pageObject = p.getPageObject(page)
if pageObject then
if pageObject.isTalkPage then
-- Get the subject namespace if the option is set,
-- otherwise use "talk".
if yesno(subjectns) then
ret = mw.site.namespaces[pageObject.namespace].subject.name
else
ret = 'talk'
end
else
ret = pageObject.nsText
end
else
return nil -- return nil if the page object doesn't exist.
end
end
ret = ret:gsub('_', ' ')
return ustringLower(ret)
end
function p._main(args)
-- Check the parameters stored in the mappings table for any matches.
local namespace = getNamespace(args) or 'other' -- "other" avoids nil table keys
local params = mappings[namespace] or {}
local ret = fetchValue(args, params)
--[[
-- If there were no matches, return parameters for other namespaces.
-- This happens if there was no text specified for the namespace that
-- was detected or if the demospace parameter is not a valid
-- namespace. Note that the parameter for the detected namespace must be
-- completely absent for this to happen, not merely blank.
--]]
if ret == nil then
ret = fetchValue(args, argKeys.other)
end
return ret
end
function p.main(frame)
mArguments = require('Module:Arguments')
local args = mArguments.getArgs(frame, {removeBlanks = false})
local ret = p._main(args)
return ret or ''
end
function p.table(frame)
--[[
-- Create a wikitable of all subject namespace parameters, for
-- documentation purposes. The talk parameter is optional, in case it
-- needs to be excluded in the documentation.
--]]
-- Load modules and initialise variables.
mTableTools = require('Module:TableTools')
local namespaces = mw.site.namespaces
local cfg = data.cfg
local useTalk = type(frame) == 'table'
and type(frame.args) == 'table'
and yesno(frame.args.talk) -- Whether to use the talk parameter.
-- Get the header names.
local function checkValue(value, default)
if type(value) == 'string' then
return value
else
return default
end
end
local nsHeader = checkValue(cfg.wikitableNamespaceHeader, 'Namespace')
local aliasesHeader = checkValue(cfg.wikitableAliasesHeader, 'Aliases')
-- Put the namespaces in order.
local mappingsOrdered = {}
for nsname, params in pairs(mappings) do
if useTalk or nsname ~= 'talk' then
local nsid = namespaces[nsname].id
-- Add 1, as the array must start with 1; nsid 0 would be lost otherwise.
nsid = nsid + 1
mappingsOrdered[nsid] = params
end
end
mappingsOrdered = mTableTools.compressSparseArray(mappingsOrdered)
-- Build the table.
local ret = '{| class="wikitable"'
.. '\n|-'
.. '\n! ' .. nsHeader
.. '\n! ' .. aliasesHeader
for i, params in ipairs(mappingsOrdered) do
for j, param in ipairs(params) do
if j == 1 then
ret = ret .. '\n|-'
.. '\n| <code>' .. param .. '</code>'
.. '\n| '
elseif j == 2 then
ret = ret .. '<code>' .. param .. '</code>'
else
ret = ret .. ', <code>' .. param .. '</code>'
end
end
end
ret = ret .. '\n|-'
.. '\n|}'
return ret
end
return p
j7kygz1y56jpz4doq0m2c6x1td5d8ar
Modulo:Namespace detect/data
828
8013
43246
2026-07-06T23:46:30Z
Ne
1118
Paje creada con "-------------------------------------------------------------------------------- -- Namespace detect data -- -- This module holds data for [[Module:Namespace detect]] to be loaded per -- -- page, rather than per #invoke, for performance reasons. -- -------------------------------------------------------------------------------- local cfg = require('Module:Namespace detect/config') local function a..."
43246
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect data --
-- This module holds data for [[Module:Namespace detect]] to be loaded per --
-- page, rather than per #invoke, for performance reasons. --
--------------------------------------------------------------------------------
local cfg = require('Module:Namespace detect/config')
local function addKey(t, key, defaultKey)
if key ~= defaultKey then
t[#t + 1] = key
end
end
-- Get a table of parameters to query for each default parameter name.
-- This allows wikis to customise parameter names in the cfg table while
-- ensuring that default parameter names will always work. The cfg table
-- values can be added as a string, or as an array of strings.
local defaultKeys = {
'main',
'talk',
'other',
'subjectns',
'demospace',
'demopage'
}
local argKeys = {}
for i, defaultKey in ipairs(defaultKeys) do
argKeys[defaultKey] = {defaultKey}
end
for defaultKey, t in pairs(argKeys) do
local cfgValue = cfg[defaultKey]
local cfgValueType = type(cfgValue)
if cfgValueType == 'string' then
addKey(t, cfgValue, defaultKey)
elseif cfgValueType == 'table' then
for i, key in ipairs(cfgValue) do
addKey(t, key, defaultKey)
end
end
cfg[defaultKey] = nil -- Free the cfg value as we don't need it any more.
end
local function getParamMappings()
--[[
-- Returns a table of how parameter names map to namespace names. The keys
-- are the actual namespace names, in lower case, and the values are the
-- possible parameter names for that namespace, also in lower case. The
-- table entries are structured like this:
-- {
-- [''] = {'main'},
-- ['wikipedia'] = {'wikipedia', 'project', 'wp'},
-- ...
-- }
--]]
local mappings = {}
local mainNsName = mw.site.subjectNamespaces[0].name
mainNsName = mw.ustring.lower(mainNsName)
mappings[mainNsName] = mw.clone(argKeys.main)
mappings['talk'] = mw.clone(argKeys.talk)
for nsid, ns in pairs(mw.site.subjectNamespaces) do
if nsid ~= 0 then -- Exclude main namespace.
local nsname = mw.ustring.lower(ns.name)
local canonicalName = mw.ustring.lower(ns.canonicalName)
mappings[nsname] = {nsname}
if canonicalName ~= nsname then
table.insert(mappings[nsname], canonicalName)
end
for _, alias in ipairs(ns.aliases) do
table.insert(mappings[nsname], mw.ustring.lower(alias))
end
end
end
return mappings
end
return {
argKeys = argKeys,
cfg = cfg,
mappings = getParamMappings()
}
ojp6d3pc8mql5nufaqdg576c9so3479
Modulo:Namespace detect/config
828
8014
43247
2026-07-06T23:47:06Z
Ne
1118
Paje creada con "-------------------------------------------------------------------------------- -- Namespace detect configuration data -- -- -- -- This module stores configuration data for Module:Namespace detect. Here -- -- you can localise the module to your wiki's language. -- --..."
43247
Scribunto
text/plain
--------------------------------------------------------------------------------
-- Namespace detect configuration data --
-- --
-- This module stores configuration data for Module:Namespace detect. Here --
-- you can localise the module to your wiki's language. --
-- --
-- To activate a configuration item, you need to uncomment it. This means --
-- that you need to remove the text "-- " at the start of the line. --
--------------------------------------------------------------------------------
local cfg = {} -- Don't edit this line.
--------------------------------------------------------------------------------
-- Parameter names --
-- These configuration items specify custom parameter names. Values added --
-- here will work in addition to the default English parameter names. --
-- To add one extra name, you can use this format: --
-- --
-- cfg.foo = 'parameter name' --
-- --
-- To add multiple names, you can use this format: --
-- --
-- cfg.foo = {'parameter name 1', 'parameter name 2', 'parameter name 3'} --
--------------------------------------------------------------------------------
---- This parameter displays content for the main namespace:
-- cfg.main = 'main'
---- This parameter displays in talk namespaces:
-- cfg.talk = 'talk'
---- This parameter displays content for "other" namespaces (namespaces for which
---- parameters have not been specified):
-- cfg.other = 'other'
---- This parameter makes talk pages behave as though they are the corresponding
---- subject namespace. Note that this parameter is used with [[Module:Yesno]].
---- Edit that module to change the default values of "yes", "no", etc.
-- cfg.subjectns = 'subjectns'
---- This parameter sets a demonstration namespace:
-- cfg.demospace = 'demospace'
---- This parameter sets a specific page to compare:
cfg.demopage = 'page'
--------------------------------------------------------------------------------
-- Table configuration --
-- These configuration items allow customisation of the "table" function, --
-- used to generate a table of possible parameters in the module --
-- documentation. --
--------------------------------------------------------------------------------
---- The header for the namespace column in the wikitable containing the list of
---- possible subject-space parameters.
-- cfg.wikitableNamespaceHeader = 'Namespace'
---- The header for the wikitable containing the list of possible subject-space
---- parameters.
-- cfg.wikitableAliasesHeader = 'Aliases'
--------------------------------------------------------------------------------
-- End of configuration data --
--------------------------------------------------------------------------------
return cfg -- Don't edit this line.
1o6ozz56i8q0xgyl6xa41n2v7kelhli
Modulo:Message box/ambox.css
828
8015
43248
2026-07-06T23:56:46Z
Ne
1118
Paje creada con "/* {{pp|small=y}} */ .ambox { border: 1px solid #a2a9b1; /* @noflip */ border-left: 10px solid #36c; /* Default "notice" blue */ background-color: #fbfbfb; box-sizing: border-box; } /* Single border between stacked boxes. Take into account base templatestyles, * user styles, and Template:Dated maintenance category. * remove link selector when T200206 is fixed */ .ambox + link + .ambox, .ambox + link + style + .ambox, .ambox + link + link + .ambox, /* TODO: raise..."
43248
sanitized-css
text/css
/* {{pp|small=y}} */
.ambox {
border: 1px solid #a2a9b1;
/* @noflip */
border-left: 10px solid #36c; /* Default "notice" blue */
background-color: #fbfbfb;
box-sizing: border-box;
}
/* Single border between stacked boxes. Take into account base templatestyles,
* user styles, and Template:Dated maintenance category.
* remove link selector when T200206 is fixed
*/
.ambox + link + .ambox,
.ambox + link + style + .ambox,
.ambox + link + link + .ambox,
/* TODO: raise these as "is this really that necessary???". the change was Dec 2021 */
.ambox + .mw-empty-elt + link + .ambox,
.ambox + .mw-empty-elt + link + style + .ambox,
.ambox + .mw-empty-elt + link + link + .ambox,
/* category and TemplateStyles are wrapped in an "empty" span in Parsoid [[phab:T378906]]
* above variants can be removed when Parsoid is the one true parser
*/
.ambox + .mw-empty-elt + .ambox,
.ambox + .mw-empty-elt + .mw-empty-elt + .ambox,
/*
* and Template:Dated maintenance category. we can probably remove this flavor
* when T200206 is fixed
*/
.ambox + .mw-empty-elt + .mw-empty-elt + .mw-empty-elt + .ambox {
margin-top: -1px;
}
/* For the "small=left" option. */
/* must override .ambox + .ambox styles above */
html body.mediawiki .ambox.mbox-small-left {
/* @noflip */
margin: 4px 1em 4px 0;
overflow: hidden;
width: 238px;
border-collapse: collapse;
font-size: 88%;
line-height: 1.25em;
}
.ambox-speedy {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
background-color: #fee7e6; /* Pink */
}
.ambox-delete {
/* @noflip */
border-left: 10px solid #b32424; /* Red */
}
.ambox-content {
/* @noflip */
border-left: 10px solid #f28500; /* Orange */
}
.ambox-style {
/* @noflip */
border-left: 10px solid #fc3; /* Yellow */
}
.ambox-move {
/* @noflip */
border-left: 10px solid #9932cc; /* Purple */
}
.ambox-protection {
/* @noflip */
border-left: 10px solid #a2a9b1; /* Gray-gold */
}
.ambox .mbox-text {
border: none;
/* @noflip */
padding: 0.25em 0.5em;
width: 100%;
}
.ambox .mbox-image {
border: none;
/* @noflip */
padding: 2px 0 2px 0.5em;
text-align: center;
}
.ambox .mbox-imageright {
border: none;
/* @noflip */
padding: 2px 0.5em 2px 0;
text-align: center;
}
/* An empty narrow cell */
.ambox .mbox-empty-cell {
border: none;
padding: 0;
width: 1px;
}
.ambox .mbox-image-div {
width: 52px;
}
@media (min-width: 720px) {
.ambox {
margin: 0 10%; /* 10% = Will not overlap with other elements */
}
}
@media print {
body.ns-0 .ambox {
display: none !important;
}
}
30g72q4fmk3q483xtebd7l9b8wtntki
Model:Avisa
10
8016
43251
2026-07-07T00:11:14Z
Ne
1118
Paje creada con "{{#invoke:Message box|ambox}}<noinclude> {{documenti}} <!-- Categories go on the /doc subpage, and interwikis go on Wikidata. --> </noinclude>"
43251
wikitext
text/x-wiki
{{#invoke:Message box|ambox}}<noinclude>
{{documenti}}
<!-- Categories go on the /doc subpage, and interwikis go on Wikidata. -->
</noinclude>
igyve5mkb0w1s62cy101n910brn6hdr
Modulo:Message box/fmbox.css
828
8017
43252
2026-07-07T00:12:35Z
Ne
1118
Paje creada con "/* {{pp|small=y}} */ .fmbox { clear: both; /* this sheet does not require overflow-x because of this clear */ margin: 0.2em 0; border: 1px solid #a2a9b1; background-color: var(--background-color-interactive-subtle, #f8f9fa); box-sizing: border-box; color: var(--color-base, #202122); } .fmbox-warning { border: 1px solid #bb7070; /* Dark pink */ background-color: #ffdbdb; /* Pink */ } .fmbox-editnotice { background-color: transparent; } .fmbox .mbox-te..."
43252
sanitized-css
text/css
/* {{pp|small=y}} */
.fmbox {
clear: both; /* this sheet does not require overflow-x because of this clear */
margin: 0.2em 0;
border: 1px solid #a2a9b1;
background-color: var(--background-color-interactive-subtle, #f8f9fa);
box-sizing: border-box;
color: var(--color-base, #202122);
}
.fmbox-warning {
border: 1px solid #bb7070; /* Dark pink */
background-color: #ffdbdb; /* Pink */
}
.fmbox-editnotice {
background-color: transparent;
}
.fmbox .mbox-text {
padding: 0.35em 1em;
flex: 1 1 100%;
}
.fmbox .mbox-image,
.fmbox .mbox-imageright {
padding: 4px 2px;
text-align: center;
flex: none;
}
/* keep synced with each other type of message box as this isn't qualified */
.mbox-invalid-type {
text-align: center;
}
@media (min-width: 480px) {
.fmbox {
display: flex;
align-items: center;
}
.fmbox .mbox-image {
/* @noflip */
padding-left: 1em;
}
.fmbox .mbox-imageright {
/* @noflip */
padding-right: 1em;
}
}
@media screen {
html.skin-theme-clientpref-night .fmbox-warning {
background-color: #300; /* Reddish, same hue/saturation as light */
}
}
@media screen and (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .fmbox-warning {
background-color: #300; /* Reddish, same hue/saturation as light */
}
}
ivof69wam0nxtvwqgg5cd5tk4dl4s0k
Model:Fusa
10
8018
43254
2026-07-07T01:08:11Z
Ne
1118
Paje creada con "{{Avisa | type = move | name = Fusa | date = {{{date|}}} | text = Lo ia es sujestada ce esta {{#if:{{{section|}}}|{{{section}}}|{{#if:{{NAMESPACE}}|paje|article}}}} ta es '''fusada''' con [[{{{1}}}]]. On pote discute la prosede en la '''[[{{TALKPAGENAME}}|paje de discute]]''' de esta paje. }}<noinclude> {{Documenti}} </noinclude>"
43254
wikitext
text/x-wiki
{{Avisa
| type = move
| name = Fusa
| date = {{{date|}}}
| text = Lo ia es sujestada ce esta {{#if:{{{section|}}}|{{{section}}}|{{#if:{{NAMESPACE}}|paje|article}}}} ta es '''fusada''' con [[{{{1}}}]]. On pote discute la prosede en la '''[[{{TALKPAGENAME}}|paje de discute]]''' de esta paje.
}}<noinclude>
{{Documenti}}
</noinclude>
kkgyy6y4ihd1ir75uts94gptf90a6n3
43256
43254
2026-07-07T01:23:06Z
Ne
1118
categoria
43256
wikitext
text/x-wiki
{{Avisa
| type = move
| name = Fusa
| date = {{{date|}}}
| text = Lo ia es sujestada ce esta {{#if:{{{section|}}}|{{{section}}}|{{#if:{{NAMESPACE}}|paje|article}}}} ta es '''fusada''' con [[{{{1}}}]]. On pote discute la prosede en la '''[[{{TALKPAGENAME}}|paje de discute]]''' de esta paje.
}}<noinclude>{{#switch:{{NAMESPACE}}
| {{ns:0}} = [[Categoria:Articulos sujestada per fusa]]
| #default =
}}{{Documenti}}
</noinclude>
gepqxl0j2eyhpsbcmjyezhfgieurx32
43257
43256
2026-07-07T01:26:27Z
Ne
1118
<includeonly>
43257
wikitext
text/x-wiki
{{Avisa
| type = move
| name = Fusa
| date = {{{date|}}}
| text = Lo ia es sujestada ce esta {{#if:{{{section|}}}|{{{section}}}|{{#if:{{NAMESPACE}}|paje|article}}}} ta es '''fusada''' con [[{{{1}}}]]. On pote discute la prosede en la '''[[{{TALKPAGENAME}}|paje de discute]]''' de esta paje.
}}<includeonly>{{#switch:{{NAMESPACE}}
| {{ns:0}} = [[Categoria:Articulos sujestada per fusa]]
| #default =
}}</includeonly><noinclude>{{Documenti}}
</noinclude>
c2v61ztwg9755mreyetoj590d5pkb30