Wikisource:Domande tecniche

Da Wikisource.
Vai alla navigazione Vai alla ricerca
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. Le comunicazioni Tech News verranno ricevute su Wikisource:Domande tecniche/Tech News.

Problema greco[modifica]

@OrbiliusMagister (e altri grecisti): Confermo, in molti testi greci di Gibbon ci sono dei diacritici abusivi: non so come ci siano arrivati, ma si tratta tecnicamente di "caratteri unicode ricombinanti non appartenenti al range dei caratteri greci". Oltre che sbagliati sono fastidiosi da cancellare da tastiera, perchè non si fondono bene con i caratteri cirostanti. Se ci riesco cerco di creare un tool, analogo a Diacritici, con due funzioni:

  1. eliminazione, nel testo selezionato, di tutti i caratteri unicode "anomali per un testo greco";
  2. aggiunta-cancellazione di diacritici greci (con lo stesso meccanismo di Diacritici)

Vi sembra tempo perso?

Vi segnalo inoltre un'applicazione regex del pulsante "Trova successivo" del nostro trova e sostituisci: può essere usato per scovare anomalie dei caratteri in un testo greco, classica quella di beccare caratteri latini mescolati con quelli greci, come le A latine in un testo greco in cui ci vanno i caratteri Α, ma anche i caratteri diacritici abusivi. Se una cosa del genere vi serve, ne parliamo. Alex brollo (disc.). 09:49, 13 gen 2024 (CET)[rispondi]

Quello dei diacritici è un problema notevole che conto di descrivere: il fatto è che, salvo edizioni eccezionalmente specilistiche i tipografi italiani stampavano il greco con la stessa accuratezza con cui i primi OCR anni '90 leggevano le scansioni, cioè in completa ignoranza e cieca fiducia nei loro occhi: quasi sempre spiriti e accenti erano omessi (in quanto omessi nei manoscritti) o peggio aggiunti in qualche modo. Questo diverso concetto di errore tipografico costringe e pensare la trascrizione del greco diversamente da quella in alfabeto consueto. Appunto, dovrò scrivere una volta per tutte la linea guida per la trascrizione del greco. εΔω 16:23, 13 gen 2024 (CET)[rispondi]
Vorrei aggiungere un paio di problemi: a volte nell'originale a stampa non si capisce bene che tipo di spirito o di accento abbia messo il tipografo. Inoltre (forse dipende dal fatto che ancora non mi sono operato agli occhi) ma anche nel "non-so-come-si-chiama" con l'alfabeto greco, gli accenti e gli spiriti non si vedono bene e quindi faccio figuracce (5 anni di studio sprecati?), il che mi secca assai. Carlo M. (disc.) 17:35, 13 gen 2024 (CET)[rispondi]
@OrbiliusMagister @Carlomorino Gibbon, nonostante che il greco sia occasionale, mi ha costretto ad analizzare meglio il problema dei diacritici. Le difficoltà sono:
  • scansioni meno che perfette;
  • ignoranza del greco politonico;
  • font di default per ns0-nsPagina non adatto a visualizzare l'unicode politonico greco;
  • fastidi nel cancellare i diacritici, introdotti come caratteri ricombinanti ma errati;
  • aspetto confondente di alcuni diacritici come il carattere ῀ e anche di alcuni caratteri maiuscoli come ΑΕΖΗΙΚΜΝΟΡΤΧ;
  • necessità di usare diacritici ricombinanti multipli
  • difficoltà di inserire in modifica caratteri unicode, il formato "\u0061", perfettamente capito da javascript, non funzia.
Mi metto al lavoro per una nuova versione del gadget Diacritici con queste funzioni (premesso che opererà sul carattere immediatamente precedente il cursore, come quello vecchio):
  • cancellazione, con un click, di tutti i caratteri diacritici ricombinanti;
  • inserimento, con un click, di una nutrito insieme di diacritici ricombinanti;
  • inserimento di tipo additivo invece che sostitutivo, per permettere di aggiungere più di un diacritico;
  • evidenziazione dei diacritici esclusivi dei caratteri latini, esclusivi dei caratteri greci, comuni al greco e al latino.
Fatemi gli auguri! Alex brollo (disc.). 10:41, 15 gen 2024 (CET)[rispondi]
Dimenticavo: il template {{greek}} assegna al testo greco una classe "greco" che può essere definita nella pagina styles.css di Indice. In Gibbon, volume V, ho provato ad applicare alla classe il css "font-famil: serif; font-size: 110%;" e non mi pare male: es. in questa pagina. Parecchi errori di visualizzazione sono spariti, grazie al font adatto. Alex brollo (disc.). 10:49, 15 gen 2024 (CET)[rispondi]
@OrbiliusMagister Cambio del progetto (ho un prototipo funzionante ma ancora molto grezzo): ho virato su un gadget specifico per i diacritici greci. I diacritici multipli possono essere inseriti uno a uno, e cancellati uno a uno, entrambe le cose sul carattere immediatamente precedente il cursore. Vedo che sono opportuni controlli (es. escludendo l'aggiunta di diacritici non permessi, come una dieresi isolata o combinata con accenti su caratteri diversi da ι e υ, o aggiustando diacritici multipli inseriti in sequenza irregolare). Forse sarebbe utile anche una funzione che elimina tutti i diacritici in un testo selezionato. Alla fine mi farai la cortesia di provarlo, non escludo che non ti serva assolutamente a niente... ma è stato divertente approfondire. Domanda: i due segni "Coronis" e "Spirito dolce" si fanno con lo stesso carattere unicode? Se sì, succede che il Coronis NON stia sopra una lettera, ma debba stare isolato? --Alex brollo (disc.). 17:33, 18 gen 2024 (CET)[rispondi]
In effetti coronide e spirito si distinguono solo perché la coronide è in centro parola mentre lo spirito è in inizio parola, non per la forma che è la medesima.
Io non ho problemi con i diacritici nel senso che li combino durante la scrittura con la tastiera (es: la combinazione "àe" mi dà "ἐ" oppure la combinazione "°œv" mi dà "ᾡ") e il sistema operativo si occupa di convertire automaticamente la combinazione di tasti in carattere precombinato. εΔω 18:04, 18 gen 2024 (CET)[rispondi]
@OrbiliusMagister Se non sbaglio tu lavori in Mac. Chiedo a chi mascica greco ma non è sotto Mac: in windows e linux è ugualmente semplice? Alex brollo (disc.). 09:52, 19 gen 2024 (CET)[rispondi]
NOn mastico Linux a sufficienza: ho imparato sotto Windows e ho ricostruito le abbreviazioni da tastiera passando a Mac. Una pagina carina per Windows è su Wikiversity. Il layout dei tasti è praticamente lo stesso: per i diacritici occorre usare la porzione destra della tastiera, quella che da noi ha lettere accentate, chiocciola ecc. che con varie combinazioni di maiuscola/alt-gr prepara la combinazione di diacritici. Qui una risorsa in italiano. εΔω 18:29, 19 gen 2024 (CET)[rispondi]

Indice:Le monete di Venezia.pdf/styles.css:

Capita che ci sia la necessità di assegnare una proprietà uguale a più colonne, come ad es. nella pagina indicata per la classe p401 (righe 43-80). Esiste la possibilità per dare un unico comando, tipo "td:nth-of-type(3-6)". Se si quale è la sintassi?

Carlo M. (disc.) 17:29, 13 gen 2024 (CET)[rispondi]

Ciao @Carlomorino. In rete ho trovato qualcosa: in pratica devi usare una combinazione di nth-of-type e nth-last-of-type. Guarda in questo foglio di stile: trovi un paio di esempi funzionanti negli stili .tab29 e .tab30. —-Paperoastro (disc.) 20:28, 18 gen 2024 (CET)[rispondi]
@Carlomorino So, la strada è giusta ma:
  1. devi scrivere una riga css per colonna;
  2. occhio che poi questo settaggio verrà applicato a tutte le tabelle del libro.
Per evitare questo problema devi applicare una classe alla tabella dove vuoi che avvenga il fenomeno, diciamo class="tab1" subito dopo il {| di inizio trabella, e poi scrivere nel foglio di stile dell'indice .tab1 td:nth-of-type(3) {codice css...} in modo da scatenare la questione solo nei td della tanblla classe tab1. Comunque si tratta di un enorme avanzamento di wiki, vale la pena impratichirsi anche se non è facilissimo. Alex brollo (disc.). 10:00, 19 gen 2024 (CET)[rispondi]

Vi devo rimproverare entrambi: non avete letto la pagina indicata: Indice:Le monete di Venezia.pdf/styles.css. Ma siccome oggi è il vostro giorno fortunato non vi incenerisco con il mio terribile raggio Θ.

Il mio problema era sapere se, dovendo dare la stessa indicazione a più colonne, devo comunque richiamarle tutte "individualmente" o se esiste qualche scorciatoia del tipo "tutte le celle al terzo, quarto e quinto posto di ogni riga": qualcosa tipo "td:nth-of-type(3 to 5)" o "td:nth-of-type(3, 4, 5) etc... Da quanto avete detto o non esiste o semplicemente i più esperti di me (non che ci voglia molto) questa scorciatoia ancora non l'hanno scoperta. Peccato. Solo che mi sembra strano visto la finalità ultima dei css, che è quella di evitare di ripetere le stesse indicazioni molte volte. --Carlo M. (disc.) 11:30, 19 gen 2024 (CET)[rispondi]

@Carlomorino Ok, beccato :-(. Studiando ho trovato che in alcuni casi si possono effettivamente indicare elementi multipli, a te la verifica se fa per te: https://drafts.csswg.org/selectors/#the-nth-child-pseudo (più avanti dice che con nth-of-type si può usare la stessa sintassi di nth-child) Alex brollo (disc.). 12:39, 19 gen 2024 (CET)[rispondi]

@Alex brollo: wow!

Non risolve completamente la domanda ma ..... Praticamente si può dare a tutti la stessa indicazione e poi cambiarla ad alcuni elementi. Fichissimo anche il (even) (e (odd), anche se non citato).

Vedi che se ti impegni fai anche bella figura. ;-}

--Carlo M. (disc.) 12:56, 19 gen 2024 (CET)[rispondi]

WOW bis: Indice:Le monete di Venezia.pdf/styles.css e Pagina:Le monete di Venezia.pdf/400. Si può certo fare di meglio. Ma da qualche parte si deve pur iniziare. --Carlo M. (disc.) 13:25, 19 gen 2024 (CET)[rispondi]

Resta il fatto che per "semplificare" le cose, puoi assegnare a tabelle uguali la stessa classe, e se hanno piccole differenze assegnare una classe per gli elementi comuni, e una seconda classe o pìù per le sole differenze. A dire il vero, styles.css apre (finalmente) un mondo di cui è appena iniziata l'esplorazione... :-) Fra l'altro moltissimi template potrebbero essere rivoluzionati. In Gibbon, forse hai visto l'uso del template Ct per i capitoli e per le annotazioni "a lato". Alex brollo (disc.). 14:53, 19 gen 2024 (CET)[rispondi]
due classi? Bello. Su Gibbons: "c=" è abbreviasione di "class="?
Zi ;-) (la zeta è per bilanciare la abbreviasione) --Alex brollo (disc.). 15:59, 19 gen 2024 (CET)[rispondi]

Sezioni[modifica]

Ciao a tutti,
Non ho troppa esperienza nelle modifiche su Wikisource, ma stavo trascrivendo alcune pagine de Il tesoro di Brunetto Latini, e mi sono trovato ad una pagina in cui si trovano la fine d'un capitolo e l'inizio del successivo.
Nonostante abbia riprodotto quanto visto su altre pagine simili (mi riferisco essenzialmente all'uso di <section>), non riesco a far sì che le due parti restino separate: la fine del primo capitolo compare nella pagina del secondo capitolo (qui); e l'inizio del secondo compare nella pagina del primo (qui).
Non saprei proprio come ovviare a questo problema, e volevo chiedere suggerimenti.
Grazie in anticipo —— GianWiki (disc.) 00:21, 14 gen 2024 (CET)[rispondi]

Ciao, te l'ho sistemato, devi mettere le sezioni in fromsection e/o tosection in ns0. --Cruccone (disc.) 08:35, 14 gen 2024 (CET)[rispondi]

Grazie mille per l'aiuto! —— GianWiki (disc.) 09:30, 14 gen 2024 (CET)[rispondi]

Regex e cifre[modifica]

Sono convinto di aver letto da qualche parte che esiste un modo per indicare una "stringa" costituita da una cifra. Ma ovviamente non ricordo dove e come. L'età è ovviamente la mia scusante.

Io ho un problema: in un indice di nomi, luoghi etc. lungo una decina di pagine (diverse decine di lemmi per pagina. Ogni lemma è seguito da uno o più numeri che indicano ove l'argomento è citato/trattato etc.

Per cui ho pensato: faccio une regex che sostituisca "spazio"x,"spazio" con "spazio"{{pg|x}},"spazio". Cosa degg'io porre allo posto della "x" per indicare che quello è un carattere nel range da 0 a 9 ??

Carlo M. (disc.) 16:39, 23 gen 2024 (CET)[rispondi]
p.s. questo editor nuovo è proprio antipatico
Ciao, se si cerca una sola cifra puoi scrivere 0-9, se ne cerchi più di una scrivi \d+, c'è proprio un esempio simile nel seguente vademecum: https://liberliber.it/aiuta/progetti/libercorrige/vademecum-espressioni-regolari/#un-esempio-pratico

Ciao.-- Myron Aub (disc.) 17:00, 23 gen 2024 (CET)[rispondi]

Credo di essermi imbattuto in qualche testo che ha come AutoRegex proprio questo e tendenzialmente è un incubo.... --Cruccone (disc.) 18:55, 23 gen 2024 (CET)[rispondi]
@Carlomorino Le regex sono insidiose. Ma sono potentissime. Gli indici degli argomenti sono il caso tipico in cui c'è da scervellarsi.... se mi dai il link a una pagina la analizziamo insieme per bene. Il trucco sta nell'osservare con estrema cura il "contorno" dei numeri, non solo gli spazi ma anche la punteggiatura, e aver cura di "regolarizzarli" prima di lanciare la regex (magari usando una o varie regex "di pulizia"). Alex brollo (disc.). 23:56, 23 gen 2024 (CET)[rispondi]
@Alex brollo: Qui (Pagina:Infessura - Diario della città di Roma.djvu/345) iniziano una serie di pagine con elencate: persone, vocaboli etc. il tutto per oltre 30 pagine. La struttura è sempre la stessa: Morino, Carlo 1, 22, 333, 400. Ove i numeri sono ovviamente le pagine. Quindi ad trasformare in {{pg|1}}, {{pg|22}}, etc. Pensavo di inserire una istruzione che effettuasse il cambiamento. Una pagina alla volta. Controllare la pagina aggiornata subito (quando la stragrande maggioranza delle pagine del testo ancora non sono state create) così i collegamenti in rosso sono bene evidenti e quindi correggere le pagine e poi eliminare la regex. Mi sembra un lavoro pulito. Mettere {{pg}} a ogni sequenza di 1, 2 o tre cifre.
Verrebbe evidenziata gran parte degli inevitabili errori.
Ma dato che non mi fido di Carlo ho chiesto aiuto.
Tieni presente che è una richiesta "in anticipo" perché di "indici" ho fatto sono una 20ina di pagine e ne rimane ancora una dozzina. --Carlo M. (disc.) 09:58, 24 gen 2024 (CET)[rispondi]
@Carlomorino Eccomi. Guardando la pagina, vedo che i numeri sono sempre preceduti da uno spazio o da un acapo, e sempre immediatamente seguiti da virgola, o punto e virgola, o punto. La regex da usare è questa: (\s)(\d+)([,.;]) che significa; cerca un carattere separatore \s (becca sia lo spazio che l'acapo) seguito da una o più cifre numeriche \d+ seguite da un carattere di punteggiatura compreso fra questi: [,.;], e memorizza le tre cose rispettivamente in $1, $2, $3 (a quello servono le parentesi tonde). Poi applica la sostituzione $1{{Pg|$2}}$3 ossia scrivi il carattere separatore, il numero dentro un tl Pg, e il segno di punteggiatura.
Attenzione: suggerisco di NON memorizzare la regex, ma di usarla, una pagina dopo l'altra, meglio sotto eis, quando avrai sistemato tutte le pagine dell'indice analitico; fuori dell'indice potrebbe introdurre errori. Vedo che l'OCR equivoca qualche 8 in S; no problem, i numeri errati non vengono modificati e spiccano bene; basta correggerli e rilanciare la sostituzione regex. Alex brollo (disc.). 15:51, 24 gen 2024 (CET)[rispondi]
@Carlomorino Visto che ci siamo, un altro suggerimento. Nel creare una regex di questo tipo, occorre fare in modo che dopo la sostituzione la regex non lavori più sulle modifiche fatte. Dopo che 123 è stato sostituito con {{Pg|123}} le tre cifre NON sono più precedute da un separatore e seguite da un carattere di punteggiatura, quindi NON saranno più sostituite. Se avessi impostato la regex solo con (\d+) invece.... ;-) Alex brollo (disc.). 16:02, 24 gen 2024 (CET)[rispondi]
@Alex brollo: ottimo. Fatto il primo indice, quello delle persone e cose rilevanti. Corretti una 20ina e più di errori (S per 5 o 8, punti mancanti etc.) Sono rimasti tre errori presenti nella stampa: collegamenti a pagine inesistenti. Ci vorrà tempo per correggerli. Li ho annotati nella p. di discussione. Ho anche provato con una leggera variazione per una p. dei termini dialettali: mettere il tmpl solo alle cifre seguite da ", e spazio ((\s)(\d+)([,])). Sembra OK. In questo indice infatti sono indicati pagina (P) e riga (R), così "P, R;". Domani si prosegue.
È divertente imparare cose anche alla mia (veneranda?) età. --Carlo M. (disc.) 19:56, 24 gen 2024 (CET)[rispondi]
@Carlomorino Giusto e funzionante; ma si può semplificare (e se si può si deve ;-) ). Regex: (\s)(\d+),; sostituzione: $1{{Pg|$2}}, Alex brollo (disc.). 22:04, 24 gen 2024 (CET)[rispondi]

Problema dello script che genera "Vedi le edizioni disponibili di questo testo".[modifica]

@Candalua @OrbiliusMagister @Dr Zimbu Capitato su Tragedie (Alfieri, Scrittori d'Italia) vedo una fastidiosa sfilza di link "Vedi le edizioni disponibili di questo testo" in testa alla pagina; immagino che dipenda dal fatto che ogni link a un testo principale ns0 genera una riga "Vedi...", il che avviene in moltissimi casi di Raccolte. Il problema andrebbe risolto, è molto sgradevole. Alex brollo (disc.). 10:02, 14 feb 2024 (CET)[rispondi]

Non mi azzardo a metter mano allo script... provo una ipotesi teorica: è possibile che il bug dipenda dal fatto che il nsOpera dovrebbe riportare solo opere con più edizioni, cosa che non avviene con tutte le tragedie di Alfieri? εΔω 11:41, 14 feb 2024 (CET)[rispondi]
@Alex brollo, @OrbiliusMagister, @Dr Zimbu: non avevo previsto che ci potevano essere più link dalle pagine Opera. Ho fatto una modifica per mostrare solo il primo, o eventualmente sostituirlo con uno il cui titolo corrisponde meglio. Provate a vedere anche su altre pagine come funziona. Can da Lua (disc.) 12:17, 15 feb 2024 (CET)[rispondi]

Template Pg: bug da risolvere[modifica]

Come saprete, il tl|Pg trasforma il numero di pagina stampato in un numero di pagina djvu/pdf e quindi nel link a quella pagina, in nsPagina/nsIndice; trasdforma invece il numero di pagina stampato in un link alla pagina ns0 che contiene quella pagina djvu/pdf.

Tutto funziona bene se c'è una relazione 1/1 fra pagine nsPagina e ns0; ma se una pagina nsPagina è transclusa in più pagine ns0 (pagine con section) il link punta sull'ultima pagina ns0 che transclude la pagina nsPagina.

possibile soluzione
poichè questo succede solo nelle pagine che contengono tag section, è possibile riconoscere automaticamente i link ambigui, che corrispondono alle pagine che contengono il tag section. Questi link devono essere evidenziati per essere, eventualmente, corretti manualmente espandendoli in codice esteso.

Immaginiamo che la pagina libro 100, in un Indice:Libro.djvu, sia contenuta in Pagina:Libro.djvu/110 e transclusa in Libro/Capitolo I. Per espandere il codice {{Pg|100}} si potrebbe scrivere {{Pt|[[Pagina:Libro.djvu/110|100]]|[[Libro/Capitolo I#pagename110|100]]}}; in caso di ambiguità questa espansione andrebbe fatta a mano per tutti i link ns0 tranne l'ultimo :-(

Altre soluzioni? Alex brollo (disc.). 14:27, 25 feb 2024 (CET)[rispondi]

Tabella su più pagine[modifica]

Immagino sia stata discussa ampiamente N-volte. Ma negli aiuti non se ne parla. Almeno io non sono riuscito a trovare nulla (il che è quasi la stessa cosa). Qui inizia una serie di tabelle sulla distribuzione dei seggi dello Stato pontificio nell'unico momento in cui ci sono state delle elezioni. Per cui da un punto di vista storico ha una certa rilevanza. Io pensavo di mettere tutta la tabella in una pagina e mettere "Stato della pagina" a 0 sulla seconda metà della tabella. Fatemi sapere se esistono soluzioni migliori.

Carlo M. (disc.) 20:44, 6 mar 2024 (CET)[rispondi]

Per le righe non è difficile, basta non chiudere la tabella sulla prima pagina e non aprirla sulla seconda e in transclusione la tabella continua, l'importante è avere un |- o alla fine della prima o all'inizio della seconda. Sulle colonne invece non saprei, penso che la soluzione che proponi sia l'unica possibilità. Cruccone (disc.) 09:10, 7 mar 2024 (CET)[rispondi]
Mi sono espresso male: la "parte sinistra" su una pagina e la "parte destra" sull'altra. Il volume in questione sembra avere un formato particolarmente ridotto, tipo un A5 o addirittura un A6 per intenderci, e credo che le due parti della tabella riescano a entrare in una sola pagina.
--Carlo M. (disc.) 10:09, 7 mar 2024 (CET)[rispondi]