packages feed

tagstream-conduit 0.5.0 → 0.5.1

raw patch · 3 files changed

+62/−1 lines, 3 files

Files

+ HighlightText.hs view
@@ -0,0 +1,40 @@+import System.IO+import System.Environment+import System.Console.ANSI++import Data.Maybe+import Data.Text (Text)+import qualified Data.Text as T+import Data.Text.Encoding (decodeUtf8With)+import Data.Text.Encoding.Error (lenientDecode)+import qualified Data.Text.Lazy as L+import qualified Data.Text.Lazy.Encoding as L+import Data.Text.Lazy.Internal (defaultChunkSize)+import Data.Text.Lazy.Builder (toLazyTextWith)++import qualified Data.Conduit.Blaze as B+import qualified Blaze.ByteString.Builder as B+import qualified Blaze.ByteString.Builder.Char8 as B+import qualified Data.Conduit as C+import qualified Data.Conduit.Binary as CB+import qualified Data.Conduit.List as CL++import qualified Text.HTML.TagStream.Text as T++color :: Color -> Text -> Text+color c s = T.concat [ T.pack $ setSGRCode [SetColor Foreground Dull c]+                     , s+                     , T.pack $ setSGRCode [SetColor Foreground Dull White]+                     ]++main :: IO ()+main = do+    args <- getArgs+    filename <- maybe (fail "Highlight file") return (listToMaybe args)+    C.runResourceT $+        CB.sourceFile filename+        C.$= CL.map (decodeUtf8With lenientDecode)+        C.$= T.tokenStream+        C.$= CL.map (B.fromLazyByteString . L.encodeUtf8 . (toLazyTextWith defaultChunkSize) . T.showToken (color Red))+        C.$= B.builderToByteString+        C.$$ CB.sinkHandle stdout
+ ParseText.hs view
@@ -0,0 +1,19 @@+import Data.Maybe+import System.Environment+import qualified Text.HTML.TagStream.Text as T+import Data.Text.Encoding (decodeUtf8With)+import Data.Text.Encoding.Error (lenientDecode)+import qualified Data.Conduit as C+import qualified Data.Conduit.Binary as C+import qualified Data.Conduit.List as CL++main :: IO ()+main = do+    args <- getArgs+    filename <- maybe (fail "pass file path") return (listToMaybe args)+    _ <- C.runResourceT $+           C.sourceFile filename+           C.$= CL.map (decodeUtf8With lenientDecode)+           C.$= T.tokenStream+           C.$$ CL.consume+    return ()
tagstream-conduit.cabal view
@@ -1,5 +1,5 @@ Name:                tagstream-conduit-Version:             0.5.0+Version:             0.5.1 Synopsis:            streamlined html tag parser Description:     Tag-stream is a library for parsing HTML//XML to a token stream.@@ -17,6 +17,8 @@ Extra-source-files:    tests/Tests.hs                      , Highlight.hs                      , Parse.hs+                     , HighlightText.hs+                     , ParseText.hs Cabal-version:       >=1.8  source-repository head