diff options
Diffstat (limited to 'src/Text/Pandoc/Writers/Docbook.hs')
-rw-r--r-- | src/Text/Pandoc/Writers/Docbook.hs | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Writers/Docbook.hs b/src/Text/Pandoc/Writers/Docbook.hs index 3916aa214..61f24807b 100644 --- a/src/Text/Pandoc/Writers/Docbook.hs +++ b/src/Text/Pandoc/Writers/Docbook.hs @@ -33,9 +33,10 @@ module Text.Pandoc.Writers.Docbook ( import Text.Pandoc.Definition import Text.Pandoc.Shared import Text.Pandoc.Writers.HTML ( stringToSmartHtml, stringToHtml ) +import Text.Pandoc.HtmlEntities ( encodeEntities ) import Text.Html ( stringToHtmlString ) import Text.Regex ( mkRegex, matchRegex ) -import Data.Char ( toLower ) +import Data.Char ( toLower, ord ) import Data.List ( isPrefixOf, partition ) import Text.PrettyPrint.HughesPJ hiding ( Str ) @@ -179,9 +180,10 @@ wrap options lst = fsep $ map (hcat . (map (inlineToDocbook options))) (splitByS -- | Escape a string for XML (with "smart" option if specified). stringToXML :: WriterOptions -> String -> String -stringToXML options = if writerSmart options - then stringToSmartHtml - else stringToHtml +stringToXML options = encodeEntities . + (if writerSmart options + then stringToSmartHtml + else stringToHtml) -- | Escape string to XML appropriate for attributes attributeStringToXML :: String -> String @@ -189,7 +191,7 @@ attributeStringToXML = gsub "\"" """ . codeStringToXML -- | Escape a literal string for XML. codeStringToXML :: String -> String -codeStringToXML = gsub "<" "<" . gsub "&" "&" +codeStringToXML = encodeEntities . gsub "<" "<" . gsub "&" "&" -- | Convert a list of inline elements to Docbook. inlinesToDocbook :: WriterOptions -> [Inline] -> Doc |