diff --git a/hakyll.cabal b/hakyll.cabal
--- a/hakyll.cabal
+++ b/hakyll.cabal
@@ -1,5 +1,5 @@
 Name:    hakyll
-Version: 3.2.2.0
+Version: 3.2.3.0
 
 Synopsis: A static website compiler library
 Description:
diff --git a/src/Hakyll/Web/Blaze.hs b/src/Hakyll/Web/Blaze.hs
--- a/src/Hakyll/Web/Blaze.hs
+++ b/src/Hakyll/Web/Blaze.hs
@@ -12,8 +12,8 @@
 import Hakyll.Web.Page
 import Hakyll.Web.Page.Metadata
 
--- | Get a field from a page and convert it to HTML. This version does escape
--- the given HTML
+-- | Get a field from a page and convert it to HTML. This version does not
+-- escape the given HTML
 --
 getFieldHtml :: String -> Page a -> Html
 getFieldHtml key = preEscapedString . getField key
diff --git a/src/Hakyll/Web/Util/Html.hs b/src/Hakyll/Web/Util/Html.hs
--- a/src/Hakyll/Web/Util/Html.hs
+++ b/src/Hakyll/Web/Util/Html.hs
@@ -2,8 +2,12 @@
 --
 module Hakyll.Web.Util.Html
     ( stripTags
+    , escapeHtml
     ) where
 
+import Text.Blaze (toHtml)
+import Text.Blaze.Renderer.String (renderHtml)
+
 -- | Strip all HTML tags from a string
 --
 -- Example:
@@ -28,3 +32,16 @@
 stripTags []         = []
 stripTags ('<' : xs) = stripTags $ drop 1 $ dropWhile (/= '>') xs
 stripTags (x : xs)   = x : stripTags xs
+
+-- | HTML-escape a string
+--
+-- Example:
+--
+-- > escapeHtml "Me & Dean"
+--
+-- Result:
+--
+-- > "Me &amp; Dean"
+--
+escapeHtml :: String -> String
+escapeHtml = renderHtml . toHtml
