Trzy najważniejsze rzeczy w życiu

https://xpil.eu/Ru29S

Jak wiadomo Prawdziwy Mężczyzna musi w życiu zrobić trzy rzeczy:

Zbudować dom

W moim przypadku budowanie domu nie wchodzi w rachubę, zamiast tego pozwalam innym budować domy, które następnie kupuję. Efekt końcowy jest ten sam, a człowiek się mniej narobi, nie wspominając o tym, że gdybym zabrał się za budowanie domu, skończyłoby się w najlepszym razie dziurawym namiotem, a w najgorszym pewnie wysadziłbym w powietrze połowę Układu Słonecznego.

Posadzić drzewo

W ziemi grzebać nie lubię, jednak ponieważ mieszkam na wsi i mam ogródek tudzież trawnik, przytrafiło mi się sadzenie drzewa już kilka razy. Zaliczone.

Spłodzić syna

Tu mamy kompletny sukces, syn, sztuk raz, miewa się nieźle, kończy podstawówkę i lada chwila śmiga do liceum. Zaliczone.

Z tym, że te trzy życiowe osiągnięcia to za mało we współczesnym świecie. Albowiem - i tutaj dochodzimy do sedna - Prawdziwy Mężczyzna nie powinien nazywać siebie Prawdziwym Mężczyzną, gdyby przynajmniej raz w życiu nie spróbował...

Zbudować statyczny generator stron WWW i przenieść nań swojego bloga

Ponieważ na technologiach webowych znam się jak kura na pieprzu, powinienem był skorzystać z gotowca. Jest tego na pęczki: Hugo, Eleventy, Jekyll czy inne Gatsby. Nawet spróbowałem paru, ale od razu uciekłem. Astro mnie przerosło, Hugo się często psuje przy aktualizacjach, no i tak ogólnie nie bardzo mi leżało uczenie się nowej technologii. Pozostałem więc przy tym nieszczęsnym WordPressie, chociaż ze świadomością, że używam starego kombajnu do doręczania listów.

A potem pojawiły się elemelki, dzięki którym nawet takie miernoty jak Autor niniejszego tekstu mogą udawać Wielkich Programistów.

Wyelemelkowałem sięc sobie.... swój własny system SSG (z angielskiego: Static Site Generator). Udało mi się nawet przenieść sporo funkcjonalności z wersji wodpressowej: komentarze, losowe wpisy, losowe cytaty, matematyka, applety JS, krótkie linki, wyszukiwarka i parę innych inności. Z części klamotów musiałem na razie zrezygnować (na przykład: powiązane wpisy, szczegółowe statystyki, lista przeczytanych książek itd).

Żeby nie utrudniać, nowa wersja blogu siedzi sobie na osobnej domenie (ten sam VPS, osobny virtual host w Apaczu). Domenę kupiłem chyba ze trzy lata temu, jakoś nie miałem dotychczas rozpędu żeby ją ożywić.

Fanfary, tusz, niniejszym oto prezentuję pleno titulo czytelniactwu następującego stwora:

Ignormatyk

Proszę sobie poklikać, pooglądać i popodziwiać. Wersja jest rzecz jasna bardzo surowa, nie sprawdziłem szczegółowo każdego wpisu i komentarza, więc możliwe, że część klamotów się nie przeniosła jak trzeba - z drugiej strony od czegoś trzeba zacząć. Główną zaletą jest póki co szybkość działania, bo statyczny HTML (prawie) zawsze będzie szybszy od CMS-a.

Rozwiązanie zawiera "pod maską" sporo części ruchomych, które być może opiszę szczegółowo przy jakiejś okazji. Jeżeli chodzi o wydajność generowania wersji statycznej to oczywiście nie dorównuje "porządnym" rozwiązaniom, ale wyrabia się z całością poniżej dwóch minut - co jak na elemelkującego amatora i ponad 3000 wpisów uważam za wynik całkiem przyzwoity.

Zbudowanie tego od zera zajęło mi trzy popołudnia - z czego większość na tête-à-tête z elemelkiem...

Uff.

https://xpil.eu/Ru29S

8 komentarzy

  1. Tyle pytań…
    Czemu jednak nie któryś z gotowców?
    Jak zrobione są komentarze, skoro blog jest statyczny?
    Czy są plany opublikowania silnika?
    Skoro można „poklikać, pooglądać i popodziwiać”, to czy można także Pomarudzić albo nawet Próbować Popsuć?
    Czy data zamieszczenia wpisu ma znaczenie?

    1. Komentarze są dynamiczne 🙂 (używam isso, czyli sqlite oraz maleńka usługa na osobnym porcie na localhost). Marudzić jak najbardziej można, psuć też. Póki co to tylko poligon doświadczalny, jeżeli się kiedyś przerzucę na SSG „na serio”, zrobię to (raczej) na głównej domenie. Co zaś do daty zamieszczenia wpisu to nie do końca rozumiem pytanie.

      1. Z tą datą chodzi o Prima Aprilis. Sporo rzeczy nie działa, więc myślałem, że vibe coded żarcik. Dokładniej to na desktopie jest nieźle (z niedziałających tylko skrócone linki pamiętam) i nawet jako tako wygląda (wygląd kojarzy mi się z blogger.com; to w zasadzie pochwała). Ale na telefonie słabo używalne.

    1. Nie. Jeżeli uda mi się przekonać samego siebie, że warto, podmienię bieżącą „stajnię” na wariant statyczny. A jak nie, to się eksperyment na nowej domenie całkiem zlikwiduje, albo zastąpi czymś innym.

  2. Gratuluję! Wygląda naprawdę nieźle. Ale w czym Twój SSG jest napisany? Gdybym ja próbował wyelelemować coś takiego, spróbowałbym w czystym C, dla szybkości (zero ironii). Ale pewnie wtedy musiałbym wymyślać od zera Unicode…

    1. W Pythonie. Było kilka interesujących problemów do rozwiązania, na przykład: krótkie linki, komentarze, import z WordPress-a. Może kiedyś napiszę bardziej szczegółowo jak mnie wena zaatakuje.

  3. Ja też swego czasu byłem już blisko opublikowania bloga w Gemini (protokole). Miałem nawet jakiś parser.
    I mimo że wciąż wydaje mi się to świetnym pomysłem to jednak jakoś z lenistwa odpuściłem. Byłbym wtedy jeszcze bardziej niszowy niż teraz, widownia mogłaby nie przeżyć. 😉

Skomentuj xpil Anuluj pisanie odpowiedzi

Komentarze mile widziane.

Jeżeli chcesz do komentarza wstawić kod, użyj składni:
[code]
tutaj wstaw swój kod
[/code]

Jeżeli zrobisz literówkę lub zmienisz zdanie, możesz edytować komentarz po jego zatwierdzeniu.