Discussioni aiuto:Lua

Ultimo commento: 3 anni fa, lasciato da Ignazio Cannata in merito all'argomento Passare tag ai moduli

Spazi vs. tabulazioni modifica

Col senno di poi indicherei di usare <tab> non i quattro spazi, de facto è lo stile che generalmente usiamo. Che l'editor di wikimedia usi gli spazi è abbastanza irrilevante, normalmente i moduli si modificano su un editor esterno, salvo che per correzioni rapide al volo.--Moroboshi scrivimi 07:44, 12 dic 2017 (CET)Rispondi

[@ Moroboshi] Domanda: esiste un codice HTML corrispondente a <tab> che funzioni anche fuori dal tag <pre></pre>? --Ignazio (msg) 08:17, 12 dic 2017 (CET)Rispondi
Onestamente non lo so.--Moroboshi scrivimi 09:15, 12 dic 2017 (CET)Rispondi
[@ Moroboshi] Ho riformulato in questo modo. --Ignazio (msg) 10:59, 12 dic 2017 (CET)Rispondi
Ottimo, stai facendo un buon lavoro.--Moroboshi scrivimi 11:10, 12 dic 2017 (CET)Rispondi
Grazie! --Ignazio (msg) 11:16, 12 dic 2017 (CET)Rispondi
All'inizio WikiEditor inseriva quattro spazi quando si utilizzava il tab, poi è stato fixato, da lì forse deriva l'accenno agli spazi, che ho quindi rimosso del tutto. --Rotpunkt (msg) 20:40, 12 dic 2017 (CET)Rispondi
Ciao Rotpunkt, grazie per le correzioni :) --Ignazio (msg) 21:06, 12 dic 2017 (CET)Rispondi

Passare tag ai moduli modifica

[@ Sakretsu, Moroboshi] Qualcuno di voi conosce un modo per manipolare i tag XML tramite Lua come se fossero semplici stringhe? Per esempio, scrivendo {{#invoke:String|match|1<ref></ref>|(%d)<ref>|plain=false}} mi sarei aspettato (senza ragionarci troppo) di ottenere 1. E invece no, perché a quanto pare il tag viene "interpretato" prima di essere passato al modulo.

P.S. Il caso nasce da questa discussione. --Horcrux (msg) 17:09, 5 nov 2020 (CET)Rispondi

Penso che sia possibile farlo manipolando gli Strip Marker, mi pare di averlo visto fare su un modulo di en.wiki, ma devo far mente locale per ricordare qual'era--Moroboshi scrivimi 18:10, 5 nov 2020 (CET)Rispondi
[@ Moroboshi] Capito, grazie! Avevo incontrato quei marker (senza avere idea di cosa fossero :-D) facendo dei test come questo:
{{#invoke:String|match|<math>prova</math>|.(.*)|plain=false}} → '"`UNIQ--math-0000000C-QINU`"'
ma non conoscendone il funzionamento ho preferito chiedere (e ho fatto bene :-)).
Provando qualcosa di più preciso:
{{#ifeq:{{#invoke:String|match|1<math>prova</math>|(%d)\127'"`UNIQ.*QINU`"'\127|plain=false}}|1|funziona|non funziona}} → non funziona
{{#ifeq:{{#invoke:String|match|1<math>prova</math>|(%d).'"`UNIQ.*QINU`"'.|plain=false}}|1|funziona|non funziona}} → funziona
Resta da capire con quale carattere dovremmo sostituire \127, che invece sembra funzionare quando usato direttamente nei moduli. --Horcrux (msg) 19:37, 5 nov 2020 (CET)Rispondi
Puoi sostituirlo con %c--Sakretsu (炸裂) 21:22, 5 nov 2020 (CET)Rispondi
Grazie mille a entrambi! --Horcrux (msg) 23:03, 7 nov 2020 (CET)Rispondi

──────────────────────────────────────────────────────────────────────────────────────────────────── [@ Sakretsu, Moroboshi] Sapreste dirmi perché il nome del tag deve essere specificato dopo 3 trattini anziché 2 come indicato nella pagina di MediaWiki?

{{#invoke:String|match|1<math>prova</math>|%c'"`UNIQ--(math).*QINU`"'%c|plain=false|nomatch=}}
{{#invoke:String|match|1<math>prova</math>|%c'"`UNIQ---(math).*QINU`"'%c|plain=false|nomatch=}} → math

--Horcrux (msg) 23:21, 7 nov 2020 (CET)Rispondi

Perché - è un quantificatore. Devi scrivere %-%- anteponendoci il carattere di escape--Sakretsu (炸裂) 11:03, 8 nov 2020 (CET)Rispondi
Ahhhh, capisco, corrisponde al quantificatore lazy 0-or-more *? delle sintassi più consuete. Quante cose si scoprono :-) Grazie ancora!--Horcrux (msg) 11:19, 8 nov 2020 (CET)Rispondi

Apici e virgolette modifica

[@ Sakretsu] curiosità mia: ', " e ` sono tutti e tre obbligatori o significa che si può scegliere quale utilizzare? Vedo che funziona ugualmente con uno solo dei tre, e sarebbe più pulito da vedere. --Ignazio (msg) 10:22, 9 nov 2020 (CET)Rispondi

Di preciso come?--Sakretsu (炸裂) 21:37, 9 nov 2020 (CET)Rispondi
[@ Sakretsu] vedi sorgente di {{Certificazione disco}}: lasciando uno solo tra quei segni funziona lo stesso. --Ignazio (msg) 21:59, 9 nov 2020 (CET)Rispondi
A me non risulta {{#invoke:String|match|'"`UNIQ|'+UNIQ|plain=false|nomatch=nessuna corrispondenza}} → nessuna corrispondenza.--Sakretsu (炸裂) 13:03, 12 nov 2020 (CET)Rispondi
[@ Sakretsu] Io l'ho verificato con "Anteprima di una pagina con questo template", lasciando un solo segno sia all'inizio che alla fine della stringa. --Ignazio (msg) 20:17, 12 nov 2020 (CET)Rispondi
Non vorrei dire una banalità, ma se lasci solo il ` è normale che matcha, perché è adiacente alla stringa UNIQ:
{{#if:{{#invoke:String|match|'"`UNIQ|`UNIQ|plain=false|nomatch=}}|OK|NO}} → OK
--Horcrux (msg) 22:00, 12 nov 2020 (CET)Rispondi
[@ Horcrux] Non so se è proprio la stessa cosa. Io sto dicendo questo: allo stato attuale del codice del template {{Certificazione disco}} sostituendo %c'"`UNIQ%-%-ref%-.*QINU`"'%c con %c'UNIQ%-%-ref%-.*QINU'%c, con %c"UNIQ%-%-ref%-.*QINU"%c o con %c`UNIQ%-%-ref%-.*QINU`%c (in entrambe le funzioni, replace e match) perlomeno dall'anteprima sembra funzionare ugualmente, come se fosse sufficiente un solo carattere per definire il pattern. --Ignazio (msg) 22:37, 12 nov 2020 (CET)Rispondi
[@ Ignazio Cannata] Io non riesco ad ottenere i risultati di cui parli. Sei sicuro che la nota continui ad essere mostrata dopo il "+"? Dovresti salvare i tuoi test in sandbox così sono verificabili. --Horcrux (msg) 10:04, 13 nov 2020 (CET)Rispondi
[@ Horcrux] Avete ragione: ho fatto dei test con {{Certificazione disco/Sandbox2}} salvando le modifiche, e in effetti non funziona. Continua però a funzionare dall'anteprima, mistero della fede! --Ignazio (msg) 11:05, 13 nov 2020 (CET)Rispondi
Ritorna alla pagina "Lua".