Discussioni modulo:String
Infobox
modificaQuando la lista della funzione arraytostring è impostata su "infobox", propongo di sostituire il metodo <UL><LI></LI></UL> con qualcosa di più semplice — come un pallino nero • a capo — per evitare che si occupi troppo spazio per riga in tabelle da soli 300px come quelle dei template sinottici.--Sakretsu (炸裂) 19:48, 3 mar 2015 (CET)
- Non sarebbe più pulito fare una versione con css modificato delle liste
<li>…</li>
da mettere nel foglio di stile globale e richiamarla ?--Moroboshi scrivimi 22:34, 3 mar 2015 (CET)
- Se possibile sì, sarebbe meglio.--Sakretsu (炸裂) 22:41, 3 mar 2015 (CET)
- Se è possibile, anche mettere direttamente nella classe "sinottico" uno stile compatto per le liste. Così si avrebbe dappertutto indipendentemente se sono liste fatte con arraytostring o a mano. --Bultro (m) 22:50, 3 mar 2015 (CET)
- Un primo test di fattibilità - però se qualcuno con più esperienza in css di me ci desse un'occhiata lo preferirei.--Moroboshi scrivimi 21:34, 4 mar 2015 (CET)
- Se è possibile, anche mettere direttamente nella classe "sinottico" uno stile compatto per le liste. Così si avrebbe dappertutto indipendentemente se sono liste fatte con arraytostring o a mano. --Bultro (m) 22:50, 3 mar 2015 (CET)
Liste non ordinate compatte | |
---|---|
Unordered list standard |
|
Unordered list "compattata" |
|
Senza unordered list usando • e <br /> | • elemento 1 • elemento 2 • elemento 3 • elemento 4 occupa più di una riga |
- Neanch'io sono esperto di CSS, ma la proprietà per cambiare il pallino dovrebbe essere list-style-image. Non posso fare una prova al volo perché le proprietà con immagini non funzionano in linea. La skin Monobook ad esempio usa File:Bullet.png, Vector usa File:Vector-bullet-icon.png, qui potremmo usare File:Middot.png --Bultro (m) 15:19, 5 mar 2015 (CET)
Ho fatto un po' di prove e secondo me può andar bene aggiungere questo al CSS:
.sinottico ul { padding: 0px; margin: 0 0 0 1em; }
Potete provare inserendolo nel vostro CSS personale. L'immagine del pallino mi pare che non cambi nulla sullo spazio occupato, perciò tanto vale lasciare quella standard, comunque per cambiarla basterebbe aggiungere
list-style-image: url(//up.wiki.x.io/wikipedia/commons/d/da/Middot.png);
--Bultro (m) 14:07, 12 mar 2015 (CET)
- Purtroppo con le immagini non credo che si possa fare di meglio. Altrimenti si finisce per lasciare più spazio a destra che a sinistra del pallino. Comunque per me va bene, già è un piccolo miglioramento.--Sakretsu (炸裂) 00:20, 13 mar 2015 (CET)
arraytostring
modificaPotrebbe essere utile avere sempre a disposizione, sotto forma di un $qualcosa, anche il numero dell'iterazione in corso (l'indice del "for", per intenderci). Al momento in Template:Box successione mi sarebbe utile per fare tutte quelle chiamate a {{Box successione/Altro}}, che necessitano del parametro N --Bultro (m) 13:02, 4 giu 2015 (CEST)
- Andrebbe bene se si usa l'n+1 parametro ? ho messo un test in sandbox, eventualmente lo carico stasera. {{Utente:Moroboshi/test|A|B|C}}
Niente $index, obbligatori=5
Con $index, nobbligatori=5
0: , 1: , 2: , 3: , 4: , 5:
--Moroboshi scrivimi 13:31, 4 giu 2015 (CEST)
- Certo; sarebbe più pratico $0 (così è sempre lo stesso), ma se è troppo complicato non fa niente --Bultro (m) 15:43, 4 giu 2015 (CEST)
- Sarebbe la cosa ideale, ma arraytostring si appoggia a una funzione della libreria scribunto che replica il funzionamento dei messaggi di mediawiki e a cui viene passato il messaggio (con dentro i vari marcatori $1, $2, ecc...) e una lista di parametri che vanno a sostituire i marcatori per cui non è possibile usare un marcatore $0 (Per convenzione in Lua le liste sono numerate a partire da 1). In alternativa si potrebbe definire un valore che renda il parametro par uguale al contatore, qualcosa del tipo
par2=$index
e nel codice del messaggio $2 verrebbe sostituito dall'indice - avrebbe anche il vantaggio di essere più esplicita.--Moroboshi scrivimi 06:06, 5 giu 2015 (CEST)- Si, è meglio. Magari in futuro ci viene in mente qualche altro parametro speciale --Bultro (m) 12:38, 5 giu 2015 (CEST)
- Sarebbe la cosa ideale, ma arraytostring si appoggia a una funzione della libreria scribunto che replica il funzionamento dei messaggi di mediawiki e a cui viene passato il messaggio (con dentro i vari marcatori $1, $2, ecc...) e una lista di parametri che vanno a sostituire i marcatori per cui non è possibile usare un marcatore $0 (Per convenzione in Lua le liste sono numerate a partire da 1). In alternativa si potrebbe definire un valore che renda il parametro par uguale al contatore, qualcosa del tipo
- Certo; sarebbe più pratico $0 (così è sempre lo stesso), ma se è troppo complicato non fa niente --Bultro (m) 15:43, 4 giu 2015 (CEST)
Fatto Ho aggiornato il modulo.--Moroboshi scrivimi 19:59, 5 giu 2015 (CEST)
Altra cosa: ad es. in Template:Rosa nazionale di calcio, nella parte ripetitiva possono esserci dei "buchi", ad esempio si possono valorizzare solo n4, n7, n9... Attualmente arraytostring non lo può gestire perché al primo buco giustamente si ferma; vale la pena di aggiungere anche un'opzione per non fermarsi? Ovviamente deve essere valorizzato anche Nmax sennò andrebbe avanti all'infinito. --Bultro (m) 17:02, 30 giu 2015 (CEST)
- Forse la cosa più riutilizzabile e più semplice sarebbe aggiungere un parametro "Nobbligatori", per far sì che le prime N iterazioni vengano fatte sempre (in pratica: if index <= Nobbl then found = true) --Bultro (m) 12:24, 2 lug 2015 (CEST)
- Sì direi che è la più semplice e non è il solo posto dovre potrebbe essere utile. Stasera lo implemento.--Moroboshi scrivimi 13:43, 2 lug 2015 (CEST)
- Ho aggiunto un parametro nobbligatori, comunque la sequenza viene valutata solo fino a nmax (in caso di conflitto vince nmax). Ho anche corretto il template in modo che accetti anche nmin in minuscolo (mi sono accorto che era incosistente accettava NMin e nmax, adesso accetta anche nmin è ho corretto la documentazione per indicare solo questa possibilità.--Moroboshi scrivimi 22:33, 2 lug 2015 (CEST)
- Ho usato varie volte Nobbligatori senza problemi, ma adesso non riesco a capire perché non funziona in t:Utente/Sandbox (per ora uguale a t:Utente, ma con arraytostring). Non è contento di usare solo $index? Ho provato anche a metterci un par2 fittizio ma niente. --Bultro (m) 23:04, 13 ago 2015 (CEST)
- I messaggi vengono visualizzati solo se un parametro effettivo viene valorizzato, se $index è l'unico parametro non genera niente, altrimenti per esempio in {{Box successione}} genererebbe delle righe vuote anche quando i parametri non sono valorizzati. Si potrebbe aggiungere un parametro per cambiare il comportamento.--Moroboshi scrivimi 05:56, 14 ago 2015 (CEST)
- Non mi torna... Nobbligatori è fatto apposta per processare anche quando i parametri non sono valorizzati. In t:Rosa nazionale di calcio possono mancare degli n, ma lui va avanti lo stesso, è l'if che decide cosa stampare o non stampare. Non penso sia questione di aggiungere altri parametri, dovrebbe essere sempre così. Questi gli usi attuali; non ho capito perché l'hai usato in T:Videogioco, se i parametri sono stati riordinati via bot non serve più --Bultro (m) 12:33, 14 ago 2015 (CEST)
- In generale non mi piace eseguire chiamate a template non necessarie e salvo un caso particolare come quello di {{Utente}} in generale il messaggio non deve comparire se non sono valorizzati parametri utente. In videogioco l'ho usato perchè fino a che non li avessi riordinati con il bot le voci non sarebbero funzionati correttamente, adesso l'ho aggiornato rimuovendo il controllo.--Moroboshi scrivimi 13:26, 14 ago 2015 (CEST)
- Usare Nobbligatori è di per sé un caso raro, ma tra questi non è raro dover processare tutto. Ad esempio se devo controllare che N parametri siano compilati, è proprio quando non è compilato che deve partire il messaggio.
- Se proprio vuoi aggiungere un parametro, propongo uno per specificare qual è la serie necessaria, ad es. richiesto=2 vorrebbe dire che par2 è necessario per effettuare l'iterazione. Tornerebbe utile a prescindere da Nobbligatori, quando ci sono più serie, ad es. in t:personaggio è necessario "autore #", ma attualmente va erroneamente avanti anche se è compilato soltanto "autore # nota". Se c'è Nobbligatori non ferma il ciclo ma può evitare la singola iterazione. --Bultro (m) 15:15, 14 ago 2015 (CEST)
- In generale non mi piace eseguire chiamate a template non necessarie e salvo un caso particolare come quello di {{Utente}} in generale il messaggio non deve comparire se non sono valorizzati parametri utente. In videogioco l'ho usato perchè fino a che non li avessi riordinati con il bot le voci non sarebbero funzionati correttamente, adesso l'ho aggiornato rimuovendo il controllo.--Moroboshi scrivimi 13:26, 14 ago 2015 (CEST)
- Non mi torna... Nobbligatori è fatto apposta per processare anche quando i parametri non sono valorizzati. In t:Rosa nazionale di calcio possono mancare degli n, ma lui va avanti lo stesso, è l'if che decide cosa stampare o non stampare. Non penso sia questione di aggiungere altri parametri, dovrebbe essere sempre così. Questi gli usi attuali; non ho capito perché l'hai usato in T:Videogioco, se i parametri sono stati riordinati via bot non serve più --Bultro (m) 12:33, 14 ago 2015 (CEST)
- I messaggi vengono visualizzati solo se un parametro effettivo viene valorizzato, se $index è l'unico parametro non genera niente, altrimenti per esempio in {{Box successione}} genererebbe delle righe vuote anche quando i parametri non sono valorizzati. Si potrebbe aggiungere un parametro per cambiare il comportamento.--Moroboshi scrivimi 05:56, 14 ago 2015 (CEST)
- Ho usato varie volte Nobbligatori senza problemi, ma adesso non riesco a capire perché non funziona in t:Utente/Sandbox (per ora uguale a t:Utente, ma con arraytostring). Non è contento di usare solo $index? Ho provato anche a metterci un par2 fittizio ma niente. --Bultro (m) 23:04, 13 ago 2015 (CEST)
- Ho aggiunto un parametro nobbligatori, comunque la sequenza viene valutata solo fino a nmax (in caso di conflitto vince nmax). Ho anche corretto il template in modo che accetti anche nmin in minuscolo (mi sono accorto che era incosistente accettava NMin e nmax, adesso accetta anche nmin è ho corretto la documentazione per indicare solo questa possibilità.--Moroboshi scrivimi 22:33, 2 lug 2015 (CEST)
- Sì direi che è la più semplice e non è il solo posto dovre potrebbe essere utile. Stasera lo implemento.--Moroboshi scrivimi 13:43, 2 lug 2015 (CEST)
[← Rientro] Direi che posso provare a fare in questa maniera:
- Se NObbligatorie NMax non sono valorizzati allora processare tutti i parametri anche se questi è solo $index
- Se NObbligatori e NMax non sono valorizzati allora continuare a comportarmi in questa maniera (non processare i casi in cui l'unico valorizzato sarebbe $index), in caso contrario la procedura entrebbe in loop infinito e sarebbe bloccata dal timeout che Mediawiki impone a tutti i processi dei moduli Lua - e in effetti era questo il motivo per cui al momento la funzione non processa i casi in cui non siano valorizzati parametri inseriti dall'utente)
- Rimane il caso NObbligatori non valorizzato e NMax valorizzato, in questo caso non entrebbe in loop, ma preferisco comportarmi come nel caso 2.--Moroboshi scrivimi 17:54, 18 ago 2015 (CEST)
- Mi sa che hai messo un "non" di troppo.
- Io comunque la vedevo più semplice: Se NObbligatori è valorizzato, processare a prescindere dai parametri, ma ovviamente solo finché l'indice è <= NObbligatori.
- In tutti gli altri casi, comportamento normale. Il loop infinito è impossibile --Bultro (m) 16:02, 19 ago 2015 (CEST)
- Ho perso un po' di tempo perchè nei test avevo invertito la condizione da controllare e ovviamente non capivo cosa non andava. Adesso dovrebbe funzionare come richiesto.--Moroboshi scrivimi 12:26, 23 ago 2015 (CEST)
- Ok! Per la cronaca, in t:Utente avevo già risolto in un altro modo, ma non era il massimo dell'eleganza --Bultro (m) 14:33, 23 ago 2015 (CEST)
- Ho perso un po' di tempo perchè nei test avevo invertito la condizione da controllare e ovviamente non capivo cosa non andava. Adesso dovrebbe funzionare come richiesto.--Moroboshi scrivimi 12:26, 23 ago 2015 (CEST)
Manuale
modificaHo notato la sostituzione da parte di [@ Bultro] del verbo ritornare con restituire, eseguita anche altrove. Questi cambiamenti non mi vedono d'accordo, "ritornare un valore" è tanto corretto quanto "restituire un valore", come può dimostrare una ricerca su testi di informatica. Che si usino indifferentemente, senza dover sostituire l'uno con l'altro, i problemi di terminologia tecnica da correggere sono ben altri. --Rotpunkt (msg) 06:27, 12 giu 2015 (CEST)
- Se certi testi "ritornano" i valori e "rilasciano" i programmi è un problema loro, io parlo italiano non itanglese. Se correggere ti sembra una perdita di tempo, lo è ancora di più mettersi a discutere... --Bultro (m) 14:27, 12 giu 2015 (CEST)
- In che senso "itanglese"? innanzitutto si dice che una funzione ha un "valore di ritorno" e non "valore restuito" o altro, quindi già "ritorno" è un termine ufficiale. --Rotpunkt (msg) 14:39, 12 giu 2015 (CEST)
- "Ritornare" non è sbagliato, ma siccome stiamo parlando di un manuale, probabilmente Bultro ha preferito il verbo "restituire" semplicemente perché suona meglio (vedi qui il parere del Corriere ad esempio). Alla fine, siccome entrambe le forme sono corrette, preferire quella più elegante non credo che sia poi così un male. Poi certo, considerare la prima proprio sbagliata sarebbe eccessivo, ma non credo che siamo arrivati fino a quel punto.--Sakretsu (炸裂) 15:21, 12 giu 2015 (CEST)
- @Sakretsu ma non possiamo mica prendere un dizionario generalista per una definizione di un termine tecnico di programmazione. Che il valore che una funzione fornisce sia detto "valore di ritorno" non c'è alcun dubbio: vedi valore di ritorno. Da qui poi tutte le variazioni ritorna un valore, valore ritornato. Tutto il resto sono discussioni che lasciano il tempo che trovano perché non basate su fonti e quindi sulla realtà dei fatti. --Rotpunkt (msg) 15:32, 12 giu 2015 (CEST)
- Sì, ma ho specificato che qui stiamo parlando di un manuale, scritto anche e soprattutto per gli utenti che non se ne intendono di programmazione. È normale che una differenza del genere a te non possa sfuggire, ma per gli altri utenti la forma più elegante rimane restituire, che in questo contesto mi pare di aver capito sia altrettanto corretta. Comunque per me la questione è ininfluente, trovo semplicemente la preferenza di Bultro comprensibile.--Sakretsu (炸裂) 15:58, 12 giu 2015 (CEST)
- @Sakretsu bisogna dire che "avere una preferenza", e dire << Se certi testi "ritornano" i valori e "rilasciano" i programmi è un problema loro >> non è la stessa cosa. E chi legge ovviamente ne trae un certo senso. --Rotpunkt (msg) 16:06, 12 giu 2015 (CEST)
- Sì, ma ho specificato che qui stiamo parlando di un manuale, scritto anche e soprattutto per gli utenti che non se ne intendono di programmazione. È normale che una differenza del genere a te non possa sfuggire, ma per gli altri utenti la forma più elegante rimane restituire, che in questo contesto mi pare di aver capito sia altrettanto corretta. Comunque per me la questione è ininfluente, trovo semplicemente la preferenza di Bultro comprensibile.--Sakretsu (炸裂) 15:58, 12 giu 2015 (CEST)
- @Sakretsu ma non possiamo mica prendere un dizionario generalista per una definizione di un termine tecnico di programmazione. Che il valore che una funzione fornisce sia detto "valore di ritorno" non c'è alcun dubbio: vedi valore di ritorno. Da qui poi tutte le variazioni ritorna un valore, valore ritornato. Tutto il resto sono discussioni che lasciano il tempo che trovano perché non basate su fonti e quindi sulla realtà dei fatti. --Rotpunkt (msg) 15:32, 12 giu 2015 (CEST)
- "Ritornare" non è sbagliato, ma siccome stiamo parlando di un manuale, probabilmente Bultro ha preferito il verbo "restituire" semplicemente perché suona meglio (vedi qui il parere del Corriere ad esempio). Alla fine, siccome entrambe le forme sono corrette, preferire quella più elegante non credo che sia poi così un male. Poi certo, considerare la prima proprio sbagliata sarebbe eccessivo, ma non credo che siamo arrivati fino a quel punto.--Sakretsu (炸裂) 15:21, 12 giu 2015 (CEST)
- In che senso "itanglese"? innanzitutto si dice che una funzione ha un "valore di ritorno" e non "valore restuito" o altro, quindi già "ritorno" è un termine ufficiale. --Rotpunkt (msg) 14:39, 12 giu 2015 (CEST)
Segni diacritici
modificaPer le chiavi di ordinamento nelle categorie potrebbe essere utile una funzione che toglie i segni diacritici, ad es. trasformando bäbá in baba. Mi pare che esista anche nel PHP. Penso al Bio, ma probabilmente servirà anche altrove --Bultro (m) 19:20, 16 giu 2015 (CEST)
- Pensavo fosse una cosa fatta automaticamente dal software mediawiki, ma ho appena testato con John le Carré e in effetti prima di mettere il ForzaOrdinamento nel bio veniva messo dopo Hereward Carrington e Leonora Carrington.--Moroboshi scrivimi 20:46, 16 giu 2015 (CEST)
- Magari lo facesse il software, ma mi sa che è una di quelle cose che svilupperanno l'Anno del Mai. La richiesta phab:T2164 risale al 2004, poi spezzata in phab:T32672, phab:T32673, phab:T32674, phab:T32675.
- Se ho ben capito il T32674, il problema dell'ordinamento c'è anche nelle tabelle sortable, ma quello intanto si può sistemare a mano con un'impostazione di Common.js --Bultro (m) 10:31, 17 giu 2015 (CEST)
- Una cosa del genere mi servirebbe anche per togliere i codici %XX dagli url. In generale, se si vuole sostituire una serie di stringhe con un'altra serie di stringhe, c'è un metodo efficiente o bisogna fare tanti gsub quante sono le coppie di valori? --Bultro (m) 15:53, 3 dic 2015 (CET)
- Per le codifiche percentuali ci sono un paio di funzioni lua mw.uri.encode e mw.uri.encode). Si potrebbero aggiungere un paio di funzioni che le richiamino (ma ho il sospetto che ci sia già qualcosa del genere nel linguaggio mediawiki). Ma per i segni diacritici non mi vengono in mente metodi che non siano sequenze di gsub e sono molto restio a implementare una cosa del genere.--Moroboshi scrivimi 16:15, 3 dic 2015 (CET)
- In Mediawiki esiste urlencode ma non urldecode.
- Per i segni diacritici, essendo corrispondenze 1:1 tra caratteri, si dovrebbe poter fare con relativamente pochi gsub, dal momento che si possono usare i pattern: [àäâă...] viene sostituito da "a" in un unico gsub. --Bultro (m) 17:07, 3 dic 2015 (CET)
- Fatto per quanto riguarda decode (avrei dovuto fare prima in sandbox ma ho confuso la finestra aperta sul browser), ci sono alcuni test in Discussioni_modulo:String/test e pare funzionare, guardo anche per i caratteri diacritici.--Moroboshi scrivimi 20:27, 3 dic 2015 (CET)
- Che palle, nel fare il decode avevo scoperto mw.uri.toNFC e mw.uritoNFD ma ho frainteso il loro funzionamento e non risolvono il problema in modo veloce.--Moroboshi scrivimi 21:11, 3 dic 2015 (CET)
- Pare funzionare:
{{#invoke:String/sandbox|collate|Ameliè}}
: Amelie. Comunque servono 52 gsub (una per ogni lettera dell'alfabeto in versione maiuscola/minuscola). Sto copiando i caratteri da [1] (non tutti ovviamente, solo quelli con accentume, virgulettume, cedigliume e varia altra roba che sto iniziando ad odiare). Riprendo domani.--Moroboshi scrivimi 23:08, 3 dic 2015 (CET)- Bene, ho usato decode in t:Treccani e ha già corretto un centinaio di riferimenti.
- Per gli elenchi di caratteri ti aiutavo se me lo dicevi prima... --Bultro (m) 13:00, 4 dic 2015 (CET)
- Non è per quello è per la frustrazione che non ci sia un metodo più pulito di una catena di sostituzioni.
Comunque ho caricato le tabelle ma c'è qualcosa che non funziona nei test, non tratta correttamente "Tōgō Heihachirō" o "Rolf Løvland" non miMentre scrivevo mi è venuta l'illuminazione e ho corretto l'errore (odio la sintassi del Lua).--Moroboshi scrivimi 14:28, 5 dic 2015 (CET)- Prove sempre in Discussioni_modulo:String/test.--Moroboshi scrivimi 14:29, 5 dic 2015 (CET)
- Ho provato a utilizzarlo per l'ordinamento in t:Brano musicale e sembra tutto a posto (es. À quoi ça sert l'amour)--Bultro (m) 20:05, 5 dic 2015 (CET)
- Prove sempre in Discussioni_modulo:String/test.--Moroboshi scrivimi 14:29, 5 dic 2015 (CET)
- Non è per quello è per la frustrazione che non ci sia un metodo più pulito di una catena di sostituzioni.
- Pare funzionare:
- Che palle, nel fare il decode avevo scoperto mw.uri.toNFC e mw.uritoNFD ma ho frainteso il loro funzionamento e non risolvono il problema in modo veloce.--Moroboshi scrivimi 21:11, 3 dic 2015 (CET)
- Fatto per quanto riguarda decode (avrei dovuto fare prima in sandbox ma ho confuso la finestra aperta sul browser), ci sono alcuni test in Discussioni_modulo:String/test e pare funzionare, guardo anche per i caratteri diacritici.--Moroboshi scrivimi 20:27, 3 dic 2015 (CET)
- Per le codifiche percentuali ci sono un paio di funzioni lua mw.uri.encode e mw.uri.encode). Si potrebbero aggiungere un paio di funzioni che le richiamino (ma ho il sospetto che ci sia già qualcosa del genere nel linguaggio mediawiki). Ma per i segni diacritici non mi vengono in mente metodi che non siano sequenze di gsub e sono molto restio a implementare una cosa del genere.--Moroboshi scrivimi 16:15, 3 dic 2015 (CET)
- Una cosa del genere mi servirebbe anche per togliere i codici %XX dagli url. In generale, se si vuole sostituire una serie di stringhe con un'altra serie di stringhe, c'è un metodo efficiente o bisogna fare tanti gsub quante sono le coppie di valori? --Bultro (m) 15:53, 3 dic 2015 (CET)
Ho provato anche a usarlo nel Bio ma dice "Errore Lua in Modulo:String alla linea 478: Tried to write global collation". Questo il codice, puoi controllare? --Bultro (m) 16:38, 15 dic 2015 (CET)
Titoli opere
modificaHo abbozzato t:Ordina per titolo per aggiungere facilmente il collate ad altre cosette che facciamo di solito con i parametri "titoloalfa". Mi chiedevo però, a questo punto, converrebbe provare a usare un po' di String anche per togliere in automatico gli articoli, trasformando ad esempio "Il Tizio" in "Tizio"? C'è il rischio che "Il" non sia un articolo, ma la vedo un'eventualità piuttosto rara --Bultro (m) 17:47, 15 dic 2015 (CET)
- Ho fatto una funzione titolo_alfa, prova a vedere il test in Discussioni modulo:String/test.--Moroboshi scrivimi 23:17, 15 dic 2015 (CET)
- Ho qualche dubbio sull'articolo I perché a volte si tratta di "io" in inglese e ovviamente non va tolto. Si corregge sempre col parametro manuale, da valutare se è meglio togliere a mano le I italiane o rimettere a mano le I inglesi. Viceversa direi di includere gli articoli stranieri come The, El, Las... Avviso anche qualche progetto --Bultro (m) 11:35, 17 dic 2015 (CET)
Ho spostato la funzione nel modulo vero, ma dà un errore che in sandbox non dava... --Bultro (m) 16:11, 22 gen 2016 (CET)
- Che errore ?--Moroboshi scrivimi 16:15, 22 gen 2016 (CET)
- @Bultro Bastava copiare Modulo:String/sandbox su Modulo:String, o viceversa, e usare "Mostra modifiche" per vedere che erano un po' diversi, oppure conoscere un po' la programmazione per vedere che in Modulo:String non c'era alcuna funzione _collate, e neppure str.collate con stringa come argomento. Sistemo. --Rotpunkt (msg) 16:19, 22 gen 2016 (CET)
- @Moroboshi era solo l'argomento di str.collate. Vedi tu se fare una funzione separata _collate come avevi fatto nella sandbox (che pare più recente, del 15 dicembre) o meno. --Rotpunkt (msg) 16:36, 22 gen 2016 (CET)
- Evidentemente non conosco la programmazione, specialmente quando non è fatta da me, ma grazie per avercelo fatto notare. --Bultro (m) 14:16, 23 gen 2016 (CET)
- In effetti dovresti fare più attenzione, se questo può servire a farti usare le sandbox, a usare i moduli di test, a chiedere ad altri più esperti, ben venga. --Rotpunkt (msg) 14:24, 23 gen 2016 (CET)
- Evidentemente non conosco la programmazione, specialmente quando non è fatta da me, ma grazie per avercelo fatto notare. --Bultro (m) 14:16, 23 gen 2016 (CET)
- @Moroboshi era solo l'argomento di str.collate. Vedi tu se fare una funzione separata _collate come avevi fatto nella sandbox (che pare più recente, del 15 dicembre) o meno. --Rotpunkt (msg) 16:36, 22 gen 2016 (CET)
- @Bultro Bastava copiare Modulo:String/sandbox su Modulo:String, o viceversa, e usare "Mostra modifiche" per vedere che erano un po' diversi, oppure conoscere un po' la programmazione per vedere che in Modulo:String non c'era alcuna funzione _collate, e neppure str.collate con stringa come argomento. Sistemo. --Rotpunkt (msg) 16:19, 22 gen 2016 (CET)
Frame
modificaSbaglio o tutte queste meraviglie non sono utilizzabili da un modulo allo stato attuale? Bisognerebbe generalizzarlo con la nostra "convenzione" str.match(frame)
+ str._match(args)
giusto? --Valerio Bozzolan (msg) 20:20, 5 giu 2017 (CEST)
- Fatto diff88276071 Ho generalizzato il
match(frame)
aggiungendo_match(args)
per chiamata diretta dal modulo. --Valerio Bozzolan (msg) 21:11, 5 giu 2017 (CEST)- ...sebbene spesso (come nel mio caso) è sufficiente
mw.ustring.match
. --Valerio Bozzolan (msg) 01:41, 6 giu 2017 (CEST)- Beh, da modulo lua è meglio usare le funzioni dirette, queste sono in generale per poter essere usate in template mediawiki.--Moroboshi scrivimi 06:44, 6 giu 2017 (CEST)
- Sìsì, meglio quelle dirette O:) Avevo però dubbi che fossero direttamente interscambiabili :D --Valerio Bozzolan (msg) 09:38, 6 giu 2017 (CEST)
- Beh, da modulo lua è meglio usare le funzioni dirette, queste sono in generale per poter essere usate in template mediawiki.--Moroboshi scrivimi 06:44, 6 giu 2017 (CEST)
- ...sebbene spesso (come nel mio caso) è sufficiente
Limitazione
modificaSegnalo che se si sceglie di non far considerare il pattern come una stringa normale, Lua ignora le sequenze che iniziano per backslash. Esempio con \n:
{{#invoke:String|replace|test
test|\n|OK||false}}
test
test
{{#invoke:String|replace|\n|\n|OK||false}}
OK
Per Lua quel \n inserito equivale a \\n. Vale la pena aggiungere un controllo per validare queste sequenze oppure no?--Sakretsu (炸裂) 00:51, 8 nov 2017 (CET)
- @Sakretsu Attualmente se volessi sostiture tutti i "\n" di una stringa con "OK" cosa usi? Non è che è Lua che ignora le sequenze di backslash, se ho capito cosa intendevi con la frase, è che nella funzione str.replace la variabile pattern giunge a contenere '\\n' invece di '\n'. Se impostassi nel codice la variabile pattern a '\n' la sostituzione avverrebbe correttamente. --Rotpunkt (msg) 13:14, 8 nov 2017 (CET)
- Certo, Lua ignora le sequenze di backslash se passate tramite parametro, non se scritte nel codice. Il punto è che %a ecc. sono considerate valide, \n ecc. no. Praticamente se il parametro plain è impostato su false dovremmo controllare la presenza di "\\n" ecc. per convertirli in \n.--Sakretsu (炸裂) 13:27, 8 nov 2017 (CET)
- A me non è mai capitato di dover sostituire dei newline del wikitesto, quindi non me sono mai accorto, ma non dovrebbe essere documentata questa trasformazione di "\n" in "\\n" quando poi letti tramite frame.args? Non ce n'è traccia in mw:Extension:Scribunto/Lua_reference_manual. --Rotpunkt (msg) 13:35, 8 nov 2017 (CET)
- È venuta fuori come idea qui per gli errori HTML del template {{Chiarimento}}. Stavo considerando se fosse sufficiente l'uso di String, ma mi pare di no. Comunque mentre testavo ho notato l'anomalia e ho pensato che fosse almeno il caso di segnalarla. Poi se valga la pena di fare qualcosa, appunto non saprei.--Sakretsu (炸裂) 13:52, 8 nov 2017 (CET)
- A me non è mai capitato di dover sostituire dei newline del wikitesto, quindi non me sono mai accorto, ma non dovrebbe essere documentata questa trasformazione di "\n" in "\\n" quando poi letti tramite frame.args? Non ce n'è traccia in mw:Extension:Scribunto/Lua_reference_manual. --Rotpunkt (msg) 13:35, 8 nov 2017 (CET)
- Certo, Lua ignora le sequenze di backslash se passate tramite parametro, non se scritte nel codice. Il punto è che %a ecc. sono considerate valide, \n ecc. no. Praticamente se il parametro plain è impostato su false dovremmo controllare la presenza di "\\n" ecc. per convertirli in \n.--Sakretsu (炸裂) 13:27, 8 nov 2017 (CET)
Bene che sia venuto fuori, lo esemplifico con:
local p = {}
function p.main(frame)
return frame.args[1] == '\\n'
end
return p
Questo modulo (e.g. Example) restituisce "true", quando invocato con {{#invoke:Example|main|\n}}
, cosa che mi aspetterei fosse documentata, altrimenti non si capisce se è una feature o un bug. --Rotpunkt (msg) 14:06, 8 nov 2017 (CET)
Refuso
modificaNon potendo correggere io stesso, segnalo che nella sezione Modulo:String#Chiamata_delle_funzioni, primo paragrafo, l'ultima parola prima dei due punti è "stringe" ma ovviamente dovrebbe essere "stringhe".--Wedhro (msg) 11:20, 12 gen 2019 (CET)
- Scusate, come non detto, dimenticavo che le istruzioni sono in una sottopagina modificabile.--Wedhro (msg) 11:22, 12 gen 2019 (CET)
Check IP
modifica[@ Moroboshi] in merito a questa aggiunta, sappi che esiste questo modulo che scrissi tempo fa (e relativi test). --Horcrux (msg) 12:32, 18 giu 2019 (CEST)
- Ho rimosso la funzione in oggetto. --Horcrux (msg) 15:13, 22 lug 2020 (CEST)
Count
modificaHello, è possibile aggiungere la funzione "count" di modulo di enwiki?--Bouzinac (msg) 15:14, 26 mar 2021 (CET)
Uso di template come entry point
modifica[@ Bultro, Sakretsu] C'è qualche motivo tecnico per cui non sono mai stati creati dei template di appoggio per le funzioni definite in questo modulo? Ad es. sarebbe più utile scrivere {{urldecode|%28}}
anziché {{#invoke:String|decode|%28}}
. --Horcrux (msg) 13:44, 4 mar 2024 (CET)
- Alcuni sono stati creati. Quel che c'è in teoria dovrebbe essere in Categoria:Template per la manipolazione delle stringhe--Bultro (m) 00:20, 5 mar 2024 (CET)
- Ah ok, non lo ricordavo. Grazie! --Horcrux (msg) 09:19, 5 mar 2024 (CET)