diff options
author | defanor <defanor@uberspace.net> | 2017-10-28 03:16:26 +0300 |
---|---|---|
committer | defanor <defanor@uberspace.net> | 2017-10-28 03:16:26 +0300 |
commit | d2da10d36b857e399e10388ddc6f66850211ec77 (patch) | |
tree | 40e98bcc17276200f98c5af7c0de2b64263b9bc9 /Text | |
parent | b52d2a395814158319a781d38a49bb0f132c221d (diff) |
Improve plaintext rendering
Reuse lineToInlines previously used for Gopher, and adjust fitLines.
Diffstat (limited to 'Text')
-rw-r--r-- | Text/Pandoc/Readers/Gopher.hs | 8 | ||||
-rw-r--r-- | Text/Pandoc/Readers/Plain.hs | 17 |
2 files changed, 14 insertions, 11 deletions
diff --git a/Text/Pandoc/Readers/Gopher.hs b/Text/Pandoc/Readers/Gopher.hs index 33dec3e..694720d 100644 --- a/Text/Pandoc/Readers/Gopher.hs +++ b/Text/Pandoc/Readers/Gopher.hs @@ -16,14 +16,8 @@ import Text.Pandoc.Definition import Text.Pandoc.Error import Text.Parsec import Text.Parsec.String +import Text.Pandoc.Readers.Plain --- | Translates a text line into a list of 'Inline' elements suitable --- for further processing. -lineToInlines :: String -> [Inline] -lineToInlines [] = [] -lineToInlines (' ':rest) = Space : lineToInlines rest -lineToInlines s = let (cur, next) = break (== ' ') s - in Str cur : lineToInlines next -- | UNASCII ::= ASCII - [Tab CR-LF NUL]. unascii :: Parser Char diff --git a/Text/Pandoc/Readers/Plain.hs b/Text/Pandoc/Readers/Plain.hs index 600e5f8..cb8fb9b 100644 --- a/Text/Pandoc/Readers/Plain.hs +++ b/Text/Pandoc/Readers/Plain.hs @@ -6,15 +6,24 @@ Portability : portable -} {-# LANGUAGE OverloadedStrings #-} -module Text.Pandoc.Readers.Plain ( readPlain ) where +module Text.Pandoc.Readers.Plain ( readPlain + , lineToInlines + ) where import Text.Pandoc.Definition import Text.Pandoc.Error -import Data.List + + +-- | Translates a text line into a list of 'Inline' elements suitable +-- for further processing. +lineToInlines :: String -> [Inline] +lineToInlines [] = [] +lineToInlines (' ':rest) = Space : lineToInlines rest +lineToInlines s = let (cur, next) = break (== ' ') s + in Str cur : lineToInlines next -- | Reads plain text, always succeeding and producing a single -- 'Plain' block. readPlain :: String -> Either PandocError Pandoc readPlain = Right . Pandoc mempty . pure . Plain . - concatMap (\l -> (intersperse Space $ map Str $ words l) ++ [LineBreak]) . lines - -- or Right . Pandoc mempty . pure . RawBlock "plain" + concatMap (\l -> (lineToInlines l) ++ [LineBreak]) . lines |