Môj staticky generovaný blog (SSG) postavený na Sapper, ktorý sa momentálne postupne nahrádza Svelte Kit — no naneštastie trvá príliš dlho, kým sa dostane do produkcie — je bez akejkoľvek podkladovej databázy. To nie je nič výnimočné a je to celkom bežné pre iné SSG, keďže dáta sa načítavajú priamo zo súborov Markdown.
Niektoré dáta, napríklad tagy príspevkov, sa načítavajú zo špeciálnej sekcie na začiatku súboru Markdown nazývanej Front Matter. Táto sekcia je zvyčajne napísaná v nejakom pohodlnom jazyku ako YAML alebo TOML. Už som napísal nejaké detaily o YAML Front Matter v a rozvinul myšlienky a zistenia v príspevku o UUID.
V práve tom príspevku som tiež zanechal odkazy na moje dva predchádzajúce príspevky vysvetľujúce, že dátumy vytvorenia a úpravy získavam sledovaním histórie gitu. Tieto typy dát zvyčajne tiež sídlia vo Front Matter, ale je veľmi pohodlné nechať ich generovať automaticky. V tom príspevku tiež spomínam, že som našiel niekoho ďalšieho, kto to tiež robí.
Generátor statických stránok Zola #
Nedávno som narazil na generátor statických stránok Zola, ktorý je inšpirovaný Hugo, ale namiesto Go je napísaný v Ruste. Som fanúšikom Rustu a chcem sa ho časom naučiť, preto som začal skúmať Zolu. Zistil som, že celkom dobre zodpovedá mojim preferenciám, čo bolo prekvapujúce.
Tiež som v tomto issue objavil, že existuje fork Zoly, ktorý opäť extrahuje dátumy z histórie commitov, ale implementácia zatiaľ nebola zahrnutá do upstream verzie.
Mali by sa dátumy čítať z histórie? #
Výhody takejto konfigurácie sú zrejmé: je automatizovaná, nie je potrebné manuálne opravovať dátumy v súbore Markdown. Taktiež ma to núti písať v daný deň — bez výhovoriek. To je plus, ak niekto buduje návyky.
Objavil som však bolestivý bod pri pokuse presunúť stránky do Zoly, momentálne len na skúšku. Problém je, že všetko teraz musí byť v spoločnej histórii gitu, napríklad v monorepe. Inak sa história stratí. Nestačí len skopírovať súbory Markdown a trochu upraviť Front Matter, pretože dátum v ňom úplne chýba.
Táto nevýhoda je spätne zrejmá, ale práve mi to napadlo. V tejto fáze neplánujem bojovať s forkom, takže zatiaľ exportujem dáta do Markdownu. Ak by som pokračoval touto cestou a použil Zolu alebo niečo iné namiesto riešenia postaveného na Svelte, možno by som v budúcnosti mohol automatizovať udržiavanie dátumov v Markdownu niečím iným, napríklad obľúbenými hookmi.
Toto je 78. príspevok z #100daystooffload.