Pomoc:Podstrony, aspekty techniczne

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania

Szablon:Spis treści (pomoc)/uplinkSzablon:Clear

Używania podston na Wikiźródłach

Zasady

Używanie podstron na wiki zależy od ustawień i jest włączane na poziomie przestrzeni nazw (patrz: poradnik Przestrzeń nazw). Na polskich Wikiźródłach używane są:

  • w przestrzeni głównej do tworzenia hierarchii dla niesamodzielnych części utworu
    • w przestrzeni głównej tradycyjnie tworzymy również wariant prezentacji utworu jako podstronę /całość (patrz: poradnik Strony całości)
  • w innych przestrzeniach do tworzenia opisów szablonów, modułów, do rezerwacji indeksów, do tworzenia eksperymentalnych (prywatnych) modułów i szablonów

Najważniejsza i charakterystyczna dla Wikiźródeł jest koncepcja samodzielności utworu (patrz: poradnik Samodzielność części tekstu).

Najważniejsze uwagi

Z punktu widzenia redagowania Wikiźródeł najważniejszy jest powyższy podrozdział Zasady oraz aspekt W praktyce.

Zalety podstron

  • Główną zaletą tworzenia podstron w przestrzeni głównej jest utrzymywanie jasnej hierarchii w ramach części utworu, utrzymywanie wszystkich części razem.
  • Tworzenie automatycznych linków ułatwiających nawigację między częściami.
  • Umożliwia osobom z odpowiednimi uprawnieniami (movesubpages) – na polskich Wikiźródłach administratorzy – zmianę nazwy strony wraz z podstronami

Wady

  • Zajmuje znak ukośnika
  • Utrudnia korzystanie ze stron dyskusji

Nawigacja

Automatyczna nawigacja

Na górze podstrony tworzone są automatyczne linki prowadzące do (pod)strony bezpośrednio powyżej w hierarchii.

Linki przy pomocy ../

W obrębie podwójnych nawiasów kwadratowych (a więc w normalnej składni wiki linków) można używać w celu linkowania względnego (względem strony na której się kod znajduje) następujących symboli:

W niektórych sytuacja dodatkowy ukośnik na końcu powoduje wyświetlanie się jedynie ostatniego segmentu nazwy.


Bardziej rozbudowany przykład:

By utworzyć na stronie poniżej link do strony Szablon:F* Można użyć poniższego kodu
Wyprawa Szablon:Tab[[/Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0/Księga I Szablon:Tab[[../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0/Część pierwsza Szablon:Tab[[../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 1 Szablon:Tab[[../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 2 Szablon:Tab[[../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0/Część druga Szablon:Tab[[../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 1 Szablon:Tab[[../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 2 Szablon:Tab[[../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../../../Księga II/Część pierwsza]]
Szablon:0Szablon:1Szablon:0/Księga II Szablon:Tab[[/Część pierwsza]]
Szablon:F* Szablon:TabSzablon:Tab
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 1 Szablon:Tab[[../]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 2 Szablon:Tab[[../]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0/Część druga Szablon:Tab[[../Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 1 Szablon:Tab[[../../Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../../Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../../Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0/Rozdział 2 Szablon:Tab[[../../Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja i Szablon:Tab[[../../../Część pierwsza]]
Szablon:0Szablon:1Szablon:0Szablon:0Szablon:1Szablon:0Szablon:1Szablon:0Szablon:0Szablon:0/Sekcja ii Szablon:Tab[[../../../Część pierwsza]]

Samodzielnie konstrukcje typu /Rozdział I czy ../Księga I nie tworzą linków, mogą być w tym celu ujęte (jak to pokazano) w nawiasy kwadratowe. Samodzielnie ../ itp. są zwykłym tekstem. Nazwy stron można uzyskać przy pomocy {{#rel2abs:Szablon:ParametrPomoc}}, gdzie Szablon:ParametrPomoc to konstrukcja jak wyżej. Stosuje się wtedy:

Należy jeszcze dodać, że ewentualne ukośniki w nazwie strony (gdy są częścią nazwy ale nie tworzą hierarchii np. System operacyjny OS/2 ) mogą zaburzyć nawigację przy pomocy skrótów typu ../.

Szablon:F

Użycie magicznych słów

Definicje

Magiczne słowa {{NAMESPACE}}, {{ROOTPAGENAME}}, {{BASEPAGENAME}}, {{SUBPAGENAME}}, {{PAGENAME}}, {{FULLPAGENAME}} mają nieco inną logikę, choć w pewnych wypadkach mogą mieć podobne działanie. Nie ujęte w nawiasy kwadratowe dają po prostu tekst, w połączeniu z nawiasami mogą być częścią funkcjonującego linku.
Jak widać powyżej konstrukcje oparte na ../ pozwalają na nawigację względem danej (pod)strony w górę lub dół hierarchii o określoną liczbę stopni. Podobnie działa jedynie {{BASEPAGENAME}}. Inne zwracają część nazwy (pod)strony i tak:

Magiczne słowo Opis działania
{{NAMESPACE}} nazwę przestrzeni, w której się znajduje dana (pod)strona
{{PAGENAME}} nazwę podstrony, ale bez nazwy przestrzeni, w której się znajduje dana (pod)strona
W przypadku stron w przestrzeni głównej jest to zarazem pełna nazwa (pod)strony
{{FULLPAGENAME}} nazwę podstrony, wraz z nazwą przestrzeni, w której się znajduje dana (pod)strona
W przypadku stron w przestrzeni głównej jest to to samo co {{PAGENAME}}, zaś w przypadku ogólnym odpowiada konstrukcji: {{NAMESPACE}}:{{PAGENAME}}
{{ROOTPAGENAME}} najgłębsza część nazwy (pod)strony, ale bez nazwy przestrzeni, w której się znajduje dana (pod)strona
{{BASEPAGENAME}} nazwa (pod)strony, w hierarchii bezpośrednio „nad” daną podstroną, ale bez nazwy przestrzeni, w której się znajduje dana (pod)strona
Można (zwłaszcza w przypadku innych przestrzeni niż przestrzeń główna zastosować konstrukcję {{NAMESPACE}}:{{BASEPAGENAME}}
{{SUBPAGENAME}} nazwa ostatniego członu nazwy (pod)strony. Z reguły nie daje funkcjonalnego (a przynajmniej sensownego) linku. Może być stosowana na przykład do odróżniania stron /całość od innych.



Szablon:CentrujStart Daleka wyprawa{{ROOTPAGENAME}}/Księga pierwsza/{{BASEPAGENAME}}/Rozdział 104{{SUBPAGENAME}}{{PAGENAME}}

W przypadkach „zdegenerowanych” (nazwa dwu‑ lub jednoczłonowa) mamy:

Daleka wyprawa{{ROOTPAGENAME}}{{BASEPAGENAME}}/Księga pierwsza{{SUBPAGENAME}}{{PAGENAME}}|Daleka wyprawa{{ROOTPAGENAME}}{{PAGENAME}}{{BASEPAGENAME}}{{SUBPAGENAME}}


Dla stron w przestrzeni głównej {{NAMESPACE}} zwraca pusty tekst, zaś {{PAGENAME}} = {{FULLPAGENAME}}. W innych przypadkach można to prześledzić na poniższym schemacie:

Strona{{NAMESPACE}}:PL Kowalski Daleka wyprawa.djvu/327{{PAGENAME}}{{FULLPAGENAME}} Szablon:CentrujKoniec

Przykłady

Strona {{NAMESPACE}} {{PAGENAME}} {{FULLPAGENAME}} {{ROOTPAGENAME}} {{BASEPAGENAME}} {{SUBPAGENAME}}
Daleka wyprawa Daleka wyprawa Daleka wyprawa Daleka wyprawa Daleka wyprawa Daleka wyprawa
Daleka wyprawa/Księga I Daleka wyprawa/Księga I Daleka wyprawa/Księga I Daleka wyprawa Daleka wyprawa Księga I
Daleka wyprawa/Księga I/Część pierwsza Daleka wyprawa/Księga I/Część pierwsza Daleka wyprawa/Księga I/Część pierwsza Daleka wyprawa Daleka wyprawa/Księga I Część pierwsza
Pomoc:Xxx Pomoc Xxx Pomoc:Xxx Xxx Xxx Xxx
Pomoc:Xxx/Yyy Pomoc Xxx/Yyy Pomoc:Xxx/Yyy Xxx Xxx Yyy
Pomoc:Xxx/Yyy/Vvv Pomoc Xxx/Yyy/Vvv Pomoc:Xxx/Yyy/Vvv Xxx Xxx/Yyy Vvv
Pomoc:Xxx/Yyy/Vvv/Qqq Pomoc Xxx/Yyy/Vvv/Qqq Pomoc:Xxx/Yyy/Vvv/Qqq Xxx Xxx/Yyy/Vvv Qqq

Analiza innej strony niż bieżąca

Wstawienie w słowach magicznych po dwukropku nazwy strony powoduje efektywnie analizę nazwy np. {{BASEPAGENAME:Pomoc:Xxx/Yyy/Vvv/Qqq}}→Xxx/Yyy/Vvv.
Można to również wykorzystać, by wyodrębnić na przykład przedostatni człon nazwy strony {{SUBPAGENAME:{{BASEPAGENAME}}}}. Ten kod wywołany na stronie Daleka wyprawa/Księga I/Część pierwsza da nam Księga I.

Użycie funkcji parsera #titleparts

Użycie funkcji parsera #titleparts umożliwia najpełniejszą kontrolę kosztem czytelności kodu.
Funkcja dzieli nazwę strony na segmenty kierując się ukośnikami zwraca fragment nazwy zgodnie ze schematem: {{#titleparts:Szablon:ParametrPomoc|Szablon:ParametrPomoc|Szablon:ParametrPomoc}}

Jeśli Szablon:ParametrPomoc nie jest określona, to przyjmuje wartość domyślną 0, co jest interpretowane jako wszystkie wskazane. Jeśli Szablon:ParametrPomoc nie jest określony lub jest równy 0, to przyjmowana jest wartość 1.

Przykłady:

Kod Efekt
{{#titleparts: Szablon:F* }} Pomoc:Xxx/Yyy/Vvv/Qqq
{{#titleparts: Szablon:F*/Yyy/Vvv/Qqq | 1 }} Pomoc:XxxSzablon:TabSzablon:F*)
{{#titleparts: Szablon:F*/Vvv/Qqq | 2 }} Pomoc:Xxx/Yyy
{{#titleparts: Pomoc:Xxx/Szablon:F*/Qqq | 2 | 2 }} Yyy/Vvv
{{#titleparts: Pomoc:Xxx/Szablon:F* | | 2 }} Yyy/Vvv/Qqq
{{#titleparts: Pomoc:Xxx/Yyy/Vvv/Qqq | | 5 }}

Oba parametry numeryczne mogą mieć również wartość ujemną. Negatywna wartość Szablon:ParametrPomoc mówiąc obrazowo obcina segmenty końcowe. Negatywną wartość Szablon:ParametrPomoc należy interpretować jako wartość liczoną od końca Szablon:ParametrPomoc.

Kod Efekt
{{#titleparts: Szablon:F*/Qqq | -1 }} Pomoc:Xxx/Yyy/VvvSzablon:TabSzablon:F*)}}
{{#titleparts: Pomoc:Xxx/Yyy/Vvv/Qqq | -4 }} Szablon:TabSzablon:F*
{{#titleparts: Pomoc:Xxx/Yyy/Vvv/Qqq | -5 }} Szablon:TabSzablon:F*
{{#titleparts: Pomoc:Xxx/Szablon:F*/Qqq | -1 | 2 }} Yyy/VvvSzablon:TabSzablon:F*
{{#titleparts: Pomoc:Xxx/Yyy/Szablon:F*/Qqq | -1 | -2 }} VvvSzablon:TabSzablon:F*
{{#titleparts: Szablon:F*/Vvv/Qqq | -2 }} Pomoc:Xxx/YyySzablon:TabSzablon:F*
{{#titleparts: Pomoc:Xxx/Yyy/Szablon:F* | 0 | -2 }} Vvv/QqqSzablon:TabSzablon:F*
{{#titleparts: Pomoc:Xxx/Yyy/Vvv/Szablon:F* | 0 | -1 }}
{{#titleparts: Pomoc:Xxx/Yyy/Vvv/Szablon:F* | 1 | -1 }}
QqqSzablon:TabSzablon:F*
Szablon:F*

By użyć tej konstrukcji tak, by analizowana była nazwa strony, na której funkcja #titleparts jest wywoływana należy użyć konstrukcji {{#titleparts:{{FULLPAGENAME}}...}}.

W praktyce

Linkowanie między częściami utworu, włączanie do właściwej kategorii

Jak wspomniano powyżej, podstrony służą do tworzenia hierarchii w ramach utworu. Nazwy utworów na Wikiźródłach zmieniają się stosunkowo często – np. dodawane jest w nawiasie nazwisko autora, rok wydania. Dla zachowania konsystencji po zmianie nazwy wskazane jest używanie względnych nazw (linków) w utworach podzielonych na podstrony:

Zastosowanie w szablonie Szablon:S w polu |Rozdział= (gdy powinno być to pole wypełnione) {{SUBPAGENAME}} może również nieco ułatwić tworzenie kolejnych podstron.
Nie należy jednak wstawiać bezrefleksyjnie takich konstrukcji gdy nazwy nie powinny być trwale powiązane (na przykład nazwa pliku lub kategorii na commons), które podlegają zasadom niezależnym od Wikiźródeł a dodatkowo utrudniają korzystanie na przykład z automatycznie tworzonych galerii.

Szablon {{Tfi}}

Zaletą tworzenia odnośników względnych jest przede wszystkim możliwość zmiany nazwy stron wraz z podstronami.[1] W przypadku, gdy chcemy odczytać tytuł tekstu głównego, który jest tworzony na podstawie indeksu można użyć szablonu Szablon:S.
Gdy części tekstu są samodzielne (np. zbiory nowel) szablon ten może być użyty w szablonie Szablon:S/Szablon:S w polu Pochodzenie oraz dla dołączenia do właściwej kategorii.
Innym zastosowaniem będzie tworzenie odnośników w spisie treści tworzonym w tekście (w przestrzeni Strona:).

Inne przydatne konstrukcje

Przykłady

{{#switch: {{PAGENAME}} |{{ROOTPAGENAME}}=Szablon:ParametrPomoc|{{ROOTPAGENAME}}/całość=Szablon:ParametrPomoc |Szablon:ParametrPomoc}}
  • test czy kod jest na stronie głównej lub na głównej stronie całości, czy na jakiejś podstronie
{{#switch: {{PAGENAME}} |{{ROOTPAGENAME}}|{{ROOTPAGENAME}}/całość=Szablon:ParametrPomoc |Szablon:ParametrPomoc}}
na przykład:
| okładka = {{#switch: {{PAGENAME}} |{{ROOTPAGENAME}}|{{ROOTPAGENAME}}/całość=Wiktor Hugo - Katedra Notre-Dame w Paryżu T.II.djvu | }}
| strona z okładką = {{#switch: {{PAGENAME}} |{{ROOTPAGENAME}}|{{ROOTPAGENAME}}/całość=1 | }}
  • tworzenie stron całości dla tomów {{całość|{{PAGENAME}}/całość|epub=i|{{lcfirst:{{SUBPAGENAME}}}}|Cały}} – umieszczony na stronie Szablon:ParametrPomoc w szablonie Szablon:S/Szablon:S w polu |inne= utworzy link do odpowiedniej strony całości z widocznym tekstem Szablon:F* a ten sam kod na stronie Szablon:ParametrPomoc oczywiście do strony całości trzeciego tomu z tekstem Szablon:F*.
    • lcfirst zamienia tu pierwszą literę na małą
    • inne przydatne funkcje z tej grupy to ucfirst (pierwsza litera na wielką), lc (wszystkie litery na małe), uc (wszystkie litery na wielkie)
  • sprawdzenie czy istnieje strona /całość {{#ifexist:{{PAGENAME}}/całość|Szablon:ParametrPomoc|Szablon:ParametrPomoc}}
  • pierwsza i druga (lub tylko pierwsza, jeśli drugiej nie ma) część nazwy:
{{#titleparts:{{PAGENAME}}|2|1}}
  • wyekstrahować pierwszą część nazwy (ROOTPAGENAME) i usunąć fragment w nawiasie (wraz z poprzedzającą spacją) {{#invoke:string|replace|{{ROOTPAGENAME}}| %b()||plain=false}} np.: Szablon:TabSzablon:TabSzablon:TabZakopane (Hoesick, 1900) → Zakopane
  • zazwyczaj synonim powyższego: {{#invoke:string|replace|{{ROOTPAGENAME}}| %(.*||plain=false}} np.: Szablon:TabSzablon:TabSzablon:TabZakopane (Hoesick, 1900) → Zakopane
  • pierwsza litera tytułu (strony głównej) {{padleft:|1|{{ROOTPAGENAME}}}}
  • pierwsza litera nazwy rozdziału (ostatniego członu nazwy) {{padleft:|1|{{SUBPAGENAME}}}}
  • część nazwy strony po ostatniej spacji {{#invoke:string|replace|{{PAGENAME}}|.* ([^ ]*)$|%1|plain=false}} np.: Szablon:TabSzablon:TabSzablon:TabZakopane (Hoesick, 1900)/Rozdział XIII → XIII
  • druga, trzecia część nazwy strony po usunięciu tekstu przed pierwszą spacją:

Bardziej skomplikowane przykłady

Dla hierarchii trzyrzędowej:
Kod: {{#ifeq:{{SUBPAGENAME}}|całość||{{#invoke:string|replace|{{#titleparts:{{PAGENAME}}|1|3}}|[^ ]* (.*)$|%1|plain=false}}}}

na stronie: Zakopane (Hoesick, 1900) → ø

na stronie: Zakopane (Hoesick, 1900)/Tom IV → ø

na stronie: Zakopane (Hoesick, 1900)/Tom IV/Rozdział dwudziesty siódmy → dwudziesty siódmy

na stronie: Zakopane (Hoesick, 1900)/całość → ø

na stronie: Zakopane (Hoesick, 1900)/Tom IV/całość → ø


Kod: {{#ifeq:{{SUBPAGENAME}}|całość||{{#invoke:string|replace|{{#titleparts:{{PAGENAME}}|1|2}}|[^ ]* (.*)$|%1|plain=false}}}}

na stronie: Zakopane (Hoesick, 1900) → ø

na stronie: Zakopane (Hoesick, 1900)/Tom IV → IV

na stronie: Zakopane (Hoesick, 1900)/Tom IV/Rozdział dwudziesty siódmy → IV

na stronie: Zakopane (Hoesick, 1900)/całość → ø

na stronie: Zakopane (Hoesick, 1900)/Tom IV/całość → IV


Dla hierarchii dwurzędowej:
Kod: {{#ifeq:{{SUBPAGENAME}}|całość||{{#invoke:string|replace|{{#titleparts:{{PAGENAME}}|1|2}}|[^ ]* (.*)$|%1|plain=false}}}}

na stronie: Zakopane (Hoesick, 1900) → ø

na stronie: Zakopane (Hoesick, 1900)/Rozdział 6 → 6

na stronie: Zakopane (Hoesick, 1900)/całość → ø

Osobne strony całości dla tomów Szablon:F

Uwagi stylistyczne

Należy unikać pisania kodu w sposób trudny do zrozumienia.
Należy preferować konstrukcje bardziej uniwersalne.

Szablon:Przypisy

  1. Dodatkowymi, mniej istotnymi zaletami jest pewne uproszczenie kodu i większa odporność na literówki.