fajne.life to nie tylko blog, ale też długofalowy projekt tworzenia osobistego, prostego systemu życia i pracy. Cała strona – zarówno technicznie, jak i koncepcyjnie – powstaje krok po kroku.

Na tej podstronie dokumentuję wszystkie zmiany techniczne i wizualne w formie changelogu. Każda wersja motywu lub większej zmiany systemowej ma swój wpis w kategorii changelog.

To miejsce dla tych, którzy lubią śledzić proces, zmiany, decyzje i rozwój – i może dla tych, którzy sami chcą zbudować coś swojego.

  • wersja 2.4 – api bloga, wyszukiwarka, zgody rodo

    ta aktualizacja to kolejny duży krok w budowie spójnego ekosystemu „fajne życie”. największą nowością jest wtyczka stałe api dnia – dzięki niej mój dziennik staje się dostępny nie tylko na blogu, ale także w postaci stałego, bezpiecznego api. to właśnie przez nie chat gpt może czytać moje wpisy i dane zdrowotne, analizować je, a nawet pomagać mi codziennie wyciągać wnioski. w połączeniu ze skrótami apple oznacza to błyskawiczne analizy – wystarczy jedno tąpnięcie albo komenda głosowa na iphonie, żeby otrzymać podsumowanie dnia, ocenę nastroju czy sugestie zmian.

    obok tego poprawiłem filtry dla jetpack newsletter i jetpack social, które pozwalają decydować, które treści wysyłają się mailem i do mediów społecznościowych – w końcu działa to tak, jak powinno. gotowa jest też pełna wtyczka zgód rodo (🍪), a także całkiem nowa wyszukiwarka fajne search – szybka, nowoczesna i spójna z całym systemem i dodatkiem jetpack search, choć już wiem, że czeka mnie tu jeszcze sporo pracy, aby działało to tak, jak chcę, aby działało.

    to ogromny krok – system „fajne życie” staje się coraz bardziej interaktywny i zintegrowany.

    dodane:

    • Wtyczka: „fajne | Newsletter Filter”
      • Filtr kategorii newslettera (panel: Fajne Core → Newsletter Filter)
      • Integracja z Jetpack Newsletter (hook jetpack_published_post_flags) – działa jako filtr decyzyjny, nie nadpisuje logiki Jetpacka
      • Ustawienia w kokpicie: włącznik, lista kategorii (checkboxy), integracja z menu Fajne Core
      • Tryb ręcznego nadpisania: metabox z checkboxem „Wymuś wysyłkę newslettera”
      • Rozdzielenie sterowania Newsletter vs Social (Jetpack Social)
      • Oddzielne włączniki i listy kategorii dla social mediów
      • Metabox: „Wymuś udostępnianie w mediach społecznościowych”
      • Hooki: jetpack_social_auto_share_enabled, jetpack_social_auto_share_message
    • Wtyczka: „fajne | Zgody RODO” (🍪)
      • Zależność od „fajne | Core”, rejestracja modułu, automatyczna inicjalizacja
      • Panel ustawień (4 sekcje): Ogólne, Banner, Kategorie, Google Consent Mode v2
      • Frontend: banner + modal kategorii, AJAX zapisu zgód, integracja z Google Consent Mode v2
      • Style (frontend.css, admin.css) i skrypty (frontend.js, admin.js)
      • Dokumentacja (README.md), czyszczenie przy odinstalowaniu (uninstall.php)
      • 5 kategorii ciasteczek, 3 style bannerów, 6 pozycji wyświetlania, pełna responsywność
      • API i eventy dla deweloperów
    • Wtyczka: „fajne | Search”
      • Osobny moduł, współpracuje z Jetpack Search (automatyczne wykrywanie + fallback do natywnego WP)
      • Globalne wyszukiwanie: posty, strony, mikrodziennik (CPT), changelog (CPT), tagi, kategorie
      • Interfejs lightbox: animacje, dark mode, filtry typów treści, ikony/oznaczenia wyników
      • Skrót klawiaturowy: CMD-J / CTRL-J
      • AJAX endpoint fajne_search, hook integracji z paskiem narzędzi (fajne_toolbar_search)
      • Struktura: osobne CSS/JS, dokumentacja i instrukcja instalacji
    • Wtyczka: „fajne | Stałe API Dnia”
      • Rejestracja w Fajne Core, panel ustawień, zarządzanie linkami
      • Stałe linki API z uprawnieniami: public / patron / private (endpoint: /api-dnia/{link_id}/)
      • Zbieranie i grupowanie danych per dzień (strefa Europe/Warsaw)
      • Wsparcie dla wielu typów treści (posty, mikro, zdrowie, posiłki, nastrój, aktywność)
      • Format wyjścia: JSON (kanoniczny) + opcjonalnie Markdown (?format=markdown)
      • Konwersja HTML → Markdown dla lepszej pracy z LLM
      • Bezpieczeństwo: unieważnianie linków, licznik zapytań, obsługa błędów

    usunięte:

    • Usunięto problematyczne hooki jetpack_sync_before_enqueue_* (konfliktowały z Jetpack Social)

    naprawione:

    • Fajne | Auto Title
      • Dodano obsługę automatycznych tytułów dla micro-wpisów publikowanych z aplikacji
    • Komentarze i udostępnianie
      • Przywrócono/uzupełniono możliwość komentowania micro-wpisów
      • Usunięto pole komentowania w sekcji „tego samego dnia”
      • Sekcje „Komentarze” i „Podaj dalej” przerobione w oparciu o globalne skalowanie/stylowanie
      • Dodatkowe poprawki UX sekcji „Podaj dalej” i „Skomentuj ten wpis”
  • wersja 2.3 – Moduł Kalendarza 🎉

    dodane:

    • Nowa wtyczka: „fajne | kalendarz”
    • Pełna integracja z systemem Fajne życie
    • Struktura wtyczki
      • Główny plik fajne-kalendarz.php zgodny ze specyfikacją fajne-core
      • Plik module-hook.php do rejestracji w systemie
      • Struktura katalogów zgodna ze standardami
    • URL Rewriting dla dat
      • /dzisiaj, /wczoraj, /jutro, /pojutrze + wersje angielskie
      • Automatyczne odświeżanie reguł przy aktywacji/deaktywacji
    • Integracja z wyszukiwarką
      • Obsługa dni tygodnia, miesięcy, lat i dat względnych (np. „dzisiaj”, „jutro”)
      • AJAX handler do szybkiego wyszukiwania dat
    • Interaktywny kalendarz (lightbox)
      • Nowoczesny, responsywny design
      • Oznaczenie dni z wpisami + bieżącego dnia
      • Nawigacja miesiącami, klikane dni → archiwum
      • Skróty klawiaturowe: strzałki, Escape, Home
      • Pełne wsparcie dla mobile i trybu ciemnego
    • Obsługa archiwum dat
      • Automatyczne strony archiwum dla dni, tygodni, miesięcy, lat
      • Przyszłe daty nie generują błędów 404
      • SEO-friendly meta tagi
    • Integracja z motywem
      • Ikona kalendarza w nagłówku + skrót ⌘C (Mac) / Ctrl+C (PC)
      • Usunięty alert „funkcjonalność w trakcie rozwoju”
    • Globalna biblioteka lightbox
      • Reużywalny modal z animacjami
      • Obsługa Escape, kliknięcia poza modalem i blokada scrolla
    • Jak używać:
      1. Kliknij ikonę kalendarza w nagłówku lub użyj skrótu ⌘C / Ctrl+C
      2. Wpisz w URL: /dzisiaj, /wczoraj, /jutro itp.
      3. Wyszukuj daty (np. „poniedziałek”, „lipiec”, „2025”) w wyszukiwarce
      4. Nawiguj interaktywnym kalendarzem
    • Wymagania techniczne:
      • Wtyczka fajne | Core 1.0.0+
      • PHP 7.4+, WordPress 5.0+
      • JavaScript: jQuery
      • CSS Variables dla łatwej personalizacji
    • Możliwość komentowania micro-wpisów
    • Globalne skalowanie dla sekcji „Komentarze” i „Podaj dalej”
    • Nowa wersja sekcji „Podaj dalej” i „Skomentuj ten wpis” – spójny wygląd i lepsze UX

    zmienione:

    • Fajne Auto Title
    • Dodawanie automatycznych tytułów dla micro-wpisów publikowanych z aplikacji
    • Mikrowpisy (tego samego dnia)
    • Usunięte pole komentowania przy wpisach tej sekcji

    naprawione:

    • Poprawki wizualne sekcji „Podaj dalej” i „Skomentuj ten wpis”

  • wersja 2.2 – mikrodzienniki, podsumowania dnia i inne nowe funkcje

    dodane:

    • Nowy moduł: „fajne | podsumowania dnia” (Gabloty i Wyrok)
    • Osobny typ wpisów do codziennych podsumowań w ramach projektu fajne życie – 365
    • Zawiera: numer dnia transformacji, narrację dnia, ocenę (kolorową) oraz opcjonalne sekcje analityczne (sen, aktywność, stres, środowisko)
    • Integracja z systemem ikon bloga (domyślnie 📆, możliwość zmiany)
    • Wygląd dopasowany do „artykułów” na stronie głównej
    • Ustawienia wtyczki: nazwa projektu, daty startu i końca
    • System modułów – konfigurowalne nazwy, ikony, klucze JSON i podsekcje
    • Trzy metody uzupełniania: ręcznie, wklejenie JSON, import pliku JSON
    • Strona archiwum z filtrami (zakres dat, moduły, typ treści)
    • Obsługa wielu projektów i numerowania dni względem startu projektu
    • Checkboxy dla podsekcji – aktywne/nieaktywne w edytorze
    • Dynamiczne renderowanie modułów w edytorze i na stronie
    • Oznaczenie projektu (badge z nazwą) pod tytułem wpisu
    • Domyślne blokowanie wpisów dla Patronów z możliwością odblokowania
    • Integracja z rolą „patron” – dostęp do wpisów zablokowanych
    • Obsługa komentarzy na blogu
    • Włączony system komentowania
    • Sekcje „Komentarze” oraz „Podaj dalej” są teraz zwijalne
    • Sekcja „Podaj dalej”
    • Przebudowana, z nowym wyglądem i funkcjami udostępniania

    zmienione:

    • Poprawki wydajności nagłówka strony
    • Mikrodzienniki
    • Usunięcie automatycznego tytułu szkica
    • Zmiana adresów (URL) mikrodzienników
    • Nowy layout wpisów mikrodzienników
    • Możliwość łatwego udostępniania wpisów dalej
    • Łatwe przejście pomiędzy mikrodziennikami
    • Linkowanie do wpisów mikrodzienników
    • Poprawki wyświetlania na stronie głównej i w kategoriach
    • Wygląd podsumowań dnia
    • Format wyroku: „⚖️ Wyrok: 🟡 przeciętny” (dwukropek, małe litery)
    • Sekcja „Notatki” – identyczna ramka i layout jak „Wnioski końcowe”
    • Poprawiona szerokość strony (max-width: 800px, wyśrodkowanie)
    • Nowoczesny design filtrów i kart wpisów
    • Nowe opcje filtrowania: wielokrotny wybór modułów, checkboxy „Gablota” i „Wyrok”

    naprawione:

    • JSON i import danych
    • Poprawione mapowanie modułów i podsekcji
    • Obsługa głównej wartości modułu (content)
    • Import statusu prywatności (privacy.locked)
    • Usunięcie błędu w strukturze przykładowego JSON
    • Dynamiczne generowanie
    • Moduły i podsekcje generowane na podstawie ustawień
    • Zapisywanie dowolnej liczby modułów i podsekcji
    • Wyświetlanie tylko treści istniejących modułów/podsekcji

    usunięte:

    • Wyłączenie klasycznego edytora i kategorii dla podsumowań dnia (zastąpione meta field patreon-level / _fajne_patreon_locked)
  • wersja 2.1 – Ikony, tagi i więcej porządku

    dodane:

    • Dedykowane ikony dla typów treści
      • Możliwość przypisywania i edytowania ikon w ustawieniach motywu
      • Ikony widoczne przy wpisach w strumieniu życia i na stronach kategorii
    • Nowa wtyczka: „fajne | auto tagi i osoby” (v1.0.0)
      • Automatyczne wykrywanie znaczników # i @ w treści wpisów i zamiana ich na tagi WordPress
        • # tag → zwykły tag WordPress
        • @ osoba → tag z zachowanym prefiksem „@” (np. @ mama)
        • Ignorowanie adresów e-mail (nie zamieniają się w tagi)
        • Działa tylko przy publikacji i aktualizacji (nie przy zapisie roboczym)
        • Możliwość wyłączenia działania w danym wpisie (checkbox)
        • Pełna zgodność z custom post types
        • Osobna strona ustawień z opcją: włącz/wyłącz, zmiana prefiksów, wykluczanie typów treści
        • Dodawane klasy CSS .tag-znacznik i .tag-osoba dla pełnej kontroli stylów
        • Modułowa budowa – gotowa do dalszego rozwoju
      • Zadania nowego modułu:
        • Testy przy różnych kombinacjach # i @
        • Dodanie podlinkowania znaczników w treści
    • Zmiana wyglądu mikrowpisów
      • Lepsze grupowanie wpisów z tego samego dnia
      • Czytelniejsze przedstawienie chronologii
    • Globalna wyszukiwarka
      • Uspójniony wygląd i interakcja – jak w aplikacjach
      • Dodany skrót klawiaturowy do otwierania wyszukiwarki (⌘ + K)
    • Globalny pasek narzędziowy
      • Szybszy dostęp do kluczowych funkcji strony
      • Wstępne skróty: kalendarz, dziś, wyszukiwarka, tryb jasny/ciemny
    • Tryb darmowy
      • Nowy tryb przeglądania strony, w którym ukrywane są wszystkie wpisy dostępne wyłącznie dla patronów z Patreona
      • Możliwość przełączania widoczności płatnych treści globalnie

    usunięte:

    • Nawigacja breadcrumbs (okruszki) – uproszczenie interfejsu

    naprawione:

    • Ujednolicenie nagłówków i porządek w strukturze strony
    • Lepszy układ nagłówka – wprowadzenie spójnych, globalnych rozwiązań
  • wersja 2.0 – nowy strumień życia

    dodane:

    • Strona główna w formie Strumienia Życia
      • Wszystkie treści na blogu zebrane w jednym, chronologicznym strumieniu
      • Grupowanie wpisów według dni oraz typu treści (mikrowpis, artykuł, mikro-dziennik)
      • Ikony oznaczeń typów treści dla lepszej czytelności i wizualnego wyróżnienia
      • Obsługa tagów
        • Wyświetlanie tagów przy wpisach oraz możliwość grupowania treści według tagów
      • Podział mikrowpisów na godziny
        • Każdy mikrowpis zawiera informację o dokładnej godzinie publikacji, co pozwala na lepsze śledzenie chronologii w ciągu dnia
    • Automatyczne ustawianie statusu wpisów
      • Integracja z systemem Patreona, która pozwala na automatyczne blokowanie lub odblokowywanie wpisów w zależności od przypisanej kategorii, umożliwiając bezpieczne publikowanie bardziej prywatnych treści
    • Wtyczka dla wpisów zablokowanych dla patronów
      • Dodanie fragmentu tekstu jako zajawki dla wpisów dostępnych tylko dla wspierających na Patreonie
      • Usprawnienia w wyświetlaniu i stylizacji takich wpisów

    usunięte:

    • brak

    naprawione:

    • brak
  • wersja 1.2.1 (mikro-dzienniki + zmiany w wyglądzie list)

    dodane:

    • nowość – moduł mikro-dzienniki (plugin: fajne-mikrodziennik)
    • rejestracja własnego Custom Post Type mikrodziennik bez tytułu, z obsługą edytora i pól własnych
    • rejestracja taksonomii dziennik_kategoria do grupowania wpisów dziennikowych (np. „fajne życie to”, „uwielbiam”)
    • dodanie pola „nastrój” jako własnych metadanych, edytowalnych w panelu bocznym wpisu
    • plugin przygotowany zgodnie ze strukturą systemu modułowego (ładowany przez fajne-core)

    zmienione:

    • strona główna:
    • dodano sekcję mikro-dzienniki z wyświetleniem 6 najnowszych wpisów tego typu
    • wpisy pokazują kategorię jako podkreślony link + treść wpisu bez podkreślenia
    • dodano przycisk „więcej”, kierujący do archiwum mikro-dzienników
    • szablon kategorii (taxonomy-dziennik_kategoria.php):
    • ten sam układ i styl jak na stronie głównej
    • paginacja z użyciem the_posts_pagination()

    naprawione:

    • poprawiono styl linkowania nazw kategorii: teraz tylko nazwa kategorii jest klikalna i podkreślona, treść wpisu pozostaje niepodlinkowana, co poprawia przejrzystość
  • wersja 1.2.0 (start systemu modułowego)

    dodane:

    • nowość – utworzono szkielet centralnej wtyczki fajne-core
    • ładowanie i rejestracja zewnętrznych modułów przez do_action('fajne_register_module', [...])
    • strona administracyjna z listą aktywnych modułów
    • struktura folderów includes/, assets/, helpers
    • mechanizm sprawdzania aktywności modułów
    • gotowość pod przyszłe funkcje: ustawienia, aktywacja/dezaktywacja, logowanie
    • zadania nowego modułu:
      • przygotować panel z opcją aktywacji/dezaktywacji modułów
      • przygotować szablon spec.md dla modułów
      • stworzyć pierwszy moduł testowy (fajne-nutrition)

    usunięte:

    • brak

    naprawione:

    • brak
  • wersja 1.11

    dodane

    • Nowy formularz wyszukiwania z overlayem:
      • wyświetla się po kliknięciu ikony lupy w menu,
      • zamyka się po kliknięciu poza polem wyszukiwania lub przez klawisz Escape,
      • animowane pojawianie się i znikanie,
      • wygaszenie tła pod overlayem.
      • Dynamiczne podpowiedzi wyników wyszukiwania (live search) z AJAX.
      • Stylowanie formularza (ciemny tryb, zaokrąglenia, responsywność).
    • Filtr do generowania tytułów dla wpisów typu micro w Jetpack Social – jeśli wpis nie ma tytułu, wykorzystywany jest początek treści.
    • Blokada wysyłki newslettera Jetpack dla wpisów z kategorii innej, niż newsletter. (sorry za zbędne maile! mam nadzieję, że teraz nie przyjdzie e-mail do zapisanych osób 🙂)

    usunięte

    • Przycisk zamknięcia wyszukiwarki (X) – był nieestetyczny i zbędny.

    naprawione

    • Formularz wyszukiwania nie był ukrywany po załadowaniu strony – poprawiono logikę widoczności.
  • Wersja 1.1

    2025-05-03

    Struktura motywu

    • Podzielono style.css na 16 osobnych plików w folderze css/, m.in. base.css, layout.css, typography.css, responsive.css, dark.css, micro.css, changelog.css.
    • Zaktualizowano functions.php tak, aby ładował wszystkie te pliki poprawnie.
    • Usunięto duplikat funkcji fajne_life_enqueue_styles.

    Widok strony głównej (home.php)

    • Ustalono nową kolejność sekcji: mikro blog → artykuły → changelog.
    • Mikro blog pokazuje 6 ostatnich wpisów w formacie data: treść, zminimalizowano ich objętość.
    • Artykuły: wyświetlane są 4 ostatnie wpisy, z wykluczeniem kategorii micro i changelog.
    • Sekcja changelog została zmniejszona do jednej ostatniej wersji i osadzona w lekkim bloku.
    • Dodano przyciski „więcej” pod każdą sekcją.

    Menu i nagłówek

    • Poprawiono header.php, w tym wp_nav_menu i klasę site-title.
    • Dodano obsługę rozwijalnych podmenu i plik menu.css.

    Styl i spójność

    • Ujednolicono wygląd tytułów sekcji (.section-title).
    • Naprawiono margines nad sekcją changelog.
    • Poprawiono kolory i wygląd linków.
    • Dodano lekkie, subtelne przyciski więcej.

    Responsywność

    • Dodano plik responsive.css i podstawowe style mobilne.
    • Rozwiązano problem z ładowaniem stylów na mobile.

    Bonus

    • Naprawiono układ i wygląd na iPhone’ach, w tym marginesy, fonty i przerwy między sekcjami.
  • Wersja 1.0

    Data publikacji

    2025-05-03

    Typ wersji

    • [x] Nowe funkcje
    • [x] Zmiany stylistyczne
    • [x] Techniczne fundamenty

    Zmiany

    • Stworzono całkowicie nowy motyw WordPress od zera, oparty na oficjalnych strukturach WP
    • Dodano własne pliki: home.php, single.php, category-micro.php, page.php, functions.php
    • Zaprojektowano lekki, ciemny styl z automatycznym trybem jasnym/ciemnym (prefers-color-scheme)
    • Wdrożono ciemny, wycentrowany układ z prostą typografią
    • Zbudowano osobną stronę microbloga z filtrowaniem wpisów po kategorii „micro”
    • Wprowadzono pierwszą wersję strony changelogu (category-changelog.php)
    • Dodano system wersjonowania motywu (style.css z wersją 1.0)
    • Przygotowano szkielet do dalszego rozwoju: pełna kontrola nad kodem, minimum zależności

    Komentarz

    To pierwszy kamień milowy w budowie własnego, w pełni kontrolowanego systemu życia, blogowania i dokumentowania zmian. Motyw fajne.life będzie rozwijany krok po kroku, w zgodzie z ideą prostoty, trwałości i przejrzystości.