@@ -28,7 +28,7 @@ module Text.Pandoc.Writers.FB2 (writeFB2) where
2828import Control.Monad.State (StateT, evalStateT, get, modify)
2929import Control.Monad.State (liftM, liftM2, liftIO)
3030import Data.ByteString.Base64 (encode)
31−import Data.Char (toUpper, toLower, isSpace, isAscii, isControl)
31+import Data.Char (toLower, isSpace, isAscii, isControl)
3232import Data.List (intersperse, intercalate, isPrefixOf)
3333import Data.Either (lefts, rights)
3434import Network.Browser (browse, request, setAllowRedirects, setOutHandler)
@@ -44,8 +44,7 @@ import qualified Text.XML.Light.Cursor as XC
4444
4545import Text.Pandoc.Definition
4646import Text.Pandoc.Options (WriterOptions(..), HTMLMathMethod(..), def)
47−import Text.Pandoc.Shared (orderedListMarkers, isHeaderBlock)
48−import Text.Pandoc.Walk
47+import Text.Pandoc.Shared (orderedListMarkers, isHeaderBlock, capitalize)
4948
5049-- | Data to be written at the end of the document:
5150-- (foot)notes, URLs, references, images.
@@ -421,10 +420,6 @@ indent = indentBlock
421420 indentLines ins = let lns = split isLineBreak ins :: [[Inline]]
422421 in intercalate [LineBreak] $ map ((Str spacer):) lns
423422
424−capitalize :: Inline -> Inline
425−capitalize (Str xs) = Str $ map toUpper xs
426−capitalize x = x
427−
428423-- | Convert a Pandoc's Inline element to FictionBook XML representation.
429424toXml :: Inline -> FBM [Content]
430425toXml (Str s) = return [txt s]
@@ -434,7 +429,7 @@ toXml (Strong ss) = list `liftM` wrap "strong" ss
434429toXml (Strikeout ss) = list `liftM` wrap "strikethrough" ss
435430toXml (Superscript ss) = list `liftM` wrap "sup" ss
436431toXml (Subscript ss) = list `liftM` wrap "sub" ss
437−toXml (SmallCaps ss) = cMapM toXml $ walk capitalize ss
432+toXml (SmallCaps ss) = cMapM toXml $ capitalize ss
438433toXml (Quoted SingleQuote ss) = do -- FIXME: should be language-specific
439434 inner <- cMapM toXml ss
440435 return $ [txt "‘"] ++ inner ++ [txt "’"]