Сайт Данила

Чому Zine?

Кількість слів: ~461

Колись я вирішив створити свій сайт на 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?()">
	&nbsp; • &nbsp;
	<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.

Розумне сортування