O powstaniu blogaska - czyli na jakiej platformie postawić bloga
Czas coś skrobnąć o wdrożeniu tego blogaska, bo zapomnę o tych mękach, i tych bólach jakie na mnie czyhały, z czym się pałowałem, a co najlepsze nie wiedząc nawet po kiego .... ani po co.
Postawienie blogaska ma być łatwe i szybkie
Oczywistym, że nie było ani łatwo, ani błyskawicznie legendarnym jednym kliknięciem. Wszystko przez p#e (na szczęście już byłe, bo się w porę w łeb kopłem) zboczenie zawodowe, że wszystko lepiej aby było perfecto już na starcie. Wiedziony doświadczeniem bo z nie jednego serwera ram zjadłem wiedziałem, że nie będzie mi się chciało po raz kolejny wracać do zamkniętego projektu i nanosić poprawek.
Uwidziałem sobie postawić blogaska w godzinę. Już po tej godzince stwierdziłem, że jeden wieczór nie wystarczy aby osiągnąć minimalizm i prostotę. To wymaga więcej nakładów niż bym chciał poświęcić. No chyba, że pójdę na łatwiznę i nie będę się przejmował absolutnie niczym.
I tak właśnie niczym skończony frajer postawię cały majdan na wordpressie serwując sobie problem, który później będę zwalczał.
Bo się rozpędzę
Tak popularny i lubiany(?) wordpress nie zaszczyciłby nawet ostatniego miejsca na liście aplikacji, z jakimi chciałbym mieć do czynienia próbując napisać artykuł. Toż musiałbym się linii wysokiego napięcia przy dworcu PKP złapać, żeby postawić choćby gównostronkę na tym najbardziej dziurawym, najmniej przyjaznym wdrożeniowcom i wiecznie zasobożernym CMS-em z jakim miałem w życiu do czynienia.
Ten chłam do wszystkiego potrzebuje wtyczki, bo nic w pakiecie nie oferuje. Choćby tak podstawowa rzecz jak system cache, aby te zasobożerne monstrum wygenerowało i wyświetliło stronę szybciej niż w 24h, wymaga wtyczki (-‸ლ)
Nie wchodząc głębiej w szczegóły techniczne, bo wzbiera we mnie na rzyga przy samej wzmiance nt wordpresa, o blogu postawionym na jakimkolwiek programistycznym cudaku wymagającym bazy danych SQL nie ma mowy. Nawet gdyby to była plikowa baza SQLite, to bywają z tym problemy. Sam podgląd danych nie jest przy tym taki prosty w porównaniu do danych trzymanych w plikach tekstowych.
Co najważniejsze, gdy nie spodoba mi się jakość usług hostingodawcy jedyne co potrzebuję zrobić, to zipnąć jeden katalog i au revoir.
Skąd hejt na bazodanowe aplikacje?
Baza danych jest całkowicie niepotrzebna do małego bloga, pod które najtańsze konto na hostingu współdzielonym z obsługą php będzie w zupełności wystarczające. Druga, jeszcze bardziej istotna rzecz jest taka, że systemy zarządzania treścią oparte na przechowywaniu danych w plikach czy to xml, czy json, są zgrabne, ultra szybkie w działaniu, przyjazne edytorom, nienapakowane tysiącem niepotrzebnych na pierwszy rzut oka funkcji, a przede wszystkim proste do wdrożenia i konfiguracji. Najlepszy z jakim miałem do czynienia zowie się Getsimple CMS i wdrożenie posiadanego szablonu html wymaga dodania tylko trzech funkcji php, aby uruchomić w pełni zarządzaną, dynamiczną stronę www.
The Simplest Content Management System. Ever.
GetSimple has everything you need, and nothing you don't
Nawet z tym nie handluj (╭☞σ ͜ʖσ)☞
Na co w takim razie zwrócić uwagę?
Szybki przegląd tzw. flat file CMS pozwolił mi zebrać dość sporą listę webaplikacji do zarządzania treścią. Interesowało mnie głównie to, co powstało w ciągu ostatnich 3-4 lat, zdążyło okrzepnąć i dojść do etapu wersji rozpoczynającej się od 2.
Zanim jednak zacząłem grzebać się w tym wszystkim, postawiłem pewne warunki, jakie powinien spełniać blogowy CMS:
- Archiwum instalacyjne nie powinno być cięższe niż 5MB. To multimedialna treść ma zabierać miejsce na serwerze, nie sama aplikacja. A do tego ma szybko działać.
- CMS musi oferować tworzenie minimum dwóch typów stron: statycznych oraz dynamicznych.
- Musi oferować edytor markdown chociażby jako dodatkową, aktualną wtyczkę.
Edytorów wysiwyg mam po przysłowiową dziurę. Tyle powiedzieć, że są czasochłonne w obsłudze i więcej czasu wymaga stylowanie treści, niż jej pisanie. - Wsparcie dla SEO jest mile widziane, choć niekonieczne. Można to w dość prosty sposób uzupełnić odpowiednim kodem szablonu. Miło jednak, gdy takimi opcjami jak nagłówek, tytuł strony, nazwa w menu, indeksacja itp. można zarządzać z poziomu edycji strony. A do tego sitemap.xml jest generowany automatycznie. Gdyby jeszcze oferował RSS to już w ogóle bajka.
- Posiada podstawowe opcje dla bloga jakimi jest kategoryzacja, tagowanie, zarządzanie wyświetlaną listą artykułów, wbudowany system komentarzy itp.
- Wbudowana funkcja wyszukiwania i to nie tylko po nagłówkach - opcja wcale nie taka oczywista.
- ma się rozumieć, że dodawanie treści odbywa się z poziomu panelu zarządzania. Żadne ręczne dzierganie plików tekstowych, czy wysyłanie czegokolwiek na serwer poprzez ftp czy w konsoli.
- bezpieczny, nowoczesny, możliwie odporny na zautomatyzowane ataki, w szczególności brute force na panel administratora
- wśród dostępnych szablonów choć jeden przykuje mój wzrok, a jego kod źródłowy urzeknie lekkością
- będzie mi na dzień dobry wyświetlał jakieś motywacyjne gówno na poprawę humoru :D
Tyle w dekalogu, bo lista wszystkich niedostatków jakie wychodzą dopiero w praniu przekroczyłaby setkę. O ile by mi się rzuciło na łeb by opisać wszystko na co wypada zwrócić uwagę. Większość to i tak techniczne pierdoły o jakich mi samemu nie chciałoby się czytać.
Zatem jaki CMS dla bloga?
Przerobiłem chyba ze 30 CMSów. Większość z nich nie spełniała istotnych założeń. Może byłyby fajne dla aktywnych programistów, dla których Content Management System oznacza pisanie treści w pliku tekstowym włącznie z tagami html - bo parsowanie markdown wcale często nie występuje - i synchro tego przez ftp do odpowiedniego katalogu, być może w jakiś inny choć półautomatyczny sposób. A "resztą" zajmie się już owy "CMS".
Po krótkich przeprawach ze wszystkimi aplikacjami na placu boju ostało się trzech zawodników
Grav CMS - stworzony przez załogę RocketThemes znanych z zaawansowanych szablonów i dodatków do Joomla. Do wordpressa chyba też [brrr]
Bludit CMS - okazuje się sukcesorem udanego systemu blogowego pt. Nibbleblog. Developer zaprzestał rozwijania tegoż i zaczął zabawę w nowej piaskownicy.
Typemill - nieznany mi dotychczas reprezentant systemów zarządzania
W trakcie testów dżentelmen Datenstrom Yellow choć nie spełnił moich oczekiwań, ujął mnie mocno za serce domyślnym wpisem w pliku robots.txt
Disallow: /harming/humans
Disallow: /harming/machines
Disallow: /risking/own/existence
Typemill
Zarządzanie treścią w Typemill bardzo przypadło mi do gustu. Nowoczesne i nieszablonowe podejście do zarządzania treścią i edycji pojedynczych bloków artykułu - nie tak jak w przypadku dokumentu worda - bardzo mi się spodobała. Zamiast scrollować jak w każdym znanym mi edytorze wysiwyg do miejsca, które chcę edytować tutaj klikałem w paragraf lub nagłówek, który chciałem zmienić i voilla. Bajka! Niestety, system nie nadaje się na bloga, bowiem oferuje zarządzanie wyłącznie statycznymi stronami. Natomiast oferowane rozwiązanie jest idealne pod swoistego rodzaju dokumentację online, prosty system wiki, czy w ostateczności stronkę firmową. Warto mieć to na uwadze,
Nie zagłębiałem się w strukturę szablonów, więc o wszelkich komplikacjach związanych z wdrożeniem własnego nie mam pojęcia. Te dostępne wyglądają na nieskomplikowane i pod kątem wdrożenia powinny być przyjazne frontendowcom. Podejrzewam że przy odrobinie dobrej woli i prostej pętli, można by bezproblemowo tworzyć listy artykułów ze statycznych podstron. Ale to wymaga czasu i przygotowania odpowiedniej logiki zarządzania artykułami. Dziękuję, może 5 lat temu.
Grav
Zawodnik wagi ciężkiej. Archiwum waży ponad 10MB,a rozpakowane prawie 40. Wordpress "tylko" 1,5MB wincyj. Mimo to dałem mu szansę.
Było warto, zrobił na mnie zawrotne wrażenie już na starcie. Przejrzysta nawigacja, elegancki dizajn panelu i co tylko. Jednakże cała mnogość opcji z wodotryskami i z czego tylko było znane rocketthemes przytłoczyło mnie po napisaniu krótkiego, testowego artykułu. Poszukiwałem minimalistycznego systemu stricte blogowego i te narzędzie byłoby mocnym nadużyciem do tego celu. Dodatkowym minusem dla mnie są szablony oparte na TWIGu. Nie mam ochoty na przygodę z kolejnym językiem szablonów. Niemniej jednak jest to kawał solidnego oprogramowania, które może spokojnie konkurować z wordpressem.
BA! Nie tyle może, co powinno wygryźć te dziadostwo z rynku.
Don't hate the player hate the game
Trudno się z tym zgodzić w tym wypadku, bo jakość kodu wtyczek do WP to w większości programistyczna piaskownica. Ale developerzy tego kartofla i tak tylko pudrują trupa. Gutenberg w v.5.0? Już powstały kolejne forki tego projektu, żeby trzymać się klasycznego workflow.
Bludit
Nazwa dla cms fortunna jak krew z nosa, ale na pierwszy rzut oka oferował wszystko czego oczekiwałem. Minusy ujawniły się w trakcie dłubaniny, ale przy okazji odkryłem kilka dodatkowych atutów. Gdy stwierdziłem, że zabawa z nim zabrała mi tak dużo czasu, wybór okazał się samoistny.
Co w ofercie Bludit?
Życzy mi dobrego dnia po zalogowaniu. Chyba nawet szczerze xD
Maszyny to jednak przyjemniejsze w obyciu jednostki od codziennie spotykanych, ludzkich gburów.
Ale poważnie: przejrzysty, minimalistyczny panel, z grubsza wszystkie potrzebne do zarządzania treścią funkcje dostępne od razu po instalacji. Część z nich w postaci wtyczek, więc jak komu trzeba to można nimi manewrować. Z kilku dostępnych szablonów dało się wybrać coś prostego, a nie kłującego w oczy. Już po kilku przeróbkach nadawało się do użycia na blogaska.
W dalszych machinacjach chciałem uzyskać adresację artykułów w postaci domena/blog/wpis
tak, aby oddzielić wpisy na blogu od statycznych stron. W tym celu musiałem jednak pogrzebać w plikach źródłowych. Choć jest możliwość zrobić coś takiego zmianą jednego ustawienia w panelu, to jednak kończy się na tym, że wszystkie podstrony mają wspólną stronę nadrzędną. Dobre wtedy gdy strona główna jest stroną statyczną zamiast pokazywania listy artykułów.
Chrzanić to, stawiam bloga, a nie witrynę korporacyjną.
Po spreparowaniu pierwszego artykułu, wyszły na jaw pewne niedociągnięcia, z jakimi przyszło się rozprawić. Wydawałoby się, że developer Bludita zaprojektuje co najmniej tak dobry soft, jak poprzedni Nibbleblog. Zwłaszcza że wypuszczona wersja była już trzecią odsłoną. A mimo to brakuje porządnego zarządzania mediami, umożliwiającego m.in. tworzenie drzewa katalogów.
Nie lubię mieć syfu na własnym placu zabaw. Dobitnie uświadomiło mnie, że nie warto, gdy onegdaj zobaczyłem strukturę kilku większych serwisów internetowych. Redaktorzy narzekali, że bardzo długo muszą czekać na pojawienie się okienka umożliwiającego wybór i wstawienie zdjęcia. Nie dziwota, gdy okno menedżera mieliło za każdym razem kilkanaście tysięcy miniatur zdjęć. Nie pomnę już czy nikt redaktorom nie powiedział aby tworzyć oddzielny katalog, czy im się po prostu nie chciało. Nie moja brocha. Gdy sam potrzebowałem kilku minut na przemyślenie spraw, to pchałem bez ogródek aktualizację jakiejś aplikacji mającej kilkanaście tysięcy plików, zamiast walić w h# że się długo zdjęcia wczytują. Oczywiście przez ftp ( ͡° ͜ʖ ͡°)
Kolejny niuans stanowił system komentarzy. Jest co prawda wtyka do disqusa, ale nie zamierzam przechowywać treści w serwisach, do których nie mam fizycznego dostępu, ani prawdziwej kontroli. Zgaszą światło i do widzenia, a po ciemku Pan płaszcza nie odnajdziesz
. I tutaj zgrzytnąłem zębami, bo jak na dość zaawansowany już system zarządzania, brak wbudowanych komentarzy jest istnym nieporozumieniem. Zwłaszcza, że predecesor takowe posiadał. Skonstatowałem, że czytać bzdurnych komentarzy nie mam ochoty [hahaaaa, jakby się jakieś w ogóle miały pojawić] ani moderowanie automatycznego spamu zalewającego każdy możliwy kąt sieci. Aczkolwiek tzw. community staje się coraz kreatywniejsze i pomocne, co owocuje powstającym w międzyczasie systemem komentarzy. Wczesna wersja wygląda obiecująco i być może zagości na tym żałosnym padołku sieci.
Dobra, przesadziłem z tym community. Jeden zapalony webdeveloper, któremu się jeszcze chce. Widocznie nadział się tak samo jak ja na tego CMSa i tak samo przy nim pozostał. Z jego innego projektu jakim jest edytor tekstu udostępniający markdown, textile i bbcode, a który przysposobił również do tego cms-a w postaci wtyczki, korzystam pisząc ten artykuł.
Dorzuciłem coś od siebie: tłumaczenie na polski, kilka sugestii i poprawek błędów. Tak jakby to było komukolwiek potrzebne. Sam i tak ze spolszczeń w oprogramowaniu nie cierpię korzystać, bo są robione po łebkach i kłuje w oczy nierzadko maszynowe tłumaczenie bez jakiegokolwiek testu integracyjnego
To już kolejne, przydługawe grafomaństwo jakie popełniam. Tuż przed rozpoczęciem pisania wpadłem na pomysł, że ścianę tekstu warto byłoby podzielić na kilka podstron. Niestety workflow w bludit nie oferuje podziału artykułów na podstrony, o czym dobitnie dowiedziałem się otwierając wątek na forum. Z pomocą przyszedł wyżej wzmiankowany fachura i na dzień dobry rzucił krótkim i zwięzłym snippetem. Zamieniłem go we wtyczkę, rozwinąłem o potrzebną paginację, kanonikalizację (co to k# za słowo?) co w surowej wersji spełniło zamierzony cel w 100%.
Dzień później wjechał na kwadrat z gotową wtyczką, przy której moja ascetyczna wręcz wersja wypadała jak resorak na tle optimusa prime. Jak w lesie normalnie, poruta maksymalna. Gdybym jeszcze lepił w tym całym internetowym szajsie, miałbym dla synka naręcze zleceń.
Słowem podsumowania: tak, warto rozważyć postawienie blogaska opierając go na CMS Bludit. Dostępnych jest na ten moment kilka eleganckich szablonów + zaktualizowane wersje z wcześniejszych wydań tego oprogramowania. Instalacja jest bajecznie prosta i nie wymagająca absolutnie żadnej zaawansowanej wiedzy poza kopiowaniem plików poprzez FTP. Podejrzewam, że aktualne wersje automatycznych instalatorów aplikacji udostępnianych przez hostingi mają również bludita. Sam instalator zawiera kilka wtyczek uzupełniających CMS-a o blogowe elementy takie jak lista tagów, kategorii, dodających RSS, bardziej zaawansowaną kontrolę nad elementami menu nawigacyjnego, czy wspomagające SEO. Sprawdzone w boju, czego dowodem jest tenże bidny blog ;)