From a XML string, I produced a Pandoc document using
readHtml :: (PandocMonad m, ToSources a) => ReaderOptions -> a -> m Pandoc
And producing m Text
(where m
belongs to the Monad class) using
writeMarkdown :: PandocMonad m => WriterOptions -> Pandoc -> m Text
Haskell source code:
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Control.Monad
import qualified Data.ByteString as B
import qualified Data.ByteString.Lazy as LB
import Data.Text.Encoding
import qualified Data.Text.IO as TIO
import Text.Pandoc
xmlString :: LB.ByteString
xmlString = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<html>\n <head>\n <meta charset=\"utf-8\"/>\n </head>\n <body>\n <ul id=\"a8_boYDC\">\n <li id=\"rp\">\n <p>\"Alpha\"</p>\n <ul>\n <li id=\"cT\">\n <p>\"Beta\"</p>\n <ul>\n <li id=\"wy\">\n <p>\"Gamma\"</p>\n </li>\n <li id=\"Be\">\n <p>\"Delta\"</p>\n </li>\n <li id=\"Ep\">\n <p>\"Epsilon\"</p>\n </li>\n </ul>\n </li>\n <li id=\"Ko\">\n <p>\"Zeta\"</p>\n <ul>\n <li id=\"AI\">\n <p>Eta</p>\n </li>\n </ul>\n </li>\n <li id=\"kw\">\n <p>\"Theta\"</p>\n <ul>\n <li id=\"sx\">\n <p>\"Iota\"</p>\n </li>\n <li id=\"82\">\n <p>\"Kappa\"</p>\n </li>\n <li id=\"o_\">\n <p>\"Lambda\"</p>\n </li>\n </ul>\n </li>\n </ul>\n </li>\n </ul>\n </body>\n</html>\n"
main :: IO ()
main =
TIO.putStr
<=< handleError
<=< runIO
. ( writeMarkdown def
<=< readHtml def
. decodeUtf8
. B.toStrict
)
$ xmlString
Output:
- "Alpha"
- "Beta"
- "Gamma"
- "Delta"
- "Epsilon"
- "Zeta"
- "Eta"
- "Theta"
- "Iota"
- "Kappa"
- "Lambda"
My questions is, how can I adjust the options in order to:
remove whitespace between the dash and the actual text, and
remove the dashes from the output.
Would be possible, for example, to pass options to writeMarkdown
?