Gebruiker:Rozebotje/Archief Index

Uit Wikipedia, de vrije encyclopedie

Info[bewerken | brontekst bewerken]

Doel[bewerken | brontekst bewerken]

Deze robot genereerd indexen van archieven van overleg pagina's.

Archieven worden typisch op basis van de datum gearchiveerd in maandelijkse pagina's. Bijvoorbeeld:

Nu kunnen van alle kopjes in die pagina's een lijst gemaakt worden, zodat een overzicht ontstaat waarin makkelijk gezocht kan worden.

Gebruik[bewerken | brontekst bewerken]

De eenvoudigste manier is om

{{Gebruiker:Rozebotje/Archief Index}}

toe te voegen op een pagina. De robot zal daarna een index genereren van alle onderliggende pagina's. Geavanceerde opties in te stellen door die op de volgende manier toe te voegen: {{Gebruiker:Rozebotje/Archief Index|opties}}. Er kunnen meerdere opties ingesteld worden. Opties worden gescheiden door een puntkomma (;). Elke optie heeft de vorm naam=waarde. Een voorbeeld ziet er dan zo uit:

{{Gebruiker:Rozebotje/Archief Index|pageprefix=Help:Helpdesk/Archief/;name=Helpdesk-;exclude=2008}}

Opties[bewerken | brontekst bewerken]

De volgende opties zijn mogelijk:

  • pageprefix=pagina
Hiermee wordt opgegeven vanaf waar de pagina's doorzocht worden. Alle onderliggende pagina's worden doorzocht.
  • page=pagina
Hiermee kan een losse pagina toegevoegd worden. Het is mogelijk meerdere pagina's toe te voegen, door deze optie meerdere keren te herhalen.
  • name=tekst
Slaat op de voorafgaande page of pageprefix. Bepaald de naam van de pagina zoals deze op de index te zien zal zijn. Bij pageprefix wordt automatisch de subpagina toegevoegd. Deze parameter mag leeg zijn.
  • exclude=tekst
Slaat op de voorafgaande pageprefix. Hiermee kunnen pagina's uitgesloten worden. Bijvoorbeeld door exclude=2008 zullen alle pagina's van 2008 niet in de index opgenomen worden. Het is mogelijk een reguliere expressie op te geven. Bijvoorbeeld exclude=2007|2008 sluit zowel pagina's van 2007 als 2008 uit.
  • include=tekst
Slaat op de voorafgaande pageprefix. Hiermee kan bepaald worden dat alleen bepaalde pagina's in de index opgenomen word. Bijvoorbeeld door include=2008 zullen alleen de pagina's van 2008 in de index opgenomen worden. Het is mogelijk een reguliere expressie op te geven.
  • template=pagina
Bepaald welk "sjabloon" gebruikt wordt om de index te genereren. Een sjabloon bepaald de opmaak van de index.
  • checksum=code
Word door de robot automatisch toegevoegd voor intern gebruikt.

Sjabloon[bewerken | brontekst bewerken]

Een sjabloon bevat html-commentaar gevolgd door wikitekst voor elk gedeelte van de pagina. Bijvoorbeeld:

            <!-- HEADER -->
            {| class="sortable"
            ! Onderwerp !! Link

            <!-- ROW -->
            |-
            | %%topic%% || [[%%link%%|%%page%%]]

            <!-- ALT ROW -->
            |- style="background: #dddddd;"
            | %%topic%% || [[%%link%%|%%page%%]]

            <!-- FOOTER -->
            |}

            <!-- END -->

De volgende namen kunnen gebruikt worden in het html-commentaar:

  • HEADER
Bepaald de wikitekst die bovenaan de index gezet wordt.
  • ROW
Dit is een regel in het archief. Hier worden de teksten %%topic%% %%link%% en %%page%% vervangen door de daadwerkelijke gegevens. Zie hieronder. Dit is het enige onderdeel dat verplicht is.
  • ALT ROW
Dit is net als ROW een regel in het archief. Alleen wordt deze regel gebruikt voor elke oneven regel. Indien deze ontbreekt, wordt ROW gebruikt voor elke regel.
  • FOOTER
Bepaald de wikitekst die onderaanaan de index gezet wordt.
  • END
Wordt niet gebruikt, geeft alleen het einde van de pagina aan.

Tekstvervanging[bewerken | brontekst bewerken]

In het sjabloon kunnen teksten vervangen worden door de gegenereerde gegevens.

  • %%topic%%
Dit wordt vervangen door de naam van het kopje. Dit kan alleen in (ALT) ROW gebruikt worden.
  • %%link%%
Dit wordt vervangen door de link naar het kopje. Dit kan alleen in (ALT) ROW gebruikt worden.
  • %%page%%
Dit wordt vervangen door de naam van de pagina. Dit kan alleen in (ALT) ROW gebruikt worden.
  • %%subst%%
Dit wordt vervangen door de tekst subst:
  • %%now%%
Dit wordt vervangen door datum en tijd waarop de index gegenereerd is:
  • %%((%%
Dit wordt vervangen door de tekst {{
  • %%))%%
Dit wordt vervangen door de tekst }}
  • %%(%%
Dit wordt vervangen door de tekst {
  • %%)%%
Dit wordt vervangen door de tekst }

Bugfix[bewerken | brontekst bewerken]

Het sorteren van de tabel werkt niet goed. Om dat op te lossen, voeg het volgende toe aan je monobook.js:

function ts_getInnerText(el) {
        if (typeof el == "string") return el;
        if (typeof el == "undefined") { return "" }; // aangepast, retourneer een lege string indien undefined
        if (el.textContent) return el.textContent; // not needed but it is faster
        if (el.innerText) return el.innerText;     // IE doesn't have textContent
        var str = "";
 
        var cs = el.childNodes;
        var l = cs.length;
        for (var i = 0; i < l; i++) {
                switch (cs[i].nodeType) {
                        case 1: //ELEMENT_NODE
                                str += ts_getInnerText(cs[i]);
                                break;
                        case 3:       //TEXT_NODE
                                str += cs[i].nodeValue;
                                break;
                }
        }
        return str;
}