2013-03-01 6 views
5

Ho un numero di modelli che creano intestazioni basate su una formula. Mi chiedo se c'è comunque la possibilità di creare un link "modifica" che ti porterà direttamente a quella sezione? Il modo in cui funziona attualmente, il collegamento di modifica ti porta a modificare il modello stesso. Potrei forse creare un collegamento personalizzato che ti terrebbe sulla pagina e ti porterebbe alla parte giusta?Intestazioni create all'interno di un modello

Ecco alcuni esempi di codice per aiutare a chiarire le cose ...

Template: Capo:

==={{{1}}}=== 
This is a heading titled "{{{1}}}" 

pagina di prova:

=Section 1= 
{{head|1.1}} 
{{head|1.2}} 
{{head|1.3}} 
=Section 2= 
{{head|2.1}} 
{{head|2.2}} 
{{head|2.3}} 

Al momento, se voglio modificare le informazioni per il modello "2.3", devo modificare tutta la sezione 2. (Si noti che per questo esempio , questo non è un grosso problema. Per i modelli attuali con cui sto lavorando sul mio sito, i modelli hanno decine di parametri e ci sono a volte 10 o più in una sezione.)

In conclusione, esiste un modo per creare un collegamento di modifica personalizzato all'interno dello {{head}} modello che ti porterebbe direttamente a modificare i modelli di chiamata sulla pagina "Pagina di test"? Spero che abbia un senso.

Modifica: C'è forse un modo per utilizzare i tag "anchor"? Le ancore possono essere passate all'URL?

risposta

1

Sono abbastanza sicuro che non ci sia modo di farlo. Per quanto riguarda la funzione di modifica delle sezioni di MediaWiki è interessato, la cosa unica che inizia una nuova sezione è una linea di forma:

=== Some text here === 

con il numero di = segni che determinano il livello della voce. Non c'è modo di far sì che MediaWiki ti permetta di modificare qualsiasi segmento del documento che non inizia e termina con una tale linea (o l'inizio o la fine della pagina).

Beh, OK, sono sicuro che tecnicamente potrebbe farlo con un'estensione, nel senso che si può fare qualsiasi cosa con estensione MediaWiki. Tutto quello che devi fare è fornire un modo (ad es. Un parametro speciale in un URL di modifica) all'utente per indicare "Voglio modificare questo modello", quindi estrarre il modello da wikitext, presentarlo all'utente per la modifica e scrivi il risultato nel testo della pagina rispetto all'originale.

La parte difficile sarà estrarre il modello dall'origine della pagina. (Trovare e sostituire i modelli su una pagina è un compito abbastanza comune per i creatori di bot di MediaWiki, quindi potresti voler cercare idee lì.) Qualunque sia il metodo che usi per questo, ci saranno probabilmente casi limite in cui devi rinunciare e dire all'utente "Mi spiace, ma non riesco a capire come questo modello sia stato incluso qui."

1

Per ridimensionare il problema, quando si esegue il trasporto di un'intestazione di sezione, l'intestazione non viene considerata parte della pagina di destinazione, pertanto il collegamento di modifica riporta alla sorgente. Quindi è necessario un contenitore separato per il modello per modificarlo singolarmente e una sezione completa è il contenitore modificabile più piccolo.

L'unico modo in cui posso pensare di fare ciò è usare le sottopagine (o le sottopagine virtuali se non hai abilitato in questo spazio dei nomi, non cambia nulla).Quindi, invece di collocare {{head|1.1}} su MyPage, inseriscilo su MyPage/Subpage1 e quindi includilo nel numero MyPage nel modo usuale ({{:MyPage/Subpage1}}).

{{head}} può quindi includere una modifica personalizzata di collegamento all'ingresso modello utilizzando HTML tag di titolo (<h2> è pari a ==, ecc) per sopprimere il link di modifica standard e quindi utilizzare uno dei these templates (probabilmente {{}} ed right) per creare un collegamento di modifica personalizzato che punta a MyPage/Subpage1.

Il modo di creare ancore in Mediawiki, a proposito, consiste nell'utilizzare un tag <span id="name"/>, ma che non crea un contenitore che può essere modificato (o almeno, non che io sia stato in grado di risolvere attraverso il bricolage degli URL).

+0

Il problema è quale argomento fornisci come '{{{1}}}' per il modello? È una grande idea ma non sembra funzionare. Grazie comunque. – Zack

+0

Giusto, scusa, non ci ho pensato fino in fondo. Per ridimensionare il tuo problema, quando si transclude un titolo di sezione l'intestazione non viene considerata parte della pagina di destinazione, quindi il link di modifica riporta alla sorgente. Quindi quello che vuoi veramente è modificare su parte di una sezione senza aprire l'intera sezione nella casella di modifica. Prima che io provi a escogitare un po 'di mano di WML particolarmente complessa, c'è un motivo per cui non puoi includere le intestazioni di sezione direttamente nella pagina di destinazione? –

+0

Le intestazioni di sezione vengono create in base a una formula. – Zack