tagstream-conduit 0.5.0 → 0.5.1
raw patch · 3 files changed
+62/−1 lines, 3 files
Files
- HighlightText.hs +40/−0
- ParseText.hs +19/−0
- tagstream-conduit.cabal +3/−1
+ 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