Wiki Page Content

Analizatoriai

Analizatoriai patikrina puslapio turinį , kad sukurtų seką, pagal kurią būtų iškviečiami rinkmenos, sukuriančios matomą rezultatą. MoinMoin išrenka puslapio analizatorių naudojant 2 skirtingus būdus:

  1. FORMAT Apdorojimo Instrukcijos - ieškokite PagalbaApdorojimoInstrukcijų

    A #FORMAT apdorojimo instrukcija gali būti naudojama pasakyti MoinMoin kurį analizatorių naudoti visam puslapio turiniui apdoroti. Numatytasis yra wiki analizatorius. Pavyzdys:

    #FORMAT cplusplus
    ... šiek tiek C++ kodo ...
  2. Kodo vaizdavimo regionai - žiūrėkite PagalbaFormatavimo

    Naudojant kodo atvaizdavimo regionus, analizatorius gali būti taikomas tik daliai puslapio (tai buvo processor region ankstesnėje MoinMoin versijoje). Jūs nurodote kuriuos analizatorius iskviesti, naudojanta bang kelio konstrukciją pirmoje eilutėje. Bang kelias yra a koncepcija, žinoma iš Unix komandinės eilutės scenarijų, kuriuose jie naudojami tuo pačiu tikslu: pirmoji eilutė pasako šelui kokią programą paleisti analizuoti likusioms scenarijaus eilutėms. Pavyzdžiui, kodas

    {{{#!CSV ,
    a,b,c
    d,e,f
    }}}
    Analizuoja lentelę:
    a b c
    d e f

(!) Pastaba: Yra 2 būdai išspręsti įterpimo problemas susijusias su }}}:

  • Naudokite daugiau negu 3 vingiuotus skliaustus pradžioje / pabaigoje analizatoriaus sekcijos (tai, ką naudojate, neturi būti jūsų apskliaudžiamoje dalyje). Pvz.:
    {{{{
    {{{
    ...
    }}}
    }}}}
  • Naudokite 3 curly braces + kokį nors unikalų string:
    {{{asdfghj
    {{{
    ...
    }}}
    asdfghj}}}

Norėdami rasti daugiau informacijos apie galimus markup, skaitykite PagalbaRedagavimo.

AnalizatoriausPagrindas

ParserBase (analizatoriaus pagrindas) yra analizatoriaus paslaugų klasė, naudojama išgauti spalvotą šaltinio vaizdą. Tai lengvai išplėčiama. HTML Formatuotojas atvaizduos tokį kodą su perjungiamais eilučių numeriais, jeigu naršyklė palaiko DOM ir JavaScript.

ParserBase spalvinimo analizatorius supranta šiuos argumentus #FORMAT pi arba hashbang eilutę. Jums tereikia pridėti tuos argumentus po analizatoriaus pavadinimo (#FORMAT python start=10 step=10 numbers=on arba #!python numbers=off).

numbers
jeigu turi būti pridėti eilučiu numeriai. numatytasis 'on'. galimos vertės: 'on', 'off' (be eilučių numerių,tik javascript jiems pridėti), 'disable' (visai be eilučių numeravimo)
start
kur pradėti numeruoti. numatyta 1
step
padidinti eilutės numerį. numatyta 1

MoinMoin turi kelis pavyzdžius, nuo kurių galite tęsti:

python

Nuspalvina python kodą. Jis gaunamas ne iš ParserBase, bet leidžia tuos pačius argumentus kaip ir ParserBase analizatoriai.

   1 def hello():
   2     print "Labas Pasauli!"

def hello():
    print "Labas Pasauli!"

def hello():
    print "Labas Pasauli!"

cplusplus

   1 int main(int argc, char **argv) {
   2   return 0;
   3 }

java

   1 import java.util.Date;
   2 import java.util.Calendar;
   3 
   4 public class IntDate
   5 {
   6   public static Date getDate(String year, String month, String day)
   7     {
   8       // Data(int, int, int) has been deprecated, taigi naudokite Calendar norėdami
   9       // nustatyti metus, menesį ir dieną.
  10       Calendar c = Calendar.getInstance();
  11       // Pakeicia kiekvieną argumentą į int.
  12       c.set(Integer.parseInt(year),Integer.parseInt(month),Integer.parseInt(day));
  13       return c.getTime();
  14     }
  15 }

pascal

   1 function TRegEx.Match(const s:string):boolean;
   2 var
   3     l,i : integer;
   4 begin
   5     result := MatchPos(s,l,i);
   6 end;

IRC

Įdeda IRC žurnalą į lentelę.

   1 (23:18) <     jroes> ah
   2 (23:21) -!- gpciceri [~gpciceri@host181-130.pool8248.interbusiness.it] has quit [Read error: 110 (Connection timed out)]
   3 (23:36) < ThomasWal> you could also write a parser or processor
   4 (23:38) <     jroes> i could?
   5 (23:38) <     jroes> would that require modification on the moin end though?
   6 (23:38) <     jroes> i cant change the wiki myself :x

Formatavimo analizatorius yra ilgas IRSSI formatas, populiarus konsolinis IRC klientas, bet tai taip pat turėtų sutapti su daugumos kitų IRC klientų žurnalizavimo formatu.

CSV

CSV analizatorius dirba su taip vadinamomis kableliais atskirtomis vertėmis, tačiau dabar kablelis yra , pagal numatymą, kaip kabliataškis. Pirmoji eilutė yra manoma, jog turi stulpelių antraštes, kurios atvaizduojamos paryškintai, taigi kai jus nenorite lentelių pavadinimų, palikite pirmąją eilutę tusčią.

Kelyje gali būti "-index" argumentai, kur kiekvienas iš jų slepia tam tikrą stulpelį iš išvedinio; stulpelių indeksai yra yra skaičiuojami pradedant nuo 1.

Bet koks ne tarpo argumentas, kuris neprasideda - nurodo skirtuką. Tai leidžia naudoti, pavyzdžiui, kablelius (,) vietoj kabliataškių (;). Jeigu nepateikiate skirtukų (separator), bus naudojamas ;.

  • /!\ Šiuo metu įtrauktas CSV analizatoriaus kodas yra labai paprastas.

Lentelės pavyzdžiai (naudotą žymėjimą žiūrėkite neapdorotame puslapio tekste):

MoinMoin 1.3 - pataisymo istorijos apkarpymas:

patch-366 make _normalize_text public method Nir Soffer
patch-367 fixed failing test wikiutil: good system page names Nir Soffer
patch-368 Fixed DeprecationWarning in RandomPage.py and an unused import in twistedmoin.py Alexander Schremmer
patch-369 remove duplicate code in formatter.base Thomas Waldmann
patch-370 fixed long int in mig3 Thomas Waldmann
patch-371 fixed unicode error on eventlog Nir Soffer
patch-372 fixed util.web.makeQueryString and Page.url Nir Soffer
patch-373 fixed again non ascii http_referer Nir Soffer
patch-374 CSV.py supports different separators now Alexander Schremmer
patch-375 improved searchform behavior on Mozilla/Firefox Nir Soffer
patch-376 More correct script for actions menu init Nir Soffer

MoinMoin Version History:

Version Date
0.11 2002-03-11
0.10 2001-10-28
0.9 2001-05-07
0.8 2001-01-23
0.7 2000-12-06
0.6 2000-12-04
0.5 2000-11-17
0.4 2000-11-01
0.3 2000-10-25
0.2 2000-08-26
0.1 2000-07-29

reStructuredText

Skaitykite /ReStructuredText

XML/XSLT/DocBook

Žiūrėkite HelpOnXmlPages.

Papildomi Analizatoriai

Norėdami sužinoti apie daugiau analizatorių ir diegimo instrukcijas, skaitykite ParserMarket