Wybaczcie aliterację, nie mogłem się powstrzymać. Rozwój Pieruna nie poszedł zbytnio do przodu w ciągu ostatnich kilku tygodni. Poprawiłem:
- dereferencję null pointera (thx, Rev!),
- kompilację na najnowszym archlinuksie,
- duplikację zawartości z perspektywy szukarek.
Po testach wyszło na jaw, że parser markdowna z vibe.d ma trochę błędów oraz brak mu pewnych funkcjonalności. Inaczej mówiąc: nie odpowiada moim potrzebom i będę musiał napisać własny. Z tego powodu nie ograniczę się wyłącznie do markdowna, tylko dodam trochę własnej składni. Nie mam w tym kierunku jeszcze konkretnych planów.
Żeby nie było tak kompletnie bez kodu, tak wygląda sprawdzanie czy weszliśmy na widok posta z kanonicznego linka:
if(req.params["slug"] != p.data.title.toSlugForm) { const url = "/post/%d/%s".format(id, p.data.title.toSlugForm); res.redirect(url, HTTPStatus.movedPermanently); return; } |
Wiele osób zwraca uwagę na UFCS (wywołanie funkcji foo(bar, baz) jest identyczne1 z bar.foo(baz)) oraz na to, że w przypadku wywołań funkcji bez parametrów można pominąć nawiasy (trochę jak w Rubym). Czyli qux jest równoznaczne z qux(), o ile qux jest funkcją lub szablonem funkcji.
1o ile typ, którego instancją jest bar nie ma własnej metody lub szablonu metody foo.