Naprawa błędów łączy w subdomenie schron
ŹRÓDŁO Obecna architektura kodu źródłowego mojej witryny internetowej sprawia problemy podczas łączenia stron internetowych. W przeciwieństwe do pozostałych subdomen adresy schronu zawierają podkatalogi docelowe. Przez to niemożliwe jest użycie jednolitego sposobu łączenia stron z obecną konfiguracją.
ŹRÓDŁO KOPIA Jekyll zawiera mechanizm pozwalający na zmianę domyślnej struktury adresów stron internetowych. Tym mechanizmem są trwałe łącza. Trwałe łącza są ścieżkami wyjściowymi dla stron witryny internetowej. Dzięki nim możliwa jest architektura adresów stron internetowych inna od architektury kodu źródłowego.
ŹRÓDŁO Jekyll rozróżnia trzy abstrakcyjne typy stron internetowych. Strony specjalne wymagają ustawienia trwałego łącza w nagłówku danego pliku wejściowego, i nie sprawiają problemów w mojej architekturze. Nie muszę więc niczego zmieniać w tym typie. Symbol zastępczy wpisów dziennika również daje zadowalający efekt. Zmiany są konieczne w symbolu zastępczym kolekcji stron. Przeszkodą jest obecność ścieżki pliku wejściowego, gdzie wystarczy tytuł.
Aby potwierdzić działanie mechanizmu trwałych łączy po raz pierwszy od dawna serwuję testowy schron i otwieram publiczną listę zadań.
Jak dotychczas, adres strony zawiera podkatalog docelowy: http://localhost:4000/pracownia/ww/publiczna-lista-zadań.html
.
collections:
biblioteka:
output: true
laboratorium:
output: true
pracownia:
output: true
Konfiguracja witryny internetowej w pliku _config.yml
potwierdza domyślne ustawienie mechanizmu trwałych łączy.
Nie chcąc się powtarzać próbuję ustawić wspólne trwałe łącze dla wszystkich kolekcji.
collections:
permalink: /:collection/:title
biblioteka:
output: true
laboratorium:
output: true
pracownia:
output: true
Takie umiejscowienie symbolu zastępczego nie przynosi żadnego skutku po ponownym uruchomieniu serwera. Przenoszę ten symbol zastępczy do kolekcji pracowni.
collections:
biblioteka:
output: true
laboratorium:
output: true
pracownia:
output: true
permalink: /:collection/:title
Po raz kolejny uruchamiam serwer i tym razem widzę pożądany efekt: http://localhost:4000/pracownia/publiczna-lista-zadań
.
Cieszy mnie fakt, że Jekyll pozostawia znaki diakrytyczne w tytule.
Natomiast w przeciwieństwie do wszystkich pozostałych stron mojej witryny internetowej brakuje rozszerzenia pliku w adresie.
Ten brak jest trywialny do uzupełnienia.
collections:
biblioteka:
output: true
laboratorium:
output: true
pracownia:
output: true
permalink: /:collection/:title:output_ext
Znowu uruchamiam serwer i potwierdzam skuteczność tej zmiany: http://localhost:4000/pracownia/publiczna-lista-zadań.html
.
Następnie, z nadzieją że moja intuicja jest słuszna, tworzę „zmienną” zawierającą wartość nowego ustawienia trwałego łącza.
collection-permalink: /:collection/:title:output_ext
collections:
biblioteka:
output: true
laboratorium:
output: true
pracownia:
output: true
permalink: collection-permalink
Niestety tym razem moja intuicja zawiodła mnie. Po przejrzeniu kilku zewnętrznych stron internetowych dochodzę do wniosku, że YAML nie posiada zmiennych w oczekiwanym przeze mnie sensie. Poddaję się i powielam ustawienie trwałych łączy dla wszystkich kolekcji.
collections:
biblioteka:
output: true
permalink: /:collection/:title:output_ext
laboratorium:
output: true
permalink: /:collection/:title:output_ext
pracownia:
output: true
permalink: /:collection/:title:output_ext
Ostatni raz uruchamiam serwer i tym razem przeglądam strony każdej kolekcji. Problem rozwiązany!
DO ZROBIENIA Manipulując już jakiś czas łączami do stron internetowych zacząłem się zastanawiać nad usprawnieniem tego procesu. Warto byłoby spróbować zbudować system odnoszenia się do stron internetowych po nazwie pliku wejściowego. używam już schematu nazywania gwarantującego unikalne nazwy, co ułatwia projekt.
DO ZROBIENIA Wpisy dziennika mają właściwość kategorii. Mój schemat nazywania wpisów przydziela kategorie. Powinienem to wykorzystać do dynamicznego przydzielania kategorii zrozumiałych dla Jekyll.
DO ZROBIENIA Uważam również, że powinienem nauczyć się YAML na tyle, aby móc definitywnie stwierdzić, czy nie da się uniknąć zbędnego powielania danych.