Tag: design layout

  • Post #50 Glide Jak zrobić kontent slider?

    Post #50 Glide Jak zrobić kontent slider?

    Kontent slider czy w innej nazwie karuzela to treść osadzona i serwująca różny kontent po przesunięciu strzałki lub automatycznie w wyznaczonym czasie.

    Jak Stworzyłem kontent slider za pomocą Glide.js

    W mojej ostatniej przygodzie z frontendem postanowiłem zagłębić się w Glide.js i nauczyć się, jak zbudować slider, który będzie responsywny i prosty w implementacji. W tym wpisie podzielę się, jak dodałem zdjęcia, skonfigurowałem responsywność za pomocą @media, oraz jakie kroki pomogły mi zrozumieć tę bibliotekę.

    Co to Jest Glide.js?

    Glide.js to lekka i szybka biblioteka JavaScript do tworzenia sliderów i karuzeli. Jest bardzo elastyczna, co oznacza, że możemy ją łatwo dostosować do własnych potrzeb – idealna do sliderów, które mają dobrze działać na różnych urządzeniach i ekranach.

    Przygotowanie Plików

    Najpierw stworzyłem strukturę plików, która wyglądała następująco:

    • index.html – główny plik HTML.
    • css/glide.core.css oraz css/glide.theme.css – style biblioteki Glide.js.
    • glide.js – główny plik JavaScript dla biblioteki.
    • Folder img – zawierający zdjęcia, które chciałem dodać do slidera.

    Krok po Kroku: Tworzenie Slidera

    Krok 1: Dodanie HTML

    W pliku index.html dodajemy podstawową strukturę slidera zgodnie z dokumentacją Glide.js. Wygląda to tak:

    <!DOCTYPE html>
    <html lang="en">
    <head>
      <meta charset="UTF-8">
      <meta name="viewport" content="width=device-width, initial-scale=1.0">
      <title>Slider glide.js</title>
      <link rel="stylesheet" href="./css/glide.core.css">
      <link rel="stylesheet" href="./css/glide.theme.css">
    </head>
    <body>
      <div class="glide">
        <div class="glide__track" data-glide-el="track">
          <ul class="glide__slides">
            <li class="glide__slide"><img src="./img/20-superfoods-640.webp" alt="20 superfoods"></li>
            <li class="glide__slide"><img src="./img/3-domowe-naturalne-przeziebienie-640.webp" alt="Przeziębienie"></li>
            <li class="glide__slide"><img src="./img/ashwaganda-telomers-640.webp" alt="Ashwaganda"></li>
            <!-- Dodaj więcej zdjęć tutaj -->
          </ul>
        </div>
        <div class="glide__arrows" data-glide-el="controls">
          <button class="glide__arrow glide__arrow--left" data-glide-dir="<">Previous</button>
          <button class="glide__arrow glide__arrow--right" data-glide-dir=">">Next</button>
        </div>
        <div class="glide__bullets" data-glide-el="controls[nav]">
          <button class="glide__bullet" data-glide-dir="=0"></button>
          <button class="glide__bullet" data-glide-dir="=1"></button>
          <!-- Dodaj więcej przycisków w zależności od liczby slajdów -->
        </div>
      </div>
    </body>
    </html>
    
    
    
    

    W tym miejscu każdy li to pojedynczy slajd. Dodałem kilka zdjęć i dostosowałem ich alt, by były bardziej opisowe

    • Krok 2: Konfiguracja JavaScript
    • Podpięcie Glide.js jest proste
    • Na końcu pliku index.html dodałem skrypt inicjujący slider:
    <script src="./glide.js"></script>
    <script>
      new Glide('.glide', {
        type: 'carousel',
        startAt: 0,
        perView: 4,
        breakpoints: {
          1200: { perView: 3 },
          800: { perView: 2 },
          480: { perView: 1 }
        }
      }).mount();
    </script>
    
    

    W tej konfiguracji slider jest ustawiony jako karuzela (czyli po przewinięciu ostatniego zdjęcia wraca do pierwszego)

    Ustawiłem również startAt na 0, co oznacza, że slider zaczyna od pierwszego zdjęcia. Najważniejsza część to breakpoints – dzięki nim slider dostosowuje się do szerokości ekranu:

    • 1200px i więcej – wyświetlane są 4 slajdy.
    • 800px do 1200px – wyświetlane są 3 slajdy.
    • 480px do 800px – wyświetlane są 2 slajdy.
    • poniżej 480px – wyświetlany jest 1 slajd.

    Krok 3: Responsywność i ustawienie CSS @media

    Glide.js samo w sobie obsługuje breakpoints, ale dodałem też własne style CSS dla img, by zdjęcia zachowywały odpowiednie proporcje i były responsywne:

    Skopiuj kod
    .glide__slide img {
      width: 100%;
      height: auto;
    }
    
    

    Dzięki temu zdjęcia dopasowują się do rozmiaru kontenera, niezależnie od szerokości ekranu

    Co Nauczyłem się Pracując z Glide.js?

    • Prostota – Glide.js jest bardzo prosty w obsłudze, ale jednocześnie oferuje dużo możliwości konfiguracyjnych.
    • Responsywność – dzięki breakpoints i CSS łatwo stworzyć slider, który świetnie wygląda zarówno na komputerze, jak i na telefonie. Łatwość rozbudowy – Glide.js pozwala na dodawanie różnych komponentów (np. przyciski nawigacyjne, wskaźniki), co sprawia, że jest wszechstronny.

    Podsumowanie

    Stworzenie slidera za pomocą Glide.js to świetne doświadczenie dla każdego, kto dopiero uczy się frontendu i chce osiągnąć profesjonalne rezultaty przy minimalnym wysiłku. Cieszę się, że mogłem zrozumieć, jak działa ta biblioteka, i mam nadzieję, że ten przewodnik pomoże Wam stworzyć własny, responsywny slider.

    Dajcie znać, jeśli macie pytania lub potrzebujecie pomocy – chętnie pomogę! Kliknijcie na Facebook OpenGateweb

  • Post #49 Web-design

    Post #49 Web-design

    Profesjonalne Projektowanie Stron i Optymalizacja SEO. Twoja Droga do Sukcesu w Internecie

    Szukasz sposobu na wzmocnienie swojej obecności w internecie? Nasze kompleksowe usługi web designu i SEO przynoszą realne rezultaty. Łączymy kreatywne projektowanie z wiedzą techniczną, aby pomóc Twojej firmie wyróżnić się w sieci. Dlaczego Warto Wybrać Profesjonalne Projektowanie Stron? Nowoczesny biznes potrzebuje więcej niż tylko strony internetowej – wymaga skutecznej strategii cyfrowej. Nasze usługi obejmują:

    Responsywne strony internetowe działające na wszystkich urządzeniach

    Indywidualne rozwiązania programistyczne Przyjazny interfejs użytkownika Strukturę zoptymalizowaną pod SEO Szybkie ładowanie stron SEO, które Przynosi Efekty

    Wiemy, że widoczność w sieci jest kluczem do sukcesu. Nasza strategia SEO koncentruje się na:

    • Strategicznej optymalizacji słów kluczowych
    • Optymalizacji treści
    • Wdrażaniu technicznych aspektów SEO
    • Strategiach lokalnego SEO
    • Monitorowaniu wyników

    Sprawdzony Proces Działania

    Analiza: Badamy potrzeby Twojej firmy i pozycję rynkową
    Strategia: Tworzymy spersonalizowane podejście
    Wdrożenie: Realizujemy zoptymalizowaną obecność w sieci
    Monitoring: Śledzimy i poprawiamy wyniki

    Gotowy na Transformację Swojej Obecności w Sieci?

    Skontaktuj się z nami już dziś, aby omówić, jak możemy pomóc w rozwoju Twojego biznesu online. Nasz zespół ekspertów jest gotowy stworzyć stronę, która nie tylko świetnie wygląda, ale także osiąga wysokie pozycje w wynikach wyszukiwania. Słowa kluczowe: projektowanie stron internetowych, optymalizacja SEO, tworzenie stron www, responsywne strony, strategia cyfrowa.

    Jeśli chcesz z nami porozmawiać o Twoje koncepcji napisz na kontakt@opengateweb.com

  • Post #41 Duże prace z witryną Telomers.pl

    Post #41 Duże prace z witryną Telomers.pl

    Następne prace nad Telomers.pl

    Dodałem dwie strony oraz Panel Admin. Dodałem stronę 20 Superfoods dla zdrowia oraz Uniwersalne Prawa wszechświata. Jestem dumny z artykułu o Prawach szczególnie że ten temat mnie interesuje i chciałem się nim podzielić.

    Odwiedź Telomers 20 Superfoods dla zdrowia przeczytaj więcej o superfoods.

    Uniwersalne Prawa Wszechświata

    Dodałem na Telomers Uniwersalne prawa wszechświata są znane jako prawa naturalne lub jednolite. Generalnie są hermetyczne i mają swoje korzenie w hermetyzmie. Hermetyzm jest dziedziną oraz semantyką pojęcia tych praw. W artykule porównuje prawa hermetyzmu z Prawami Naturalnymi.

    Dodanie Admin Telomers dla linków, url i postów

    Strona robi się duża i dlatego robię Admin Panel aby można było łatwo zarządzać stronami. Panel Admin dla telomers będzie rozwijany według potrzeb projektu. Jest to ambitny projekt, który ma na celu umożliwienie łatwego zarządzania stronami na Telomers.pl. Funkcjonalności będzie sukcesywnie dodawana a ulepszenia nanoszone w miarę postępu prac. Dzięki temu admin będzie stale rozwijany i dostosowywany do wymagań użytkowników. Obecnie wyświetla mi listę postów i stron.

  • Post #25 Financial Planner

    Post #25 Financial Planner

    Financial Planner

    Praca nad applikacją do planowania i kontroli wydatków osobistych. Applikacja będzie oparta o model Api Express.js JSON – data JavaScrit i Ui Bootstrap.

    Dodawanie Planu wydatków

    Aplikacja będzie posiadała swego rodzaju alokacje środków na wybrane cele i możliwość dodawania nowych grup / kategorii

    Kontrola wydatków

    Wydatki będą notowane wszystkie. Będą następnie przyrównywane do określonych kategorii.

    Przechowanie danych w JSON

    Express i plik JSON będą Back-End dla wprowadzanych danych oraz na ich podstawie będą generowane GET dla wybranych danych.

    Rozwinięcie Plannera Finansowego

    Docelowa Financial Doctor będzie wspierał kontrolę i planowanie wydatków na podstawie poprzednich miesięcy. Docelowo będzie miał możliwość szybkiej reprezentacji poszczególnych sald. Kalendarz i Salda będą podpowiadały jakie były Plany i ich Realizacja.

    Planner Finansowy

    W trakcie prac nad plannerem skupiliśmy się na dodawaniu funkcji umożliwiających łatwe planowanie zakupów. Dzięki nowym możliwościom użytkownicy będą mogli wpisywać produkty, których potrzebują, a następnie automatycznie generować listę zakupów. Dodatkowo planner będzie monitorować stan zapasów i sugerować, kiedy należy dokonać kolejnych zakupów. To ułatwi codzienne zarządzanie domowymi zapasami i zaoszczędzi czas potrzebny na zbędne wizyty w sklepach.

    Nowa funkcjonalność planner będzie również zawierać opcje personalizacji zakupów. Użytkownicy będą mogli określić swoje preferencje żywieniowe, alergie czy diety specjalne, a planner będzie automatycznie eliminował niedozwolone produkty z listy zakupów. To znacząco ułatwi zakupy i pozwoli uniknąć przypadkowych zakupów, które potem trzeba będzie oddać lub wyrzucić. Dzięki temu planner stanie się nie tylko narzędziem do organizacji, ale również wsparciem w zdrowym stylu życia.

    Więcej o API

    Zachęcam do pogłębienia swojej wiedzy na temat interfejsu API poprzez odwiedzenie strony, gdzie znajdziesz szczegółowe informacje na temat API. Interfejs API, czyli Application Programming Interface, jest narzędziem umożliwiającym komunikację między różnymi aplikacjami oraz serwisami internetowymi. Dzięki API możliwa jest wymiana danych i informacji pomiędzy nimi, co ma kluczowe znaczenie w dzisiejszym świecie cyfrowym.

    Na stronie Opengateweb.com znajdziesz artykuł, który szczegółowo omawia funkcje oraz zastosowanie interfejsu API Post #22-post-api.

    Planner Fin Stylling

    Prace nad plannerem – Ui stylle, czyli interfejsem użytkownika, są kluczowym elementem projektowania każdej aplikacji mobilnej, strony internetowej czy programu komputerowego. Współczesne trendy w projektowaniu interfejsów skupiają się na prostocie, intuicyjności i estetyce, które mają zapewnić optymalne doświadczenie użytkownika podczas korzystania z danej aplikacji.

    W trakcie prac nad plannerem – Ui stylle należy brać pod uwagę potrzeby i preferencje grupy docelowej, aby stworzyć interfejs, który będzie łatwy w obsłudze i przyjemny dla oka. Ważne jest również dbanie o spójność designu, tak aby wszystkie elementy interfejsu współgrały ze sobą i tworzyły spójną całość. Projektowanie interfejsów użytkownika to proces wieloetapowy, który obejmuje analizę potrzeb użytkowników, tworzenie prototypów, testowanie interfejsu oraz ostateczne wprowadzenie zmian na podstawie opinii użytkowników. Ważne jest, aby interfejs był responsywny, czyli dostosowany do różnych urządzeń i rozdzielczości ekranów, aby każdy mógł korzystać z aplikacji bez ograniczeń.

    Dlatego prace nad plannerem – Ui stylle wymagają skupienia się na zaprojektowaniu UX/UI, tak aby zapewnić optymalne funkcjonalności i wygląd interfejsu. Warto również brać pod uwagę feedback od użytkowników, aby stale doskonalić interfejs i sprostać ich oczekiwaniom. Dzięki starannemu projektowaniu interfejsu użytkownika można stworzyć aplikację, która będzie cieszyć się popularnością i uznaniem użytkowników.

  • Post #23 Zlecenie wykonania strony.

    Post #23 Zlecenie wykonania strony.

    Zlecenie wykonania strony Budzynski Kancelaria.

    Omówienie zlecenia budowy strony

    Nowe zlecenie budowy strony dla Kancelarii Prawniczej. Ustalenia z klientem zakresu prac i wymagań dla strony. Strona BudzyńskiKancelaria będzie prostą stroną wizytówką dla KP i zespołu prawników. Strona wesprze i określi wizerunek.

    Strona Budzynskikancelaria

    DevOps to praktyki integrujące procesy deweloperskie z operacyjnymi. W kontekście budowy strony dla Budzyński Kancelaria, zadania DevOps będą obejmowały sprawdzanie otoczenia domeny, konfigurację hasła i dostępu FTP oraz zamówienie domeny.

    Wstępne założenia

    Założenia dla domeny BudzynskiKancelaria mogą obejmować prostotę w interfejsie użytkownika oraz klarowny opis świadczonych usług prawnych. Dodatkowo, istotnym elementem może być obecność opisu zespołu prawników oraz łatwo dostępny formularz kontaktowy dla klientów.

    Zgromadzenie tekstów i zdjęć

    W projekcie ColorMaker udało mi się uzyskać odpowiednie kolory, które idealnie pasują do koncepcji. Dodatkowo, zebrałem odpowiednie teksty oraz skorzystałem z darmowych zdjęć, aby wzbogacić prezentację i w pełni oddać zamysł projektu.

    Projekt Garficzny strony

    Przygotowuję koncept projektu graficznego strony internetowej wraz ze schematem UX, który skupia się na ergonomii i intuicyjności interakcji użytkownika z witryną. Projekt znajduje się w portfolio BudzynskiKancelaria

  • Post #19 Docker Toolbox, Teachers, Portfolio i Glitch

    Post #19 Docker Toolbox, Teachers, Portfolio i Glitch

    Docker Toolbox – App Teachers – Portfolio

    Zainstalowałem Docker-Toolbox wraz z VM ale mój pecet jest za stary i nie wsółpracuje z VM, nawet w starszych instalacjach. Problem leży także w wersji Home. Próbowałem jeszcze możliwości sub-systemu Windows z Linuxem ale mam trochę dośwaidczeń z drugiej strony Linuxa z subsystemem Windowsa i wiem że taki twory gdzie są dwa OS działają beznadziejnie jak auta Hybrydowe – zrezygnowałem z walki na Win Home z konteneryzacją ale wrócę z nowym PC-tem na Pro lub Enterprise. Więcej o Docker

    Dodałem app Node i Express do Glich

    Łatwiejszym rozwiązaniem jest hosting na serverach Node takich jak Glitch, Netlify czy Heroku. Ostatecznie leży na Glitch – zobacz Portfolio gdzie znajdziesz linki do uruchomionej app. Glitch trzyma włączoną i oferuje darmowe 1000 h na miesiąc.

    Plan dla Finanse – pilne rachunki i planner

    Zrobiłem rozpiskę planu applikacj finansowej w podstawowych założeniach i wygląda imponująco. Teraz się zastanawiam jaki zespół to napisze ? Ja i ja 😀😀😀

    Mniej więcej interfejs aplikacji Doradca finansowy będzie zawierał następujące funkcje:

    • Planer brief na następny miesiąc: Zapewniający przegląd planów finansowych na nadchodzący miesiąc.
    • Analiza wydatków na podstawie paragonów: Umiejętność analizowania wydatków na podstawie zdjęć paragonów w celu lepszego zrozumienia, gdzie pieniądze są wydawane.
    • Ewaluacja suwaków dla zwiekszenia i zmniejszenia: Pozwala użytkownikowi manipulować suwakami, aby zobaczyć, jak zmiana wydatków wpłynie na ich ogólną sytuację finansową.
    • Analiza wydatków wraz z możliwościami inwestycji: Zapewnia szczegółową analizę wydatków i sugeruje potencjalne możliwości inwestycyjne na podstawie sytuacji finansowej użytkownika.
    • Moduł optymalizacji kupowania: Pomaga użytkownikowi w optymalizacji zakupów poprzez sugerowanie najlepszych sposobów oszczędzania pieniędzy podczas zakupów.
    • Login personalny oraz rodzinny ( dwa personalne np dla pary )
    • Moduł wykresów: Umożliwia generowanie różnych wykresów i grafik, które pomagają wizualizować wydatki, oszczędności, inwestycje itp., aby użytkownicy mogli łatwiej zrozumieć swoją sytuację finansową.
    • Integracja z API rynków finansowych oraz API aplikacji: Zapewnia dostęp do aktualnych danych z rynków finansowych oraz integrację z innymi aplikacjami finansowymi w celu ułatwienia monitorowania i zarządzania portfelem.
    • Możliwość eksportu do plików CSV: Umożliwia eksport danych finansowych do plików CSV, co pozwala użytkownikom na przenoszenie danych do innych programów lub przeglądanie ich w arkuszach kalkulacyjnych.
    • Budżetowanie na dłuższy okres: Dodanie funkcji umożliwiającej planowanie budżetu na rocznej lub wieloletniej skali czasowej, co pozwala użytkownikom na lepsze zarządzanie długoterminowymi celami finansowymi, takimi jak emerytura czy oszczędności na edukację dzieci.
    • Prognozowanie wydatków: Integracja algorytmów prognostycznych, które analizują wzorce wydatków użytkownika i prognozują przyszłe wydatki, co pomaga w lepszym planowaniu finansowym.
    • Śledzenie aktywów: Dodanie funkcji umożliwiającej śledzenie wartości posiadanych aktywów, takich jak nieruchomości, inwestycje, emerytury itp., aby użytkownicy mieli pełny obraz swojego majątku.
    • Personalizowane porady: Wykorzystanie sztucznej inteligencji do dostarczania spersonalizowanych porad finansowych, uwzględniających indywidualną sytuację i cele użytkownika.
    • Edukacyjne zasoby: Dodanie sekcji zasobów edukacyjnych, która zawiera artykuły, poradniki i kursy dotyczące różnych aspektów zarządzania finansami osobistymi, aby użytkownicy mogli kontynuować rozwój swojej wiedzy na temat finansów.
    • Integracja z technologią blockchain: Jeśli jest to odpowiednie dla użytkowników, integracja z technologią blockchain może umożliwić im śledzenie transakcji, zarządzanie portfelem kryptowalut oraz uczestnictwo w rynkach DeFi (finansów zdecentralizowanych).

    Następnie API Async Xhr Ajax metody fetch()

    Dopracowanie szczegółów app i research wyboru architektury i technologi

    Konfiguracja Flutter do tworzenie aplikacji mobilnych Ios i Android

  • Post #14 Hugo Layout Development

    Post #14 Hugo Layout Development

    #14 Modyfikacje layout i theme Hugo PaperMod

    Dodałem Archiwa i Categorie do szablonu, bez przyjaciół się obejdzie/

    Modyfikacja layout categories i archiwa

    Moje główne kategorie

    • Tech News
    • Coding Corner
    • Design Hub

    Oznaczam post jako Design Hub

    Taksonomie to zdefiniowane przez użytkownika grupowane treści. Są one sposobem klasyfikacji i organizacji treści na podstawie logicznych relacji. Na przykład, na stronie internetowej o filmach, możesz mieć taksonomie dla Aktorów, Reżyserów, Studiów, Gatunków, Lat i Nagród.

    Każda taksonomia ma Terminy, które są kluczami w ramach taksonomii. Na przykład, w taksonomii Aktorów, nazwa każdego aktora byłaby terminem.

    Każdy termin ma Wartości, które są elementami treści przypisanymi do terminu. Na przykład, w taksonomii Aktorów, filmy, w których wystąpił każdy aktor, byłyby wartościami dla terminu tego aktora.

    Hugo automatycznie tworzy taksonomie dla tagów i kategorii. Możesz to zobaczyć na przykład na stronie Kategorie można również zdefiniować niestandardowe taksonomie w pliku konfiguracyjnym swojej strony hugo.toml.

    Możesz przypisać treść do taksonomii w metadanych treści. Na przykład, aby przypisać wpis na blogu do kategorii „Development” i serii „Go Web Dev”, należy umieścić kategorie = [’Development’] oraz series = [’Go Web Dev’] w metadanych wpisu.

    Możesz dodać niestandardowe metadane do terminów taksonomii, tworząc stronę dla terminu i dodając metadane w metadanych przedniej części.

    Dostarczony wcześniej plik układu categories.html służy do generowania strony z listą kategorii. Ta strona wyświetla wszystkie kategorie używane na Twojej stronie, a dla każdej kategorii dostarcza link do strony wyświetlającej wszystkie wpisy w tej kategorii. Linia {{ .Data.Terms.Alphabetical }} to miejsce, gdzie Hugo iteruje po wszystkich kategoriach w porządku alfabetycznym.

    Linki do stron dodane do Stopki

    Dodałem do stopki Kategorie

    Stworzenie Series

    Dodatkowo do categori tagów dodałem series. Przejdź i zobacz dodatkową funkcjonalność Taxonometrii Hugo. Categories Archives

    Jak zrobić archives i categories w Hugo

    Trzeba założyć strony w katalogu content. Trzeba pamiętać że nie są to zwykłe pages lub post i powinny być poza tymi folderami w głównym folderze content poniżej front-matters.

    • Plik categories.md
    ---
    title: "Categories from here"
    layout: "categories"
    url: "/categories/"
    summary: categories
    ---
    
    
    
    • Plik archives.md
    ---
    title: "Archive"
    layout: "archives"
    url: "/archives/"
    summary: archives
    ---
    
    

    Oba pliki są tylko z front-matters – treść jest generowana dynamicznie dodatkowo w głównym pliku config calej applikacji hugo.toml należy dodać params

    [taxonomies]
      tag = "tags"
      category = "categories"
      series = "series"
    
    
    

    W zależności jeśli chcemy umieścić linki do tych stron w menu to należy dopisać do menu odpowiednie params. W moim przypadku zmodyfikowałem layout footer.html

    • Plik footer.html
    <span>
            Powered by
            <a href="https://gohugo.io/" rel="noopener noreferrer" target="_blank">Hugo</a> &
            <a href="https://github.com/adityatelange/hugo-PaperMod/" rel="noopener" target="_blank">PaperMod</a> |
            <a href="/pages/sitemap" rel="noopener" target="_blank">Sitemap</a> |
            <a href="/archives/" rel="noopener" target="_blank">Archives</a> |
            <a href="/categories/" rel="noopener" target="_blank">Categories</a>
        </span>
    
    
    

    Pliki szablonów – dla archives szablon był przygotowany a dla categories.html trzeba stworzyć plik layouts_default\categories.html ( zwróć uwagę że front-matters wskazuje na szablon layout: „categories” )

    • Plik szablonu categories.html ( Do sprawdzenia dodawanie / customizowanie dodatkowego css. )
    {{ define "main" }}
    <div class="container">
      <h1>Categories</h1>
      {{ range $key, $value := .Site.Taxonomies.categories }}
      <a href="{{ "categories/" | relLangURL }}{{ $key | urlize }}">{{ $key }}</a> ({{ len $value }})
      {{ end }}
    
      <h2 style="margin-top: 2rem;">Series</h2>
      {{ range $key, $value := .Site.Taxonomies.series }}
      <a href="{{ "series/" | relLangURL }}{{ $key | urlize }}">{{ $key }}</a> ({{ len $value }})
      {{ end }}
    
      <h2 style="margin-top: 2rem;">Tags</h2>
      {{ range $key, $value := .Site.Taxonomies.tags }}
      <a href="{{ "tags/" | relLangURL }}{{ $key | urlize }}" style="margin-left: 0.25rem; margin-right: 0.25rem;">{{ $key }}</a> ({{ len $value }})
      {{ end }}
    </div>
    {{ end }}
    
    

    I wszystko gotowe.