Skin, který přežije git pull

Díl 5 ze 9 — ./blog.sh v1.3

Obléci web jinak dřív znamenalo upravit soubor, který vlastní engine. Fungovalo to, přesně do příštího git pull, což je chvíle, kdy zjistíš, že přizpůsobení a aktualizace byly celou dobu týž soubor.

Čtyři věci, které potřebovaly upravenou šablonu, jsou teď nastavení.

Oba tyhle weby jsou tento engine, sestavený z téhož commitu téhož večera:

blogsh.app, oblečený jen do výchozích hodnot
sh.cynicky.blog: vlastní stylesheet, bez postranního panelu, úvodní obrázek u každého příspěvku a menu, které si pojmenoval sám

Ten druhý používá všechna čtyři nastavení níže a ani jeden upravený soubor enginu – git status v té instalaci je prázdný, což je celý smysl cvičení.

Vlastní stylesheet

site.extra_css bere cestu, nebo jejich seznam, načtený po vlastních stylech enginu. Skin bydlí v tvém souboru a aktualizace ho nikdy nevidí.

site:
  extra_css: /assets/css/mine.css

Jen místní cesty. Každá stránka nese style-src 'self', takže stylesheet na jiném hostiteli by prohlížeč zahodil bez chyby, které by sis kdy všiml – stránka by se prostě vykreslila neoblečená. Sestavení ho místo toho nahlas odmítne a doctor pojmenuje řádek, který musel přeskočit.

Vlastní menu

Bez nav: se lišta odvozuje z typů obsahu, které skutečně mají příspěvky, přesně jako dřív. S ním web říká, co tam patří:

nav:
  - { label: "Home", url: "/" }
  - { label: "Photographs", tag: "photo" }

Položka bez jedné z půlek se přeskočí, místo aby se vykreslila jako prázdný odkaz. Prázdný seznam je rozhodnutí, ne chyba – menu pak nevykreslí vůbec nic, což je zároveň způsob, jak web menu vypne, takže na to není druhý klíč.

./style.sh ho upravuje a dělá tu nudnou část: nabídne tvé nejrušnější štítky a tvé stránky jménem, takže vybíráš, místo abys psal slugy. doctor hlásí položku, jejíž cíl mezitím zmizel, a zápis url: "about", který funguje z titulní strany a nikde jinde.

Dvě oblasti, zapnuto nebo vypnuto

layout.sidebar vypne pravý sloupec a nechá obsah zabrat plnou šířku. layout.hero vyzdvihne první použitelný obrázek příspěvku z textu a pustí ho nad titulek – vypnuto, dokud si neřekneš, protože to přetváří každou stránku příspěvku, které se dotkne, a jeden příspěvek pořád může rozhodnout sám za sebe přes hero: ve vlastní hlavičce. Sledovací pixel se na úvodní obrázek nikdy nepovýší.

Jsou to přepínače oblastí, ne toho, jak oblast vypadá. Jak věci vypadají, patří do stylesheetu, a klíč na každou vizuální vlastnost by z konfigurace udělal stylesheet napsaný v YAML.

Všechno z průvodce

./style.sh dostal sekci Rozvržení, takže paleta, banner, písma, menu, oblasti a tvé vlastní stylesheety jsou jeden rozhovor. Web se teď dá obléci celý z průvodce, což byl celý smysl toho udělat z těchhle věcí nastavení, a ne dokumentaci o tom, kterou šablonu upravit. Vstoupit do sekce a proklepat ji Enterem nic nezmění.

Jediná věc, která se změnila bez ptaní

Lišta menu tě teď následuje dolů po stránce. Převzala práci menu, které se dřív opakovalo pod obsahem – to existovalo jen proto, že lišta to neuměla – takže to je pryč, i s klíčem. Dvě kopie téhož menu na jedné obrazovce nejsou předvolba.

Linka, kterou to menu kreslilo nad patičkou, se kreslí bez něj, a cokoli, co posouvá cíl do zobrazení, se teď zastaví před lištou, ne pod ní.

Komentáře