Po pierwszej chwili korzystania z hugo jednak kilka niedociągnięć mi się rzuciło w oczy. W szczególności związane ze spolszczeniem strony. Wydawałoby się, że w configu wystarczy gdzieś podać, że storna będzie prowadzona w języku polskim jednak nie tędy droga, trzeba trochę się ręcznie pobawić. Nie wiem, jak zachowa się to bez żadnej “skórki” wydaje, się, że pewne zaszłości z depreciated-code moga być spowodowane zastosowaniem motywu. Ten mi się jednak podoba i tak już zostaniemy :)

Poniżej moje spostrzeżenia i to, co znalazłem, może się przyda, a na pewno zostanie ku potomnym.

Spolszczenie

Podstawowe podejście do spolszczenia zaczyna się w pliku hugo.toml gdzie muszą znaleźć się następujące linie:

languageCode = "pl-PL"
defaultContentLanguage = "pl" 

Mimo takich ustawień podstrony typu tagi, kategorie, miały domyślnie tytuł angielski. Żeby to naprawić, trzeba odpowiednio dodać w (jeśli nie ma takich katalogów, należy jest stworzyć):

content/categories plik _index.md o treści:

---
title: "kategorie"
---

a w content/tags plik _index.md o treści:

---
title: "tagi"
---

Następnie zajrzałem do szablonów w motywie (u mnie pod adresem themes/hugo-theme-m10c/layouts/_default). Najważniejsze dla nas pliki to:

-> single.html - to struktura pojedynczego posta

-> list.html - to struktura jak posty sa wyświetlane po tytułach

<span class="posts-list-item-description">
            Opublikowano:&nbsp; {{ partial "icon.html" (dict "ctx" $ "name" "calendar") }}
            {{ .PublishDate | time.Format "Monday, 2 January 2006" }}
            <span class="posts-list-item-separator">-</span>
              {{ partial "icon.html" (dict "ctx" $ "name" "clock") }}
            przeczytaj w  {{ .ReadingTime }}m 
</span>

Tutaj kluczowa okazała sie zamiana starszego podejścia .PublishDate.Format -> .PublishDate | time.Format i wtedy data zaczyna się wyświetlać “po polsku”.

Obsługa komentarzy disqus

Bardzo fajna sprawa dla hugo. W rozwiązaniach opartych o WordPress czy Joomla baza danych jest po stronie naszego serwera, więc i komentarze czy wszystkie konfiguracje dynamiczne są generowane podczas ładowania strony. Tutaj strona to czysty statycznie wygenerowany html, nieoparty o żadne treści zmienne. Zastosowanie disqus powoduje, że ta cześć strony dopasowana do naszego stylu jest uzupełniana po stronie przeglądarki fifty-fifty, a mianowicie treść strony z naszego serwera, sekcja komentarzy z serwera disqus. Jedyne o co musimy zadbać to na stronach disqus: generowanie shortname disqus

Tutaj się trochę namęczyłem, bo najpierw w pliku config dodałem (mój wygenerowany shortname to “mitr-us”):

[services]
 [services.disqus]
   shortname = 'mitr-us'

[privacy]
  [privacy.disqus]
    disable = false

Jednak to nie zadziałało i okazał się, że jeszcze w głównym pliku hugo.toml musiałem dodać do konfiguracji:

disqusShortname = "mitr-us" 

Domyślnie disqus wkroczył z jakimiś minkami reakcji i kilkoma funkcjonalności, które wyłączyłem po stronie serwera disqus dokładnie tam, gdzie zakładałem shortname.

Co dalej?

Jak mnie najdzie, to jeszcze można zrobić tak, żeby dla najnowszego posta już na liście był jakiś większy opis a dla następnych tylko tytuły, Pewnie jak się w przyszłości nazbiera tego więcej, to będzie czas zobaczyć, jak działa paginacja. Na razie jednak, tyle chyba wystarczy, aby w miarę przyzwoity i czytelny sposób prowadzić wpisy.

Dzięki i zapraszam do komentowania i dzielenia się pomysłami.