Sincronizzare due wiki può essere utile per eseguire il mirror di un wiki o per un backup. Può essere utile anche per avere una versione per il proprio telefonino per poter accedere ai dati senza essere in linea.
Contents
Obiettivo
Sincronizzare i wiki consiste nell'avere due istanze degli stessi contenuti (non necessariamente la stessa cronologia) evitando i conflitti, con il supporto all'unione dei dati, il tutto attraverso una GUI con buona accessibilità. Non è necessaria una connessione bidirezionale, il wiki di partenza necessita solamente di avere accesso HTTP al wiki remoto.
Utilizzo
Il primo passo consiste nel registrare il wiki remoto come un InterWiki. Questo può essere svolto nella InterWikiMap o nel file `intermap.txt` (consultare AiutoSuConfigurazione).
È quindi necessario creare una specie di "pagina di lavoro" che contiene tutti i parametri di sincronizzazione. Questa pagina verrà ampliata anche col registro del processo di sincronizzazione, consultare più sotto per i parametri permessi. I parametri devono essere scritti nel formato dei dizionari (consultare AiutoSuDizionari). È buona norma utilizzare la pagina LavoroSincModello che contiene già dei parametri.
Fatto ciò, basta selezionare Sync Pages dal menù a discesa e iniziare la sincronizzazione.
Configurazione
A parte il parametro remoteWiki, tutti gli altri sono opzionali. Questi parametri devono essere memorizzati nella pagina di lavoro sotto forma di dizionario.
- remoteWiki
Nome InterWiki del wiki remoto. Notare che deve corrispondere al nome interwiki configurato dall'amministratore del wiki remoto. In caso contrario verrà visualizzato un messaggio di errore.
- remotePrefix
- È preposto al nome della pagina remota quando si cercano/inviano pagine. Se non si vuole creare confusione nel namespace globale del wiki remoto, è possibile impostare un prefisso per creare tutte le pagine come sottopagine di un'altra pagina nel wiki remoto.
- localPrefix
- È preposto al nome della pagina locale quando si ricevono le pagine. È utile per fare in modo che le pagine remote non creino confusione nel namespace globale. È possibile usare il parametri per aggregare diversi wiki in uno solo locale.
- pageMatch
- Se definito, descrive, attraverso un'espressione regolare, le pagine che dovrebbero essere trasferite.
- pageList
- Se definito, solo queste pagine (locali o remote) sono trasferite. In questo caso la corrispondenza non viene utilizzata. I nomi delle pagine devono essere separati da virgole, la sintassi come `[[` non dovrebbe essere usata.
- groupList
Se definito, solo queste pagine locali di gruppi e tutte le pagine a cui fanno riferimento vengono trasferite. Sia la corrispondenza che pageList non sono usati. Queste pagine di gruppi non vengono analizzate ricorsivamente. La sintassi è la stessa di `pageList`.
- direction
Questa può essere Down o Both (non fa differenze tra maiuscole e minuscole). `Down` significa che le modifiche locali non vengono scritte nel wiki remoto. Notare che `Down`, in alcuni casi, è più lento e consuma molto più banda.
- user
- Il nome utente da usare per l'autenticazione nel wiki remoto
- password
La password da usare per l'autenticazione nel wiki remoto. Non inserire la password nella pagina a meno che non si sia sicuri che nessun'altra persona possa leggerla. Impostare solamente l'utente, MoinMoin richiederà la password automaticamente.
Alcune regole
Come scritto sopra, la cronologia non viene trasferita, solo il delta (come un merge, unione). Non verrà visualizzato nessun altro commento fatto nell'altro wiki.
- È possibile avviare la sincronizzazione in entrambi i wiki.
- Le pagine in cui i conflitti non sono stati risolti non sono sincronizzate. Vengono sincronizzate solo se i conflitti sono risolti da una delle due parti.
- Le pagine rinominate non possono essere sincronizzate (non è ancora supportato)
- Gli allegati non vengono trasferiti (potrebbe cambiare quando gli allegati diventeranno oggetti).
Note
- Ricordarsi di usare la notazione Unicode nell'impostare il nome interwiki nel file `wikiconfig.py`, per esempio: `interwikiname = u'mywiki'`