git.iko.soy/typeable/pandoc
on master help sign in
HTML writer: Ensure proper escaping in header metadata.
commitca6842349e23b3f60cb2665d1c20de9951bea268 authorJohn MacFarlane <fiddlosopher@gmail.com> dateThu 12 Sep 2013, 09:24 (13 years ago) parent873a211
2 files changed+6−4
changelog+1 src/Text/Pandoc/Writers/HTML.hs+5−4
changelog+1
@@ -405,6 +405,7 @@
405405
406406 + Fixed `--no-highlight` (Alexander Kondratskiy).
407407 + Don't convert to lowercase in email obfuscation (#839).
408+ + Ensure proper escaping in `<title>` and `<meta>` fields.
408409
409410 * AsciiDoc writer:
410411
src/Text/Pandoc/Writers/HTML.hs+5−4
@@ -39,7 +39,7 @@ import Text.Pandoc.Readers.TeXMath
3939import Text.Pandoc.Slides
4040import Text.Pandoc.Highlighting ( highlight, styleToCss,
4141 formatHtmlInline, formatHtmlBlock )
42−import Text.Pandoc.XML (fromEntities)
42+import Text.Pandoc.XML (fromEntities, escapeStringForXML)
4343import Network.HTTP ( urlEncode )
4444import Numeric ( showHex )
4545import Data.Char ( ord, toLower )
@@ -115,8 +115,9 @@ pandocToHtml opts (Pandoc meta blocks) = do
115115 (fmap renderHtml . blockListToHtml opts)
116116 (fmap renderHtml . inlineListToHtml opts)
117117 meta
118− let authsMeta = map stringify $ docAuthors meta
119− let dateMeta = stringify $ docDate meta
118+ let stringifyHTML = escapeStringForXML . stringify
119+ let authsMeta = map stringifyHTML $ docAuthors meta
120+ let dateMeta = stringifyHTML $ docDate meta
120121 let slideLevel = maybe (getSlideLevel blocks) id $ writerSlideLevel opts
121122 let sects = hierarchicalize $
122123 if writerSlideVariant opts == NoSlides
@@ -168,7 +169,7 @@ pandocToHtml opts (Pandoc meta blocks) = do
168169 maybe id (defField "toc" . renderHtml) toc $
169170 defField "author-meta" authsMeta $
170171 maybe id (defField "date-meta") (normalizeDate dateMeta) $
171− defField "pagetitle" (stringify $ docTitle meta) $
172+ defField "pagetitle" (stringifyHTML $ docTitle meta) $
172173 defField "idprefix" (writerIdentifierPrefix opts) $
173174 -- these should maybe be set in pandoc.hs
174175 defField "slidy-url"