Колись я вирішив створити свій сайт на Hugo, і хоча я там нічого не публікував тепер спробую це зробити на Zine.
Hugo
Щоб створити вебсайт на Hugo, треба писати YAML. Від цього деяка частина людей не може користуватися ним.
Ось якісь лінії з ямл конфігурації:
privacy:
twitter:
disabled: true
enableDNT: true
simple: true
# ...
services:
instagram:
disableInlineCSS: true
twitter:
disableInlineCSS: true
Чи знаю я що то таке? Ні.
А щоб додати посилання на соц. мережі, треба було додати їх у той же ямл конфіг.
socialIcons:
- name: github
title: View my Github
url: "https://github.com/knightpp"
- name: mastodon
title: View my Mastodon
url: https://mastodon.knightpp.cc/@knightpp
Іншими словами, немає відчуття повного контролю над генерацією вебсайту.
Zine
Зін набагато простіший. Там все ще треба створити декілька .ziggy файлів, але генерація ніяк не схована, тому дозволяє експерементувати.
Але це ще не все! Автор також створив superhtml з нуля. Воно слугує як форматувач HTML файлів, але що більш важливо як LSP імплементація. Пов’язані проєкти: scripty, supermd.
Ось таким чином я відображаю список доступних мов:
<div :loop="$page.locales()">
<ctx :if="$loop.it.site().localeCode().eql($site.localeCode()).not()"
locale="$loop.it.site().localeName()"
>
<a href="$loop.it.link()" :text="$ctx.locale"></a>
</ctx>
</div>
А тут показано як створити умови в шаблонах:
<ctx :if="$site.page('devlog').subpages().first?()">
•
<a href="$if.link()" :text="$i18n.get('Devlog')"></a>
</ctx>
Файно! Скажіть ні потворним шаблонам на кшталт:
{{if .IsAttachment}}
<a href="">...</a>
{{else}}{{if .IsMenu}}
<hr>
{{else}}
<div>Everything else</div>
{{end}}{{end}}
Можливо ви вже помітили, але ці всі проєкти були написані на Zig.