Apri il menu principale

Lasciate ogni speranza voi ch'entrate


Qui chiunque abbia idee o stia sviluppando qualche "ordegno per la rilettura", può lasciare un messaggio senza formalità, riguardante proposte, idee in incubazione, idee già convertite in script di prova.

Premi qui per aggiungere una sezione

Note sulle noteModifica

Novità: è stata ampliata la sintassi dell'estensione, risolvendo in parte il problema delle note spezzate su più pagine. Vedi qui per la sintassi generali. In particolare, vedi la sintassi per "separare le sezioni dal testo": qui e tenete conto che una nuova sintassi, <ref follow="nome">...</ref>, aggiungerà, dopo transclusione, il contenuto alla nota marcata con <ref name="nome">...</ref>. La cosa va approfondita.

Tuttavia, mi punge vaghezza.... se nella seconda parte della nota spezzata, ci mettessimo un template finto... gisto che generi qualcosa che un astuto js, in ns0, acchiappi e manipoli.... mi sembra che si possa fare. :-)

Un'idea quasi prontaModifica

Quando trascrivete un testo con note, proveniente da OCR, trovate le note a piè di pagina nella loro posizione: a piè di pagina. :-)

Posizione molto comoda per trovarle, conforntarle con la pagina a fronte, correggerle. Poi, fate questo:

  1. applicate a ciascuna il tag ref;
  2. spostate la nota con i tag ref nel testo, nel punto del richiamo.

Il risultato è che il testo principale si mescola con il testo delle note rendendo fastidiosissima la rilettura.

  Il prossimo "ordegno", con un click, rimetterà le note al loro posto, ordinate, a fine pagina lasciando un "marcatore" nel punto dove la nota va inserita. Un secondo click sulla stessa funzione rimetterà le cose a posto, prima del salvataggio. Questo agevolerà moltissimo il rilettore, ma il primo lettore dovrà fare una cosa (semplice): dovrà insierire il "marcatore" nel punto giusto del testo. Poi potrà identificare le note a fine pagina, applicare tutti i ref sul posto, e infine attivare la funzione.

Il nome della funzione sarà "Spostamento note" e il marcatore è, provvisoriamente, nota.

La funzione in prova è questa:

function toggleNote() {
    var editbox = document.getElementsByName('wpTextbox1')[0];
    if (editbox.value.indexOf("<sup>nota</sup>")==-1) {            
        lista=produciLista(editbox.value,"<ref","</ref>",1);  
        for (i=0;i<lista.length;i+=1) {
            editbox.value=editbox.value.replace(lista[i],"<sup>nota</sup>");
            editbox.value=editbox.value+"\n"+lista[i]; 
        }
    }
    else {                                                   
        lista=produciLista(editbox.value,"<ref","</ref>",1); 
        for (i=0;i<lista.length;i+=1) {
            editbox.value=editbox.value.replace("<sup>nota</sup>",lista[i]) 
            .replace("\n"+lista[i],"");  
        }
    }
}

La collaudo dal mio vector.js. --Alex brollo (disc.) 15:39, 19 mar 2011 (CET)

Dopo un minimo debugging, funzia. Commenti? Proposte? La monto ? :-)--Alex brollo (disc.) 16:02, 19 mar 2011 (CET)
Collaudata sul terribile Indice:Il Catilinario ed il Giugurtino.djvu, prototipo delle opere pesantemente annotate come molti testi antichi. Ricevuta la benedizione di Edo, la monto quanto prima fra i gadget "pubblici". Alex brollo (disc.) 09:06, 21 mar 2011 (CET)

Il problema dell'importazione delle noteModifica

Importando da PDF, ma non solo, le annotazioni risultano come un numero riportato nel testo che rimanda a una o più righe, che iniziano con lo stesso numero, a fondo pagina. Per trasformare questa notazione in regolari note wiki, occorre, per ogni nota:

  1. applicare il tag reg al testo della nota a fine pagina;
  2. spostare il tutto nel testo, in corrispondenza del numero nota.

E' pensabile un tool che lo faccia automaticamente? Pensabile è pensabile, ma è molto complesso e delicato; occorrono rigorose verifiche di completezza e di corrispondenza e gestione di tutti i possibili errori umani e dell'eventuale OCR. Verosimilmente, per sicurezza, i numeri di riferimento devono essere conservati fino a completamento della procedura, e cancellati solo dopo che si sia accertato che tutto è a posto.

Mumble mumble.

VirgoletteModifica

Le convenzioni sulle "virgolette" nei testi stampati sono quantomai complesse e variabili, lingua per lingua e nel corso del tempo. In toolbox ci sono pronte varie alternative: « », ‘ ’,“”, “„, 〈〉 ; tuttavia apporle a mano, sostituendo le onnipresenti doppie virgolette rette " ", è una delle cose più noiose che si possano immaginare.

Anche le virgolette fanno parte dei caratteri "insidiosi", in quanto possono essere parte della sintassi di tag, di template, di link e in quel caso vanno conservati attentamente, pena malfunzionaenti e "rottura di link"; tuttavia, è pronto l'algoritmo degli apostrofi, che nasconde tutte le parti della pagina che vanno lasciate intatte.

Il problema delle virgolette è che non sono intercambiabili: devono aprirsi e chiudersi nel modo giusto, e non è detto che la prima della pagina sia aperta. Comunque, a meno di errori di inserimento, una volta stabilito il verso della prima, tutte le altre vengono di conseguenza, alternandosi regolarmente. L'idea è quella di una funzione che:

  1. esamini datiPagine per vedere se è previsto un tipo di virgolette particolari (altrimenti, “ „ di default);
  2. mascheri le parti del testo da non modificare;
  3. esamini il testo per la presenza di doppie virgolette rette, e in questo caso le sostituisca tutte;
  4. se non ci sono virgolette rette, allora il click assume il significato "inverti tutte le virgolette", sostituendo le aperte con le chiuse e viceversa.

La routine ha la stessa struttura di apostrofi():

function virgolette() {
  if (editbox==undefined) {var editbox = document.getElementsByName('wpTextbox1')[0];}
  l=produciLista(editbox.value,"<math","</math>",1)
    .concat(produciLista(editbox.value,"{{{","}}}",1,"{{{"))
    .concat(produciLista(editbox.value,"{{","}}",1,"{{"))
    .concat(produciLista(editbox.value,"[[","]]",1,"[["))
    .concat(produciLista(editbox.value,"[","]",1,"["))
    .concat(produciLista(editbox.value,"http:"," ",1));
/* 
sostituisco tutti gli elementi della lista con un segnaposto  
*/
for (i=0; i<l.length; i+=1) {editbox.value=editbox.value.replace(l[i],"###sa###");}
/* 
qui routine vitgolette */
// virgolette rette - virgolette tipografiche
// qui routine 
/* 
Fatta la sostituzione rimetto le cose aposto
*/
for (i=0; i<l.length; i+=1) {editbox.value=editbox.value.replace("###sa###",l[i]);}
}

Vediamo la routine. Ci sono due casi:

  1. nella pagina ci sono virgolette rette. Allora si procede con la conversione, nell'ipotesi che la prima virgoletta sia aperta (caso estremamente più frequente dell'altro):
editbox.value=editbox.value.replace(/[\"“„]/g,'"');  // trasformo tutte le virgolette in rette
apri=true;
while (editbox.value.indexOf('\"')!=-1) {
      if (apri) {editbox.value=editbox.value.replace('\"','“'); apri=false;} 
      else {editbox.value=editbox.value.replace('\"','„'); apri=true;}
}
  1. nella pagina NON ci sono virgolette rette. Allora le virgolette presenti vanno invertite; bisogna considerare il verso della prima virgoletta della pagina:
posAperta=editbox.value.indexOf("“"); 
if (posAperta==-1) {posAperta=10000;}
posChiusa=editbox.value.indexOf("„"); 
if (posChiusa==-1) {posAperta=10000;}
if (posAperta<posChiusa) {apri=false;} else {apri=true;}
editbox.value=editbox.value.replace(/[\"“„]/g,'"');
while (editbox.value.indexOf('\"')!=-1) {
      if (apri) {editbox.value=editbox.value.replace('\"','“'); apri=false;} 
      else {editbox.value=editbox.value.replace('\"','„'); apri=true;}
}

Verifichiamo e debugghiamo...

Funzia; ma lascio digerire l'ordegno spostamento note prima di presentare questo. :-) Alex brollo (disc.) 09:10, 21 mar 2011 (CET)

Visualizzazione SAL pagineModifica

Chi ha almeno un anno di esperienza di source ricorda che a un certo punto, come effetto della "semantizzazione", è stato risolto il problema di rappresentare, nelle pagine ns0 proofread (ossia, il cui testo è ottenuto da pagine Pagina), l'icona che rappresenta il livello SAL della pagina, collegato al link alla pagina. Un vecchio problema irrisolto era stato risolto ma... con una soluzione inefficente, bollata infatti da ThomasV come "estremamente pesante". E lo è. Da questi giorni, funziona (per il solo testo [[le confessioni di un ottuagenario, e solo attivando gli script che per ora corrono solo nella pagina Utente:Alex brollo/vector.js) un sistema del tutto diverso, che non richiede nè transclusione, nè interrogazione ajax al server: tutta gestita via javascript locale, il server non ha modo di "accorgersi" della cosa. Il sistema si basa sull'aggiunta e aggiornamento automatico di un breve codice invisibile all'interno del testo della pagina Pagina, via js, che "teletrasporta" in ns0 i dati necessari usati da un secondo script js per far apparire le icone in ns0. Visto che c'ero, fra i dati "teletrasportati" ho aggiunto anche l'utente che ha eseguito l'ultima modifica; passando il mouse sul simbolo SAL di ciascuna pagina compare la scritta "Ultima modifica di nome utente". Purtroppo non riesco a "scattare uno screenshot" per farvelo vedere.

In modifica del testo pagina, quello che si vede (e che occorre lasciare immodificato) è un codice tipo:

<span class="SAL">121,3,alex brollo</span>

che viene aggiornato automaticamente al momento del salvataggio della pagina e che "trasporta" il dato n. pagina djvu (pleonastico, ma comodo), il pagequality level (da 0 a 4) e l'utente che ha fatto l'ultima modifica. --Alex brollo (disc.) 09:16, 22 mar 2011 (CET)

Note ImagemapModifica

discussionelink alla pagina autoreLink alla versione testualeLink alla categoria dei testi pubblicati nell'annoLink al file djvu (immagini delle pagine) su Commonslink alla prima pagina del file djvulina a pagina 2link alla pagina 3link alla pagina 4link alla pagina 5link a pagina 6link alla pagina 7link alla pagina 8 
Questa immagine è mappata; potete esplorarla con il mouse e seguire i link

Link a Image map editor: http://toolserver.org/~dapete/ImageMapEdit/ImageMapEdit.html (tool inattivo, link da aggiornare)

In corso sperimentazione di tool "nostrano" attivando in Preferenze->Accessori il gadget sperimentale Imagemap --Alex (disc.) 14:20, 18 lug 2014 (CEST)