Blog Jekyll: Konfiguracja bloga w Jekyllu – pliki YAML, HTML i CSS
Konfiguracja bloga Jekyll z motywem Chirpy: edycja _config.yml, ustawienia YAML, avatar i favicons, modyfikacje plików HTML/CSS oraz podstawowe dostosowanie struktury strony.
Kolejny krok budowy bloga to konfiguracja ustawień Jekylla i motywu Chirpy. Podstawowa konfiguracja to edycja plików YAML. Dalsze konfiguracje można przeprowadzić przez zmiany w plikach HTML motywu oraz dodanie własnych stylów CSS.
Podstawowa konfiguracja: plik _config.yml
Podstawowa konfiguracja jest w pliku _config.yml:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
tagline: Notatki i zapiski. # podtytuł bloga (wyświetlany w nagłówku)
description: >- # opis bloga dla SEO i kanału Atom/RSS
Notatki o programowaniu, matematyce, symulacjach i budowie bloga w Jekyllu.
baseurl: "" # podkatalog, w którym działa blog
url: "https://marcin-szewczyk-code.github.io" # główny adres strony
avatar: /assets/img/avatar.jpeg # ścieżka do avatara autora
theme: jekyll-theme-chirpy # używany motyw Jekylla
lang: pl # język bloga
timezone: "Europe/Warsaw" # strefa czasowa (daty wpisów)
github:
username: marcin-szewczyk-code # nazwa użytkownika GitHub
social:
name: Marcin Szewczyk # imię i nazwisko autora
email: # email (opcjonalny, może być pusty)
github: marcin-szewczyk-code # profil GitHub
linkedin: marcin-szewczyk # profil LinkedIn
links:
# pierwszy link traktowany jest jako główny (copyright)
- https://marcinszewczyk.net/ # strona osobista
- https://www.linkedin.com/in/marcin-szewczyk/ # LinkedIn
- https://github.com/marcin-szewczyk-code # GitHub
- https://orcid.org/0000-0003-3699-5559 # ORCID
- https://www.ee.pw.edu.pl/~szewczyk/ # strona akademicka
Zmiana pliku _config.yml wymaga zatrzymania (Ctrl-C) i ponownego uruchomienia serwera Jekylla:
1
2
Ctrl-C
bundle exec jekyll serve
Dostosowanie motywu przez zmianę HTML i CSS
Modyfikacja plików HTML
Istotne są zwłaszcza pliki motywu _includes/*.html.
Jekyll nadpisuje pliki motywu ich odpowiednikami o tej samej nazwie i ścieżce w projekcie.
Jeśli korzystasz z wersji gem-based Chirpy, pliki _includes/*.html pochodzą z motywu i nie są one widoczne w repozytorium.
Można je nadpisać, a następnie zmodyfikować, postępując w następujący sposób:
- Należy otworzyć repozytorium motywu (jekyll-theme-chirpy).
- Skopiować plik z motywu, który chcemy modyfikować, np.:
_includes/head.html,_includes/footer.html,_includes/topbar.html,_includes/sidebar.html. - Umieścić go w swoim projekcie, w katalogu
_includes/ - Wprowadzić modyfikacje, uruchomić ponownie jekyll lub zrobić commit i push do gita
W jaki sposób skopiować pliki motywu
Pliki _includes/*.html można skopiować bezpośrednio z katalogu gema motywu.
Najpierw sprawdzenie ścieżki do gema:
1
bundle show jekyll-theme-chirpy
Następnie skopiowanie wybranych plików:
1
2
3
4
copy "E:\Ruby34-x64\lib\ruby\gems\3.4.0\gems\jekyll-theme-chirpy-7.4.1\_includes\head.html" "_includes\head.html"
copy "E:\Ruby34-x64\lib\ruby\gems\3.4.0\gems\jekyll-theme-chirpy-7.4.1\_includes\footer.html" "_includes\footer.html"
copy "E:\Ruby34-x64\lib\ruby\gems\3.4.0\gems\jekyll-theme-chirpy-7.4.1\_includes\topbar.html" "_includes\topbar.html"
copy "E:\Ruby34-x64\lib\ruby\gems\3.4.0\gems\jekyll-theme-chirpy-7.4.1\_includes\sidebar.html" "_includes\sidebar.html"
Od tego momentu lokalne wersje plików nadpisują wersje z gema i można je modyfikować.
Opiszę to poniżej na moich przykładach, zaczynając od modyfikacji pliku _includes/head.html, która umożliwia nadpisanie istniejącego lub wprowadzenie własnego stylu CSS.
Modyfikacja stylu CSS
Wygląd bloga określany stylami CSS można modyfikować przez dodanie własnego pliku CSS (np. assets/css/custom.css). Następnie należy załadować go w _includes/head.html po CSS motywu, aby nadpisać jego style.
W pliku:
1
_includes/head.html
należy znaleźć sekcję:
1
2
<!-- Theme style -->
<link rel="stylesheet" href="/assets/css/jekyll-theme-chirpy.css">
Bezpośrednio pod nią dodać:
1
2
<!-- Custom overrides -->
<link rel="stylesheet" href="/assets/css/custom.css">
Ważne: styl musi być ładowany po CSS motywu, aby nadpisania działały.
Moje zmiany HTML i CSS
W kolejnych wpisach opisuję zmiany zastosowane w tym blogu:
- W pliku
head.htmldodaję:- Linię
<link rel="stylesheet" href="/assets/css/custom.css">, która włącza plik/assets/css/custom.cssz moimi stylami. Opisałem to przy okazji dostosowania przypiętego postu i sidebaru. - JavaScript (
.js) realizujący funkcję bibliteki MathJax do renderowania wzorów matematycznych przy pomocy składni LaTeX.
- Linię
- W pliku stopki
_includes/footer.html- Edycja stopki z linkami do Google Analitics i licencji – opisałem to przy okazji konfiguracji Google Analytics.
- W pliku nagłówka
_includes/topbar.html- Dodanie linku do strony Subskrybuj RSS – opisałem to przy okazji konfiguracji RSS
- W pliku panelu bocznego
_includes/sidebar.html- Dodanie przełącznika light/dark, PL | EN oraz RSS – opisałem to w osobnym wpisie
- Dodanie elementów wokół ikon z linkami w dole panelu bocznego – opisałem to w osobnym wpisie
Zmiany w stylu CSS – plik assets/css/custom.css
Najważniejsze zmiany jakie wprowadziłem w motywie Chirpy przez plik assets/css/custom.css:
- Wygląd przypiętego postu (pinned post) – opisałem to w osobnym wpisie
- Wygląd elementów wokół ikon z linkami w dole panelu bocznego – opisałem to w osobnym wpisie
Inne zmiany
Edycja menu w panelu bocznym _includes/sidebar.html (Kategorie, Tagi, Archiwum, O mnie) robiona jest poprzez pliki w katalogu _tabs. Na przykład usunięcie pliku _tabs/tags.md powoduje usunięcie pozycji Tags z panelu bocznego. Można też dodawać dodatkowe elementy tego menu.
Awatar to wgranie zdjęcia do katalogu /assets/img, a następnie wskazanie jego ścieżki w _config.yml. Zalecane wymiary zdjęcia to np. 512×512 px.
Polska wersja językowa to plik pl.yml w katalogu _data/locales i wpis lang: pl w _config.yml.
Grafiki
Avatar
Avatar definiuje się w pliku _config.yml:
1
avatar: /assets/img/avatar_tatry_512.jpeg
Plik graficzny powinien być kwadratowy, najlepiej 512x512 px, zoptymalizowany wagowo (kompresja JPEG ~80–85%).
Do przycięcia i skalowania można użyć ImageMagick (MSYS2 / MinGW, opisuję w osobnym wpisie):
zdjęcie JPG:
1
magick input.jpg -gravity center -crop 1:1 -resize 512x512 -quality 82 output.jpg
grafika PNG:
1
magick input.png -gravity center -crop 1:1 -resize 512x512 output.png
Opcja -gravity center zapewnia centralne kadrowanie przed zmianą rozmiaru.
Favicons
Favicons można wygenerować np. w serwisie RealFaviconGenerator: https://realfavicongenerator.net/.
Po wygenerowaniu pliki należy wgrać do katalogu:
1
/assets/img/favicons
Przykładowa struktura:
1
2
3
4
5
6
7
8
9
assets/
└── img/
└── favicons/
├── apple-touch-icon.png
├── favicon.ico
├── favicon.svg
├── favicon-32x32.png
├── web-app-manifest-192x192.png
└── web-app-manifest-512x512.png
Jeśli generator tworzy plik favicon-96x96.png, należy zmienić jego nazwę na favicon-32x32.png, żeby była zgodna z wymaganiami motywu Chirpy.
Skrót w telefonie
Można utworzyć ikonę na ekranie telefonu (np. iPhone’a), która otwiera blog w trybie pełnoekranowym jak aplikację (warunek: strona musi działać przez HTTPS).
W Safari:
- wchodzę na
https://blog.marcinszewczyk.pl - wybieram ikonę Share (kwadrat ze strzałką w górę)
- wybieram „Dodaj do ekranu początkowego”
Jako ikona używany jest plik /assets/img/favicons/apple-touch-icon.png (zalecany rozmiar 180x180 px). Jeżeli plik nie istnieje, iOS wygeneruje ikonę automatycznie (zrzut strony).
Podsumowanie
Na początku może to wyglądać na skomplikowane. Wystarczy jednak kilka drobnych zmian i wszystko działa. Po konfiguracji jest tak, jak trzeba.