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

Da Wikisource.
Contenuto cancellato Contenuto aggiunto
Barbaforcuta (discussione | contributi)
Riga 807: Riga 807:
--[[User:Pic57|Pic57]] ([[User talk:Pic57|disc.]]) 18:01, 30 lug 2012 (CEST)
--[[User:Pic57|Pic57]] ([[User talk:Pic57|disc.]]) 18:01, 30 lug 2012 (CEST)
:Credo fosse stato fatto appositamente per evitarne la tranclusione; in caso contrario basta togliere le section.--[[User:Barbaforcuta|Barbaforcuta]] ([[User talk:Barbaforcuta|disc.]]) 19:15, 30 lug 2012 (CEST)
:Credo fosse stato fatto appositamente per evitarne la tranclusione; in caso contrario basta togliere le section.--[[User:Barbaforcuta|Barbaforcuta]] ([[User talk:Barbaforcuta|disc.]]) 19:15, 30 lug 2012 (CEST)

== Problemino con il template Testo ==

Nelle opere di "Autori vari" (vedi [[Rivista_di_Cavalleria_-_Volume_IX]] il template testo vistalizza titolo dell'articolo/sezione/capitolo, SAL e basta. Sarebbe comodo che visualizzasse anche l'autore quando specificato con il parametro opzionale ''autore'' di IncludiIntestazione. Proverò a ottenere l'effetto; se non ci riesco o me ne dimentico, un bell'eservizio per chi ama immergersi nei template complessi. La frase da trasformare in codice template è: "'''se''' testo visualizza una sottopagina, e ''se'' l'autore vale Autori vari, ''allora'' visualizza l'autore del testo nella sottopagina, ''quando'' è indicato". --[[Speciale:Contributi/193.43.176.29|193.43.176.29]] 08:42, 31 lug 2012 (CEST)

Versione delle 08:42, 31 lug 2012

Domande tecniche
il punto d'incontro e discussione tra geek e niubbi!
archivio
2024
2001 2002 2003 2004 2005 2006 2007 2008 2009 2010
2011 2012 2013 2014 2015 2016 2017 2018 2019 2020
2021 2022 2023 2024 2025 2026 2027 2028 2029 2030

Categoria: Domande tecniche Bar   Domande tecniche 

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



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 {{Pt|fan-|fanciullo}} - {{Pt|ciullo|}} 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]
Ho provato la tua soluzione per il Pt, e sembra funzionare! Ho usato lo w:Zero-width space che fa proprio al caso nostro. Per il caso del noinclude, direi: tira dentro lo spazio bianco, la regex è semplicissima ma la lascio come utile esercizio al lettore cioè a te :-) Candalùa (disc.) 20:18, 25 gen 2012 (CET)[rispondi]
Passato il bot sul migliaio di pagine che avevano uno spazio dopo la chiusura di noinclude; dovremmo essere a posto; occorrerebbe aggiungere un edit automatico di sistemazione in qualche routine che scatta al momento dell'upload delle pagine Pagina. --Alex brollo (disc.) 14:28, 29 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]
Dai un'occhiata al mio vector, ho reso draggabile il div che contiene il menu select. Forse sarà utile creare un set di strumenti attivabili dalle preferenze che sono automaticamente draggabili, senza che l'utente debba aggiungere scritte nel suo vector.
Ho dovuto rendere draggabile tutto il div, in quanto l'event drag veniva fireato (firato, fatto partire) solo al click fuori dal .label, che occupava quasi tutto il select, tranne che pochi pixel. Se viene messo a disposizione un set di tool, si può creare la sezione personalizzata per wikisource nel wikieditor, in modo da renderla draggabile (ditemi se vi piace fixed o absolute); Samuele 20:13, 25 gen 2012 (CET)[rispondi]
Sembra arabo, ma dovrebbe essere italiano. :-)
Scrivi un prototipo, che poi io copioincollo.... hai trovato il modo di "intercettare" wikieditor prima che costruisca la toolbox? Se tu trovassi il modo, mi piacerebbe smembrare lo script come dicevamo (cioè "estrarre gli oggetti" e gestirli separatamente dallo script che li monta).
Fra absolute e fixed io preferisco fixed; ma potrebbe essere una preferenza personale. --Alex brollo (disc.) 14:49, 26 gen 2012 (CET)[rispondi]

Problemi con Pt

Guardate questa pagina. Avevo usato Pt per inserire l'immagine solo in ns0. Non riesco a capire da cosa dipenda. --Luigi62 (disc.) 10:04, 26 gen 2012 (CET)[rispondi]

Colpa mia, avevo fatto una modifichina a Pt che credevo innocua e invece... ora è a posto Candalùa (disc.) 10:52, 26 gen 2012 (CET)[rispondi]

Oddio!

Oddio! Sono capitato su questa pagina: http://www.mediawiki.org/wiki/ResourceLoader e da qui a questa: http://www.mediawiki.org/wiki/ResourceLoader/Default_modules.

Bella la felice condizione in cui si ha solo una vaga idea della propria ignoranza.... Traumatizzante precipitare nella consapevolezza di come le cose stanno veramente.

Penso che mi prenderò una lunga pausa digestivo-meditativa prima di riprovare a pasticciare. --Alex brollo (disc.) 08:36, 27 gen 2012 (CET)[rispondi]

Per semplificare un po' le cose, ti consiglio di iniziare da questi plugin JQuery, che ci torneranno molto, ma molto utili (la maggior parte li conoscevo già, ma non sapevo fossero già installati in wiki, buono a sapersi). Devo finire l'Esodo, ma credo che mi perderò nella foresta di script. Samuele 22:54, 27 gen 2012 (CET)[rispondi]
Faccio fatica a immaginare in concreto le rivoluzioni possibili (anche se le sento "a naso"). Tuttavia, sono veramente contento di poter "lasciare perdere", per un po'; so che il tutto è in buone mani. C'è Zibaldone, che è pura fatica, ec'è Bibbia, in cui c'è anche lo stimolo di qualche piccola automazione in più; mi studierò jQuery UI e farò qualcosa di minimo, tanto per non dimenticare tutto... --Alex brollo (disc.) 14:25, 29 gen 2012 (CET)[rispondi]
C'è un grosso problema con il plugin jQuery UI; ne parlo sotto in "Rompicapo". Bisogna risolverlo altrimenti tutti i tool che si basano sul plugin potrebbero mostrare malfunzionamenti: mi offro come "cavia del bug". --Alex brollo (disc.) 11:07, 3 feb 2012 (CET)[rispondi]

Elenchi numerati su più pagine

Sto riportando il testo di una tesi che contiene un elenco numerato che si protrae per più pagine. Quando lo trascrivo sull'editor, tuttavia, l'elenco riparte sempre da 1 ogni volta che passo alla pagina successiva. Come posso ovviare a questo inconveniente?

Grazie. Flesciamento

Semplice: usa i numeri normali invece dei "#". Candalùa (disc.) 19:07, 30 gen 2012 (CET)[rispondi]
@Candalua: mi rifiuto di prendere questa affermazione come una risposta, i motivi sono ovvi e non c'è bisogno che li spieghi. Flesciamento 19:40, 30 gen 2012 (CET)[rispondi]
Ehm... la mia era una risposta seria. L'elenco con "#" è utile se in futuro dovrai aggiungere/togliere voci all'elenco, perché così rimangono belle ordinate. Ma trattandosi di un testo che resterà immutato, la cosa che consigliamo di solito è di usare i numeri tout court. Non c'è nessun motivo di usare # Candalùa (disc.) 20:05, 30 gen 2012 (CET)[rispondi]
Ok, ho fatto come mi consigli e in effetti mi sembra la soluzione più semplice. Per ovviare all'indentazione ho fatto: <p style='text-indent:-16px; padding-left:30px;'>...</p> Flesciamento 20:39, 30 gen 2012 (CET)[rispondi]
Oppure puoi farlo con dei ":" a inizio riga. Candalùa (disc.) 20:53, 30 gen 2012 (CET)[rispondi]
Magnifico, un altro utente che non teme il codice html. Bisognerebbe aggiungere urgentemente un babel per i liguaggi informatici. Detto questo, attenzione con i tag p; sono uno degli aspetti più insidiosi del codice wiki, perchè il markup li gestisce automaticamente, e talora in maniera fastidiosa e anti-intuitiva. --Alex brollo (disc.) 11:05, 3 feb 2012 (CET)[rispondi]

Rompicapo

Ho due utenze, questa principale sysop e un alias Utente:Alex brollo bis che uso per "mettermi nei panni" di utenti non-sysop. Ho delle routine ben funzionanti nel vector.js dell'alias, che utilizzano jQuery UI. Le identiche routine (ho copiato tal quale l'intero vector.js) NON funzionano sull'utenza principale. Ho cancellato preferenze, vector.css, cache del browser, tutto: niente da fare. La cosa si riproduce identica sotto Chrome e sotto Firefox. Chi mi dà una spiegazione? Mi secca non poter accedere a jQuery UI, e sono anche un po' preoccupato. --Alex brollo (disc.) 08:59, 3 feb 2012 (CET)[rispondi]

Messaggio di orrore: "Uncaught TypeError: Object [object Object] has no method 'draggable' (stesso messaggio quando probo a utilizzare un metodo dialog: ci ho perso un paio d'ore). --Alex brollo (disc.) 11:09, 3 feb 2012 (CET)[rispondi]
Quando hai fatto il test con dialog, eri in modifica della pagina oppure eri in modalità di visualizzazione? Samuele 19:32, 3 feb 2012 (CET)[rispondi]
In modifica. Al momento, sono concentrato sui tool di modifica. Ma di certo ero in modifica tutte le millanta volte che ho provato draggable(). :-( Ho perfino pensato a virus, o spyware, o cose del genere.... ma cambiando pc, e anche entrando in Chrome con Google aperto da un altro utente, non cambia assolutamente nulla. C'è una differenza incomprensibile di comportamento fra i due account; l'ultima possibilità che mi resta è di chiedere a Edo che mi levi temporaneamente il flag di sysop. Ma tu Samuele adesso sei sysop, e con te gira... --Alex brollo (disc.) 22:56, 3 feb 2012 (CET)[rispondi]
Posso provare a fare una modifica al tuo vector? Samuele 22:58, 3 feb 2012 (CET)[rispondi]
Ho ripristinato il vecchio vector, in questo momento; ma certo, fai pure, al massimo invocherò il nostro santo (San Rollback):-) --Alex brollo (disc.) 23:33, 3 feb 2012 (CET)[rispondi]

Limiti per lo #switch

Ho discusso i limiti di grandezza per gli #switch in lista wikitech. Suggerimento pratico: non oltrepassare i 2000 elementi. Buono a sapersi, mi stavo avvicinando al limite; tuttavia vedo che per grandissimi array #switch è enormemente più efficente che la transclusione selettiva, quindi: se ci sono più di 2000 elementi da switchare, è opportuno dividere lo #switch in pezzi con qualche brutto trucco (es utilizzando il template {{Ci}} per linkare i sotto-switch basandosi sull'iniziale). La tecnica dei sotto-switch è già utilizzata dal pauroso template {{BibLink}}

Con #switch si possono simulare sia array associativi (basati su una relazione 1:1) sia verifiche di appartenenza a sottoinsiemi (relazione molti:uno) e quindi è uno strumento eccezionale. --Alex brollo (disc.) 09:30, 6 feb 2012 (CET)[rispondi]

Tempo fa su Pedia ne ho creato uno di oltre 8000 elementi, ma non sembra dia grandi problemi, anche se per la verità non è più molto usato. --Luigi62 (disc.) 13:19, 6 feb 2012 (CET)[rispondi]
Mi sono lamentato, in lista, sull'algoritmo; avrei giurato che l'analisi fosse fatta con ricerca di stringhe all'interno del codice switch (e allora non ci sarebbe stato il minimo problema) e invece sembra che la struttura venga elaborata "a nodi", per cui sono noti casi di switch molto grandi (>30000 elementi) che hanno messo i server in grossa difficoltà. Interessante il dato che 8000 elementi giravano senza grossi problemi; il limite di 2000 elementi quindi è "sicuro" con ampio margine. --Alex brollo (disc.) 13:56, 6 feb 2012 (CET)[rispondi]
Mi viene adesso in mente che un colpo di #switch ben assestato potrebbe restituire una breve lista di elementi che condividono un certo valore chiave; il tutto "in un colpo solo" (domanda classica: "chi è nato il 25 aprile") . Insomma, l'altro lato della relazione uno a molti. Bisogna che ci rifletta.... --Alex brollo (disc.) 16:51, 7 feb 2012 (CET)[rispondi]

Statistiche SAL

Non ricordo se l'ho già chiesto oppure no, ma mi chiedevo se c'è da qualche parte (o è rintracciabile) qualche statistica per il SAL lato utente: nel senso, sapere se uno prevalentemente, formatta, rilegge, ecc. Credo che alla lunga sarebbe interessante vedere come la comunità lavora... --Aubrey McFato 13:51, 6 feb 2012 (CET)[rispondi]

Non lo so; comunque è una cosa che non farei via bot, bisognerebbe accedere direttamente alle tabelle del database; quindi, se una statistica del genere non esiste (si tratterebbe in sostanza di sezionare lo "spicchio" di attività nsPagina in quattro sotto-spicchi) bisognerebbe, a mio parere, suggerire la cosa a chi ha prodotto l'applicazione per produrre la "torta dei contributi utente per namespace" citata altrove, che già costituisce, IMHO, un eccellente "profilo" dell'attività utente. Bellissimo sarebbe anche poter incorporare dinamicamente quella "torta" nella pagina utente. --Alex brollo (disc.) 14:03, 6 feb 2012 (CET)[rispondi]
Un utente molto "riletto" verrebbe la sua fetta di 75% ridursi in fretta, sintomo che ha scelto i testi giusti. Interessante sarebbe il numero di pagine rilette e attribuire delle "medaglie" al superamento delle 100 500 1000... pagine rilette. Chissà che non attiri grandi rilettori di cui non c'è né mai abbastanza. --Luigi62 (disc.) 14:14, 6 feb 2012 (CET)[rispondi]
La tua osservazione mi fa pensare che immaginiamo statistiche diverse. Io immaginavo un conteggio dei "passaggi di SAL" per utente (che non varia con il contributo di altri), tu invece immagini una cosa diversa, la fotografia del SAL corrente dell'insieme delle pagine a cui un utente ha contribuito (che ovviamente varia con il contributo di altri). Conclusione: l'argomento si presta a fraintendimenti, occorrerebbe precisare bene cosa si vuole.... --Alex brollo (disc.) 14:25, 6 feb 2012 (CET)[rispondi]

Template ValoriMultipli

Spero che possa essere utile il nuovo template "generale" {{ValoriMultipli}}. Fa una cosa molto semplice: uno alla volta, passa i valori ricevuti come parametro 1 (formato valore1/valore2/valore3...) al template ricevuto come parametro 2. Potrebbe essere quindi usato in vari casi sia quando i valori sono senz'altro multipli, sia quando non si è ancora deciso se un certo dato conriene un solo valore o valori multipli. Max valori, al momento, 5 espandibile fino al limite invalicabile di 25 e lunghezza totale della stringa max 254; nessun valore deve contenere internamente un carattere /. --Alex brollo (disc.) 09:37, 7 feb 2012 (CET)[rispondi]

Ciaula scopre la luna

... e Alex scopre Ajax. :-)

var html = $.ajax({
    url:"http://it.wikisource.org/w/api.php?action=query&prop=revisions&rvprop=content&format=xml&titles=User:Samuele_Papa",
    async: false
}).responseText;

Grazie Samuele del fantastico tutorial breve... ;-) --Alex brollo (disc.) 00:53, 12 feb 2012 (CET)[rispondi]

Beccato il codice per bottoni callback

/* test capit() */
if ( typeof $j != 'undefined' && typeof $j.fn.wikiEditor != 'undefined' ) {$j( function() {
    $j( '#wpTextbox1' ).wikiEditor( 'addToToolbar', {
      'section': 'advanced',
      'group': 'format',
      'tools': {'section': {
          label: 'capitalize',
          type: 'button',
          icon: 'http://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/Button_capitalize.svg/23px-Button_capitalize.svg.png',
          action: {type: 'callback',
            execute: function(context){capit();} }
 
}}});});}

Il codice critico è quello nella riga action e nella riga execute. Con questo codice un bottone della toolbar, agganciato a una qualsiasi funzione definita internamente oppure richiamata dall'ambiente esterno (un questo caso, la funzione capit() ), viene aggiunto in modo "canonico"ad una delle sezioni e dei gruppi di pulsanti della toolbar. E' un bel po' che ci stavo dietro. Se lo sapevate già, vi uccido. :-P --Alex brollo bis (disc.) 22:57, 12 feb 2012 (CET)[rispondi]

Rivoluzione in vista

Sarebbe bello poter visualizzare con un click il codice wiki di una pagina, senza uscire dalla modalità view, vero? Io non lo posso fare, ma Utente:Alex brollo bis sì.

Tale utente afferma che è in grado di caricare il codice wiki come una stringa nella pagina in una variabile js, realizzando quindi "'o miracolo' della coesisenza codicewiki/rendering html nella stessa pagina in normale modalità view, e non in anteprima. Penso che gli ruberò il codice :-) --Alex brollo (disc.) 09:13, 13 feb 2012 (CET)[rispondi]

Trasformato in gadget: showWikiCode, request for comment. --Alex brollo (disc.) 09:36, 13 feb 2012 (CET)[rispondi]

Sui dati

Reso disponibile il codice wiki di una pagina in modalità view, altrettanto interessante e utile è disporre del suo rendering html in fase di edit. Esempio: avendo il rendering di una pagina ns0 transclusa in fase di edit, il dato SAL delle pagine transcluse è facilmente disponibile, come pure la presenza di "link rossi". Prossima tappa. :-)

Il fatto di leggere dinamicamente altre pagine in fase di edit consente inoltre di leggere pagine-dati di supporto, sia generali che connesse alla pagina; i dati possono essere elencati in qualsiasi formato che possa essere sottoposto a parsing, esattamente come avviene in MediaWiki:Gadgets-definition. --Alex brollo (disc.) 07:55, 14 feb 2012 (CET)[rispondi]

Algoritmo del "deformattatore"

Assodato che un tool deformattatore elimina la formattazione da un testo puntato o evidenziato immagino una doppia operatività:

  1. puntatore su una parola, nessuna selezione: rimuove l'ultimo livello di formattazione (ossia, quello più vicino al puntatore. Esempio: codice {{Centrato|''avvertimento''}}, puntatore su un punto qualsiasi della parola "avvertimento": primo click, via gli apostrofini dell'italico; secondo click, via il codice del template Centrato.
  2. presenza di testo selezionato: rimozione di tutta la formattazione dentro il testo selezionato. Problema serissimo: riconoscere il testo fra i parametri degli svariati template. :-( Linguaggio veramente orrendo, il linguaggio template.... --Alex brollo (disc.) 18:11, 14 feb 2012 (CET)[rispondi]

Ancora sugli epub

Ho creato nella mia sandbox un "libro" con vari spezzoni per testare la risposta dell'esportazione di epub e pdf. Per il momento sto testando le note e già subito si evidenziano errori con i template nota separata e pagina sia negli epub che nei pdf. Io non ho le conoscenze per capire quali siano bug dell'esportazione e quali dei template, ma mi offro per testarli.

Sentitevi pure liberi di modificare il "test" per aggiungere altri template correlati. Prossimi test su immagini e tabelle. --Luigi62 (disc.) 13:03, 16 feb 2012 (CET)[rispondi]

Grazie dei test, Luigi. Sull'epub ho provveduto a sistemare: era un problema dei nostri template, tutti gli elementi che non devono andare a finire nell'epub vanno marchiati con la classe ws-noexport, e mancava appunto questa classe. Sul pdf è un po' più complicato perché non carica proprio la nota... credo sia un bug di PediaPress (il software che produce i pdf), proverò a segnalarlo a loro. Candalùa (disc.) 19:14, 16 feb 2012 (CET)[rispondi]

Microformat

Qui su source abbiamo "reinventato la ruota" riscoprendo,per conto nostro, w:Microformat. Usiamo microformat DIY, ad esempio, per registrare e visualizzare il SAL delle pagine in transclusione.

Ma possiamo migliorare, in particolare: jQuery legge i dati in microformat in un lampo, e la codifica microformat può essere completamente scritta in automatico via template.

Esempio: mettiamo qui questo codice:

  • <span class="autore"><span class="nome">Alessandro</span> <span class="cognome">Manzoni</span></span>

il quale, "denowikizzato", dà questo risultato:

  • Alessandro Manzoni

Adesso aprite una console js su questa pagina e chiedete $(".autore").text(), oppure $(".cognome").text(). Carino no? --Alex brollo (disc.) 13:19, 19 feb 2012 (CET)[rispondi]


Tu arrivi sempre leggerissimamente in ritardo :-) Il microformat l'abbiamo già implementato, secondo queste specifiche qui: oldwikisource:Wikisource:Microformat. In qualunque pagina ns0, puoi già fare $("#ws-author").text() o $("#ws-title").text() e le altre cose. Candalùa (disc.) 15:05, 19 feb 2012 (CET)[rispondi]

Però! Siete forti in questo progetto, me lo dovrò studiare meglio! :-D
Vado a vedere su Pedia... --Alex brollo (disc.) 18:13, 19 feb 2012 (CET)[rispondi]
Messo un quesito in bar wikipedia. Alex brollo (disc.) 12:23, 20 feb 2012 (CET)[rispondi]
La discussione si è animata: i pediani hanno constatato che en.wikipedia usa i microformat in vari template. E' una bella cosa. :-). Se modificano il template:Bio i dati base degli autori li acchiappiamo in un lampo e a colpo sicuro. --Alex brollo (disc.) 17:02, 20 feb 2012 (CET)[rispondi]

Spiacente di deluderti, Alex, ma la discussione su Pedia si è già fermata. A mano che non discutano "a parte", suggerisco di andare direttamente alla "fonte" del Bio e fare due chiacchiere con Gvf (ci puoi andare anche a cavallo perché sta a Mogliano :) --Silvio Gallio (disc.) 08:58, 22 feb 2012 (CET)[rispondi]

No Silvio, quando faccio una proposta ritengo che l'interlocutore sia padronissimo di accettarla o di rifiutarla senza nessun ulteriore intervento da parte mia. Detesto quelli che s'innamorano delle proprie idee e continuano a insistere e insistere nel promuoverle.... io propongo una volta sola (max un paio, veh). --Alex brollo (disc.) 20:34, 22 feb 2012 (CET)[rispondi]

Come mantenere attiva la selezione

Il tool per maiuscolizzare e minuscolizzare non va. Per essere perfetto, occorre che la selezione venga conservata, in modo da poter ottenere l'effetto voluto con una serie di click. Essere costretti a riselezionare, è un pardipalle.

Se la selezione fosse mantenuta, di potrebbe addirittura usare un solo pulsante che "gira" il testo nelle tre forme tutto maiuscolo-tutto minuscolo-iniziali maiuscole. Come si fa? --Alex brollo (disc.) 12:04, 20 feb 2012 (CET)[rispondi]

Se non si riesce a salvare all'interno di una variabile (alcune volte ci posso essere dei problemi) la si può sempre "salvare" all'interno di un elemento HTML (come un div o un p). Qui spiego come si fa. Samuele 12:26, 20 feb 2012 (CET)[rispondi]
C'è una via più diretta: riassegnare selectionStart e selectionEnd all'oggetto. Riesco con js "normale", almeno da console, pastrocchiando con l'oggetto DOM, ma non ci riesco via jQuery :-( --Alex brollo (disc.) 17:00, 20 feb 2012 (CET)[rispondi]
Beccato: $("textbox")[0].selectionStart=....; $("textbox")[0].selectionEnd=.... e il gioco è fatto. Hurrà. --Alex brollo (disc.) 20:40, 20 feb 2012 (CET)[rispondi]
Adesso sì che il tastino maiuscole-minuscole va come dico io :-) --Alex brollo (disc.) 06:36, 21 feb 2012 (CET)[rispondi]

Soluzione provvisoria

Ho modificato scriviBox() che adesso accetta altri due parametri opzionali corrispondenti al valore numerico di selectionStart e selectionEnd. Quando li riceve, scrive il testo nel box e poi seleziona l'area identificata. Problema: al momento scriviBox accetta anche un secondo parametro opzionale (il numero della textarea) e quindi per fornirgli il terzo e quarto parametro opzionale occorre passargli anche il secondo complicando un po' le cose. Per forzare scriviBox() a usare comunque la textarea di default (0 nei vari ns, 1 nel solo nsPagina) si può passargli una stringa vuota come secondo parametro.

Esempio: scriviBox(testo, "", 100,120) scrive testo in textarea[0] o textarea[1] a seconda dei casi, e seleziona la stringa dal 100mo al 120mo carattere. Naturalmente se la routine da cui scriviBox riceve i dati ha modificato la lunghezza della stringa inizialmente selezionata, occorre che la routine ricalcoli i parametri giusti prima di passarli a scriviBox(). Che sia più furbo passare ascriviBox() i parametri come lista piuttosto che come parametri separati? Allora non ci sarebbero problemi a lasciare il parametro[1] undefined. --Alex brollo (disc.) 18:30, 21 feb 2012 (CET)[rispondi]

Eppur si muove (il markup wiki)

http://lists.wikimedia.org/pipermail/wikitext-l/2012-February/000563.html

Seconda incursione in wikitech-l (la discussione sugli ID procede vivace!) sul markup. Ho chiesto se vi sono inconvenienti di qualsiasi tipo sostituendo gli apostrofini del corsivo e del grassetto con tag html normali... la risposta di Platonides è stata breve: No. :-) Che dite: lo facciamo? --Alex brollo (disc.) 01:02, 22 feb 2012 (CET)[rispondi]

I direi di procedere. Non ho bot da mettere a disposizione, l'unica cosa che posso fare è mettere a disposizione le mie conoscenze di Javascript e JQuery. Se ci sono problemi, avvisatemi che rispondo subito quasi sempre ;) Samuele 08:45, 22 feb 2012 (CET)[rispondi]

Non rischia di disorientare? Già mi immagino quanti scriverebbero <b/> invece di </b> e poi verrebbero a lamentarsi che non funziona... :-) Candalùa (disc.) 09:58, 22 feb 2012 (CET)[rispondi]

Sottoscrivo quanto ha scritto Candalua: la convenzione dei doppi/tripli apici è nata appositamente per facilitare la vita a chi non mastica tag HTML, dunque per noi geeks è una sfortuna che dobbiamo tenerci. punto. Abbiamo problemi di apostrofi: i tools per sostituire gli apostrofi "ritti" con apostrofi tipografici li abbiamo, dobbiamo solo ricordarci di farli girare periodicamente sui nuovi testi. - εΔω 10:19, 22 feb 2012 (CET)[rispondi]

Come lo vedreste un controllo durante la digitazione che dice: se l'utente schiaccia ', e poi schiaccia un tasto diverso da ', allora converti quello ' in un ’? Candalùa (disc.) 10:30, 22 feb 2012 (CET)[rispondi]

Così come lo hai detto lo vedrei male, perchè convertirebbe in ’ l'apostrofo finale di ogni tag corsivo e boldo. Piuttosto, accontento (finalmente) Aubrey e estrapolo da postOCR un tool "conversione asterischi", da appiccicare qua e là (pulsante, strumento per la rilettura, ecc). Approposito: come si fa a ottenere l'elenco delle combinazioni alt+carattere libere sia su chrome che su Firefox? Un po' di hot keys farebbero comodo, per velocizzare la chiamata ai tool. --Alex brollo (disc.) 20:25, 22 feb 2012 (CET)[rispondi]
@ Edo: miriadi di utenti di forum, assolutamente ignari di tutto, usano felicemente i tag [i]...[/i] e tutti gli altri tag-da-forum-ben-conformati senza battere ciglio. Gli utenti wikiani non sono più stupidi nè più pigri: sono solo viziati. Scommettiamo che se sostituiamo per prova il codice generato dai due "tastini magici" non succede la rivoluzione? Perchè mica parlo di scrivere il codice a mano: parlo di applicarlo con un click esattamente come si applicano gli apostrofini con un click. :-) --Alex brollo (disc.) 20:25, 22 feb 2012 (CET)[rispondi]

transclusione di una immagine fuori testo

Vorrei transcludere questa pagina (i <noinclude></noinclude> servono per non transcluderla nel capo precedente) sotto il riassunto del capo XIII di quest'altra. Ho pensato di usare il template {{Pagina}} ma non funziona. Dove ho sbagliato? --Luigi62 (disc.) 12:26, 23 feb 2012 (CET)[rispondi]

Innanzitutto nel noinclude. Tutto ciò che è compreso dentro un tag noinclude non viene transcluso in nessun modo: diventa "inesistente" per le chiamate di transclusione. Per evitare di trascludere quella pagina dove non vuoi, spezza il tag pages in due pezzi e "salta" la pagina che contiene l'immagine. --Alex brollo (disc.) 15:47, 23 feb 2012 (CET)[rispondi]
In secondo luogo, non ho capito bene il senso dei includeonly nella pagina 121. Se vuoi che l'immagine NON sia visualizzata nella pagina, ma solo nella sua transclusione, dovrebbe essere giusto. Altrimenti, se la vuoi vedere, è sbagliato. Ma pansandoci per buoni cnque secondi in più, sono certo che tu NON vuoi visualizzarla... quindi rimetto il includeonly e vado a vadere in ns0 se tutto va come deve andare. :-) --Alex brollo (disc.) 15:52, 23 feb 2012 (CET)[rispondi]
Mi sono mezzo impappinato, scontrandomi con un inatteso problema di "spezzamento pagine che devon stare unite". Ho dovuto ricorrere a un brutto artificio per venirne fuori. Ci tornerò sopra, adesso non ne esco mica. :-( --Alex brollo (disc.) 16:50, 23 feb 2012 (CET)[rispondi]
Speravo di riuscire a transcludere la sezione anche se era all'interno dei noinclude proprio perchè la sezione non li conteneva; ho pensato che il sistema prima cercasse la sezione, poi cercasse i noinclude solo al suo interno. Il problema delle immagini fuori testo finora l'ho risolto con i noinclude e ricopiando direttamente il codice dell'immagine dove volevo che fosse, vedi esempio, ma non è una soluzione elegante e non si presta correttamente alla rilettura. --Luigi62 (disc.) 23:31, 23 feb 2012 (CET)[rispondi]
No, purtroppo la valutazione del noinclude ha la precedenza. Un'altra sottile questione di precedenza impedisce alcune possibilità di combinare transclusione e template; se si tenta di aggiungere una section mediante un template, si fallisce; se si tenta di suddividere un template in pezzetti di codice mediante section, sperando di eseguire poi solo quel pezzetto di codice, si fallisce. Sono cose abbastanza astratte.... ci ho sbattuto il capino per settimane, poi ho chiesto a Jonh e la risposta è stata "You can't" :-( --Alex brollo (disc.) 23:59, 23 feb 2012 (CET)[rispondi]

Sommario indice: accorgimento che non cambia un bel nulla

Già a suo tempo ho usato l'espressione "un bel nulla" per indicare il comportamento di mediawiki quando un certo codice "non fa nulla" invece di dare un messaggio di errore (es. tentare di transcludere una section che non esiste: la risposta del sistema è appunto "un bel nulla").

Approfittando di un'opera vergine o quasi (Indice:Poesie inedite di Silvio Pellico I.djvu) ho aggiunto alle voci di Sommario indice un parametro testo=/nome della sottopagina prevista in ns0. Risultato: un bel nulla. Però... esaminate con cura i dati che adesso esistono per ogni riga, prendiamone due consecutive a caso:

* {{Indice sommario|1|Poesie inedite di Silvio Pellico I.djvu/20|Dio Amore|18|testo=/Dio Amore}}
* {{Indice sommario|1|Poesie inedite di Silvio Pellico I.djvu/22|Maria|20|testo=/Maria}}

Se ci pensate, in queste due righe (tenuto conto anche degli altri dati presenti nel codice di pagina Indice) c'è la struttura completa dell'opera in ns0:

  1. il nome base dell'opera in ns0 è nel parametro NomePagina;
  2. il nome completo della sottopagina ns0 è la concatenazione NomePagina+parametro testo della riga Indice Sommario;
  3. il parametro index del tag pages è presente in numerosi punti del codice;
  4. il parametro from= del tag pages è presente nel secondo parametro di Sommario indice;
  5. il parametro to= del tag pages si ricava approssimativamente dal secondo parametro di Sommario indice della riga successiva.

In altri termini: non manca quasi niente. Mancano solo i dati dei due parametri fromsection e tosection.... ma pensandoci un po'...

Conclusione: un campo Sommario ben compilato contiene quasi tutti i dati necessari per un'automazione assai spinta della compilazione automatica sia del template ns0, sia delle sottopagine transcluse. Il trucco è leggere al volo i dati via AJAX in fase di edit della pagina; questione di un singolo click. Nuovo tool in vista.... --Alex brollo (disc.) 23:44, 23 feb 2012 (CET)[rispondi]

Ho continuato a pensarci, vedi ri-discussione un po' più avanti. --Alex brollo (disc.) 15:45, 1 mar 2012 (CET)[rispondi]

Dilettante js allo sbaraglio

Ho un accrocchietto che (con una singola riga js da console Chrome, fatta di quattro istruzioni; aimè, richiamata manualmente dopo caricata ciascuna pagina) mi consente di attivare sulla pagina che sto editando (non wikisource) una collezione lunga a piacere di funzioni js; e quello che è simpatico, è che il file js lo edito con un text editor qualsiasi perchè sta in una cartella del mio pc. E' banale? :-( --Alex brollo (disc.) 10:24, 27 feb 2012 (CET)[rispondi]

Indici analitici

Vorrei rendere fruibile anche in ns0 questo indice analitico. È ovvio che potrei inserire un'àncora per ogni rimando ma il lavoro sarebbe lungo e noioso. Ho pensato quindi di inserire un {{§|pag#}} all'inizio di ogni pagina e di utilizzare un'altro template che utilizzi switch# per indicare in quale capitolo è transclusa la pagina. Vi sembra un approccio corretto oppure avete altri suggerimenti? --Luigi62 (disc.) 14:27, 27 feb 2012 (CET)[rispondi]

Buona idea! La prima parte si può fare molto meglio: ho appena aggiunto un id ai numeretti pagina sulla sinistra del testo. Per cui ora puntando a Le_pitture_notabili_di_Bergamo/I#pag17 si viene mandati già alla pagina 17 (i numeri sono quelli del cartaceo, coerentemente). Quanto alla seconda parte (template con switch), Alex aveva fatto qualcosa di simile per la Bibbia se ricordo bene, quindi aspettiamo un suo commento. Candalùa (disc.) 14:48, 27 feb 2012 (CET)[rispondi]

Magnifico. Giusto aspettavo questa opportunità per far lavorare un po' i server. :-)
Da qualche giorno fa in avanti, stando in qualsiasi pagina in edit, se ne può leggere qualsiasi altra - o un insieme di qualsiasi altre. Quindi: una volta che nell'indice analitico ci sono le informazioni essenziali scritte in forma "js-comprensibile", minimali (ossia: l'associazione parola/pagina) è fatta: stando nella pagina Pagina in edit, un js può leggersi tutte le pagine dell'indice analitico, estrarre tutti i rimandi a sè stessa, ottenere l'elenco della parole da ancorare, e ancorarle. Un template #switch può collegare le pagine e i capitoli.
Lasciatemi l'opera intatta e seguite i lavori; potrebbe diventare una procedura generale.
"Vedo" un template da applicare alle singole voci dell'indice analitico, al cui interno ci sia la parola chiave da usare come ancora, e il numero di pagina; qualcosa come 23 dove Via (abbreviazione di Voce Indice Analitico) è un nome generico di template, e PnB è la sigla dell'opera per il template specifico per l'opera (in questo caso Pitture notabili Bergamo), al cui interno ci sarà sia lo switch, che il codice per generare i due link in nsPagina e in ns0; "vedo" qualche trucco per facilitare l'applicazione del template al codice della pagina indice; "vedo" infine un tool che, cliccato sulla pagina bersaglio, legga le pagine dell'indice analitico e applichi le ancorette. Fra il dire e il fare, vediamo quant'è largo il mare. ;-)
Perchè non farlo via bot? Perchè un minimo di interattività, un minimo di "controllo umano" è bene che ci sia; è per questo che mi sto sempre più convertendo a js, che è uno strumento nelle mani dell'utente, e allontanando dalle procedure bot, che sono "disumane". --Alex brollo (disc.) 19:32, 27 feb 2012 (CET)[rispondi]
Mi sa che fra il dire e il fare ci son di mezzo le section.... :-(
I numeri pagina sono già inclusi un un djvu link, ottimo; parsing più facile. :-)
Be', io ci provo lo stesso, ma la sfida è impegnativa. Luigi, mi confermi che tutte le section si chiamano 1, 2...? --Alex brollo (disc.) 20:27, 27 feb 2012 (CET)[rispondi]
L'impalcatura
L'impalcatura è fatta. Le sezioni sono tante :-(. Le ancore devono ancora essere infilate nel template; successivamente devono essere ricercate e inserite nelle pagine. In nsPagina, tutti i link sono blu; in ns0, i link blu puntano già al capitolo giusto perchè puntano a pagine "transcluse intere"; i link rossi invece puntano nel vuoto, perchè si riferscono a pagine divise in sezioni (nello #switch, per esempio, non esiste una chiave 73=pagina djvu 81, ma due chiavi 73.1 e 73.2).
Il passo successivo
Adesso infilerò le ancore (la prima parola della voce dell'indice analitico) nei template, al parametro 1. Vorrei evitare di farlo a mano... sono tentato di farlo via bot ma preferisco tentare via js. Non si sa mai che venga fuori un tool riutilizzabile. --Alex brollo (disc.) 23:25, 27 feb 2012 (CET)[rispondi]
Non tutte....
Mancano le ancore delle voci secondarie (indentate di 10 spazi); problematiche perchè la prima parola non è significativa. Ci penserò domani (ma penso che una "passata" a mano sia inevitabile). 'Notte! --Alex brollo (disc.) 00:34, 28 feb 2012 (CET)[rispondi]
Ho le idee più chiare (forse dovrò rifare tutto by scratch, una o più volte, try & learn ma non importa, l'argomento merita): annoto in Progetto:Trascrizioni/Indici analitici. --Alex brollo (disc.) 09:42, 28 feb 2012 (CET)[rispondi]
Sì, tutte le sezioni sono 1, 2... L'unica particolarità è che si intersecano perché l'ultima parola del capitolo è il titolo del successivo. --Luigi62 (disc.) 18:04, 28 feb 2012 (CET)[rispondi]
Sono un po' fuso da una lotta con le dependencies (Candalua, mi capisci, vero?). Spero che non ti secchi se lascio la cosa a sedimentare per un giorno o due. --Alex brollo (disc.) 00:55, 29 feb 2012 (CET)[rispondi]

Please Candalua e Barbaforcuta: nuova versione di Indice sommario

... continuando la discussione che facevamo (ma ovviamente chiunque è interessato, partecipi!) Corre in Indice sommario/Sandbox una nuova versione del tl Indice Sommario.

Il template ha la proprietà di comportarsi come da tradizione se i parametri sono quelli tradizionali (posizionali senza nome); se invece ci sono parametri nominali, cambia comportamento e crea una voce di "elenco con puntini", raffinatamente "indentato in modo intelligente" (aumenta l'indentatura con l'aumento del livello di annidamento dei capitoli).

Vedete in: Indice:Poesie inedite di Silvio Pellico I.djvu, campo sommario, due gruppetti di voci di esempio prodotte dallo stesso template di prova; la prima con i parametri nominali; la seconda, con i parametri normali. Vedete che il secondo gruppetto è assolutamente identico a quanto prodotto dal template base (ci mancherebbe: il codice chiamato è lo stesso...:-))

La versione nuova ha in meno il background, in più invece ha:

  1. la puntinatura e l'allineamento;
  2. il titolo diventa un vero link a ns0;
  3. il link alla pagina sta invece nel numero di pagina.

Il doppio link (titolo che punta in ns0; pagina che punta sulla pagina) è una convenzione en.source.

Gli unici parametri necessari sono nome, titolo, from (pagina djvu), delta. I parametri to, fromsection, tosection sono opzionali e "semantici" (puri contenitori di dati).

Che vi pare? --Alex brollo (disc.) 12:12, 1 mar 2012 (CET)[rispondi]

Perdona Alex, non ho avuto un attimo di tempo. Dando un'occhiata veloce a me sembra un lavoro fantastico: richiamare la transclusione e la paginaPagina corrispondente permette di avere tutto sotto mano, manca solo il richiamo vocale :-). A questo punto si dovrebbe ripensare alle vecchie disposizioni: mi sembra che tempo fa avessimo parlato del fatto che noi non prevediamo la possibilità di inserire un collegamento alla transclusione in pagina Indice; sinceramente rinuncerei a questa direttiva senza problemi.--Barbaforcuta (disc.) 01:20, 2 mar 2012 (CET)[rispondi]
Buone notizie. :-)
Il sommario di Indice:Poesie inedite di Silvio Pellico I.djvu, adesso "alternativo", ha una buona struttura; la funzione in Utente:Alex brollo/Parsing.js lo richiama da qualsiasi pagina dell'opera e lo "parsa" in una lista di oggetti, ognuno dei quali ha le variabili chiamate come si chiamano i parametri, per cui, essendo s la lista risultante, s[5].nome, s[5].from, s[5].to restituiscono al volo il nome pagina ns0, il from= e il to= del sesto elemento della lista nel campo Sommario. Se nella pagina sono già state aggiunte le section, dovremmo arrivare alla granularità di section, ossia sapere in che capitolo casca un punto preciso del testo.
Questo significa (ed è là che volevo arrivare, con un ampio giro che parte da Indice analitico... ) che:
# compilato il sommario come-dico-io, ogni pagina "sa" a che capitolo appartiene anche se il capitolo ancora non esiste;
# creatoentrati in creazione nel capitolo in ns0, sono disponibili i dati per la costruzione automatica di tutto il codice IncludiIntestazione e pure del tag pages; ✔ Fatto
#si apre una nuova strada per Nota separata e tutti i casi in cui è necessario sapere, stando su una pagina, a che capitolo appartiene un'altra pagina, anche se il capitolo ancora non esiste;
# nella pagina ns0, dovrebbe essere possibile creare l'indice (l'elenco dei tl Testo) in modo automatico e perfettamente allineato con quello del campo sommario su Indice.
#....
Alex brollo (disc.) 01:48, 2 mar 2012 (CET)[rispondi]
Mi sorgeva un dubbio: ammettiamo di avere Juvenilia (escludo dalla considerazione le altre opere che fanno parte della stessa raccolta) che è composta da più libri, sei per la precisione; dovrebbe esserci, per esempio, la dicitura Libro I e magari un collegamento all'indice del libro ma nessun link a paginaPagina dato che sarebbe la stessa della prima poesia dello stesso libro. Stavolta i link li ho ricordati :-)--Barbaforcuta (disc.) 15:42, 2 mar 2012 (CET)[rispondi]
Non dovrebbero esserci problemi. Il sottotitolo "Juvenilia/Libro primo", in forma stampata, da qualche parte sta scritto. Ci sono due casi (non ricordo il caso reale ma non importa):
# il titolo "Juvenilia/Libro primo" sta su una pagina a se stante: allora la voce iIndice sommario punta a quella pagina.
# il titolo "Juvenilia/Libro primo" sta in testa alla pagina che contiene la prima poesia: allosa si seziona il titolo in una section 1, la poesia va nella section 2, e di nuovo le cose funzionano: le due voci di Indice sommario puntano a sue cose diverse (infatti sono previsti anche i parametro fromsection e tosection). --Alex brollo (disc.) 16:14, 2 mar 2012 (CET)[rispondi]
Piuttosto, sono un po' preoccupato della gestione del caso Carducci come lo sono del caso Bibbia: a far le cose bene ci sono centinaia di voci, in Bibbia si arriva forse al migliaio, visto che mediamente un capitolo copre circa una pagina. In visualizzazione si può incassettare (il sistema di estrazione dei dati se ne frega, purchè, annidata da qualche parte, ci sia una riga di codice Indice sommario regolare), ma in lettura la cosa potrebbe farsi pesantuccia: 1000 righe di almeno 100 caratteri cisacheduna fanno la bella grandezza di 100 kBy, che poi si raddoppiano perchè anche il campo Sommario viene semantizzato. Ma questo raddoppio è discutibile (che ne dici Candalua? Io lo salterei). --Alex brollo (disc.) 16:19, 2 mar 2012 (CET)[rispondi]
Tutto funzia come-dico-io per la creazione di una nuova sottopagina in ns0, ossia: con la chiamata di una singola funzione senza parametri (=un click). Vado a finire Secondo libro di Samuele, per stasera basta giocare.... :-) --Alex brollo (disc.) 22:34, 2 mar 2012 (CET)[rispondi]

Il momento di pagelist

E adesso, deve cedere pagelist; per fare gli ulteriori passi, mi servono due funzioni appoggiate su pagelist, d2p() e p2d(), che mi convertano il numero di pagina Djvu in Pagina cartacea e inverso, appoggiandosi a pagelist. Se per caso sapete che sto rediscovering the wheel, fermatemi! --Alex brollo (disc.) 14:08, 4 mar 2012 (CET)[rispondi]

Mi sembra che funzi d2p() (per ora in Utente:Alex brollo/pagelistParsing.js) e un'altra di cui avevo bisogno: r2n(), che trasforma i numeri romani in arabi; la inversa n2r() già ce l'ho in vector.js. d2p() riceve un numero di pagina djvu e il pagelist e restituisce il numero di pagina cartaceo (anche romano, se pagelist lo prevede). Adesso mi manca il p2d(), inverso di d2p(). Per oggi basta che son mezzo fuso. --Alex brollo (disc.) 17:58, 4 mar 2012 (CET)[rispondi]
Sembra sia fatta: adesso corre anche la difficile funzione inversa p2d, che data una pagina cartacea (numero arabo o romano) restituisce il numero della pagina djvu corrispondente. --Alex brollo (disc.) 10:48, 11 mar 2012 (CET)[rispondi]

Note che contengono note

In una pagina, Pagina:Rivista_italiana_di_numismatica_1890.djvu/229 , (e nella successiva) una nota (che si allunga sulla pagina successiva) contiene a sua volta delle note.

Questo tentativo <ref>testo nota primo livello<ref>nota alla nota</ref></ref> non funziona. Restituisce un:

Errore nella funzione Cite: </ref> di chiusura mancante per il marcatore <ref>

--Carlo M. (a.k.a. zi' Carlo) (disc.) 12:20, 6 mar 2012 (CET)[rispondi]

Come dicono i triestini, no se pol. Le note non possono essere annidate. E la risposta alla tua prossima domanda è ancora no: questo credo sia il secondo caso in tre o quattro anni (ne ricordo uno sui sonetti romaneschi), quindi non ci inventeremo nessuna soluzione ad hoc. Semplicemente scrivi la nota con l'asterisco e fine. Non formalizziamoci troppo. :-) Candalùa (disc.) 13:02, 6 mar 2012 (CET)[rispondi]
Numi! Bel problema: a prima vista, insolubile:

Parsing [[ ]] is not easy and requires us to look through the wiki-text
string for matching patterns. This causes some issues since the PHP library we
use crashes on large matches. This is why nested annotations and links were
disabled. In contrast, parsing {{ }} is done by MediaWiki for us, and nesting
annotations is not a (technical) problem there. [1]

--Alex brollo (disc.) 13:13, 6 mar 2012 (CET)[rispondi]

Cos'è che beve il veterinario alcoolizzato della pubblicità? Sembrava impossibile, ma ce l'abbiamo fatta... :-) --Alex brollo (disc.) 13:32, 6 mar 2012 (CET)[rispondi]

Diabolico. Quindi il parsing ragiona solo sui tag "veri" e non sui tag inseriti con {{#tag. E la mia lista delle assurdità di mediawiki si allunga... Candalùa (disc.) 15:02, 6 mar 2012 (CET)[rispondi]

la sequenza con cui viene eseguito il parsing è argomento quasi altrettanto infernale del resourceLoader. Tanto tempo fa ci ho sbattuto il capo tentando di trasferire delle section via template: impossibile. Questa volta ho tirato a indovinare, isporato dal corsivo della citazione: vuoi vedere che...? È possibile che sia un "carattere emergente" imprevisto perfino per i programmatori. Se lo è, potrebbe sparire alla prossima revisione.... ma intanto godiamocelo. --Alex brollo (disc.) 15:11, 6 mar 2012 (CET)[rispondi]

Come non dicono i triestini: chi nun risica, nun rosica e come dicono gli alunni "io speriamo che me la cavo". --Carlo M. (a.k.a. zi' Carlo) (disc.) 16:42, 6 mar 2012 (CET)[rispondi]

Pagine mancanti

Ho finalmente rintracciato le pagine mancanti in Indice:Trionfo e Danza della Morte.djvu. Ho aggiunto le pagine al DjVu, ma non l'ho ancora caricato su commons perchè non so come splittare le pagine già inserite, oppure è meglio eliminare un paio di pagine bianche cercando di contenere al minimo le modifiche? --Luigi62 (disc.) 17:01, 14 mar 2012 (CET)[rispondi]

C'è un bug che riaffiora di quando in quando, e che colpisce a tradimento quando si varia la posizione di pagine djvu: la anomala persistenza delle immagini derivate. Chiedi a Silvio: ci è impazzito. In linea di massima, sarebbe buona norma non eliminare pagine bianche originali; meglio sarebbe stato aver aggiunto eventuali pagine bianche nelle posizioni delle pagine mancanti, fin dal caricamento. Le pagine si aggiungono o tolgono da un djvu con facilità con djvm.exe della libreria Divu Libre, ma poi occorre (via bot) "spostare" i testi delle pagine riallineandoli. Una cosa delicata. Se ti va ti dò volentieri una mano: ma poi, se emerge il bug, occorre armarsi di sangue freddo e di molta pazienza e ignorare l'eventuale comparsa di immagini disallineate. --Alex brollo (disc.) 17:33, 20 mar 2012 (CET)[rispondi]

EPub e indici (analitici)

Purtroppo ho una brutta notizia, nel testo appena riletto Guida di Pompei illustrata, che nella transclusione dell'indice in ns0 utilizza la tecnica inserita da Candalua non viene esportata correttamente negli ePub. Visto che ritengo sia una di quelle cose in "più" che i nostri testi hanno, dobbiamo trovarvi una soluzione. Inseriamo un {{§|pag#}} all'inizio di pagina come avevo già proposto oppure sapete come aggirare il taglio durante l'esportazione? --Luigi62 (disc.) 10:53, 19 mar 2012 (CET)[rispondi]

Parlo a vanvera o meglio: tiro a indovinare. Il template che genera il linketto pagina è fra quelli che vengono ignorati nell'esportazione? Allora sparisce anche l'ancora generata dal template. Si potrebbe aggirare (forse) il problema facendolo invece importare, ma rendendolo invisibile con un'istruzione nel css "per esportazione epub" che mi pare di aver sentito nominare. Oppure, un altro sporco trucco (pesantino però: due template al posto di uno...) sarebbe quello di spostare in template che crea il link pagina ad altro template, escluso dall'esportazione; e sostituire il codice del template con un codice che crea un'ancora (e questo codice sarà esportato nell'epub) ma che chiama anche il template creatore di link (che nell'epub sarà escluso).

Insomma, una soluzione dev'esserci, per aggirare il problema senza editare migliaia e migliaia di pagine!

Domanda tecnica, è troppo tardi perchè io verifichi con un test: un'ancora in un elemento html style="display:none" è "vista" come ancora anche se è invisibile? --Alex brollo (disc.) 00:48, 21 mar 2012 (CET)[rispondi]

Tools news

Ho creato due nuovi meta-Tools :-)

Abilitandoli entrambi, basta aggiungere al proprio vector.js una cosa come:

  1. newButton(nome bottone, nome funzione); e si crea un nuovo bottone marcato nome bottone che cloccato chiama nome funzione; esempio, da me corre un newButton("cicc","cicceide"); per fa comparire un bottone "cicc" che chiama cicceide();
  2. newButton(nome immagine bottone, nome funzione), che invece usa l'URL completo di un immagine-pulsantino collegata come sopra; esempio gira nel mio vector newButton("//upload.wikimedia.org/wikipedia/commons/4/4f/Button_verse.png","cicceide"); che è un alias di prova dello stesso bottone.

Ovvio che è lo script stesso a "riconoscere" il nome dall'immagine, basandosi sui due slash dell'URL immagine, e regolandosi di conseguenza. I bottoni sono fissi, e compaiono ordinati in basso a destra della pagina (sono dei "battoo", i noti bottoni-tattoo)

Si potrebbe perfino creare una lunga lista di bottoni nel proprio vector, e poi abilitarli o disabilitarli semplicemente "decommentandoli" o "commentandoli" con due slash a sinistra.

Che ne dite? Io ne farò gran uso; ho sempre trovato più fastidioso creare gli agganci alle funzioni che creare le funzioni. Mi sento appagato. Fine del pauroso codice per far comparire i bottoni nella toolbar... io quelli nuovi so dove metterli, e non c'è alcun bisogno di aspettare che vengano "caricate le dipendenze". :-) --Alex brollo (disc.) 17:26, 20 mar 2012 (CET)[rispondi]

Scervelliamoci...

Uno script di poche righe legge al volo in una variabile, all'apertura in edit di una pagina Pagina, il codice wiki della pagina Pagina precedente, restituendola pure suddivisa in header, corpo, footer. Occorre spremersi le meningi per immaginare le millanta cose che si possono fare in automatico, avendo in memoria il testo della pagina precedente così suddiviso mentre si edita la successiva. A me ne vengono in mente alcune, ma so che non son tutte... --Alex brollo (disc.) 07:11, 21 mar 2012 (CET)[rispondi]

  1. Idea 1: pt (ma questo i geek che leggono attentamente il bar generale lo sanno)
  2. Idea 2: numero versi (e anche questa non è una novità)
  3. Idea 3 (questa è nuova): immaginiamo di caricare nell'header, dentro un commento html, il RigaIntestazione della pagina precedente. Nella successiva, si disporrà di 2 esemplari di rigaIntestazione: quella dentro al commento (di due pagine prima) e quella della pagina precedente. La seconda viene messa dentro un commento, la prima viene usata per costruire il rigaIntestazione corrente, aggiungendo 2 al numero pagina. Dovrebbe funzionare correttamente nel 90-95% dei casi, forse qualcosina in più. Stasera (forse prima) faccio le mie brave prove. :-) --Alex brollo (disc.) 08:04, 21 mar 2012 (CET)[rispondi]
Pensandoci meglio, forse farò le mie prove leggendo il raw di due pagine (l'ultima e la penultima) invece che di una pagina. Dubito molto che i server si mettano in sciopero per superlavoro.... per risparmiare qualche richiesta, potrei rinunciare alla lettura della pagina penultima se la pagina corrente ha già il suo RigaIntestazione. Ci provo...--Alex brollo (disc.) 15:18, 23 mar 2012 (CET)[rispondi]
Fatto... adesso ogni volta che apro in modifica una pagina, carico in memoria il raw txt di altre due pagine, l'ultima e la penultima. Il caricamento è veloce, perchè uno dei due è un istantaneo "ricaricamento" di ciò che attende in una qualche cache, locale o remota non saprei. Vediamo cosa ne ottengo (mi aspetto belle cose....) --Alex brollo (disc.) 16:03, 23 mar 2012 (CET)[rispondi]

Curiosità

Durante la rilettura ho trovato un fatto strano, selezionando questa testo tra la pagina 3 e 4 (quindi a cavallo del numerino 4) la grandezza del colore della selezione cambia. Copiando e incollando esiste in effetti un carattere non visibile transcluso da questa pagina (prima della prima parola).

Giusto per curiosità da dove viene, è dannoso? --Luigi62 (disc.) 17:03, 23 mar 2012 (CET)[rispondi]

Mi pare un Character 'ZERO WIDTH NO-BREAK SPACE' (U+FEFF). Non dovrebbe essere dannoso. Come ci sia finito, non lo immagino; ma mi pare di ricordare che era stato usato all'interno di Pt come un nonnulla (non-nulla). --Alex brollo (disc.) 17:28, 23 mar 2012 (CET)[rispondi]

Appunto, era stato usato in Pt, ma poi avevo dovuto fare marcia indietro. Non so cosa stiate vedendo (io sono cecato quindi non faccio testo), ma non dovrebbe essere quello. Candalùa (disc.) 19:28, 23 mar 2012 (CET)[rispondi]

Per vedere, non abbiamo visto niente. Ma quel niente l'ho assegnato a una stringa che sembrava vuota, ma era lunga 1; ho chiesto il valore Unicode dell'unesimo carattere della stringa vuota, e valeva U+FEFF; la cosa curiosa è che in quel punto della pagina non doveva starci un Pt. Immagino che sia stato messo un Pt per errore, e poi sia stata cancellata la parte visibile. Se avete un'altra spiegazione.... E' un interessante quiz, un po' come quello del pulsante che si rattrappisce e funziona se cliccato a destra ma non a sinistra (sempre Luigi trova queste particolarità...). --Alex brollo (disc.) 23:35, 23 mar 2012 (CET)[rispondi]
Il problema del cliccato a destra che funzione mentre a sinistra no l'ho capito: è un problema di css oppure di qualche altro codice che parte al click dell'elemento e che ne modifica il gradient ma anche la larghezza Samuele 23:01, 26 mar 2012 (CEST)[rispondi]
Il problema era css. Se le dimensioni del bottone attivato dal click vengono modificate prima che venga valutata la posizione del mouse sul bottone, capita che - se si punta a destra il mouse - al momento della valutazione risulti fuori del bottone; e quindi, che il click non attivi la funzione. Strano, ma vero. Sia come sia, correggento il css dei bottoni, e rendendo le dimensioni del bottone sempre uguali (come dev'essere) il problema si è risolto. Almeno spero.... --Alex brollo (disc.) 10:48, 19 apr 2012 (CEST)[rispondi]

Ancora sulle note

Per gli esperti di note qui c'è un interessante caso di nota troncata. --Luigi62 (disc.) 21:44, 29 mar 2012 (CEST) ✔ Fatto Candalùa (disc.) 23:37, 29 mar 2012 (CEST)[rispondi]

Uovo di Colombo o acqua calda?

... io ve lo dico lo stesso.

Voi sapete che la transclusione ricorsiva è bloccata (un template non può richiamare se stesso). Quindi è bloccata anche la trasclusione selettiva ricorsiva (una section si può richiamare da qualsiasi pagina, meno che da quella in cui è collocata la section) e di questo alle volte capita di avere voglia.

Ora, Edo senza volere (forse) mi ha impostato una transclusione selettiva ricorsiva nella pagina Wikisource:La fabbrica dei giocattoli/Elenco tools e io l'ho fatta. La section "ultimo arrivato" è definita e transclusa nella pagina stessa, semplicemente facendola "rimbalzare" su una seconda pagina: transcludo nella pagina un template in cui ho transcluso la section della pagina stessa. Chiaro no? O mi sono inutilmente complicato la vita? Può essere.... --Alex brollo (disc.) 00:58, 19 apr 2012 (CEST)[rispondi]

Effetto Pt con solo css

Ho constatato che creando due sole classi aggiuntive: class="ns0" e class="pagina", con questo iperbanale css:

.testi .pagina {display:none;}
.pagetext .ns0 {display:none;}

si ottiene un pulitissimo e efficientissimo "effetto Pt" che, fra l'altro, ha l'enorme vantaggio di contenere i dati "nascosti" nell'html di ambedue le versioni, sorgente e transclusa. Nessun template, e quindi nessun limite di templates per pagina, nessun nonclude o includeonly, nessuna "fatica" di caricamento. Il parser neppure se ne accorge. Quelli che è contenuto in uno span class="ns0" si vedrà solo in ns0, e quello che è dentro uno span class="pagina" si vedrà solo nel nsPagina. Un neo: la "proliferazione di classi" in ns0; le categorie principali dei testi sono contenute in una div class="testi" ma le opere dei progetti minori ne hanno di ogni tipo (cosa che mi crea grandissime perplessità e che forse, prima o poi, con l'unica eccezione di Diritto, occorrerà standardizzare). Un secondo neo: temo per la mia incolumità se propongo di rivoluzionare tutto... :-( --Alex brollo (disc.) 17:25, 25 apr 2012 (CEST)[rispondi]

Ipotesi sugli indici analitici

Ho concepito un'idea sugli indici analitici; chi mi aiuta a verificarne la logica, fermo restando che se esiste una buona logica e non manca alcun passaggio, la cosa è certamente realizzabile?

Immaginiamo un consultatore di un indice analitico in nsPagina. Perchè lo consulta? perchè vuole trovare le pagine che collegate a una certa voce. Vuole esaminarle una alla volta, eventualmente tutte. Trova la voce, clicca sulla prima pagina di un eventuale elenco. A questo punto, vuole essere "teletrasportato" sulla pagina di cui ha cliccato il numero. Ma non basta: vuole anche che la parola selezionata sia evidenziata per vederla a colpo d'occhio.

Non solo: di certo gli piacerebbe poter passare alla pagina successiva linkata alla stessa parola chiave senta tornate nell'indice analitico; libero però di smettere e leggere altro, seguendo qualsiasi link o facendo quel che gli pare.

Siamo d'accordo fin qui? Un click per arrivare a una pagina contenente una parola chiave; un click per raggiungere la pagina successiva collegata alla stessa parola chiave.

Veniamo alla parte codice. L'ideale sarebbe che il codice fosse molto semplice; ossia, un template elementare che "circondi" il numero pagina nell'indice analitico, senza nessun parametro oltre al numero pagina. Qualcosa come {{rif|23}} e fine; senza alcuna ricerca di dove stia nel djvu la pagina cartacea 23, e senza nemmeno preoccuparsi minimamente di quale sia il capitolo ns0 in cui la pagina djvu connessa sia stata transclusa. In molti casi, non servirebbe nemmeno spulciare i numeri pagina uno per uno, una piccola regex potrebbe fare da sè. Nei casi più favorevoli (molti) ipotizzo un solo click, in edit, su una pagina Indice analitico per far tutto automaticamente, verificando poi, ovvio.

Che ve ne pare?

Ma esiste un'alternativa ancora più comoda. Il click su un numero pagina dell'indice analitico potrebbe far aprire un box, in cui potrebbe essere visualizzato "l'intorno" testuale della parola chiave nelle pagine collegate; qualcosa come il risultato di Ricerca, con i link per raggiungere le pagine che contengono gli "intorni" testuali più promettenti.

Il brain storming è aperto. :) --Alex brollo (disc.) 19:00, 26 apr 2012 (CEST)[rispondi]

Quello che hai descritto è ambizioso, ma dovrà essere sopratutto intuitivo. Al momento sarebbe sufficiente che funzionasse nel modo tradizionale, cioè che portasse alla pagina giusta: questo indice funziona perfettamente in nsPagina, ma mostra dei problemi in ns0 (perché alcuni numeri sono rossi?). Come primo step basterebbe arrivare all'ancora #pagXX e non solo al capitolo corretto. --Luigi62 (disc.) 15:19, 7 mag 2012 (CEST)[rispondi]
Vedo che in parecchi link rossi manca, nel template Vai, il terzo parametro. E' essenziale, ma tocca metterlo a mano (fino a trovata geniale ma non semplice....), rappresenta un numero, da 1 a 3, che indica in quale delle section in cui è suddivisa una pagina è contenuta l'ancora.
Intravedo un algoritmo per farlo via bot, con questi passi:
  1. prendere una pagina indice e estrarre tutti i temlate con terzo parametro vuoto
  2. uno a uno:
    1. leggere la pagina
    2. suddividere il testo nelle section
    3. trovare in quale section c'è la chiave (autore) e magari, visto che ci siamo, infilarci un template $
    4. aggiungere il numero della section nel template
Però per farlo devo 1. essere ispirato 2. ricordarmene :-(
Intravedo inoltre un'imperfezione logica: il meccanismo punterebbe solo sulla prima menzione della chiave, se la chiave è presente in più di una section siamo fregati (le section seguenti non saranno marcate). Un limite fastidioso. Alex brollo (disc.) 00:51, 15 mag 2012 (CEST)[rispondi]
Nella pagina 66 ho inserito delle àncore, perché penso che tu intendessi il template:§ e non $. --Luigi62 (disc.) 21:37, 15 mag 2012 (CEST)[rispondi]
Hai ragionissima. :-(
Stato dell'arte
adesso il template {{Via/PnB}} genera, in ns0, un link con ancora sul numero pagina + parametro highlight=chiave, mentre in nsPagina genera un link con ancora sulla chiave. Per spiegare meglio questo codice:
{{Via/PnB|Albrizzi|100|1}}

genera questo link: 100 che ha questo codice: http://it.wikisource.org/wiki/Le_pitture_notabili_di_Bergamo/XLIX?highlight=Albrizzi#pag100. Provatelo. Ancora il parametro highlight=Albrizzi non genera nulla, ma se in nostri due superGeek si attivano, io non credo impossibile che seguendo il link in ns0 si venga "trasportati" nella zona della pagina giusta, e che la chiave sia evidenziata esattamente come viene evidenziata con il template §. --Alex brollo (disc.) 22:17, 15 mag 2012 (CEST)[rispondi]

Problema di transclusione

Cari amici,

ho un problema tecnico che se risolto potrebe semplificarmi di molto la vita.

  • Voglio semplificare l'indice di Myricae togliendo i numeri romani dal titolo delle sottopagine (avevano senso in assenza di versione proofread, ora ostacolano la creazione dei template IncludiIntestazione)
  • Lo spostamento di decine e decine di pagine non sarebbe un problema se non fosse che devo aggiornare gli indici di diverse sottopagine. Anche questo lavoro non sarebe poi immane, ma a questo punto mi sono venute le seguenti intuizioni:
    1. L'indice della pagina principale (Myricae) è completo: perché non dividerne le varie sezioni in section da richiamare nelle sottopagine delle sezioni stesse (Myricae/Dall'alba al tramonto, Myricae/Dolcezze, Myricae/Tristezze ecc.)? In tal modo modificando l'indice della pagina principale non dovrò aggiornare volta per volta tutte le sottopagine.
    2. Se nel dividere l'indice in section do loro come etichetta il nome della sottopagina che contiene la sezione etichettata, mi diventerà semplice richiamare tutte le section dell'indice con il comando {{#section:{{BASEPAGENAME}}|{{SUBPAGENAME}}}}.

Accintomi a eseguire un'operazione apparentemente semplice semplice, dopo aver applicato queste intuizioni alla prima sezione intitolata Myricae/Dall'alba al tramonto non mi funziona nulla!

Ho provato ad applicare la soluzione alla pagina Prova (con sottopagina Prova/Dall'alba al tramonto) e lì funziona a metà! Cosa sto sbagliando? - εΔω 08:57, 6 mag 2012 (CEST)[rispondi]

Tu niente. Io ho sbagliato (forse). Guarda il codice con il box show: l'area dati è marcata con un onlyinclude. Sono convinto che c'era un buon motivo per mettere quel codice ma non me ne ricordo. Il tag dice "transcludi SOLO questa parte della pagina". Soluzione: se si vuol aggirare l'ostacolo, basta marcare anche altre parti della pagina con lo stesso tag (le aree onlyinlcude si sommano fra di loro, non si escludono). L'ho fatto su Myricae, mi pare che adesso funzi. Appena mi ricorderà perchè diavolo ho messo quel tag, piuttosto che un includeonly, te lo dico. :-( --Alex brollo (disc.) 09:56, 6 mag 2012 (CEST)[rispondi]
Restano un paio di interrogativi:
  1. com'è che su Prova funziona e su Myricae no?
  2. come mai con le parole magiche non vuol saperne di funzionare in ogni caso? - εΔω 11:35, 6 mag 2012 (CEST)[rispondi]
Risolto il problema del perchè non transcludeva, ho visto che nasce un secondo: il comportamento anomalo degli indirizzi relativi. Temo che per funzionare il template testo debba contenere indirizzi assoluti. Provo a modificare da relativi a assoluti....--Alex brollo (disc.) 20:12, 6 mag 2012 (CEST)[rispondi]
Adesso la transclusione funziona correttamente, ma solo con la chiamata esplicita; non funziona invece con le magic words, nonostante che il loro output sia corretto; ipotizzo un problema di priorità nel parsing. E qui mi fermo. Noto solo con una certa soddisfazione che non sono l'unico a perdere un bel po' di tempo per cercare di risparmiarne.... :-) Chi non risica non rosica, bravo Edo. --Alex brollo (disc.) 20:35, 6 mag 2012 (CEST)[rispondi]

Le magic words dànno spesso problemi quando la sottopagina contiene un apostrofo. Provate con le altre... Candalùa (disc.) 23:50, 6 mag 2012 (CEST)[rispondi]

Bellina questa cosa; se è questo il busillo, basterebbe utilizzare sistematicamente, nei titoli, l'apostrofo tipografico (che è un carattere "insensato" senza problemi particolari) al posto di quelli tipografico. Ci sono altri sistemi, Candalua, per raggirare il problema? Hai un link a qualche discussione che ne tratta? Si può ipotizzare un "rimbalzo di redirect"? Certo che se l'ID pagina fosse utizzabile opzionalmente al posto del titolo, quanti problemi si risolverebbero.... --Alex brollo (disc.) 09:06, 7 mag 2012 (CEST)[rispondi]
YES YES :-)
In Myricae/Dall’alba al tramonto il trucco di Edo funziona. Attenzione Edo però, si affaccia un altro problema temo, la cosa funzia liscia sulle sottopagine a due soli livelli, se sono tre o più ti tocca ripassare #titleparts, temo. --Alex brollo (disc.) 09:23, 7 mag 2012 (CEST)[rispondi]
«basterebbe utilizzare sistematicamente, nei titoli, l'apostrofo tipografico (che è un carattere "insensato" senza problemi particolari) al posto di quelli tipografico»
(Alex poco sopra)
Non ho capito :D o forse intendevi che Dall’alba è migliore da usare rispetto a Dall'alba, giusto?
In ogni caso da questa esperienza traggo come conclusione che l'utilizzo di codici esoterici (inclúsivi gli accenti fuori dalle tastiere), l'obbligo di indirizzi assoluti e la presenza di limitazioni tecniche non documentate scoraggiano notevolmente da un uso maggiore di questa soluzione. Per Myricae si è resa necessaria, ma spero che rimanga un caso isolato. - εΔω 19:57, 7 mag 2012 (CEST)[rispondi]
Il problemi dei titoli a più di due livelli è che BASEPAGENAME e SUBPAGENAME restituiscono rispettivamente il primo tutti i livelli titolo meno l'ultimo a destra, il secondo solo il titolo più a destra. In altri termini, il primo parametro della formula magica {{#section:{{BASEPAGENAME}}|{{SUBPAGENAME}}}} non punterebbe alla pagina giusta (la pagina principale) ma a una sottopagina (quella di secondo livello). Invece, con #titleparts è possibile estrarre esattamente il nome della pagina principale; l'espressione dovrebbe essere {{#section:{{#titleparts:{{BASEPAGENAME}}|1|1}}|{{SUBPAGENAME}}}} se non erro. Alex brollo (disc.) 00:25, 15 mag 2012 (CEST)[rispondi]

Questito ai superGeek

E' possibile fin d'ora aggiungere a un link un parametro che "passi" una stringa da evidenziare nel testo? Se non è possibile, ripiegherei su un parametro ?highlight=stringa appiccicato all'URL. da gestire come il parametro verso=, e chi maneggia jQuery non dovrebbe aver problemi a "passare" tutti i testi compresi dalla div content, aggiungendo intorno alle stringhe uno span evidenziatore.

Questo sarebbe un grosso passo in avanti per i link tipo indici analitici, ed eviterebbe di dover appiccicare il template § alle parole da evidenziare. O sbaglio? --Alex brollo (disc.) 12:13, 15 mag 2012 (CEST)[rispondi]

Se uno a caso fra i due superGeek volesse fare delle prove, {{Via/PnB}} genera link con parametro &highlight=chiave. :-) --Alex brollo (disc.) 15:31, 15 mag 2012 (CEST)[rispondi]
In attesa di una soluzione canonica io procedo "alla alex", ossia in modo grossolanamente creativo. Ho buone notizie: le due funzioni codifica() e decodifica() funziano alla grande anche sul .html() di qualsiasi elemento jQuery, compreso $("#mw-content-text") che è il contenitore del testo delle pagine ns0. Posso quindi con estrema facilità "beccare" tutte le stringhe stringa dentro il testo in un colpo solo, e circondarle con <span style="background-color:#DEF">...</span> e quindi evidenziare in un lampo, nel solo riquadro di contenuto, tutte le evenienze di stringa. Costruisco un giocattolo provvisorio che permette di inserire stringa in un prompt, dopodichè aggiungerci qualche riga che legge l'URL alla ricerca del contenuto di un ev. parametro highlight=, e ancora qualche riga che lo fa automaticamente al caricamento della pagina, dovrebbe essere facile. Nome del giocattolo: cerca() (visualizzato in view). --Alex brollo (disc.) 08:33, 16 mag 2012 (CEST)[rispondi]
Funzia. :-) --Alex brollo (disc.) 09:03, 16 mag 2012 (CEST)[rispondi]
L'ultimo giocattolo creato è add_spaces()

Lavoro da bot?

È possibile avere uno strumento da far correre occasionalmente, oppure schedulato, che estragga il parametro del Template:AutoreIgnoto associato alla pagina corrispondente? Ora le pagine sono raccolte nella Categoria:Pagine con autore indefinito ma per vedere qual è l'autore ignoto debbo aprire pagina per pagina. L'ideale sarebbe qualcosa del genere:

Pagina:Annali overo Croniche di Trento.djvu/240|Carneade
Pagina:Commemorazione di Paolo Ferrari.djvu/25|Malaspina
[...]

Le pagine potrebbero contenere più di un autore ignoto, quindi sarebbero necessarie più una riga per pagina. La cosa è fattibile? --Luigi62 (disc.) 11:27, 25 mag 2012 (CEST)[rispondi]

Mi si ingarbugliano sempre le idee su questa cosa: come categorizzare il contenuto di una pagina, e non la pagina che contiene il contenuto? ogni volta ci devo pensare... ma la soluzione c'è. basta dare alla categoria il nome del contenuto, e categorizzare tutte queste speciali categorie in una categoria contenitore. Immagina una Categoria:Carneade (autore ignoto) sottocategoria di Categoria:Pagine con autore indefinito: aprendo quest'ultima, hai tutti i nomi degli autori ignoti come nomi di singole categorie e aprendo ognuna hai l'elenco delle pagine che li contengono.... :-) Basta truccare il codice di Template:AutoreIgnoto e, se l'idea vi piace, è fatta in un lampo senza modificare il codice di alcuna pagina. --Alex brollo (disc.) 12:53, 25 mag 2012 (CEST)[rispondi]
L'idea alla base non è male, ma non trovo che sia questo il campo di applicazione. La Categoria:Pagine con autore indefinito è sotto-categoria di Categoria:Lavoro sporco e lo scopo sarebbe quello di ridurla, non ampliarla. Sarebbe comunque necessario creare (e cancellare se venissero svuotate) le varie sotto-categorie e sarebbe comunque un lavoro da bot. Un bel output come quello prospettato sarebbe utilizzabile anche in fogli elettronici, ma comunque una cosa non esclude l'altra. --Luigi62 (disc.) 13:13, 25 mag 2012 (CEST)[rispondi]
C'è un'altra via: far leggere via AJAX i "puntano qui" del template AutoreIgnoto, produrre una lista delle pagine, leggerne una a una il codice ed estrarre tutti i template AutoreIgnoto delle singole pagine. Ci metterà un po', non ho idea se i server "brontolano" a ricevere un bel po' di richieste AJAX consecutive, ma la cosa se funzia si risolve con un singolo "giocattolo" e un singolo click; ovviamente da una pagina in modifica, in modo che l'output finale sia scritto e resti permanente. --Alex brollo (disc.) 15:27, 25 mag 2012 (CEST)[rispondi]
✔ Fatto. Vai su una qualsiasi pagina (pagina delle prove va benissimo, o una tua sandbox) in modifica e pigia il tuo nuovo bottone autIgnoto. Non pubblicizzo il giocattolo perchè per spiegare a tutti cosa fa mi toccherebbe prendere un giorno di ferie. Se vuoi farlo tu.... la pagina doc da riempire sarebbe Wikisource:La fabbrica dei giocattoli/autoreIgnoto(). --Alex brollo (disc.) 23:21, 25 mag 2012 (CEST)[rispondi]
PS: la velocità di risposta non deve illuderti: è solo effetto del fatto che i risultati delle query sono già memorizzati in qualche cache. La prima risposta per arrivare ci ha messo un cinque-dieci secondi buoni. :-( --Alex brollo (disc.) 23:23, 25 mag 2012 (CEST)[rispondi]
Dissodato questo campo, che è interessante in generale (la funzione può essere generalizzata per analoghe ricerche riguardanti altri template, non necessariamente generanti categorie), la metto in lista fra le idee sui lavori da bot a richiesta.--Alex brollo (disc.) 07:28, 26 mag 2012 (CEST)[rispondi]

Ancora sulle tavole fuori testo

Sono sempre alla ricerca di un metodo per inserire le tavole fuori testo in modo che siano al posto giusto ed il testo vi scorra intorno, pur mantenendo la correzione del testo nella pagina corretta. Far scorrere il testo intorno ad una tavola è possibile inserendola in una tabella (qui e pagine seguenti un esempio) ma non è facilmente intuibile e spesso la tavola non è posta al posto giusto. Il miglior risultato grafico è inserirla dopo un capoverso, ma si pone il problema di tenere insieme il testo nello stesso paragrafo saltando una pagina. Il template {{pagina}} va bene ma genera in ns0 un numero di pagina ambiguo e indipendente dal delta (vedi qui). Ho pensato ad un template come "pagina" ma che non generi il numero laterale, ma ... è troppo incomprensibile per le mie capacità. Avevo pensato di chiamarlo "Unisci paragrafo" o qualcosa del genere. Qualcuno mi aiuta? E visto che nell'intenzione dovrebbe servire solo in ns0 potrebbe addirittura essere invisibile in nspagina (così evito l'uso del famigerato satura-server Pt). --Luigi62 (disc.) 16:25, 31 mag 2012 (CEST)[rispondi]

E' un problema che mi ha devastato; è evidente in quelle opere dove non ci sono che rarissimi fine paragrafi (sono così molte opere antiche). Mi piacerebbe risolvere il problema una volta per tutte. Hai una pagina di esempio da pasticciare? Oppure, possiamo costruirne una sperimentale? --Alex brollo (disc.) 22:39, 31 mag 2012 (CEST)[rispondi]
Io ho fatto delle prove qui, infatti l'immagine è ancora transclusa doppia. --Luigi62 (disc.) 23:11, 31 mag 2012 (CEST)[rispondi]
L'esempio mi ha chiarito alcuni aspetti della questione (mica avevo capito la questione del "fuori testo").
Tanto per cominciare, direi che sistematicamente le pagine fuori testo potrebbero essere leggermente spostate rispetto alla posizione originale, e certamente ficcate sempre dopo un capoverso risolvendo alla radice il problema dell'interruzione del paragrafo. In secondo luogo, per evitare il problema della comparsa del numerello-link di pagina, si può usare la "transclusione selettiva liscia" con la sintassi {{#section:......}}. In terzo luogo, non mi pare che Pt sia particolarmente server-expensive, le funzioni veramente expensive sono quelle che costringono il server a leggere altre pagine (in particolare #ifexists e anche i magheggi con transclusione selettiva di pagine-dati: pazienza).
Mi pare che il problema sia in sostanza: come accodare due tag pages distinti, in modo che un eventuale paragrafo che inizia in uno e finisce nell'altro non si spezzi? mesi fa era facilissimo: bastava mettere i due pages di seguito nella stessa riga. Poi qualcosa è cambiato, e ci sono impazzito: ma questo è il punto su cui concentrare l'attenzione, e se proprio non c'è modo, occorre aprire un bug e chiedere che la vecchia situazione sia ripristinata. Proporrei di creare, da qualche parte, un "modellino" del bug su cui fare prove e prove. Verifico se qui si presta come caso esemplare; provo a accodare due pages in una sandbox e non avrò pace, finchè l'interruzione di riga non sparisce. --Alex brollo (disc.) 09:38, 1 giu 2012 (CEST)[rispondi]
Giusto per essere chiari, una tavola fuori testo è un'immagine che occupa un'intera pagina, spesso ha il retro bianco, talvolta non fa parte della numerazione, ha spesso una didascalia e un riferimento alla pagina del libro a cui si riferisce. Il termine le distingue dalle immagini nel testo. Visto che sono sparse in maniera più o meno regolare in un testo l'idea è di portarle là dove si vorrebbe averle.
Scusa, ma non so che cosa sia {{#section:......}}, puoi indicarmi un esempio? Per Pt in effetti non volevo dire che occupa molto i server, ma che usato in gran quantità (inutilmente) è solo lavoro aggiuntivo. Ne avevamo già parlato in occasione degli indici analitici (lì sì che sono tanti). --Luigi62 (disc.) 10:38, 1 giu 2012 (CEST)[rispondi]
E' solo la sintassi "base" della transclusione selettiva; il template {{Pagina}} incorpora il meccanismo e ci aggiunge il linketto a sinistra. Quindi, per evitare il linketto, basta usare la sintassi base.
Ma se si stratta di transcludere un'intera pagina, come nel caso delle figure fuori testo, non serve nemmeno scomodare #section; si transclude direttamente con la sintassi normale, per cui {{Pagina:Avventure di Robinson Crusoe.djvu/42}} transclude l'immagine senza linketto e fine (prova il codice). --Alex brollo (disc.) 11:07, 1 giu 2012 (CEST)[rispondi]

Bug e sua toppa

Esiste un bug (ma non chiedetemi di segnalarlo in bugzilla: ODIO bugzilla). Il bug consiste in questo: il tag pages NON è identico nel codice html risultante a una serie di template {{Pagina}} come dovrebbe; una volta lo era ma qualcuno ha aggiunto una cosetta: una div che circonda il contenuto. Al contrario, una lista di tag Pagina genera una serie di paragrafi non contenuti in una div, con un meccanismo per cui i paragrafi di pagine consecutive si fondono; due tag pages consecutivi invece non si fondono.

La soluzione di Robinsn Crusoe è la seguente:

  1. non usare il tag pages ma una sequenza di {{Pagina}}, che "salti" le pagine 41 e 42;
  2. nella pagina 43, inserire, dentro includeonly, la transclusione "liscia" della figura di pag 42 con la seguente sintassi:
lancio nel mare anche voi.»<includeonly>


{{#section:Pagina:Avventure di Robinson Crusoe.djvu/42|1}}

</includeonly>

Il fanciullo mi

Le righe bianche e il loro rapporto con i tag noinclude servono a creare spaziature e indentature corrette in transclusione e in visualizzazione della pag. 43. In transclusione la pagina 43 si "tira dietro" la transclusione della tavola fuori testo.

Quando e se verrà eliminato "il bug della div inutile di pages", allora basterà accodare due tag pages (da pag 34 a pag 40; sola pagina 43) e l'effetto sarà identico; prima che il bug sia risolto, non c'è modo; la div attorno a pages è "nuda", senza attributi, e non riesco a immaginare nemmeno uno script js che la identifichi e la cancelli. --Alex brollo (disc.) 23:46, 1 giu 2012 (CEST)[rispondi]

Si aggira un problema e se ne crea un altro: i numeri di pagina non sono quelli del testo ma quelli del Djvu. Lo considero un bug da risolvere e smetto di cercare "trucchi" per aggirare l'ostacolo. --Luigi62 (disc.) 17:00, 4 giu 2012 (CEST)[rispondi]
Non capisco... quali numeri di pagina? Quelli dentro i tag/i template? Quelli visualizzati in ns0 come link? :-( --Alex brollo (disc.) 17:45, 4 giu 2012 (CEST)[rispondi]
Si proprio quelli piccoli sulla sinistra, e la relativa àncora associata. --Luigi62 (disc.) 17:51, 4 giu 2012 (CEST)[rispondi]

Selezione js di un elemento di una lista creata dinamicamente

Ho dato un'occhiata a jQuery UI SELECT, demoralizzandomi. Il problema che ho è semplicissimo e vorrei risolverlo con uno script semplicissimo; si tratta di presentare all'utente che edita una pagina un box contenente una lista di elementi creati in base al contesto, e permettergli di acchiappare un valore (e chiudere il box) con un singolo click su uno degli elementi. Il caso mi ha fatto venire in mente questa cosa è la selezione di un autore da una lista di omonimi per sigla nella gestione di AutoreCitato (es: Plinio).

Il modo più grezzo di risolvere la cosa è un semplice prompt con items numerati, che inviti a pigiare un numero + enter. Non è male, ma chi usa il prompt fa la figura dell'uomo delle caverne. L'algoritmo che potrei usare è:

  1. definire una singola variabile globale itemSelezionato
  2. preparare la lista
  3. trasformarla in una lista html in cui ogni elemento abbia un attributo onclick che chiama una identica funzione selezione() a cui si passi, come parametro, contenuto dell'item
  4. montare il tutto in un box fisso sullo schermo, modale
  5. questa funzione farebbe due cose:
    1. chiuderebbe il box
    2. aggiornerebbe il contenuto della variabile globale itemSelezionato

Due funzioni, in tutto una decina-quindicina di righe direi. Vale la pena che ci provo? --Alex brollo (disc.) 23:02, 1 giu 2012 (CEST)[rispondi]

Arricchire l'output di dynamicpagelist

Ho dato un'occhiata all'html prodotto da dynamicpagelist per vedere se la lista risultante può essere agganciata da jQuery. Risultato negativo: i tag html sono elementi lista nudi, senza classe nè attributi che li identifichino. Proporrei annidare sistematicamente le chiamate a DPL in una div class="dpl", in modo che un banalissimo $(".dpl li") ripeschi tutti gli elementi.

Fatto ciò, e tutt'altro che difficile creare un js che scorra la lista e arricchisca ogni elemento di quanti dati si vuole, recuperati leggendo via AJAX il wikitesto, esattamente come un tempo gli script di IPork aggiungevano il simbolino SAL a Testo. Che ne dite, geek maggiori? --Alex brollo (disc.) 10:37, 4 giu 2012 (CEST)[rispondi]

Transclusione inter_media

La discussione sulle lapidi roveretane mi ha fatto sorgere una domanda: è possibile transcludere una sezione di un testo tra un progetto ed un'altro? Ad esempio è possibile inserire l'incipit di un libro in wikiquote "includendolo" direttamente da source? --Luigi62 (disc.) 17:05, 4 giu 2012 (CEST)[rispondi]

No - tranne casi particolari; l'unico esempio che conosco di vera transclusione interprogetto è quello fra diverse wikisource via Iwpage etc; mi pare di aver capito che secondo Candalua dentro il codice che permette Iwpage c'è il trucco per qualsiasi transclusione interprogetto, ma se c'è io non l'ho capito. :-( --Alex brollo (disc.) 17:49, 4 giu 2012 (CEST)[rispondi]
La transclusione interprogetto è un'araba fenice, nelle liste c'è spesso l'annuncio "Ci siamo quasi" e poi la cosa termina. --Alex brollo (disc.) 17:49, 4 giu 2012 (CEST)[rispondi]

Novità in transclusione ....

  1. il nostri template Pagina è molto disallineato con il template canonico en:Template:Page
  2. la sintassi del tag pages è leggermente cambiata. :-(

Ho provato a caricare il template come template:Page ma non funzia qui; subodoro che lavori in coppia con qualche script js ma sono in difficoltà a raccapezzarmi sull'argomento dentro en:ws. Il template Page accetta un parametro num= dove mettere il numero di pagina "cartacea" risolvendo il problema segnalato da Luigi62. --Alex brollo (disc.) 13:44, 5 giu 2012 (CEST)[rispondi]

Due funzioni js per le pagine indice (per ci)

Nella mia pagina [Utente:Alex brollo/AJAX, API, JSON] trovate due nuove funzioni js per le pagine Indice.

  • la prima, obIndex(nome pagina indice), restituisce un oggetto a due livelli; al primo si accede con la chiave n. pagina, il secondo è un oggetto associato alla pagina che contiene gli attributi title, quality e label. Se la pagina è rossa, quality vale "new".
  • la seconda, passatogli l'oggetto obIndex, restituisce uno oggetto che contiene il conteggio delle pagine delle varie quality: 0, 1, 2, 3 , 4 e new.

Mi serviva, ma forse serve anche a voi. --Alex brollo (disc.) 12:04, 29 lug 2012 (CEST)[rispondi]

Siccome dalla mia postaziomne pirata ti vedo qui solingo e derelitto, mi/ti pongo un quesitto (lic. poet.). Dal basso della mia ingoranza chiedo: è possibile che questo ultimo coso che conta possa portare a compimeneto quella pagina-contatore di cui parlammo orsono un mese fa? (non farmi cercare non ho i link personali, qui). Pagina che permetterebbe di automatizzare almeno parte dei "testi da portare a termine". T'aricordi? Sarebbe bellissimo. Si scoprirebbe che a un pezzo dei 'miei' mancano tre pagine per arrivare al 100%. Wow! F,to il tuo persecutore preferito... :P 193.138.160.115 12:27, 29 lug 2012 (CEST)[rispondi]
Si e no. E' un attrezzo che risolve il problema (e ne risolve altri più exotici) per un indice, con buon dettaglio; l'"oggetto" non solo permette di dire quante pagine di un Indice sono SAL XXX%, ma permette anche di fornirne l'elenco sia in termini di pagina djvu che in termini di pagina cartacea e permette inoltre, pagina per pagina, di rispondere sempre a questa domanda: "Che pagina cartacea contiene la pagina djvu XXX?" e molto spesso quest'altra: "In che pagina djvu è contenuta la pagina cartacea XXX?"?); non è detto che sia la strada migliore per risolvere il problema per una grossa massa di pagine indice; per quello occorrerebbe insistere sulla strada alternativa su cui alcuni passi son stati fatti. --Alex brollo (disc.) 08:25, 30 lug 2012 (CEST)[rispondi]

Pagina non completamente visualizzata in forma testuale

Salve. Sto rileggendo il Saggio di Rime devote e morali della M. Santini
Non capisco perché di questa pagina http://it.wikisource.org/w/index.php?title=Pagina:Saggio_di_rime.djvu/20 non venga visualizzata la parte superiore quando la richiamo dalla versione testuale, ovvero da qui: http://it.wikisource.org/wiki/Saggio_di_rime_devote_e_morali/Signor%2C_qual_ferrea_scorza%2C_o_marmo_ha_tolto#pagename20 Eppure è sempre la pagina XIX --Pic57 (disc.) 17:38, 30 lug 2012 (CEST)[rispondi]

Scusate, ho risolto con un section begin="1" section end="1" - Pare a posto, ma forse è meglio che qualcuno controlli
--Pic57 (disc.) 18:01, 30 lug 2012 (CEST)[rispondi]

Credo fosse stato fatto appositamente per evitarne la tranclusione; in caso contrario basta togliere le section.--Barbaforcuta (disc.) 19:15, 30 lug 2012 (CEST)[rispondi]

Problemino con il template Testo

Nelle opere di "Autori vari" (vedi Rivista_di_Cavalleria_-_Volume_IX il template testo vistalizza titolo dell'articolo/sezione/capitolo, SAL e basta. Sarebbe comodo che visualizzasse anche l'autore quando specificato con il parametro opzionale autore di IncludiIntestazione. Proverò a ottenere l'effetto; se non ci riesco o me ne dimentico, un bell'eservizio per chi ama immergersi nei template complessi. La frase da trasformare in codice template è: "se testo visualizza una sottopagina, e se l'autore vale Autori vari, allora visualizza l'autore del testo nella sottopagina, quando è indicato". --193.43.176.29 08:42, 31 lug 2012 (CEST)[rispondi]