Развитие блога не прекращается ни на минуту (ну почти). На этот раз я сделал meta-теги в заголовке страницы для Facebook. Теперь, если добавить ссылку на мой блог, то в блок в Facebook попадет начало поста. Кстати, совершенно внезапно, вконтактик тоже правильно стал отображать описание, что не может не радовать.
В очередной раз впечатлился выразительностью Хаскеля: cколько всего можно написать одной строчкой. Вот, например, кусочек из свеженаписанного:
getDescription :: Node -> Text
getDescription = maybe emptyDescription
(until (not . T.null) (\_ -> emptyDescription) . getDescription') .
findChild (checkMainDiv . current) . fromNode
getDescription' :: Cursor -> Text
getDescription' = cutDescription . transformDescription .
T.intercalate " " . map nodeText . filter checkParagraph .
maybe [] siblings . firstChild
Можете сравнить с примерной калькой на JavaScript:
var getDescription_ = function (cursor) {
var fc = firstChild(cursor)
return cutDescription(transformDescription(
(fc ? siblings(fc) : []).filter(checkParagraph).map(nodeText).join(" ")
));
}
var getDescription = function (node) {
var mainDiv = findChild(function (cursor) {
return checkMainDiv(current(cursor))
}, fromNode(node));
return mainDiv ? getDescription_(mainDiv) || emptyDescription : emptyDescription;
}
Хотя да, и в JS есть своя прелесть.
Хочется что-то добавить или сказать? Я всегда рад обсудить. Пишите на me@dikmax.name.