Pomoc:Tworzenie stron powyżej limitu transkluzji

Z Wikiźródeł, wolnej biblioteki
✽   



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.