Wikipedia
scnwiki
https://scn.wikipedia.org/wiki/P%C3%A0ggina_principali
MediaWiki 1.45.0-wmf.8
first-letter
Mèdia
Spiciali
Discussioni
Utenti
Discussioni utenti
Wikipedia
Discussioni Wikipedia
File
Discussioni file
MediaWiki
Discussioni MediaWiki
Template
Discussioni template
Aiutu
Discussioni aiutu
Catigurìa
Discussioni catigurìa
Purtali
Discussioni purtali
Pruggettu
Discussioni pruggettu
TimedText
TimedText talk
Mòdulu
Discussioni mòdulu
Event
Event talk
2 di giugnettu
0
3286
770396
770388
2025-07-03T21:19:38Z
Dostojewskij
18849
/* Nasciuti */ + [[Larry David]]
770396
wikitext
text/x-wiki
{{Giugnettu}}
== Abbinimenti ==
* [[963]]: [[Nicefuru II]] addiventa mpiraturi bizzantinu.
* [[1777]]: Lu [[Vermont]] addiventa lu primu statuo miricanu a abbuliri la schiavituti.
* [[1839]]: 53 schiavi africani s'arribbellanu supra la navi ''Amistad'' abbicinu la [[Cuba]].
* [[1900]]: Primu volu di nu [[Zeppelin]] supra lu [[lacu di Custanza]], vicinu a [[Friedrichshafen]], [[Girmania]].
* [[1976]]: Li [[Vietnam]] dû Sud e dû Nord si juncinu nzemmula pi furmari la '''Ripubblica Sucialista di Vietnam'''.
* [[2005]]: [[Roma]] - [[Tokiu]] - [[Berlinu]] - [[Johannesburg]] - [[Londra]] - [[Pariggi]]: Accumenza li [[Live 8]], concertu granni a favuri dî paisi poviri.
== Nasciuti ==
* [[419]]: [[Valintinianu III]], mpiraturi rumanu d'occidenti (m. [[455]])
* [[1363]]: [[Maria di Sicilia|Maria]] futura riggina di Trinacria (m. [[1401]])
* [[1714]]: [[Christoph Willibald Gluck]], cumpusituri tudiscu (m. [[1787]])
* [[1904]]: [[René Lacoste]], tennista e stilista francisi (m. [[1996]])
* [[1947]]: [[Larry David]], atturi statunitenzi
* [[1986]]: [[Lindsay Lohan]], attrici statunitenza
== Morti ==
* [[1778]]: [[Jean-Jacques Rousseau]], filòsufu francisi (n. 1712)
* [[1904]]: [[Anton Cechov]], drammatista russu (n. 1860)
* [[1961]]: [[Ernest Hemingway]], scritturi miricanu (n. 1899)
* [[1977]]: [[Vladimir Nabokov]], scritturi russu cosmopulita (n. 1899)
[[Catigurìa:Giugnettu]]
mtxkod85ouvfhgu58bcunm4akbqwozd
Taleh
0
29980
770394
739694
2025-07-03T14:32:52Z
5.8.102.68
Componenti ra banna
770394
wikitext
text/x-wiki
I '''Taleh''' sunu nu gruppu di mùsica pupulari di [[Rausa]] furmatu ntô [[1996]].
'''Na banna ci soninu
Turi Dipasquale Vuci
Gianni Guastella: vuci e chitarra
Vincent Migliorisi: chitarri, mandulinu, bouzouky, bassu, pircussioni, vuci
[[Luiggi Cosentino]] (vuci e fisarmònica)
Rino Taverna Basso
== '''Discugrafia:''' ==
'''Ratapuntu''' (2009):
1. ‘A puddira ccà stidda 4:17
2. Se mi susu 3:47
3. Nasca Patasca 3:24
4. Ppi ‘mmia 4:49
5. ‘A virrinedda 2:54
6. L’amuri 4:40
7. Nannu 3:13
8. Tuppi tuppi 3:15
9. Tarantella di lu vespiri 2:46
10. Signuruzzu chiuviti 3:51
'''Mistera''' (2015)
1. Preludio 1:01
2. Mistera 3:23
3. Beddu nostru signuri 4:08
4. I cientu puzza 4:19
5. Scunciuru 4:04
6. Patruna o luocu 5:22
7. Caricaricci 3:33
8. A ‘nciuria 3:24
9. Rimmi pueta 3:40
10. Quannu 3:31
11. U signuruzzu truvatu 5:25
'''Musicisti ca lassaru a banna:'''
[[Luiggi Cosentino]] (vuci e fisarmònica)
[[Rubbertu Difalco|Rubbertu Di Falco]] (vuci e tammuredda)
Peppe Sarta: vuci e fisarmonica
== Liami nterni ==
*[[Cantanti e gruppi musicali siciliani]]
== Culligamenti sterni ==
*[https://www.facebook.com/talehfolkband Paggina Facebook do gruppu]
*[https://web.archive.org/web/20211215125543/https://www.nsicilianu.it/483-taleh-gruppu-musicali-rausanu/ Discugrafia e Testi re Talèh]
[[Catigurìa:Gruppi musicali folk]]
[[Catigurìa:Gruppi musicali siciliani]]
ib3wgeoi0c36lnzvtw0910hkj8cuczy
770395
770394
2025-07-03T20:23:31Z
200.24.154.85
770395
wikitext
text/x-wiki
I '''Taleh''' sunu nu gruppu di mùsica pupulari di [[Rausa]] furmatu ntô [[1996]].
'''Na banna ci sonanu:'''
Salvatore Dipasquale: vuci e marranzanu
Gianni Guastella: vuci
Vincent Migliorisi: chitarri, mandulinu, bouzouky, bassu, pircussioni, vuci
Peppe Sarta: vuci e fisarmonica
Andrea Chessari: pircussioni e tammurieḍḍu
Jascha Parisi: bassu
== '''Discugrafia:''' ==
'''Ratapuntu''' (2009):
1. ‘A puddira ccà stidda 4:17
2. Se mi susu 3:47
3. Nasca Patasca 3:24
4. Ppi ‘mmia 4:49
5. ‘A virrinedda 2:54
6. L’amuri 4:40
7. Nannu 3:13
8. Tuppi tuppi 3:15
9. Tarantella di lu vespiri 2:46
10. Signuruzzu chiuviti 3:51
'''Mistera''' (2015)
1. Preludio 1:01
2. Mistera 3:23
3. Beddu nostru signuri 4:08
4. I cientu puzza 4:19
5. Scunciuru 4:04
6. Patruna o luocu 5:22
7. Caricaricci 3:33
8. A ‘nciuria 3:24
9. Rimmi pueta 3:40
10. Quannu 3:31
11. U signuruzzu truvatu 5:25
'''Musicisti ca lassaru a banna:'''
[[Luiggi Cosentino]] (vuci e fisarmònica)
[[Rubbertu Difalco|Rubbertu Di Falco]] (vuci e tammuredda)
Peppe Sarta: vuci e fisarmonica
== Liami nterni ==
*[[Cantanti e gruppi musicali siciliani]]
== Culligamenti sterni ==
*[https://www.facebook.com/talehfolkband Paggina Facebook do gruppu]
*[https://web.archive.org/web/20211215125543/https://www.nsicilianu.it/483-taleh-gruppu-musicali-rausanu/ Discugrafia e Testi re Talèh]
[[Catigurìa:Gruppi musicali folk]]
[[Catigurìa:Gruppi musicali siciliani]]
021x1jtx5wnrrn4gnc80gozog3pv57o
Utenti:GianAntonucci
2
65892
770397
767286
2025-07-03T21:26:13Z
GianAntonucci
46609
/* Tèssira (Infobox) */
770397
wikitext
text/x-wiki
{{DOS}}
{{#babel:scn|it|en-4}}
== Pàggini chi canciavi ==
* [[Càrculu spartutu]]
* [[John Lawson (fìsicu)]]
* [[Prugrammazzioni vutata a l'uggetti|PVU]]
== Pàggini chi hê canciari ==
* [[Càrculu diffirinziali]]
* [[Dirivata]]
* [[Samprea Riggiunali Siciliana]]
* [[Mòdulu:Bozza]] (cfr. https://en.wikipedia.org/wiki/Module:Sandbox)
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bimminutu]]
== Pàggini ùtili ==
* https://scn.wikipedia.org/wiki/Catigurìa:WIP_di_l%27Utenti_Dapal
* https://scn.wikipedia.org/wiki/Catigurìa:Artìculi_scritti_câ_grafìa_dâ_Cademia_Siciliana
* https://xtools.wmcloud.org/ec/scn.wikipedia.org/GianAntonucci
* https://scn.wikipedia.org/wiki/Wikipedia:Template
* https://en.wikipedia.org/wiki/Wikipedia:Templates
* https://en.wikipedia.org/wiki/Wikipedia:Sandbox
* https://scn.wikipedia.org/wiki/Utenti:GianAntonucci/Sandbox
* https://scn.wikipedia.org/wiki/Wikipedia:Fogghiu_di_prova
* https://scn.wikipedia.org/wiki/Template:Infobox
* https://en.wikipedia.org/wiki/Category:Wikipedia_modules
* [[Utenti:GiovanniPen/Welcome]]
* [[Utenti:GiovanniPen/msgs.php]]
== Lijami ùtili ==
* https://www.istat.it/classificazione/principali-statistiche-geografiche-sui-comuni/
== Provi chî mòduli e chî mudeḍḍi ==
=== Quatràngulu ===
* [[Mòdulu:Bozza/GianAntonucci/Quatràngulu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Quatràngulu]]
* [[Utenti:GianAntonucci/Bozza/Quatràngulu]]
=== TabbellaFacciuzzi ===
* [[Mòdulu:Bozza/GianAntonucci/TabbellaFacciuzzi]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TabbellaFacciuzzi]]
* [[Utenti:GianAntonucci/Bozza/TabbellaFacciuzzi]]
=== Bozza (Sandbox) ===
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bozza/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bozza]]
* [[Utenti:GianAntonucci/Bozza/Wikipedia:Bozza]]
=== Bumminuta ===
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bumminuta/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bumminuta]]
* [[Utenti:GianAntonucci/Bozza/Wikipedia:Bumminuta]]
=== Tèssira (Infobox) ===
* [[Mòdulu:Bozza/GianAntonucci/Tèssira]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCità]]
* [[Utenti:GianAntonucci/Bozza/Tèssira_dû_Capu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPajisi]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPulìticu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraAlbumMusicali]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraLibbru]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraQuatru]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraSquatraJocu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraStoria]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCìnamu]]
==== Di cancillari ====
* <s>[[Template:Tèssira/styles.css]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bummegna/styles.css]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bummegna]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Wikipedia:Bummegna]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bozza/styles.css]]</s>
==== Lijati ====
* [[Mòdulu:Wikidata]]
* [[Template:Wikidata]]
* [[Template:WikidataLabel]]
* [[Template:Infobox]]
* [[Template:Lijami sinòtticu]]
Cfr. https://es.wikipedia.org/wiki/Módulo:Ficha, https://en.wikipedia.org/wiki/Module:Infobox, https://en.wikipedia.org/wiki/Module:Infobox/styles.css
hv2tkosw6aebgtmg04jx0mqajmtliej
770431
770397
2025-07-04T11:19:27Z
GianAntonucci
46609
/* Tèssira (Infobox) */
770431
wikitext
text/x-wiki
{{DOS}}
{{#babel:scn|it|en-4}}
== Pàggini chi canciavi ==
* [[Càrculu spartutu]]
* [[John Lawson (fìsicu)]]
* [[Prugrammazzioni vutata a l'uggetti|PVU]]
== Pàggini chi hê canciari ==
* [[Càrculu diffirinziali]]
* [[Dirivata]]
* [[Samprea Riggiunali Siciliana]]
* [[Mòdulu:Bozza]] (cfr. https://en.wikipedia.org/wiki/Module:Sandbox)
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bimminutu]]
== Pàggini ùtili ==
* https://scn.wikipedia.org/wiki/Catigurìa:WIP_di_l%27Utenti_Dapal
* https://scn.wikipedia.org/wiki/Catigurìa:Artìculi_scritti_câ_grafìa_dâ_Cademia_Siciliana
* https://xtools.wmcloud.org/ec/scn.wikipedia.org/GianAntonucci
* https://scn.wikipedia.org/wiki/Wikipedia:Template
* https://en.wikipedia.org/wiki/Wikipedia:Templates
* https://en.wikipedia.org/wiki/Wikipedia:Sandbox
* https://scn.wikipedia.org/wiki/Utenti:GianAntonucci/Sandbox
* https://scn.wikipedia.org/wiki/Wikipedia:Fogghiu_di_prova
* https://scn.wikipedia.org/wiki/Template:Infobox
* https://en.wikipedia.org/wiki/Category:Wikipedia_modules
* [[Utenti:GiovanniPen/Welcome]]
* [[Utenti:GiovanniPen/msgs.php]]
== Lijami ùtili ==
* https://www.istat.it/classificazione/principali-statistiche-geografiche-sui-comuni/
== Provi chî mòduli e chî mudeḍḍi ==
=== Quatràngulu ===
* [[Mòdulu:Bozza/GianAntonucci/Quatràngulu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Quatràngulu]]
* [[Utenti:GianAntonucci/Bozza/Quatràngulu]]
=== TabbellaFacciuzzi ===
* [[Mòdulu:Bozza/GianAntonucci/TabbellaFacciuzzi]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TabbellaFacciuzzi]]
* [[Utenti:GianAntonucci/Bozza/TabbellaFacciuzzi]]
=== Bozza (Sandbox) ===
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bozza/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bozza]]
* [[Utenti:GianAntonucci/Bozza/Wikipedia:Bozza]]
=== Bumminuta ===
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bumminuta/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bumminuta]]
* [[Utenti:GianAntonucci/Bozza/Wikipedia:Bumminuta]]
=== Tèssira (Infobox) ===
* [[Mòdulu:Bozza/GianAntonucci/Tèssira]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCità]]
* [[Utenti:GianAntonucci/Bozza/Tèssira_dû_Capu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPajisi]]
* [[Utenti:GianAntonucci/Bozza/Tèssira_dû_Regnu_Unitu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPulìticu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraAlbumMusicali]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraLibbru]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraQuatru]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraSquatraJocu]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraStoria]]
* [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCìnamu]]
==== Di cancillari ====
* <s>[[Template:Tèssira/styles.css]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bummegna/styles.css]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bummegna]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Wikipedia:Bummegna]]</s>
* <s>[[Utenti:GianAntonucci/Bozza/Mudeḍḍu:Bozza/styles.css]]</s>
==== Lijati ====
* [[Mòdulu:Wikidata]]
* [[Template:Wikidata]]
* [[Template:WikidataLabel]]
* [[Template:Infobox]]
* [[Template:Lijami sinòtticu]]
Cfr. https://es.wikipedia.org/wiki/Módulo:Ficha, https://en.wikipedia.org/wiki/Module:Infobox, https://en.wikipedia.org/wiki/Module:Infobox/styles.css
c2pukfidxr9elw8gk6zoqonccz1se7r
Mòdulu:Bozza/GianAntonucci/Tèssira
828
66262
770399
766951
2025-07-03T21:53:29Z
GianAntonucci
46609
770399
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- This regex detects strings like [[Category:Some category]] in any case style.
-- This helps us catch categories even if the user typed "category", "Category",
-- or any combination thereof, so that we can move them out of the infobox.
local category_in_empty_row_pattern = '%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^]]*%]%]'
-- This regex detects <ref>some text</ref> in a simplified manner. This won't
-- catch every complex reference, but it's sufficient for typical usage. If a
-- row only has references or categories, we consider it "empty" and and move
-- those items out of the infobox.
local ref_in_empty_row_pattern = '%<ref[^>]*>.-%</ref%>'
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu" },
},
["Geography"] = {
props = { "P276" },
labels = { "Position", "Location", "Pusizzioni" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- This function attempts to fetch a value from the current Wikidata entity for
-- the given property ID (e.g. "P1082"). Returns the rendered data if found, or
-- nil if not.
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if wikidataEntity
and wikidataEntity.claims
and wikidataEntity.claims[property]
and wikidataEntity.claims[property][1]
and wikidataEntity.claims[property][1].mainsnak
then
return mw.wikibase.renderSnak(wikidataEntity.claims[property][1].mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- This function treat "value" that begin with '#' or '*' as a wiki bullet/numbered
-- lists and wrap them in <div> tags to ensure proper line breaks inside the table
-- cells. For example, "# Item\n# Another" becomes "<div>\n# Item\n# Another\n</div>".
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- This function checks if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "above", "below", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (up to 50)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Move categories placed after a </tr> tag to outside the table.
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
-- Move <templatestyles> tags out similarly.
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Also handle potential UNIQ placeholders (sometimes MediaWiki replaces
-- templatestyles with them).
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
local function addRowEnhanced(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- If value is only references/categories, treat it as empty in visual terms
local dataNoCat = mw.ustring.gsub(params.valuri, category_in_empty_row_pattern, '')
dataNoCat = mw.ustring.gsub(dataNoCat, ref_in_empty_row_pattern, '')
if dataNoCat:match('^%s*$') then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
row:tag('td')
:addClass('tessira_valuri')
:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
local function detectAutoheader(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
--
-- Also, unless the user manually sets Gruppu<FieldName>=Something that overrides
-- it, we handle the autoheader logic calling detectAutoheader(WikidataProperty, label)
-- to guess a section name.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local new_section
if not manualGroup then
local label = args["Vuci" .. fieldName] or fieldName
new_section = detectAutoheader(propertyId, label)
end
-- Insert group header if needed
if manualGroup and manualGroup ~= current_section then
addRowEnhanced(root, { gruppu = manualGroup }, state)
current_section = manualGroup
elseif new_section and new_section ~= current_section then
addRowEnhanced(root, { gruppu = new_section }, state)
current_section = new_section
end
local label = args["Vuci" .. fieldName] or fieldName
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections (and
-- thus override autoheader detection via detectAutoheader).
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties for
-- autoheader_sections.
--
-- The function goes through the numbered rows one by one:
-- 1. If a row has a value (Valuri) or belongs to a group (Gruppu), we process it.
-- 2. If the user manually set a group (Gruppu), we place the row there.
-- 3. Otherwise, we try to automatically group it based on its Wikidata property or label.
-- 4. If the section changes, we add a new section header.
-- 5. Finally, we add the row to the table.
--
-- The loop stops when it no longer finds any numbered parameters.
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- If there's either a group or a value, we proceed
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
if gruppuParam and gruppuParam ~= "" then
-- Manual group override
if gruppuParam ~= current_section then
addRowEnhanced(root, { gruppu = gruppuParam }, state)
current_section = gruppuParam
end
-- Only add a row if there's something to display
if vuciParam or valuriParam then
addRowEnhanced(root, { vuci = vuciParam, valuri = valuriParam }, state)
end
else
-- Autoheader detection
local new_section = detectAutoheader(propertyParam, vuciParam or "")
if new_section and new_section ~= current_section then
addRowEnhanced(root, { gruppu = new_section }, state)
current_section = new_section
end
addRowEnhanced(root, { vuci = vuciParam, valuri = valuriParam }, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|above=Some text".
local function renderAbove(root, args, state)
if args["above"] and args["above"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["above"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|below=Some text".
local function renderBelow(root, args, state)
if args["below"] and args["below"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["below"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = args["LijamiWikidata"]
and { args["NomuMudeḍḍu"] }
or { args["NomuMudeḍḍu"], nowd = 1 }
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = 'Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css'
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = 'Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css'
}
}
-- This function scans all parameters for "tessira", "hlist", or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then
break
end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup. Its steps are:
-- 1) Merge local and parent arguments
-- 2) Detect hlist/plainlist usage
-- 3) Load a Wikidata entity if "Wikidata=Qxxx" is given
-- 4) Build the table as HTML
-- 5) Move misplaced categories/templatestyles out of table rows
-- 6) Append them if the row was empty
-- 7) Return the final output (or empty if no rows displayed).
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
if not args[k] then
args[k] = v
end
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css" }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
avstemp86ba7onliqm0pat2qqo8s4dc
770402
770399
2025-07-03T22:22:23Z
GianAntonucci
46609
770402
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" }, -- Added more geographic properties
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "above", "below", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- Forward declaration for use in handleSectionChange
local addRowEnhanced
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
local function detectAutoheader(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|above=Some text".
local function renderAbove(root, args, state)
if args["above"] and args["above"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["above"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|below=Some text".
local function renderBelow(root, args, state)
if args["below"] and args["below"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["below"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then
break
end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
g1ti5mortevywqnav93xdechac0psuz
770403
770402
2025-07-03T22:24:59Z
GianAntonucci
46609
770403
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" }, -- Added more geographic properties
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "above", "below", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- Forward declaration for use in handleSectionChange
local addRowEnhanced
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|above=Some text".
local function renderAbove(root, args, state)
if args["above"] and args["above"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["above"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|below=Some text".
local function renderBelow(root, args, state)
if args["below"] and args["below"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["below"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then
break
end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
sptv8vzhqfzxy1zsy6r6niiq4iuz3ik
770404
770403
2025-07-03T22:26:25Z
GianAntonucci
46609
770404
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" }, -- Added more geographic properties
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "above", "below", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- Forward declaration for use in handleSectionChange
local addRowEnhanced
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|above=Some text".
local function renderAbove(root, args, state)
if args["above"] and args["above"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["above"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|below=Some text".
local function renderBelow(root, args, state)
if args["below"] and args["below"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["below"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then
break
end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
3yvzrw9s3rzdfzsvqiglue42c4t0xbi
770405
770404
2025-07-03T22:28:00Z
GianAntonucci
46609
770405
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" }, -- Added more geographic properties
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "above", "below", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|above=Some text".
local function renderAbove(root, args, state)
if args["above"] and args["above"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["above"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|below=Some text".
local function renderBelow(root, args, state)
if args["below"] and args["below"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["below"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then
break
end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
fgc2bk2498l0px5x9kjrfjvjeb2q9pp
770411
770405
2025-07-03T22:55:53Z
GianAntonucci
46609
770411
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti", "Pupulazzioni" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu", "Sìnnacu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" },
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu", "Locu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu", "Data" },
},
["Cilibbrazzioni"] = {
props = {},
labels = { "Evènti principali", "Partecipanti", "Tradizzioni" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "above", "below", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|above=Some text".
local function renderAbove(root, args, state)
if args["above"] and args["above"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["above"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|below=Some text".
local function renderBelow(root, args, state)
if args["below"] and args["below"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["below"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for _, arg in pairs(args_to_check) do
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then
break
end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
tilncevmkwsysv5zdiwxtfzc5c0foba
770412
770411
2025-07-03T22:57:35Z
GianAntonucci
46609
770412
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti", "Pupulazzioni" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu", "Sìnnacu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" },
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu", "Locu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu", "Data" },
},
["Cilibbrazzioni"] = {
props = {},
labels = { "Evènti principali", "Partecipanti", "Tradizzioni" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "above", "below", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|above=Some text".
local function renderAbove(root, args, state)
if args["above"] and args["above"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["above"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|below=Some text".
local function renderBelow(root, args, state)
if args["below"] and args["below"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["below"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for key, arg in pairs(args_to_check) do
-- Check both the value and if it's a Classi parameter
if key:match("^Classi%d*$") and arg then
if arg:find(list.patterns[1]:gsub("^%^", ""):gsub("%$$", "")) then
list.found = true
break
end
end
-- Original pattern checking
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then break end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
k3je7n37cnillltyzobbyfhx4j5a9tg
770415
770412
2025-07-04T09:35:54Z
GianAntonucci
46609
770415
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti", "Pupulazzioni" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu", "Sìnnacu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" },
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu", "Locu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu", "Data" },
},
["Cilibbrazzioni"] = {
props = {},
labels = { "Evènti principali", "Partecipanti", "Tradizzioni" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "supra", "sutta", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^subheader%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Property%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Property" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Property1, Property2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Property" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|supra=Some text".
local function renderAbove(root, args, state)
if args["supra"] and args["supra"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["supra"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|sutta=Some text".
local function renderBelow(root, args, state)
if args["sutta"] and args["sutta"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["sutta"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "subheader" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for key, arg in pairs(args_to_check) do
-- Check both the value and if it's a Classi parameter
if key:match("^Classi%d*$") and arg then
if arg:find(list.patterns[1]:gsub("^%^", ""):gsub("%$$", "")) then
list.found = true
break
end
end
-- Original pattern checking
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then break end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
7en5xrtyf4drab4f74gn1425emlcy0o
770419
770415
2025-07-04T09:56:14Z
GianAntonucci
46609
770419
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti", "Pupulazzioni" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu", "Sìnnacu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" },
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu", "Locu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu", "Data" },
},
["Cilibbrazzioni"] = {
props = {},
labels = { "Evènti principali", "Partecipanti", "Tradizzioni" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "supra", "sutta", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^Abbirtenza%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Prupità%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Prupità" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Prupità1, Prupità2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Prupità" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|supra=Some text".
local function renderAbove(root, args, state)
if args["supra"] and args["supra"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_above')
:wikitext(args["supra"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|sutta=Some text".
local function renderBelow(root, args, state)
if args["sutta"] and args["sutta"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_below')
:wikitext(args["sutta"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "Abbirtenza" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for key, arg in pairs(args_to_check) do
-- Check both the value and if it's a Classi parameter
if key:match("^Classi%d*$") and arg then
if arg:find(list.patterns[1]:gsub("^%^", ""):gsub("%$$", "")) then
list.found = true
break
end
end
-- Original pattern checking
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then break end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
2kf3264jxgmbu3hv3f6ua4imgwrsgfh
770423
770419
2025-07-04T10:11:57Z
GianAntonucci
46609
770423
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) CATEGORY / TEMPLATE STYLES DETECTION
--------------------------------------------------------------------------------
-- Pattern to detect category links (case-insensitive)
-- We'll convert to lowercase before matching to simplify the pattern
local category_pattern_lower = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern to detect references including self-closing tags
local ref_patterns = {
'%<ref[^>]*>.-%</ref%>', -- Standard ref tags
'%<ref[^/>]*/%>' -- Self-closing ref tags
}
--------------------------------------------------------------------------------
-- 2) AUTOHEADER CONFIGURATION
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Population", "Genti", "Pupulazzioni" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu", "Sìnnacu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" },
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu", "Locu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu", "Data" },
},
["Cilibbrazzioni"] = {
props = {},
labels = { "Evènti principali", "Partecipanti", "Tradizzioni" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, category_pattern_lower, '')
-- Remove all types of references
for _, pattern in ipairs(ref_patterns) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "Supra", "Sutta", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^Abbirtenza%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Prupità%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Population") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Prupità" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Prupità1, Prupità2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Prupità" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|Supra=Some text".
local function renderAbove(root, args, state)
if args["Supra"] and args["Supra"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_supra')
:wikitext(args["Supra"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|Sutta=Some text".
local function renderBelow(root, args, state)
if args["Sutta"] and args["Sutta"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_sutta')
:wikitext(args["Sutta"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "Abbirtenza" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for key, arg in pairs(args_to_check) do
-- Check both the value and if it's a Classi parameter
if key:match("^Classi%d*$") and arg then
if arg:find(list.patterns[1]:gsub("^%^", ""):gsub("%$$", "")) then
list.found = true
break
end
end
-- Original pattern checking
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then break end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
idlseidnfkl84kr2efi460ox3jcp5ce
770425
770423
2025-07-04T10:54:46Z
GianAntonucci
46609
770425
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) ARRICANUSCIMENTU DÎ CATIGURÌI E DÎ STILI
--------------------------------------------------------------------------------
-- Pattern pî catigurìi
local pattern_catiguria_minusculu = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern pî rifirimenti (<ref>)
local pattern_ref = {
'%<ref[^>]*>.-%</ref%>', -- Nurmali
'%<ref[^/>]*/%>' -- Chiḍḍi chi si chiùjinu suli
}
--------------------------------------------------------------------------------
-- 2) CUNFIJURAZZIONI DÎ NOMA DÎ SIZZIONI
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Genti", "Pupulazzioni" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu", "Sìnnacu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" },
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu", "Locu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu", "Data" },
},
["Cilibbrazzioni"] = {
props = {},
labels = { "Evènti principali", "Partecipanti", "Tradizzioni" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, pattern_catiguria_minusculu, '')
-- Remove all types of references
for _, pattern in ipairs(pattern_ref) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "Supra", "Sutta", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^Abbirtenza%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Prupità%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Genti") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Prupità" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Prupità1, Prupità2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Prupità" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|Supra=Some text".
local function renderAbove(root, args, state)
if args["Supra"] and args["Supra"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_supra')
:wikitext(args["Supra"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|Sutta=Some text".
local function renderBelow(root, args, state)
if args["Sutta"] and args["Sutta"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_sutta')
:wikitext(args["Sutta"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "Abbirtenza" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for key, arg in pairs(args_to_check) do
-- Check both the value and if it's a Classi parameter
if key:match("^Classi%d*$") and arg then
if arg:find(list.patterns[1]:gsub("^%^", ""):gsub("%$$", "")) then
list.found = true
break
end
end
-- Original pattern checking
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
if list.found then break end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
sbj3ld3ger6xpavw35fx5msm1lr14ja
770434
770425
2025-07-04T11:45:48Z
GianAntonucci
46609
770434
Scribunto
text/plain
local p = {}
local mw = require('mw')
--------------------------------------------------------------------------------
-- 1) ARRICANUSCIMENTU DÎ CATIGURÌI E DÎ STILI
--------------------------------------------------------------------------------
-- Pattern pî catigurìi
local pattern_catiguria_minusculu = '%[%[%s*category%s*:[^]]*%]%]'
-- Pattern pî rifirimenti (<ref>)
local pattern_ref = {
'%<ref[^>]*>.-%</ref%>', -- Nurmali
'%<ref[^/>]*/%>' -- Chiḍḍi chi si chiùjinu suli
}
--------------------------------------------------------------------------------
-- 2) CUNFIJURAZZIONI DÎ NOMA DÎ SIZZIONI
--------------------------------------------------------------------------------
-- This table automatically groups data rows into named sections in the infobox.
-- Each section has a list of Wikidata property codes and a list of label keywords.
-- If a row matches one of these properties or labels, we group it under this
-- section. If a row could fit into more than one section, we use the first one.
-- The user can manually override this grouping using the "Gruppu" parameter.
local autoheader_sections = {
["Demographics"] = {
props = { "P1082" },
labels = { "Genti", "Pupulazzioni" },
},
["Government"] = {
props = { "P6" },
labels = { "Mayor", "Capu", "Sìnnacu" },
},
["Geography"] = {
props = { "P276", "P2046", "P131", "P421" },
labels = { "Position", "Location", "Pusizzioni", "Aria", "Pruvincia", "FusuUrariu", "Locu" },
},
["History"] = {
props = { "P31" },
labels = { "Founded", "History", "Tipu", "Data" },
},
["Cilibbrazzioni"] = {
props = {},
labels = { "Evènti principali", "Partecipanti", "Tradizzioni" },
},
}
--------------------------------------------------------------------------------
-- 3) PREDEFINED WIKIDATA FIELDS
--------------------------------------------------------------------------------
-- This table maps a "local parameter" to a Wikidata property.
local wikidataFields = {
["Aria"] = "P2046",
["Capu"] = "P6",
["FusuUrariu"] = "P421",
["Genti"] = "P1082",
["ISO"] = "P901",
["Pusizzioni"] = "P276",
["Pruvincia"] = "P131",
["Tipu"] = "P31",
}
-- Default CSS paths - should be moved to Template: namespace in production
local DEFAULT_CSS_PATH = "Template:Tèssira/stili.css"
local PLAINLIST_CSS_PATH = "Template:ListaSìmplici/stili.css"
local HLIST_CSS_PATH = "Template:ListaUrizzuntali/stili.css"
-- For development, use user space paths
local DEV_MODE = true -- Set to false for production
if DEV_MODE then
DEFAULT_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"
PLAINLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css"
HLIST_CSS_PATH = "Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css"
end
--------------------------------------------------------------------------------
-- 4) HELPER FUNCTIONS
--------------------------------------------------------------------------------
-- Enhanced function to fetch Wikidata values with rank consideration
-- Returns the best-ranked value (preferred > normal > deprecated)
local function getWikidataValue(wikidataEntity, property)
local success, result = pcall(function()
if not wikidataEntity or not wikidataEntity.claims or not wikidataEntity.claims[property] then
return nil
end
local claims = wikidataEntity.claims[property]
local bestClaim = nil
local bestRank = nil
-- Rank priority: preferred > normal > deprecated
local rankPriority = {
preferred = 3,
normal = 2,
deprecated = 1
}
for _, claim in ipairs(claims) do
local rank = claim.rank or "normal"
local priority = rankPriority[rank] or 2
if not bestRank or priority > bestRank then
bestClaim = claim
bestRank = priority
end
end
if bestClaim and bestClaim.mainsnak then
return mw.wikibase.renderSnak(bestClaim.mainsnak)
end
end)
if not success then
mw.log("Wikidata error for property " .. property .. ": " .. tostring(result))
end
return success and result or nil
end
-- Check if a string contains only references and/or categories
local function isEmptyExceptRefsAndCats(value)
if not value or value == "" then
return true
end
-- Convert to lowercase for category detection
local lowerValue = mw.ustring.lower(value)
-- Remove categories
local stripped = mw.ustring.gsub(lowerValue, pattern_catiguria_minusculu, '')
-- Remove all types of references
for _, pattern in ipairs(pattern_ref) do
stripped = mw.ustring.gsub(stripped, pattern, '')
end
-- Check if only whitespace remains
return stripped:match('^%s*$') ~= nil
end
-- Process list formatting
local function checkList(value)
local firstChar = mw.ustring.sub(value, 1, 1)
if firstChar == '#' or firstChar == '*' then
value = '<div>\n' .. value .. '\n</div>'
end
return value .. '\n'
end
-- Check if a parameter name is recognized
local function isRecognizedParam(paramName)
if type(paramName) ~= 'string' then return true end
-- Base parameters
local baseParams = {
"Wikidata", "child", "no_float", "inline_style", "style", "debug",
"Tìtulu", "Suttatìtulu", "Supra", "Sutta", "NomuMudeḍḍu",
"LijamiWikidata", "PediPàggina", "MmàgginiSupra", "MmàgginiSutta",
"MmàgginiManuManca", "MmàgginiManuDritta", "DidascalìaMmàgginiSupra",
"DidascalìaMmàgginiSutta", "DidascalìaMmàgginiManuManca",
"DidascalìaMmàgginiManuDritta"
}
-- Check base parameters
for _, param in ipairs(baseParams) do
if paramName == param then return true end
end
-- Check predefined Wikidata fields and their variants
for fieldName, _ in pairs(wikidataFields) do
if paramName == fieldName or
paramName == "Vuci" .. fieldName or
paramName == "Gruppu" .. fieldName then
return true
end
end
-- Check numbered parameters (no artificial limit)
if paramName:match("^Abbirtenza%d+$") or
paramName:match("^Vuci%d+$") or
paramName:match("^Valuri%d+$") or
paramName:match("^Gruppu%d+$") or
paramName:match("^Prupità%d+$") or
paramName:match("^Classi%d+$") then
return true
end
return false
end
-- Forward declarations for functions that need to be called before they're defined
local detectAutoheader
local addRowEnhanced
-- Handle section changes to reduce code duplication
local function handleSectionChange(root, state, currentSection, manualGroup, autoProperty, autoLabel)
local newSection = currentSection
if manualGroup and manualGroup ~= "" then
-- Manual group override
if manualGroup ~= currentSection then
addRowEnhanced(root, { gruppu = manualGroup }, state)
newSection = manualGroup
end
elseif autoProperty or autoLabel then
-- Autoheader detection
local detectedSection = detectAutoheader(autoProperty, autoLabel)
if detectedSection and detectedSection ~= currentSection then
addRowEnhanced(root, { gruppu = detectedSection }, state)
newSection = detectedSection
end
end
return newSection
end
--------------------------------------------------------------------------------
-- 5) MOVING MISPLACED TEMPLATE STYLES
--------------------------------------------------------------------------------
-- This function moves <templatestyles> or categories that are found inside <tr>
-- elements after the table to avoid formatting issues.
local function fixChildBoxes(html)
if not html or html == "" then
return html
end
-- Convert to lowercase for easier pattern matching
local function moveCategoriesOutside(str)
-- This pattern works with the original case-sensitive approach
-- since we need to preserve the original case in the output
return mw.ustring.gsub(
str,
'(%</[Tt][Rr]%>%s*)(%[%[%s*[Cc][Aa][Tt][Ee][Gg][Oo][Rr][Yy]%s*:[^%]]*%]%])',
'%2%1'
)
end
-- Move categories
html = moveCategoriesOutside(html)
-- Move <templatestyles> tags
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(%f[%S]<templatestyles[^>]*>.-</templatestyles>)',
'%2%1'
)
-- Handle UNIQ placeholders
html = mw.ustring.gsub(
html,
'(%</[Tt][Rr]%>%s*)(\127[^\127]*UNIQ%-%-templatestyles%-%x+%-QINU[^\127]*\127)',
'%2%1'
)
return html
end
--------------------------------------------------------------------------------
-- 6) BASIC ROW-ADDING FUNCTION
--------------------------------------------------------------------------------
-- This function adds a row to the infobox. The "params" table can have:
-- a) params.gruppu => a string for a group header that spans two columns.
-- b) params.vuci => a string for the row label (optional).
-- c) params.valuri => a string for the value of that label.
-- d) params.classi => CSS class(es) to add to the value cell
--
-- If the row is truly empty except for references or categories, we don't display
-- it and we store those items for later output.
addRowEnhanced = function(root, params, state)
-- If this is a group header, create a header row
if params.gruppu then
root:tag('tr')
:addClass('tessira_gruppu')
:tag('th')
:attr('colspan', '2')
:wikitext(params.gruppu)
return
end
-- If no value is given, do nothing
if not params.valuri or params.valuri == "" then
return
end
-- Check if value only contains references/categories
if isEmptyExceptRefsAndCats(params.valuri) then
table.insert(state.empty_row_extras, params.valuri)
return
end
-- If there's actual text, create and show a row
state.has_rows = true
local row = root:tag('tr')
if params.vuci then
-- Normal two-column row (label + value)
row:tag('th')
:attr('scope', 'row')
:addClass('tessira_vuci')
:wikitext(params.vuci)
:done()
local td = row:tag('td')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
else
-- If there's no label, single cell spanning two columns
local td = row:tag('td')
:attr('colspan', '2')
:addClass('tessira_valuri')
if params.classi then
td:addClass(params.classi)
end
td:wikitext(checkList(params.valuri))
end
end
--------------------------------------------------------------------------------
-- 7) AUTOHEADER DETECTION
--------------------------------------------------------------------------------
-- This function checks if the given "property" (e.g., "P1082") or "label"
-- ("Genti") matches any section name in autoheader_sections. Returns the
-- name of the first matching section, or nil if none match.
detectAutoheader = function(property, label)
label = label or ""
local lowerLabel = mw.ustring.lower(label)
for sectionName, info in pairs(autoheader_sections) do
local matched = false
-- Check by property
if property and info.props then
for _, prop in ipairs(info.props) do
if prop == property then
matched = true
break
end
end
end
-- If still not matched, check by label
if (not matched) and info.labels then
for _, keyword in ipairs(info.labels) do
if keyword ~= "" and lowerLabel:find(mw.ustring.lower(keyword), 1, true) then
matched = true
break
end
end
end
if matched then
return sectionName
end
end
return nil
end
--------------------------------------------------------------------------------
-- 8) PREDEFINED FIELDS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function checks if each "local parameter" (fieldName) in wikidataFields
-- is set or if Wikidata has a value. For example, "FieldName" => "Prupità" means
-- that if the user doesn't supply FieldName explicitly, we try to pull data from
-- Property on Wikidata. If found, we create a row.
local function renderPredefinedRows(root, args, state, wikidataEntity)
local current_section = nil
for fieldName, propertyId in pairs(wikidataFields) do
local data = args[fieldName] or getWikidataValue(wikidataEntity, propertyId)
if data and data ~= "" then
local manualGroup = args["Gruppu" .. fieldName]
local label = args["Vuci" .. fieldName] or fieldName
-- Handle section changes using the helper function
current_section = handleSectionChange(
root, state, current_section,
manualGroup, propertyId, label
)
-- Add the data row
addRowEnhanced(root, { vuci = label, valuri = data }, state)
end
end
end
--------------------------------------------------------------------------------
-- 9) NUMBERED ROWS + AUTOHEADERS
--------------------------------------------------------------------------------
-- This function looks for numbered rows like Vuci1/Valuri1, Vuci2/Valuri2, etc.
-- and processes them. These rows might also have:
-- a) Gruppu1, Gruppu2, etc. → Used to manually group rows into sections
-- b) Prupità1, Prupità2, etc. → Helps match data to Wikidata properties
-- c) Classi1, Classi2, etc. → CSS classes to apply to the value cell
local function renderNumberedRows(root, args, state)
local current_section = nil
local index = 1
while true do
local vuciParam = args["Vuci" .. index]
local valuriParam = args["Valuri" .. index]
local gruppuParam = args["Gruppu" .. index]
local propertyParam = args["Prupità" .. index]
local classiParam = args["Classi" .. index]
-- Stop if no relevant parameters found
if not (vuciParam or valuriParam or gruppuParam or propertyParam) then
break
end
-- Process if there's a value or group
if (valuriParam and valuriParam ~= "") or (gruppuParam and gruppuParam ~= "") then
-- Handle section changes
current_section = handleSectionChange(
root, state, current_section,
gruppuParam, propertyParam, vuciParam
)
-- Add row if there's data to display
if vuciParam or valuriParam then
addRowEnhanced(root, {
vuci = vuciParam,
valuri = valuriParam,
classi = classiParam
}, state)
end
end
index = index + 1
end
end
--------------------------------------------------------------------------------
-- 10) ABOVE & BELOW ROWS
--------------------------------------------------------------------------------
-- This function optionally create a row spanning two columns at the top of
-- the table with that text, if the user sets "|Supra=Some text".
local function renderAbove(root, args, state)
if args["Supra"] and args["Supra"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('th')
:attr('colspan', '2')
:addClass('tessira_supra')
:wikitext(args["Supra"])
end
end
-- This function optionally creates a row spanning two columns at the bottom of
-- the table with that text, if the user sets "|Sutta=Some text".
local function renderBelow(root, args, state)
if args["Sutta"] and args["Sutta"] ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_sutta')
:wikitext(args["Sutta"])
end
end
--------------------------------------------------------------------------------
-- 11) SUBHEADER ROWS
--------------------------------------------------------------------------------
-- This function creates a subheader row spanning two columns that looks like
-- a small heading within the table.
local function renderSubheader(root, subheaderText, state)
if subheaderText and subheaderText ~= "" then
state.has_rows = true
local row = root:tag('tr')
row:tag('td')
:attr('colspan', '2')
:addClass('tessira_subheader')
:wikitext(subheaderText)
end
end
-- This function loops through subheader1, subheader2, etc. until we don't find
-- subheaderN. Each one becomes a separate subheader row.
local function renderAllSubheaders(root, args, state)
local i = 1
while true do
local key = "Abbirtenza" .. i
local val = args[key]
if not val or val == "" then
break
end
renderSubheader(root, val, state)
i = i + 1
end
end
--------------------------------------------------------------------------------
-- 12) TITLE, IMAGES, NAVBAR, FOOTER
--------------------------------------------------------------------------------
-- This function renders the main title (Tìtulu) and an optional subtitle
-- (Suttatìtulu) spanning two columns at the top.
local function renderTitle(root, args, state)
if args["Tìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_titulu')
:wikitext(args["Tìtulu"])
end
if args["Suttatìtulu"] then
root:tag('tr'):tag('th')
:attr('colspan', '2')
:addClass('tessira_suttatitulu')
:wikitext(args["Suttatìtulu"])
end
end
-- This function handles up to four images (top, bottom, left, right), plus
-- optional captions. Also attempts to fetch a top image from Wikidata (P18) if
-- the local parameter "MmàgginiSupra" isn't set.
local function renderImages(root, args, state, wikidataEntity)
local images = {
top = args["MmàgginiSupra"] or getWikidataValue(wikidataEntity, "P18"),
bottom = args["MmàgginiSutta"],
left = args["MmàgginiManuManca"],
right = args["MmàgginiManuDritta"]
}
-- TOP
if images.top then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.top .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSupra"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSupra"])
end
-- LEFT / RIGHT
if images.left or images.right then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_mmaggini_manu_manca')
:wikitext(images.left and ('[[File:' .. images.left .. '|frameless|left]]') or "")
row:tag('td')
:addClass('tessira_mmaggini_manu_dritta')
:wikitext(images.right and ('[[File:' .. images.right .. '|frameless|right]]') or "")
end
if args["DidascalìaMmàgginiManuManca"] or args["DidascalìaMmàgginiManuDritta"] then
local row = root:tag('tr')
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_manca')
:wikitext(args["DidascalìaMmàgginiManuManca"] or "")
row:tag('td')
:addClass('tessira_didascalia_mmaggini_manu_dritta')
:wikitext(args["DidascalìaMmàgginiManuDritta"] or "")
end
-- BOTTOM
if images.bottom then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_mmaggini')
:wikitext('[[File:' .. images.bottom .. '|frameless|center]]')
end
if args["DidascalìaMmàgginiSutta"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_didascalia_mmaggini')
:wikitext(args["DidascalìaMmàgginiSutta"])
end
end
-- This function optionally calls {{Lijami sinòtticu}} to show a navigation bar
-- at the bottom. If "LijamiWikidata" is not set, we pass "nowd=1" to hide the
-- Wikidata link.
local function renderNavBar(root, args, state)
if args["NomuMudeḍḍu"] then
-- Clear and explicit navbar argument handling
local navArgs
if args["LijamiWikidata"] then
navArgs = { args["NomuMudeḍḍu"] }
else
navArgs = { args["NomuMudeḍḍu"], nowd = 1 }
end
root:tag('tr')
:tag('td')
:attr('colspan', '2')
:addClass('tessira_navbar noprint nomobile metadata')
:wikitext(mw.getCurrentFrame():expandTemplate{
title = 'Lijami sinòtticu',
args = navArgs
})
end
end
-- This function optionally adds a final row that can show disclaimers or sources.
local function renderFooter(root, args, state)
if args["PediPàggina"] then
root:tag('tr'):tag('td')
:attr('colspan', '2')
:addClass('tessira_pedi_paggina')
:wikitext(args["PediPàggina"])
end
end
--------------------------------------------------------------------------------
-- 13) BUILD TABLE
--------------------------------------------------------------------------------
-- This function builds either a <table> (default) or a <div> (child="yes"), then
-- calls each section-rendering function in a turn. If no rows are added,
-- has_rows remains false, so we return nothing and don't display anything.
local function buildInfobox(args, wikidataEntity)
-- Create local state
local state = {
has_rows = false,
empty_row_extras = {}
}
local container
if args["child"] == "yes" then
container = mw.html.create('div'):addClass('tessira_child_wrapper')
else
container = mw.html.create('table'):addClass('tessira')
if args["no_float"] == "yes" then
container:addClass('tessira_no_float')
end
end
if args["inline_style"] then
container:attr('style', tostring(args["inline_style"]))
end
-- Pass state to all render functions
renderAbove(container, args, state)
renderTitle(container, args, state)
renderAllSubheaders(container, args, state)
renderImages(container, args, state, wikidataEntity)
renderPredefinedRows(container, args, state, wikidataEntity)
renderNumberedRows(container, args, state)
renderNavBar(container, args, state)
renderBelow(container, args, state)
renderFooter(container, args, state)
-- Return both container and state
return container, state
end
--------------------------------------------------------------------------------
-- 14) DETECT HL/PL CLASSES (HLIST & PLAINLIST)
--------------------------------------------------------------------------------
-- Our module scans the arguments to see if "hlist" or "plainlist" is used somewhere.
-- If found, we automatically load the corresponding CSS using <templatestyles>.
local lists = {
plainlist_t = {
patterns = {
'^plainlist$',
'%splainlist$',
'^plainlist%s',
'%splainlist%s'
},
found = false,
styles = PLAINLIST_CSS_PATH
},
hlist_t = {
patterns = {
'^hlist$',
'%shlist$',
'^hlist%s',
'%shlist%s'
},
found = false,
styles = HLIST_CSS_PATH
}
}
-- This function scans all parameters for "hlist" or "plainlist". If found, we
-- mark that style as "found", so we can load its CSS later.
local function has_list_class(args_to_check)
for _, list in pairs(lists) do
if not list.found then
for key, arg in pairs(args_to_check) do
if type(key) == 'string' then -- Check that the key is text
-- Check both the value and if it's a Classi parameter
if key:match("^Classi%d*$") and arg then
if arg:find(list.patterns[1]:gsub("^%^", ""):gsub("%$$", "")) then
list.found = true
break
end
end
-- Original pattern checking
for _, pattern in ipairs(list.patterns) do
if mw.ustring.find(arg or '', pattern) then
list.found = true
break
end
end
end
if list.found then break end
end
end
end
end
--------------------------------------------------------------------------------
-- 15) MAIN FUNCTION
--------------------------------------------------------------------------------
-- This function is the main entry point. Usually called with
-- {{#invoke:ModuleName|stampa}} in wiki markup.
function p.stampa(frame)
local args = {}
local parentArgs = frame:getParent().args
local localArgs = frame.args
-- Merge arguments (simplified)
for k, v in pairs(localArgs) do
args[k] = v
end
for k, v in pairs(parentArgs) do
args[k] = args[k] or v
end
-- Check for "hlist" or "plainlist"
has_list_class(args)
-- Load Wikidata entity with error handling
local wikidataEntity
local wikidataSuccess = true
if args["Wikidata"] then
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity, args["Wikidata"])
else
wikidataSuccess, wikidataEntity = pcall(mw.wikibase.getEntity)
end
if not wikidataSuccess then
wikidataEntity = nil
end
-- Build the table or <div> and get state
local container, state = buildInfobox(args, wikidataEntity)
local html = tostring(container)
-- Fix <templatestyles> or categories
html = fixChildBoxes(html)
-- Load any required CSS
local css = ""
-- Load default css
if not args["style"] or args["style"]:lower() == "tessira" then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = DEFAULT_CSS_PATH }
}
end
-- Load styles for plainlist and hlist
for _, list in pairs(lists) do
if list.found then
css = css .. mw.getCurrentFrame():extensionTag{
name = 'templatestyles',
args = { src = list.styles }
}
end
end
-- Build the final output
local output = ""
if state.has_rows then
output = css .. html
end
-- Append categories/references from "empty" rows
if #state.empty_row_extras > 0 then
output = output .. "\n<!-- References/categories from empty rows: -->\n"
for _, extra in ipairs(state.empty_row_extras) do
output = output .. extra .. "\n"
end
end
-- Add debug info if requested
if args["debug"] == "yes" then
local debug_info = {}
for k, v in pairs(args) do
if not isRecognizedParam(k) then
table.insert(debug_info, k)
end
end
if #debug_info > 0 then
output = output .. "\n<!-- Unrecognised parameters: " .. table.concat(debug_info, ", ") .. " -->\n"
end
end
return output
end
return p
kx842irfuw1n3bgh7san0m2fazel381
Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPajisi
2
66267
770429
766956
2025-07-04T11:14:32Z
GianAntonucci
46609
770429
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è spicìfica pî pajisi e nazzioni. Integra automaticamenti dati di Wikidata e permetti pirsunalizzazzioni lucali.
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPajisi
| Nomu =
| Wikidata =
| Bannera =
| Stemma =
| Capitali =
| ...
}}
</pre>
== Paràmitri ==
=== Basi ===
* '''Nomu''' - Nomu dû pajisi (si vacanti, piglia di Wikidata)
* '''Wikidata''' - ID Wikidata (es: Q38 pi l'Italia)
* '''NomuUfficiali''' - Nomu ufficiali cumpletu
* '''NomuNativu''' - Nomu ntâ lingua lucali
=== Sìmbuli nazziunali ===
* '''Bannera''' - Bannera nazziunali
* '''Stemma''' - Stemma ufficiali
* '''Motta''' - Motta nazziunali
* '''Nnu''' - Nnu nazziunali
=== Giugrafìa ===
* '''Capitali''' - Capitali dû pajisi
* '''CittàPrincipali''' - Àutri cità mpurtanti
* '''Aria''' - Supirfìci in km²
* '''Pusizzioni''' - Coordinati giugràfichi
* '''FusuUrariu''' - Fusi urari
* '''Cunfini''' - Pajisi cunfinanti
=== Pupulazzioni ===
* '''Genti''' - Nùmmaru d'abitanti
* '''DataCinsimentu''' - Data dû cinsimentu
* '''Dinsità''' - Abitanti pi km²
* '''Dintilichiu''' - Nomu dî cittadini
* '''LinguiUfficiali''' - Lingui ufficiali
* '''GruppiEtnici''' - Cumpusizzioni ètnica
=== Guvernu ===
* '''FormaGuviernu''' - Tipu di guvernu
* '''CapuStatu''' - Capu dû statu
* '''CapuStatu_Tìtulu''' - Tìtulu ufficiali
* '''CapuGuviernu''' - Capu dû guvernu
* '''CapuGuviernu_Tìtulu''' - Tìtulu ufficiali
* '''Ligislatura''' - Nomu dû parlamentu
=== Storia ===
* '''Funnazzioni''' - Data di funnazzioni
* '''Nnipinnenza''' - Data d'innipinnenza
* '''NnipinnenzaDi''' - Nnipinnenti di quali pajisi
=== Economia ===
* '''Munita''' - Munita ufficiali
* '''PIL''' - Produttu internu lordu
* '''PILPirsuna''' - PIL pi càpiti
* '''ISU''' - Ìnnici di sviluppu umanu
=== Còdici ===
* '''ISO3166''' - Còdici ISO
* '''DuminuInternet''' - Duminiu internet
* '''PrifissuTilifonicu''' - Prifissu internazziunali
== Esempiu ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q38
| Tìtulu = Italia
| Suttatìtulu = Repubblica Italiana
| MmàgginiManuManca = Flag of Italy.svg
| DidascalìaMmàgginiManuManca = Bannera
| MmàgginiManuDritta = Italy-Emblem.svg
| DidascalìaMmàgginiManuDritta = Stemma
| Supra = Repubblica parlamentare
| Vuci1 = Capitali
| Valuri1 = [[Roma]]
| Gruppu1 = Geografia
| Aria = 301,340 km²
| VuciAria = Supirfìci
| GruppuAria = Geografia
| Genti = 58,853,482
| VuciGenti = Pupulazzioni (2023)
| GruppuGenti = Demographics
| Vuci2 = Lingui ufficiali
| Valuri2 = Talianu
| Gruppu2 = Demographics
| Capu = Sergio Mattarella
| VuciCapu = Prisidenti
| GruppuCapu = Government
| Vuci3 = Primu Ministru
| Valuri3 = Giorgia Meloni
| Gruppu3 = Government
| Vuci4 = Funnazzioni
| Valuri4 = 17 marzu 1861
| Gruppu4 = History
| Vuci5 = Munita
| Valuri5 = Euro (€)
| Gruppu5 = Economia
| ISO = IT
| VuciISO = Còdici ISO
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
<!-- Nome e titoli -->
| Tìtulu = {{#if: {{{Nomu|}}} | {{{Nomu}}} | {{#if: {{{Wikidata|}}} | {{WikidataLabel|from={{{Wikidata}}}}} | {{PAGENAME}} }} }}
| Suttatìtulu = {{#if: {{{NomuUfficiali|}}} | {{{NomuUfficiali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1448|from={{{Wikidata}}}}} }} }}
| Supra = {{#if: {{{NomuNativu|}}} | {{{NomuNativu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1705|from={{{Wikidata}}}}} }} }}
<!-- Bandiera e stemma -->
| MmàgginiManuManca = {{#if: {{{Bannera|}}} | {{{Bannera}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P41|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiManuManca = {{#if: {{{Bannera|}}}|Bannera|{{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P41|from={{{Wikidata}}}}} | Bannera }} }} }}
| MmàgginiManuDritta = {{#if: {{{Stemma|}}} | {{{Stemma}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P94|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiManuDritta = {{#if: {{{Stemma|}}}|Stemma|{{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P94|from={{{Wikidata}}}}} | Stemma }} }} }}
<!-- Motto e inno -->
| Vuci1 = Motta
| Valuri1 = {{#if: {{{Motta|}}} | {{{Motta}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1546|from={{{Wikidata}}}}} }} }}
| Prupità1 = P1546
| Vuci2 = Nnu nazziunali
| Valuri2 = {{#if: {{{Nnu|}}} | {{{Nnu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P85|from={{{Wikidata}}}}} }} }}
| Prupità2 = P85
<!-- Geografia - sezione automatica -->
| Vuci3 = Capitali
| Valuri3 = {{#if: {{{Capitali|}}} | {{{Capitali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P36|from={{{Wikidata}}}}} }} }}
| Gruppu3 = Geography
| Prupità3 = P36
| Vuci4 = Cità cchiù granni
| Valuri4 = {{#if: {{{CittàPrincipali|}}} | {{{CittàPrincipali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1082|qualifier=P31=Q515|from={{{Wikidata}}}|max=5}} }} }}
| Gruppu4 = Geography
| Classi4 = {{#if: {{{CittàPrincipali|}}} | plainlist }}
| Aria = {{#if: {{{Aria|}}} | {{{Aria}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P2046|from={{{Wikidata}}}}} }} }}
| VuciAria = Supirfìci
| GruppuAria = Geography
| Pusizzioni = {{#if: {{{Pusizzioni|}}} | {{{Pusizzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P625|from={{{Wikidata}}}}} }} }}
| VuciPusizzioni = Coordinati
| GruppuPusizzioni = Geography
| FusuUrariu = {{#if: {{{FusuUrariu|}}} | {{{FusuUrariu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P421|from={{{Wikidata}}}}} }} }}
| VuciFusuUrariu = Fusi urari
| GruppuFusuUrariu = Geography
| Vuci5 = Cunfini
| Valuri5 = {{#if: {{{Cunfini|}}} | {{{Cunfini}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P47|from={{{Wikidata}}}}} }} }}
| Gruppu5 = Geography
| Prupità5 = P47
| Classi5 = {{#if: {{{Cunfini|}}} | |plainlist}}
| Vuci6 = Puntu cchiù àutu
| Valuri6 = {{#if: {{{PuntuAutu|}}} | {{{PuntuAutu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P610|from={{{Wikidata}}}}} }} }}
| Gruppu6 = Geography
| Prupità6 = P610
| Vuci7 = Puntu cchiù vasciu
| Valuri7 = {{#if: {{{PuntuVasciu|}}} | {{{PuntuVasciu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1589|from={{{Wikidata}}}}} }} }}
| Gruppu7 = Geography
| Prupità7 = P1589
<!-- Demografia - sezione automatica -->
| Genti = {{#if: {{{Genti|}}} | {{{Genti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1082|from={{{Wikidata}}}}} }} }}
| VuciGenti = Pupulazzioni {{#if: {{{DataCinsimentu|}}} | ({{{DataCinsimentu}}}) }}
| GruppuGenti = Demographics
| Vuci8 = Dinsità
| Valuri8 = {{{Dinsità|}}}
| Gruppu8 = Demographics
| Vuci9 = Dintilichiu
| Valuri9 = {{#if: {{{Dintilichiu|}}} | {{{Dintilichiu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1549|from={{{Wikidata}}}}} }} }}
| Gruppu9 = Demographics
| Prupità9 = P1549
| Vuci10 = {{#if: {{{LinguiUfficiali|}}} | Lingui ufficiali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P37|from={{{Wikidata}}}}} | Lingui ufficiali }} }} }}
| Valuri10 = {{#if: {{{LinguiUfficiali|}}} | {{{LinguiUfficiali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P37|from={{{Wikidata}}}}} }} }}
| Gruppu10 = Demographics
| Prupità10 = P37
| Classi10 = {{#if: {{{LinguiUfficiali|}}} | |plainlist}}
| Vuci11 = Gruppi ètnici
| Valuri11 = {{{GruppiEtnici|}}}
| Gruppu11 = Demographics
| Vuci12 = Riligiuni
| Valuri12 = {{#if: {{{Riligiuni|}}} | {{{Riligiuni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P140|from={{{Wikidata}}}}} }} }}
| Gruppu12 = Demographics
| Prupità12 = P140
<!-- Governo - sezione automatica -->
| Vuci13 = Forma di guvernu
| Valuri13 = {{#if: {{{FormaGuviernu|}}} | {{{FormaGuviernu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P122|from={{{Wikidata}}}}} }} }}
| Gruppu13 = Government
| Prupità13 = P122
| Capu = {{#if: {{{CapuStatu|}}} | {{{CapuStatu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P35|from={{{Wikidata}}}}} }} }}
| VuciCapu = {{#if: {{{CapuStatu_Tìtulu|}}} | {{{CapuStatu_Tìtulu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1906|from={{{Wikidata}}}}} | Capu dû Statu }} }}
| GruppuCapu = Government
| Vuci14 = {{#if: {{{CapuGuviernu_Tìtulu|}}} | {{{CapuGuviernu_Tìtulu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1313|from={{{Wikidata}}}}} | Capu dû Guvernu }} }}
| Valuri14 = {{#if: {{{CapuGuviernu|}}} | {{{CapuGuviernu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P6|from={{{Wikidata}}}}} }} }}
| Gruppu14 = Government
| Prupità14 = P6
| Vuci15 = Ligislatura
| Valuri15 = {{#if: {{{Ligislatura|}}} | {{{Ligislatura}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P194|from={{{Wikidata}}}}} }} }}
| Gruppu15 = Government
| Prupità15 = P194
<!-- Storia - sezione automatica -->
| Vuci16 = Funnazzioni
| Valuri16 = {{#if: {{{Funnazzioni|}}} | {{{Funnazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P571|from={{{Wikidata}}}}} }} }}
| Gruppu16 = History
| Prupità16 = P571
| Vuci17 = Nnipinnenza
| Valuri17 = {{#if: {{{Nnipinnenza|}}} | {{{Nnipinnenza}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P3103|from={{{Wikidata}}}}} }} }}
| Gruppu17 = History
| Prupità17 = P3103
| Vuci18 = Nnipinnenti di
| Valuri18 = {{#if: {{{NnipinnenzaDi|}}} | {{{NnipinnenzaDi}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P3103|qualifier=P17|from={{{Wikidata}}}}} }} }}
| Gruppu18 = History
<!-- Economia - sezione automatica -->
| Vuci19 = Munita
| Valuri19 = {{#if: {{{Munita|}}} | {{{Munita}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P38|from={{{Wikidata}}}}} }} }}
| Gruppu19 = Economia
| Prupità19 = P38
| Vuci20 = PIL (nominali)
| Valuri20 = {{{PIL|}}}
| Gruppu20 = Economia
| Vuci21 = PIL pi càpiti
| Valuri21 = {{{PILPirsuna|}}}
| Gruppu21 = Economia
| Vuci22 = ISU
| Valuri22 = {{#if: {{{ISU|}}} | {{{ISU}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1081|from={{{Wikidata}}}}} }} }}
| Gruppu22 = Economia
| Prupità22 = P1081
<!-- Codici internazionali -->
| ISO = {{#if: {{{ISO3166|}}} | {{{ISO3166}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P297|from={{{Wikidata}}}}} }} }}
| VuciISO = Còdici ISO 3166
| GruppuISO = Còdici
| Vuci23 = Duminiu internet
| Valuri23 = {{#if: {{{DuminuInternet|}}} | {{{DuminuInternet}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P78|from={{{Wikidata}}}}} }} }}
| Gruppu23 = Còdici
| Prupità23 = P78
| Vuci24 = Prifissu tilifonicu
| Valuri24 = {{#if: {{{PrifissuTilifonicu|}}} | {{{PrifissuTilifonicu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P474|from={{{Wikidata}}}}} }} }}
| Gruppu24 = Còdici
| Prupità24 = P474
<!-- Collegamenti e mappa -->
| Vuci30 = Situ ufficiali
| Valuri30 = {{#if: {{{SituWeb|}}} | [{{{SituWeb}}} {{{SituWeb}}}] | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P856|from={{{Wikidata}}}}} }} }}
| Gruppu30 = Lijami
| Prupità30 = P856
<!-- Footer -->
| PediPàggina = {{#if: {{{PediPàggina|}}} | {{{PediPàggina}}} | {{#if: {{{DataAggiurnamentu|}}} | Dati aggiurnati ô {{{DataAggiurnamentu}}} }} }}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|}}}
| LijamiWikidata = {{#if: {{{Wikidata|}}} | yes }}
<!-- Mappa -->
| MmàgginiSutta = {{#if: {{{Mappa|}}} | {{{Mappa}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P242|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSutta = {{#if: {{{DidascalìaMappa|}}} | {{{DidascalìaMappa}}} | {{#if: {{{Mappa|}}}|Pusizzioni|{{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P242|from={{{Wikidata}}}}} | Pusizzioni }} }} }} }}
<!-- Parametri custom -->
{{{1|}}}
{{{2|}}}
{{{3|}}}
}}
d92jo9sl4w8j0anooa8hpmbipuc4vai
Utenti:GianAntonucci/Bozza/Tèssira dû Capu
2
66268
770398
766846
2025-07-03T21:52:59Z
GianAntonucci
46609
770398
wikitext
text/x-wiki
{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCità
| Wikidata = Q51176
| Nomu = U Capu
| Viduta = Capo d'Orlando - view of the harbour from Scafa.JPG
| Didascalìa = Viduta dû portu dû Capu a pàrtiri di Scafa
| Sìnnacu = Franco Ingrillì
| SìnnacuGèniri = m
}}
tbu9eq25jeu46txibt4tg4y05j9zl3s
Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira
2
66271
770406
766953
2025-07-03T22:31:03Z
GianAntonucci
46609
770406
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Generic Data
| subheader1 = Facts
| Vuci1 = Fact One
| Valuri1 = Value One
| Vuci2 = Fact Two
| Valuri2 = 123
| subheader2 = More Info
| Vuci3 = Something
| Valuri3 = "ABC"
| above = "Generic Table Example"
| below = "End of Table"
}}
=== Test with hlist and plainlist mixed ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Lists Example
| Vuci1 = Some horizontal list
| Valuri1 =
* A
* B
* C
| Classi1 = hlist
| Vuci2 = Some vertical list
| Valuri2 =
* Apple
* Banana
* Cherry
| Classi2 = plainlist
}}
=== No Data at All ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
=== A Row That Only Has References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=<ref>Some reference about population</ref>
}}
=== A Partial Autoheader Override ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Mr. Example
| GruppuCapu=Special Government Section
| Pusizzioni=34°N 12°E
}}
=== Child Infobox with Minimal Fields ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Nested Box
| subheader1=Inside Another
| Vuci1=Description
| Valuri1=This box is nested
}}
=== Large Number of Subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Multi-Subheaders Example
| subheader1=First Section
| Vuci1=Item One
| Valuri1=Value One
| subheader2=Second Section
| Vuci2=Item Two
| Valuri2=Value Two
| subheader3=Third Section
| subheader4=Even More
| subheader5=And More
| Vuci3=Last Row
| Valuri3=Demo
}}
=== Using Categories in an "Empty" Numbered Row ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Some Data
| Valuri1=
[[Category:Infobox Testing]]
}}
=== An Unknown Wikidata Property ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| UnknownField=SomeValue
| GruppuUnknownField=Weird Data
}}
=== A Row That Matches Multiple Sections ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=100,000
| Property1=P1082
}}
=== Fully Empty Table Except for "Above" or "Below" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| above=Some Title
| below=Some Footer
}}
=== A Row with Big Mixed Content ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Row Example
| Vuci1=Complex Data
| Valuri1=
Here is some text.
<ref>A reference about this text</ref>
[[Category:Testing Category in a Row]]
* A bullet
* Another bullet
}}
== Novi Esempi Cumpleti ==
=== Complete City Example with All Features ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| above = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
=== Testing All Image Positions ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Image Test
| MmàgginiSupra = Example1.jpg
| DidascalìaMmàgginiSupra = Top image caption
| MmàgginiManuManca = Example2.jpg
| DidascalìaMmàgginiManuManca = Left caption
| MmàgginiManuDritta = Example3.jpg
| DidascalìaMmàgginiManuDritta = Right caption
| MmàgginiSutta = Example4.jpg
| DidascalìaMmàgginiSutta = Bottom image caption
}}
=== Self-Closing References Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Reference Types
| Vuci1 = Standard ref
| Valuri1 = Some text<ref>Standard reference</ref>
| Vuci2 = Self-closing ref
| Valuri2 = More text<ref name="test" />
| Vuci3 = Only self-closing
| Valuri3 = <ref name="another" />
}}
=== Debug Mode Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Debug Example
| Vuci1 = Valid parameter
| Valuri1 = Some value
| InvalidParam = This should appear in debug
| AnotherBadParam = Also in debug
}}
=== Numbered Lists Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Lists Example
| Vuci1 = Numbered list
| Valuri1 =
# First item
# Second item
# Third item
| Vuci2 = Mixed list
| Valuri2 =
# Numbered one
#* Bullet sub-item
#* Another sub-item
# Numbered two
}}
=== Testing Autoheader Geographic Grouping ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Geographic Data Test
| Aria = 250 km²
| Pusizzioni = 40°N 15°E
| Pruvincia = Test Province
| FusuUrariu = UTC+1
| Vuci10 = Elevation
| Valuri10 = 150 m
| Property10 = P2046
}}
=== Complex Row Without Label ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = No Label Test
| Valuri1 = This row has no label, spans two columns
| Vuci2 = Normal row
| Valuri2 = With label
| Valuri3 = Another row without label
| Classi3 = plainlist
}}
=== Testing Custom CSS and Inline Styles ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid blue;
| Tìtulu = Styled Infobox
| Vuci1 = Custom styling
| Valuri1 = This infobox has custom CSS
}}
=== Multiple Categories and References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = References Test
| Vuci1 = Multiple refs
| Valuri1 = Text with ref<ref>First ref</ref> and another<ref>Second ref</ref>
| Vuci2 = Just categories
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Mixed empty
| Valuri3 = <ref>Ref one</ref>[[Category:Empty Test]]<ref name="test" />
}}
=== Testing Case Variations in Categories ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Lowercase category
| Valuri1 = [[category:lowercase test]]
| Vuci2 = Mixed case
| Valuri2 = [[CaTeGoRy:Mixed Case Test]]
| Vuci3 = With spaces
| Valuri3 = [[ Category : Spaced Test ]]
}}
=== High Numbered Parameters Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = High Numbers
| Vuci50 = Row 50
| Valuri50 = This is row number 50
| Vuci100 = Row 100
| Valuri100 = This is row number 100
| Gruppu100 = Very High Numbers
}}
=== Testing Manual Groups with Numbered Rows ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Manual Grouping
| Gruppu1 = First Group
| Vuci1 = Item A
| Valuri1 = Value A
| Vuci2 = Item B
| Valuri2 = Value B
| Gruppu3 = Second Group
| Vuci3 = Item C
| Valuri3 = Value C
| Gruppu4 =
| Vuci4 = Item D
| Valuri4 = Value D (no group header because Gruppu4 is empty)
}}
=== Testing Wikidata Parameter ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Testing Wikidata Integration
| Vuci1 = Manual data
| Valuri1 = This is manual
}}
=== Child Infobox with Full Features ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Parent Infobox
| Vuci1 = Before child
| Valuri1 = Parent data
| Vuci2 = Child box
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Child Title
| subheader1 = Child Section
| Vuci1 = Child data
| Valuri1 = Nested value
| below = Child footer
}}
| Vuci3 = After child
| Valuri3 = More parent data
}}
=== Empty Strings vs Missing Parameters ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Empty String Test
| Vuci1 = Empty string value
| Valuri1 =
| Vuci2 = Spaces only
| Valuri2 =
| Vuci3 = Has content
| Valuri3 = Actual content
}}
=== Testing Predefined Field Overrides ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Override Test
| Genti = 50,000
| VuciGenti = Custom Population Label
| Capu = John Doe
| VuciCapu = Chief Executive
| GruppuCapu = Leadership
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
n1zh4rwbrde7car2yn9a7mrl9y4x3vq
770407
770406
2025-07-03T22:33:44Z
GianAntonucci
46609
770407
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Generic Data
| subheader1 = Facts
| Vuci1 = Fact One
| Valuri1 = Value One
| Vuci2 = Fact Two
| Valuri2 = 123
| subheader2 = More Info
| Vuci3 = Something
| Valuri3 = "ABC"
| above = "Generic Table Example"
| below = "End of Table"
}}
=== Test with hlist and plainlist mixed ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Lists Example
| Vuci1 = Some horizontal list
| Valuri1 =
* A
* B
* C
| Classi1 = hlist
| Vuci2 = Some vertical list
| Valuri2 =
* Apple
* Banana
* Cherry
| Classi2 = plainlist
}}
=== No Data at All ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
=== A Row That Only Has References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=<ref>Some reference about population</ref>
}}
=== A Partial Autoheader Override ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Mr. Example
| GruppuCapu=Special Government Section
| Pusizzioni=34°N 12°E
}}
=== Child Infobox with Minimal Fields ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Nested Box
| subheader1=Inside Another
| Vuci1=Description
| Valuri1=This box is nested
}}
=== Large Number of Subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Multi-Subheaders Example
| subheader1=First Section
| Vuci1=Item One
| Valuri1=Value One
| subheader2=Second Section
| Vuci2=Item Two
| Valuri2=Value Two
| subheader3=Third Section
| subheader4=Even More
| subheader5=And More
| Vuci3=Last Row
| Valuri3=Demo
}}
=== Using Categories in an "Empty" Numbered Row ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Some Data
| Valuri1=
[[Category:Infobox Testing]]
}}
=== An Unknown Wikidata Property ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| UnknownField=SomeValue
| GruppuUnknownField=Weird Data
}}
=== A Row That Matches Multiple Sections ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=100,000
| Property1=P1082
}}
=== Fully Empty Table Except for "Above" or "Below" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| above=Some Title
| below=Some Footer
}}
=== A Row with Big Mixed Content ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Row Example
| Vuci1=Complex Data
| Valuri1=
Here is some text.
<ref>A reference about this text</ref>
[[Category:Testing Category in a Row]]
* A bullet
* Another bullet
}}
== Novi Esempi Cumpleti ==
=== Complete City Example with All Features ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| above = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
=== Testing All Image Positions ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Image Test
| MmàgginiSupra = Example1.jpg
| DidascalìaMmàgginiSupra = Top image caption
| MmàgginiManuManca = Example2.jpg
| DidascalìaMmàgginiManuManca = Left caption
| MmàgginiManuDritta = Example3.jpg
| DidascalìaMmàgginiManuDritta = Right caption
| MmàgginiSutta = Example4.jpg
| DidascalìaMmàgginiSutta = Bottom image caption
}}
=== Self-Closing References Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Reference Types
| Vuci1 = Standard ref
| Valuri1 = Some text<ref>Standard reference</ref>
| Vuci2 = Named ref first use
| Valuri2 = More text<ref name="test">This is the test reference</ref>
| Vuci3 = Reusing named ref
| Valuri3 = Even more text<ref name="test" />
}}
=== Debug Mode Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Debug Example
| Vuci1 = Valid parameter
| Valuri1 = Some value
| InvalidParam = This should appear in debug
| AnotherBadParam = Also in debug
}}
=== Numbered Lists Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Lists Example
| Vuci1 = Numbered list
| Valuri1 =
# First item
# Second item
# Third item
| Vuci2 = Mixed list
| Valuri2 =
# Numbered one
#* Bullet sub-item
#* Another sub-item
# Numbered two
}}
=== Testing Autoheader Geographic Grouping ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Geographic Data Test
| Aria = 250 km²
| Pusizzioni = 40°N 15°E
| Pruvincia = Test Province
| FusuUrariu = UTC+1
| Vuci10 = Elevation
| Valuri10 = 150 m
| Property10 = P2046
}}
=== Complex Row Without Label ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = No Label Test
| Valuri1 = This row has no label, spans two columns
| Vuci2 = Normal row
| Valuri2 = With label
| Valuri3 = Another row without label
| Classi3 = plainlist
}}
=== Testing Custom CSS and Inline Styles ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid blue;
| Tìtulu = Styled Infobox
| Vuci1 = Custom styling
| Valuri1 = This infobox has custom CSS
}}
=== Multiple Categories and References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = References Test
| Vuci1 = Multiple refs
| Valuri1 = Text with ref<ref>First ref</ref> and another<ref>Second ref</ref>
| Vuci2 = Just categories
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Mixed empty
| Valuri3 = <ref name="mixedtest">Reference content</ref>[[Category:Empty Test]]<ref name="mixedtest" />
}}
=== Testing Case Variations in Categories ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Lowercase category
| Valuri1 = [[category:lowercase test]]
| Vuci2 = Mixed case
| Valuri2 = [[CaTeGoRy:Mixed Case Test]]
| Vuci3 = With spaces
| Valuri3 = [[ Category : Spaced Test ]]
}}
=== High Numbered Parameters Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = High Numbers
| Vuci50 = Row 50
| Valuri50 = This is row number 50
| Vuci100 = Row 100
| Valuri100 = This is row number 100
| Gruppu100 = Very High Numbers
}}
=== Testing Manual Groups with Numbered Rows ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Manual Grouping
| Gruppu1 = First Group
| Vuci1 = Item A
| Valuri1 = Value A
| Vuci2 = Item B
| Valuri2 = Value B
| Gruppu3 = Second Group
| Vuci3 = Item C
| Valuri3 = Value C
| Gruppu4 =
| Vuci4 = Item D
| Valuri4 = Value D (no group header because Gruppu4 is empty)
}}
=== Testing Wikidata Parameter ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Testing Wikidata Integration
| Vuci1 = Manual data
| Valuri1 = This is manual
}}
=== Child Infobox with Full Features ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Parent Infobox
| Vuci1 = Before child
| Valuri1 = Parent data
| Vuci2 = Child box
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Child Title
| subheader1 = Child Section
| Vuci1 = Child data
| Valuri1 = Nested value
| below = Child footer
}}
| Vuci3 = After child
| Valuri3 = More parent data
}}
=== Empty Strings vs Missing Parameters ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Empty String Test
| Vuci1 = Empty string value
| Valuri1 =
| Vuci2 = Spaces only
| Valuri2 =
| Vuci3 = Has content
| Valuri3 = Actual content
}}
=== Testing Predefined Field Overrides ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Override Test
| Genti = 50,000
| VuciGenti = Custom Population Label
| Capu = John Doe
| VuciCapu = Chief Executive
| GruppuCapu = Leadership
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
iqfxocw4kf8y8tpraf8p7y61vwwwzpf
770408
770407
2025-07-03T22:38:24Z
GianAntonucci
46609
770408
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Generic Data
| subheader1 = Facts
| Vuci1 = Fact One
| Valuri1 = Value One
| Vuci2 = Fact Two
| Valuri2 = 123
| subheader2 = More Info
| Vuci3 = Something
| Valuri3 = "ABC"
| above = "Generic Table Example"
| below = "End of Table"
}}
=== Test with hlist and plainlist mixed ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Lists Example
| Vuci1 = Some horizontal list
| Valuri1 =
* A
* B
* C
| Classi1 = hlist
| Vuci2 = Some vertical list
| Valuri2 =
* Apple
* Banana
* Cherry
| Classi2 = plainlist
}}
=== No Data at All ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
=== A Row That Only Has References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=<ref>Some reference about population</ref>
}}
=== A Partial Autoheader Override ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Mr. Example
| GruppuCapu=Special Government Section
| Pusizzioni=34°N 12°E
}}
=== Child Infobox with Minimal Fields ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Nested Box
| subheader1=Inside Another
| Vuci1=Description
| Valuri1=This box is nested
}}
=== Large Number of Subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Multi-Subheaders Example
| subheader1=First Section
| Vuci1=Item One
| Valuri1=Value One
| subheader2=Second Section
| Vuci2=Item Two
| Valuri2=Value Two
| subheader3=Third Section
| subheader4=Even More
| subheader5=And More
| Vuci3=Last Row
| Valuri3=Demo
}}
=== Using Categories in an "Empty" Numbered Row ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Some Data
| Valuri1=
[[Category:Infobox Testing]]
}}
=== An Unknown Wikidata Property ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| UnknownField=SomeValue
| GruppuUnknownField=Weird Data
}}
=== A Row That Matches Multiple Sections ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=100,000
| Property1=P1082
}}
=== Fully Empty Table Except for "Above" or "Below" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| above=Some Title
| below=Some Footer
}}
=== A Row with Big Mixed Content ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Row Example
| Vuci1=Complex Data
| Valuri1=
Here is some text.
<ref>A reference about this text</ref>
[[Category:Testing Category in a Row]]
* A bullet
* Another bullet
}}
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| above = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| below = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| above = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| below = Vulcanu cchiù àutu d'Europa
}}
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| subheader1 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| subheader2 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| subheader3 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| below = Capulavuru dû cìnima talianu
}}
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| subheader1 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| below = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| below = Patrimòniu linguìsticu di Sicilia
}}
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| below = Forza Catania!
}}
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| above = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
=== Testing All Image Positions ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Image Test
| MmàgginiSupra = Example1.jpg
| DidascalìaMmàgginiSupra = Top image caption
| MmàgginiManuManca = Example2.jpg
| DidascalìaMmàgginiManuManca = Left caption
| MmàgginiManuDritta = Example3.jpg
| DidascalìaMmàgginiManuDritta = Right caption
| MmàgginiSutta = Example4.jpg
| DidascalìaMmàgginiSutta = Bottom image caption
}}
=== Self-Closing References Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Reference Types
| Vuci1 = Standard ref
| Valuri1 = Some text<ref>Standard reference</ref>
| Vuci2 = Named ref first use
| Valuri2 = More text<ref name="test">This is the test reference</ref>
| Vuci3 = Reusing named ref
| Valuri3 = Even more text<ref name="test" />
}}
=== Debug Mode Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Debug Example
| Vuci1 = Valid parameter
| Valuri1 = Some value
| InvalidParam = This should appear in debug
| AnotherBadParam = Also in debug
}}
=== Numbered Lists Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Lists Example
| Vuci1 = Numbered list
| Valuri1 =
# First item
# Second item
# Third item
| Vuci2 = Mixed list
| Valuri2 =
# Numbered one
#* Bullet sub-item
#* Another sub-item
# Numbered two
}}
=== Testing Autoheader Geographic Grouping ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Geographic Data Test
| Aria = 250 km²
| Pusizzioni = 40°N 15°E
| Pruvincia = Test Province
| FusuUrariu = UTC+1
| Vuci10 = Elevation
| Valuri10 = 150 m
| Property10 = P2046
}}
=== Complex Row Without Label ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = No Label Test
| Valuri1 = This row has no label, spans two columns
| Vuci2 = Normal row
| Valuri2 = With label
| Valuri3 = Another row without label
| Classi3 = plainlist
}}
=== Testing Custom CSS and Inline Styles ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid blue;
| Tìtulu = Styled Infobox
| Vuci1 = Custom styling
| Valuri1 = This infobox has custom CSS
}}
=== Multiple Categories and References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = References Test
| Vuci1 = Multiple refs
| Valuri1 = Text with ref<ref>First ref</ref> and another<ref>Second ref</ref>
| Vuci2 = Just categories
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Mixed empty
| Valuri3 = <ref name="mixedtest">Reference content</ref>[[Category:Empty Test]]<ref name="mixedtest" />
}}
=== Testing Case Variations in Categories ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Lowercase category
| Valuri1 = [[category:lowercase test]]
| Vuci2 = Mixed case
| Valuri2 = [[CaTeGoRy:Mixed Case Test]]
| Vuci3 = With spaces
| Valuri3 = [[ Category : Spaced Test ]]
}}
=== High Numbered Parameters Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = High Numbers
| Vuci50 = Row 50
| Valuri50 = This is row number 50
| Vuci100 = Row 100
| Valuri100 = This is row number 100
| Gruppu100 = Very High Numbers
}}
=== Testing Manual Groups with Numbered Rows ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Manual Grouping
| Gruppu1 = First Group
| Vuci1 = Item A
| Valuri1 = Value A
| Vuci2 = Item B
| Valuri2 = Value B
| Gruppu3 = Second Group
| Vuci3 = Item C
| Valuri3 = Value C
| Gruppu4 =
| Vuci4 = Item D
| Valuri4 = Value D (no group header because Gruppu4 is empty)
}}
=== Testing Wikidata Parameter ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Testing Wikidata Integration
| Vuci1 = Manual data
| Valuri1 = This is manual
}}
=== Child Infobox with Full Features ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Parent Infobox
| Vuci1 = Before child
| Valuri1 = Parent data
| Vuci2 = Child box
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Child Title
| subheader1 = Child Section
| Vuci1 = Child data
| Valuri1 = Nested value
| below = Child footer
}}
| Vuci3 = After child
| Valuri3 = More parent data
}}
=== Empty Strings vs Missing Parameters ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Empty String Test
| Vuci1 = Empty string value
| Valuri1 =
| Vuci2 = Spaces only
| Valuri2 =
| Vuci3 = Has content
| Valuri3 = Actual content
}}
=== Testing Predefined Field Overrides ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Override Test
| Genti = 50,000
| VuciGenti = Custom Population Label
| Capu = John Doe
| VuciCapu = Chief Executive
| GruppuCapu = Leadership
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
7tovzn03gf92um0ceqr54zoe8ds5d4k
770409
770408
2025-07-03T22:43:37Z
GianAntonucci
46609
770409
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Generic Data
| subheader1 = Facts
| Vuci1 = Fact One
| Valuri1 = Value One
| Vuci2 = Fact Two
| Valuri2 = 123
| subheader2 = More Info
| Vuci3 = Something
| Valuri3 = "ABC"
| above = "Generic Table Example"
| below = "End of Table"
}}
=== Test with hlist and plainlist mixed ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Lists Example
| Vuci1 = Some horizontal list
| Valuri1 =
* A
* B
* C
| Classi1 = hlist
| Vuci2 = Some vertical list
| Valuri2 =
* Apple
* Banana
* Cherry
| Classi2 = plainlist
}}
=== No Data at All ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
=== A Row That Only Has References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=<ref>Some reference about population</ref>
}}
=== A Partial Autoheader Override ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Mr. Example
| GruppuCapu=Special Government Section
| Pusizzioni=34°N 12°E
}}
=== Child Infobox with Minimal Fields ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Nested Box
| subheader1=Inside Another
| Vuci1=Description
| Valuri1=This box is nested
}}
=== Large Number of Subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Multi-Subheaders Example
| subheader1=First Section
| Vuci1=Item One
| Valuri1=Value One
| subheader2=Second Section
| Vuci2=Item Two
| Valuri2=Value Two
| subheader3=Third Section
| subheader4=Even More
| subheader5=And More
| Vuci3=Last Row
| Valuri3=Demo
}}
=== Using Categories in an "Empty" Numbered Row ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Some Data
| Valuri1=
[[Category:Infobox Testing]]
}}
=== An Unknown Wikidata Property ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| UnknownField=SomeValue
| GruppuUnknownField=Weird Data
}}
=== A Row That Matches Multiple Sections ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Population
| Valuri1=100,000
| Property1=P1082
}}
=== Fully Empty Table Except for "Above" or "Below" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| above=Some Title
| below=Some Footer
}}
=== A Row with Big Mixed Content ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=Mixed Row Example
| Vuci1=Complex Data
| Valuri1=
Here is some text.
<ref>A reference about this text</ref>
[[Category:Testing Category in a Row]]
* A bullet
* Another bullet
}}
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| above = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| below = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| above = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| below = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| subheader1 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| subheader2 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| subheader3 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| below = Capulavuru dû cìnima talianu
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| subheader1 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| below = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| below = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| below = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| above = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Testing All Image Positions ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Image Test
| MmàgginiSupra = Example1.jpg
| DidascalìaMmàgginiSupra = Top image caption
| MmàgginiManuManca = Example2.jpg
| DidascalìaMmàgginiManuManca = Left caption
| MmàgginiManuDritta = Example3.jpg
| DidascalìaMmàgginiManuDritta = Right caption
| MmàgginiSutta = Example4.jpg
| DidascalìaMmàgginiSutta = Bottom image caption
}}
=== Self-Closing References Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Reference Types
| Vuci1 = Standard ref
| Valuri1 = Some text<ref>Standard reference</ref>
| Vuci2 = Named ref first use
| Valuri2 = More text<ref name="test">This is the test reference</ref>
| Vuci3 = Reusing named ref
| Valuri3 = Even more text<ref name="test" />
}}
=== Debug Mode Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Debug Example
| Vuci1 = Valid parameter
| Valuri1 = Some value
| InvalidParam = This should appear in debug
| AnotherBadParam = Also in debug
}}
=== Numbered Lists Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Lists Example
| Vuci1 = Numbered list
| Valuri1 =
# First item
# Second item
# Third item
| Vuci2 = Mixed list
| Valuri2 =
# Numbered one
#* Bullet sub-item
#* Another sub-item
# Numbered two
}}
=== Testing Autoheader Geographic Grouping ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Geographic Data Test
| Aria = 250 km²
| Pusizzioni = 40°N 15°E
| Pruvincia = Test Province
| FusuUrariu = UTC+1
| Vuci10 = Elevation
| Valuri10 = 150 m
| Property10 = P2046
}}
=== Complex Row Without Label ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = No Label Test
| Valuri1 = This row has no label, spans two columns
| Vuci2 = Normal row
| Valuri2 = With label
| Valuri3 = Another row without label
| Classi3 = plainlist
}}
=== Testing Custom CSS and Inline Styles ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid blue;
| Tìtulu = Styled Infobox
| Vuci1 = Custom styling
| Valuri1 = This infobox has custom CSS
}}
=== Multiple Categories and References ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = References Test
| Vuci1 = Multiple refs
| Valuri1 = Text with ref<ref>First ref</ref> and another<ref>Second ref</ref>
| Vuci2 = Just categories
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Mixed empty
| Valuri3 = <ref name="mixedtest">Reference content</ref>[[Category:Empty Test]]<ref name="mixedtest" />
}}
=== Testing Case Variations in Categories ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Lowercase category
| Valuri1 = [[category:lowercase test]]
| Vuci2 = Mixed case
| Valuri2 = [[CaTeGoRy:Mixed Case Test]]
| Vuci3 = With spaces
| Valuri3 = [[ Category : Spaced Test ]]
}}
=== High Numbered Parameters Test ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = High Numbers
| Vuci50 = Row 50
| Valuri50 = This is row number 50
| Vuci100 = Row 100
| Valuri100 = This is row number 100
| Gruppu100 = Very High Numbers
}}
=== Testing Manual Groups with Numbered Rows ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Manual Grouping
| Gruppu1 = First Group
| Vuci1 = Item A
| Valuri1 = Value A
| Vuci2 = Item B
| Valuri2 = Value B
| Gruppu3 = Second Group
| Vuci3 = Item C
| Valuri3 = Value C
| Gruppu4 =
| Vuci4 = Item D
| Valuri4 = Value D (no group header because Gruppu4 is empty)
}}
=== Testing Wikidata Parameter ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Testing Wikidata Integration
| Vuci1 = Manual data
| Valuri1 = This is manual
}}
=== Child Infobox with Full Features ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Parent Infobox
| Vuci1 = Before child
| Valuri1 = Parent data
| Vuci2 = Child box
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Child Title
| subheader1 = Child Section
| Vuci1 = Child data
| Valuri1 = Nested value
| below = Child footer
}}
| Vuci3 = After child
| Valuri3 = More parent data
}}
=== Empty Strings vs Missing Parameters ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Empty String Test
| Vuci1 = Empty string value
| Valuri1 =
| Vuci2 = Spaces only
| Valuri2 =
| Vuci3 = Has content
| Valuri3 = Actual content
}}
=== Testing Predefined Field Overrides ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Override Test
| Genti = 50,000
| VuciGenti = Custom Population Label
| Capu = John Doe
| VuciCapu = Chief Executive
| GruppuCapu = Leadership
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
snlgb1oio932t63wirgq3ahisaeiimy
770410
770409
2025-07-03T22:48:21Z
GianAntonucci
46609
770410
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Dati ginèrici
| subheader1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| subheader2 = Cchiù nfurmazzioni
| Vuci3 = Quarcosa
| Valuri3 = "ABC"
| above = "Esèmpiu di Tàvula Ginèrica"
| below = "Fini dâ Tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Cascia Nnicata
| subheader1=Dintra n'àutra
| Vuci1=Discrizzioni
| Valuri1=Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| subheader1=Prima Sizzioni
| Vuci1=Cosa Una
| Valuri1=Valuri Unu
| subheader2=Sicunna Sizzioni
| Vuci2=Cosa Dui
| Valuri2=Valuri Dui
| subheader3=Terza Sizzioni
| subheader4=Ancora Cchiù
| subheader5=E Ancora
| Vuci3=Ùrtima Riga
| Valuri3=Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Quarchi Datu
| Valuri1=
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu=QuarchiValuri
| GruppuCampuScunusciutu=Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=100,000 àbitanti
| Property1=P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "Above" o "Below" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| above=Quarchi Tìtulu
| below=Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| above = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| below = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| above = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| below = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| subheader1 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| subheader2 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| subheader3 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| below = Capulavuru dû cìnima talianu
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| subheader1 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| below = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| below = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| below = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| above = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Property10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| below = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
jfjg5cfvhdkiyh5h1g9ioa7n0p8cksu
770413
770410
2025-07-03T23:02:31Z
GianAntonucci
46609
770413
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Dati ginèrici
| subheader1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| subheader2 = Cchiù nfurmazzioni
| Vuci3 = Quarcosa
| Valuri3 = "ABC"
| above = "Esèmpiu di Tàvula Ginèrica"
| below = "Fini dâ Tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Cascia Nnicata
| subheader1=Dintra n'àutra
| Vuci1=Discrizzioni
| Valuri1=Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| subheader1=Prima Sizzioni
| Vuci1=Cosa Una
| Valuri1=Valuri Unu
| subheader2=Sicunna Sizzioni
| Vuci2=Cosa Dui
| Valuri2=Valuri Dui
| subheader3=Terza Sizzioni
| subheader4=Ancora Cchiù
| subheader5=E Ancora
| Vuci3=Ùrtima Riga
| Valuri3=Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Quarchi Datu
| Valuri1=
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu=QuarchiValuri
| GruppuCampuScunusciutu=Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=100,000 àbitanti
| Property1=P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "Above" o "Below" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| above=Quarchi Tìtulu
| below=Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| above = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| below = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| above = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| below = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| below = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| subheader1 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| below = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| below = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| below = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| above = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Property10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| below = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
rj2nq7jwnt0itc0ph538yei0vzotk5w
770414
770413
2025-07-03T23:05:30Z
GianAntonucci
46609
770414
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Dati ginèrici
| subheader1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| subheader2 = Cchiù nfurmazzioni
| Vuci3 = Quarcosa
| Valuri3 = "ABC"
| above = "Esèmpiu di Tàvula Ginèrica"
| below = "Fini dâ Tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Cascia Nnicata
| subheader1=Dintra n'àutra
| Vuci1=Discrizzioni
| Valuri1=Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| subheader1=Prima Sizzioni
| Vuci1=Cosa Una
| Valuri1=Valuri Unu
| subheader2=Sicunna Sizzioni
| Vuci2=Cosa Dui
| Valuri2=Valuri Dui
| subheader3=Terza Sizzioni
| subheader4=Ancora Cchiù
| subheader5=E Ancora
| Vuci3=Ùrtima Riga
| Valuri3=Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Quarchi Datu
| Valuri1=
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu=QuarchiValuri
| GruppuCampuScunusciutu=Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=100,000 àbitanti
| Property1=P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "Above" o "Below" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| above=Quarchi Tìtulu
| below=Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| above = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| below = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| above = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| below = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| below = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| below = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| below = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| below = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| above = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Property10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| below = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
t8sxs6uef2rzj9zctlt66g33m2kxh4t
770416
770414
2025-07-04T09:38:31Z
GianAntonucci
46609
770416
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Dati ginèrici
| subheader1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| subheader2 = Cchiù nfurmazzioni
| Vuci3 = Quarcosa
| Valuri3 = "ABC"
| supra = "Esèmpiu di Tàvula Ginèrica"
| sutta = "Fini dâ Tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Cascia Nnicata
| subheader1=Dintra n'àutra
| Vuci1=Discrizzioni
| Valuri1=Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| subheader1=Prima Sizzioni
| Vuci1=Cosa Una
| Valuri1=Valuri Unu
| subheader2=Sicunna Sizzioni
| Vuci2=Cosa Dui
| Valuri2=Valuri Dui
| subheader3=Terza Sizzioni
| subheader4=Ancora Cchiù
| subheader5=E Ancora
| Vuci3=Ùrtima Riga
| Valuri3=Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Quarchi Datu
| Valuri1=
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu=QuarchiValuri
| GruppuCampuScunusciutu=Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=100,000 àbitanti
| Property1=P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "supra" o "sutta" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra=Quarchi Tìtulu
| sutta=Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| supra = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| sutta = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| sutta = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| sutta = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| sutta = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| sutta = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| supra = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Property10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| sutta = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
68se5v6e9yqgc5h99cgmturyilttjpk
770417
770416
2025-07-04T09:39:53Z
GianAntonucci
46609
770417
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Dati ginèrici
| subheader1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| subheader2 = Nfurmazzioni
| Vuci3 = Quarchi cosa
| Valuri3 = "ABC"
| supra = "Tàvula Ginèrica"
| sutta = "Fini dâ Tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Cascia Nnicata
| subheader1=Dintra n'àutra
| Vuci1=Discrizzioni
| Valuri1=Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| subheader1=Prima Sizzioni
| Vuci1=Cosa Una
| Valuri1=Valuri Unu
| subheader2=Sicunna Sizzioni
| Vuci2=Cosa Dui
| Valuri2=Valuri Dui
| subheader3=Terza Sizzioni
| subheader4=Ancora Cchiù
| subheader5=E Ancora
| Vuci3=Ùrtima Riga
| Valuri3=Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Quarchi Datu
| Valuri1=
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu=QuarchiValuri
| GruppuCampuScunusciutu=Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=100,000 àbitanti
| Property1=P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "supra" o "sutta" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra=Quarchi Tìtulu
| sutta=Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| supra = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| sutta = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| sutta = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| sutta = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| sutta = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| sutta = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| supra = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Property10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| sutta = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
jiioa6j291x0wqqulm9g7k2iv93anw6
770418
770417
2025-07-04T09:40:52Z
GianAntonucci
46609
770418
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra = "Tàvula ginèrica"
| Tìtulu = Dati ginèrici
| subheader1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| subheader2 = Nfurmazzioni
| Vuci3 = Quarchi cosa
| Valuri3 = "ABC"
| sutta = "Fini dâ tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Cascia Nnicata
| subheader1=Dintra n'àutra
| Vuci1=Discrizzioni
| Valuri1=Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| subheader1=Prima Sizzioni
| Vuci1=Cosa Una
| Valuri1=Valuri Unu
| subheader2=Sicunna Sizzioni
| Vuci2=Cosa Dui
| Valuri2=Valuri Dui
| subheader3=Terza Sizzioni
| subheader4=Ancora Cchiù
| subheader5=E Ancora
| Vuci3=Ùrtima Riga
| Valuri3=Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Quarchi Datu
| Valuri1=
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu=QuarchiValuri
| GruppuCampuScunusciutu=Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=100,000 àbitanti
| Property1=P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "supra" o "sutta" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra=Quarchi Tìtulu
| sutta=Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| supra = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| sutta = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| sutta = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| sutta = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| sutta = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| sutta = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| supra = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Property10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| sutta = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
7g07myd2vzb3yrv8kzey6pjp2xoo1e6
770420
770418
2025-07-04T09:56:43Z
GianAntonucci
46609
770420
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra = "Tàvula ginèrica"
| Tìtulu = Dati ginèrici
| subheader1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| subheader2 = Nfurmazzioni
| Vuci3 = Quarchi cosa
| Valuri3 = "ABC"
| sutta = "Fini dâ tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child=yes
| Tìtulu=Cascia Nnicata
| subheader1=Dintra n'àutra
| Vuci1=Discrizzioni
| Valuri1=Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di subheaders ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| subheader1=Prima Sizzioni
| Vuci1=Cosa Una
| Valuri1=Valuri Unu
| subheader2=Sicunna Sizzioni
| Vuci2=Cosa Dui
| Valuri2=Valuri Dui
| subheader3=Terza Sizzioni
| subheader4=Ancora Cchiù
| subheader5=E Ancora
| Vuci3=Ùrtima Riga
| Valuri3=Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Quarchi Datu
| Valuri1=
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu=QuarchiValuri
| GruppuCampuScunusciutu=Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=100,000 àbitanti
| Prupità1=P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "supra" o "sutta" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra=Quarchi Tìtulu
| sutta=Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| subheader1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| subheader1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| subheader2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| subheader1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| subheader2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| supra = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| subheader1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| subheader2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| sutta = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| sutta = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| sutta = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| subheader1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| subheader2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| sutta = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| subheader1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| subheader2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| sutta = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| supra = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| subheader1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| subheader2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| subheader3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Prupità10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 = {{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| sutta = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
mc3x0ulrwoyyw4hg1s1467uxze5ur2v
770421
770420
2025-07-04T10:06:05Z
GianAntonucci
46609
770421
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra = "Tàvula ginèrica"
| Tìtulu = Dati ginèrici
| Abbirtenza1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| Abbirtenza2 = Nfurmazzioni
| Vuci3 = Quarchi cosa
| Valuri3 = "ABC"
| sutta = "Fini dâ tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child = yes
| Tìtulu = Cascia Nnicata
| Abbirtenza1 = Dintra n'àutra
| Vuci1 = Discrizzioni
| Valuri1 = Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di abbirtenzi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| Abbirtenza1 = Prima Sizzioni
| Vuci1 = Cosa Una
| Valuri1 = Valuri Unu
| Abbirtenza2 = Sicunna Sizzioni
| Vuci2 = Cosa Dui
| Valuri2 = Valuri Dui
| Abbirtenza3 = Terza Sizzioni
| Abbirtenza4 = Ancora Cchiôssai
| Abbirtenza5 = E Ancora
| Vuci3 = Ùrtima Riga
| Valuri3 = Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Quarchi Datu
| Valuri1 =
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu = QuarchiValuri
| GruppuCampuScunusciutu = Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Pupulazzioni
| Valuri1 = 100,000 àbitanti
| Prupità1 = P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "supra" o "sutta" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| supra = Quarchi Tìtulu
| sutta = Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| Abbirtenza1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| Abbirtenza1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| Abbirtenza2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| Abbirtenza1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| Abbirtenza2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| supra = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| Abbirtenza1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| Abbirtenza2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| sutta = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| sutta = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| subheader1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| subheader2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| sutta = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| subheader1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| subheader2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| Abbirtenza1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| Abbirtenza2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| sutta = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| Abbirtenza1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| Abbirtenza2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| sutta = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| supra = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| Abbirtenza1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| Abbirtenza2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| Abbirtenza3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Prupità10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 =
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| subheader1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| sutta = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
8x2ccgev6xv7jrsjusixkvjz2zrhoon
770424
770421
2025-07-04T10:14:45Z
GianAntonucci
46609
770424
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Supra = "Tàvula ginèrica"
| Tìtulu = Dati ginèrici
| Abbirtenza1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| Abbirtenza2 = Nfurmazzioni
| Vuci3 = Quarchi cosa
| Valuri3 = "ABC"
| Sutta = "Fini dâ tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child = yes
| Tìtulu = Cascia Nnicata
| Abbirtenza1 = Dintra n'àutra
| Vuci1 = Discrizzioni
| Valuri1 = Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di abbirtenzi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| Abbirtenza1 = Prima Sizzioni
| Vuci1 = Cosa Una
| Valuri1 = Valuri Unu
| Abbirtenza2 = Sicunna Sizzioni
| Vuci2 = Cosa Dui
| Valuri2 = Valuri Dui
| Abbirtenza3 = Terza Sizzioni
| Abbirtenza4 = Ancora Cchiôssai
| Abbirtenza5 = E Ancora
| Vuci3 = Ùrtima Riga
| Valuri3 = Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Quarchi Datu
| Valuri1 =
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu = QuarchiValuri
| GruppuCampuScunusciutu = Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Pupulazzioni
| Valuri1 = 100,000 àbitanti
| Prupità1 = P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "Supra" o "Sutta" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Supra = Quarchi Tìtulu
| Sutta = Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| Supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| Abbirtenza1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| Abbirtenza1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| Abbirtenza2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| Sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| Abbirtenza1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| Abbirtenza2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| Supra = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| Abbirtenza1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| Abbirtenza2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| Sutta = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| Sutta = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| Abbirtenza1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| Abbirtenza2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| Sutta = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| Abbirtenza1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| Abbirtenza2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| Abbirtenza1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| Abbirtenza2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| Sutta = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| Abbirtenza1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| Abbirtenza2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| Sutta = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| Supra = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| Abbirtenza1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| Abbirtenza2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| Abbirtenza3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Prupità10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 =
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| Abbirtenza1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| Sutta = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
9dipxyi6b332as8pzt0s86bo6mb545c
770426
770424
2025-07-04T11:00:27Z
GianAntonucci
46609
770426
wikitext
text/x-wiki
<templatestyles src="Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css"/>
<noinclude>
== Zoccu è ==
...
== Comu si usa ==
<code><nowiki>{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira }}</nowiki></code>
== Esempi ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Supra = "Tàvula ginèrica"
| Tìtulu = Dati ginèrici
| Abbirtenza1 = Fatti
| Vuci1 = Fattu Unu
| Valuri1 = Valuri Unu
| Vuci2 = Fattu Dui
| Valuri2 = 123
| Abbirtenza2 = Nfurmazzioni
| Vuci3 = Quarchi cosa
| Valuri3 = "ABC"
| Sutta = "Fini dâ tàvula"
}}
<div style="clear:both;"></div>
=== Test cû hlist e plainlist ammiscati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di listi ammiscati
| Vuci1 = Quarchi lista urizzuntali
| Valuri1 =
* Aranciu
* Babbàluciu
* Cucuzzìdda
| Classi1 = hlist
| Vuci2 = Quarchi lista virticali
| Valuri2 =
* Ficudinnia
* Pircoca
* Mulinciana
| Classi2 = plainlist
}}
<div style="clear:both;"></div>
=== Nuddu datu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu=
| MmàgginiSupra=
| Genti=
}}
<div style="clear:both;"></div>
=== Na riga chi havi sulu rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1=Pupulazzioni
| Valuri1=<ref>Quarchi rifirimentu supra a pupulazzioni</ref>
}}
<div style="clear:both;"></div>
=== Override parziali di autoheader ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Capu=Don Calò
| GruppuCapu=Sizzioni Guvernu Spiciali
| Pusizzioni=38°07′N 13°22′E
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû campi mìnimi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| child = yes
| Tìtulu = Cascia Nnicata
| Abbirtenza1 = Dintra n'àutra
| Vuci1 = Discrizzioni
| Valuri1 = Sta cascia è nnicata
}}
<div style="clear:both;"></div>
=== Granni nùmmaru di abbirtenzi ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Multi-Subheaders
| Abbirtenza1 = Prima Sizzioni
| Vuci1 = Cosa Una
| Valuri1 = Valuri Unu
| Abbirtenza2 = Sicunna Sizzioni
| Vuci2 = Cosa Dui
| Valuri2 = Valuri Dui
| Abbirtenza3 = Terza Sizzioni
| Abbirtenza4 = Ancora Cchiôssai
| Abbirtenza5 = E Ancora
| Vuci3 = Ùrtima Riga
| Valuri3 = Dimu
}}
<div style="clear:both;"></div>
=== Usannu catigurii nta na riga "vacanti" nummirata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Quarchi Datu
| Valuri1 =
[[Category:Test di Infobox]]
}}
<div style="clear:both;"></div>
=== Na prupità Wikidata scunusciuta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| CampuScunusciutu = QuarchiValuri
| GruppuCampuScunusciutu = Dati Strani
}}
<div style="clear:both;"></div>
=== Na riga chi currispunni a multipli sizzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Pupulazzioni
| Valuri1 = 100,000 àbitanti
| Prupità1 = P1082
}}
<div style="clear:both;"></div>
=== Tàvula vacanti tranni pi "Supra" o "Sutta" ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Supra = Quarchi Tìtulu
| Sutta = Quarchi Pedi
}}
<div style="clear:both;"></div>
=== Na riga cû cuntinnutu granni ammiscatu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu Riga Ammiscata
| Vuci1 = Dati Cumplessi
| Valuri1 =
Ccà c'è quarchi testu.
<ref>Nu rifirimentu supra stu testu</ref>
[[Category:Catigurìa di Test nta na Riga]]
* Nu puntu
* N'àutru puntu
}}
<div style="clear:both;"></div>
== Novi Esempi Cumpleti ==
=== Città - Palermu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| Supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| Abbirtenza1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
<div style="clear:both;"></div>
=== Pirsuna - Sciascia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nasciuta
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Mortu
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| Abbirtenza1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| Abbirtenza2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| Sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
<div style="clear:both;"></div>
=== Ricetta - Pasta câ Norma ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Pasta câ Norma
| Suttatìtulu = Piattu tradizziunali catanisi
| MmàgginiSupra = Pasta_alla_norma.jpg
| DidascalìaMmàgginiSupra = Pasta câ Norma sirvuta
| Vuci1 = Orìggini
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Tipu di piattu
| Valuri2 = Primu piattu
| Vuci3 = Timpiratura sirvutu
| Valuri3 = Càudu
| Abbirtenza1 = Ngridienti principali
| Valuri4 =
# Pasta (penne o rigatoni)
# Milinciani
# Pumadoru
# Ricotta salata
# Àgghiu
# Vasanicò
# Ogghiu d'aliva
| Abbirtenza2 = Nfurmazzioni nutriziunali
| Vuci5 = Calorìi pi purzzioni
| Valuri5 = ~400-450 kcal
| Vuci6 = Tempu di priparazzioni
| Valuri6 = 45 minuti
| PediPàggina = Ricetta tradizziunali siciliana
}}
<div style="clear:both;"></div>
=== Muntaggna - Etna ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Etna
| Suttatìtulu = A Muntagna o Mungibeddu
| MmàgginiSupra = Mount_Etna.jpg
| DidascalìaMmàgginiSupra = L'Etna n'eruzzioni
| Supra = Vulcanu attivu
| Vuci1 = Autizza
| Valuri1 = 3,357 m s.l.m. (variàbbili)
| Vuci2 = Pusizzioni
| Valuri2 = [[Catania]], Sicilia
| Vuci3 = Coordinati
| Valuri3 = 37°45′18″N 14°59′43″E
| Abbirtenza1 = Gioluggìa
| Vuci4 = Tipu
| Valuri4 = Stratuvulcanu
| Vuci5 = Ùrtima eruzzioni
| Valuri5 = 2023 (n'attività)
| Vuci6 = Età
| Valuri6 = ~500,000 anni
| Abbirtenza2 = UNESCO
| Vuci7 = Patrimoniu Munniali
| Valuri7 = Dû 2013
| Vuci8 = Critèriu
| Valuri8 = (viii) - fenòmini naturali
| Sutta = Vulcanu cchiù àutu d'Europa
}}
<div style="clear:both;"></div>
=== Film - Il Gattopardo ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Il Gattopardo
| MmàgginiSupra = Il_gattopardo_poster.jpg
| Vuci1 = Riggista
| Valuri1 = [[Luchino Visconti]]
| Vuci2 = Annu
| Valuri2 = 1963
| Vuci3 = Paìsi
| Valuri3 = [[File:Flag of Italy.svg|20px]] Italia
| Vuci4 = Lìngua
| Valuri4 = Talianu
| Gruppu5 = Cast principali
| Vuci5 = Attura principali
| Valuri5 =
* [[Burt Lancaster]] - Don Fabrizio
* [[Alain Delon]] - Tancredi
* [[Claudia Cardinale]] - Angelica
| Classi5 = plainlist
| Gruppu6 = Pruduzzioni
| Vuci6 = Durata
| Valuri6 = 187 minuti
| Vuci7 = Basatu supra
| Valuri7 = Rumanzu di [[Giuseppe Tomasi di Lampedusa]]
| Vuci8 = Mùsica
| Valuri8 = [[Nino Rota]]
| Gruppu9 = Premi
| Vuci9 = Palma d'Oru
| Valuri9 = Festival di Cannes 1963
| Sutta = Capulavuru dû cìnima talianu
| Gruppu6 = Pruduzzioni
| Gruppu9 = Premi
}}
<div style="clear:both;"></div>
=== Animali - Àcula siciliana ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Àcula siciliana
| Suttatìtulu = ''Aquila chrysaetos''
| MmàgginiSupra = Golden_eagle.jpg
| DidascalìaMmàgginiSupra = Àcula riali nta volu
| Vuci1 = Classi
| Valuri1 = Aves
| Vuci2 = Òrdini
| Valuri2 = Accipitriformes
| Vuci3 = Famigghia
| Valuri3 = Accipitridae
| Abbirtenza1 = Carattirìstichi
| Vuci4 = Lunghizza
| Valuri4 = 75-88 cm
| Vuci5 = Apirtura alari
| Valuri5 = 190-230 cm
| Vuci6 = Pisu
| Valuri6 = 3-6.5 kg
| Vuci7 = Durata dâ vita
| Valuri7 = 20-30 anni
| Abbirtenza2 = Distribuzzioni n Sicilia
| Vuci8 = Àbbitat
| Valuri8 = Madonìi, Nèbrodi, Etna
| Vuci9 = Statu cunsirvazzioni
| Valuri9 = Vulniràbbili
| Vuci10 = Pupulazzioni stimata
| Valuri10 = 15-20 coppî
| PediPàggina = Speci prutetta
}}
<div style="clear:both;"></div>
=== Festa - Sant'Àjita ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Festa di Sant'Àjita
| MmàgginiSupra = SantAgata_Catania.jpg
| DidascalìaMmàgginiSupra = A vara di Sant'Àjita
| Vuci1 = Tipu
| Valuri1 = Festa rilliggìusa
| Vuci2 = Data
| Valuri2 = 3-5 di frivaru
| Vuci3 = Locu
| Valuri3 = [[Catania]], Sicilia
| Vuci4 = Patrona di
| Valuri4 = Catania
| Gruppu5 = Cilibbrazzioni
| Vuci5 = Evènti principali
| Valuri5 =
* A prucissioni dû 3
* A prucissioni dû 4
* A prucissioni dû 5
* I cannalora
| Classi5 = plainlist
| Vuci6 = Partecipanti
| Valuri6 = ~500,000 pirsùni
| Vuci7 = Tradizzioni dû
| Valuri7 = 1126
| Sutta = Una dî festi rilliggiùsi cchiù 'mpurtanti di Sicilia
}}
<div style="clear:both;"></div>
=== Castìddu - Castìddu Ursinu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Castìddu Ursinu
| MmàgginiSupra = Castello_ursino.jpg
| DidascalìaMmàgginiSupra = Vista dû Castìddu Ursinu
| Vuci1 = Locu
| Valuri1 = [[Catania]], Sicilia
| Vuci2 = Custruzzioni
| Valuri2 = 1239-1250
| Vuci3 = Cumissiunatu di
| Valuri3 = [[Fidiricu II di Svevia]]
| Vuci4 = Architettu
| Valuri4 = Riccardo da Lentini
| Abbirtenza1 = Carattirìstichi
| Vuci5 = Stili
| Valuri5 = Architittura sveva
| Vuci6 = Matiriali
| Valuri6 = Petra làvica
| Vuci7 = Forma
| Valuri7 = Quatratu cû torri
| Abbirtenza2 = Usu attuali
| Vuci8 = Funzzioni
| Valuri8 = Museu Cìvicu
| Vuci9 = Cullizzioni
| Valuri9 = Arti midevali e muderna
| Vuci10 = Visitaturi annuali
| Valuri10 = ~150,000
| PediPàggina = Munumentu nazziunali
}}
<div style="clear:both;"></div>
=== Lìngua - Sicilianu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Lìngua siciliana
| Suttatìtulu = Sicilianu
| Vuci1 = Parlatu nta
| Valuri1 = [[Sicilia]], [[Calabbria]] miridiunali
| Vuci2 = Parlanti
| Valuri2 = ~4.7 miliuni
| Vuci3 = Famigghia
| Valuri3 =
Indoeuropea
* Romanza
** Italo-occidentali
*** Sicilianu
| Classi3 = plainlist
| Abbirtenza1 = Còdici
| Vuci4 = ISO 639-2
| Valuri4 = scn
| Vuci5 = ISO 639-3
| Valuri5 = scn
| Vuci6 = Glottolog
| Valuri6 = sici1248
| Abbirtenza2 = Dialètti
| Vuci7 = Varianti principali
| Valuri7 =
* Sicilianu occidentali
* Sicilianu cèntrali
* Sicilianu orientali
* Sicilianu miridiunali
| Classi7 = plainlist
| Vuci8 = Statu ufficiali
| Valuri8 = Lìngua rilliggiùsa (UNESCO)
| Sutta = Patrimòniu linguìsticu di Sicilia
}}
<div style="clear:both;"></div>
=== Squadra di Pallùni - Catania ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Calcio Catania
| MmàgginiSupra = Catania_logo.png
| DidascalìaMmàgginiSupra = Stemma ufficiali
| Vuci1 = Nomu cumpletu
| Valuri1 = Catania Football Club
| Vuci2 = Suprannomu
| Valuri2 = Rossazzurri, Elefanti
| Vuci3 = Funnatu
| Valuri3 = 1946
| Vuci4 = Stadiu
| Valuri4 = Angelo Massimino
| Vuci5 = Capacità
| Valuri5 = 23,266
| Abbirtenza1 = Culùra
| Vuci6 = Culùra sòciali
| Valuri6 = Russu e cilèsti
| Vuci7 = Prisidènti
| Valuri7 = Ross Pelligra
| Vuci8 = Allinaturi
| Valuri8 = Domenico Toscano
| Abbirtenza2 = Palmarès
| Vuci9 = Campiunati Sèrie B
| Valuri9 = 1 (1953-54)
| Vuci10 = Coppa Italia Sèrie C
| Valuri10 = 2 (1999-00, 2022-23)
| Sutta = Forza Catania!
}}
<div style="clear:both;"></div>
=== Stòria - Sbarcu n Sicilia ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Tìtulu = Sbarcu n Sicilia
| Suttatìtulu = Operazzioni Husky
| MmàgginiSupra = Sicily_invasion_1943.jpg
| DidascalìaMmàgginiSupra = Truppe allìati sbàrcanu n Sicilia
| Supra = Secunna Guerra Munniali
| Vuci1 = Data
| Valuri1 = 9 lugghiu - 17 agustu 1943
| Vuci2 = Locu
| Valuri2 = Sicilia
| Vuci3 = Risurtatu
| Valuri3 = Vittòria allìata
| Abbirtenza1 = Billigirànti
| Vuci4 = Allìati
| Valuri4 =
* [[File:US flag.svg|20px]] Stati Uniti
* [[File:UK flag.svg|20px]] Regnu Unitu
* [[File:Canada flag.svg|20px]] Canadà
| Classi4 = hlist
| Vuci5 = Assi
| Valuri5 =
* [[File:Flag of Italy (1861-1946).svg|20px]] Italia
* [[File:Flag of Germany (1935–1945).svg|20px]] Girmània
| Classi5 = hlist
| Abbirtenza2 = Forzi 'n campu
| Vuci6 = Allìati
| Valuri6 = ~470,000 òmini
| Vuci7 = Assi
| Valuri7 = ~260,000 òmini
| Abbirtenza3 = Pèrditi
| Vuci8 = Allìati
| Valuri8 = ~25,000 (muòrti, firùti, dispirsi)
| Vuci9 = Assi
| Valuri9 = ~165,000 (muòrti, firùti, prigiunèri)
| PediPàggina = Primu passu pâ libbirazzioni d'Italia
}}
<div style="clear:both;"></div>
=== Test di tutti i pusizzioni dî mmàggini ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test dî Mmàggini
| MmàgginiSupra = Etna_eruption.jpg
| DidascalìaMmàgginiSupra = Didascalìa dâ mmàggini supra
| MmàgginiManuManca = Trinacria.jpg
| DidascalìaMmàgginiManuManca = Didascalìa manca
| MmàgginiManuDritta = Cassata_siciliana.jpg
| DidascalìaMmàgginiManuDritta = Didascalìa dritta
| MmàgginiSutta = Teatro_Massimo_Palermo.jpg
| DidascalìaMmàgginiSutta = Didascalìa dâ mmàggini sutta
}}
<div style="clear:both;"></div>
=== Test dî rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Tipi di Rifirimenti
| Vuci1 = Rifirimentu standard
| Valuri1 = Quarchi testu<ref>Rifirimentu standard</ref>
| Vuci2 = Rifirimentu cû nomu primu usu
| Valuri2 = Cchiù testu<ref name="test">Chistu è u rifirimentu test</ref>
| Vuci3 = Riusannu rifirimentu cû nomu
| Valuri3 = Ancora cchiù testu<ref name="test" />
}}
<div style="clear:both;"></div>
=== Test dû modu Debug ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| debug = yes
| Tìtulu = Esèmpiu Debug
| Vuci1 = Paràmitru vàlidu
| Valuri1 = Quarchi valuri
| ParàmitruNunVàlidu = Chistu avissi a cumpariri ntô debug
| N'àutruParàmitruMalu = Puru ntô debug
}}
<div style="clear:both;"></div>
=== Test dî listi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Esèmpiu di Listi
| Vuci1 = Lista nummàrata
| Valuri1 =
# Prima cosa
# Sicunna cosa
# Terza cosa
| Vuci2 = Lista ammiscata
| Valuri2 =
# Nummàratu unu
#* Suttu-cosa cû puntu
#* N'àutra suttu-cosa
# Nummàratu dui
}}
<div style="clear:both;"></div>
=== Test di raggruppamentu autoheader giugràficu ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Dati Giugràfici
| Aria = 250 km²
| Pusizzioni = 37°30′N 14°00′E
| Pruvincia = Pruvincia di Catania
| FusuUrariu = UTC+1
| Vuci10 = Artizza
| Valuri10 = 150 m s.l.m.
| Prupità10 = P2046
}}
<div style="clear:both;"></div>
=== Riga cumplessa senza etichetta ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Senza Etichetta
| Valuri1 = Sta riga nun havi etichetta, occupa dui culonni
| Vuci2 = Riga nurmali
| Valuri2 = Cû etichetta
| Valuri3 = N'àutra riga senza etichetta
| Classi3 = plainlist
}}
<div style="clear:both;"></div>
=== Test CSS pirsunalizzatu e stili in linea ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| inline_style = background-color: #f0f0f0; border: 2px solid #0066cc;
| Tìtulu = Infobox Stilizzata
| Vuci1 = Stili pirsunalizzatu
| Valuri1 = St'infobox havi CSS pirsunalizzatu
}}
<div style="clear:both;"></div>
=== Multipli catigurii e rifirimenti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Rifirimenti
| Vuci1 = Multipli ref
| Valuri1 = Testu cû ref<ref>Primu ref</ref> e n'àutru<ref>Sicunnu ref</ref>
| Vuci2 = Sulu catigurii
| Valuri2 = [[Category:Test1]][[Category:Test2]][[Category:Test3]]
| Vuci3 = Vacanti ammiscatu
| Valuri3 = <ref name="mixedtest">Cuntinnutu rifirimentu</ref>[[Category:Test Vacanti]]<ref name="mixedtest" />
}}
<div style="clear:both;"></div>
=== Test variazzioni di casi ntê catigurii ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Vuci1 = Catigurìa minùscula
| Valuri1 = [[category:test minusculu]]
| Vuci2 = Casu ammiscatu
| Valuri2 = [[CaTeGoRy:Test Casu Ammiscatu]]
| Vuci3 = Cû spazî
| Valuri3 = [[ Category : Test Cû Spazî ]]
}}
<div style="clear:both;"></div>
=== Test paràmitri nummirati àuti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Nùmmari Àuti
| Vuci50 = Riga 50
| Valuri50 = Chista è a riga nùmmaru 50
| Vuci100 = Riga 100
| Valuri100 = Chista è a riga nùmmaru 100
| Gruppu100 = Nùmmari Assai Àuti
}}
<div style="clear:both;"></div>
=== Test gruppi manuali cû righi nummirati ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Raggruppamentu Manuali
| Gruppu1 = Primu Gruppu
| Vuci1 = Cosa A
| Valuri1 = Valuri A
| Vuci2 = Cosa B
| Valuri2 = Valuri B
| Gruppu3 = Sicunnu Gruppu
| Vuci3 = Cosa C
| Valuri3 = Valuri C
| Gruppu4 =
| Vuci4 = Cosa D
| Valuri4 = Valuri D (nudda intestazzioni gruppu picchì Gruppu4 è vacanti)
}}
<div style="clear:both;"></div>
=== Test paràmitru Wikidata ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Test Ntegrazzioni Wikidata
| Vuci1 = Dati manuali
| Valuri1 = Chistu è manuali
}}
<div style="clear:both;"></div>
=== Infobox figghiu cû tutti i funzioni ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Infobox Patri
| Vuci1 = Prima dû figghiu
| Valuri1 = Dati patri
| Vuci2 = Cascia figghiu
| Valuri2 =
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Tìtulu Figghiu
| Abbirtenza1 = Sizzioni Figghiu
| Vuci1 = Dati figghiu
| Valuri1 = Valuri nnicatu
| Sutta = Pedi figghiu
}}
| Vuci3 = Doppu u figghiu
| Valuri3 = Cchiù dati patri
}}
<div style="clear:both;"></div>
=== Stringhi vacanti vs paràmitri mancanti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Stringa Vacanti
| Vuci1 = Valuri stringa vacanti
| Valuri1 =
| Vuci2 = Sulu spazî
| Valuri2 =
| Vuci3 = Havi cuntinnutu
| Valuri3 = Cuntinnutu veru
}}
<div style="clear:both;"></div>
=== Test override campi predifiniti ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Test Override
| Genti = 50,000 àbitanti
| VuciGenti = Etichetta Pupulazzioni Pirsunalizzata
| Capu = Don Vicenzu
| VuciCapu = Capu Esecutivu
| GruppuCapu = Dirigenza
}}
<div style="clear:both;"></div>
=== Child box with parent no_float ===
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Parent No Float
| Valuri1 =
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Vuci1 = Child content
| Valuri1 = Should inherit positioning
}}
}}
<div style="clear:both;"></div>
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa}}
agypoiaec1qpk5i8h4vitigtlb9s1xg
Utenti:GianAntonucci/Bozza/Mudeḍḍu:Tèssira/stili.css
2
66277
770422
766974
2025-07-04T10:11:54Z
GianAntonucci
46609
770422
sanitized-css
text/css
.tessira {
width: 300px;
border: 1px solid #CCC;
border-radius: 6px;
margin: 0 15px 15px 0;
padding: 10px;
background: #F9F9F9;
box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
color: #333;
float: right;
font-size: 14px;
}
.tessira_no_float {
float: none;
margin-left: auto;
margin-right: auto;
}
.tessira_child_wrapper {
display: inline-block;
border: 1px solid #CCC;
border-radius: 6px;
padding: 8px;
margin: 0 15px 15px 0;
background: #F9F9F9;
box-shadow: 0px 4px 8px rgba(0,0,0,0.1);
color: #333;
font-size: 14px;
}
/* Titles & subtitles */
.tessira_titulu {
font-size: 18px;
font-weight: bold;
text-align: center;
color: #333;
padding: 12px;
background: #EDEDED;
border-radius: 6px 6px 0 0;
border-bottom: 2px solid #CCC;
}
.tessira_suttatitulu {
font-size: 16px;
font-weight: normal;
text-align: center;
color: #555;
padding: 8px;
background: #F1F1F1;
border-bottom: 1px solid #CCC;
font-style: italic;
}
/* Supra / Sutta */
.tessira_supra {
font-size: 14px;
font-weight: bold;
text-align: center;
color: #333;
padding: 8px;
background: #F3F3F3;
border-bottom: 1px solid #CCC;
}
.tessira_sutta {
font-size: 13px;
text-align: center;
color: #444;
padding: 8px;
background: #F8F8F8;
border-top: 1px solid #DDD;
}
/* subheaders */
.tessira_subheader {
font-size: 14px;
font-weight: bold;
text-align: left;
color: #444;
padding: 6px 8px;
background: #EAEAEA;
border-top: 1px solid #DDD;
border-bottom: 1px solid #DDD;
margin: 4px 0;
}
/* Group header row */
.tessira_gruppu > th {
font-size: 14px;
font-weight: bold;
text-align: center;
background: #EFEFEF;
color: #333;
padding: 8px 0;
border-top: 2px solid #CCC;
border-bottom: 1px solid #CCC;
}
/* Label + value cells */
.tessira_vuci {
text-align: left;
font-weight: bold;
color: #444;
padding: 6px 8px;
width: 40%;
background: #F1F1F1;
border-right: 1px solid #DDD;
font-size: 90%;
vertical-align: top;
}
.tessira_valuri {
text-align: left;
padding: 6px 8px;
width: 60%;
font-size: 90%;
background: #FFFFFF;
vertical-align: top;
}
/* images + captions */
.tessira_mmaggini {
text-align: center;
padding: 8px 0 6px;
}
.tessira_mmaggini img {
max-width: 100%;
height: auto;
border: 1px solid #DDD;
}
.tessira_didascalia_mmaggini {
font-size: 12px;
text-align: center;
color: #666;
padding-bottom: 8px;
font-style: italic;
}
.tessira_mmaggini_manu_manca {
text-align: left;
padding: 6px;
}
.tessira_mmaggini_manu_dritta {
text-align: right;
padding: 6px;
}
.tessira_didascalia_mmaggini_manu_manca,
.tessira_didascalia_mmaggini_manu_dritta {
font-size: 12px;
color: #666;
padding-top: 4px;
font-style: italic;
}
/* footer row */
.tessira_pedi_paggina {
font-size: 0.85em;
color: #666;
text-align: center;
padding: 8px;
border-top: 1px solid #DDD;
background: #F5F5F5;
border-radius: 0 0 6px 6px;
}
/* NavBar row */
.tessira_navbar {
text-align: center;
padding: 6px;
background: #F0F0F0;
font-size: 90%;
color: #444;
border-top: 1px solid #DDD;
margin: 4px 0;
}
html.skin-theme-clientpref-night .tessira {
background: #222;
border: 1px solid #555;
color: #DDD;
}
html.skin-theme-clientpref-night .tessira_child_wrapper {
background: #222;
border: 1px solid #555;
color: #DDD;
}
html.skin-theme-clientpref-night .tessira_titulu {
background: #333;
color: #EEE;
border-bottom: 2px solid #555;
}
html.skin-theme-clientpref-night .tessira_suttatitulu {
background: #333;
color: #DDD;
border-bottom: 1px solid #555;
}
html.skin-theme-clientpref-night .tessira_supra {
background: #333;
color: #EEE;
border-bottom: 1px solid #555;
}
html.skin-theme-clientpref-night .tessira_sutta {
background: #333;
color: #CCC;
border-top: 1px solid #555;
}
html.skin-theme-clientpref-night .tessira_subheader {
background: #444;
color: #EEE;
border-top: 1px solid #666;
border-bottom: 1px solid #666;
}
html.skin-theme-clientpref-night .tessira_gruppu > th {
background: #444;
color: #EEE;
border-top: 2px solid #555;
border-bottom: 1px solid #666;
}
html.skin-theme-clientpref-night .tessira_vuci {
background: #444;
color: #FFF;
border-right: 1px solid #666;
}
html.skin-theme-clientpref-night .tessira_valuri {
background: #333;
color: #DDD;
}
html.skin-theme-clientpref-night .tessira_mmaggini img {
border: 1px solid #666;
}
html.skin-theme-clientpref-night .tessira_didascalia_mmaggini,
html.skin-theme-clientpref-night .tessira_didascalia_mmaggini_manu_manca,
html.skin-theme-clientpref-night .tessira_didascalia_mmaggini_manu_dritta {
color: #AAA;
}
html.skin-theme-clientpref-night .tessira_pedi_paggina {
background: #333;
color: #AAA;
border-top: 1px solid #555;
}
html.skin-theme-clientpref-night .tessira_navbar {
background: #333;
color: #AAA;
border-top: 1px solid #555;
}
@media (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .tessira {
background: #222;
border: 1px solid #555;
color: #DDD;
}
html.skin-theme-clientpref-os .tessira_child_wrapper {
background: #222;
border: 1px solid #555;
color: #DDD;
}
html.skin-theme-clientpref-os .tessira_titulu {
background: #333;
color: #EEE;
border-bottom: 2px solid #555;
}
html.skin-theme-clientpref-os .tessira_suttatitulu {
background: #333;
color: #DDD;
border-bottom: 1px solid #555;
}
html.skin-theme-clientpref-os .tessira_supra {
background: #333;
color: #EEE;
border-bottom: 1px solid #555;
}
html.skin-theme-clientpref-os .tessira_sutta {
background: #333;
color: #CCC;
border-top: 1px solid #555;
}
html.skin-theme-clientpref-os .tessira_subheader {
background: #444;
color: #EEE;
border-top: 1px solid #666;
border-bottom: 1px solid #666;
}
html.skin-theme-clientpref-os .tessira_gruppu > th {
background: #444;
color: #EEE;
border-top: 2px solid #555;
border-bottom: 1px solid #666;
}
html.skin-theme-clientpref-os .tessira_vuci {
background: #444;
color: #FFF;
border-right: 1px solid #666;
}
html.skin-theme-clientpref-os .tessira_valuri {
background: #333;
color: #DDD;
}
html.skin-theme-clientpref-os .tessira_mmaggini img {
border: 1px solid #666;
}
html.skin-theme-clientpref-os .tessira_didascalia_mmaggini,
html.skin-theme-clientpref-os .tessira_didascalia_mmaggini_manu_manca,
html.skin-theme-clientpref-os .tessira_didascalia_mmaggini_manu_dritta {
color: #AAA;
}
html.skin-theme-clientpref-os .tessira_pedi_paggina {
background: #333;
color: #AAA;
border-top: 1px solid #555;
}
html.skin-theme-clientpref-os .tessira_navbar {
background: #333;
color: #AAA;
border-top: 1px solid #555;
}
}
k821yj962789fmz7yci2hyclnkv4rg9
Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCità
2
66298
770427
766960
2025-07-04T11:04:27Z
GianAntonucci
46609
770427
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è spicìfica pî cità, paìsi e luchi abitati. Integra automaticamenti dati di Wikidata e permetti pirsunalizzazzioni lucali.
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCità
| Nomu =
| Wikidata =
| Viduta =
| Sìnnacu =
| Genti =
| ...
}}
</pre>
== Paràmitri ==
=== Basi ===
* '''Nomu''' - Nomu dâ cità (si vacanti, piglia di Wikidata)
* '''Wikidata''' - ID Wikidata (es: Q2656 pi Palermu)
* '''NomuUfficiali''' - Nomu ufficiali si diffirenti
* '''NomuLucali''' - Nomu ntô dialettu lucali
=== Mmàggini ===
* '''Viduta''' - Mmàggini principali
* '''Didascalìa''' - Didascalìa pâ viduta
* '''Stemma''' - Stemma ufficiali
* '''Bannera''' - Bannera municipali
=== Amministrazzioni ===
* '''Sìnnacu''' - Nomu dû sìnnacu
* '''SìnnacuGèniri''' - m/f pi masculu/fimmina
* '''SìnnacuPartitu''' - Partitu pulìticu
* '''DataElizzioni''' - Data di l'ùrtimi elezzioni
=== Pupulazzioni ===
* '''Genti''' - Nùmmaru d'abitanti
* '''DataCinsimentu''' - Data dû cinsimentu
* '''Dinsità''' - Abitanti pi km²
=== Giugrafìa ===
* '''Pusizzioni''' - Coordinati
* '''Aria''' - Supirfìci in km²
* '''Artizza''' - Metri supra u liveddu dû mari
* '''FusuUrariu''' - Fusu urariu
=== Economia ===
* '''PIL''' - Produttu internu lordu
* '''PILPirsuna''' - PIL pi càpiti
* '''Disoccupazzioni''' - Tassu di disoccupazzioni
== Esempiu cumpletu ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| Supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| Abbirtenza1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
<!-- Nome e titoli -->
| Tìtulu = {{#if: {{{Nomu|}}} | {{{Nomu}}} | {{#if: {{{Wikidata|}}} | {{WikidataLabel|from={{{Wikidata}}}}} | {{PAGENAME}} }} }}
| Suttatìtulu = {{#if: {{{NomuUfficiali|}}} | {{{NomuUfficiali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1448|from={{{Wikidata}}}}} }} }}
| Supra = {{#if: {{{NomuLucali|}}} | {{{NomuLucali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1705|from={{{Wikidata}}}}} }} }}
<!-- Immagini principali -->
| MmàgginiSupra = {{#if: {{{Viduta|}}} | {{{Viduta}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P18|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSupra = {{{Didascalìa|}}}
<!-- Stemma e bandiera -->
| MmàgginiManuManca = {{#if: {{{Stemma|}}} | {{{Stemma}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P94|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiManuManca = {{#if: {{{Stemma|}}} | Stemma }}
| MmàgginiManuDritta = {{#if: {{{Bannera|}}} | {{{Bannera}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P41|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiManuDritta = {{#if: {{{Bannera|}}} | Bannera }}
<!-- Geografia - sezione automatica -->
| Pusizzioni = {{#if: {{{Pusizzioni|}}} | {{{Pusizzioni}}} }}
| VuciPusizzioni = Coordinati
| GruppuPusizzioni = Geografia
| Aria = {{#if: {{{Aria|}}} | {{{Aria}}} }}
| VuciAria = Supirfìci
| GruppuAria = Geografia
| Vuci1 = Artizza
| Valuri1 = {{#if: {{{Artizza|}}} | {{{Artizza}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P2044|from={{{Wikidata}}}}} }} }}
| Gruppu1 = Geografia
| Prupità1 = P2044
| FusuUrariu = {{#if: {{{FusuUrariu|}}} | {{{FusuUrariu}}} }}
| VuciFusuUrariu = Fusu urariu
| GruppuFusuUrariu = Geografia
| Pruvincia = {{#if: {{{Pruvincia|}}} | {{{Pruvincia}}} }}
| VuciPruvincia = {{#if: {{{VuciPruvincia|}}} | {{{VuciPruvincia}}} | Pruvincia }}
| GruppuPruvincia = Geografia
| Vuci2 = Rigioni
| Valuri2 = {{#if: {{{Rigioni|}}} | {{{Rigioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P131|qualifier=P31=Q16110|from={{{Wikidata}}}}} | Sicilia }} }}
| Gruppu2 = Geografia
| Prupità2 = P131
| Vuci3 = Statu
| Valuri3 = {{#if: {{{Statu|}}} | {{{Statu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P17|from={{{Wikidata}}}}} | Italia }} }}
| Gruppu3 = Geografia
| Prupità3 = P17
<!-- Demografia - sezione automatica -->
| Genti = {{#if: {{{Genti|}}} | {{{Genti}}} }}
| VuciGenti = Pupulazzioni {{#if: {{{DataCinsimentu|}}} | ({{{DataCinsimentu}}}) }}
| GruppuGenti = Demographics
| Vuci4 = Dinsità
| Valuri4 = {{#if: {{{Dinsità|}}} | {{{Dinsità}}} | {{#if: {{{Genti|}}} | {{#if: {{{Aria|}}} | {{#expr: {{{Genti}}} / {{{Aria}}} round 1}} ab./km² }} }} }}
| Gruppu4 = Demographics
| Vuci5 = Dintilichiu
| Valuri5 = {{#if: {{{Dintilichiu|}}} | {{{Dintilichiu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1549|from={{{Wikidata}}}}} }} }}
| Gruppu5 = Demographics
| Prupità5 = P1549
<!-- Amministrazione - sezione automatica -->
| Capu = {{#if: {{{Sìnnacu|}}} | {{{Sìnnacu}}} }}
| VuciCapu = Sìnnac{{#if: {{{SìnnacuGèniri|}}} | {{#ifeq: {{{SìnnacuGèniri|}}} | f | a | u }} | u }}
| GruppuCapu = Government
| Vuci6 = Partitu
| Valuri6 = {{#if: {{{SìnnacuPartitu|}}} | {{{SìnnacuPartitu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P6|qualifier=P102|from={{{Wikidata}}}}} }} }}
| Gruppu6 = Government
| Prupità6 = P102
| Vuci7 = Elittu
| Valuri7 = {{{DataElizzioni|}}}
| Gruppu7 = Government
| Tipu = {{#if: {{{Tipu|}}} | {{{Tipu}}} }}
| VuciTipu = Classificazzioni
| GruppuTipu = Government
<!-- Storia - sezione automatica -->
| Vuci8 = Funnata
| Valuri8 = {{#if: {{{Funnata|}}} | {{{Funnata}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P571|from={{{Wikidata}}}}} }} }}
| Gruppu8 = History
| Prupità8 = P571
| Vuci9 = Patronu
| Valuri9 = {{#if: {{{Patronu|}}} | {{{Patronu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P417|from={{{Wikidata}}}}} }} }}
| Gruppu9 = History
| Prupità9 = P417
| Vuci10 = Festa
| Valuri10 = {{{Festa|}}}
| Gruppu10 = History
<!-- Economia - sezione opzionale -->
{{#if: {{{PIL|}}}{{{PILPirsuna|}}}{{{Disoccupazzioni|}}} |
{{!}} Vuci11 = PIL
{{!}} Valuri11 = {{{PIL|}}}
{{!}} Gruppu11 = Economia
{{!}} Vuci12 = PIL pi càpiti
{{!}} Valuri12 = {{{PILPirsuna|}}}
{{!}} Gruppu12 = Economia
{{!}} Vuci13 = Disoccupazzioni
{{!}} Valuri13 = {{{Disoccupazzioni|}}}
{{!}} Gruppu13 = Economia
}}
<!-- Codici -->
| ISO = {{#if: {{{ISO|}}} | {{{ISO}}} }}
| VuciISO = Còdici ISO
| GruppuISO = Còdici
| Vuci20 = CAP
| Valuri20 = {{#if: {{{CAP|}}} | {{{CAP}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P281|from={{{Wikidata}}}}} }} }}
| Gruppu20 = Còdici
| Prupità20 = P281
| Vuci21 = Prifissu
| Valuri21 = {{#if: {{{Prifissu|}}} | {{{Prifissu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P473|from={{{Wikidata}}}}} }} }}
| Gruppu21 = Còdici
| Prupità21 = P473
| Vuci22 = Còdici ISTAT
| Valuri22 = {{#if: {{{ISTAT|}}} | {{{ISTAT}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P635|from={{{Wikidata}}}}} }} }}
| Gruppu22 = Còdici
| Prupità22 = P635
| Vuci23 = Còdici catastali
| Valuri23 = {{#if: {{{Catastali|}}} | {{{Catastali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P806|from={{{Wikidata}}}}} }} }}
| Gruppu23 = Còdici
| Prupità23 = P806
<!-- Collegamenti -->
| Vuci30 = Situ ufficiali
| Valuri30 = {{#if: {{{SituWeb|}}} | [{{{SituWeb}}} {{{SituWeb}}}] | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P856|from={{{Wikidata}}}}} }} }}
| Gruppu30 = Lijami
| Prupità30 = P856
| Classi30 = plainlist
<!-- Footer -->
| PediPàggina = {{#if: {{{PediPàggina|}}} | {{{PediPàggina}}} | {{#if: {{{DataAggiurnamentu|}}} | Dati aggiurnati ô {{{DataAggiurnamentu}}} }} }}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|}}}
| LijamiWikidata = {{#if: {{{Wikidata|}}} | yes }}
<!-- Immagine inferiore mappa -->
| MmàgginiSutta = {{#if: {{{Mappa|}}} | {{{Mappa}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P242|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSutta = {{#if: {{{DidascalìaMappa|}}} | {{{DidascalìaMappa}}} | {{#if: {{{Mappa|}}} | Pusizzioni }}
<!-- Parametri custom -->
{{{1|}}}
{{{2|}}}
{{{3|}}}
}}
kcrscd1klvvh1johr18kyjmy28gpjrj
770428
770427
2025-07-04T11:09:11Z
GianAntonucci
46609
770428
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è spicìfica pî cità, paìsi e luchi abitati. Integra automaticamenti dati di Wikidata e permetti pirsunalizzazzioni lucali.
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCità
| Nomu =
| Wikidata =
| Viduta =
| Sìnnacu =
| Genti =
| ...
}}
</pre>
== Paràmitri ==
=== Basi ===
* '''Nomu''' - Nomu dâ cità (si vacanti, piglia di Wikidata)
* '''Wikidata''' - ID Wikidata (es: Q2656 pi Palermu)
* '''NomuUfficiali''' - Nomu ufficiali si diffirenti
* '''NomuLucali''' - Nomu ntô dialettu lucali
=== Mmàggini ===
* '''Viduta''' - Mmàggini principali
* '''Didascalìa''' - Didascalìa pâ viduta
* '''Stemma''' - Stemma ufficiali
* '''Bannera''' - Bannera municipali
* '''Mappa''' - Mappa di pusizzioni
=== Amministrazzioni ===
* '''Sìnnacu''' - Nomu dû sìnnacu
* '''SìnnacuGèniri''' - m/f pi masculu/fimmina
* '''SìnnacuPartitu''' - Partitu pulìticu
* '''DataElizzioni''' - Data di l'ùrtimi elezzioni
=== Pupulazzioni ===
* '''Genti''' - Nùmmaru d'abitanti
* '''DataCinsimentu''' - Data dû cinsimentu
* '''Dinsità''' - Abitanti pi km²
=== Giugrafìa ===
* '''Pusizzioni''' - Coordinati
* '''Aria''' - Supirfìci in km²
* '''Artizza''' - Metri supra u liveddu dû mari
* '''FusuUrariu''' - Fusu urariu
=== Economia ===
* '''PIL''' - Produttu internu lordu
* '''PILPirsuna''' - PIL pi càpiti
* '''Disoccupazzioni''' - Tassu di disoccupazzioni
== Esempiu cumpletu ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Wikidata = Q2656
| Tìtulu = Palermu
| Suttatìtulu = Capoluogo della Sicilia
| MmàgginiSupra = Palermo-view-from-north.jpg
| DidascalìaMmàgginiSupra = Vista panoramica di Palermu
| Supra = Città metropolitana
| Capu = Roberto Lagalla
| VuciCapu = Sindaco
| Genti = 663,401
| VuciGenti = Popolazione (2023)
| Aria = 158.88 km²
| Pusizzioni = 38°07′N 13°22′E
| FusuUrariu = UTC+1
| ISO = IT-PA
| Pruvincia = Palermo
| Tipu = Città metropolitana
| Abbirtenza1 = Storia
| Vuci10 = Fondata
| Valuri10 = 734 a.C.
| Vuci11 = Fondatori
| Valuri11 = Fenici
| PediPàggina = Dati aggiornati al 2023
| NomuMudeḍḍu = Palermu
| LijamiWikidata = yes
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
<!-- Nome e titoli -->
| Tìtulu = {{#if: {{{Nomu|}}} | {{{Nomu}}} | {{#if: {{{Wikidata|}}} | {{WikidataLabel|from={{{Wikidata}}}}} | {{PAGENAME}} }} }}
| Suttatìtulu = {{#if: {{{NomuUfficiali|}}} | {{{NomuUfficiali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1448|from={{{Wikidata}}}}} }} }}
| Supra = {{#if: {{{NomuLucali|}}} | {{{NomuLucali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1705|from={{{Wikidata}}}}} }} }}
<!-- Immagini principali -->
| MmàgginiSupra = {{#if: {{{Viduta|}}} | {{{Viduta}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P18|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSupra = {{{Didascalìa|}}}
<!-- Stemma e bandiera -->
| MmàgginiManuManca = {{#if: {{{Stemma|}}} | {{{Stemma}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P94|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiManuManca = {{#if: {{{Stemma|}}}|Stemma|{{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P94|from={{{Wikidata}}}}} | Stemma }} }} }}
| MmàgginiManuDritta = {{#if: {{{Bannera|}}} | {{{Bannera}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P41|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiManuDritta = {{#if: {{{Bannera|}}}|Bannera|{{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P41|from={{{Wikidata}}}}} | Bannera }} }} }}
<!-- Geografia - sezione automatica con fallback Wikidata completi -->
| Pusizzioni = {{#if: {{{Pusizzioni|}}} | {{{Pusizzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P625|from={{{Wikidata}}}}} }} }}
| VuciPusizzioni = Coordinati
| GruppuPusizzioni = Geography
| Aria = {{#if: {{{Aria|}}} | {{{Aria}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P2046|from={{{Wikidata}}}}} }} }}
| VuciAria = Supirfìci
| GruppuAria = Geography
| Vuci1 = Artizza
| Valuri1 = {{#if: {{{Artizza|}}} | {{{Artizza}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P2044|from={{{Wikidata}}}}} }} }}
| Gruppu1 = Geography
| Prupità1 = P2044
| FusuUrariu = {{#if: {{{FusuUrariu|}}} | {{{FusuUrariu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P421|from={{{Wikidata}}}}} }} }}
| VuciFusuUrariu = Fusu urariu
| GruppuFusuUrariu = Geography
| Pruvincia = {{#if: {{{Pruvincia|}}} | {{{Pruvincia}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P131|from={{{Wikidata}}}}} }} }}
| VuciPruvincia = {{#if: {{{VuciPruvincia|}}} | {{{VuciPruvincia}}} | Pruvincia }}
| GruppuPruvincia = Geography
| Vuci2 = Rigioni
| Valuri2 = {{#if: {{{Rigioni|}}} | {{{Rigioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P131|qualifier=P31=Q16110|from={{{Wikidata}}}}} }} }}
| Gruppu2 = Geography
| Prupità2 = P131
| Vuci3 = Statu
| Valuri3 = {{#if: {{{Statu|}}} | {{{Statu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P17|from={{{Wikidata}}}}} }} }}
| Gruppu3 = Geography
| Prupità3 = P17
<!-- Demografia - sezione automatica con fallback Wikidata -->
| Genti = {{#if: {{{Genti|}}} | {{{Genti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1082|from={{{Wikidata}}}}} }} }}
| VuciGenti = Pupulazzioni {{#if: {{{DataCinsimentu|}}} | ({{{DataCinsimentu}}}) }}
| GruppuGenti = Demographics
<!-- Nota: Il calcolo della densità andrebbe fatto nel modulo Lua per gestire meglio i valori mancanti -->
| Vuci4 = Dinsità
| Valuri4 = {{{Dinsità|}}}
| Gruppu4 = Demographics
| Vuci5 = Dintilichiu
| Valuri5 = {{#if: {{{Dintilichiu|}}} | {{{Dintilichiu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1549|from={{{Wikidata}}}}} }} }}
| Gruppu5 = Demographics
| Prupità5 = P1549
<!-- Amministrazione - sezione automatica con fallback Wikidata -->
| Capu = {{#if: {{{Sìnnacu|}}} | {{{Sìnnacu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P6|from={{{Wikidata}}}}} }} }}
| VuciCapu = Sìnnac{{#if: {{{SìnnacuGèniri|}}} | {{#ifeq: {{{SìnnacuGèniri|}}} | f | a | u }} | u }}
| GruppuCapu = Government
| Vuci6 = Partitu
| Valuri6 = {{#if: {{{SìnnacuPartitu|}}} | {{{SìnnacuPartitu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P6|qualifier=P102|from={{{Wikidata}}}}} }} }}
| Gruppu6 = Government
| Prupità6 = P102
| Vuci7 = Elittu
| Valuri7 = {{{DataElizzioni|}}}
| Gruppu7 = Government
| Tipu = {{#if: {{{Tipu|}}} | {{{Tipu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P31|from={{{Wikidata}}}}} }} }}
| VuciTipu = Classificazzioni
| GruppuTipu = Government
<!-- Storia - sezione automatica -->
| Vuci8 = Funnata
| Valuri8 = {{#if: {{{Funnata|}}} | {{{Funnata}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P571|from={{{Wikidata}}}}} }} }}
| Gruppu8 = History
| Prupità8 = P571
| Vuci9 = Patronu
| Valuri9 = {{#if: {{{Patronu|}}} | {{{Patronu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P417|from={{{Wikidata}}}}} }} }}
| Gruppu9 = History
| Prupità9 = P417
| Vuci10 = Festa
| Valuri10 = {{{Festa|}}}
| Gruppu10 = History
<!-- Economia - sezione opzionale -->
{{#if: {{{PIL|}}}{{{PILPirsuna|}}}{{{Disoccupazzioni|}}} |
{{!}} Vuci11 = PIL
{{!}} Valuri11 = {{{PIL|}}}
{{!}} Gruppu11 = Economia
{{!}} Vuci12 = PIL pi càpiti
{{!}} Valuri12 = {{{PILPirsuna|}}}
{{!}} Gruppu12 = Economia
{{!}} Vuci13 = Disoccupazzioni
{{!}} Valuri13 = {{{Disoccupazzioni|}}}
{{!}} Gruppu13 = Economia
}}
<!-- Codici con fallback Wikidata -->
| ISO = {{#if: {{{ISO|}}} | {{{ISO}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P300|from={{{Wikidata}}}}} }} }}
| VuciISO = Còdici ISO
| GruppuISO = Còdici
| Vuci20 = CAP
| Valuri20 = {{#if: {{{CAP|}}} | {{{CAP}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P281|from={{{Wikidata}}}}} }} }}
| Gruppu20 = Còdici
| Prupità20 = P281
| Vuci21 = Prifissu
| Valuri21 = {{#if: {{{Prifissu|}}} | {{{Prifissu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P473|from={{{Wikidata}}}}} }} }}
| Gruppu21 = Còdici
| Prupità21 = P473
| Vuci22 = Còdici ISTAT
| Valuri22 = {{#if: {{{ISTAT|}}} | {{{ISTAT}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P635|from={{{Wikidata}}}}} }} }}
| Gruppu22 = Còdici
| Prupità22 = P635
| Vuci23 = Còdici catastali
| Valuri23 = {{#if: {{{Catastali|}}} | {{{Catastali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P806|from={{{Wikidata}}}}} }} }}
| Gruppu23 = Còdici
| Prupità23 = P806
<!-- Collegamenti -->
| Vuci30 = Situ ufficiali
| Valuri30 = {{#if: {{{SituWeb|}}} | [{{{SituWeb}}} {{{SituWeb}}}] | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P856|from={{{Wikidata}}}}} }} }}
| Gruppu30 = Lijami
| Prupità30 = P856
| Classi30 = plainlist
<!-- Footer -->
| PediPàggina = {{#if: {{{PediPàggina|}}} | {{{PediPàggina}}} | {{#if: {{{DataAggiurnamentu|}}} | Dati aggiurnati ô {{{DataAggiurnamentu}}} }} }}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|}}}
| LijamiWikidata = {{#if: {{{Wikidata|}}} | yes }}
<!-- Immagine inferiore mappa -->
| MmàgginiSutta = {{#if: {{{Mappa|}}} | {{{Mappa}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P242|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSutta = {{#if: {{{DidascalìaMappa|}}} | {{{DidascalìaMappa}}} | {{#if: {{{Mappa|}}}|Pusizzioni|{{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P242|from={{{Wikidata}}}}} | Pusizzioni }} }} }} }}
<!-- Parametri custom -->
{{{1|}}}
{{{2|}}}
{{{3|}}}
}}
e5vgq7v1ty9c3ngpxc3iqj935g0q1ko
Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPulìticu
2
66299
770433
766958
2025-07-04T11:29:27Z
GianAntonucci
46609
770433
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è spicìfica pî pulìtici. Si basa supra a TèssiraCristianu e agghiunci campi spicìfici pâ carrèra pulìtica.
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPulìticu
| Nomu =
| Wikidata =
| Mmàggini =
| CaricaPrincipali =
| DataInìziu =
| DataFini =
| Partitu =
| ...
}}
</pre>
== Paràmitri ==
Sta tèssira accetta tutti i paràmitri di TèssiraCristianu, cchiù:
=== Carichi pulìtichi ===
* '''CaricaPrincipali''' - Carica cchiù mpurtanti
* '''DataInìziu''' - Data d'inìziu dâ carica
* '''DataFini''' - Data di fini dâ carica
* '''Pricidenti''' - Chi c'era avanti
* '''Succissuri''' - Chi vinni doppu
* '''NuminatuDi''' - Chi l'havi numinatu (si applicàbbili)
* '''ElittuNta''' - Circuscrizioni unni fu elittu
=== Partiti e coalizioni ===
* '''Partitu''' - Partitu pulìticu attuali
* '''PartituStòricu''' - Partiti pricidenti
* '''CoalizioniElittorali''' - Coalizioni
* '''GruppuParlamentari''' - Gruppu parlamentari
=== Carichi sicundari ===
* '''CaricaSicundaria1''' - Àutra carica
* '''DataInìziu1''' - Data inìziu
* '''DataFini1''' - Data fini
* '''CaricaSicundaria2''' - etc.
=== Attività parlamentari ===
* '''LiggiPrisentati''' - Liggi prisentati
* '''CummissiùniParlamentari''' - Cummissioni
== Esempiu ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| child = yes
| Tìtulu = Sergio Mattarella
| Suttatìtulu = 12° Presidente della Repubblica Italiana
| MmàgginiSupra = Sergio_Mattarella.jpg
| DidascalìaMmàgginiSupra = Mattarella ntô 2022
| Supra = In carica dal 3 febbraio 2015
| Vuci1 = Pricidenti
| Valuri1 = [[Giorgio Napolitano]]
| Gruppu1 = Carica attuali
| Abbirtenza1 = Dati pirsunali
| Vuci2 = Nascita
| Valuri2 = 23 di lugghiu 1941 (82 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Partitu
| Valuri3 = Indipinnenti (dû 2015)<br/>DC, PPI, Margherita, PD (avanti)
| Gruppu3 = Attività pulìtica
| Abbirtenza2 = Carichi pricidenti
| Vuci4 = Giùdici Custituzziunali
| Valuri4 = 2011–2015
| Vuci5 = Ministru dâ Difisa
| Valuri5 = 1999–2001
| PediPàggina = Dati aggiurnati ô 2024
}}
</noinclude>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu
| Nomu = {{{Nomu|}}}
| Wikidata = {{{Wikidata|}}}
| NomuCumpletu = {{{NomuCumpletu|}}}
| Mmàggini = {{{Mmàggini|}}}
| Didascalìa = {{{Didascalìa|}}}
| Nascita = {{{Nascita|}}}
| LochiNascita = {{{LochiNascita|}}}
| Morti = {{{Morti|}}}
| LochiMorti = {{{LochiMorti|}}}
| Naziunalità = {{{Naziunalità|}}}
| CònjugiCivili = {{{CònjugiCivili|}}}
| Figghi = {{{Figghi|}}}
| Patri = {{{Patri|}}}
| Matri = {{{Matri|}}}
| StudiUniversitari = {{{StudiUniversitari|}}}
| Firma = {{{Firma|}}}
| PediPàggina = {{{PediPàggina|}}}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|}}}
| Sutta = {{{Sutta|}}}
<!-- Override del sottotitolo con la carica principale -->
| Suttatìtulu = {{#if: {{{CaricaPrincipali|}}} | {{{CaricaPrincipali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P39|from={{{Wikidata}}}|max=1}} }} }}
<!-- Override dell'occupazione per includere "Politico" -->
| Occupazzioni = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | Pulìticu{{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P106|from={{{Wikidata}}}}} | <br/>{{Wikidata|1=P106|from={{{Wikidata}}}}} }} }} }}
<!-- Se in carica, mostralo sopra -->
| Supra = {{#if: {{{NCarica|}}} | {{{NCarica}}} | {{{Supra|}}} }}
<!-- Parametri specifici per politici passati attraverso gli slot numerati -->
| 1 = <!-- Carica principale e date -->
{{#if: {{{CaricaPrincipali|}}} |
{{!}} Abbirtenza20 = Carica principali
{{!}} Vuci20 = {{{CaricaPrincipali}}}
{{!}} Valuri20 = {{#if: {{{DataInìziu|}}} | {{{DataInìziu}}} }}{{#if: {{{DataFini|}}} | {{#if: {{{DataInìziu|}}} | – }}{{{DataFini}}} | {{#if: {{{DataInìziu|}}} | – n carica }} }}
{{!}} Gruppu20 = Carrèra pulìtica
}}
| 2 = <!-- Predecessore e successore -->
{{#if: {{{Pricidenti|}}} |
{{!}} Vuci21 = Pricidenti
{{!}} Valuri21 = {{{Pricidenti|}}}
{{!}} Gruppu21 = Carrèra pulìtica
}}
{{#if: {{{Succissuri|}}} |
{{!}} Vuci22 = Succissuri
{{!}} Valuri22 = {{{Succissuri|}}}
{{!}} Gruppu22 = Carrèra pulìtica
}}
| 3 = <!-- Partito e affiliazioni -->
{{#if: {{{Partitu|}}} |
{{!}} Vuci23 = Partitu
{{!}} Valuri23 = {{{Partitu|}}}
{{!}} Gruppu23 = Affiliazzioni pulìtichi
{{!}} Prupità23 = P102
}}
{{#if: {{{PartituStòricu|}}} |
{{!}} Vuci24 = Partiti pricidenti
{{!}} Valuri24 = {{{PartituStòricu|}}}
{{!}} Gruppu24 = Affiliazzioni pulìtichi
{{!}} Classi24 = plainlist
}}
{{#if: {{{CoalizioniElittorali|}}} |
{{!}} Vuci25 = Coalizioni
{{!}} Valuri25 = {{{CoalizioniElittorali|}}}
{{!}} Gruppu25 = Affiliazzioni pulìtichi
{{!}} Classi25 = plainlist
}}
| 4 = <!-- Cariche secondarie -->
{{#if: {{{CaricaSicundaria1|}}} |
{{!}} Abbirtenza26 = Àutri carichi
{{!}} Vuci26 = {{{CaricaSicundaria1}}}
{{!}} Valuri26 = {{#if: {{{DataInìziu1|}}} | {{{DataInìziu1}}} }}{{#if: {{{DataFini1|}}} | {{#if: {{{DataInìziu1|}}} | – }}{{{DataFini1}}} }}
}}
{{#if: {{{CaricaSicundaria2|}}} |
{{!}} Vuci27 = {{{CaricaSicundaria2}}}
{{!}} Valuri27 = {{#if: {{{DataInìziu2|}}} | {{{DataInìziu2}}} }}{{#if: {{{DataFini2|}}} | {{#if: {{{DataInìziu2|}}} | – }}{{{DataFini2}}} }}
{{!}} Gruppu27 = Àutri carichi
}}
| 5 = <!-- Circoscrizione e attività parlamentare -->
{{#if: {{{ElittuNta|}}} |
{{!}} Vuci28 = Circuscrizioni
{{!}} Valuri28 = {{{ElittuNta|}}}
{{!}} Gruppu28 = Attività parlamentari
{{!}} Prupità28 = P768
}}
{{#if: {{{CummissiùniParlamentari|}}} |
{{!}} Vuci29 = Cummissioni
{{!}} Valuri29 = {{{CummissiùniParlamentari|}}}
{{!}} Gruppu29 = Attività parlamentari
{{!}} Classi29 = plainlist
}}
}}
t37aimrkwi8cwmak0nt048wpdzvflfy
770435
770433
2025-07-04T11:46:04Z
GianAntonucci
46609
770435
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è spicìfica pî pulìtici. Si basa supra a [[Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu|TèssiraCristianu]] e agghiunci campi spicìfici pâ carrèra pulìtica.
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPulìticu
| Nomu =
| Wikidata =
| Mmàggini =
| CaricaPrincipali =
| DataInìziu =
| DataFini =
| Partitu =
... (tutti i paràmitri di TèssiraCristianu sunnu accittati)
}}
</pre>
</noinclude>{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu
| Nomu = {{{Nomu|}}}
| Wikidata = {{{Wikidata|}}}
| NomuCumpletu = {{{NomuCumpletu|}}}
| NomuNàscita = {{{NomuNàscita|}}}
| Pseuònimu = {{{Pseuònimu|}}}
| Mmàggini = {{{Mmàggini|}}}
| Didascalìa = {{{Didascalìa|}}}
| Firma = {{{Firma|}}}
| Nascita = {{{Nascita|}}}
| LochiNascita = {{{LochiNascita|}}}
| Morti = {{{Morti|}}}
| LochiMorti = {{{LochiMorti|}}}
| CausaMorti = {{{CausaMorti|}}}
| LochiSipurtura = {{{LochiSipurtura|}}}
| Naziunalità = {{{Naziunalità|}}}
| Cittadinanza = {{{Cittadinanza|}}}
| Patri = {{{Patri|}}}
| Matri = {{{Matri|}}}
| CònjugiCivili = {{{CònjugiCivili|}}}
| Figghi = {{{Figghi|}}}
| Parenti = {{{Parenti|}}}
| Occupazzioni = {{{Occupazzioni|}}}
| PiriuduAttività = {{{PiriuduAttività|}}}
| OpiriNotèvuli = {{{OpiriNotèvuli|}}}
| PremiFamusi = {{{PremiFamusi|}}}
| StudiUniversitari = {{{StudiUniversitari|}}}
| StudiScundari = {{{StudiScundari|}}}
| Maistri = {{{Maistri|}}}
| SituWeb = {{{SituWeb|}}}
| PediPàggina = {{{PediPàggina|}}}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|TèssiraPulìticu}}}
| Sutta = {{{Sutta|}}}
| Suttatìtulu = {{#if: {{{CaricaPrincipali|}}} | {{{CaricaPrincipali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P39|from={{{Wikidata}}}|max=1}} }} }}
| 1 =
{{#if: {{{CaricaPrincipali|}}}{{{Pricidenti|}}}{{{Succissuri|}}}{{{Wikidata|}}}
| {{!}} Abbirtenza50 = Carriera pulìtica
}}
{{#if: {{{CaricaPrincipali|}}}{{{Wikidata|}}}
| {{!}} Vuci50 = {{#if: {{{CaricaPrincipali|}}} | {{{CaricaPrincipali}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P39|from={{{Wikidata}}}|max=1}} }} }}
{{!}} Valuri50 = {{#if: {{{DataInìziu|}}} | In carica: {{{DataInìziu}}} }}{{#if: {{{DataFini|}}}| – {{{DataFini}}}|{{#if: {{{DataInìziu|}}}| – ''n cursu''}} }}
{{!}} Gruppu50 = Carrèra pulìtica
}}
{{#if: {{{Pricidenti|}}}
| {{!}} Vuci51 = Pricidenti
{{!}} Valuri51 = {{{Pricidenti|}}}
{{!}} Gruppu51 = Carrèra pulìtica
}}
{{#if: {{{Succissuri|}}}
| {{!}} Vuci52 = Succissuri
{{!}} Valuri52 = {{{Succissuri|}}}
{{!}} Gruppu52 = Carrèra pulìtica
}}
{{#if: {{{Partitu|}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P102|from={{{Wikidata}}}}} }} }} }}
| {{!}} Vuci53 = Partitu
{{!}} Valuri53 = {{#if: {{{Partitu|}}} | {{{Partitu}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P102|from={{{Wikidata}}}}} }} }}
{{!}} Gruppu53 = Carrèra pulìtica
{{!}} Classi53 = plainlist
{{!}} Prupità53 = P102
}}
}}
gy9dtbtkq0fjizo2p7235sh54zalccu
Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaSìmplici/stili.css
2
66310
770400
766905
2025-07-03T21:55:06Z
GianAntonucci
46609
770400
sanitized-css
text/css
.plainlist ol,
.plainlist ul {
margin: 0;
padding: 0;
list-style: none; /* No default bullets */
line-height: inherit; /* Inherit line-height from parent */
}
/* Keep each list item in the normal flow (vertical listing) */
.plainlist li {
margin-bottom: 0; /* No extra bottom margin */
color: #333; /* Match Tessira's color scheme */
font-size: 90%; /* Slightly smaller than default */
}
/* Small left indent (like bullet spacing)*/
.plainlist li {
padding-left: 1em;
text-indent: -1em;
}
.plainlist {
/* Ensure blocks by default */
display: block;
}
/* Dark mode support for plainlist */
.skin-theme-clientpref-night .plainlist li {
color: #DDD;
}
@media (prefers-color-scheme: dark) {
.skin-theme-clientpref-os .plainlist li {
color: #DDD;
}
}
9j5kidwwwqfuq5uzshwgd21xf5wuxgy
770439
770400
2025-07-04T11:54:33Z
GianAntonucci
46609
770439
sanitized-css
text/css
.plainlist ol,
.plainlist ul {
margin: 0;
padding: 0;
list-style: none; /* No default bullets */
line-height: inherit; /* Inherit line-height from parent */
}
/* Keep each list item in the normal flow (vertical listing) */
.plainlist li {
margin-bottom: 0; /* No extra bottom margin */
color: #333; /* Match Tessira's color scheme */
font-size: 90%; /* Slightly smaller than default */
}
/* Small left indent (like bullet spacing)*/
.plainlist li {
padding-left: 1em;
text-indent: -1em;
}
.plainlist {
/* Ensure blocks by default */
display: block;
}
/* Add support for nested lists */
.plainlist ol ol,
.plainlist ol ul,
.plainlist ul ol,
.plainlist ul ul {
margin-left: 1em;
}
/* Consider reducing indent for infobox context */
.tessira .plainlist li {
padding-left: 0.5em;
text-indent: -0.5em;
}
/* Dark mode support for plainlist */
.skin-theme-clientpref-night .plainlist li {
color: #DDD;
}
@media (prefers-color-scheme: dark) {
.skin-theme-clientpref-os .plainlist li {
color: #DDD;
}
}
53s9m7hjd165dapsklm2uyhv5i3dhnv
Utenti:GianAntonucci/Bozza/Mudeḍḍu:ListaUrizzuntali/stili.css
2
66311
770401
766906
2025-07-03T21:55:45Z
GianAntonucci
46609
770401
sanitized-css
text/css
/* Reset default list styling */
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display each item inline */
.hlist dd,
.hlist dt,
.hlist li {
display: inline;
color: #333; /* Match Tèssira's color scheme */
font-size: 90%;
}
/* Use an interpunct "·" as a separator, except on the last child */
.hlist dd::after,
.hlist dt::after,
.hlist li::after {
content: " · ";
font-weight: normal;
color: #666; /* Slightly lighter dot */
}
.hlist dd:last-child::after,
.hlist dt:last-child::after,
.hlist li:last-child::after {
content: none; /* No dot after the final item */
}
/* Parentheses around nested lists */
.hlist dd dl:first-child::before,
.hlist dd ol:first-child::before,
.hlist dd ul:first-child::before {
content: " (";
}
.hlist dd dl:last-child::after,
.hlist dd ol:last-child::after,
.hlist dd ul:last-child::after {
content: ")";
}
/* Dark mode support for hlist */
html.skin-theme-clientpref-night .hlist dd,
html.skin-theme-clientpref-night .hlist dt,
html.skin-theme-clientpref-night .hlist li {
color: #DDD;
}
html.skin-theme-clientpref-night .hlist dd::after,
html.skin-theme-clientpref-night .hlist dt::after,
html.skin-theme-clientpref-night .hlist li::after {
color: #999;
}
@media (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .hlist dd,
html.skin-theme-clientpref-os .hlist dt,
html.skin-theme-clientpref-os .hlist li {
color: #DDD;
}
html.skin-theme-clientpref-os .hlist dd::after,
html.skin-theme-clientpref-os .hlist dt::after,
html.skin-theme-clientpref-os .hlist li::after {
color: #999;
}
}
8ko0z9g8y78pil3vmq0jlri1x7y7lvb
770438
770401
2025-07-04T11:54:30Z
GianAntonucci
46609
770438
sanitized-css
text/css
/* Reset default list styling */
.hlist dl,
.hlist ol,
.hlist ul {
margin: 0;
padding: 0;
}
/* Display each item inline */
.hlist dd,
.hlist dt,
.hlist li {
display: inline;
color: #333; /* Match Tèssira's color scheme */
font-size: 90%;
}
/* Use an interpunct "·" as a separator, except on the last child */
.hlist dd::after,
.hlist dt::after,
.hlist li::after {
content: " · ";
font-weight: normal;
color: #666; /* Slightly lighter dot */
}
.hlist dd:last-child::after,
.hlist dt:last-child::after,
.hlist li:last-child::after {
content: none; /* No dot after the final item */
}
/* Parentheses around nested lists */
.hlist dd dl:first-child::before,
.hlist dd ol:first-child::before,
.hlist dd ul:first-child::before {
content: " (";
}
.hlist dd dl:last-child::after,
.hlist dd ol:last-child::after,
.hlist dd ul:last-child::after {
content: ")";
}
/* Add wrapping control */
.hlist {
word-wrap: break-word;
line-height: 1.4;
}
/* Ensure proper spacing between wrapped items */
.hlist li {
margin-right: 0.25em;
}
/* Dark mode support for hlist */
html.skin-theme-clientpref-night .hlist dd,
html.skin-theme-clientpref-night .hlist dt,
html.skin-theme-clientpref-night .hlist li {
color: #DDD;
}
html.skin-theme-clientpref-night .hlist dd::after,
html.skin-theme-clientpref-night .hlist dt::after,
html.skin-theme-clientpref-night .hlist li::after {
color: #999;
}
@media (prefers-color-scheme: dark) {
html.skin-theme-clientpref-os .hlist dd,
html.skin-theme-clientpref-os .hlist dt,
html.skin-theme-clientpref-os .hlist li {
color: #DDD;
}
html.skin-theme-clientpref-os .hlist dd::after,
html.skin-theme-clientpref-os .hlist dt::after,
html.skin-theme-clientpref-os .hlist li::after {
color: #999;
}
}
bjfs3idavrpfl2t925h3s893if9e868
Utenti:GianAntonucci/Bozza/Tèssira dû Regnu Unitu
2
66467
770430
2025-07-04T11:19:18Z
GianAntonucci
46609
Pàggina nova: {{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPajisi | Wikidata = Q145 | Nomu = Regnu Unitu | CapuStatu = Re Carlo III | CapuGuviernu = Rishi Sunak }}
770430
wikitext
text/x-wiki
{{ Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraPajisi
| Wikidata = Q145
| Nomu = Regnu Unitu
| CapuStatu = Re Carlo III
| CapuGuviernu = Rishi Sunak
}}
th3i4hqg32vjawresn1z86w1x3nwrwy
Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu
2
66468
770432
2025-07-04T11:28:39Z
GianAntonucci
46609
Pàggina nova: <noinclude> == Zoccu è == Sta tèssira è a basi pi tutti i pirsunaggi pùbblici. Pò èssiri usata direttamenti o comu basi pi tèssiri cchiù spicìfichi (pulìtici, artisti, scrittùra, ecc.). == Comu si usa == <pre> {{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu | Nomu = | Wikidata = | Mmàggini = | Nascita = | Morti = | Naziunalità = | Occupazzioni = | ... }} </pre> == Paràmitri == === Dati basi === * '''Nomu''' - Nomu dû pirsunàggiu * '''Wikida...
770432
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è a basi pi tutti i pirsunaggi pùbblici. Pò èssiri usata direttamenti o comu basi pi tèssiri cchiù spicìfichi (pulìtici, artisti, scrittùra, ecc.).
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu
| Nomu =
| Wikidata =
| Mmàggini =
| Nascita =
| Morti =
| Naziunalità =
| Occupazzioni =
| ...
}}
</pre>
== Paràmitri ==
=== Dati basi ===
* '''Nomu''' - Nomu dû pirsunàggiu
* '''Wikidata''' - ID Wikidata
* '''NomuCumpletu''' - Nomu cumpletu ufficiali
* '''NomuNàscita''' - Nomu â nàscita (si diffirenti)
* '''Pseuònimu''' - Pseuònimu o nomu d'arti
=== Mmàggini ===
* '''Mmàggini''' - Futugrafia principali
* '''Didascalìa''' - Didascalìa pâ futugrafia
* '''Firma''' - Mmàggini dâ firma
=== Dati biugràfici ===
* '''Nascita''' - Data di nàscita
* '''LochiNascita''' - Locu di nàscita
* '''Morti''' - Data di morti
* '''LochiMorti''' - Locu di morti
* '''CausaMorti''' - Causa dâ morti
* '''LochiSipurtura''' - Unni è sippillutu
* '''Naziunalità''' - Naziunalità
* '''Cittadinanza''' - Cittadinanza (si diffirenti)
=== Famigghia ===
* '''Patri''' - Nomu dû patri
* '''Matri''' - Nomu dâ matri
* '''CònjugiCivili''' - Cònjugi/maritu/mugghieri
* '''Figghi''' - Figghi
* '''Parenti''' - Àutri parenti mpurtanti
=== Attività ===
* '''Occupazzioni''' - Occupazzioni principali
* '''PiriuduAttività''' - Anni d'attività
* '''OpiriNotèvuli''' - Òpiri o risultati principali
* '''PremiFamusi''' - Premi e ricunuscimenti
=== Furmazzjoni ===
* '''StudiUniversitari''' - Università e laurea
* '''StudiScundari''' - Scola sicundaria
* '''Maistri''' - Maistri mpurtanti
== Esempiu ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nascita
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Morti
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| Abbirtenza1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| Abbirtenza2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| Sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
<!-- Nome e titolo -->
| Tìtulu = {{#if: {{{Nomu|}}} | {{{Nomu}}} | {{#if: {{{Wikidata|}}} | {{WikidataLabel|from={{{Wikidata}}}}} | {{PAGENAME}} }} }}
| Suttatìtulu = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P106|from={{{Wikidata}}}}} }} }}
<!-- Pseudonimo o nome completo se presente -->
{{#if: {{{NomuCumpletu|}}}{{{Pseuònimu|}}} |
{{!}} Supra = {{#if: {{{NomuCumpletu|}}} | {{{NomuCumpletu}}} | {{{Pseuònimu}}} }}
}}
<!-- Immagine principale -->
| MmàgginiSupra = {{#if: {{{Mmàggini|}}} | {{{Mmàggini}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P18|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSupra = {{{Didascalìa|}}}
<!-- Dati biografici - sezione automatica -->
| Vuci1 = Nascita
| Valuri1 = {{#if: {{{Nascita|}}} | {{{Nascita}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P569|from={{{Wikidata}}}}} }} }}{{#if: {{{LochiNascita|}}} | <br/>{{{LochiNascita}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P19|from={{{Wikidata}}}}} | <br/>{{Wikidata|1=P19|from={{{Wikidata}}}}} }} }} }}
| Gruppu1 = Dati pirsunali
| Prupità1 = P569
| Vuci2 = {{#if: {{{Morti|}}} | Morti | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P570|from={{{Wikidata}}}}} | Morti }} }} }}
| Valuri2 = {{#if: {{{Morti|}}} | {{{Morti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P570|from={{{Wikidata}}}}} }} }}{{#if: {{{LochiMorti|}}} | <br/>{{{LochiMorti}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P20|from={{{Wikidata}}}}} | <br/>{{Wikidata|1=P20|from={{{Wikidata}}}}} }} }} }}
| Gruppu2 = {{#if: {{{Morti|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P570|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità2 = P570
| Vuci3 = {{#if: {{{CausaMorti|}}} | Causa dâ morti | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P509|from={{{Wikidata}}}}} | Causa dâ morti }} }} }}
| Valuri3 = {{#if: {{{CausaMorti|}}} | {{{CausaMorti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P509|from={{{Wikidata}}}}} }} }}
| Gruppu3 = {{#if: {{{CausaMorti|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P509|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità3 = P509
| Vuci4 = {{#if: {{{LochiSipurtura|}}} | Locu di sipurtura | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P119|from={{{Wikidata}}}}} | Locu di sipurtura }} }} }}
| Valuri4 = {{#if: {{{LochiSipurtura|}}} | {{{LochiSipurtura}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P119|from={{{Wikidata}}}}} }} }}
| Gruppu4 = {{#if: {{{LochiSipurtura|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P119|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità4 = P119
| Vuci5 = Naziunalità
| Valuri5 = {{#if: {{{Naziunalità|}}} | {{{Naziunalità}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P27|from={{{Wikidata}}}}} }} }}
| Gruppu5 = Dati pirsunali
| Prupità5 = P27
| Vuci6 = {{#if: {{{Cittadinanza|}}} | Cittadinanza | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P27|from={{{Wikidata}}}|max=2}} | Cittadinanza }} }} }}
| Valuri6 = {{#if: {{{Cittadinanza|}}} | {{{Cittadinanza}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P27|from={{{Wikidata}}}|max=2}} | {{Wikidata|1=P27|from={{{Wikidata}}}}} }} }} }}
| Gruppu6 = {{#if: {{{Cittadinanza|}}} | Dati pirsunali }}
| Classi6 = {{#if: {{{Cittadinanza|}}} | | plainlist }}
<!-- Famiglia - sezione automatica -->
| Vuci7 = {{#if: {{{Patri|}}} | Patri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P22|from={{{Wikidata}}}}} | Patri }} }} }}
| Valuri7 = {{#if: {{{Patri|}}} | {{{Patri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P22|from={{{Wikidata}}}}} }} }}
| Gruppu7 = {{#if: {{{Patri|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P22|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità7 = P22
| Vuci8 = {{#if: {{{Matri|}}} | Matri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P25|from={{{Wikidata}}}}} | Matri }} }} }}
| Valuri8 = {{#if: {{{Matri|}}} | {{{Matri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P25|from={{{Wikidata}}}}} }} }}
| Gruppu8 = {{#if: {{{Matri|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P25|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità8 = P25
| Vuci9 = {{#if: {{{CònjugiCivili|}}} | Cònjugi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P26|from={{{Wikidata}}}}} | Cònjugi }} }} }}
| Valuri9 = {{#if: {{{CònjugiCivili|}}} | {{{CònjugiCivili}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P26|from={{{Wikidata}}}}} }} }}
| Gruppu9 = {{#if: {{{CònjugiCivili|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P26|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità9 = P26
| Classi9 = plainlist
| Vuci10 = {{#if: {{{Figghi|}}} | Figghi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P40|from={{{Wikidata}}}}} | Figghi }} }} }}
| Valuri10 = {{#if: {{{Figghi|}}} | {{{Figghi}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P40|from={{{Wikidata}}}}} }} }}
| Gruppu10 = {{#if: {{{Figghi|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P40|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità10 = P40
| Classi10 = plainlist
| Vuci11 = {{#if: {{{Parenti|}}} | Parenti notèvuli }}
| Valuri11 = {{{Parenti|}}}
| Gruppu11 = {{#if: {{{Parenti|}}} | Famigghia }}
| Classi11 = plainlist
<!-- Attività professionale - sezione automatica -->
| Vuci12 = {{#if: {{{Occupazzioni|}}} | Occupazzioni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P106|from={{{Wikidata}}}}} | Occupazzioni }} }} }}
| Valuri12 = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P106|from={{{Wikidata}}}}} }} }}
| Gruppu12 = {{#if: {{{Occupazzioni|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P106|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità12 = P106
| Classi12 = plainlist
| Vuci13 = {{#if: {{{PiriuduAttività|}}} | Piriudu attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P2031|from={{{Wikidata}}}}} | Piriudu attività }} }} }}
| Valuri13 = {{#if: {{{PiriuduAttività|}}} | {{{PiriuduAttività}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P2031|from={{{Wikidata}}}}}–{{Wikidata|1=P2032|from={{{Wikidata}}}}} }} }}
| Gruppu13 = {{#if: {{{PiriuduAttività|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P2031|from={{{Wikidata}}}}} | Attività }} }} }}
| Vuci14 = {{#if: {{{OpiriNotèvuli|}}} | Òpiri notèvuli | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P800|from={{{Wikidata}}}}} | Òpiri notèvuli }} }} }}
| Valuri14 = {{#if: {{{OpiriNotèvuli|}}} | {{{OpiriNotèvuli}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P800|from={{{Wikidata}}}|max=5}} }} }}
| Gruppu14 = {{#if: {{{OpiriNotèvuli|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P800|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità14 = P800
| Classi14 = plainlist
| Vuci15 = {{#if: {{{PremiFamusi|}}} | Premi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P166|from={{{Wikidata}}}}} | Premi }} }} }}
| Valuri15 = {{#if: {{{PremiFamusi|}}} | {{{PremiFamusi}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P166|from={{{Wikidata}}}}} }} }}
| Gruppu15 = {{#if: {{{PremiFamusi|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P166|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità15 = P166
| Classi15 = plainlist
<!-- Formazione - sezione automatica -->
| Vuci16 = {{#if: {{{StudiUniversitari|}}} | Studi universitari | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P69|from={{{Wikidata}}}}} | Studi universitari }} }} }}
| Valuri16 = {{#if: {{{StudiUniversitari|}}} | {{{StudiUniversitari}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P69|from={{{Wikidata}}}}} }} }}
| Gruppu16 = {{#if: {{{StudiUniversitari|}}} | Furmazzjoni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P69|from={{{Wikidata}}}}} | Furmazzjoni }} }} }}
| Prupità16 = P69
| Classi16 = plainlist
| Vuci17 = {{#if: {{{StudiScundari|}}} | Studi sicundari }}
| Valuri17 = {{{StudiScundari|}}}
| Gruppu17 = {{#if: {{{StudiScundari|}}} | Furmazzjoni }}
| Vuci18 = {{#if: {{{Maistri|}}} | Maistri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P1066|from={{{Wikidata}}}}} | Maistri }} }} }}
| Valuri18 = {{#if: {{{Maistri|}}} | {{{Maistri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1066|from={{{Wikidata}}}}} }} }}
| Gruppu18 = {{#if: {{{Maistri|}}} | Furmazzjoni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P1066|from={{{Wikidata}}}}} | Furmazzjoni }} }} }}
| Prupità18 = P1066
| Classi18 = plainlist
<!-- Firma -->
| MmàgginiSutta = {{#if: {{{Firma|}}} | {{{Firma}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P109|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSutta = {{#if: {{{Firma|}}} | Firma | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P109|from={{{Wikidata}}}}} | Firma }} }} }}
<!-- Collegamenti -->
| Vuci30 = {{#if: {{{SituWeb|}}} | Situ web | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P856|from={{{Wikidata}}}}} | Situ web }} }} }}
| Valuri30 = {{#if: {{{SituWeb|}}} | [{{{SituWeb}}} {{{SituWeb}}}] | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P856|from={{{Wikidata}}}}} }} }}
| Gruppu30 = {{#if: {{{SituWeb|}}} | Lijami | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P856|from={{{Wikidata}}}}} | Lijami }} }} }}
| Prupità30 = P856
<!-- Footer e parametri finali -->
| PediPàggina = {{{PediPàggina|}}}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|}}}
| LijamiWikidata = {{#if: {{{Wikidata|}}} | yes }}
| Sutta = {{{Sutta|}}}
<!-- Parametri custom per estensibilità -->
{{{1|}}}
{{{2|}}}
{{{3|}}}
{{{4|}}}
{{{5|}}}
}}
s0a5i1sdwu35934yo493q1yrh28n9qz
770436
770432
2025-07-04T11:48:24Z
GianAntonucci
46609
770436
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è a basi pi tutti i pirsunaggi pùbblici. Pò èssiri usata direttamenti o comu basi pi tèssiri cchiù spicìfichi (pulìtici, artisti, scrittùra, ecc.).
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu
| Nomu =
| Wikidata =
| Mmàggini =
| Nascita =
| Morti =
| Naziunalità =
| Occupazzioni =
| ...
}}
</pre>
== Paràmitri ==
=== Dati basi ===
* '''Nomu''' - Nomu dû pirsunàggiu
* '''Wikidata''' - ID Wikidata
* '''NomuCumpletu''' - Nomu cumpletu ufficiali
* '''NomuNàscita''' - Nomu â nàscita (si diffirenti)
* '''Pseuònimu''' - Pseuònimu o nomu d'arti
=== Mmàggini ===
* '''Mmàggini''' - Futugrafia principali
* '''Didascalìa''' - Didascalìa pâ futugrafia
* '''Firma''' - Mmàggini dâ firma
=== Dati biugràfici ===
* '''Nascita''' - Data di nàscita
* '''LochiNascita''' - Locu di nàscita
* '''Morti''' - Data di morti
* '''LochiMorti''' - Locu di morti
* '''CausaMorti''' - Causa dâ morti
* '''LochiSipurtura''' - Unni è sippillutu
* '''Naziunalità''' - Naziunalità
* '''Cittadinanza''' - Cittadinanza (si diffirenti)
=== Famigghia ===
* '''Patri''' - Nomu dû patri
* '''Matri''' - Nomu dâ matri
* '''CònjugiCivili''' - Cònjugi/maritu/mugghieri
* '''Figghi''' - Figghi
* '''Parenti''' - Àutri parenti mpurtanti
=== Attività ===
* '''Occupazzioni''' - Occupazzioni principali
* '''PiriuduAttività''' - Anni d'attività
* '''OpiriNotèvuli''' - Òpiri o risultati principali
* '''PremiFamusi''' - Premi e ricunuscimenti
=== Furmazzjoni ===
* '''StudiUniversitari''' - Università e laurea
* '''StudiScundari''' - Scola sicundaria
* '''Maistri''' - Maistri mpurtanti
== Esempiu ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Wikidata = {{{Wikidata|}}} | Tìtulu = {{#if: {{{Nomu|}}} | {{{Nomu}}} | {{#if: {{{Wikidata|}}} | {{WikidataLabel|from={{{Wikidata}}}}} | {{PAGENAME}} }} }}
| Suttatìtulu = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P106|from={{{Wikidata}}}}} }} }}
| no_float = yes
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nascita
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Morti
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| Abbirtenza1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| Abbirtenza2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| Sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
<!-- Nome e titolo -->
| Tìtulu = {{#if: {{{Nomu|}}} | {{{Nomu}}} | {{#if: {{{Wikidata|}}} | {{WikidataLabel|from={{{Wikidata}}}}} | {{PAGENAME}} }} }}
| Suttatìtulu = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P106|from={{{Wikidata}}}}} }} }}
<!-- Pseudonimo o nome completo se presente -->
{{#if: {{{NomuCumpletu|}}}{{{Pseuònimu|}}} |
{{!}} Supra = {{#if: {{{NomuCumpletu|}}} | {{{NomuCumpletu}}} | {{{Pseuònimu}}} }}
}}
<!-- Immagine principale -->
| MmàgginiSupra = {{#if: {{{Mmàggini|}}} | {{{Mmàggini}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P18|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSupra = {{{Didascalìa|}}}
<!-- Dati biografici - sezione automatica -->
| Vuci1 = Nascita
| Valuri1 = {{#if: {{{Nascita|}}} | {{{Nascita}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P569|from={{{Wikidata}}}}} }} }}{{#if: {{{LochiNascita|}}} | <br/>{{{LochiNascita}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P19|from={{{Wikidata}}}}} | <br/>{{Wikidata|1=P19|from={{{Wikidata}}}}} }} }} }}
| Gruppu1 = Dati pirsunali
| Prupità1 = P569
| Vuci2 = {{#if: {{{Morti|}}} | Morti | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P570|from={{{Wikidata}}}}} | Morti }} }} }}
| Valuri2 = {{#if: {{{Morti|}}} | {{{Morti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P570|from={{{Wikidata}}}}} }} }}{{#if: {{{LochiMorti|}}} | <br/>{{{LochiMorti}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P20|from={{{Wikidata}}}}} | <br/>{{Wikidata|1=P20|from={{{Wikidata}}}}} }} }} }}
| Gruppu2 = {{#if: {{{Morti|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P570|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità2 = P570
| Vuci3 = {{#if: {{{CausaMorti|}}} | Causa dâ morti | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P509|from={{{Wikidata}}}}} | Causa dâ morti }} }} }}
| Valuri3 = {{#if: {{{CausaMorti|}}} | {{{CausaMorti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P509|from={{{Wikidata}}}}} }} }}
| Gruppu3 = {{#if: {{{CausaMorti|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P509|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità3 = P509
| Vuci4 = {{#if: {{{LochiSipurtura|}}} | Locu di sipurtura | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P119|from={{{Wikidata}}}}} | Locu di sipurtura }} }} }}
| Valuri4 = {{#if: {{{LochiSipurtura|}}} | {{{LochiSipurtura}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P119|from={{{Wikidata}}}}} }} }}
| Gruppu4 = {{#if: {{{LochiSipurtura|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P119|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità4 = P119
| Vuci5 = Naziunalità
| Valuri5 = {{#if: {{{Naziunalità|}}} | {{{Naziunalità}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P27|from={{{Wikidata}}}}} }} }}
| Gruppu5 = Dati pirsunali
| Prupità5 = P27
| Vuci6 = {{#if: {{{Cittadinanza|}}} | Cittadinanza | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P27|from={{{Wikidata}}}|max=2}} | Cittadinanza }} }} }}
| Valuri6 = {{#if: {{{Cittadinanza|}}} | {{{Cittadinanza}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P27|from={{{Wikidata}}}|max=2}} | {{Wikidata|1=P27|from={{{Wikidata}}}}} }} }} }}
| Gruppu6 = {{#if: {{{Cittadinanza|}}} | Dati pirsunali }}
| Classi6 = {{#if: {{{Cittadinanza|}}} | | plainlist }}
<!-- Famiglia - sezione automatica -->
| Vuci7 = {{#if: {{{Patri|}}} | Patri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P22|from={{{Wikidata}}}}} | Patri }} }} }}
| Valuri7 = {{#if: {{{Patri|}}} | {{{Patri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P22|from={{{Wikidata}}}}} }} }}
| Gruppu7 = {{#if: {{{Patri|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P22|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità7 = P22
| Vuci8 = {{#if: {{{Matri|}}} | Matri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P25|from={{{Wikidata}}}}} | Matri }} }} }}
| Valuri8 = {{#if: {{{Matri|}}} | {{{Matri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P25|from={{{Wikidata}}}}} }} }}
| Gruppu8 = {{#if: {{{Matri|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P25|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità8 = P25
| Vuci9 = {{#if: {{{CònjugiCivili|}}} | Cònjugi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P26|from={{{Wikidata}}}}} | Cònjugi }} }} }}
| Valuri9 = {{#if: {{{CònjugiCivili|}}} | {{{CònjugiCivili}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P26|from={{{Wikidata}}}}} }} }}
| Gruppu9 = {{#if: {{{CònjugiCivili|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P26|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità9 = P26
| Classi9 = plainlist
| Vuci10 = {{#if: {{{Figghi|}}} | Figghi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P40|from={{{Wikidata}}}}} | Figghi }} }} }}
| Valuri10 = {{#if: {{{Figghi|}}} | {{{Figghi}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P40|from={{{Wikidata}}}}} }} }}
| Gruppu10 = {{#if: {{{Figghi|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P40|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità10 = P40
| Classi10 = plainlist
| Vuci11 = {{#if: {{{Parenti|}}} | Parenti notèvuli }}
| Valuri11 = {{{Parenti|}}}
| Gruppu11 = {{#if: {{{Parenti|}}} | Famigghia }}
| Classi11 = plainlist
<!-- Attività professionale - sezione automatica -->
| Vuci12 = {{#if: {{{Occupazzioni|}}} | Occupazzioni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P106|from={{{Wikidata}}}}} | Occupazzioni }} }} }}
| Valuri12 = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P106|from={{{Wikidata}}}}} }} }}
| Gruppu12 = {{#if: {{{Occupazzioni|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P106|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità12 = P106
| Classi12 = plainlist
| Vuci13 = {{#if: {{{PiriuduAttività|}}} | Piriudu attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P2031|from={{{Wikidata}}}}} | Piriudu attività }} }} }}
| Valuri13 = {{#if: {{{PiriuduAttività|}}} | {{{PiriuduAttività}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P2031|from={{{Wikidata}}}}}–{{Wikidata|1=P2032|from={{{Wikidata}}}}} }} }}
| Gruppu13 = {{#if: {{{PiriuduAttività|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P2031|from={{{Wikidata}}}}} | Attività }} }} }}
| Vuci14 = {{#if: {{{OpiriNotèvuli|}}} | Òpiri notèvuli | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P800|from={{{Wikidata}}}}} | Òpiri notèvuli }} }} }}
| Valuri14 = {{#if: {{{OpiriNotèvuli|}}} | {{{OpiriNotèvuli}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P800|from={{{Wikidata}}}|max=5}} }} }}
| Gruppu14 = {{#if: {{{OpiriNotèvuli|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P800|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità14 = P800
| Classi14 = plainlist
| Vuci15 = {{#if: {{{PremiFamusi|}}} | Premi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P166|from={{{Wikidata}}}}} | Premi }} }} }}
| Valuri15 = {{#if: {{{PremiFamusi|}}} | {{{PremiFamusi}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P166|from={{{Wikidata}}}}} }} }}
| Gruppu15 = {{#if: {{{PremiFamusi|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P166|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità15 = P166
| Classi15 = plainlist
<!-- Formazione - sezione automatica -->
| Vuci16 = {{#if: {{{StudiUniversitari|}}} | Studi universitari | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P69|from={{{Wikidata}}}}} | Studi universitari }} }} }}
| Valuri16 = {{#if: {{{StudiUniversitari|}}} | {{{StudiUniversitari}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P69|from={{{Wikidata}}}}} }} }}
| Gruppu16 = {{#if: {{{StudiUniversitari|}}} | Furmazzjoni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P69|from={{{Wikidata}}}}} | Furmazzjoni }} }} }}
| Prupità16 = P69
| Classi16 = plainlist
| Vuci17 = {{#if: {{{StudiScundari|}}} | Studi sicundari }}
| Valuri17 = {{{StudiScundari|}}}
| Gruppu17 = {{#if: {{{StudiScundari|}}} | Furmazzjoni }}
| Vuci18 = {{#if: {{{Maistri|}}} | Maistri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P1066|from={{{Wikidata}}}}} | Maistri }} }} }}
| Valuri18 = {{#if: {{{Maistri|}}} | {{{Maistri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1066|from={{{Wikidata}}}}} }} }}
| Gruppu18 = {{#if: {{{Maistri|}}} | Furmazzjoni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P1066|from={{{Wikidata}}}}} | Furmazzjoni }} }} }}
| Prupità18 = P1066
| Classi18 = plainlist
<!-- Firma -->
| MmàgginiSutta = {{#if: {{{Firma|}}} | {{{Firma}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P109|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSutta = {{#if: {{{Firma|}}} | Firma | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P109|from={{{Wikidata}}}}} | Firma }} }} }}
<!-- Collegamenti -->
| Vuci30 = {{#if: {{{SituWeb|}}} | Situ web | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P856|from={{{Wikidata}}}}} | Situ web }} }} }}
| Valuri30 = {{#if: {{{SituWeb|}}} | [{{{SituWeb}}} {{{SituWeb}}}] | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P856|from={{{Wikidata}}}}} }} }}
| Gruppu30 = {{#if: {{{SituWeb|}}} | Lijami | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P856|from={{{Wikidata}}}}} | Lijami }} }} }}
| Prupità30 = P856
<!-- Footer e parametri finali -->
| PediPàggina = {{{PediPàggina|}}}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|}}}
| LijamiWikidata = {{#if: {{{Wikidata|}}} | yes }}
| Sutta = {{{Sutta|}}}
<!-- Parametri custom per estensibilità -->
{{{1|}}}
{{{2|}}}
{{{3|}}}
{{{4|}}}
{{{5|}}}
}}
0zecn93vma93s3uznj70pelcx3oxy6n
770437
770436
2025-07-04T11:50:11Z
GianAntonucci
46609
770437
wikitext
text/x-wiki
<noinclude>
== Zoccu è ==
Sta tèssira è a basi pi tutti i pirsunaggi pùbblici. Pò èssiri usata direttamenti o comu basi pi tèssiri cchiù spicìfichi (pulìtici, artisti, scrittùra, ecc.).
== Comu si usa ==
<pre>
{{Utenti:GianAntonucci/Bozza/Mudeḍḍu:TèssiraCristianu
| Nomu =
| Wikidata =
| Mmàggini =
| Nascita =
| Morti =
| Naziunalità =
| Occupazzioni =
| ...
}}
</pre>
== Paràmitri ==
=== Dati basi ===
* '''Nomu''' - Nomu dû pirsunàggiu
* '''Wikidata''' - ID Wikidata
* '''NomuCumpletu''' - Nomu cumpletu ufficiali
* '''NomuNàscita''' - Nomu â nàscita (si diffirenti)
* '''Pseuònimu''' - Pseuònimu o nomu d'arti
=== Mmàggini ===
* '''Mmàggini''' - Futugrafia principali
* '''Didascalìa''' - Didascalìa pâ futugrafia
* '''Firma''' - Mmàggini dâ firma
=== Dati biugràfici ===
* '''Nascita''' - Data di nàscita
* '''LochiNascita''' - Locu di nàscita
* '''Morti''' - Data di morti
* '''LochiMorti''' - Locu di morti
* '''CausaMorti''' - Causa dâ morti
* '''LochiSipurtura''' - Unni è sippillutu
* '''Naziunalità''' - Naziunalità
* '''Cittadinanza''' - Cittadinanza (si diffirenti)
=== Famigghia ===
* '''Patri''' - Nomu dû patri
* '''Matri''' - Nomu dâ matri
* '''CònjugiCivili''' - Cònjugi/maritu/mugghieri
* '''Figghi''' - Figghi
* '''Parenti''' - Àutri parenti mpurtanti
=== Attività ===
* '''Occupazzioni''' - Occupazzioni principali
* '''PiriuduAttività''' - Anni d'attività
* '''OpiriNotèvuli''' - Òpiri o risultati principali
* '''PremiFamusi''' - Premi e ricunuscimenti
=== Furmazzjoni ===
* '''StudiUniversitari''' - Università e laurea
* '''StudiScundari''' - Scola sicundaria
* '''Maistri''' - Maistri mpurtanti
== Esempiu ==
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| no_float = yes
| Tìtulu = Leonardo Sciascia
| MmàgginiSupra = Leonardo_Sciascia.jpg
| DidascalìaMmàgginiSupra = Leonardo Sciascia nta li anni 1960
| Vuci1 = Nascita
| Valuri1 = 8 di jinnaru 1921<br/>[[Racalmuto]], Sicilia
| Vuci2 = Morti
| Valuri2 = 20 di nuvèmmiru 1989 (68 anni)<br/>[[Palermu]], Sicilia
| Vuci3 = Naziunalità
| Valuri3 = [[File:Flag of Italy.svg|20px]] Taliana
| Abbirtenza1 = Attività
| Vuci4 = Occupazzioni
| Valuri4 =
* Scritturi
* Jurnalista
* Pulìticu
| Classi4 = plainlist
| Vuci5 = Piriudu attività
| Valuri5 = 1950–1989
| Vuci6 = Gèniri littrariu
| Valuri6 = Rumanzu, saggi, tiatra
| Abbirtenza2 = Òpiri principali
| Vuci7 = Libbra famusa
| Valuri7 =
* ''Il giorno della civetta'' (1961)
* ''A ciascuno il suo'' (1966)
* ''Todo modo'' (1974)
| Classi7 = plainlist
| Sutta = Unu dî maiuri scrittùra siciliani dû XX sèculu
}}
</noinclude>
{{#invoke:Bozza/GianAntonucci/Tèssira|stampa
| Wikidata = {{{Wikidata|}}} | Tìtulu = {{#if: {{{Nomu|}}} | {{{Nomu}}} | {{#if: {{{Wikidata|}}} | {{WikidataLabel|from={{{Wikidata}}}}} | {{PAGENAME}} }} }}
| Suttatìtulu = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P106|from={{{Wikidata}}}}} }} }}
{{#if: {{{NomuCumpletu|}}}{{{Pseuònimu|}}} |
{{!}} Supra = {{#if: {{{NomuCumpletu|}}} | {{{NomuCumpletu}}} | {{{Pseuònimu}}} }}
}}
| MmàgginiSupra = {{#if: {{{Mmàggini|}}} | {{{Mmàggini}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P18|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSupra = {{{Didascalìa|}}}
| Vuci1 = Nascita
| Valuri1 = {{#if: {{{Nascita|}}} | {{{Nascita}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P569|from={{{Wikidata}}}}} }} }}{{#if: {{{LochiNascita|}}} | <br/>{{{LochiNascita}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P19|from={{{Wikidata}}}}} | <br/>{{Wikidata|1=P19|from={{{Wikidata}}}}} }} }} }}
| Gruppu1 = Dati pirsunali
| Prupità1 = P569
| Vuci2 = {{#if: {{{Morti|}}} | Morti | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P570|from={{{Wikidata}}}}} | Morti }} }} }}
| Valuri2 = {{#if: {{{Morti|}}} | {{{Morti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P570|from={{{Wikidata}}}}} }} }}{{#if: {{{LochiMorti|}}} | <br/>{{{LochiMorti}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P20|from={{{Wikidata}}}}} | <br/>{{Wikidata|1=P20|from={{{Wikidata}}}}} }} }} }}
| Gruppu2 = {{#if: {{{Morti|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P570|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità2 = P570
| Vuci3 = {{#if: {{{CausaMorti|}}} | Causa dâ morti | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P509|from={{{Wikidata}}}}} | Causa dâ morti }} }} }}
| Valuri3 = {{#if: {{{CausaMorti|}}} | {{{CausaMorti}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P509|from={{{Wikidata}}}}} }} }}
| Gruppu3 = {{#if: {{{CausaMorti|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P509|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità3 = P509
| Vuci4 = {{#if: {{{LochiSipurtura|}}} | Locu di sipurtura | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P119|from={{{Wikidata}}}}} | Locu di sipurtura }} }} }}
| Valuri4 = {{#if: {{{LochiSipurtura|}}} | {{{LochiSipurtura}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P119|from={{{Wikidata}}}}} }} }}
| Gruppu4 = {{#if: {{{LochiSipurtura|}}} | Dati pirsunali | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P119|from={{{Wikidata}}}}} | Dati pirsunali }} }} }}
| Prupità4 = P119
| Vuci5 = Naziunalità
| Valuri5 = {{#if: {{{Naziunalità|}}} | {{{Naziunalità}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P27|from={{{Wikidata}}}}} }} }}
| Gruppu5 = Dati pirsunali
| Prupità5 = P27
| Vuci6 = {{#if: {{{Cittadinanza|}}} | Cittadinanza | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P27|from={{{Wikidata}}}|max=2}} | Cittadinanza }} }} }}
| Valuri6 = {{#if: {{{Cittadinanza|}}} | {{{Cittadinanza}}} | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P27|from={{{Wikidata}}}|max=2}} | {{Wikidata|1=P27|from={{{Wikidata}}}}} }} }} }}
| Gruppu6 = {{#if: {{{Cittadinanza|}}} | Dati pirsunali }}
| Classi6 = {{#if: {{{Cittadinanza|}}} | | plainlist }}
| Vuci7 = {{#if: {{{Patri|}}} | Patri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P22|from={{{Wikidata}}}}} | Patri }} }} }}
| Valuri7 = {{#if: {{{Patri|}}} | {{{Patri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P22|from={{{Wikidata}}}}} }} }}
| Gruppu7 = {{#if: {{{Patri|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P22|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità7 = P22
| Vuci8 = {{#if: {{{Matri|}}} | Matri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P25|from={{{Wikidata}}}}} | Matri }} }} }}
| Valuri8 = {{#if: {{{Matri|}}} | {{{Matri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P25|from={{{Wikidata}}}}} }} }}
| Gruppu8 = {{#if: {{{Matri|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P25|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità8 = P25
| Vuci9 = {{#if: {{{CònjugiCivili|}}} | Cònjugi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P26|from={{{Wikidata}}}}} | Cònjugi }} }} }}
| Valuri9 = {{#if: {{{CònjugiCivili|}}} | {{{CònjugiCivili}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P26|from={{{Wikidata}}}}} }} }}
| Gruppu9 = {{#if: {{{CònjugiCivili|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P26|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità9 = P26
| Classi9 = plainlist
| Vuci10 = {{#if: {{{Figghi|}}} | Figghi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P40|from={{{Wikidata}}}}} | Figghi }} }} }}
| Valuri10 = {{#if: {{{Figghi|}}} | {{{Figghi}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P40|from={{{Wikidata}}}}} }} }}
| Gruppu10 = {{#if: {{{Figghi|}}} | Famigghia | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P40|from={{{Wikidata}}}}} | Famigghia }} }} }}
| Prupità10 = P40
| Classi10 = plainlist
| Vuci11 = {{#if: {{{Parenti|}}} | Parenti notèvuli }}
| Valuri11 = {{{Parenti|}}}
| Gruppu11 = {{#if: {{{Parenti|}}} | Famigghia }}
| Classi11 = plainlist
| Vuci12 = {{#if: {{{Occupazzioni|}}} | Occupazzioni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P106|from={{{Wikidata}}}}} | Occupazzioni }} }} }}
| Valuri12 = {{#if: {{{Occupazzioni|}}} | {{{Occupazzioni}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P106|from={{{Wikidata}}}}} }} }}
| Gruppu12 = {{#if: {{{Occupazzioni|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P106|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità12 = P106
| Classi12 = plainlist
| Vuci13 = {{#if: {{{PiriuduAttività|}}} | Piriudu attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P2031|from={{{Wikidata}}}}} | Piriudu attività }} }} }}
| Valuri13 = {{#if: {{{PiriuduAttività|}}} | {{{PiriuduAttività}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P2031|from={{{Wikidata}}}}}–{{Wikidata|1=P2032|from={{{Wikidata}}}}} }} }}
| Gruppu13 = {{#if: {{{PiriuduAttività|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P2031|from={{{Wikidata}}}}} | Attività }} }} }}
| Vuci14 = {{#if: {{{OpiriNotèvuli|}}} | Òpiri notèvuli | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P800|from={{{Wikidata}}}}} | Òpiri notèvuli }} }} }}
| Valuri14 = {{#if: {{{OpiriNotèvuli|}}} | {{{OpiriNotèvuli}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P800|from={{{Wikidata}}}|max=5}} }} }}
| Gruppu14 = {{#if: {{{OpiriNotèvuli|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P800|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità14 = P800
| Classi14 = plainlist
| Vuci15 = {{#if: {{{PremiFamusi|}}} | Premi | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P166|from={{{Wikidata}}}}} | Premi }} }} }}
| Valuri15 = {{#if: {{{PremiFamusi|}}} | {{{PremiFamusi}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P166|from={{{Wikidata}}}}} }} }}
| Gruppu15 = {{#if: {{{PremiFamusi|}}} | Attività | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P166|from={{{Wikidata}}}}} | Attività }} }} }}
| Prupità15 = P166
| Classi15 = plainlist
| Vuci16 = {{#if: {{{StudiUniversitari|}}} | Studi universitari | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P69|from={{{Wikidata}}}}} | Studi universitari }} }} }}
| Valuri16 = {{#if: {{{StudiUniversitari|}}} | {{{StudiUniversitari}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P69|from={{{Wikidata}}}}} }} }}
| Gruppu16 = {{#if: {{{StudiUniversitari|}}} | Furmazzjoni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P69|from={{{Wikidata}}}}} | Furmazzjoni }} }} }}
| Prupità16 = P69
| Classi16 = plainlist
| Vuci17 = {{#if: {{{StudiScundari|}}} | Studi sicundari }}
| Valuri17 = {{{StudiScundari|}}}
| Gruppu17 = {{#if: {{{StudiScundari|}}} | Furmazzjoni }}
| Vuci18 = {{#if: {{{Maistri|}}} | Maistri | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P1066|from={{{Wikidata}}}}} | Maistri }} }} }}
| Valuri18 = {{#if: {{{Maistri|}}} | {{{Maistri}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P1066|from={{{Wikidata}}}}} }} }}
| Gruppu18 = {{#if: {{{Maistri|}}} | Furmazzjoni | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P1066|from={{{Wikidata}}}}} | Furmazzjoni }} }} }}
| Prupità18 = P1066
| Classi18 = plainlist
| MmàgginiSutta = {{#if: {{{Firma|}}} | {{{Firma}}} | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P109|from={{{Wikidata}}}}} }} }}
| DidascalìaMmàgginiSutta = {{#if: {{{Firma|}}} | Firma | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P109|from={{{Wikidata}}}}} | Firma }} }} }}
| Vuci30 = {{#if: {{{SituWeb|}}} | Situ web | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P856|from={{{Wikidata}}}}} | Situ web }} }} }}
| Valuri30 = {{#if: {{{SituWeb|}}} | [{{{SituWeb}}} {{{SituWeb}}}] | {{#if: {{{Wikidata|}}} | {{Wikidata|1=P856|from={{{Wikidata}}}}} }} }}
| Gruppu30 = {{#if: {{{SituWeb|}}} | Lijami | {{#if: {{{Wikidata|}}} | {{#if: {{Wikidata|1=P856|from={{{Wikidata}}}}} | Lijami }} }} }}
| Prupità30 = P856
| PediPàggina = {{{PediPàggina|}}}
| NomuMudeḍḍu = {{{NomuMudeḍḍu|}}}
| LijamiWikidata = {{#if: {{{Wikidata|}}} | yes }}
| Sutta = {{{Sutta|}}}
{{{1|}}}
{{{2|}}}
{{{3|}}}
{{{4|}}}
{{{5|}}}
}}
55wwtie4iskztmyvalu384t9z3n94c7