Jekyll plugin pro vytváření URL na vaši CDN
10. 4. 2016
V předchozím článku jsem popisoval, jak jsem přesunul obrázky ze svého webserveru na Amazon S3 cloudové úložiště. Nyní popíšu, jak si zjednodušit život při vypisování URL oněch obrázků. Opisovat totiž vždy celou absolutní cestu, jejíž část je neměnná, je jednak nuda a druhak vám to znemožňuje jednoduše přejít se svými soubory na jiné uložiště.
Jekyll Tag plugin
Poslouží nám primitivní Jekyll tag plugin, který může vypadat například takto (gist):
Těm z vás, jejichž je Ruby denním chlebem, se omlouvám, neb v Ruby programuji teprve posledních 5 minut.
Tento soubor pojmenujte například cdn_url_tag.rb
a uložte ho do adresáře _plugins
. Samozřejmě si změňte URL_PREFIX
za vaši cestu.
V souboru _config.yml
nadefinujte proměnnou cdnurl
, např. takto:
Ve vaší šabloně či článku pak nový tag použijete takto:
Nebo takto v případě proměnné:
Výsledkem bude takováto URL:
Paráda, ne? Odteď můžete kdykoliv přejít na libovolné jiné úložiště obrázků (klidně i lokální) pouze změnou jedné konstanty ve vašem pluginu.
Jekyll Filter plugin
Prakticky ihned po dopsání předchozí sekce mě napadl ještě druhý způsob, který je dokonce ještě trochu lepší. Jedná se o Jekyll filter plugin, který může vypadat třeba takto (gist):
Tento soubor pojmenujte například cdn_url_filter.rb
a uložte ho do adresáře _plugins
.
V souboru _config.yml
nadefinujte proměnnou cdnurl
, např. takto:
Ve vaší šabloně či článku pak nový filter použijete takto (povšimněte si uvozovek):
Nebo takto v případě proměnné:
Produkovaná URL jsou stejná. Výhodou filteru je, že Jekyll za vás ještě před zavoláním vašeho kódu vyřeší nahrazení proměnných za jejich hodnoty. Nevýhodou je, že běžné stringy musíte psát v uvozovkách.