@@ -24,6 +24,7 @@ module Hakyll.Web.Html
2424import Data.Char (digitToInt, intToDigit,
2525 isDigit, toLower)
2626import Data.List (isPrefixOf)
27+import qualified Data.Set as S
2728import System.FilePath (joinPath, splitPath,
2829 takeDirectory)
2930import Text.Blaze.Html (toHtml)
@@ -71,13 +72,20 @@ withUrls f = withTags tag
7172 attr (k, v) = (k, if isUrlAttribute k then f v else v)
7273
7374
74−-- | Customized TagSoup renderer. (The default TagSoup renderer escape CSS
75−-- within style tags.)
75+--------------------------------------------------------------------------------
76+-- | Customized TagSoup renderer. The default TagSoup renderer escape CSS
77+-- within style tags, and doesn't properly minimize.
7678renderTags' :: [TS.Tag String] -> String
7779renderTags' = TS.renderTagsOptions TS.renderOptions
7880 { TS.optRawTag = (`elem` ["script", "style"]) . map toLower
79− , TS.optMinimize = (`elem` ["br", "img"])
81+ , TS.optMinimize = (`S.member` minimize) . map toLower
8082 }
83+ where
84+ -- A list of elements which must be minimized
85+ minimize = S.fromList
86+ [ "area", "br", "col", "embed", "hr", "img", "input", "meta", "link"
87+ , "param"
88+ ]
8189
8290
8391--------------------------------------------------------------------------------