static-site desk

Petr Urbánek
@r4ms3scz

jekyll × docker × netlify × forestry

github, excel (csv), php + yml, google maps

jekyll

generátor statických stránek, který běží na ruby a používá šablonovací systém liquid

proč?

jednoduché použití a implementace, nulové nároky na hosting, žádná databáze, nenapadnutelný, SASS, ale...

layouts

klasická šablona jako všude jinde

includes

základní stavební prvek

YAML

první věc v šabloně a zároveň proměné použité na stránce

collections

jednoduché grupovaní stejného obsahu

data files

  • .yml / .yaml
  • .json
  • .csv

vše umí zpracovat v surové podobě a poskládat z nich třeba celý web

instalace

takže na OSX potřebuješ:

  • Ruby
  • RubyGems
  • Jekyll
  • Homebrew nebo rbenv
  • xcode
  • ... ufff! a to raději neukazuju jak instalace vypadá na windows :)

a potom

to třeba přestane fungovat, protože... no a tak to přestanete používat (jako já)!

docker

docker images, and CI builders for Jekyll.

export JEKYLL_VERSION=3.8
docker run --rm \
  --volume="$PWD:/srv/jekyll" \
  -it -p 4000:4004 jekyll/jekyll:$JEKYLL_VERSION \
  jekyll server --watch

--watch

jedním příkazem se mi všechno stáhne, nainstaluje a zároveň pustí server na locale, který sleduje změny ve složce

--incremental

experimentální fičura, nepřegenerovává celý web, dobré použít u obrovských webů (1000+ stránek), ale je dobré znát limity

fast af boi

zakázání sledovaní změn v souborech a složkách

exclude: ['less', 'js/global.js']

jakékoliv změny ve složce LESS a v global.js neprovedou build webu a nebudou na LIVE webu

live

"stará škola" vezme obsah složky _site a překopíruje na FTP, ostatní použijí jeden z doporučených nástrojů, který to umí dělat automaticky

netlify

automatický build, free (ale), formuláře, přihlašování, https, CDN, A/B testování

formuláře

nejdůležitější věc, implementace je na pár sekund:


<form name="contact" method="POST" data-netlify="true">

mimo jiné ale umí:

forestry

obrovské nastavení (YAML), neustálý vývoj a implementace fičur, zadarmo (ale)

YAML

vyzkoušel jsem několik CMS, ale žádný z nich si neporadil s ničím jiným, než obyčejným blog postem

zpátky na stromy

aneb proč tady vlastně jsme...

Kuchyně Karásek

první větší web, YAML a datové soubory, všechno se dělá lokálně (přes docker) a poté kopíruje na FTP

data soubory

nejzajímavější je sekce spotřebiče, kde třeba trouby maji vlastní YML soubor, ktery se plní dle katalogů

YAML + layouts

nejklíčovější stránky jsou zde samotné detaily kuchyní, které jsou vždycky stejné, jen naplněné jinými daty

OTEVŘENÉ ZDRAVOTNICTVÍ

jednoduchý blogovací web, první použití forestry

Monitor Dostupnosti LP

co kvartál to 3MB YML soubor se skoro 100k řádky, vše zachránil Jekyll Data Pages Generator, který z každého logického bloku (ATC) vytvoří samostatný HTML soubor

1 500+ html

přesně tolik vzknikne z jednoho kvartálu samostatných HTML souborů, mezi kterýma filtruje uživatel přes multiple select (chosen)

layout vs. výstup

layout skládá výstup 2x, jednou pro samotné HTML, které se zobrazí uživateli a podruhé tabulku pro export

XLS

o export se stará XLSX export, kterému po kliku na export, poskládám všechny tabulky dohromady

hůůůstý!

jo, pořád je to statický web, generovaný přes netlify, který dokáže udělat i neprogramátor (já) jako funkční prototyp, jen s daty, bez nutnosti vyvíjet app v Reactu

Keboola

kompletně modulární web, forestry, netlify

uBuild

aneb proč vymýšlet znova kolo, když forestry připravilo na stejném principu šablonu

include

stránku si rosekám do jednotlivých bloků, (každý blok má zvláštní HTML soubor), pro includování je dobré, aby měli stejný prefix, třeba block-

block-

všechny hodnoty, které chci plnit, otaguju a přejdu k forestry

forestry

pro každý blok vytvořím front matter šablonu a naklikám typy hodnot

sekce

pro každou sekci (kategorii, kolekci) můžu nadefinovat spoustu věcí, jako třeba, jaká šablona se kde použije, případně jaká data tam může plnit a přidávat

GLYPHICONS

CSV -> PHP -> YML, celý web se vlastně generuje ze 4 CSV souborů a jednoho YML (kde se plní ceny, texty, verze...), všechno se dělá lokálně (přes docker) a poté kopíruje na FTP

spreadsheets

aneb můj první generátor HTML a CSS z CSV (spíše na zamyšlení co lze třeba udělat jen pomocí excelu)

PHP

ano, přes Nette generuju ze všech CSV, YML soubory, ze kterých se vytvoří celý ikon set

YML vs. CSV

ano, všechno tohle by se dělat nemuselo, ale jelikož se CSV několikrát měnilo, předělávalo a obsahovalo chyby, tak jsem se rozhodnul raději zvolit cestu, že nechci měnit šablony dle CSV (někde bych mohl udělat chybu a na stránce by se vypisovala špatná hodnota), ale generator měnit podle CSV

cheat sheet × resources × plugins

cheat sheet

resources

plugins

co používám

picture tag

a nebo třeba responsive image

slova napsal, hudbu složil

jekyll × reveal.js

github.com/r4ms3scz/static-site-desk/

díky za pozornost!

Petr Urbánek
@r4ms3scz