Pomoc:Tworzenie stron powyżej limitu transkluzji

✽   



Wstęp edytuj

Niniejszy poradnik ma raczej charakter dokumentacji kroków, które podejmujemy wyjątkowo, gdy zwyczajna metoda tworzenia strony w przestrzeni głównej prowadzi do błędu.

Duże strony całości sprawiają istotny problem techniczny. Wynika to z tzw. limitu transkluzji w oprogramowaniu wiki (2097152 bajtów).
Jeśli na końcu strony widzimy jedynie błędy, prawdopodobnie jest to właśnie problem z wielkością strony po transkludowaniu stron i rozwinięciu szablonów.
Strony całości robimy tradycyjnie dla użytkowników jako alternatywę do e-booków podzielonych na części oraz dla łatwiejszego poszukiwania jakiegoś fragmentu na ekranie komputera.

Dwa sposoby tworzenia stron całości edytuj

Duże strony całości powyżej limitu transkluzji można tworzyć na dwa sposoby:

  1. iwpages Przykłady: Potop (Sienkiewicz)/całośćAnna Karenina (Tołstoj, 1898)/całość[1]
  2. substytucja Przykłady: Winnetou/całośćOld Surehand/całość

Zalety i wady metod edytuj

iwpages substytucja
dynamiczne dynamiczne dostosowanie treści okresowo aktualizowane bot/ręcznie
numery stron w funkcji koryguj nie działa działa
konwersja do e-booka nie działa[2] działa
przypisy fragmenty objęte iwpages nie mogą zawierać przypisów działają
obciążenie przeglądarki klienta duże mniejsze, proces odbywa się na serwerze
łączenie wyrazów między stronami pp/pk lub zwykły łącznik - tylko pp/pk[3]
łatwość przygotowania łatwa wymaga więcej pracy


Jeszcze o przypisach w iwpages:bardzo karkołomnymi metodami można zrobić osobne przypisy na przykład dla każdego tomu, gdy pierwszy jest w całości transkludowany przez iwpages, drugi zwyczajnie. Niemniej jednak jest to raczej tylko potwierdzenie wskazanej wady.

Podsumowując:
iwpages nie daje funkcjonalnego e-booka, jest łatwiejsza w przygotowaniu, nie sprawdza się w tekstach zawierających dużo przypisów
substytucja wymaga okresowego odświeżania kodu strony

Praktyka edytuj

iwpages edytuj

Jeśli strona nie tworzy się prawidłowo z powodu przekroczenia limitu transkluzji można część stron transkludować nie zwykłym mechanizmem[4]:

  • <pages index="XXXXX" from=yy to=zz fromsection="aaa" tosection="bbb"/> ale:
    • {{iwpages|pl|XXXXX|yy|zz|aaa|bbb}}

lub np.:

  • zamiast <pages index="XXXXX" from=yy to=zz/>
    • {{iwpages|pl|XXXXX|yy|zz}}

Należy uważać, by fragmenty transkludowane przy pomocy iwpages nie zawierały przypisów, granice między blokami powinny pokrywać się z granicami akapitów, a najlepiej rozdziałów.

substytucja edytuj

Idea jest taka, by część tego, co robi automatycznie <pages ... wykonać bezpośrednio na stronie. Jednak by nie tracić wyniku pracy na każdej ze stron (np.: Strona:Ciekawa książka/724 ) umieszczamy gdzieś (na stronie dyskusji) kod tych stron.
{{subst:Proofreadpage pagenum template|page=Strona:NAZWA_STRONY/NR|num=pp}}{{subst:Strona:NAZWA_STRONY/NR}}␣
i tak po kolei każdą wstawianą stronę...
Strona:NAZWA_STRONY/NR – to oczywiście nazwa kolejnej strony w indeksie
pp – to numer strony ale taki, jaki chcemy uzyskać, w starannie zrobionym indeksie będzie to numer strony z książki, z paginy, w mniej starannie zrobionym po prostu numer kolejny strony w indeksie
Granica między blokiem <pages=... a stronami substytuowanymi powinna być tak dobrana, by wypadała na granicy akapitów, a jeszcze lepiej rozdziałów.
Mechanizm substytucji powoduje, że wyniki szablonów są wpisywane w treść docelowej strony na sztywno
Jeśli zostawimy jednak kod takiej strony (np. na stronie dyskusji), możemy go stamtąd kopiować i okresowo odświeżać stronę.

Przygotowanie edytuj

Ja poprzednio wspomniane, użycie substytucji stron w celu utworzenia strony całości wymaga, by strony nie kończyły się dywizem. Łącząc strony należy użyć szablonów {{pp}}/{{pk}}. Strony kończące się dywizem można ewentualnie poprawić botem. {{#invoke: Sandbox/Draco flavus/get index pages | drukuj7 | 1=index="PL A Dumas Czterdziestu pięciu.djvu" from=70 to=73|2=python3.8 pwb replace -user:"JakiśBot" -site:wikisource:pl -pt:0 -always -summary:"Bot zmienia dywizy na pp/pk"}}

2 / 3 rzamy, zawarł umo ■ wę z Hiszpanią i Gwi




python3.8 pwb replace -user:"JakiśBot" -site:wikisource:pl -pt:0 -always -summary:"Bot zmienia dywizy na pp/pk" -page:"Strona:PL A Dumas Czterdziestu pięciu.djvu/71" "umo-<noinclude" "<noinclude";
python3.8 pwb replace -user:"JakiśBot" -site:wikisource:pl -pt:0 -always -summary:"Bot zmienia dywizy na pp/pk" -page:"Strona:PL A Dumas Czterdziestu pięciu.djvu/72" "noinclude>wę" "noinclude>umowę";
echo done

Generator edytuj

Przygotowywanie kodu do substytucji jest dość żmudne, prosta funkcja (szablon) może to ułatwić. Nie tłumaczę wywołania dokładniej, gdyż uważam, że jeśli ktoś chce takie strony tworzyć, tym bardziej zorientuje się w sposobie działania funkcji i będzie wiedział jak i gdzie ją zastosować.
{{#invoke: Sandbox/Draco flavus/get index pages | drukuj5 |1=index="PL A Dumas Czterdziestu pięciu.djvu" from=70 to=73 }}

{{Proofreadpage pagenum template|page=Strona:PL A Dumas Czterdziestu pięciu.djvu/70|num=60}}{{Strona:PL A Dumas Czterdziestu pięciu.djvu/70}} {{Proofreadpage pagenum template|page=Strona:PL A Dumas Czterdziestu pięciu.djvu/71|num=61}}{{Strona:PL A Dumas Czterdziestu pięciu.djvu/71}} {{Proofreadpage pagenum template|page=Strona:PL A Dumas Czterdziestu pięciu.djvu/72|num=62}}{{Strona:PL A Dumas Czterdziestu pięciu.djvu/72}} {{Proofreadpage pagenum template|page=Strona:PL A Dumas Czterdziestu pięciu.djvu/73|num=63}}{{Strona:PL A Dumas Czterdziestu pięciu.djvu/73}}

Odświeżanie stron przez bota edytuj

Obecnie strony, które wymagają okresowego odświeżenia (tworzone z mechanizmem substytucji) są ręcznie dopisywane do skryptu. Lista takich stron jest też pielęgnowana na stronach Strony generowane automatycznie oraz na jej stronie dyskusji.

Zabezpieczanie stron edytuj

Ponieważ strony całości są odświeżane przez bota i nie przeznaczone do ręcznych ingerencji zwłaszcza przez osoby nieznające mechanizmów, są zabezpieczane „dla użytkowników automatycznie zatwierdzonych”. Filtr nadużyć uniemożliwia również edycję użytkownikom spoza grup botów i administratorów.
Strony dyskusji będące podstawą aktualizacji są również zabezpieczane na poziomie „dla użytkowników automatycznie zatwierdzonych”.





  1. Trudniejszy technicznie, z powodu ograniczeń dotyczących przypisów, konieczne było przeplatanie iwpages i klasycznej metody transkluzji.
  2. Dlatego w szablonie {{Dane tekstu}} na stronie całości (‏Ciekawa książka/całość‏) w polu inne powinien znaleźć się nie tekst | inne = {{epub}} ale raczej | inne = {{epub|Ciekawa książka}}. Można tu oczywiście użyć słowa magicznego {{ROOTPAGENAME}} a więc konstrukcji | inne = {{epub|{{ROOTPAGENAME}}}}.
  3. Jest to ograniczenie, jednak w przypadku właściwego przygotowania tekstu nie przeszkadza to. Więcej informacji na temat przenoszenie wyrazów można znaleźć w poradniku Przenoszenie wyrazów.
  4. Omówienie tagu <pages .../> można znaleźć w poradniku Transkluzja przy pomocy tagu pages.