#web​dev

wszystkie notatki oznaczone etykietą "web​dev"

Kanały RSS/Atom w Hugo

Mój statyczny blog już działa, choć wymaga jeszcze trochę poprawek. Jednym z ważniejszych elementów wymagających dopracowania są kanały RSS/Atom. To przecież wciąż jedyna słuszna metoda syndykacji i notyfikacji o zmianach na stronie. Hugo w standardzie wspiera i automatycznie generuje kanały RSS. Niestety domyślne ustawienia i założenia nie spełniają moich specyficznych potrzeb, więc nadeszła pora na dostosowanie… i generowanie własnego kanału ;) RSS 2.0 i domyślny szablon Hugo posiada wbudowany wewnętrznie szablon dla kanałów RSS 2.

Czytaj dalej

Web Scraping i ScreenShooting w Headless Chrome (CLI)

“Web Scraping” kojarzy mi się z odległymi latami, kiedy to tworzyło się boty i skrypty w Perlu wyciągające ze stron różne potrzebne dane. W większości działały one w command-line i “widziały” tylko to co zawiera źródło strony. Trochę więcej zachodu było jeśli chciało się mieć jakiś dostęp do DOM-a i wykonywać skrypty JS (własne lub te ze strony), aby dostać finalny kod strony, jaki widzą użytkownicy w przeglądarce. To wymagało już jakiś sztuczek z embedowaniem przeglądarki lub jej silnika.

Czytaj dalej

Hugo shortcode dla Endomondo

Do niektórych notatek z wyjazdów i wypraw, gdzie mam “nagrane” jakieś trasy na swoim Endomondo fajnie byłoby dołączać do treści wpisu jakieś małe podsumowanie “treningu” w prostej formie. Standardowo w Hugo jest kilka predefiniowanych shortcodes dla popularnych serwisów, ale dla Endomondo takowego nie znajdziemy. To nie problem bo stworzenie własnej “wstawki” jest banalne. Serwis Endomondo udostępnia widżety - kawałki HTML-a z iframe, które umożliwiają osadzenie informacji z serwisu na dowolnej stronie.

Czytaj dalej

Proste wewnętrzne ref-linki w Hugo

Gdy w jednej notatce potrzeba się odwołać do innego wpisu wystarczy użyć zwykłego odnośnika. W takim WordPress-ie nie było żadnego mechanizmu i dodawało się po prostu zwykły link do podstrony z wpisem (bezwzględny w domyśle). Podobnie mógłbym robić na stronie generowanej w Hugo, ale to mi się nie podoba… Nie chcę w plikach z treściami bezwzględnych linków do wewnętrznych elementów strony - preferuję relatywne względem roota strony. Nie chcę też sztywnych adresów, bo jak zmienię nazwę, sluga bądź format generowanych adresów to wszystko się rozjedzie.

Czytaj dalej

Oznaczanie języka przy prezentacji kodu na stronie

Prezentując na stronie różne fragmenty kodu, czy to w formie pokolorowanej czy surowej, często nie podaje się oznaczenia języka. W końcu z kontekstu i składni wynika co to jest, choć nie zawsze łatwo jest to wydedukować. W związku z tym wpadłem na pomysł, aby “label” z identyfikatorem języka pojawił się obok wyświetlanego kodu. Na początku myślałem, że uda mi się zmusić jakoś Hugo/Chroma do dodawania takiej informacji do generowanej strony. Ale gdy takowej możliwości nie znalazłem słuszne wydawało się zastosowanie do tego celu JS-a.

Czytaj dalej

Polska odmiana rzeczowników w Hugo

Po ogarnięciu polskich nazw miesięcy w Hugo przyszła pora na odmiany rzeczowników przy liczebnikach i odpowiednią formę liczby mnogiej. Poza wsparciem tego w tłumaczeniach, Hugo nie posiada żadnych innych pomocnych mechanizmów. Żeby ogarnąć poprawną formę i odmianę dla naszego rodzimego języku to trzeba trochę pokombinować… Na początku miałem problem z przypomnieniem sobie fachowej nazwę tej reguły, aby o to zapytać wyszukiwarkę. Wiedziałem tylko, że kiedyś coś takiego widziałem przy tłumaczeniach z wykorzystaniem gettetxt-a i plików PO.

Czytaj dalej

Polskie daty w Hugo

Blog ten prowadzony jest w ojczystym języku, zatem dobrze jest zadbać o poprawne polskie zasady językowe, sformułowania, tłumaczenia, zwroty… Dotyczy to także dat i odmian nazw miesięcy. Kiedyś na szybko zrobiłem jakiś hack w szablonie używanym w WordPresie, a teraz muszę coś podobnego ogarnąć na stronie w Hugo. Generator Hugo mimo iż posiada jakieś wsparcie dla wielojęzycznych stron, to jednak nie dotyczy to samych dat. Póki co język Go, w jakim tworzone jest to narzędzie, nie posiada takiej możliwości.

Czytaj dalej

Wielowątkowość w JavaScript

JavaScript nie posiada wielowątkowości, we wszystkich przeglądarkach (z wyjątkiem Chrome), kod JS wykonywany jest w jednym wątku. Niejeden webdeveloepr “naciął się” na zamrożenie przeglądarki (lub ostrzeżenie w Firefoksie) w czasie wykonywania intensywnego kodu zajmującego zasoby. W takich wypadkach JS blokuje przeglądarkę, podobnie aktualizacje interfejsu użytkownika i zawartość strony, do czasu zakończenia wykonywania bieżącej operacji, co można w prosty sposób doświadczyć, poprzez prostą konstrukcję nieskończonej pętli (symulującej ciężkie obliczenia): while (true) Taką “ciężką” operacją może być przeliczenie dużej ilości danych, lub chociażby długotrwałe operacje na drzewie DOM (np.

Czytaj dalej

Semantyczna sieć a webdevelopment

Na początku powinienem się do czegoś przyznać. Moje oświadczenie idealnie mogą odzwierciedlać słowa utworu “Nie jestem punkiem” pana Dariusza Paraszczuka, co w moim wykonaniu zabrzmiałoby jakoś tak: Nie jestem webdeveloperem i nigdy nie byłem, i nigdy tego przed wami nie kryłem. Nie jestem webdeveloperem, co nie oznacza, że nie popieram lub mi uwłacza. Nie jestem webdeveloperem i być nie chciałem, bo się po prostu nie nadawałem. Więc skojarzenia są bezpodstawne,

Czytaj dalej

Zmiany na devblogu

Przez ostanie 2 dni męczyłem się trochę z nowym designem bloga, czego skutkiem jest “wisząca” od wczoraj nowa jego odsłona. Stary szablon już dawno przestał mi się podobać i trochę uwierał, ale nigdy nie chciało mi się tego zmienić, bo albo brak czasu, albo chęci. A ostatnio, robiąc wielkie odświeżanie moich stron nie omieszkałem się zahaczyć i o bloga. Mam nadzieję, że nowy wygląd przypadnie do gustu stałym bywalcom. Jest bardzo prosty i minimalistyczny.

Czytaj dalej