Jekyll » Historie » Verze 94
Lukáš Moučka, 2019-11-05 13:38
1 | 1 | Lukáš Moučka | h1. Jekyll |
---|---|---|---|
2 | 2 | Lukáš Moučka | |
3 | 92 | Lukáš Moučka | !{float: right; margin-left: 1em; width: 15em}logo-jekyll.png! |
4 | 89 | Lukáš Moučka | _Jekyll_ je open source nástroj určený pro generování statických webových stránek založený v roce 2008 zakladateli _GitHubu_. Výsledný vygenerovaný web nemá žádný backend – v pozadí neběží žádné _PHP_, _Java EE_ apod. Samotný generátor je napsaný v programovacím jazyce _Ruby_ a renderuje markdown (_odlehčený_ _značkovací_ _jazyk_) do HTML (_Hypertext_ _Markup_ _Language_) – web je možné psát rovnou i v HTML. Stále patří společnosti _GitHub_ a používají ho pro svou službu _Github Pages_. Hlavní využití má pro vývojáře k dokumentaci softwaru. Dále je využitelný pro osobní blogy a v jistých případech může být použit místo _wiki_. |
5 | 11 | Lukáš Moučka | |
6 | h2. Případy užití |
||
7 | 12 | Lukáš Moučka | |
8 | 11 | Lukáš Moučka | h3. GitHub Pages |
9 | 12 | Lukáš Moučka | |
10 | 80 | Lukáš Moučka | Nejjednodušším způsobem je použití _Jekyllu_ v rámci _GitHubu_. Webové stránky zde mohou ukazovat autorovo portfolio nebo sloužit jako dokumentace k softwaru. Není potřeba vlastnit žádnou doménu ani mít zřízený hosting, kde by staticky vygenerovaný web běžel. Při založené nového repozitáře pro web dojde k vytvoření nové @branch@ vedle naší @master branch@. Níže podrobnější návod. |
11 | 13 | Lukáš Moučka | |
12 | 41 | Lukáš Moučka | h4. Instalace |
13 | 17 | Lukáš Moučka | |
14 | 47 | Lukáš Moučka | _Instalace je pro potřeby tohoto článku ve zjednodušené formě._ |
15 | 46 | Lukáš Moučka | |
16 | 65 | Lukáš Moučka | # *Vytvoření repozitáře* – po přihlášení se na stránkách _GitHubu_ je vytvoříme nový repozitář, jehož název bude shodný s naším uživatelským nebo jménem organizace. V případě nevalidního zadání údajů nebude nově založený repozitář fungovat. |
17 | # *Klonování repozitáře* – po úspěšném založení nového repozitáře jej naklonujeme do námi definovaného lokálního uložiště. |
||
18 | 22 | Lukáš Moučka | !klonovani-repozitare.jpg! |
19 | 25 | Lukáš Moučka | # *Vytvoření inicializačního souboru* – vstoupíme do složky s projektem a vytvoříme soubor @index.html@. |
20 | 26 | Lukáš Moučka | !vytvoreni-souboru-index.jpg! |
21 | 59 | Lukáš Moučka | # *Nahrání souboru @index.html@* – soubor @index.html@ je nutné v rámci adresářové struktury přidat do gitu a provést @commit@ následovaný @pushem@. Do souboru je vhodné vložit nějaký text, abychom si ověřili funkčnost služby _Github_ _Pages_. Následně již můžeme nahrát soubory nutné pro funkčnost _Jekyllu_, resp. pro jeho generování na statický obsah. |
22 | 32 | Lukáš Moučka | !nahrani-indexu.jpg! |
23 | 36 | Lukáš Moučka | |
24 | 59 | Lukáš Moučka | Po instalaci je možné zakládat nové stránky, vkládat příspěvky nebo měnit vzhled za pomocí předdefinovaných šablon nebo pomocí CSS (_Cascading_ _Style_ _Sheets_). Po každé provedené úpravě webu, resp. commitu je potřebovat vygenerovat nový statický obsah. Dle konfigurace repozitáře provádí generování _GitHub_ automaticky nebo jej můžeme provádět manuálně. |
25 | 39 | Lukáš Moučka | |
26 | 41 | Lukáš Moučka | h3. Klasický web (blog) |
27 | 39 | Lukáš Moučka | |
28 | 78 | Lukáš Moučka | Pro klasické blogování s _Jekyllem_ je nutné vlastnit domému a hosting. Na hostujícím serveru musí být nainstalován jen webový server (Apache, NGINX) – na hostingu je umístěn jen statický obsah, takže není potřeba databáze ani např. PHP (_Hypertext_ _Preprocessor_) server. Nástroj _Jekyll_ je nainstalováný na lokálním počítači včetně všech závislostí. Počítač generuje statický obsah, který je následně nahrán na hosting. |
29 | 42 | Lukáš Moučka | |
30 | h4. Instalace |
||
31 | 46 | Lukáš Moučka | |
32 | 48 | Lukáš Moučka | _Instalace je pro potřeby tohoto článku ve zjednodušené formě._ |
33 | 42 | Lukáš Moučka | |
34 | 78 | Lukáš Moučka | # *Instalace závislostí* – jako první nainstalujeme _Ruby_, protože je v něm _Jekyll_ napsaný. Dále nainstalujeme knihovny _gcc_, _gcc-c++_ a _zlib-devel_, protože některé závislosti z _Ruby_ se nestahují, ale kompilují. |
35 | # *Instalace Jekyllu* – necháme nainstalovat _Jekyll_ a po instalaci _Jekyllu_ jej necháme vygenerovat výchozí blog s výchozí šablonou. |
||
36 | 1 | Lukáš Moučka | |
37 | 81 | Lukáš Moučka | Blog můžeme opět editovat a následně vygenerovaný statický obsah nahrávat na hosting. |
38 | 51 | Lukáš Moučka | |
39 | 52 | Lukáš Moučka | h2. Vkládání příspěvků |
40 | 51 | Lukáš Moučka | |
41 | 83 | Lukáš Moučka | Každý příspěvek je reprezentován jedním textovým souborem a _Jekyll_ obstará vše ostatní. Příspěvek je psán v markdown, který obsahuje stejné formátovací značky jako _GitHub_. Je možnost psát i v čistém HTML. Po vytvoření příspěvku (textového souboru) musí být umístěn do složky @_posts@. Název souboru musí mít tento formát: @ROK-MĚSÍC-DEN-NÁZEV_PŘÍSPĚVKU.MARKUP@. |
42 | 53 | Lukáš Moučka | |
43 | 84 | Lukáš Moučka | Do příspěvku je možné vložit odkaz na jiný příspěvek pomocí _permalinku_ – nedochází ke kolizi URL (_Uniform_ _Resource_ _Locator_) adres při změně názvu příspěvku. Příspěvěk může obsahovat mediální obsah jako jsou obrázky a různé přílohy (PDF). Příspěvky je možné kategorizovat a dávat jim tagy (Definice se provádí v hlavičce příspěvku.). Pro dosud nepublikované příspěvky (rozpracované a připravené dopředu) slouží složka @drafts@. Jejich náhled je možný pouze na lokálním počítači. |
44 | 55 | Lukáš Moučka | |
45 | h2. Šablonovací jazyk |
||
46 | |||
47 | Šablonovací jazyk _Liquid_ značně rozšiřuje možnosti příspěvků. Přidává možnost vypisovat proměnné, používat různé filtry, složitější formátování textu nebo používat logické formule. Může sloužit např. pro výpis příspěvků nebo kategorií. |
||
48 | 57 | Lukáš Moučka | |
49 | 56 | Lukáš Moučka | !vypis-prispevku.jpg! |
50 | 57 | Lukáš Moučka | |
51 | 56 | Lukáš Moučka | !vypis-kategorii.jpg! |
52 | 68 | Lukáš Moučka | |
53 | 73 | Lukáš Moučka | h2. Úprava vzhledu |
54 | |||
55 | 93 | Lukáš Moučka | Pro _Jekyll_ lze nalézt velké množství přípravených šablon např. "zde":https://jekyllthemes.io/. Vzhled je dále možné přizpůsobit úpravou dané šablony nebo vytvořením vlastního vzhledu. Pro úpravy stylu lze použít CSS nebo preprocesor CSS jménem _Sass_, který je pro kodéry přívětivější a přináší další funkce do CSS (funkce, logické operace...). |
56 | 73 | Lukáš Moučka | |
57 | 68 | Lukáš Moučka | h2. Shrnutí hlavních výhod |
58 | |||
59 | 69 | Lukáš Moučka | * web je možné vytvořit bez znalostí webových technologií (HTML, CSS, JS, PHP...) |
60 | * odpadají bezpečností hrozby, protože není přítomen backend webu |
||
61 | * ideální řešení pro weby, o které se "nechceme" starat |
||
62 | * k provozování je zapotřebí jen webový server |
||
63 | * v rámci _GitHubu_ není nutné vlastnit doménu ani mít zřízení hosting, resp. webový server |
||
64 | 75 | Lukáš Moučka | * může sloužit místo wiki stránek. |
65 | 69 | Lukáš Moučka | |
66 | h2. Nevýhody |
||
67 | |||
68 | Nevýhody _Jekyllu_ se začnou projevovat ve chvíli, kdy je "ohýbán" pro účely, pro které nebyl vyvinut. Pro účely blogování nelze vytvořit/vložit diskuzní modul ani jiný formulářový prvek. Pro vytvoření dynamického obsahu je jedinou možností využití _Cronu_, který bude periodicky spouštět skript a generovat nový statický obsah. Nová data (např. RSS feed, Atom) lze načíst při generování pomocí _Ruby_. |
||
69 | 71 | Lukáš Moučka | |
70 | h2. Další statické generátory |
||
71 | |||
72 | 85 | Lukáš Moučka | * *Hugo* – velmi podobný generátor jako je _Jekyll_, ale jádro generátoru je napsáno v _Go_ |
73 | 86 | Lukáš Moučka | * *GatsbyJS* – je napsaný v _Node.js_ a používá dotazovací jazyk _GraphQL_ pro získávání dat. |
74 | 75 | Lukáš Moučka | |
75 | h2. Ukázky projektů |
||
76 | 76 | Lukáš Moučka | |
77 | 87 | Lukáš Moučka | _Jekyll_ je využíván i velkými společnostmi. Zde je několik velkých projektů, pro které byl využit: |
78 | 75 | Lukáš Moučka | * https://www.ubuntu.cz/ |
79 | * https://developer.spotify.com/ |
||
80 | * https://dev.twitch.tv/ |
||
81 | * https://devices.netflix.com/en/ |
||
82 | * https://rubyonrails.org/ |
||
83 | |||
84 | 94 | Lukáš Moučka | !ubuntu! |
85 | |||
86 | 93 | Lukáš Moučka | Další projekty "zde":https://jekyllrb.com/showcase/. |
87 | 77 | Lukáš Moučka | |
88 | h2. Zdroje |
||
89 | |||
90 | https://jekyllrb.com/ |
||
91 | https://www.youtube.com/watch?v=heO7ePLCvPI |
||
92 | https://sass-lang.com/ |
||
93 | https://gohugo.io/ |
||
94 | https://www.gatsbyjs.org/ |