ŹRÓDŁO Podczas implementacji łączy między stronami tej witryny internetowej odkryłem, że obecny schemat budowania struktury schronu wymaga obejścia podkatalogów docelowych.

Obecność tych podkatalogów w adresach uniemożliwia proste łączenie stron internetowych wewnątrz schronu.


ŹRÓDŁO KOPIA Jednym ze sposobów modyfikacji adresów internetowych jest technika trwałych łączy.

Trwałe łącza są ścieżkami wyjściowymi dla stron, wpisów lub kolekcji. Pozwalają na strukturę kodu źródłowego inną niż struktura witryny.

Aby poznać tę technikę, postanowiłem uważnie przeczytać stronę dokumentacji Jekyll poświęconą temu tematowi.

Typy stron

Problem z obecnością podkatalogów docelowych w adresach stron występuje tylko w niektórych stronach.

Nie występuje on we wpisach dziennika. Nie występuje również w stronach opisowych kategorii stron. Pozostałe strony natomiast zawierają w adresach problematyczne podkatalogi docelowe.

Wpisy dziennika nie mają problemu z adresami ponieważ ich adresy zależą wyłącznie od nazwy samego pliku wejściowego. Strony opisowe kategorii stron nie padają ofiarą tego problemu ponieważ ich pliki wejściowe znajdują się na szczycie struktury katalogów witryny internetowej.


ŹRÓDŁO KOPIA Moja obserwacja problemu nakłada się na wspomniane w dokumentacji typy stron.

Aby ustawić globalne trwałe łącze, należy użyć zmiennej permalink w _config.yml. Można użyć symboli zastępczych aby uzyskać pożądane wyjście. Na przykład:

permalink: /:categories/:year/:month/:day/:title:output_ext

Zauważ, że strony i kolekcje (wyłączając posts i drafts) nie mają czasu i kategorii (dla stron, powyższy :title jest równy :basename), a te aspekty trwałego łącza są ignorowane dla wyjścia.

Oznacza to, że mój problem z adresami wyjściowymi dotyczy tylko kolekcji. Aby ułatwić rozróżnianie typów stron, nie kwalifikuję wpisów dziennika jako kolekcji.

Mimo, że strony (rozumiane jako jeden z typów) również nie posiadają aspektów czasu i kategorii, moja obecna architektura witryny internetowej maskuje problem adresacji. Podczas implementacji rozwiązania uwzględniającego potrzeby mojej architektury powinienem być świadomy, że istnieje ryzyko odsłonięcia tej maski.

Symbole zastępcze

ŹRÓDŁO KOPIA Zacytowany wcześniej fragment dokumentacji wspomina symbole zastępcze.

Czytana strona dokumentacji nie definiuje symboli zastępczych. Rozumiem je jako rozmaite właściwości przetwarzanego pliku wejściowego.

Dzięki symbolom zastępczym możliwe jest całkowicie dynamiczna konstrukcja trwałych łączy.


DO ZROBIENIA Świadomość istnienia typów stron oraz symboli zastępczych pozwala na usunięcie podkatalogów docelowych z adresów wyjścia.

Należy ustalić domyślne wartości zmiennej permalink dla kolekcji i stron, a następnie zmodyfikować je tak, aby uniezależnić je od umiejscowienia plików wejściowych w strukturze katalogów.

Przy okazji można również rozważyć modyfikację zmiennej permalink dla wpisów, co byłoby jednak kosztowne ze względu na dużą ilość istniejących plików wejściowych i łączy między nimi.