KernelNewbies:

AiutoContenuti > AiutoPerAmministratori > AiutoSuConfigurazione > AiutoSuTemi

MoinMoin dispone di un sistema per la gestione dei temi che semplifica la modifica dell'aspetto del wiki senza modificare il codice sorgente. Come utenti è possibile scegliere tra diversi temi preinstallati1 direttamente nelle proprie preferenze (questo è possibile solamente se l'amministratore del wiki non ha forzato un tema specifico, disabilitando così la possibilità di cambiare tema).

Installare temi

È possibile trovare molti temi da scaricare presso ThemeMarket. Assicurarsi che il tema selezionato sia compatibile con la versione di MoinMoin in uso.

Per installare un nuovo tema non è sufficiente copiare il file nella directory dei temi del wiki. Per installarlo seguire le istruzioni fornite dall'autore del tema. Tipicamente sono presenti due posizioni per i temi:

  1. La directory dove sono archiviati tutti i temi
    • Decomprimere l'archivio e inserivi la directory del tema (che contiene due directory css/ e img/)

  2. La directory data/plugin/theme/

    • Spostare lo script del tema in questa directory (tale script ha lo stesso nome del tema e termina con .py).

Il tema dovrebbe essere ora disponibile. Potrebbe essere necessario rieseguire l'accesso o pulire la cache. Per le opzioni di configurazione, consultare AiutoSuConfigurazione.

Personalizzare i temi

È possibile personalizzare i temi pre-installati, ma è sempre meglio partire da una copia di un tema. Procedere come segue (viene usato il tema modern come esempio):

  1. Fare una copia del tema modern presente nella directory dei temi e chiamarlo miotema.

  2. Fare una copia del file di script MoinMoin/theme/modern.py in data/plugin/theme/miotema.py.

  3. Modificare il file miotema.py e cambiare almeno la variabile name = "modern" in name = "miotema".

  4. Dovrebbe essere possibile quindi vedere il nuovo tema. In un wiki locale potrebbe essere necessario riavviare il server.
  5. Ora è possibile iniziare a modificare i file presenti nella directory dei temi.

La posizione della directory dei temi dipende dall'installazione del wiki (consultare AiutoSuInstallazione).

Il miglior modo per modificare l'aspetto del proprio wiki è quello di partire ereditando lo stile di MoinMoin modificando solo quello che si vuole adattare alla proprie esigenze. Questo evita il problema di copiare i nuovi stili aggiunti durante lo sviluppo dei propri fogli di stile. Per fare questo, usare l'istruzione @import dei CSS in questo modo:

@import url("/moin_static170/modern/css/common.css");

h1,h2,h3,h4,h5 {
    background-color: #88CCFF;
}

Nella prima riga viene importato lo stile predefinito come distribuito da MoinMoin. Potrebbe essere necessario modificare l'URL in base alla configurazione della versione MoinMoin.

Nella riga successiva viene semplicemente modificato il colore dei titoli.

Per maggiori informazioni consultare il wiki css-discuss.

Per vedere come rendere i CSS wiki-modificabili, consultare plain.css.

Modificare la configurazione del wiki

page_footer1

""

Codice HTML inviato prima del footer di sistema.

page_footer2

""

Codice HTML inviato prima del footer di sistema.

page_header1

""

Codice HTML inviato prima dell'header / title di sistema ma dopo il tag body.

page_header2

""

Codice HTML inviato dopo l'header / title di sistema e del tag body.

stylesheets

[(media, csshref), ...]

Elenco di tuple (media, csshref) da inserire dopo il CSS del tema, prima dei CSS degli utenti.

html_head

""

Tag <HEAD> aggiuntivi per tutte le pagine.

html_head_posts

robots: noindex,nofollow

Tag <HEAD> aggiuntivi per le richieste POST.

html_head_index

robots: index,follow

Tag <HEAD> aggiuntivi per alcune delle pagine indice.

html_head_normal

robots: index,nofollow

Tag <HEAD> aggiuntivi per la maggior parte della pagine normali.

html_head_queries

robots: noindex,nofollow

Tag <HEAD> aggiuntivi per le richieste con stringhe di interrogazione, come le azioni.

È possibile personalizzare il wiki modificando la configurazione del wiki come segue:

  1. head
    • config.html_head viene aggiunto nell'elemento <head> di tutte le pagine, mentre

  2. body
    • è possibile usare alcuni frammenti di HTML per personalizzare l'output di moin (alcuni temi potrebbero essere diversi da quello classic). Questa è la sequenza di come viene dato l'output:

    • header:
      • config.page_header1
      • config.logo_string - usare questo per modificare il logo (tipicamente in alto a sinistra)
      • username, title
      • iconbar
      • config.navi_bar - è un elenco di nomi di pagine aggiunte nell'area title, se None non aggiunge nulla

      • trail
      • config.page_header2
      • msg
    • pagina wiki
    • footer:
      • config.page_credits
      • config.page_footer1
      • EditText, search forms, actions

      • config.page_footer2
  3. Come utente wiki, è possibile escludere le impostazioni CSS del tema usando un URL con un CSS personalizzato all'interno delle proprie preferenze. Questo CSS viene caricato dopo i CSS del tema. Il file deve essere codificato in UTF-8 (anche ASCII va bene, dato che è un sottoinsieme di UTF-8).

page_header1, page_header2, page_footer1 e page_footer2 sono ora "chiamabili" e vengono chiamati con unico argomento l'oggetto "request" (è necessario accettare qualsiasi argomento per essere compatibili con le versioni future).

Creare un nuovo tema

È possibile creare un nuovo tema. Il modo migliore per iniziare è quello di copiare un tema esistente come modern. Sarà necessario rinominare lo script del tema e modificare la variabile name all'interno dello script. Se si conosce il linguaggio di programmazione Python è anche possibile scrivere una nuova interfaccia scrivendo un nuovo script per il proprio tema. Con gli aggiornamenti di MoinMoin i temi personali non sono toccati, funzioneranno anche con le nuove versioni, ci sarà solo da fare qualche piccola modifica dovuta al cambiamento delle API (per maggiori informazioni consultare MoinDev/ThemeDevelopment).

  1. "In un'installazione standard di MoinMoin questi sono classic, modern e rightsidebar" (1)