Przejdź do zawartości

Dyskusja modułu:Pages

Treść strony nie jest dostępna w innych językach.
Dodaj temat
Z Wikiźródeł, wolnej biblioteki

funkcje

  1. jaki to indeks (stary, nowy)
  2. parsuj from, to w starym indeksie (ew. from domyślne, to domyślne) → lista stron, lista numerów stron
  3. parsuj from, to , include, exclude, step w nowym indeksie (ew. from domyślne, to domyślne) → lista stron, lista numerów stron
    • lista numerów stron w nowym ewentualnie wydzielona jako nowa funkcja (na razie po prostu wg nazwy srony /n )
  4. sklejaj tekst (lista stron, lista numerów stron, liczba stron, from, to, onlysection)
    • przeanalizuj, czy jest onlysection
      • get_only_section_page
      • get_firstpage, get_page, get_lastpage
get_only_section_page (pagename, onlysection) get_firstpage (firstpagename, lastpagename, fromsection, tosection)

get_page (pagename)
get_lastpage (firstpagename, lastpagename, tosection)


  • get_firstpage jest najinteligentniejsza, ale wzywana jest raz
    • firstpage == lastpage AND fromsection == nil AND tosection == nil
    • firstpage == lastpage AND fromsection == tosection (ale nie nil)
    • firstpage == lastpage AND fromsection ~= tosection
    • firstpage ~= lastpage AND fromsection == nil
    • firstpage ~= lastpage AND fromsection ~= nil
  • get_lastpage jest również wzywana raz i też ma podobną logikę
    • firstpage == lastpage
    • firstpage ~= lastpage AND tosection == nil
    • firstpage ~= lastpage AND tosection ~= nil

  1. get content strony (lista stron, numer z iteratora, from, to, onlysection)
    • jeśli onlysection to każdą ciachaj regexem
    • jeśli nie onlysection i jednocześnie from==to i fromsection==tosection potraktuj jak onlysection
    • jeśli nie onlysection i jednocześnie from==to i fromsection~=tosection ciachaj jak onlysection <section begin=z_fromsection /> do <section begin=z_tosection /> ale wielokrotnie (można to ewentualnie przerobić do jakiejś innej formy np. zamienić wszystkie begin=z_fromsection i wszystkie end=z_tosection na coś innego np. 🐠 jednak na końcu strony trzeba jeszcze ewentualnie dostawić niesparowany znacznik
    • jeśli nie onlysection to pierwszą ciachaj regexem from
    • jeśli nie onlysection to ostatnią ciachaj regexem to
  2. Możliwe błędy - czy warto się nimi zajmować?
    • brak strony include, exclude
      • brak str. include powoduje błąd
      • brak str. exclude nie powoduje błędu
    • strona to przed stroną from — oryginał zachowuje się tu różnie
      • Dla nowego indeksu - powoduje błąd
      • Dla starego indeksu - jest równoważne z pominięciem parametru to
    • źle zbudowane zakresy include, exclude (np. 78-76)
      • oba powodują błąd
    • brak strony wskazanej parametrem from i to (stary i nowy) — oryginał zachowuje się tu różnie
      • w nowym indeksie powoduje błąd
      • w starym
        • from=ø to=Error → całość
        • from=Error to=OK → puste
        • from=OK to=Error → pominięty błąd
        • from=Error to=Error → puste
        • from=Error to=ø → puste
NOWY to=🆗 to=⚡️ to=ø
from=🆗 🆗 ⚡️ do końca
from=⚡️ ⚡️ ⚡️ ⚡️
from=ø od początku ⚡️ ø
STARY to=🆗 to=⚡️ to=ø
from=🆗 🆗 do końca do końca
from=⚡️ ø ø ø
from=ø od początku całość ø

Architektura

  • get_index_pages (nazwa indeksu) ---> index_strony{}, index_etykiety{}, index_typ
  • get_range_pages (index_strony, index_etykiety, index_typ, from to onlysection include exclude fromsection tosection) ----> pages_strony{}, pages_etykiety{}, fromsection, tosection, onlysection
  • sklejaj tekst ( cały opis zakresu) ściąga sobie pages_strony{}, pages_etykiety{}, pages_in_range{}, fromsection, tosection, onlysection
    • get_only_section_page, get_firstpage, get_page, get_lastpage jak powyżej