readability-0.0.1.0: src/Readability/Helper.hs
module Readability.Helper
( innerText,
content',
elin,
getElement,
guarded,
)
where
import Control.Applicative (Alternative (..))
import Data.Text as T (Text, concat, strip)
import Text.XML
import Text.XML.Cursor
innerText :: Cursor -> Text
innerText c = T.concat (c $// content')
content' :: Cursor -> [Text]
content' = content &| T.strip
getElement :: Node -> Maybe Element
getElement (NodeElement e) = Just e
getElement _ = Nothing
elin :: Element -> [Name] -> Bool
elin e [n] = elementName e == n
elin e ns = elementName e `elem` ns
guarded :: (Alternative f) => (a -> Bool) -> a -> f a
guarded p x = if p x then pure x else empty