@@ -28,7 +28,7 @@ module Text.Pandoc.Writers.FB2 (writeFB2) where
28import Control.Monad.State (StateT, evalStateT, get, modify)
28import Control.Monad.State (StateT, evalStateT, get, modify)
29import Control.Monad.State (liftM, liftM2, liftIO)
29import Control.Monad.State (liftM, liftM2, liftIO)
30import Data.ByteString.Base64 (encode)
30import Data.ByteString.Base64 (encode)
31−import Data.Char (toUpper, toLower, isSpace, isAscii, isControl)
31+import Data.Char (toLower, isSpace, isAscii, isControl)
32import Data.List (intersperse, intercalate, isPrefixOf)
32import Data.List (intersperse, intercalate, isPrefixOf)
33import Data.Either (lefts, rights)
33import Data.Either (lefts, rights)
34import Network.Browser (browse, request, setAllowRedirects, setOutHandler)
34import Network.Browser (browse, request, setAllowRedirects, setOutHandler)
@@ -44,8 +44,7 @@ import qualified Text.XML.Light.Cursor as XC
45import Text.Pandoc.Definition
45import Text.Pandoc.Definition
46import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..), def)
46import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..), def)
47−import Text.Pandoc.Shared (orderedListMarkers, isHeaderBlock)
47+import Text.Pandoc.Shared (orderedListMarkers, isHeaderBlock, capitalize)
48−import Text.Pandoc.Walk
50-- | Data to be written at the end of the document:
49-- | Data to be written at the end of the document:
51-- (foot)notes, URLs, references, images.
50-- (foot)notes, URLs, references, images.
@@ -421,10 +420,6 @@ indent = indentBlock
421 indentLines ins = let lns = split isLineBreak ins :: [[Inline]]
420 indentLines ins = let lns = split isLineBreak ins :: [[Inline]]
422 in intercalate [LineBreak] $ map ((Str spacer):) lns
421 in intercalate [LineBreak] $ map ((Str spacer):) lns
424−capitalize :: Inline -> Inline
425−capitalize (Str xs) = Str $ map toUpper xs
428-- | Convert a Pandoc's Inline element to FictionBook XML representation.
423-- | Convert a Pandoc's Inline element to FictionBook XML representation.
429toXml :: Inline -> FBM [Content]
424toXml :: Inline -> FBM [Content]
430toXml (Str s) = return [txt s]
425toXml (Str s) = return [txt s]
@@ -434,7 +429,7 @@ toXml (Strong ss) = list `liftM` wrap "strong" ss
434toXml (Strikeout ss) = list `liftM` wrap "strikethrough" ss
429toXml (Strikeout ss) = list `liftM` wrap "strikethrough" ss
435toXml (Superscript ss) = list `liftM` wrap "sup" ss
430toXml (Superscript ss) = list `liftM` wrap "sup" ss
436toXml (Subscript ss) = list `liftM` wrap "sub" ss
431toXml (Subscript ss) = list `liftM` wrap "sub" ss
437−toXml (SmallCaps ss) = cMapM toXml $ walk capitalize ss
432+toXml (SmallCaps ss) = cMapM toXml $ capitalize ss
438toXml (Quoted SingleQuote ss) = do -- FIXME: should be language-specific
433toXml (Quoted SingleQuote ss) = do -- FIXME: should be language-specific
439 inner <- cMapM toXml ss
434 inner <- cMapM toXml ss
440 return $ [txt "‘"] ++ inner ++ [txt "’"]
435 return $ [txt "‘"] ++ inner ++ [txt "’"]