Generator stron internetowych Jekyll upraszcza tworzenie witryn internetowych. Używając w odpowiedni sposób łączy symbolicznych można uzyskać warianty tej samej witryny internetowej o różnej treści.


W trakcie działania Jekyll przetwarza dwie klasy plików. Pierwszą są pliki konfiguracyjne, sterujące działaniem generatora oraz definiujące wygląd i działanie witryny internetowej. Drugą klasą są pliki wejściowe, zawierające treść stron internetowych.

Dzięki łączom symbolicznym można wykonać kopię witryny internetowej, dostępną pod innym adresem. Zmiany wprowadzone w oryginalnej witrynie są automatycznie odzwierciedlane w połączonych kopiach. Takie połączenia symboliczne można wyspecjalizować w celu ograniczenia pod wybranym adresem dostępu do części treści.

Ograniczanie dostępu do treści witryny internetowej może być zabiegiem bezpieczeństwa. W takiej sytuacji dobrą praktyką jest całkowita izolacja każdego wariantu witryny internetowej. To znaczy, że każdy wariant ma wydzieloną własną kopię struktury plików. Dzięki temu w razie ataku na jeden adres, dostęp do treści pozostałych wariantów jest znacznie utrudniony. Wykorzystanie łączy symbolicznych w procesie generowania witryny przez Jekyll skutkuje taką izolacją plików.


Dla prostoty prowadzenia zestawu wariantów witryny internetowej optymalne jest wydzielenie jednego wariantu źródłowego i dowolnej ilości wariantów pochodnych. Wariant źródłowy jest pierwotną strukturą plików, gdzie zapisywane są oryginały wszystkich plików konfiguracyjnych i wejściowych. Warianty pochodne są strukturami plików będącymi częściowymi kopiami wariantu źródłowego tworzonymi za pomocą łączy symbolicznych do wybranych plików wariantu źródłowego.

Wariant źródłowy wyróżnia się od pochodnego pogłębioną strukturą plików w każdej kategorii stron. Każda kategoria stron w wariancie źródłowym zawiera podkatalogi odpowiadające wybranym wariantom pochodnym. Dopiero wewnątrz tych podkatalogów znajdują się docelowe struktury plików. Takie wydzielenie podkatalogów uwalnia od konieczności symbolicznego łączenia indywidualnych plików wejściowych. Wystarczy połączenie odpowiednich podkatalogów, a znajdujące się wewnątrz pliki zostaną automatycznie przetworzone w odpowiednich wariantach pochodnych.


Plik jest uporządkowanym zbiorem danych o skończonej długości, posiadającym atrybuty i stanowiącym całość. Łącze symboliczne (dowiązanie symboliczne) jest specjalnym typem pliku, którego całkowitą treścią jest adres innego pliku. Katalog jest innym specjalnym typem pliku, którego treścią jest lista plików wewnątrz tego katalogu. Struktura plików to katalog oraz wszystkie zawarte w nim pliki.

Strona internetowa jest pojedynczym plikiem zawierającym informacje o wyglądzie, działaniu i treści do wyświetlenia przez przeglądarkę internetową. Witryna internetowa jest zbiorem stron internetowych.

Domena internetowa jest podstawowym elementem adresu internetowego, przypisującego tekstowy ciąg znaków do fizycznej lokalizacji strony internetowej. Subdomena internetowa jest domeną internetową hierarchicznie podporządkowaną do innej domeny internetowej. Adres internetowy jest ciągiem cyfr pozwalającym przypisać domenę do jednej maszyny podłączonej do sieci. Stosowanie subdomen umożliwia używanie różnych konfiguracji lub struktur plików na jednym adresie internetowym.

Dziennik w Jekyll jest zbiorem datowanych wpisów. W domyślnej konfiguracji znajduje się w specjalnym katalogu o nazwie _posts. Kolekcja w Jekyll jest dowolnym zbiorem stron w odpowiednio nazwanym katalogu. Kategoria stron to albo dziennik, albo kolekcja.

Pliki konfiguracyjne Jekyll regulują mechanizm działania generatora i wpływają na wygląd oraz zachowanie witryny internetowej. Pliki wejściowe Jekyll odpowiadają za treść indywidualnych stron internetowych. Całkowita struktura plików jednej witryny internetowej zawiera wszystkie pliki konfiguracyjne i plików wejściowe. Ta struktura definiuje zawartość jednej domeny lub subdomeny internetowej.

Warianty witryny internetowej są zbiorem indywidualnych witryn internetowych. Każdy z udostępnionych wariantów jest przypisany do niewykorzystanej domeny lub subdomeny internetowej. Każda witryna odpowiadająca wariantowi pochodnemu w strukturze plików zawiera łącza symboliczne do struktur plików witryny odpowiadającej wariantowi źródłowemu.


W trakcie typowego przebiegu generowania witryny internetowej Jekyll, używając plików konfiguracyjnych, buduje mechanizm działania i strukturę witryny internetowej. Następnie przetwarza wszystkie pliki wejściowe aby wypełnić strukturę witryny internetowej właściwymi stronami.

Można wyróżnić dwa sposoby używania łączy symbolicznych do budowy wariantów pochodnych. W obu sposobach pierwszym krokiem jest użycie symbolicznych łączy do powielenia wszystkich plików konfiguracyjnych wariantu źródłowego.

Pierwszy sposób, bezpośredni, polega na wykonaniu kopii katalogów plików wejściowych niebędących łączami symbolicznymi. Łącza symboliczne wykorzystuje się do tworzenia kopii wybranych plików wejściowych wariantu źródłowego.

Drugi sposób, pośredni, jest bardziej złożony. W tym sposobie wariant źródłowy zawiera w każdym katalogu kategorii stron dodatkowe podkatalogi odpowiadające poszczególnym wariantom pochodnym. Warianty pochodne podstawiają za pomocą łączy symbolicznych te dodatkowe podkatalogi w miejsce katalogów kategorii stron. Konsekwencją takiego podstawienia jest automatyczne powielenie całych struktur plików kategorii stron w momencie generacji witryny.


W przypadku prowadzenia prostej witryny internetowej bez wariantów, można tę witrynę uznać za wariant źródłowy. Nawet jeśli nie ma wariantów pochodnych, nic nie stoi na przeszkodzie, aby w przyszłości dodać wariant pochodny względnie prostą manipulacją.

Sposób bezpośredni łączenia jest koncepcyjnie prosty i potencjalnie użyteczny w przypadku prowadzenia wariantów witryn o bardzo małej ilości plików wejściowych. W przypadku już niewiele większych ilości plików wejściowych bardzo szybko okazuje się, że łączenie symboliczne indywidualnych plików wejściowych jest utrudnieniem i spowolnieniem pracy. Każde nowe łącze symboliczne musi być perfekcyjnie zdefiniowane, a bardzo łatwo jest popełnić błędy, szczególnie w przypadku wpisów dziennika które mają specyficzny format.

Pośredni sposób używania łączy symbolicznych jest rozwiązaniem tego problemu. Dzięki temu, że łączy on katalogi z plikami wejściowymi zamiast tych indywidualnych plików, po wstępnym utworzeniu odpowiednich łączy nie potrzebna jest żadna dalsza ingerencja podczas utrzymywania tych samych wariantów witryn. Wystarczy zapisywać pliki wejściowe w odpowiednich podkatalogach kategorii stron. Dodawanie lub usuwanie wariantów pochodnych wymaga ingerencji w strukturę odpowiednich podkatalogów i związanych z nimi łączy symbolicznych, ale nic więcej. Zmiana stron dostępnych w każdym indywidualnym wariancie wymaga jedynie odpowiedniego przenoszenia plików między podkatalogami kategorii stron wariantu źródłowego.

Efektem ubocznym pośredniego sposobu łączenia wariantów witryn jest widoczność podkatalogów kategorii stron w adresie strony internetowej wariantu źródłowego. Nie jest to szczególnym problemem podczas prowadzenia zestawu wariantów, a może być nawet przydatne — na jeden rzut oka pokazuje do którego wariantu pochodnego jest przypisana obecnie przeglądana strona.

Jest jeszcze jedna ukryta zaleta pośredniego sposobu łączenia wariantów witryn internetowych. Podczas testowego odczytywania gotowej strony internetowej najnowsze zmiany pliku wejściowego są ukryte przez naturę łączy symbolicznych. Natomiast gdy to podkatalogi są połączone symbolicznie, te same zmiany plików wejściowych są widoczne i uwzględniane po odświeżeniu sprawdzanej strony internetowej w przeglądarce.