Wikisource:Domande tecniche/Archivio/2015: differenze tra le versioni

Da Wikisource.
Contenuto cancellato Contenuto aggiunto
Riga 1 290: Riga 1 290:
PS: ho dei dubbi sulla licenza del plugin. Che ne dite voi? E' usabile qui? --[[User:Alex brollo bis|Alex brollo bis]] ([[User talk:Alex brollo bis|disc.]]) 14:01, 25 gen 2012 (CET)
PS: ho dei dubbi sulla licenza del plugin. Che ne dite voi? E' usabile qui? --[[User:Alex brollo bis|Alex brollo bis]] ([[User talk:Alex brollo bis|disc.]]) 14:01, 25 gen 2012 (CET)
: Su suggerimento di Samuele, ho testato il metodo ".draggable()" già montato sul nostro jQuery interno. E' un po' più complesso, il primo tentativo è miseramente fallito (probabilmente perchè ho sostituito la classe dell'elemento da rendere draggabile, invece che aggiungere un'altra classe a quella esistente). Lascio per ora la questione ai geek veri, è ora di fare un po' di sana, semplice rilettura :-) --[[User:Alex brollo|Alex brollo]] ([[User talk:Alex brollo|disc.]]) 18:44, 25 gen 2012 (CET)
: Su suggerimento di Samuele, ho testato il metodo ".draggable()" già montato sul nostro jQuery interno. E' un po' più complesso, il primo tentativo è miseramente fallito (probabilmente perchè ho sostituito la classe dell'elemento da rendere draggabile, invece che aggiungere un'altra classe a quella esistente). Lascio per ora la questione ai geek veri, è ora di fare un po' di sana, semplice rilettura :-) --[[User:Alex brollo|Alex brollo]] ([[User talk:Alex brollo|disc.]]) 18:44, 25 gen 2012 (CET)
:: Pasticciando un po', per gioco, ho riunito i miei tattoo e anche gli "editButtons" nel toolbox (funzionano); stasera cerco di renderlo draggable come dice Samuele (altrimenti ripiego su easydrag che è più easy), e per quanto mi riguarda il mio toolbox sarà perfetto :-) --[[Speciale:Contributi/193.43.176.29|193.43.176.29]] 19:02, 25 gen 2012 (CET)

Versione delle 20:02, 25 gen 2012

Domande tecniche

Categoria: Domande tecniche Bar   Domande tecniche 

Pagina dedicata a domande sul software, sulla struttura organizzativa del progetto, sulla visualizzazione e i bug dei browser.



Browser

Con IE nel namespace Indice il logo sballa. Succede a tutti, anche con altri browser?

  • IE: sballa
  • FF: no
  • ...

Aubrey McFato 17:23, 5 ott 2007 (CEST)[rispondi]

COn Safari e Firefox per mac non vedo il problema. Provo su Windows e ti faccio sapere. -- iPorkscrivimi 11:44, 6 ott 2007 (CEST)[rispondi]

Copyright

Il testo di un autore morto più di settant'anni fa non è più soggetto a copyright, ma se la traduzione è stata fatta solo recentemente (ed i traduttori sono ancora vivi), loro hanno il copyright sulla questa? Lo Scaligero (disc.) 09:45, 1 mar 2008 (CET)[rispondi]

Il copyright in italiano suona come diritto d'autore e ti fa capire meglio la questione. È il diritto dell'autore, ovvero di chi ha realizzato un'opera d'ingegno. Per questo motivo anche le traduzioni sono, come altre creazioni delle persone, tutelate dal diritto d'autore. -- iPorkscrivimi 09:54, 1 mar 2008 (CET)[rispondi]
Grazie per la risposta ;) Lo Scaligero (disc.) 11:47, 1 mar 2008 (CET)[rispondi]

Da doc al formato qui usato

La Sentenza Corte di appello penale di Perugia Vicenda Federconsorzi è disponibile in formato .doc. Ho fatto un seleziona tutto e poi un copia e incolla, ma il testo ora presenta moltissimi errori. C'è qualche sistema più affidabile e veloce?--Mizar (ζ Ursae Maioris) (disc.) 12:36, 14 mar 2008 (CET)[rispondi]

Ti suggerisco di provare uno degli editor wiki indicati in questa pagina. -- iPorkscrivimi 12:39, 14 mar 2008 (CET)[rispondi]

stack overflow

Ciao! Non capito molto spesso da queste parti (sono attivo su quote), ma su quasi ttutte le pagine il browser continua a segnalrmi uno stack overflow at line: 0. Io uso IE7. Capita anche a voi? --Quaro75 (disc.) 20:43, 14 giu 2008 (CEST)[rispondi]

Anche a me è capitto, qundo usoda un altro PC IE7. Non saprei però a cosa possa essere dovuto. Aubrey 13:06, 15 giu 2008 (CEST)

Google Chrome e wiki

Velocissimo; qualche problema, forse, nell'edit (non sembra funzionare il trascinamento di testo selezionato; su un quadro edit di un forum phpBB serio scompaginamento delle lettere, in un caso non ripetutosi). Niente stack overflow. ;-)

Altre note? --Alex brollo (disc.) 13:33, 11 set 2008 (CEST)[rispondi]

Modifiche a pagina protetta

Non so se questo è il posto migliore per questa richiesta, eventualmente spostatela in una pagina più adatta. Alla pagina Wikisource:Contatti (che è protetta) sarebbe da aggiungere la seguente sintassi: {{interprogetto|nolink |w=Wikipedia:Contatti |b=Wikibooks:Contatti |n=Wikinotizie:Contatti |q=Wikiquote:Contatti |v=Wikiversità:Contatti |wikt=Wikizionario:Contatti }} --Aushulz (disc.) 17:24, 2 mag 2009 (CEST)[rispondi]

✔ Fatto ! Grazie per l'aiuto e se trovi pagine da collegare tra progetti hai tutto il mio più sentito apprezzamento. In particolare le pagine delle politiche relative alla comunità sono a mio parere da collegare in quanto mostrano meglio punti in comune e soprattutto le differenze. - εΔω 18:29, 2 mag 2009 (CEST)[rispondi]

Idea js: tool per postelaborazione OCR

Ho cominciato a rovistare nel monobook.js completo come duro "esercizio di js", che ho deciso di cominciare a studiare. Trovo l'interessante funzione fixformat che fa proprio quello che servirebbe per una postelaborazione al volo dei testi provenienti da ORC, che sono straordinariamente migliorati da piccole, ma numerose, operazioni di cerca-e-sostituisci. C'è qualche anima buona che mia aiuta a sistemare i punti critici? L'elenco dei replace lo posso fornire io, ma ho (al momento) difficoltà nel collegare la chiamata alla funzione con un pulsante aggiuntivo. --Alex brollo (disc.) 12:25, 12 gen 2010 (CET)[rispondi]

Ho il piacere di dirvi che abbiamo a disposizione una funzione js postOCR che fa quasi tutto quello che faceva il mio script python:
  1. aggiustamento spazi attorno alla maggior parte dei segni di interpunzione
  2. riunione delle parole spezzate a fine riga
  3. conversione degli apostrofi da dattilografici a tipografici e soppressione dello spazio dopo gli apostrofi
  4. correzione di alcuni comuni errori di vocali accentate (E' -> È)
  5. eliminazione degli acapo di fine riga con conservazione dei doppi a capo di fine paragrafo

Il bello è che è veramente facile creare nuove sostituzioni. Il tutto è permesso da uno script che trovate nel mio monobook.js, il cui motore è scitto da Pathoschild e documentato qui: http://meta.wikimedia.org/wiki/User:Pathoschild/Script:Regex_menu_framework. L'applicazione pratica invece l'imitata dal monobook di en:User:Billinghurst e ho adattato le routine per i tipici scannos che Internet Archive infila nei suoi testi. Un sentito ringraziamento al nostro migliore anonimo che mi ha permesso di devastare, in i miei test, il suo ottimo lavoro: Indice:Sotto il velame.djvu. :-) --Alex brollo (disc.) 19:50, 23 gen 2010 (CET)[rispondi]

PS: questo non significa affatto che ci capisca qualcosa di js, hai voglia (per rispondere all'appello di Edo nel post successivo). ma ho notato che il nostro Common.js è veramente pesante, come pure il monobook.js completo, fatto il confronto con altri. :-( --Alex brollo (disc.) 19:50, 23 gen 2010 (CET)[rispondi]

Problema Javascript

Carissimi,

ho provato a chiedere in un attimo di lucidità, come mai da noi non funziona l'estensione Categorytree (cf en:Special:Categorytree/Authors con Speciale:Categorytree/Autori). un salto nel canale IRC wikimedia-tech ha prodotto il seguente risultato:

[16:57] RoanKattouw:There's site JS on itwikisource that creates its own getElementsByClassName() function that's incompatible with the one in wikibits.js
 That function needs to be removed and its callers migrated to use the function from wikibits.js
[17:13] orbiliusmagister: No problem in going to common.js and removing those function...
[17:13] orbiliusmagister: but then? I didn't understand the second part
[17:13] RoanKattouw: Well there's other site JS using that function
[17:13] RoanKattouw: Well there's some other site JS of yours that uses that function, so that'd break. Someone needs to change those calls to use the wikibits.js version of the function, which works differently
[17:14] RoanKattouw: I suggest you grab your community's JS developer; someone must've written that code
[17:14] orbiliusmagister: Ok
[17:15] orbiliusmagister: I'll copy and paste your answer to our local village pump.

Capiamoci, per me è arabo, ma se qualche smanopolatore di Javascript volesse provare a tradurre in linguaggio umano potrei anche tentare di riparare il riparabile... - εΔω 17:26, 23 gen 2010 (CET)[rispondi]

Allora. La funzione getElementsByClassName() è un grosso argomento, e il creatore della versione su http://it.wikisource.org/skins-1.5/common/wikibits.js la documenta qui: http://robertnyman.com/2008/05/27/the-ultimate-getelementsbyclassname-anno-2008/.
Su common.js di en.source non c'è (verosimilmente caricano solo la versione "nuova" di wikibits). Quindi: bisogna eliminarla dal nostro common.js.
Il problema è che la chiamata alla versione nuova chiede tre parametri e non uno, e purtroppo quello che viene "chiamato" da noi (il nome della classe) è il terzo. Quindi, volendo assicurare la compatibilità delle nostre chiamate con la funzione, occorre ripescare ognuno degli script che la chiama e modificarli (dopo aver capito per bene cosa vuole, nel primo e secondo parametro).
A occhio, la cosa va fatta, perchè questo potrebbe essere in futuro la causa di molti grattacapi... si potrebbe cancellare brutalmente la nostra funzione, e vedere cosa si pianta. --Alex brollo (disc.) 18:00, 24 gen 2010 (CET)[rispondi]
L'unico script, da quello che ho rovistato, che chiama la "nostra" getElementsByClassName(), è lo script killTitle, presente sempre in common.js e scritto da PietroDn. Ma invece altri script "istituzionali" chiamano la funzione con la sintassi ufficiale, e probabilmente,anche se non ce ne siamo accorti, sono bloccati o malfunzionanti.
Siccome lo script killTitle mi pare ornamentale più che sostanziale, io suggerisco di rimuovere semplicemente la getElementsByClassName() dal nostro common.js e nel frattempo avvisare PietroDn perchè aggiusti la chiamata nel suo script, aggiungendo i due parametri ulteriori richiesti. In base alla mia esperienza, garantisco, per la procedura che suggerisco, una probabilità di successo di un buon 10%. :-) --Alex brollo (disc.) 18:16, 24 gen 2010 (CET)[rispondi]
A pensarci bene, forse basta entrare in common.js e rinominare sia la funzione che la chiamata di funzione in modo che diventi diversa; lasciando poi eventualmente a PietroDn il compito di aggiornare. Masi lasciano indietro cocci...--Alex brollo (disc.) 07:47, 25 gen 2010 (CET)[rispondi]

Update

Bene. È bastato sopprimere lo script killTitle per far funzionare di nuovo il categorytree. E questo è già molto buono. L'unco drawback finora è che le intestazioni di portali - progetti - indici dove le intestazioni nascondevano i titoli ora i titoli li mostrano. Poco male, si tratta di pura cosmesi, e probabilmente si rimedia con facilità. - εΔω 17:53, 25 gen 2010 (CET)[rispondi]

tl|Centrato + poem; post-OCR via js

1. Ho casualmente scoperto che tl|centrato e poem collaborano molto bene fra di loro per semplificare il codice necessario a rendere testi costituiti da righe centrate multiple, variamente formattate, evitando l'uso di <br />.

Infatti:

Questo è un tipico

titolo

di un'opera

scritto su più righe spaziate

2. Ho aggiunto qualcosa alla funzione postOCR che trovate nel mio Utente:Alex brollo/monobook.js e ho creato una nuova funzione "A capo". Quest'ultima elimina gli a acapo di fine riga nei pezzi di testo dove gli acapo danno fastidio (tipicamente lunghi paragrafi da rendere in corsivo, in cui eventuali acapo "spezzano" l'effetto di eventuali tag corsivo o, più raramente, grassetto). Ovvio: NON usate la funzione sulle opere in versi altrimenti succede un disastro! :-) --Alex brollo (disc.) 10:11, 8 apr 2010 (CEST)[rispondi]

Osservazioni sullo "spostamento di pagine"

Ci ho messo un bel po' per capire....

  1. ogni pagina è univocamente identificata da un ID (non dal titolo).
  2. nello "spostamento di pagina" quello che avviene è, in realtà:
    1. la pagina "spostata" mantiene il suo ID (e quindi la sua cronologia!);
    2. il titolo collegato a quell'ID viene modificato come richiesto; va bene qualsiasi titolo purchè non sia già presente o non sia "speciale";
    3. viene aperta una NUOVA pagina con il vecchio titolo, e le viene attribuito il contenuto REDIRECT alla vecchia pagina con il nuovo nome. Questo permette ai link alla vecchia pagina di non "puntare nel vuoto" (aimè, i link puntano al titolo e non all'ID!) e quindi possono essere rintracciati e corretti (uno a uno a mano, ma c'è una procedura via BOT che devo dissodare).

Per i più irresponsabili, esiste una procedura non accessibile all'utente comune che permette di "spostare la pagina senza lasciare tracce", ossia di rinominarla senza lasciarsi dietro pagine di redirect.... ma va usata con molta cautela. Io la sto usando nella conversione degli Indici che puntano su immagini singole jpg, ma con una certa apprensione.... :-( Bisogna essere ben sicuri di non lasciarsi dietro link "che puntano al nulla". --Alex brollo (disc.) 11:45, 25 apr 2010 (CEST)[rispondi]

Similitudine fra stringhe

Ho ideato un algoritmo che permette di confrontare due stringhe e ottenere una "percentuale di appartenenza" della prima nella seconda. Il meccanismo è semplice e sfrutta solo due cose che python fa velocemente e bene: l'estrazione di pezzetti di stringa e la ricerca di stringhe.

L'algoritmo logico è il seguente, date stringa1 e stringa2:

  1. azzera contatore match
  2. azzera contatore cicli
  3. per tutta la stringa stringa1:
    1. estrai la sottostringa cicli:cicli+3 (dal carattere 0 al carattere 3, poi da 1 a 4, poi da 2 a 5....
    2. se la sottostringa è contenuta in stringa2:
      1. incrementa di 1 il contatore match
    3. incrementa di 1 il contatore cicli
  4. calcola match*100/cicli (percentuale di match sul totale dei tentativi)

Il risultato va da 0 (nessuna sottostringa di stringa1 appartiene a stringa2) a 100 (tutte le sottostringhe di stringa1 appartengono a stringa2, il che non significa che siano uguali). Ci sono possibili varianti (trasformando le stringhe da confrontare, es. convertendo tutti i caratteri in minuscolo o eliminando la punteggiatura e gli spazi, o ripetendo il procedimento scambiando le stringhe fra di loro) tutte da esplorare. Per chi ci trova divertimento... io lo trovo. :-) . Questo algoritmo python lo esegue in qualche millisecondo. :-) --Alex brollo (disc.) 12:16, 8 lug 2010 (CEST)[rispondi]

It.source match and split

Vin (abbiamo in friulano, lo uso oper una volta....) il nostro Match and Split, totalmente originale. La chiave per farlo funzionare è "l'algoritmo di similitudine" sopra descritto, che si è dimostrato fenomenale (donde l'entusiasmo che traspariva..). Per i curiosi spiego come per adesso il match and split funziona nelle mie mani. Mi piacerebbe renderlo accessibile ad altri, ma al momento, aimè, non lo è se non per i "pythonisti anormali" come me.

Prerequisiti

  1. disponibilità di un file djvu con layer di testo da OCR di discreta qualità (tipo la quasi totalità dei file di Internet Archive)
  2. presenza di una versione testuale in ns0

Procedura operativa

  1. caricare il djvu su Commons e preparare un file Indice:.
  2. scaricare il file djvu.xml contenente il testo da OCR
  3. con la funzione estrai() python trasformare il testo in una lista di pagine
  4. con la funzione caricaTesti() python scaricare (leggendo la pagina principale dell'opera in ns0) tutti i testi dei capitoli/sezioni in un unico grosso file txt (chiamiamolo TESTO); le varie sezioni/capitoli sono identificate da opportuni header-footer
  1. lanciare la funzione match() che esegue le seguenti operazioni (per ora funziona su testi in versi, che hanno il vantaggio di essere organizzati in righe distinte, i versi):
    1. per ogni pagina della lista:
      1. cerca il match grossolano del contenuto della pagina in TESTO con algoritmo "statistico";
      2. appoggiandosi sui delimitatori header-footer estrae l'intero testo della sezione/capitolo;
      3. passa il testo della sezione/capitolo e il testo della pagina a un secondo script di match fine;
      4. questo secondo script esamina riga per riga il testo ed esegue il match "perfetto" (identifica nella sezione/capitolo le righe che sono contenute nella pagina con l'"algoritmo di similitudine");
      5. se il match ha successo vengono aggiunti due tag poem in testa e in coda alle righe appropriate e viene creata la pagina Pagina, in cui il testo delle righe "che battono" viene scritto tal quale com'è in ns0.

Esempio: A Satana è un'opera compresa in Indice:Poesie (Carducci).djvu. Non so dove, so che da qualche parte c'è. Ho sul pc la lista python delle pagine di File:Poesie (Carducci).djvu. Carico il testo di A Satana in un file con caricaTesto() e lancio match(). Lo script esamina una per una tutte le pagine (oltre 1000!) della lista con sovrumana velocità (suppongo, 10 o più pagine al secondo: scrollano velocissime). Trovato il match, fa quello che deve fare e produce le pagine Pagina: nel posto giusto. Poi carico un "mostro" come l'intero contenuto di Juvenilia. Rilancio match() e la cosa va avanti da sola, qualsiasi sia il numero di pagine che match() trova; siano una o siano 200, senza badare all'ordine in cui compaiono e ignorando bellamente tutti i codici di formattazione, i template, le differenze in spazi e punteggiatura presenti nella versione testuale, che non creano il minimo intoppo alla ricerca del match.

Passo 2

Restano "buchi", perchè sicuramente vi sono parti del file djvu che non sono presenti in ns0:

  • prefazioni, pagine indice, note dell'editore;
  • opere incomplete;
  • opere mancanti;
  • pagine vuote.

Lancio un secondo script, che "riempie tutti i buchi" di Indice: caricando il testo come sta nella lista python delle pagine.

Passo 3

Alcune delle pagine create sono vuote.

Lancio un terzo script che le identifica e le marca con pagequality=0.

Il risultato finale

Le opere sperimentali caricate sono:

L'analisi in corso di rilettura mostrerà quanto spesso il meccanismo ha fallito; un'analisi campionaria mi ha permesso di trovare un solo errore su Myricae. Essendo un meccanismo di "match statistico", è assolutamente certo che qualche errore sarà stato fatto; per favore, segnalatemelo! --Alex brollo (disc.) 09:11, 9 lug 2010 (CEST)[rispondi]

I problemi

Il sistema lavora molto bene sulle opere in versi, ma:

  1. non è testato sulle opere in prosa;
  2. è "sensibile ai versi brevi", e salta alcuni versi brevi in testa e in coda a una pagina;
  3. viene confuso anche da molti "versi brevi" nel contesto della pagina.
  4. c'è il problema delle pagine spezzate, che appartengono a diverse sezioni/capitoli
  5. infine, c'è in terribile problema nelle note, ossia di "pezzi di testo" indipendenti che sono situati in posizione totalmente diversa nel contesto.

I problemi 2 e 3 problemi sono ben espressi dai mancati match nel caso di Adelchi all'interno di Indice:Opere varie (Manzoni).djvu, ma il problema 2 si è affacciato per Myricae.

Tutti e tre i problemi derivano dal fatto che si appoggia eccessivamente agli acapo; occorre quindi risolvere il punto 1 (fare un match "indipendente dagli acapo") e verosimilmente si risolveranno anche i problemi 2 e 3. E' ora di portare a spasso il cane :-) e di riflettere su un "match fine" basato su un algoritmo del tutto diverso. --Alex brollo (disc.) 05:51, 10 lug 2010 (CEST)[rispondi]

Proposta per template testo

Ho trovato per caso un template francese che mostra un'iconcina carina per mandare al testo djvu quando presente. Il codice è qui sotto:

<includeonly><span class=openbook>[[Livre:{{{2|{{{1}}}}}}|     ]]</span> {{#if:{{{1|}}}|[[{{{1}}}|{{{3|{{{1}}}}}}]]|}}</includeonly><noinclude>

sarebbe integrabile e traducibile nel nostro template {{testo}}? Altrimenti traduciamo il template e lo usiamo solo con i libri djvu. Aubrey McFato 16:00, 10 lug 2010 (CEST)[rispondi]

Ultimi arrivi

Altra cosetta. Dato che ancora dobbiamo fare a mano, chi mi fa il favore di risolvere il piccolo bug che mi butta la scritta aggiorna sotto il box? io non ricordo come si fa. Grazie. Aubrey McFato 17:43, 10 lug 2010 (CEST)[rispondi]

✔ Fatto così. - εΔω 19:01, 10 lug 2010 (CEST)[rispondi]

Bug strano

OK, questo è strano davvero. Non capisco come mai

viene visualizzato in corsivo e con un font diverso. Forse dibende dal css, io e ipork anni fa facemmo qualcosa per avere un font diverso per le poere di letteratura. Ma questo è un template ed è l'unico a venir visualizzato così. La cosa strana è che se togliete alcune lettere, CAMBIA!

Vedi anche Wikisource:Niente.

Qualcuno mi sa dire? Priorità bassa, proprio se non avete nulla da fare. Aubrey McFato 21:01, 12 lug 2010 (CEST)[rispondi]

c'è nel template un class="hiddenStructure" che non capisco proprio che senso abbia... nel css non c'è nessuna classe che cominci per "hiddenStructure". In più col parametro 1, se tu passi al template la stringa "testi", lui va a prendere la classe "testi" del css! provo a togliere quella roba. Candalùa (disc.) 21:37, 12 lug 2010 (CEST)[rispondi]

ok, ho capito come funzionava: si trattava di un "magheggio" della peggiore specie che mostrava o nascondeva le varie scritte a seconda dei parametri che erano presenti. ora il template dovrebbe funzionare uguale ma senza più questi fastidiosi effetti collaterali. Candalùa (disc.) 21:54, 12 lug 2010 (CEST)[rispondi]

Grazie Candalua, era una piccola cosa ma ora finalmente è stata risolta. Appena ne trovo altre te le passo tutte ;-). Più che altro, tu che sei pratico, sapresti indicarmi una guida/aiuto per imparare a postare bug su bugzilla? Sono un totale niubbo a riguardo, ma ci sono alcune cosette che vorrei chiedere ai developer. Aubrey McFato 22:39, 12 lug 2010 (CEST)[rispondi]

Ns0 (caso semplice...) ispiegato in due screenshoot

Vedete? una volta deposto un Ns0 in una pagina, sono disponibili 4 dati, due dai parametri e due dal nome della pagina: "base" del nome della pagina e dell'Indice; numero della pagina; nome della sottopagina testale (parametro 1) e titolo della pagina testuale (parametro 2).

Se in giro ci sono section, sono disponibili altri due dati: il nome dell'eventuale section che si chiude immediatamente prima del Ns0, e il nome dell'eventuale section che si apre immediatamente prima di Ns0.

Se si tiene a mente tutti questi dati della sequenza dei Ns0, si possono ricavare anche i parametri to=, fromsection=, tosection= :-) oltre che i parametri prec= e succ= :-) :-)


... ed ecco i quattro dati "ridistribuiti" a creare parte della pagina testuale!
. Analogamente, se ci sono "in giro" tag section, ricostruisco i parametri fromsection e tosection; e i parametri prec= e succ= di IncludiIntestazione li ricavo dal Ns0 precedente e successivo a quello corrente... facile no? ;-) --Alex brollo (disc.) 16:56, 13 lug 2010 (CEST)[rispondi]

Template {{nota}}

Segnalo, per i più appassionati di "strane cose alexbrollesche", il nuovo {{nota}}, che crea un meccanismo alternativo a ref per le note. Lo vedete in azione in Il corsaro/Note e nelle pagine Pagina sorgente. Che ve ne pare? --Alex brollo (disc.) 06:59, 23 ago 2010 (CEST)[rispondi]

Buono. --Demart81 (Comunicazioni, insulti ecc.) 15:47, 25 ago 2010 (CEST)[rispondi]

Soluzioni a un problemuccio di transclusione

Immaginate di avere, in una pagina, un pezzo di testo che NON volete che sia transcluso insieme al resto del testo, ma che volete trascludere da un'altra parte.

Certo potete marcarlo con una section, marcare il resto del testo con un'altra section, e trascludere selettivamente. Ma... questo rende fastidiosissimo l'uso di pages index; perchè se la pagina in cui avviene il "fenomeno" è a metà di una sequenza, pages si rifiuta di trascludere solo una section di quella pagina. Nè funziona il trucco: "metto due tag noinclude attorno al testo e all'interno metto una section, e poi trascludo la sola section". Provate! Niente da fare: una volta che un testo è marcato con noinclude, NON verrà transcluso. Non esiste più, per il software... nemmeno la section interna, esiste più.

Tocca spezzare il tag pages, e farlo finire, e reiniziare, ogni volta che si incappa nella cosa. Ma bisogna farlo a mano, e ricordarsene.

Però.... osservate questo codice: da mettere in nsPagina:

<includeonly><div style="display:none; "></includeonly>

<span style="font-size:2.2em">LORD G. BYRON</span>


<includeonly></div></includeonly>

usato come test in Pagina:Poemi (Byron).djvu/3. Il testo "da far sparire" è racchiuso in una div style="display:none", e i tag della div sono a loro volta racchiusi dentro includeonly. Cosa accade? in pagina Pagina, i tag div sono "accoppati" da includeonly e non agiscono affatto; ma nel testo trascluso, ci sono eccome, e mascherano benissimo il testo che racchiudono. E' come se non fosse stato transcluso.... a meno che uno rovisti nell'html della pagina, dove il testo in realtà c'è; e c'è anche se uno tenta un copiaincolla dall'HTML; ma in visualizzazione, no, non ce n'è alcuna traccia. --Alex brollo (disc.) 07:30, 25 ago 2010 (CEST)[rispondi]

Applicazione pratica del trucco di cui sopra

La creazione di una div style="display:none" consente una via alternativa (forse che è la volta buona?) alla "semantizzazione" dei template fondamentali. Infatti, l'anno di pubblicazione di Poesie (Carducci) è 1906; l'autore è Giosuè Carducci; e dispone di versione immagine come potete vedere dando un'occhiata al codice del messaggio, il valore 1906 viene prodotto da questo codice, abbastanza intuitivo:

{{#section:Poesie (Carducci)|Anno di pubblicazione}}

. Che ve ne pare? Tenete conto che la "zona dati invisibile" della pagina Poesie (Carducci) viene generata da un algoritmo "generalizzato" che funziona non solo con il particolare template Intestazione, ma con qualsiasi template (tranne trabocchetti); in ogni caso, viene generata una "batteria di section" ognuna delle quali di chiama esattamente ciascuno dei parametri del template, oppure si chiama 1,2,3... nel caso che i parametri siano "senza nome". L'algoritmo (finora) si è dimostrato "robusto", non lo bloccano piccole differenze tipo acapi, spazi ecc. --Alex brollo (disc.) 23:26, 24 set 2010 (CEST)[rispondi]

Semantizzazione: il punto della situazione

Alcune discussioni in wikitech-I mi hanno convinto che Semantic MediaWiki è una bellissima cosa... "bella e impossibile": non c'è aria che la implementino dei progetti wiki. Io quindi adrei avanti con l'idea accennata nel paragrafo sopra: semantizzare per conto nostro, con #lst. Il principio è molto interessante: come sa chi mi ha seguito in test meno maturi, semantizzare significa: "disporre via template di qualsiasi dato collegato a un autore o a un'opera". Esempio di questi giorni: "Visualizzare col solo template Testo di un'opera, senza parametri, il suo autore, la data di pubblicazione e il suo tipo (testo "naked" o testo "proofread").

Io comincio con prove pratiche! --Alex brollo (disc.) 09:04, 9 ott 2010 (CEST)[rispondi]

Semantizzazione: si comincia

Ci siamo, sta per partire la Alebot SemanticSource. ;-) E' pronto uno script che aggiunge alle pagine principali Ns0 una "area dati", invisibile tranne che in edit; in edit compare inclusa in messaggi html minatori, spero efficaci. Potete vedere la cosa in azione in Il giaurro.

Dal momento in cui esiste tale area dati, ognuno dei parametri del template Intestazione può essere recuperato via tranclusione selettiva definita dall'utente, oppure da una transclusione selettiva "mascherata" dentro un template. Ovviamente, ad ogni modifica dell'utente Alebot controllerà, ed eventualmente sincronizzerà, i corrispondenti dati.

La stessa identica cosa verrà implementata per Autori, eliminando senza pietà la precedente versione che aveva delle limitazioni nel numero, tipo, lunghezza dei dati. Questa implementazione non ne ha.

Ognuno dei dati si "chiama" esattamente come il nome del parametro.

Quindi, i codici:

  • {{Dato|Il giaurro|Nome e cognome dell'autore}} produce George Gordon Byron
  • {Dato|Il giaurro|Anno di pubblicazione}} produce 1813
  • {{Dato|Il giaurro|Progetto}} ({{Dato|Il giaurro|Argomento}}) produce Letteratura (Poemi)

eccetera, eccetera. :-) --Alex brollo (disc.) 14:55, 9 ott 2010 (CEST)[rispondi]

Qual'è la data di nascita dell'autore di I promessi sposi? Facile: è ! :-)

La battaglia di Centrato

Dura! Sanguinosa! Ma forse... Avrete notato un ostinato, e bizzarro, comportamento di {{Centrato}}, che infilava quando voleva delle indentature nel testo centrato, ma solo qualche volta... non sempre nei vari namespace, e non in ogni riga. Eppure il codice css di Commons.css era identico a quello di fr.source... e non funzionava; se lo si metteva nel proprio css utente, funzionava... Sono mesi che ci sto dietro; la battaglia è stata simile a quella contro poem... ebbene, forse ho trovato l'astruso busillo; il codice css era esatto, ma messo nell'ordine sbagliato.... era messo prima del codice della classe pagetext la cui definizione lo "rullava". :-( è bastato "tirare su" il codice della classe .pagetext (quella che determina lo stile delle pagine Pagina) e il problema, nel nsPagina,si è dissolto. Almeno spero.



Questo è centrato sulla pagina... :-)




Questo è centrato in uno spazio di 50em... :-)




Questo è centrato in uno spazio di 25em... :-)


--Alex brollo (disc.) 07:33, 22 ott 2010 (CEST)[rispondi]

News da toolserver

Sono dentro toolserver! :-)

Adesso si tratta di studiare e pensare; pensare e studiare; poi provare, pensare e studiare in tutte le combinazioni.

Ecco alcune cose che ho a disposizione:

  1. uno spazio web pubblico per pagine statiche e dinamiche;
  2. accesso ai database wiki (i loro "cloni");
  3. possibilità di lanciare bot python.

Per ora mi concentrerò sui punti 1 e 2; poi ci sarà una base intermedia in cui suppongo di costruire tabelle parallele a quelle originali di wiki, con i famosi "dati semantizzati", e costruzione di una specie di interfaccia per interrogare il tutto via pagina web esterna a wiki; altra fase, possibilità di interrogare tali dati da wiki via bot; ultima fase, lancio di programmi in grado di modificare pagine wiki (fase molto delicata).

Appena possibile, in via transitoria attendendo soluzioni migliori, potresti aggiornare con gli script di Pietrodn alcune pagine sospettosamente quiescenti come Template:Conteggio testi SAL? εΔω 22:54, 1 nov 2010 (CET)[rispondi]
Seeee... domani :-D. Se sapessi che problemucci devo affrontare prima... piuttosto, guiderò per prova gli script di BimBot da Alebot (non da toolserver) per vedere cosa combinano. Quasi quasi comincio a capirli. --Alex brollo (disc.) 16:49, 2 nov 2010 (CET)[rispondi]

Help needed: toolserver, l'avventura comincia davvero

Spezzate varie barriere (so come lanciare Alebot da toolserver) adesso il gioco si fa duro, e la difficoltà è quella di darsi una strategia e di cominciare.

Ho un gran bisogno di aiuto da:

  1. chiunque sappia programmare per bene in python;
  2. chiunque abbia familiarità con l'interfaccia testo di Unix.
    1. Che text editor usare: va bene Nano?
    2. Chi mi aiuta con bash?
    3. Qualcuno ha esperienza pratica di cron?
    4. Qualcuno ha esperienza pratica del matrimonio php-python?
    5. Qualcuno ha maneggiato php-mySQL, oppure php-python-mySQL?
  3. in generale, per non fare un immane casino:
    1. è opportuno lavorare direttamente in toolserver nell'editing/test degli script python?
    2. è opportuno lavorare invece in locale, e poi esportare gli scirpt rodati in toolserver via pftp?

Queste sono solo le prime domande. :-) --Alex brollo (disc.) 15:43, 15 nov 2010 (CET)[rispondi]

Nano secondo me è meglio di vi, che è assurdamente unfriendly. Per il resto, non saprei dirti... all'inizio comunque forse è meglio provare in locale, se hai paura di far troppi danni.. --Aubrey McFato 09:22, 16 nov 2010 (CET)[rispondi]
Infatti, ho avuto la netta impressione che il nome di vi derivi dall'esclamazione, che io ho rivolto ai suoi creatori, "Vi possino....". Risolto, grazie. --Alex brollo (disc.) 11:57, 17 nov 2010 (CET)[rispondi]

Opere in pubblico dominio pubblicate dopo il 1923

Non riesco a trovare una indicazione se un libro del 1930, di un autore morto nel 1911 (Salgari) può essere scannerizzato e utilizzato per la trascrizione, oppure è necessario trovare un libro pubblicato prima del 1923? Nel caso non sia scannerizzabile è utilizzabile almeno come fonte cartacea, cioè lo trascrivo a casa? --Luigi62 (disc.) 11:26, 17 nov 2010 (CET)[rispondi]

In questo bar non ci viene nessuno: è "tecnico" in senso di "informatico" :-). Meglio mettere la domanda in bar generale, se non ti viene risposto subito (al momento la tua domanda mi lascia confuso; mille volte ne parliamo, mille volte me ne dimentico qualche dettaglio...) --Alex brollo (disc.) 11:55, 17 nov 2010 (CET)[rispondi]

"Blocchi" di testo spezzati fra due pagine: la soluzione generale!

Per capire bene quello che dirò occorre qualche nozione di html; in particolare, occorre avere un'idea di cos'è un "elemento blocco" in html.

Sono "elementi blocco" quegli elementi che racchiudono il contenuto in un rettangolo virtuale di spazio pagina. I più comuni sono l'elemento div e l'elemento p. Ma noi usiamo moltissimo anche gli elementi lista e anche le tabelle.

Tutti gli elementi blocco hanno caratteristiche comuni, che derivano dal fatto di essere uno spazio rettangolare dotati di un margine (margin), di un bordo (border), di uno spazio fra bordo e contenuto (padding), di uno sfondo (background). Tutti hanno la caratteristica che non possono essere aperti e chiusi all'interno di un paragrafo: il tentativo di farlo, inevitabilmente, "spezza" il testo e crea almeno un ritorno a capo.

Il markup wiki ha parecchi automatismi per rendere l'utente del tutto ignaro della presenza, posizione e funzionamento di questi elementi:

  1. l'elemento div è generalmente mascherato dentro il codice di template;
  2. l'elemento p è generato automaticamente da un doppio a capo;
  3. gli elementi lista sono mascherati dai codici a inizio riga: * # : ;

Un "trucco" per visualizzare gli elementi blocco è quello di inserire esplicitamente il codice html e assegnare un bordo visibile.

Esempio: questo è un paragrafo in cui i tag p sono stati scritti esplicitamente e al p di apertura è stato assegnato un bordo rosso punteggiato da 1 pixel.

Questo invece è un elemento-lista (tag dd contenuto in un tag dl)che simula l'uso del codice : a inizio riga (notate il rientro del blocco a sinistra:lo riconoscete?), a cui è stato assegnato un bordo punteggiato verde.
Questo infine è un elemento div della larghezza di 200 pixel, con un bordo punteggiato blu, e centrato nella pagina.

Il normale pediano non ha alcun bisogno concreto di sapere queste cose. Quindi nessuno le spiega; sono argomenti per iniziati.

Il normale sourciano, che usa il nsPagina e poi transclude, invece ci si intoppa, e le cose sono messe in modo che disintopparsi richiede ignobili trucchi.... o la comprensione a fondo di cosa succede. Infatti, c'è un punto in cui "casca l'asino": la fine di una pagina Pagina, e l'inizio della successiva, nel caso in cui un paragrafo sia metà sulla pagina precedente, metà sulla successiva. Quando il paragrafo è "normale", non succede nulla, quando il paragrafo "non è normale", o invece del paragrafo, ci sia un altro tipo di blocco (es. un blocco lista: cosa comunissima nei testi teatrali) il codice wiki si imbizzarrisce, e produce anomalie-rompicapo; la più comune, il paragrafo viene spezzato in due in transclusione, perchè è stato aggiunto un acapo che resiste a ogni ragionevole tentativo di eliminazione. La causa di queste bizzarrie è che il software wiki chiude automaticamente, alla fine della pagina, tutti i blocchi aperti; e soprattutto, se chiude un blocco di qualsiasi tipo, chiude anche il paragrafo di testo che il blocco contiene. Blocco paragrafo chiuso = a capo inevitabile fra la parte delparagrafoche sta nella pagina, e la parte che sta nella successiva.

La soluzione? c'è, ed è unica e comune a tutti gli elementi blocco. :-)

Essa consiste in questa semplice regola: per evitare che il software chiuda automaticamente elementi blocco lasciati aperti, apriteli voi stessi con i tag html espliciti (non con il markup!) e chiudeteli con i normali tag di chiusura, sistemati però nella zona footer della pagina. Nella pagina successiva, riaprite un nuovo elemento blocco, ma con codice sistemato nell'header. Effetto: il software wiki è soddisfatto di veder chiusi tutti i blocchi aperti e non fa niente. In tranclusione, trasporterà dalla pagina precedente solo i tag di apertura, e dalla successiva solo i tag di chiusura; creerà, cioè, un blocco unico, a cui verranno per forza applicati tutti gli attributi previsti nel tag di apertura! fate qualche esperimento, tutti quelli che ho fatto io funzionano a colpo sicuro. Tranne poem, che NON è un tag html! --Alex brollo (disc.) 20:38, 29 dic 2010 (CET)[rispondi]

Due ricette facili facili per scaricare e ricaricare testo nei file djvu

Lasciando perdere le complcazioni delle automazioni via python o che altro, vi do una semplice ricetta per scaricare, modificare, ricaricare lo "strato di testo" di un file djvu. Seguite i passi con precisione! e ditemi se qualcosa non è chiaro. La ricetta vale per chi ha Windows XP o inferiore, per chi ha Vista o superiori... non so.

  1. se non l'avete già fatto, scaricate e installate DjvuLibre. E' un'installazione leggera, non va a rimescolare file di sistema; poco più che una collezione di script autonomi. Installate la cartella in un posto comodo da raggiungere.
  2. caricateci dentro un file djvu che provenga da Internet Archive. Per semplicità, e per seguire meglio "la ricetta", rinominatelo miofile.djvu.
  3. con Blocco note aprite, nella setssa cartella, un file testo che contenga esattamente questo che segue:
djvused miofile.djvu -e "select 1; print-txt" >testo.txt

dove il numero 1 è il numero della pagina il cui testo verrà scaricato in testo.txt. Salvate questo file con il nome di scarica.bat.

  1. Sempre con Blocco note, create un secondo file testo con questo contenuto:
djvused miofile.djvu -e "select 1; set-txt testo.txt; save"

e salvatelo come carica.bat. Stessa cosa di prima: se volete agire su una pagina diversa, modificate il numero 1.

  1. A questo punto, se fate doppio click su scarica.bat, dopo un'attesa di qualche attimo comparirà dal nulla, nella cartella, il file testo.txt. Apritelo con Blocco note o il vostro editor preferito. Non lasciatevi impressionare! é facile da modificare se seguite queste due semplici regole:
    1. non toccare nulla tranne le parole comprese fra due doppie virgolette (il testo vero e proprio, il resto è codice);
    2. non infilare nelle parole che modificherete degli acapo nè dei caratteri doppie virgolette (si può fare ma per ora lasciamo perdere).
  2. Salvate il file modificato e fate doppio click sull'altro microprogramma, carica.bat.
  3. Se le cose sono andate come devono, il vostro testo modificato è stato infilato nel file djvu. :-)

Djvu + toolserver

Nel mio account toolserver sono installate e funzionanti le routine DjvuLibre. Inoltre, è caricato il primo djvu di prova (un grosso djvu di cui è in corso la trascrizione su en.source: en:Index:Horse shoes and horse shoeing.djvu. Questo significa che si parte con test di manipolazione di un file djvu attraverso toolserver, da una pagina interattiva che sarà raggiungibile via web. Tenete conto che io, su toolserver, mi trovo nella situazione del turista che viaggia in un paese sconosciuto, conoscendo solo poche parole della lingua locale... io mi rivolgo a toolserver con script elementari e grossolani, proprio come un turista direbbe "pane... fame... mangiare... dove io dormire.... ", ma i turisti coraggiosi lo fanno e sopravvivono, anzi: ci si divertono. Quindi... :-) --Alex brollo (disc.) 09:02, 6 feb 2011 (CET)[rispondi]

Notizie da en.source

Template da importare

  • Molto carino un en:Template:Gap, fatto per creare una spaziatura fissa con un sistema diverso da Template:Spazi.
  • A domanda: quanto spesso dev'essere usato un template per giustificare la sua esistenza? mi è stata data una risposta interessante che è: dipende; se il codice che il template sostituisce è molto complesso, vale la pena scrivere un teplate anche se viene richiamato poche volte (quindi: nella loro filosofia, sì anche a template molto particolari, come quelli opera-specifici)

Interessante anche en:Template:Populate, vedi sotto "autori naked"

Il template Gap è forse più appropriato che il nostro Nbsp, ma a parte il tecnicismo quali sono gli altri vantaggi? Si sa se ci sono problemi di compatibilità tra i browser? --L0ll0 (disc.) 10:36, 8 feb 2011 (CET)[rispondi]

Intestazione

  • Invidio un po' la estrema semplicità del loro template Intestazione. Chissà, un giorno... tuttavia, del "sistema Candalua" via form al template per un'interfaccia non c'è ancora traccia.
  • Politica degli autori senza opere: con giudizio, ma senza tentennamenti, viene incoraggiata la creazione di pagine Autore anche se non ci sono ancora opere, e a tali autori viene aggiunto il template {{Populate}} che visualizza un messaggio di invito a caricare opere dell'autore e categorizza l'autore in una categoria da "popolare".
  • Opere "wanted": alle pagine autore vengono spesso aggiunti "link rossi" verso opere non ancora caricate. Tuttavia tale pratica non è incoraggiata. Meglio sarebbe (come facciamo noi) eventualmente aggiungere sì i link rossi, ma solo a quelle opere di cui si dispone di un link a una possibile fonte-immagine (file pdf o file djvu). Ormai, si Internet Archive si trova "tutto" e spesso il problema è scegliere fra molte versioni e edizioni disponibili. --Alex brollo (disc.) 21:53, 7 feb 2011 (CET)[rispondi]

Template per le linee orizzontali

Costruire un template che renda la famosa righetta orizzontale centrata, di varie lunghezze, usata come separatore in vari testi è facile. Ma vi chiedo: come lo chiamiamo? Intanto uso il nome inglese: en:Template:Rule, poi mi sifgerirete un nome più adatto (ma il nome inglese, almeno come redirect, lo conserverei, come regola!) --Alex brollo (disc.) 10:00, 16 feb 2011 (CET)[rispondi]

ottima la regola, e per ora va bene pure il nome, mi pare abbastanza semplice. Il template riga poi ce l'abbiamo già... --Aubrey McFato 10:43, 16 feb 2011 (CET)[rispondi]

Ricorrenze in una pagina con una riga di codice

La riga di codice per ottenere i morti di oggi 26 aprile, appoggiandosi a un'unica pagina dati, è:

{{#section:Wikisource:Pagina delle prove/1|muore {{CURRENTDAY}} {{CURRENTMONTHNAME}}}}

che produce:

Wikisource:Pagina delle prove/1

Ora, se un cron bot leggesse all'una di notte l'html della pagina, troverebbe la lista; e con poche letture di pagine, saprebbe tutto dei poveri defunti, e potrebbe preparare qualsiasi elaborazione di questo tutto.... se vi fa venire qualche idea, parliamone. --Alex brollo (disc.) 01:20, 17 feb 2011 (CET)[rispondi]

Quesito da principiante su js

Leggo che la funzione prompt di js è un relict. Sono quindi perplesso nel proporre questa cosa che potrebbe essere un'immane stupidez, ma mi faccio coraggio.

Immaginiamo che in vector.js o in una pagina js chiamata da vector.js ci sia solo la definizione di un certo numero di variabili, ciascuna associata a una stringa più o meno complessa (anche multiriga: Intestazione, ecc). Immaginiamo che una delle funzioni regex sia una chiamata a prompt che chiede un "nome in codice" per tali variabili (di una o due lettere max: tipo "i" per Intestazione). Con soli due click e pochissimi caratteri da tastiera un utente potrebbe accedere a una raccolta, ampia quanto si vuole, di "stringhe fatte" personali; non solo, ma osgnuna di queste "stringhe fatte" potrebbe essere facilmente associata a elaborazioni js che sfruttino altre variabili disponibili (e ce ne sono tante). Insomma, potrebbe essere uno dei tanti modi di personalizzare il proprio ambiente di editing, un po' più lento che usando un programma esterno tipo AutoHotKey, ma nemmeno tanto. E' una stupidaggine? --Alex brollo (disc.) 11:52, 23 feb 2011 (CET)[rispondi]

Butto via metà dell'idea, e tengo la metà che va bene. Funziona piuttosto bene l'idea di mettere in vector.js delle pure variabili. Con le tre variabili che ho sistemato nel mio vector.js, la nuova funzione textVar appone da sola in header il template RigaIntestazione completo di un'opera (per prova ho utilizzato "Giustizia" su cui lavora Candalua). Un click solo... niente da "passare" con prompt. Sono soddisfatto del mio "hello world" con jQuery. :-)

Affascinato dal mondo jQuery

Solo per condividere il mio stupore per il mondo jQuery... posso chiedervi di annotare qui sotto il vostro nome, se lo usate almeno un pochino? varrebbe la pena di fare una bella revisione dei nostri script js... Candalua lo inserisco d'ufficio. :-P --Alex brollo (disc.) 11:11, 24 feb 2011 (CET)[rispondi]

  1. Candalua

Qui sotto invece script esistenti che vorreste migliorare, oppure idee da sviluppare, se possibile, con script nuovi (io suggerirei di restare nell'ambito degli script utili per accelerare e migliorare l'edit delle nostre pagine Pagina: e ns0:):

  1. {{Sc|}} nello script {{Ri}}
    Così di getto mi viene da fare una piccola proposta: che ne dite di mettere già anche il template Sc nello scriptino per la RigaIndice? Molte opere hanno il titolo in small caps, e secondo me è sempre più comodo cancellarlo se non serve che stare a inserirlo quando serve. =) --L0ll0 (disc.) 16:04, 24 feb 2011 (CET)[rispondi]
    1. Buona idea. Meglio ancora se associato a {{lc:}}, in quanto nella maggior parte dei casi dove serve, in intestazione, bisogna convertire le lettere in minuscolo perchè il risultato sia quello voluto. Oppure bisogna abilitare massivamente il tastino per la conversione minuscolo/maiuscolo che mo sono perso. :-(
    2. L'effetto dei due comandi associati è: {{Sc|{{lc:Il Catilinario}}}} -> il catilinario
    3. tieni conto che le cose sono in movimento: vedi Aiuto:RegexMenuFramework per il "settaggio fine" del template, con parecchia automazione, compreso il codice di formattazione specifico per l'opera. --Alex brollo (disc.) 09:47, 25 feb 2011 (CET)[rispondi]

Tastini per vector

Ecco il codice che crea un tastino aggiuntivo per Vector, fra le funzioni "avanzate":

/* Centrato*/
if ( typeof $j != 'undefined' && typeof $j.fn.wikiEditor != 'undefined' ) {$j( function() {
    $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
      'section': 'advanced',
      'group': 'format',
      'tools': {'center': {
          label: 'center',
          type: 'button',
          icon: 'http://upload.wikimedia.org/wikipedia/commons/5/5f/Button_center.png',
          action: {type: 'encapsulate',
            options: { pre: "{{Centrato|",  post: "}}"
}}}}});});}

Per aggiungere i tastini al grupp principale, inceve che sotto "avanzate", basta specificare 'main' al posto di 'advanced'. Possiamo cominciare a recuperare i vecchi tastini e trasformarli in altrettanti gadget. Purtroppo non ho trovato la lista delle azioni previste (l'elenco del 'type'), e dei parametri che ciascun type accetta; al momento non saprei come collegare un tastino a una funzione qualsiasi. --Alex brollo (disc.) 00:24, 27 feb 2011 (CET)[rispondi]

Per 'type' intendi quello con 'button' o quello con 'encapsulate'? Inoltre un appunto, oltre alla 'section' si può cambiare il 'group'. Ad esempio io i tasti per le votazioni li ho messi in 'advanced' -> 'insert' (al posto di 'format'). Facciamo una lista delle opzioni possibili?
Mi sorge però un dubbio... Ma questi tasti vanno solo con l'editor avanzato? Non è ancora buggato da quando hanno fatto l'aggiornamento? --L0ll0 (disc.) 11:20, 27 feb 2011 (CET)[rispondi]
mi interessa il action: type: 'encapsulated', che immagino si riferisca al tipo di azione (incapsulare, ossia, attroniare il testo selezionato con un prefisso e un suffisso). Immagino che ci siano altre azioni previste (es. sostituisci), ma bisogna trovare la relativa doc. Idem per capire per bene tutte le opzioni di collocazione. Quanto al bug dell'editor avanzato, ho perso la cognizione del punto a cui siamo. --Alex brollo (disc.) 10:51, 3 mar 2011 (CET)[rispondi]
Aggiungo per chiarire: ci sono due strade aperte, una è l'aggiunta di tastini personali nel proprio vector.js, con il contenuto e la collocazione che si vuole, e l'altra è l'allestimento di "gadget" pronti per tutti gli utenti; sono graditissimi esperimenti/suggerimenti su entrambe le opzioni. Suggerirei però di evitare doppioni: se il tastino desiderato è fra i gadget, meglio attivare il gadget (discutendolo, se c'è qualcsa che non va) che montarsi lo stesso tastino "migliorato" nel proprio vector. Solo un suggerimento, non una prescrizione! --Alex brollo (disc.) 11:13, 3 mar 2011 (CET)[rispondi]
con fatica ho trovato qualcosa; ad es. qui; siamo nei gangli della estensione WikiEditor. --Alex brollo (disc.) 12:21, 3 mar 2011 (CET)[rispondi]

variabili opera in javascript

Segnalo ai più audaci (che conoscono un po' javascript) la pagina Utente:Alex brollo/variabili opera.js, che attiva un'unica variabile "strutturata":

datiPagine={
'Il Catilinario ed il Giugurtino.djvu':{
                  'delta':51,
                  'pari':'{{RigaIntestazione|#pag|{{Sc|il catilinario}}|}}',
                  'dispari':'{{RigaIntestazione||{{Sc|il catilinario}}|#pag}}'
                  },
'Il fu Mattia Pascal.djvu':{
                  'delta':10,
                  'pari':'{{RigaIntestazione||― #pag ―|}}',
                  'dispari':'{{RigaIntestazione||― #pag ―|}}'
                  },
'Opere di Mario Rapisardi 5.djvu':{
                  'delta':0,
                  'pari':'{{RigaIntestazione|#pag|\'\' \'\'|riga=si}}',
                  'dispari':'{{RigaIntestazione||\'\' \'\'|#pag|riga=si}}'
                  }
         };

La novità è che con questo trucco (tenere una variabile di questo tipo per conto suo in una pagina staccata dalle funzioni che la usano) aumenta moltissimo l'adattabilità del sistema; infatti, senza installare alcuna funzione sul proprio vector.js, ma definendo soltanto un oggetto del genere, contenente i dati sulle opere a cui si sta personalmente lavorando, si sfrutta una funzione generale adattandola a specifiche esigenze individuali.

La cosa è un po' astratta, siamo appena all'inizio; c'è molto da pensare e da provare, ma vedo la cosa molto promettente. Approfitto per raccomandarvi ancora di installare e provare l'accessorio RegexMenuFramework, comprendente anche tools per la numerazione dei versi scritti da Candalua, che sono una genialata galattica ingiustamente priva, finoda, di adeguato feedback.

A chi vuoe installare il il gadget RegexMenuFramework raccomando di eliminare dal proprio vector.js, se c'è, ogni riferimento alle funzioni che usa il gadget, altrimenti "sovrascrivono" quelle del gadget. In particolare, va accoppata la funzione function rmflinks(), e a questo punto diventa perfettamente inutile anche caricarsi gli script RegexMenuFramework. --Alex brollo (disc.) 11:03, 3 mar 2011 (CET)[rispondi]

Piccola (non tanto) novità postOCR

La routine postOCR è stata leggermente modificata. La precedente versione NON eseguiva la correzione degli a capo, nè la "compattazione degli spazi", in una pagina che contenesse un tag <poem>. La funzione attuale, invece, in una pagina in cui ci sia testo in prosa e aree poem, non esegue le due routine nelle aree poem, mentre le esegue regolarmente nelle aree in prosa. :-)

Vi ricordo che postOCR chiama anche RigaIntestazione: adesso quindi dovrebbe poter essere lanciato anche su poesie già formattate, per pescare gli ultimi errorini e per aggiungere o correggere comodamente RigaIntestazione.

Suggerimento: prendere l'abitudine di applicare il tag poem immediatamente, come primo passo della correzione dell'OCR. --Alex brollo (disc.) 22:04, 5 mar 2011 (CET)[rispondi]

Rebus di formattazione

In Canti del Friuli l'editore ha applicato dei capolettera particolarissimi la cui resa è un vero rompicapo. Il verso del capolettera è spostato a sinistra; il capolettera ha un allineamento verticale centrato sul verso. Dopo vari frustranti tentativi ho combinato un accrocchio di codici di questa fatta:

<br/>[[File:Canti del Friuli-S.jpg|40px|alt=S]]ublimi vette scintillanti, floridi<br />
<poem>{{ms|2em; margin-top:-1.5em}}colli, ridente pian, che di triplice
difesa il mar nostro cingete,
{{R|4}}da Venezia all’estremo Quarnaro,</div></poem>

che produce:


Sublimi vette scintillanti, floridi

colli, ridente pian, che di triplice

difesa il mar nostro cingete,

4da Venezia all’estremo Quarnaro,

ma ho la netta impressione che ci sia una soluzione più semplice. A voi. --Alex brollo (disc.) 11:21, 7 mar 2011 (CET)[rispondi]

Note spezzate su più pagine

La nostra soluzione DIY per le note spezzate potrebbe andare in pensione, sostituita dalla sintassi <ref name="nome_nota">....</ref> sulla parte iniziale della nota, e da <ref follow="nome_nota">....</ref> sulla seconda nella pagina sucecssiva/nelle pagine successive.

Ho applicato con successo questa sintassi nelle pagine Pagina:Il Catilinario ed il Giugurtino.djvu/56 e successive, che contengono il testo di Il Catilinario/I. Tutto bene fino a che non ho trovato l'intoppo.

Ci sono tre casi diversi, e non sono ancora riuscito a risolvere il secondo e il terzo. Per per "pagina precedente" intendo la pagina che contiene la prima parte dela nota spezzata; per "pagina successiva" intendo la pagina che comprende la seconda parte della nota spezzata.

  1. il primo caso è quello in cui la pagina successiva è costituita interamente da testo che appartiene al capitolo della pagina precedente. No problem, la sintassi funziona. Per convenzione personale dò al ref un nome tipo "pageXX" dove XX è il numero della pagina dove la nota inizia; quindi, nella pagina precedente (es la 56) ci sarà un tag <ref name="page56">....</ref> e nella pagina successiva un tag <ref follow="page56">....</ref>.
  1. il secondo caso è quello in cui nella pagina successiva termina il capitolo contenuto nella pagina precedente e ne inizia un altro. La nota spezzata fa parte del primo dei due capitoli parzialmente compresi dalla pagina successiva. Problema! Bisogna forzare la transclusione della nota spezzata nella prima sezione, ma c'è qualcosa che non va. Esempio: Il Catilinario/IV. Sopra le note viene transcluso il testo della continuazione di una nota che appartiene al Capitolo II. :-(
  1. il terzo caso è quello in cui il captolo a cui si riferisce la nota termina nella pagina precedente, ma la nota continua nella pagina successiva, che contiene unicamente il testo del capitolo successivo/dei capitoli successivi. Tremendo problema! Come faccio ad assegnare il testo della nota spezzata a una sezione che nella pagina non c'è? Esempio: Il Catilinario/III. Stesso problema del Capitolo IV.

Ho perso parecchio tempo a cercare di risolvere il problema, "rimescolando sezioni", ma non ci sono riuscito... :-( --Alex brollo (disc.) 09:32, 24 mar 2011 (CET)[rispondi]

Risolto!

Adesso, misteriosamente, anche nei casi 2 e 3 la sintassi funziona. Mistero! Miracolo? Intervento ThomasVuesco? Non si sa.
Perchè funzioni, sia nel caso 2 che nel caso 3, la seconda parte della nota dev'essere transclusa anche lei, nella stessa pagina dov'è transclusa la prima parte della nota.
  1. Caso 2, la nota ref follow fa parte del capitolo a cui appartiene il testo nella prima parte della pagina (in genere marcato da una section name=s1). Includere quindi il testo ref follow in una section s1: nella setessa pagina ci saranno due testi marcati con lo stesso nome di section: non preoccupatevi! Va bene così.
  2. Caso 3, la nota ref follow fa parte di un capitolo che termina nella pagina precedente. Non importa: includere comunque il testo della nota ref follow in una section, includere tutto il testo della pagina in un'altra section, e scrivere il tag pages in modo che i due capitoli includano le section opportune. Mi sembra chiaro. :-P
Vedi comunque codice ns0 e codice pagine in Il Catilinario/IV (caso tipo 2) e Il Catilinario/III (caso tipo 3)--Alex brollo (disc.) 20:04, 28 mar 2011 (CEST)[rispondi]

Problema di margine

In questa pagina il margine tra la riga di intestazione e il corpo del testo è eccessivo rispetto alle altre pagine che utilizzano il tl Colonna, ma non riesco a capire perché... Purtroppo questo margine eccessivo si ripercuote su Ns0 inserendo uno spazio troppo ampio tra i due paragrafi a cavallo di pagina. Aiuto!! #_# Cinnamologus 23:16, 25 mar 2011 (CET)[rispondi]

Non so perché, ma si creano delle righe vuote in più tra il tag <hr style="width:100%; margin:auto; color: black; background-color: black; height: 1px;" /> e il </noiclude> nascosto prima del tag <span class="SAL">... [1] Forse roba da bot? Ora le ho tolte, ma se si risalva la pagina riappaiono in automatico! Strano... --L0ll0 (disc.) 23:50, 25 mar 2011 (CET)[rispondi]
Mistero che solo Candalua può risolvere. Sospetto un effettocollaterale di qualche javascript, piuttosto che di un bot, visto che le due righe bianche si materializzano istantaneamente; ma non immagino da dove possano Venire. Spero solo che non sia colpa mia, apprendista stregone di js... :-( --Alex brollo (disc.) 11:15, 27 mar 2011 (CEST)[rispondi]

Trucchi math

Metto qui per i posteri (nella pagina di aiuto questi particolari ci snon, ma "si perdono") due trucchi per la formattazione delle formule matematiche.

Premessa: è interessante capire bene come le formule vengono generate. Il LaTex viene interpretato e trasformato in un'immagine png. Quello che si vede è una pura e semplice immagine.

Applicare uno stile css

All'interno del tag math si può infilare un attributo style e quindi "passare" parametri per modificare il display dell'immagine png. Ad esempio, si può definire l'altezza o la larghezza dell'immagine. Ovviamente, essendo un'immagine, si possono passare solo parametri "sensati" per un'immagine. Esempio:

<math>\iint_{D}^{W} \, dx\,dy</math>  rimpiccioliamo modificando l'altezza: <math style="height:2.6em">\iint_{D}^{W} \, dx\,dy</math>

rimpiccioliamo modificando l'altezza:

Applicare uno stile TeX

Il tag TeX \scriptstyle può essere applicato all'inizio della formula, e produce un risultato molto interessante, soprattutto per adeguare le immagini delle formule che sono contenute all'interno di una linea di testo.

<math>\iint_{D}^{W} \, dx\,dy</math>  qui di seguito la stessa formula con \scriptstyle: <math>\scriptstyle\iint_{D}^{W} \, dx\,dy</math>

qui di seguito la stessa formula con \scriptstyle:

Per i puristi hard c'è anche la possibilità di allineare le formule alla riga di testo. --Alex brollo (disc.) 10:52, 31 mar 2011 (CEST)[rispondi]

Puristi? Hard? Magari pignoli... Ioioio! Come si fa ad allineare? =D --L0ll0 (disc.) 13:31, 1 apr 2011 (CEST)[rispondi]
Sta nella pagina Aiuto:Formule matematiche tex... vedo... ecco: passando a math un attributo di stile vertical-align:baseline si "appoggia" l'immagine alla linea di base della riga; oppure, passando a vertical-align un valore percentuale, si controlla esattamente la posizione della formula (questo che segue risulta da un valore -25%): . --Alex brollo (disc.) 20:12, 9 apr 2011 (CEST)[rispondi]

Firefox 4

Domandone: ho montato Firefox 4, ma ho scoperto che non carica il vector.js personale... Non saprei minimamente perché e non ho avuto il tempo di controllare perché vista la palese insostenibilità per me sono tornato immediatamente alla versione precedente.
Qualcuno può confermare/smentire? Lo monto da qualche parte e provo a fare il bug tester per vedere se è colpa mia, "nostra" o "loro"? --L0ll0 (disc.) 13:31, 1 apr 2011 (CEST)[rispondi]

Ho aggiornato anch'io, ma il vector.js me lo carica senza problemi. Candalùa (disc.) 23:27, 9 apr 2011 (CEST)[rispondi]

Idem (come Candalua) (ps: sono all'estero ;-) ma vi tengo d'occhio lo stesso!). --Alex brollo (disc.) 08:55, 10 apr 2011 (CEST)[rispondi]
Eccappunto lo immaginavo... Come al solito sono io che sto sbagliando qualcosa... XD
Ora lo rimonto e vedo di trovare il problema. Grazie a tutti del feedback! ;) --L0ll0 (disc.) 09:05, 10 apr 2011 (CEST)[rispondi]
Ho trovato l'errore. È la parte di codice del vector.js che si occupa dei regex personalizzati che blocca tutto il vector. Ho fatto mille tentativi, ma senza nessun risultato. Se lascio così com'è mi dice "datiPagine not defined".
Lancio la mia domanda ai più esperti col Java: è possibile riavere funzionante i datiPagine personalizzati o decidiamo di comunicarli ad Alex che li mette nella sua pagina globale? =)
Per me va bene qualsiasi cosa! =D --L0ll0 (disc.) 23:50, 11 apr 2011 (CEST)[rispondi]

Malfunzionamento tl|Nota in Ns0

Guardate queste note o queste: viene aggiunto uno <span title="In Pagina: x ">. Curiosamente questo avviene solo in Ns0! --Cinnamologus 19:44, 9 apr 2011 (CEST)[rispondi]

Da una rapida analisi:
Il problema riguarda tutte le ricorrenze del template, dunque è un problema del template; guardo il template.
Il template non è stato toccato da quasi un anno, e fino a pochi giorni fa tutto filava liscio, dunque il problema non è del template...
dunque
Nell'ultimo passaggio (probabilmente l'upgrade a MediaWiki 1.17) qualcosa in MediaWiki ha fatto sballare il meccanismo precedentemente funzionante.
Urge un debugger più esperto... lo chiamo. εΔω 20:13, 9 apr 2011 (CEST)[rispondi]
Risolto. Dipendeva dai ritocchi recenti a Pt (fra me e Candalua facciamo una bella coppia :-) ).--Alex brollo (disc.) 20:27, 9 apr 2011 (CEST)[rispondi]
Per inciso: Edo ha realizzato una magnifica istanza di "falso sillogismo".... diventerà famoso nei trattati di logica ;-). L'errore è insidioso: la premessa 1 è vera, ma la premessa 2 è sottilmente falsa.... se un template contiene altri template, e magari questi chiamano altri template, perchè sia vera bisogna che nessuno dei template all'interno della scatola cinese sia stato modificato. In questo caso, mi ha aiutato il fatto di avere la coscienza sporca... --Alex brollo (disc.) 09:17, 11 apr 2011 (CEST)[rispondi]

Testo su immagine

In questa pagina ho cercato di sovrapporre la scritta FINE alla cornice che la contiene. Il risultato l'ho ottenuto parzialmente per tentativi ma non ne sono affatto soddisfatto. Esiste già un template che sovrappone una scritta ad una immagine senza dover utilizzare dei riferimenti assoluti? --Luigi62 (disc.) 11:00, 26 apr 2011 (CEST)[rispondi]

Qui, no; ho trovato questo], ma mi pare complicatuccio... nel tuo caso, io avrei semplicemente aggiunto un parametro alt=FINE, lasciando l'immagine come stava; tanto per assicurare un buon txt dopo eventuale copiaincolla su un editor. Alex brollo (disc.) 11:35, 26 apr 2011 (CEST)[rispondi]

Blocco centrato con larghezza e poem

Guardate l'effetto di un template Blocco centrato con parametro larghezza=80% nella pagina: Pagina:Il piacere.djvu/196. Mi piace parecchio. Riproduco qui l'effetto dentro una div pagetext bordata:

I.




Erma quadrata, le tue quattro fronti
sanno mie novità meravigliose?
Spirti, cantando, da le sedi ascose
partono del mio cor leggieri e pronti
 
5Il cor mio prode tutte impure fonti
serrò, cacciò da se tutt’altre cose
impure, tutte fiamme obbrobriose
domò, ruppe all’assedio tutti i ponti.
 
Spirti, cantando, salgono. Ben odo
10io l’inno; e inestinguibile, possente,
del periglio di me mi prende un riso.
 
Pallido sì ma come un re, io godo
sentir nel core l’anima ridente,
mentre il già vinto Mal rimiro fiso.

Adesso con larghezza=70%, per capire meglio l'effetto sui numeri dei versi e sulla posizione degli elementi centrati fuori poem:

I.




Erma quadrata, le tue quattro fronti
sanno mie novità meravigliose?
Spirti, cantando, da le sedi ascose
partono del mio cor leggieri e pronti
 
5Il cor mio prode tutte impure fonti
serrò, cacciò da se tutt’altre cose
impure, tutte fiamme obbrobriose
domò, ruppe all’assedio tutti i ponti.
 
Spirti, cantando, salgono. Ben odo
10io l’inno; e inestinguibile, possente,
del periglio di me mi prende un riso.
 
Pallido sì ma come un re, io godo
sentir nel core l’anima ridente,
mentre il già vinto Mal rimiro fiso.

Alex brollo (disc.) 01:19, 30 apr 2011 (CEST)[rispondi]

Dubbio sulle Categoria:Testi in cui è citato il testo ....

Solita questione delle categorie "completamente popolate".

Il problema è questo: la Categoria:Testi in cui è citato il testo Monarchia/Libro I/Capitolo XIII è "figlia" soltanto di Categoria:Testi in cui sono citati altri testi, ma non di una Categoria:Testi in cui è citato il testo Monarchia. Quindi, non c'è modo di ricercare direttamente tutti i testi che citano una sezione, o un capitolo qualsiasi, di Monarchia.

Per superare il problema, TestoCitato dovrebbe generare almeno due categorie: quella "di dettaglio" e quella "dell'opera". Opzionalmente, anche quella "intermedia", che nell'esempio sarebbe Categoria:Testi in cui è citato il testo Monarchia/Libro I.

Io non consulto mai queste categorie, e mi incuriosirebbe sapere chi, e con che frequenza, le consulta; tuttavia è bene che ci siano, perchè quando avremo DynamicPageList diventeranno utili. Chi le consulta, mi saprebbe dire se la mia idea è ragionevole-utile? Si sta un lampo a modificare TestoCitato... --Alex brollo (disc.) 23:47, 3 mag 2011 (CEST)[rispondi]

Nemmeno io le consulto, ma dal mio punto di vista anche se solo una persona le consulta una volta sola il loro mestiere l'hanno fatto. IMHO è meglio avere in più che in meno, però poi non so che carico possa avere per il server e/o per altre funzionalità (penso ad esempio alle statistiche che potrebbero risultare gonfiate). Qualcuno saprebbe quantificare gli eventuali "contro" della cosa? =) --L0ll0 (disc.) 13:39, 4 mag 2011 (CEST)[rispondi]
No, nessun significativo aumento del carico server nè "tumefazione" delle statistiche. Nel peggior caso, applicando la "doppia categorizzazione" per titolo opera principale e per capitolo, il numero di categorie raddoppierebbe; ma in realtà io suppongo che non crescerebbero di più di un 20-30%, forse meno. --Alex brollo (disc.) 16:07, 19 mag 2011 (CEST)[rispondi]

Parentesi graffe

Ho modificato il template {{Graffa}} per costruire in automatico parentesi anche verso il basso e verso l'alto.
Mi rendo conto che:

  • Il risultato non è esteticamente un granché, ma l'automatismo che ne consegue è comodissimo e copre il difetto.
  • Si potrebbe fare analogo al {{Graffa1}}, ma i casi sarebbero molto più di una decina e non ho il tempo per farlo... =D

So che il template è abbastanza usato, anche se su poche opere, per cui se ci fossero problemi rollbackate e ditemi qualcosa che vedo di sistemarlo. =) --L0ll0 15:04, 6 mag 2011 (CEST)[rispondi]

DynamicPageList + semantizzazione

Armatevi di pazienza.

DynamicPageList è per ora attivo, a quanto so, su una sola pagina sperimentale: Wikisource:Liste dinamiche/Romanzi. Il codice, molto semplice, produce una lista dinamicamente aggiornata, ma diciamolo... un po' povera: è una semplice lista ai titoli delle opere, e non c'è modo di aggiungerci i dati che noi possediamo via semantizzazione.

Una delle tante vie per "truccare" la cosa ed agevolare la trasformazione della lista in liste "semantizzate" è il seguente.

  1. selezionate e copiate una serie di titoli-link nella pagina che contiene le liste DynamicpageList.
  2. entrate in modifica su una pagina qualsiasi (es. nella pagina di discussione della stessa pagina dov'è contenuta la lista dinamica, dove ho fatto i miei "esperimenti") e copiaincollate. Otterrete una semplice lista dei titoli, con alcuni spazi bianchi in testa a ciascuna voce (quattro).
  3. cliccate sul nuovo Strumento per la rilettura "inserimento {{testo}}".

Voilà! ogni titolo è stato trasformato in una chiamata al template Testo; godetevi l'anteprima e salvate.

Questo metodo, manuale e un pochino macchinoso, non ha lo scopo di essere la soluzione definitiva, ma solo di simulare una cosa che, a suo tempo, potrà essere fatta con uno script. Dimostra solo che si può fare, e come si può fare. --Alex brollo (disc.) 16:17, 19 mag 2011 (CEST)[rispondi]

template:Indentatura

Qualcuno sa dirmi perché il template {{Indentatura}} in questa pagina sembra non funzionare correttamente? Non riesco a regolare il valore dell'indentatura. --Luigi62 (disc.) 21:02, 22 mag 2011 (CEST)[rispondi]

Non è una buona idea interrompere un poem con Indentatura. Il tag poem trasforma l'intera serie di versi in un unico paragrafo, suddiviso da <br />. E' bene usare al suo interno solo codici html "inline", utilizzando il tag html span. Non serve chiuderlo, a fine verso, perchè viene chiuso automaticamente in corrispondenza del tag br. Il tag deve essere chiuso a fine verso! L'ho appena scoperto (o riscoperto). Vedi modifica della pagina indicata. Niente impedisce do costruire un templatino, ma il mio consiglio è che generi un codice span. --Alex brollo (disc.) 21:51, 22 mag 2011 (CEST)[rispondi]
Scusa ma non capisco dove vada messo il tag </div>. Negli esempi in concomitanza con <poem> ... </poem> non c'è e il template sembra non avere effetto. Lo devo mettere in fondo appena prima del tag </poem>? --Luigi62 (disc.) 09:54, 23 mag 2011 (CEST)[rispondi]
Il tag </div> non serve più in quanto apri un tag <span> al posto del <div>.
Non chiudendo con uno </span> sembrerebbe funzionare tutto ugualmente, anche se sarebbe bene chiuderlo al primo punto fisso se possibile. =) --L0ll0 (disc.) 19:34, 23 mag 2011 (CEST)[rispondi]
Già. Sembrerebbe.... questi sembrerebbe sono le cause delle peggiori cefalee, perchè poi ti colpiscono a tradimento. :-)
Credimi; anche Edo ha constatato l'identico problema. Strano comportamenti di indentature successive, magari a mezza pagina di distanza... il </div> è accoppiato al {{ms}}, "includono" l'intero blocco poem. --Alex brollo (disc.) 21:49, 23 mag 2011 (CEST)[rispondi]

La Mandragola

Sto traducendo in Arabo la Mandragola usand il Vostro testo italiano. Ho alcune dificolta ad intendere il vero significato di alcune espressioni. Potete qui aiutare?

Un esempio: La Mandragola- Atto Terzo- Scena 6

"Nicia: Come disse la botta a l’erpice!"

Nabil Mahaini

In effetti la frase è molto complessa da interpretare. Si tratta di un proverbio, o meglio di un detto scherzoso, volutamente fuori luogo, come accade spesso a Messer Nicia. Letteralmente è
Ligurio
Noi torniamo ora
Nicia
[Tu dici] la stessa frase che il rospo ("la botta") disse all'erpice.

La spiegazione del motto di spirito la dà Machiavelli stesso in una sua lettera a Francesco Guicciardini: per comodità cercherò di parafrasare il fiorentino cinquecentesco:

L'erpice è un attrezzo di legno a forma quadrata con certi denti in legno che, trascinato, è usato dai contadini per preparare la terra alla semina.
Un giorno un rospo che non era abituato al lavoro di questo strumento, per eccesso di curiosità ne ebbe la schiena graffiata e quando si rese conto della profondità dalla ferita disse all'erpice: "non tornare!". L'espressione come il rospo disse all'erpice è divenuta un proverbio quando si desidera che qualcuno non torni.

Spero di averti aiutato, e ti comunico le mie congratulazioni perché la lingua di Machiavelli è difficilmente interpretabile anche da molti dei madrelingua italiani... εΔω 22:25, 27 mag 2011 (CEST)[rispondi]

problemi Odt2wiki.xslt su linux

Il download di Odt2wiki.xslt x liberOffice sembra non sia più accessibile dai repositary Oracle, per contro l'installazione del plug-in come estensione wiki-publisher non aggiunge la relativa estensione su liberOffice su linux (bug grave già segnalato). Quindi sembra sia un vicolo cieco su linux riuscire a convertire da odt a wiki, a meno che qualcuno non abbia un file Odt2wiki.xslt da spedirmi o dirmi dove posso reperirlo.--Stefano De Boni (disc.) 12:13, 29 mag 2011 (CEST)[rispondi]

Orpo, mi sembra una domanda un po' tecnica, e questo è un bar poco frequentato. Suggerirei di porla in un ambiente un po' più frequentato, es. il bar di wikipedia o una mail list "grossa" --Alex brollo (disc.) 01:11, 31 mag 2011 (CEST)[rispondi]
capisco! c'è techné e techné, scusate, attraverso mondi e a volte confondo le techné--debius (disc.) 21:27, 31 mag 2011 (CEST)[rispondi]

Nuovo meccanismo per una variante di RigaIndice

Ho modificato l'adattamento di RigaIndice per Confessioni di un italiano (la resa con una tabella funzionava, ma era graficamente difforme dall'originale). Per gli appassionati dei template formattatori segnalo il suo codice: Template:RigaIndice/Confessioni. Aimè, c'è un piccolo bug... il sistema si incanta quando l'ultima riga del blocco di testo occupa quasi l'intero spazio. --Alex brollo (disc.) 16:00, 29 mag 2011 (CEST)[rispondi]

Prospettive con Alebot su toolserver

Avendo rotto il "muro" del colloquio wiki/Alebot su toolserver via normali link html, si aprono vaste prospettive. In pratica, un comunissimo link web da wiki, o da qualsiasi altro post, "scatena" specifiche funzioni di Alebot, che risponde immediatamente appena elaborata la richiesta; il meccanismo è assai simile a quello delle query API, ma la differenza è che le routine possono essere disegnate esattamente sulle nostre necessità e può essere costruito ex novo un "linguaggio" soecifico.

Nessun timore che questo crei delle incompatibilità: alla fine, il bot può fare solo due cose:

  1. ricevere una richiesta di elaborazione dati e rispondere con una pagina web;
  2. modificare una o più pagine, esattamente come già fanno i bot "normali" e come fa un qualsiasi utente.

Insomma, non varia la struttura del progetto nè il suo contenuto; si tratta solo da avere uno strumento in più per lavorarci.

Uno degli aspetti più interessanti è la possibilità di modificare una pagina senza entrare in modifica. La prima applicazione sarà l'aggiornamento del SAL nelle pagine ns0. Un link piazzato da qualche parte (perchè non sullo stesso simbolo del SAL?) chiederà al bot la verifica del SAL basata sull'analisi del SAL dei componenti, siano essi pagine Pagina: oppure capitoli, richiamati con il template Testo; se il SAL va aggiornato perchè incongruente, la pagina (il suo codice, ossia il codice del temmplate Qualità) verrà modificata via bot; ripeto, SENZA entrare in modifica nella pagina.

Mi scuso se questi giorni sarò poco presente nell'edit, ma devo assolutamente esplorare, provare e riprovare, altrimenti fra due settimane mi sarò dimenticato quasi tutto... --Alex brollo (disc.) 17:38, 6 giu 2011 (CEST)[rispondi]

Test

conversione via htmlgen2


Please, update the Template:Interprogetto

Please, update the Template:Interprogetto - add the 'v' (wikiversita) parameter. See an example on my Page - Utente:Averaver. --Averaver (disc.) 16:06, 28 lug 2011 (CEST)[rispondi]

Done, thank you Candalùa (disc.) 18:27, 28 lug 2011 (CEST)[rispondi]

Thank you. --Averaver (disc.) 05:36, 29 lug 2011 (CEST)[rispondi]

AutoreCitato

Su Storia_della_letteratura_italiana/XII ho fatto un esperimento.

Ho guardato gli indici di "pesantezza pagina" che si trovano nel sorgente html, prima con il template AutoreCitato "vecchio stile", senza l'accrocchio AutoreCitato/Dati, poi riattivando il template con l'accrocchio.

Il "resoconto complessità" senza accrocchio è:

<!-- 
NewPP limit report
Preprocessor node count: 3525/1000000
Post-expand include size: 147264/2048000 bytes
Template argument size: 14394/2048000 bytes
Expensive parser function count: 3/500
-->

Riattivato l'accrocchio, diventa:

<!-- 
NewPP limit report
Preprocessor node count: 126118/1000000
Post-expand include size: 150653/2048000 bytes
Template argument size: 14809/2048000 bytes
Expensive parser function count: 3/500
-->

Notate la variazione del primo valore: qualsiasi cosa significhi, aumenta di 35 volte. :-(

Non va bene. --Alex brollo (disc.) 00:17, 1 ago 2011 (CEST)[rispondi]

Nei prossimi giorni farò un altro esperimento. In quell'opera, sostituirò tutti gli AutoreCitato a un parametro (per dire, tipo {{AutoreCitato|Giovanni Boccaccio}} con AutoreCitato con due parametri (tipo {{AutoreCitato|Giovanni Boccaccio|Giovanni Boccaccio}}). Può essere, visto il meccanismo del template, che questo riduca moltissimo la complessità della pagina.
Oltre che pesante, AutoreCitato risolve solo metà del problema che si vorrebbe risolvere. Fornisce, in una categoria, l'elenco di tutte le opere in cui è citato un autore; ma NON fornisce, nè può fornire, il dato altrettanto interesante dell'elenco di tutti gli autori che sono citati in un'opera. Sarebbe bello che ci fosse anche questo dato, e che una revisione di AutoreCitato ne facilitasse la costruzione. Per le opere in Ns0 si potrebbe aggiungere una pagina con l'elenco degli autori citati; per le versioni Indice/Pagina non vedo alternative a inserire tale elenco (magari corredato di link alle pagine che contengono la citazione) in una sottopagina di Indice. --Alex brollo (disc.) 00:33, 1 ago 2011 (CEST)[rispondi]

Soluzione informatica ma non politica

La soluzione informatica più pulita sarebbe quella di considerare gli "autori" tutti uguali, di trattarli nella stessa maniera formale (apertura di una pagina Autore) e di considerare il dato "ha o non ha opere su wikisource" un semplice dato fra gli altri dati. Ne abbiamo già discusso più volte, con la conclusione che non è opportuno "politicamente". Se il problema che segnalo permane, e non si trova un sistema chiaro, semplice e automatico per risolverlo, dovrete avere pazienza perchè riproporrò la discussione un'altra volta. :-(

Tenete conto che all'interno di un template, le cose diventano "pesanti" ogni volta che il codice del template deve esaminare, all'interno di un #if, la presenza o l'assenza di una pagina, o di qualcosa all'interno di una pagina. Il problema sta qui.

Tutto sarebbe risolto (dal punto di vista "politico") se accettassimo di modificare il criterio di apertura di una pagina Autore da "autore di cui it.source contiene opere" a "autore di cui it.source contiene opere o citazioni". --Alex brollo (disc.) 07:57, 1 ago 2011 (CEST)[rispondi]

Passetti js

1. Ho aggiunto a Common.js la funzione replaceAll(testo,a,b), che funzia come il metodo python .replace, ossia sostituisce, in testo, tutte le istanze di a con b. Se a="" restituisce testo. 2. In realtà questa cosa mi serviva da tempo, ma in particolare mi serve per un nuovo gadget WIP, che espande gli AutoreCitato a un parametro in AutoreCitato a due parametri, appoggiandosi sulla variabile acd dove sono raccolte numerose coppie tipo "Dante":"Dante Alighieri". Per motivi lunghi da spiegare, e forse la spiegazione pure sarebbe sbagliata, il template AutoreCitato è "pesante da digerire" quando è a un solo parametro; per questo motivo, tale gadget sostituirà con {{AutoreCitato|Dante Alighieri|Dante}} il codice {{AutoreCitato|Dante}} ma anche il codice {{AutoreCitato|Dante Alighieri}} verrà sostituito con {{AutoreCitato|Dante Alighieri|Dante Alighieri}}--Alex brollo (disc.) 22:37, 7 ago 2011 (CEST)[rispondi]

Sono letteralmente impazzito per trovare il bug in acrepl() (per ora nel mio vector.js), per poi scoprire... che avevo invertito i parametri di un for ()... adesso fuunzia, lo trasformo in gadget. Che pardipalle. --Alex brollo (disc.) 15:01, 8 ago 2011 (CEST)[rispondi]

Indentatura immagine a margine di testo

Ciao. Sto lavorando alla pagina Pagina:Storia_dei_Mille.djvu/63. Sto cercando di formattare correttamente l'immagine nel mezzo del testo (riciclando del codice di due pagine prima), ma non mi riesce di rispettare tutti i vincoli. Conoscete delle pagine di Aiuto: utili? In caso contrario, vorrei capire quali priorità rispettare (dimensione dell'immagine nella fonte, parte del testo indentata). In ogni caso non mi riesce risolvere la parte finale del testo indentato (senza creare un capoverso che nell'originale non esiste). --Chionatan (disc.) 19:06, 3 set 2011 (CEST)[rispondi]

→Credo di aver risolto. L'uso del comando

fatto nelle pagine precedenti era un pò confuso, mentre, seguendo le regole delle successive, è venuto fuori ciò che volevo.

Fatemi capire, vi prego.

Sono FranzJosef, questo qui [2]. Non so se scrivo nello spazio giusto, ma ecco cosa càpita: da due giorni non mi riesce più di entrare con la mia pass, mi si dice che non è corretta. Non capisco, perché l'ho sempre fatto senza problemi per circa un anno, visto che lavoro da luoghi diversi. Che cosa è cambiato, che cosa sbaglio? Ieri ho dovuto richiedere una pass temporanea e poi sostituirla, sarà sempre così? Mi consigliano di controllare il blocmaiusc, ma l'avevo già fatto senza risultato. Grazie. FranzJosef--95.74.253.142 09:45, 19 set 2011 (CEST)[rispondi]

Text-indent

Ho a suo tempo combattuto e vinto alcune battaglie contro il text-indent (es. per quanto riguarda Centrato), la la guerra è ben lungi dall'essere vinta. Es: nella nuova Indice:La Sacra Bibbia (Diodati 1885).djvu l'indentatura del paragrafo è eccessiva e disturbante, ma eliminarla o correggerla non è facile. Il problema nasce e si ingigantisce per il fatto che il software wiki gestisce automaticamente i paragrafi (il tag p) e interferire con questo automatismo è possibile, ma anti-intuitivo e farraginoso. Uno dei casi in cui la "semplificazione" si ritorce contro gli utenti. Non è il solo....

Occorrerebbe disporre di un meccanismo semplice e intuitivo per poter neutralizzare o correggere, su una pagina o all'interno di div di una pagina, l'attributo text-indent dei paragrafi. Come fare? --Alex brollo (disc.) 10:26, 5 ott 2011 (CEST)[rispondi]

Intanto propongo una soluzione, la vedete in Pagina:La Sacra Bibbia (Diodati 1885).djvu/10. la soluzione (che imposta un text-indent di 0.5em) è ottenuto modificando sia common.css che i template {{colonna}} e {{altraColonna}}. Le modifiche per ora hanno effettu su tutte le chiamate ai due template, ma ho controllato varie pagine e in tutte la cosa va bene (riproduce bene l'originale). Nella stessa pagina test è anche utilizzato il template {{Vb}}, alternativo (solo per il formato, il funzionamento è identico) al {{V}}. Feed-back needed... --Alex brollo (disc.) 11:18, 5 ott 2011 (CEST)[rispondi]

Mega-array indicizzati

Ho sperimentato, pare con successo, l'inserimento di grandissimi array indicizzati (decine di migliaia di elementi), scovando una tecnica abbastanza banale ma soprattutto poco "server expensive". Si tratta semplicemente di costruire dei grossi #switch eventualmente suddividendo i dati in pagine diverse. Con questa tecnica, i versetti della Bibbia di Diodati saranno singolarmente linkati anche nel nsPagina e i capoversi di Zibaldone pure. Ovviamente, il codice di questi #switch è di straordinaria lunghezza, e occorre, caso per caso, farli costruire da un bot: scriverli a mano è fuori discussione. Es: Template:ZbLink/0 (indicizza i singoli capoversi delle prime 500 pagine di Zibaldone); Template:BibLink/Le (indicizza i versetti di Levitico). --Alex brollo (disc.) 13:39, 13 ott 2011 (CEST)[rispondi]

Codice template mascherato

Guardate la pagina Progetto:Bibbia/Sigle. Si presenta come una normale pagina di progetto, contenente una tabella, ben formattata e "sortable". La cosa curiosa è che contiene anche il codice di un complesso template, mescolato con i dati della tabella, e che la colonna "Codice switch" è il codice reale di un grosso #switch, che restituisce l'identificatore numerico di un Libro della Bibbia, data una delle varie sigle usate per i riferimenti biblici.

Ecco l'output della pagina usata come template: il Vangelo di Marco ha il numero d'ordine 48. --Alex brollo (disc.) 00:40, 19 ott 2011 (CEST)[rispondi]

LaTeX

Qualcuno per favore mi dica dove sbaglio che sto impazzendo :-) --Aubrey McFato 01:53, 19 ott 2011 (CEST)[rispondi]

Non sbagli: è LaTeX che ha un limite, vuole solo caratteri ASCII e la lettera é non è ASCII. Ripiegherei su una piccola tabella, se non si trova il modo di far accettare a LaTeX un carattere Unicode. --Alex brollo (disc.) 14:11, 19 ott 2011 (CEST)[rispondi]
Eccolo qua, con le vecchie tabelle!
Numero

Volume
X
Altra

Cosa
X

--Alex brollo (disc.) 15:26, 19 ott 2011 (CEST)[rispondi]

RigaIntestazione news

Ho modificato RigaIntestazione in modo che il testo compaia nel solo nsPagina. Questo significa che non c'è più alcuna necessità di spostare RigaIntestazione nell'header: è "trasparente" alla transclusione, e può restare quindi nel corpo pagina, dov'è editabile molto più comodamente. Inoltre non serve più scrivere, come quarto parametro, riga=..., basta la parola "riga". --Alex brollo (disc.) 22:38, 24 ott 2011 (CEST)[rispondi]

padleft, questa sconosciuta

Dice en.wikipedia, a proposito di padleft: "xyz, xyz (pad with zeros to the right or left; an alternative padding string can be given as a third parameter; the alternative padding string may be truncated if its length does not evenly divide the required number of characters)[3]".

La funzione padleft è ideata per "riempire di zeri" a sinistra le cifre.

  • {{padleft:123|6}} -> 000123

Ma si può fornire una stringa alternativa allo 0 di default come terzo parametro:

  • {{padleft:123|6|XYZ}} -> XYZ123

E se la stringa al parametro 1 è vuota?

  • {{padleft:|6|XYZ}} -> XYZXYZ

E se impostiamo il secondo parametro a 1?

  • {{padleft:|1|XYZ}} -> X

Se impostiamo il primo parametro come stringa vuota, e come secondo parametro 1 (oppure n), allora la funzione restituisce il carattere iniziale (oppure gli n caratteri iniziali) della stringa passata come parametro 3. Eheheheh.... Mi sa che Intestazione sta per perdere un parametro. --Alex brollo (disc.) 01:17, 26 ott 2011 (CEST)[rispondi]

Dici "Iniziale del titolo"? Tempo fa ho fatto Template:Prima lettera (copiato dagli anglosassoni) che fa proprio sta cosa qua. Però ho preferito non usarlo su Intestazione, perché in realtà può avere senso che "I promessi sposi" venga messo sotto la P, scartando l'articolo "I". Candalùa (disc.) 09:56, 26 ott 2011 (CEST)[rispondi]
In effetti gli en.pediani hanno costruito una serie di template che aggira completamente la necessità di utilizzare l'estensione String functions, detestate da Tim Starling e suppongo da altri: inutile chiedere di installarla. Risultato: attraverso padleft e padright le stesse funzioni sono ottenibili via hacking a prezzo di un impegno dei server enormemente superiore. Fortunatamente tali template sono protetti dalla "security by obscurity". ;-) :
A me serviva assolutamente un sistema per accedere a famiglie di template-dati, selezionando il template giusto sulla base delle iniziali delle lettere; da qui il mio entusiasmo, un parametro in meno in Intestazione è pressochè irrilevante. --Alex brollo (disc.) 11:22, 26 ott 2011 (CEST)[rispondi]

Passione tatuaggi

Nel mio vector.js trovate una versione migliorata del "costruttore di tattoo", piccole immagini che compaiono fisse sullo schermo in basso a destra facilmente collegabili a qualsiasi funzione js. Ho semplificato il codice, è veramente una sciocchezza (per chi si avventura in questo bar) creare nuovi "tatuaggi". Comodissimi in edit Pagina, dove i pulsanti e i link scrollano continuamente in alto e in basso uscendo (almeno a me) dalla schermata.... ci aggiungerò ognuno degli "strumenti per la rilettura". --Alex brollo (disc.) 12:10, 27 ott 2011 (CEST)[rispondi]

Ho ulteriormente semplificato il codice, rinunciando alle immagini e accontentandomi di un comune linketto testuale. Risultato: the same one, ma con un codice MOLTO più semplice. Codice qui: Utente:Alex brollo/vector.js, sotto "// creazione di un tattoo...." --Alex brollo (disc.) 08:32, 8 nov 2011 (CET)[rispondi]

Forms html

Mi punge vaghezza di ricollocare nella pagina alcuni elementi del form di edit (in particolare i radio-buttons SAL e il tasto submit). Ho già verificato che il brutale spostamento del codice html di questi elementi in altra div fuori del codice form non funziona; immagino che il codice form dev'essere "inclusivo" di tutti i suoi elementi. Ma posso semplicemente ricollocarli con parametri css, oppure spostarli in una div annidata nella form (anche se visualizzata altrove)? --Alex brollo (disc.) 08:25, 28 ott 2011 (CEST)[rispondi]

Dati, template, scripts ecc. specifici per opera

Dopo averci girato intorno da tempo, vorrei concludere in modo "ordinato" la questione di dove mettere eventuali template, script, pagine dati specifiche per opera. La mia proposta, come suggerito da Edo, è: nsWikisource; come nome della pagina: base pagina di Indice: e Pagina:.

Quindi, ad esempio, per Georgiche collegato a Indice:Georgiche.djvu, io suggerisco di creare una pagina (e quante sottopagine servono) Wikisource:Georgiche.djvu. Questo vale per le opere proofread; propongo di ignorare semplicemente le opere naked. Cosa ne pensate? Lo possiamo adottare come raccomandazione, se non come convenzione? --Alex brollo (disc.) 01:33, 6 nov 2011 (CET)[rispondi]

??? Chiedo scusa per la mia povera memoria in decadimento, ma dove avrei indicato io di utilizzare il namespace Wikisource per i template e altre pagine dati specifiche di un'opera? Ricordavo che i namespace in gioco erano
  • NsTemplate, quello che abbiamo più o meno fatto finora ma confusionario
  • NsIndice, impossibile per il noto meccanismo JS di preimpostazione dei dati
  • Ns0, sconsigliato per la possibile alterazione delle statistiche
Non ricordo di aver mai chiamato in causa il nsWikisource per questo tipo di template. Farlo snaturerebbe la funzione di quel namespace. Il fatto che gli indici tematici siano presenti in quel ns è una decisione che non mi è mai piaciuta (e infatti su en. hanno trasformato tali pagine in portali). Cerchiamo di non "confondere" ulteriormente la funzione di quel namespace.
Dato che una soluzione effettivamente indolore non sembra esserci prima di sbottonarmi preferirei leggere se ci sono altre opinioni al riguardo o soluzioni sfuggite a entrambi. - εΔω 10:38, 6 nov 2011 (CET)[rispondi]
In realtà non penso avessimo parlato di template, ma di "zone dati e pagine di supporto opera-specifica". Avevamo escluso il nsPagina, perchè la gestione è particolare; il ns0, per non creare "pagine opera" fittizie; il nsIndice, idem. Aubrey proponeva un nuovo nsDati. Ma a pensarci,Dati sarebbe riduttivo: stiamo andando verso "oggetti-opera", e come gli altri "oggetti" del software potrebbero essere delle "collezioni di dati e di funzioni", o, più tecnicamente, di "attributi e di metodi". --Alex brollo (disc.) 14:31, 6 nov 2011 (CET)[rispondi]
Faccio un esperimento: il nome dell'"oggetto opera" potrebbe essere il basepagename della pagina, inserito tal quale nel nsTemplate. La cosa sarebbe estremamente pulita. Vediamo se riesco a trasformare questa cosa in un vero "oggetto-opera", dotato dei suoi "attributi" e dei suoi "metodi". Sia dal nsIndice, che dal nsPagina, l'"oggetto" sarebbe raggiungibile con il codice {{{{BASEPAGENAME}}}}. Provo con {{Dizionario triestino (1890).djvu}}. --Alex brollo (disc.) 15:38, 6 nov 2011 (CET)[rispondi]

Test

  • Chiedo attributo ns0 dell'oggetto: risultato Dizionario - Vocabolario del dialetto triestino
  • Chiedo attributo npag (numero pagine diIndice) dell'oggetto: risultato 578
  • Chiedo metodo Ri (riga intestazione formattata specificamente): risultato:
    TES — 471 — TIG

    Sì, oltre ogni ragionevole dubbio funziona effettivamente come un "oggetto", ossia come "collezione di attributi e di metodi" :-) --Alex brollo (disc.) 15:53, 6 nov 2011 (CET)[rispondi]

    PS: come i migliorioggetti, accetta anche un parametro "help" oppure "doc" oppure "documentazione".... :-)
    Chiedo la doc:

    Oggetto associato all'opera Indice:Dizionario triestino (1890).djvu. Sia gli attributi che i metodi vanno passati con il parametro 1, più parametri aggiuntivi opzionali.

    Attributi:

    • ns0: Nome dell'opera in ns0
    • npag: numero delle pagine dell'Indice

    Metodi:

    • Ri: riga intestazione con formattazione specifica (passare altri tre parametri per i testi sin, centro, dx)

    Ho spostato qui il testo della nota sugli "oggetti-opera". La parte precedente del messaggio viene transclusa in bar; da qui in poi, non viene transclusa. --Alex brollo (disc.) 09:35, 7 nov 2011 (CET)[rispondi]

    La situazione ad oggi

    Esiste da anni, in source, un caso di "oggetto pagina", ma il suo meccanismo è molto più limitato. Esistono infatti i template con il BASEPAGENAME degli autori (es.: {{Dante Alighieri}}), che però contengono un solo codice (un solo "metodo") quando potrebbero contenere sia "attributi" che "metodi" utilizzando lo stesso meccanismo. Mi pare di capire che possono essere trasformati in veri "oggetti", senza modificarne il funzionamento attuale, con un piccolissimo trucco... ci provo utilizzando Claudio Corte 1. --Alex brollo (disc.) 09:35, 7 nov 2011 (CET)[rispondi]

    In realtà quei template non sono più utilizzati, e non sono aggiornati da mesi. Andrebbero cancellati... Candalùa (disc.) 10:00, 7 nov 2011 (CET)[rispondi]

    Infatti, ho visto che non puntano da nessuna parte. Però, prima di cancellarli, farei un pensierino al loro "riciclaggio" (accoppiato ai "dati semantizzati"). Tenuto conto che i template vengono (se non sbaglio) gestiti con accurato caching per ottimizzarli, mentre invece non c'è nulla di simile per le section, che impongono una rilettura ex novo di tutta la pagina ogni volta che sono richiamate, forse forse.... :-) Comunque, mi conforti: posso operare con tranquillità in corpore vili. --Alex brollo (disc.) 10:43, 7 nov 2011 (CET)[rispondi]
    • chiamo il tl Claudio Corte con un parametro cognome: {{Claudio Corte|cognome}} -> Template:Claudio Corte
    • chiamo il tl Claudio Corte con un parametro nome: {{Claudio Corte|nome}} -> Template:Claudio Corte
    • chiamo il tl Claudio Corte con un parametro doc: {{quote|{{Claudio Corte|doc}}}} ->

    Mi piace. Forse non servirà a niente, ma mi piace. MOLTO intuitivo. Una buona interfaccia ai dati semantizzati! :-) --Alex brollo (disc.) 10:57, 7 nov 2011 (CET)[rispondi]

    Essendo collegato ai dati semantizzati, il tl Claudio Corte restituisce i dati aggiornati senza modifica del codice. Conciossiachè :-) l'unico dato che il tl contiene è il "puntatore" al nome autore, che poi è anche il suo nome di pagina, basterebbe prevedere la riscrittura di un altro template in caso di modifica del nome della pagina autore (evento piuttosto raro). Mi organizzo per modificare il codice acciocchè restituisca tutti i dati semantizzati, sia con il loro "nome canonico", che con alias abbreviati (es. gmn per Giorno e mese di nascita, pn per Professione e nazionalità, ecc. --Alex brollo (disc.) 11:12, 7 nov 2011 (CET)[rispondi]
    yes. :-) Alex brollo (disc.) 11:26, 7 nov 2011 (CET)[rispondi]

    In grafico:

    1. una pagina qualsiasi interroga il template tipo {{Claudio Corte}};
    2. in base al parametro, il template interroga il template generico {{Aut}} di default, che a sua volta interroga l'area dati della pagina Autore, oppure elabora una risposta specifica per autore;
    3. la pagina chiamante riceve il risultato.

    Dallo schema si osserva una cosa strana. Perchè passare da due template (nell'esempio funzionante: {{Claudio Corte}}) che chiama un secondo template generico ({{Aut}}) quando basterebbe chiamare il template generico?

    La risposta: perchè in {{Claudio Corte}} esistono parametri specifici per quell'autore, e per lui solo:

    Ad esempio, nel caso delle opere, ciascuna potrebbe avere un diverso RigaIntestazione e un diverso RigaIndice. Il template chiamerà funzioni di default per i parametri generici (con il vantaggio che la modifica di un unico template agirà su tutti i template), e interpreterà autonomamente e specificamente i parametri specifici. --Alex brollo (disc.) 00:44, 8 nov 2011 (CET)[rispondi]

    Ueh, raga, nessun ardimentoso mi dice peste o corna? Come faccio a procedere senza un minimo di feed-back demolitivo? :-) --Alex brollo (disc.) 08:26, 8 nov 2011 (CET)[rispondi]
    Caro Alex, la cosa sembra molto carina, sai che sono da sempre un fan sfegatato dei dati strutturati. L'unica cosa è che mi fannosempre paura le "toppe", in questo campo. Nel senso che quella che noi vorremmo è una modifica strutturale, reliable e sostenibile per il futuro, su cui costruire un'infrastruttura di template che duri. ora, i tedeschi hanno aperto una call per assumenere uno staff di una dozzina di persone per lavorare a Wikidata, un progetto che una volta per tutte lavori per strutturare i dati per i progetti Wikimedia. Inutile dire che sono entusiasta e che spero che lavorino bene ed in fretta. io ti lascio giocare volentieri, solo che non vorrei che, come è capitato con il famoso SAL 2.0 di iPork, il nostro essere pionieri ci faccia poi fare i salti mortali per adeguarci ai sistemi degli altri. Insomma, o candalua ti segue e vi divertite insieme o secondo me non ne vale la pena di fare la rivoluzione in così pochi e male armati :-) Aubrey McFato 10:03, 8 nov 2011 (CET)[rispondi]
    Candalua è il mio punto di riferimento; questa proposta è poco più che un'interfaccia ai "dati semantizzati" che lui ha sistemato, e che è ora di cominciare a utilizzare (oltre che nella "rivoluzione invisibile" di IncludiIntestazione già fatta senza colpo ferire...). Io produco cosacce informi, poi Candalua sceglie e eventualmente sviluppa se ne vale la pena... --Alex brollo (disc.) 11:13, 8 nov 2011 (CET)[rispondi]
    Ok, va bene, ma l'esperienza mi suggerisce che se vogliamo evitare di subire risatine sotto i baffi da improvvidi Galli, Angli o Teutoni è meglio che cerchiamo dall'inizio un loro feedback, in modo che se per qualunque motivo stiamo rivoluzionando il mondo ma non siamo creduti magari qualcuno più altolocato, ascoltato, autorevole ecc. ecc. ci dia bado e magari patrocini il nostro lavoro. L'ultima delusione derivata dalla semplificazione "francese" del tag pages che ignora le incredibili invenzioni di Candalua mi ha reso ancora più triste. Alex, prova a bussare alla porta di John Vanderberg o di Magnus Manske... - εΔω 21:49, 8 nov 2011 (CET)[rispondi]
    Mi viene un coccolone solo all'idea di spiegare la cosa in termini intellegibili.... come dicevo, il "cuore" non è l'ultima trovata, ma il meccanismo della semantizzazione, che è stato sviluppato da Candalua su una mia grossolana idea; quindi "girerei" l'invito a Candalua (che forse saprebbe spiegarla meglio di me :-) ).
    Comunque, fermo restando che farò un "giro di bot" riciclando gli inutili template tipo Template:Dante Alighieri al nuovo uso, ormai sono preso da altro.... questa è già un'idea "conclusa". Domani sera spero di potervi fare una sorpresa. Alex brollo (disc.) 23:56, 8 nov 2011 (CET)[rispondi]
    Niente sorpresa; ormai penso ad altro. Vedi sotto. Questa è la volta buona che il text layer djvu cede. --Alex brollo (disc.) 23:19, 18 nov 2011 (CET)[rispondi]

    Ho riscontrato un problema nel template, riguardo le note spezzate su più pagine. In questa pagina la nota 3 è spezzata in due, ma solo la prima parte è transclusa qui. --Luigi62 (disc.) 11:48, 13 nov 2011 (CET)[rispondi]

    Già segnalato in Discussioni template:Nota separata: lì c'è la risposta. - εΔω 12:40, 13 nov 2011 (CET)[rispondi]

    Parsing python dello strato testo dei file djvu

    I file .dsed prodotti da djvused.exe sono tutto quanto serve per ricostruire integralmente lo strato testo di un file djvu (che ne abbia uno, ovviamente), annotazioni e metadati compresi,oltre al testo delle pagine; il tutto insieme ai comandi che servono per eseguire la ricostruzione.

    In altri termini, per esempio, ottenuto l'opportuno file test.dsed da test.djvu, il semplicissimo comando:

    C:\> djvused test.djvu -f test.dsed -s 

    legge il file test.dsed, e ci trova tutto quanto serve per infilare lo strato testo, pagina per pagina, nel file test.djvu.

    Ora, il file dsed ha una struttura piuttosto complessa, in quanto contiene per tutte le pagine le coordinate di tutte le sezioni a tutti i livelli di dettaglio fino all'ultimo (le singole parole), stratificati in pagine, colonne, regioni, paragrafi, linee e parole; ciascun elemento, per tutti i livelli sotto il livello pagine, associato alle coordinate del rettangolo che le contiene.

    Il file .dsed è un banale file di testo e in teoria potrebbe essere modificato con un text editor qualsiasi e ricaricato. Non consiglierei la cosa se non al mio peggior nemico. :-)

    Stasera ho completato lo script djvu.py che trasforma l'intero file dsed in una struttura dati python (una matrioska di liste e dizionari), per cui posso chiedere "restituiscimi il testo del secondo paragrafo della pagina 25".

    Appena ho finito questo messaggio, con un paio di linee di codice potrò chiedere la stessa cosa, aggiungendo anche "e dammi pure le coordinate del rettangolo che contiene tale paragrafo nell'immagine della pagina". Problema: per ora, solo Samuele e Aubrey hanno accesso alla directory dropbox dove il tutto si sta sviluppando e gira. C'è qualche altro ardimentoso che vuol partecipare ai lavori? Sareste benvenuti. --Alex brollo (disc.) 23:40, 18 nov 2011 (CET)[rispondi]

    I lavori procedono bene, la struttura python sta dimostrando (come tutte le strutture fortunate) caratteristiche emergenti interessanti. Faccio ancora un po' di sviluppo "a funzioni" poi tenterò di trasformare la struttura in un vero oggetto, con i suoi attributi e i suoi metodi. Un tentativo di battere la strada xml ha dimostrato che la struttura python da dsed è estremamente più veloce, sia come parsing vero e proprio, sia come interrogazioni. Non meraviglia perchè gran parte dellacosa avviene con semplice ricarca di stringhe, grazie ai magici find_stringa e produci_lista(), con uso omeopatico di regex.--Alex brollo (disc.) 10:56, 20 nov 2011 (CET)[rispondi]

    Aiuto regex

    Domanda regex. Capito come ottenere una ricerca greedy, non ho capito come fare una ricerca "doppiamente greedy", ossia come ricercare il minimo di testo non solo a destra, ma anche a sinistra della stringa.

    Esempio: nella stringa "(line....(line....(line... [1]....[1]" una regex greedy:

    \(line.*?\[1]

    mi restituisce (line....(line....(line... [1], ma io vorrei ottenere la stringa "greedy a sinistra": (line... [1]

    --Alex brollo (disc.) 10:44, 20 nov 2011 (CET)[rispondi]

    Il "problema" è la presenza di uno spazio qui: (line... [1] se fosse: (line...[1] oppure line....[1] basterebbe utilizzare questo:
    \(line.*?\[1]
    Sulla stringa (line....(line....(line....[1]....[1] e verrebbe fuori: (line....[1].
    P.S. Ci sto lavorando (al parsing), va bene se carico il file php che ho scritto anche se funziona solo se all'interno di un server? Samuele 15:26, 20 nov 2011 (CET)[rispondi]
    Ma certo! Vorrà dire che riattiverò Pampa....forse. :-)
    Le cose si stanno semplificando in djvu.py, il parsing produce un vero oggetto.... gli sto assegnando i vari metodi. Viene inizializzato dandogli semplicemente il nome del file djvu da esplorare. --Alex brollo (disc.) 18:19, 20 nov 2011 (CET)[rispondi]
    Riguardo alla regex: i puntini rappresentano sequenze di caratteri qualsiasi, comprendenti anche caratteri di fine riga (ma questo ho imparato come risolverlo, in python con un parametro re.DOTALL). Beninteso, ho una funzioncina python apposta, che restituisce il risultato in un lampo; ma se non mi sforzo di usare anche le regex non imparerò mai. :-( --Alex brollo (disc.) 18:24, 20 nov 2011 (CET)[rispondi]

    Quesito per gli esperti di poem

    In questa pagina c'è un brano racchiuso tra <poem></poem> che contiene una nota (ref) che contiene a sua volta un blocco poem, e se questo non bastasse la nota si estende su due pagine (ed anche il poem). Dopo diversi tentativi il risultato migliore l'ho ottenuto portando il <ref></ref> all'esterno del poem, ma il numero della nota finisce a capo. Qualche altra idea? --Luigi62 (disc.) 00:22, 29 nov 2011 (CET)[rispondi]

    Il poem dentro il ref non funziona troppo bene, e 2 poem uno dentro l'altro è peggio che peggio. Io semplicemente eviterei di usarlo. Candalùa (disc.) 09:56, 29 nov 2011 (CET)[rispondi]

    Il Common.css è modificato in modo che usare <br /> alla fine delle righe, o meglio usare il vecchio trucco di un carattere : a inizio riga, dà un effetto identico a poem. Volendo esagerare, si può usare direttamente il codice html che poem genera:
    1. includere i versi in un <div class="poem"> (andando a capo dopo il div per generare automaticamente un tag <p>);
    2. aggiungere un <br /> alla fine di ogni verso.

    --Alex brollo (disc.) 10:11, 29 nov 2011 (CET)[rispondi]

    Concorso di idee

    Non vi sarà sfuggita la brillantezza del sistema di "ricordare" il numero dell'ultimo verso da una pagina alla successiva, usato da Candalua come cuore dei tool di Strumenti per la rilettura. Ora, a chi crea o modifica molte pagine consecutive chiedo: quali altri dati sarebbe bene "ricordare" passando da una pagina alla successiva? Ho l'impressione che siano parecchi; ad esempio, il tipo di doppie virgolette da usare al posto dei classici "..." per rispettare la scelta tipografica del libro; ma anche, ad esempio, gli elementi variabili di RigaIntestazione (come il numero del capitolo) e chissà quanti altri; tutti elementi che potrebbero essere richiesti da un prompt nella sola prima pagina, e poi trascinati avanti. L'URL può arrivare a 4000 caratteri se non sbaglio, ce ne sta di roba... A voi. --Alex brollo (disc.) 00:04, 6 dic 2011 (CET)[rispondi]

    Elaborazione js delle righe (progetto Phe)

    Al momento del primo edit di una pagina dotata di "datiPagina", uno script js di Common.js richiama, riga per riga, una banale funzione elaboradatiPagina(), inviando alla funzione il numero della riga nell’array. La banalissima funzione estrae il testo della riga, ci aggiunge un \n e la aggiunge alla pagina.

    Se un utente scrive, nel proprio vector.js, una diversa funzione elaboradatiPagina(), tale funzione personale "rullerà" quella di base e restituirà una riga "arricchita" di varie cose (postOCR, codici di formattazione....). Quindi, chiunque maneggi js e non svenga di fronte a un oggetto complicatuccio come datiPagina può divertirsi a provare trucchi (senza gravi conseguenze). Se qualche ardimentoso vuole provarci, posso mettere qui il tracciato dell’oggetto datiPagina per avere l’elenco dei dati disponibili, da usare con un tutta la creatività e fantasia possibile. —Alex brollo (disc.) 09:42, 12 dic 2011 (CET)[rispondi]

    Testo ruotato di +90 -90 gradi

    Apprendo dal web, con alcuni particolari qui, che tecnicamente è possibile, maneggiando css, scrivere su una pagina web un testo a direzione verticale (verso l'alto o verso il basso). Vi risulta che in qualche source (qui o altrove) la cosa sia stata mai dissodata? Se no: chi mi aiuta....? ;-) La cosa è tosta, il supporto del codice css3 sembra "browser-specifico" e incompleto. Mi serve per una pagina di Ziba 2 che ho lasciato a SAL 50%. --Alex brollo (disc.) 12:08, 15 dic 2011 (CET)[rispondi]

    C'è tutto un mondo da scoprire.... al solito, il riferimento meno spaventoso sono le w3c "scools", sezione css3, "2d transforms". --Alex brollo (disc.) 15:17, 15 dic 2011 (CET)[rispondi]

    Progetto: migliorare l'interattività di postOCR e datiPagina

    Chi usa datiPagina (per sistemare i RigaIntestazione, scrivere qualche regex specifica per l'opera ecc) si sarà presto reso conto del punto dolente: è fastidioso, quando scorrendo le pagine in modifica ci si accorge che ci sarebbe da cambiare capitolo in datiPagina, oppure va cambiato il delta perchè ci sono tavole fuori testo, oppure si scopre una nuova piccola regex da memorizzare. Bisogna trovare il datiPagina, modificarlo, ritornare nelle pagina, fare un ricaricamento ctrl-r o ctrl-F5 che spesso non funziona al primo colpo, magari si è lasciata una virgola o una parentesi e tocca fare debugging, ecc.

    Immaginate di aprire, direttamente nella pagina di edit, un prompt attraverso il quale modificare i dati di datiPagina, di avere la mofidica immediatamente attiva, e inoltre di far "ricordare" la modifica nelle pagine successive che scorrerete; finita la serie, di aver la possibilità di salvarvi stabilmente da qualche parte il datiPagina modificato.

    Vi pare interessaante? --Alex brollo (disc.) 20:49, 18 dic 2011 (CET)[rispondi]

    A me si :-) --Aubrey McFato 20:59, 18 dic 2011 (CET)[rispondi]
    A me pure --Carlo M. (a.k.a. zi' Carlo) (disc.) 22:35, 18 dic 2011 (CET)[rispondi]
    OK, due "clienti" mi bastano. Tenete d'okkio il mio vector.js (se usate già i tattoo, meglio, perchè per le prime prove delle funzioni userò quelli). Funzione base: modDp() che sta per modifica datiPagine. --Alex brollo (disc.) 00:25, 19 dic 2011 (CET)[rispondi]

    The point

    • Ok, modDp() effettivamente modifica datiPagine della pagina corrente in edit, via semplici prompt (non ancora creato l'apposito tattoo per richiamarla, per ora tutto via console js).
    • verificato che è possibile "JSONizzare" l'oggetto datiPagine aggiornato, salvarlo in un cookie, e recuperarlo da un'altra pagina che veda il cookie. La strada è promettente e non così complicata. --Alex brollo (disc.) 09:51, 19 dic 2011 (CET)[rispondi]
    • embricatura fatta con trova & sostituisci di Candalua: le regex impostate vengono salvate in un cookie base pagina-specifico. Il vecchio strumento regex va riciclato
    • A metà del guado, ma in mezzo al guano.... SALiamo un po' di Ziba 2, veh. :-( --Alex brollo (disc.) 22:45, 19 dic 2011 (CET)[rispondi]
      • Riassumiamo.
        • In edit di nsPagina, deve materializzarsi datiPag. ✔ Fatto
        • Su datiPag viene caricato innanzitutto e per tutti datiPagine[opera aperta], se esiste. ✔ Fatto
        • Dopodichè, se esiste, viene caricato il valore memorizzato nel cookie[opera in corso] che "rulla" eventuali valori precedenti. ✔ Fatto
        • Infine, nel corso dell'edit, ogni modifica interattiva di datiPag ✔ Fatto o di Candalua's trova & sostituisci viene immediatamente salvata nel cookie.
        • Tutti gli script che usano datiPagine[opera aperta] devono essere fatti puntare su datiPag. ✔ Fatto
        • Occorre poter visualizzare il codice datiPag per salvarlo, eventualmente, in una variabile datiPagine.
        • Occorre poter editare datiPag o/e distruggere il cookie, per sistemare eventuali pasticci evitando che vengano "trascinati avanti" fino a naturale scadenza del cookie.
      • Questo sarebbe il progetto. --Alex brollo (disc.) 09:05, 20 dic 2011 (CET)[rispondi]

    Bene. Io modificherei così il mio trova&sostituisci:

    • aggiunta di una checkbox "Ricorda questa sostituzione":
      • se è spuntata salva la coppia di valori nel cookie secondo la tua "embricatura" (accidenti... son dovuto andare a vedere sul dizionario!)
      • altrimenti fa solo la sostituzione nella pagina corrente e poi la "dimentica" (funzionamento attuale)
    • aggiunta di una checkbox "Espressione regolare": se non è spuntata viene creata sempre una regex, ma facendo l'escape di tutti i caratteri speciali, in modo da trattare l'input come fosse testo semplice (link)
    • aggiunta di una checkbox "Non distinguere maiuscole/minuscole": se è spuntata aggiunge alla regex il parametro "i" = insensitive

    Candalùa (disc.) 10:11, 21 dic 2011 (CET)[rispondi]

    Magnifico. Anch'io sentivo l'esigenza di non "salvare" tentativi di T&S mal riusciti; poi cancellarli non è semplicissimo. Mi pare che la soluzione escappatrice permetta di salvare il "trova" così com'è senza ricordare se è o no una regex; ma il parametro i aggiuntivo aimè andrà ricordato. :-(
    Nota: la console javascript di Chrome esala un lamento quando si chiama il trova & sostituisci attuale; qualcosa che ha a che fare con il fatto che webkit non supporta bene eventX e eventY o qualcosa del genere. --Alex brollo (disc.) 12:48, 21 dic 2011 (CET)[rispondi]
    E' un bug di jquery, o di chrome, a seconda dei punti di vista. Sembra farlo ogni volta che ci sono di mezzo eventi del mouse come onclick. E' già fixato in jquery 1.7 ma noi abbiamo ancora la 1.6. Non credo ci sia da preoccuparsi, è solo un warning e probabilmente prima o poi installeranno jquery aggiornato. Candalùa (disc.) 14:57, 21 dic 2011 (CET)[rispondi]
    Nuntio vobis che ho costruito, via modDp(), il primo datiPagina "completamente coockizzato" ossia: costruito ab initio interattivamente da una pagina Pagina in edit e salvato come coockie, senza che esista una variabile datiPagine scritta in MediaWiki:variabili.js o altrove. E funziona!!! E non è incompatibile con il vecchio meccanismo: lo integra soltanto. Sposto modDp() nel gadget Strumenti per la rilettura, ma per ora lo lascio non linkato; se volete provarlo, chiamatelo da una console js. Adesso stresserò per bene l'ambaradan per cercare i bug prima che li troviate voi (almeno qualcuno, poi lo so che il primo di voi che proverà la cosa immediatamente troverà un bug enorme). --Alex brollo (disc.) 15:34, 21 dic 2011 (CET)[rispondi]

    Ho aggiunto le checkbox, per il momento "Ricorda" e "Espressione regolare" le ho messe disabilitate perché non c'è ancora la funzionalità associata. Se vuoi testare il ricorda togli pure il $('#findReplace_ricorda').attr('disabled', true); Candalùa (disc.) 16:41, 21 dic 2011 (CET)[rispondi]

    Altra serata insonne. :-(
    1. mi par di capire che nel tool le regex vanno introdotte come "stringhe da compilare" e non come "espressioni regex" (quello che si scrive tra caratteri /...../ in un replace). Domanda: non sarebbe possibile, invece di dover ricordare con fatica le convenzioni per le stringhe da compilare (doppio escape...) si potesse inserire l'espressione regex così come la si scriverebbe in un replace, ossia nella forma /..../, elaborando poi la stringa via js per trasformarla in un'espressione regex vera?
    2. non si potrebbe integrare in questo sistema anche la questione dei parametri? In fondo, si tratterebbe solo di far scattare un algoritmo di trasformazione nel caso che il primo carattere di trova sia / (regex) mentre tutti gli altri casi sarebbero no regex. O qualcosa mi sfugge? --Alex brollo (disc.) 16:47, 21 dic 2011 (CET)[rispondi]

    Eh? Doppio escape? Mi pare che funzioni, con gli escape singoli. O forse non ho capito? Per il secondo punto: mi sembra molto più comodo avere una checkbox, anziché doversi ricordare di aggiungere un certo carattere all'inizio. Candalùa (disc.) 17:35, 21 dic 2011 (CET)[rispondi]

    Non badarci, sono un novizio delle regex. Sto verificando l'opzione di memorizzazione. --Alex brollo (disc.) 19:55, 21 dic 2011 (CET)[rispondi]

    Includi Intestazione

    Perché qui viene transclusa l'intera prima pagina? --Luigi62 (disc.) 09:09, 22 dic 2011 (CET)[rispondi]

    Sistemato, era un bug di Areadati.js (nell'area dati di Agamennone (Alfieri) veniva inserito del testo che non c'entrava) Candalùa (disc.) 11:12, 22 dic 2011 (CET)[rispondi]

    Problema di sequenza javascript

    La funzione $(document).ready(function()....) che attualmente sta in MediaWiki:Gadget-evidenziaRighe.js e che crea la "freccina evidenziaRighe" se il documento aperto è una pagina Pagina, in edit, e se esiste una variabile datiPagina, funzionava perfettamente quando stava in un vector.js, ma lì non funziona: non "trova" la variabile datiPagina nel momento in cui viene lanciata; eppure la variabile esiste a completamento dei vari script come si vede da una console js. E' come se la funzione partisse "troppo presto". Per forzare il corretto funzionamento ho dovuto eliminare la condizione datiPagina["righe"]!=undefined, cosa seccante perchè adesso la freccina compare anche quando NON ci sono i dati necessari a farla funzionare, cosa che volevo evitare accuratamente.

    Chi mi aiuta a risolvere il fastidioso busillo? Mi pare che la sequenza dei js sia: js generali->common.js->gadget vari->vector.js; datiPagina dovrebbe essere creata da common.js; e allora? --Alex brollo (disc.) 09:14, 29 dic 2011 (CET)[rispondi]

    Il problema si può risolvere utilizzando .load() che permette di far partire una funzione dopo il load di una pagina. Il gadget può essere caricato tramite load da un'altra pagina (una qualsiasi, quella più comoda) e poi, quando è stato fatto il load, far partire la funzione di append:
    $(document).load('http://it.wikisource.org/wiki/MediaWiki:Gadget-evidenziaRighe.js',function(){
    if (wgCanonicalNamespace == "Pagina" && wgAction == "edit" && datiPagina["righe"]!=undefined  )
      $('<div style="position:absolute;top:50px;right:0px;z-index:500;"><a href="javascript:evidenziaRiga()"><img src="http://upload.wikimedia.org/wikipedia/commons/7/73/Arrow_green.svg" /></a></div>').appendTo($(".wikiEditor-ui-text"));
    });
    

    Samuele 10:02, 29 dic 2011 (CET)[rispondi]

    Bisogna darti i tastini, quanto prima possibile. Grazie, provo a modificare lo script. --Alex brollo (disc.) 11:32, 29 dic 2011 (CET)[rispondi]
    Prova (apparentemente) fallita, mi si è bloccato tutto, probabilmnente ho fatto qualche terribile errore; ho dovuto disabilitare js e annullare rapidamente la modifica. Per ora desisto. :-( --Alex brollo (disc.) 11:41, 29 dic 2011 (CET)[rispondi]
    La richiesta load deve essere fatta da un'altro file, esterno, che viene preferibilmente caricato prima (forse Gadget-HotCat.js), così da non andare in conflitto (se esistesse un modo per bloccare il load automatico che fa il software wiki dei file javascript sarebbe anche meglio, così che il load sia fatto solo dal file principale). Samuele 14:20, 29 dic 2011 (CET)[rispondi]

    Forse so come si può risolvere il problema. Basterebbe far apparire la freccia solo dopo che l'utente ha schiacciato su un bottone o su un link che permette l'attivazione del tool, in modo che venga controllata la presenza dell'array, al click sul link, che è sicuramente dopo il loading dell'array stessa. Spero che questo consiglio possa essere utile. Samuele 22:31, 3 gen 2012 (CET)[rispondi]

    Ho fatto un tentativo di far apparire la freccetta alla fine dell'elaborazione dei dati datiPagina; ma mi sono incastrato. Mi piacerebbe che Samuele avesse "i tastini"...
    Comunque, ho un'altra priorità, prego gli "smanettoni" di seguirmi nel prossimo argomento, questo problema della freccina lo risolveremo a suo tempo. --Alex brollo (disc.) 12:11, 5 gen 2012 (CET)[rispondi]

    Un bivio nel "progetto Phe"

    Dimostrato che il cuore del progetto Phe funziona (ossia: è possibile associare alla normale pagina di edit una schiera di dati contenenti il contenuto originale delle righe del djvu, e le loro coordinate; avuti questi due dati e qualche altro dato, è possibile evidenziare sull'immagine la riga di testo in cui sta il cursore nel box di edit) si pongono varie domande per "andare avanti".

    1. lo stesso trucco sarebbe comodo anche in visualizzazione, oltre che in edit?
    2. i dati devono per forza essere nascosti nel testo della pagina. Se fossero ficcati nel footer, invece che nel corpo del testo, potremmo evitare di cancellarli/riscriverli?
    3. per com'è organizzata la cosa adesso, i dati possono essere integrati nella pagina solo mediante caricamento ex novo della pagina con un bot sulle opere nuove. Vale la pena di modificare il comportamento del bot, e abilitarlo ad aggiungere i dati anche a opere e pagine già esistenti?
    4. forse c'è il modo di "rivoluzionare" la cosa, e di integrarei dati nello strato testo del file djvu, in modo che il normale procedimento di caricamento dello strato testo, attivo in tutti i progetti source per tutti i file djvu con strato testo, "tiri dentro" da sè anche i dati delle righe mappate. In pratica, tutto si risolverebbe con uno scaricamento e ricaricamento del file djvu, dopo averne manipolato lo strato testo. E' una strada da esplorare?

    A voi. Intanto io ci penso portando a spasso il cagnone. :-) --Alex brollo (disc.) 12:11, 5 gen 2012 (CET)[rispondi]

    Quiz Iliade

    In Indice:Iliade (Monti).djvu c'è una particolarità: occorre mettere in rigaIntestazione il primo verso della pagina. Ci sono due strategie:

    1. se le pagine vengono "passate" in sequenza, il numero del verso è incorporato come parametro dell'URL grazie al trucco di candalua;
    2. in caso contrario (caso più generale), occorrerebbe predisporre un algoritmino che determini, sulla base di eventuali template R, il numero del primo verso.

    Ancora più in generale: sarebbe bello poter infilare in datiPagine, come "dato", il nome di una o più funzioni specifiche dell'opera. In questo caso, la funzione specifica sarebbe "acchiappa il numero del primo verso e infilalo nella RigaIntestazione".

    PS: non vedo l'ora che Samuele "abbia i tastini", conto i giorni alla rovescia. --Alex brollo (disc.) 13:36, 12 gen 2012 (CET)[rispondi]

    Risolto (via bot). --Alex brollo (disc.) 01:22, 16 gen 2012 (CET)[rispondi]

    Gestire la selezione

    Sarebbe bello disporre di uno script generico che gestisca la selezione di testo, ossia: che "spedisca" la selezione del testo a una routine specifica, indicata in un parametro, e incorpori nel testo il risultato dell'elaborazione. Ci ho provato ma ho fallito, perso nella questione del differente "trattamento" della selezione in IE e negli altri browser, e in spiacevoli "perdite della selezione strada facendo".

    In genere, sarebbe bello che tutti i tool di modifica testo fosero poi generalizzati, in modo da agire sull'intero testo (ossia, sulla selezione di tutto il testo se nulla è selezionato) o sulla sola selezione, se presente. Già in un paio di casi, utenti astuti mi hanno chiesto piccoli tool specifici per singole opere, e disporre di un affidabile strumento per la selezione amplierebbe molto le possibilità. --Alex brollo (disc.) 10:18, 16 gen 2012 (CET)[rispondi]

    Il modo migliore per gestire la selezione è quello di creare una funzione apposita oppure un plugin JQuery.
    In breve vantaggi e svantaggi:
    • Il plugin JQuery: ottimo se la selezione è riferita a più elementi (come un div e una textarea); inefficiente se deve essere utilizzato durante l'esecuzione di uno script
    • La funzione: ottima se viene utilizzata durante l'esecuzione di uno script in quanto permette di ottenere un parametro semplicemente richiamando la funziona; inefficiente se la selezione è riferita a più elementi.
    Per la funzione io propongo questa, che finora non mi ha dato noie, è una funzione per ottenere la selezione in una textarea, per quanto riguarda i div c'è da fare altre robe:
    function Selection(idarea)
    		{
    		  var textComponent = document.getElementById(idarea);
    		  var selectedText;
    		  // IE version
    		  if (document.selection != undefined)
    		  {
    			textComponent.focus();
    			var sel = document.selection.createRange();
    			selectedText = sel.text;
    		  }
    		  // Mozilla version
    		  else if (textComponent.selectionStart != undefined)
    		  {
    			var startPos = textComponent.selectionStart;
    			var endPos = textComponent.selectionEnd;
    			selectedText = textComponent.value.substring(startPos, endPos)
    		  }
    		  return selectedText;
    		}
    
    Samuele 18:42, 16 gen 2012 (CET)[rispondi]
    Grazie! Ma io sarei molto più tranquillo se mi restituisse una lista di tre elementi stringa: il testo prima, la selezione, il testo dopo. La ricostruzione del testo complessivo sarebbe allora completamente indipendente dal browser. O sbaglio? Io scrivo qui la versione modificata per Mozilla, già settata sul box di edit per mia comodità.
    function Selection()
    		{
    		  var textComponent = document.getElementById("wpTextbox1");
    		  var selectedText;
                      var testoPrima;
                      var testoDopo;
    		  // IE version
    		  if (document.selection != undefined)
    		  {
    			textComponent.focus();
    			var sel = document.selection.createRange();
    			selectedText = sel.text;
                            // testoPrima= ?
                            // testoDopo= ?
    		  }
    		  // Mozilla version
    		  else if (textComponent.selectionStart != undefined)
    		  {
    			var startPos = textComponent.selectionStart;
    			var endPos = textComponent.selectionEnd;
    			selectedText = textComponent.value.substring(startPos, endPos)
                            testoPrima=textComponent.value.substring(0,startPos);
                            testoDopo=textComponent.value.substring(endPos);
    		  }
    		  return [testoPrima,selectedText,testoDopo];
    		}
    

    Strano ma vero, questo fa quel che voglio (sempre che ci sia jQuery):

    function selection(txtarea) {
      return [$(txtarea).val().substring(0,txtarea.selectionStart),
      $(txtarea).val().substring(txtarea.selectionStart,txtarea.selectionEnd),
      $(txtarea).val().substring(txtarea.selectionEnd)];  
    }

    chiamato (cambiando ev. [0] in [1] per nsPagina) con:

    selezioni=selection($('textarea')[0])
    Contrordine, siccome $('textarea')[0] non me lo ricorderò mai, adesso la routine selection si chiama con un semplice parametro numerico (0,1,2 nel nsPagina rispettivamente per header, corpo, footer). Interessante che restituisce cose diverse quando il focus non è nel textbox, quando è nel textbox ma non c'è selezione e quando c'è una selezione; in nessun caso dà errore; e in tutti i casi, il testo complessivo, dato alla lista il nome testi, si ricostruisce semplicemente con testo=testi.join(""), dopo aver manipolato a piacimento uno o più elementi della listina. A me piace. :-) --Alex brollo (disc.) 18:06, 17 gen 2012 (CET)[rispondi]

    Ma tu completami la funzione precedente che son più tranquillo.... Grazie! --Alex brollo (disc.) 10:19, 17 gen 2012 (CET)[rispondi]

    Dato che JQuery è la cosa per ora più compatibile che ci sia con IE (e che non ho trovato un sistema semplice per trovare il testo prima e il testo dopo, usando le specifiche MSDN, in IE), sarebbe interessante risolvere quel piccolo bug, quello che ti restituisce parametri strani quanto si seleziona in altre textarea. Molto probabilmente, usando if(documnet.selection) prima della funzione di selezione il tutto si risolve, ma prima di dirtelo con certezza faccio qualche test. Samuele 22:59, 17 gen 2012 (CET)[rispondi]
    Dopo qualche test sono giunto a questa conclusione:
    function selection(txtarea) {
    if(txtarea.selectionStart){
    if($(txtarea).val().substring(txtarea.selectionStart,txtarea.selectionEnd)==''){return 'non è una selezione'}else{
      return [$(txtarea).val().substring(0,txtarea.selectionStart),
      $(txtarea).val().substring(txtarea.selectionStart,txtarea.selectionEnd),
      $(txtarea).val().substring(txtarea.selectionEnd)];  }}
    }
    

    Controlla se nell'area di testo c'è il mouse poi controlla se l'area selezionata è vuota, ovvero se non ha selezionato niente, e poi restituisce il testo prima, durante e dopo, solo se c'è del testo selezionato. So che si può bloccare la funzione anche quando il mouse non è dentro l'area di testo su cui si vuole agire, ma l'ora è tarda e non mi viene in mente nulla di spiccio (come questo testo che è poco esplicativo, si capisce meglio dal codice), a "domani". Samuele 23:24, 17 gen 2012 (CET)[rispondi]

    (cosa combinano ai piani alti? la risposta dei server è lumachesca)
    La mia versione personale di selection è al momento questa:
    function selection(area) { 
      if (area==undefined) { if (wgCanonicalNamespace=="Pagina") area=1; else area=0; }
      txtarea= $('textarea')[area];
      return [$(txtarea).val().substring(0,txtarea.selectionStart),
      $(txtarea).val().substring(txtarea.selectionStart,txtarea.selectionEnd),
      $(txtarea).val().substring(txtarea.selectionEnd)];  
    }
    Non mi interessa a questo punto che ci sia, o non ci sia, testo selezionato; alle volte può interessarmi moltissimo "sezionare" con il puntatore in due il testo (immaginate, ad es., per aggiungere al "testo prima" e al "testo dopo" le section); la novità invece è che per default selection agisce su $('textarea')[0] nelle pagine "normali" e invece su $('textarea')[1] nel nsPagina, il che permette di evitare di specificare il parametro area nel 99% dei casi (ma quando serve, è facilissimo farlo). Se poi il focus non è nella textarea, vuol dire che mi interessa il testo complessivo, ed è immediato ricostruirlo con .join(""); insomma, sono soddisfatto fino a prova contraria (e anche Barbaforcuta pare soddisfatto... ;-) ) --Alex brollo (disc.) 15:52, 18 gen 2012 (CET)[rispondi]
    Suppongo che la lentezza dei server wiki sia dovuta alla protesta in atto e mi sta rallentando moltissimo qui su source. Hai ragione, può tornare molto utile non selezionare nulla, anche solo per effettuare uno splittaggio del testo, non ci avevo pensato e avevo capito male la richiesta (a letto prima questa sera). Sto pensando ad uno script per ottenere il numero del primo verso in qualsiasi frangente (penso ad uno split e poi al match del template R, oppure se non c'è il template R, all'utilizzo del magheggio che permette di avere il numero dei versi automatici) ma i server non mi aiutano, spero che domani la situazione migliori. Samuele 19:02, 18 gen 2012 (CET)[rispondi]
    Ho testato l'idea "split" per la divisione in colonne di una pagina, magico: cursore sul punto dove va AltraColonna, click, aggiunta di AltraColonna nella posizione del cursore e di Colonna in testa. Si aprono interessanti prospettive di micro-script a bizzeffe.... :-) Per un'altra applicazione dai un occhio a Utente:Barbaforcuta/vector.js, script "sonetto.js" che sta usando per Priapea con gran soddisfazione. Alex brollo (disc.) 00:26, 19 gen 2012 (CET)[rispondi]

    Pulsantini liberi

    Aggiungere pulsantini alle varie sezioni della toolbar è facilissimo, e soprattutto possono essere tastini liberi, collegati a funzioni js qualsiasi, e non alle sole funzioni standard di inserisci o encapsulate. Sto scoprendo l'acqua calda (in questo caso, faccio altro) oppure documento? Fra l'altro, per chi preferisce una scritta-link piuttosto che un pulsantino, nello stesso modo si possono aggiungere alle varie sezioni anche scritte-link. --Alex brollo (disc.) 14:50, 17 gen 2012 (CET)[rispondi]

    SAL e Bibbia

    Sembra che correggendo o rileggendo (pagina seguente) la Bibbia sparisca il SAL. --Luigi62 (disc.) 10:50, 17 gen 2012 (CET)[rispondi]

    Candalua sta rivedendo radicalmente il SAL, se tarda a rispondere segnalaglielo direttamente! --Alex brollo (disc.) 11:06, 17 gen 2012 (CET)[rispondi]

    Il nuovo SAL per funzionare funziona, ma ho visto che quando gli script sono lenti a caricare, se si clicca "Mostra cambiamenti" prima del completo caricamento non scatta il SAL, credo perché le nostre funzioni non sono state ancora agganciate ai bottoni. Forse posso nascondere i bottoni per default tramite css, e mostrarli solo sul document.ready().

    P.S. Occhio che sulle pagine bibliche avete roba tipo "Uncaught ReferenceError: bibbia2 is not defined", il che non è bello. Candalùa (disc.) 12:32, 17 gen 2012 (CET)[rispondi]

    Controllo. Strano perchè bibbia2 dovrebbe essere lo script per la gestione "al volo" selle section versi. Vedo! --Alex brollo (disc.) 13:46, 17 gen 2012 (CET)[rispondi]
    che è sta roba? Candalùa (disc.) 14:45, 17 gen 2012 (CET)[rispondi]
    bibbia1 e bibbia2 sono due script per creare e distruggere delle section attorno ai singoli versetti. Te ne avevo parlato, tanto tempo fa, con la raccomandazione di attivarli DOPO aver caricato il SAL (altrimenti si caricano alcune decine di SAL...). Stavano nel mio vector, e non "vedevo" il messaggio di errore che hai segnalato. Adesso: o si eliminano insieme alle loro chiamate, o si verifica che funzionino con il nuovo SAL. --Alex brollo (disc.) 14:55, 17 gen 2012 (CET)[rispondi]
    Sì, ma ci hai incollato dentro pure i "==" dei titoletti... Candalùa (disc.) 15:35, 17 gen 2012 (CET)[rispondi]
    Eccosassarammai. ;-P
    Seriamente: se son nati problemi, mi spiace; evidentemente ho rifatto lo stesso errore, ossia: avevo lasciato attive le due routine nel mio vector, e gli eventuali errori in common venivano "rullati" e quindi non comparivano in console. Ho l'abitudine di controllare sempre se ci sono errori nella console js, ma questo insegna che non basta affatto. :-( --Alex brollo (disc.) 17:47, 17 gen 2012 (CET)[rispondi]

    movimenti gadget

    Candalua, vedo tue manipolazioni dei gadget e ho intercettato a suo tempo messaggi in exoterichese stretto, che hanno a che fare con l'ottimizzazione delle chiamate js. Siccome il mio duplice discovering the wheel (come controllare la creazione di nuovi pulsanti; come maneggiare la selezione testo for dummies) potrebbe indurmi a creare una miriade di nuovi micro-tool, ci daresti qualche dritta su come fare le cose per bene? --Alex brollo (disc.) 18:01, 17 gen 2012 (CET)[rispondi]

    ho soltanto tolto "http://" da tutti gli url per renderli protocol-indipendent: questo perché da qualche tempo esiste la versione "sicura" (cioè a connessione crittografata) dei progetti wiki, visitabile usando https:it.wikisource.org e simili. Ma perché sia la protezione sia davvero sicura, occorre che tutte le risorse (immagini, script...) siano caricate sempre dalla versione sicura. Omettendo il protocollo, ogni risorsa viene caricata usando il protocollo che si è immesso nella barra indirizzo del browser. Candalùa (disc.) 19:34, 17 gen 2012 (CET)[rispondi]

    Aggiungere html al toolbox

    Ecco qua:

    $("<span>test</span>").appendTo($("div.toolbar.section.section-main"))

    Ovvio che al codice test va sostituito qualcosa di utile (es. il link che chiama una funzione javascript) e che se si vuole aggiungere l'oggetto a uno dei gruppi di testini occorre adattare la div, ma il principio è quello che conta. :-)

    Codice tipo per aggiungere un tastino, es. questo: File:Button_smiley_face_grin.png, occorre usare il suo url completo: http://upload.wikimedia.org/wikipedia/commons/f/f5/Button_smiley_face_grin.png e per collegarlo es. alla funzione cleanup() (il nostro postOCR) il codice diventa:

    $('<a href="javascript:cleanup()"><img src="http://upload.wikimedia.org/wikipedia/commons/f/f5/Button_smiley_face_grin.png" /></a>').appendTo($("div.toolbar.section.section-main"))
    --Alex brollo (disc.) 01:09, 20 gen 2012 (CET)[rispondi]

    Togliere html al toolbox

    Altrettanto semplice "fare pulizia" nel toolbox intervenendo con l'accetta e lasciando il minimo.

    Questo uno screenshot di una "pulizia" di prova del toolbox, via console js:

    Dopo la grande pulizia....


    --Alex brollo (disc.) 08:22, 20 gen 2012 (CET)[rispondi]

    Il risultato è molto pulito. L'unico mio quesito è: si può agire ad un livello più alto nel codice, in modo da non far nemmeno apparire gli elementi (e non cancellarli dopo il caricamento della pagine, che rende più lento il caricamento)? Samuele 21:16, 21 gen 2012 (CET)[rispondi]
    Ottima domanda. Io non ho notato ritardi (forse un secondo) ma sarebbe assai meglio. Se ce la fai, sarebbe estremamente interessante esplorare la questione, e anche approfondire due o tre aspetti che sono documentati malissimo:
    1. come sfruttare appieno i parametri assegnabili ai pulsandi (esiste una possibilità callback per chiamare una funzione qualsiasi che DOBBIAMO avere ma non c'è alcun esempio)
    2. come costruire i nostri "booklet", che sono quello che compare nel menu "Aiuto"
    3. come custruire gli oggetti "select", che sono i menu a discesa tipo l'inutilissimo "Intestazioni" (in alternativa potremmo riesumare i vecchi menu a tendina e montarli dentro il toolbox alla bell'e meglio; come sono su pedia sull'argomento? Cos'ha combinato Jalo con il monobook, l'ha forse adattato a vector?)
    Se acchiappiamo l'oggetto select, si aprono interessanti prospettive :-)
    ✔ Fatto Acchiappato. Vedi il mio vector.js. --Alex brollo bis (disc.) 01:38, 24 gen 2012 (CET)[rispondi]
    Io ho provato a esplorare, ma mi sono perso subito, e quindi ho preferito accettare (ossia, usare una buona accetta) la toolbox costruita di default. --Alex brollo (disc.) 12:20, 23 gen 2012 (CET)[rispondi]
    La migliore doc che ho trovato è qui: http://www.mediawiki.org/wiki/Extension:WikiEditor/Toolbar_customization --Alex brollo (disc.) 13:15, 23 gen 2012 (CET)[rispondi]

    Note con asterisco

    Salve a tutti. Mi potete spiegare come si mettono gli asterischi al posto dei numeretti per le note? La cosa diventa importante quando uno stesso testo usa i numeri per indicare un certo tipo di note (per esempio quelle dell'autore) e gli asterischi per un altro tipo (per esempio quelle del traduttore), come succede qui. Ho cercato ovunque, ma non riesco a venirne a capo. Grazie! --αStar msg 20:51, 21 gen 2012 (CET)[rispondi]

    Io creerei un template ad hoc, così che possa essere utilizzato anche in altre evenienze (un semplice anchor). Ma non so se esiste un modo per aggirare la creazione di un nuovo template. I senior sapranno illuminare la via. Samuele 21:11, 21 gen 2012 (CET)[rispondi]
    Il problema è che se si esce da quanto previsto dall'estensione Cite ci si mette in un vero vespaio. Io proporrei di sfruttare a fondo le possibilità dell'estensione (che permette di gestire diversi tipi di note, che poi vengono visualizzate in elenchi separati: questo possibilità, quando serve, serve veramente) ma di non pretendere una visualizzazione "fuori standard" (che non sia previsto dall'estensione) del simbolo della nota . Ricostruire ex novo tutto il meccanismo delle note è veramente complesso, io ci rinuncerei, ma se qualcuno riesce a farlo in modo semplice per l'utente finale, ben venga! . --Alex brollo (disc.) 12:12, 23 gen 2012 (CET)[rispondi]
    Soluzione easy: usiamo sempre il <ref></ref> per le note, ma nel testo della nota riportiamo il numeretto originale o l'asterisco. E all'inizio della sezione Note trascludiamo il pezzetto di pag. 10 che spiega il significato dell'asterisco, così è chiaro a chiunque. Candalùa (disc.) 13:25, 23 gen 2012 (CET)[rispondi]
    • Guardata la nota a pag 10, mi viene in mente che in cleanup() dobbiamo far aggiungere uno spazio dopo apostrofo nei casi in cui lo spazio manca e la lettera prima dell'apostrofo è una vocale. Questo:
    .replace(/([eaiuo]’)([\w])/gi, "$1 $2")
    va bene? Qualcuno la scrive meglio? --Alex brollo (disc.) 14:32, 23 gen 2012 (CET)[rispondi]

    "Oggetti configurazionali"

    Le difficoltà nella gestione della toolbox di Vector sta dell'uso di "oggetti configurazionali", come sono tastini, booklet ecc. Con molta fatica, da qualche giorno sono andato oltre al copiaincolla alla chediomelamandibuona, e mi pare di cominciare a capire come funzionano; tuttavia mi pare di aer capito che gli sviluppatori hanno fatto una strana scelta: invece di definire gli oggetti indipendentemente, e creare una semplicissima routine generale che gestisse una lista di oggetti, hanno infilato la definizione degli oggetti all'interno del codice che li genera, rendendo il tutto estremamente rigido. Se ci fosse una routine di generazione da una parte, e una serie di oggetti in una lista separata, sarebbe ultra-semplice aggiungerne, toglierne, modificarli o clonarne lo scheletro modificadone i contenuti. A Samuele e a Candalua chiedo: possiamo intercettare lo script che definisce + costruisce, e sostituirlo con uno script che costruisce, e in una lista che definisce, con un po' di reverse engineering? O c'è, secondo voi, un valido motivo per cui gli sviluppatori - ammesso e non concesso che io abbia capito bene - hanno agito come hanno agito? --Alex brollo (disc.) 23:33, 23 gen 2012 (CET)[rispondi]

    Vittoria. Hurra. (lo dico con sobrietà visto che adesso va di moda... )
    Ho il possesso pressochè completo dei meccanismi di creazione canonica degli oggetti del toolbox. In Utente:Alex brollo bis/vector.js gira uno script che crea un nuovo menu a discesa canonico nella toolbox, completamente configurabile, e che è stato spezzato (come volevo) in due parti: uno script che costruisce, brevissimo, e un oggetto che definisce, chiamato menu1. Questo significa che si può modificare l'oggetto lasciando identico lo script; e probabilmente con poca fatica si può generalizzare lo script in modo che costruisca qualsiasi oggetto, o anche una lista di oggetti.
    A questo punto non resta che immaginare il contenuto più utile del primo menu a discesa; io partirei raccogliendo dentro questo menu i nostri template base, Autore, Intestazione nelle sue varietà, IncludiIntestazione, Infotesto. Incoraggio i geek a copiarsi questo codice:
    // Aggiunge un clone del menu a discesa Intestazione. Hurra.
    // l'oggetto menu1
    menu1={'section': 'advanced',      
    'group': 'format',      
    'tools': {'heading': {'label': 'Intestazione','type': 'select','list': 
    {'heading-2' : {'label': 'Livello 1','action': {'type': 'encapsulate','options': {'pre': '== ','peri': 'Titolo di sezione','post': ' ==','regex': /^(\s*)(={1,6})(.*?)\2(\s*)$/,'regexReplace': "\$1==\$3==\$4",'ownline': true}}},
    'heading-3' : {'label': 'Livello 2','action': {'type': 'encapsulate','options': {'pre': '=== ','peri': 'Titolo di sezione','post': ' ===','regex': /^(\s*)(={1,6})(.*?)\2(\s*)$/,'regexReplace': "\$1===\$3===\$4",'ownline': true}}},
    'heading-4' : {'label': 'Livello 3','action': {'type': 'encapsulate','options': {'pre': '==== ','peri': 'Titolo di sezione','post': ' ====','regex': /^(\s*)(={1,6})(.*?)\2(\s*)$/,'regexReplace': "\$1====\$3====\$4",'ownline': true}}},
    'heading-5' : {'label': 'Livello 4','action': {'type': 'encapsulate','options': {'pre': '===== ','peri': 'Titolo di sezione','post': ' =====','regex': /^(\s*)(={1,6})(.*?)\2(\s*)$/,'regexReplace': "\$1=====\$3=====\$4",'ownline': true}}}}}}      
              }
    // lo script che attiva l'oggetto  menu1
    if ( typeof $j != 'undefined' && typeof $j.fn.wikiEditor != 'undefined' ) {
      $j( function() {
           $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar',menu1 );
          }
          );
      }

    e a pasticciare. --Alex brollo bis (disc.) 10:23, 24 gen 2012 (CET)[rispondi]

    Esportazione PDF

    Scaricatevi Abramo Lincoln come PDF e andate a pagina 4 (del PDF). Vi trovate una bella riga a carattere diverso. È generata da una parola che va a capo e messa tra <noinclude></noinclude>, lasciando fuori lo spazio che si viene così a trovare ad inizio riga. Lo stesso succede anche se si usa il template {{Pt}}. Le soluzioni che ho pensato sono due: includere lo spazio tra i marcatori, o utilizzare obbligatoriamente <noinclude></noinclude> nella pagina precedente e {{Pt}} nella seguente. Prima di intervenire su centinaia di pagine, qualcuno ha idee migliori? --Luigi62 (disc.) 11:44, 24 gen 2012 (CET)[rispondi]

    Mi ero accorto da tempo che era meglio noincludere sulla pagina precedente, e personalmente lo faccio sistematicamente, ma mi meraviglia che l'errore sia generato anche da un doppio Pt. Vado a vedere. --Alex brollo bis (disc.) 23:03, 24 gen 2012 (CET)[rispondi]
    Ho capito il problema con Pt.
    Direi che non c'è soluzione nel caso che sia stato usato scorrettamente noinclude sulla pagina successiva (non resta che "tirar dentro" nel noinclude lo spazio bianco con una passata di bot, le pagine da modificare potrebbero essere selezionate dal dump xml, sono arrugginito ma dovrei potercela fare); nel caso invece che Pt sia stato usato come fanciullo - allora forse si potrebbe truccare il template, facendogli produrre comunque (se il secondo parametro è vuoto) "qualcosa", un carattere unicode invisibile o quasi invisibile ma diverso dallo spazio. Occorre modificare l'aiuto del template incoraggiando tutti a usarlo in modo corretto e spargere subito la voce. --Alex brollo bis (disc.) 23:17, 24 gen 2012 (CET)[rispondi]

    Toolbox draggabile

    Caricato in vector.js questo plugin jQuery: http://fromvega.com/code/easydrag/jquery.easydrag.handler.beta2.js

    questa riga di codice:

    $("#wikiEditor-ui-toolbar").easydrag().attr("style","border:1px solid black")

    fa una bella cosina. Rende di colpo draggabile la toolbox; e semplicemente sostituendo (come nel mio vector.js) position absolute con position fixed, la toolbox è sì draggabile, ma non scrolla sullo schermo. Direi indispensabile per avere la toolbox sempre disponibile nel nsPagina. Attivo in Utente:Alex brollo bis/vector.js il set completo di modifiche della toolbox (semplificazione, aggiunta di un nuovo menu a discesa, attivazione draggabilità).

    PS: ho dei dubbi sulla licenza del plugin. Che ne dite voi? E' usabile qui? --Alex brollo bis (disc.) 14:01, 25 gen 2012 (CET)[rispondi]

    Su suggerimento di Samuele, ho testato il metodo ".draggable()" già montato sul nostro jQuery interno. E' un po' più complesso, il primo tentativo è miseramente fallito (probabilmente perchè ho sostituito la classe dell'elemento da rendere draggabile, invece che aggiungere un'altra classe a quella esistente). Lascio per ora la questione ai geek veri, è ora di fare un po' di sana, semplice rilettura :-) --Alex brollo (disc.) 18:44, 25 gen 2012 (CET)[rispondi]
    Pasticciando un po', per gioco, ho riunito i miei tattoo e anche gli "editButtons" nel toolbox (funzionano); stasera cerco di renderlo draggable come dice Samuele (altrimenti ripiego su easydrag che è più easy), e per quanto mi riguarda il mio toolbox sarà perfetto :-) --193.43.176.29 19:02, 25 gen 2012 (CET)[rispondi]