Utente:Bot55/RiformatTMP

Questa regex è studiata per riformattare i template (in particolare {{DOP IGP}} e {{Agroalimentare}}) che sono stati copiati male nelle voci, riportando interruzioni di linea eccessive e fuori posto, spazi eccessivi o i commenti del manuale, rendendo difficile la compilazione da parte degli utenti. La regex è stata testata, al momento, solo per il template {{DOP IGP}}.

La regex

modifica

Essa si compone di più passaggi con il trova e sostituisci avanzato di AWB. Il programma permette l'impostazione di una gerarchia delle regex, quindi è quasi scontato dire che (se eseguite in questa sequenza) le regex si equiparano ad una sola, permettendo un unico passaggio anziché sei salvataggi di pagina.

Schema dei passaggi da effettuare in sequenza Tipo di regola del F&R
Primo passaggio: rimozione dei commenti (Nota: sostituisci con niente)
<!--(.+)-->  
Find & Replace
Secondo passaggio: rimozione delle interruzioni eccessive prima del template
([\n]*){{NOME DEL TEMPLATE   {{NOME DEL TEMPLATE

(Nota: se non contiene [\}][\n\r\t\s\S]*{{NOME DEL TEMPLATE)

([\n]*){{NOME DEL TEMPLATE   $1{{NOME DEL TEMPLATE
([\}]{2})[\n\r\t\s\S]*{{NOME DEL TEMPLATE   $1\n{{NOME DEL TEMPLATE
Find & Replace
Opzionale: formattazione valore parametro immagine
(\.jpg|\.png|\.gif|\.svg)\|[\d\s\S]+px\|?   $1
Subrule di In template call[1] - Find & Replace
Terzo passaggio: riallineamento di parametri e valori
\|([.]*)(\n)([^\=]+)([.]*)=([.]*)\n([.]*)   $2|$3 = $6
Subrule di In template call[1] - Find & Replace
Quarto passaggio: rimuozione le interruzioni di linea
\n([^\}]{2,99})   $1
Subrule di In template call[1] - Find & Replace
Quinto passaggio: reintroduzione delle interruzioni di linea solo per i pipe del template
\|   \n|
Subrule di In template call[1] - Find & Replace
Sesto passaggio: eliminazione dell'interruzione di riga per i pipe dei wikilink
\[\[([^\|]+)\n\|([^\]]+)\]\]   [[$1|$2]]
Subrule di In template call[1] - Find & Replace
Settimo passaggio: rimozione delle eventuali tabulazioni all'interno del template (Nota: sostituisci con niente)
\t  
Subrule di In template call[1] - Find & Replace
Ottavo passaggio: rimozione degli eventuali &nbsp; all'interno del template (Nota: sostituisci con niente)
&nbsp;  
Subrule di In template call[1] - Find & Replace

Casistica

modifica

Lavorando con il template {{DOP IGP}}, capita di trovarsi davanti a valorizzazioni dei parametri che necessitano, almeno dal lato tecnico, di alcune interruzioni di pagina che con la precedente serie di regex verrebbero rimosse.

Per il caso specifico prendo il caso della voce Aprutino Pescarese (Olio di Oliva D.O.P.) nella versione del 26 gennaio 2011.

Applicando la regex di cui sopra si otterrebbe

|
DOPzona =
Regione: [[Abruzzo]]

Provincia: [[Pescara]]

Comuni: [[Alanno]], [[Bolognano]], [[Castiglione a Casauria]], [[Cappelle sul Tavo]], [[Carpineto della Nora]], [[Catignano]], [[Città Sant'Angelo]], [[Civitaquana]], [[Civitella Casanova]], [[Cepagatti]], [[Collecorvino]], [[Corvara]], [[Cugnoli]], [[Elice]], [[Loreto Aprutino]], [[Manoppello]], [[Montebello di Bertona]], [[Montesilvano]], [[Moscufo]], [[Nocciano]], [[Penne]], [[Pescosansonesco]], [[Pianella]], [[Picciano]], [[Pietranico]], [[Rosciano]], [[San Valentino]], [[Scafa]], [[Spoltore]], [[Tocco da Casauria]], [[Torre de' Passeri]], [[Turrivalignani]], [[Vicoli]] <!--indicare la zona di produzione del prodotto -->

 

|DOPzona = Regione: [[Abruzzo]]Provincia: [[Pescara]]Comuni: [[Alanno]], [[Bolognano]], [[Castiglione a Casauria]], [[Cappelle sul Tavo]], [[Carpineto della Nora]], [[Catignano]], [[Città Sant'Angelo]], [[Civitaquana]], [[Civitella Casanova]], [[Cepagatti]], [[Collecorvino]], [[Corvara]], [[Cugnoli]], [[Elice]], [[Loreto Aprutino]], [[Manoppello]], [[Montebello di Bertona]], [[Montesilvano]], [[Moscufo]], [[Nocciano]], [[Penne]], [[Pescosansonesco]], [[Pianella]], [[Picciano]], [[Pietranico]], [[Rosciano]], [[San Valentino]], [[Scafa]], [[Spoltore]], [[Tocco da Casauria]], [[Torre de' Passeri]], [[Turrivalignani]], [[Vicoli]]

Si rende quindi necessario applicare un ulteriore triplice passaggio come segue:

[\|\n]*Region([ei])   \nRegion$1
[\|\n]*Provinci([ae])   \nProvinci$1
[\|\n]*Comun([ei])   \nComun$1

(Nota: la rimozione di eventuali pipe o interruzioni eccessive viene effettuata per la modalità automatica, avendo riscontrato effettivamente l'esistenza di simili errori)

Per ottenere

|
DOPzona =
Regione: [[Abruzzo]]

Provincia: [[Pescara]]

Comuni: [[Alanno]], [[Bolognano]], [[Castiglione a Casauria]], [[Cappelle sul Tavo]], [[Carpineto della Nora]], [[Catignano]], [[Città Sant'Angelo]], [[Civitaquana]], [[Civitella Casanova]], [[Cepagatti]], [[Collecorvino]], [[Corvara]], [[Cugnoli]], [[Elice]], [[Loreto Aprutino]], [[Manoppello]], [[Montebello di Bertona]], [[Montesilvano]], [[Moscufo]], [[Nocciano]], [[Penne]], [[Pescosansonesco]], [[Pianella]], [[Picciano]], [[Pietranico]], [[Rosciano]], [[San Valentino]], [[Scafa]], [[Spoltore]], [[Tocco da Casauria]], [[Torre de' Passeri]], [[Turrivalignani]], [[Vicoli]] <!--indicare la zona di produzione del prodotto -->

 

|DOPzona =
Regione: [[Abruzzo]]
Provincia: [[Pescara]]
Comuni: [[Alanno]], [[Bolognano]], [[Castiglione a Casauria]], [[Cappelle sul Tavo]], [[Carpineto della Nora]], [[Catignano]], [[Città Sant'Angelo]], [[Civitaquana]], [[Civitella Casanova]], [[Cepagatti]], [[Collecorvino]], [[Corvara]], [[Cugnoli]], [[Elice]], [[Loreto Aprutino]], [[Manoppello]], [[Montebello di Bertona]], [[Montesilvano]], [[Moscufo]], [[Nocciano]], [[Penne]], [[Pescosansonesco]], [[Pianella]], [[Picciano]], [[Pietranico]], [[Rosciano]], [[San Valentino]], [[Scafa]], [[Spoltore]], [[Tocco da Casauria]], [[Torre de' Passeri]], [[Turrivalignani]], [[Vicoli]]

  1. ^ a b c d e f g La regola "In template call" va valorizzata con il nome o i nomi dei template su cui si deve agire