From 858bf197fedd46101b3371cd91e505ff79080643 Mon Sep 17 00:00:00 2001
From: John MacFarlane <fiddlosopher@gmail.com>
Date: Thu, 10 May 2012 09:13:14 -0700
Subject: [PATCH] Revert "Removed blaze_html_05 flag -- require blaze >= 0.5 by
 default."

This reverts commit f67a80cea27286ba17b3696198602a6bbdae014d.
---
 pandoc.cabal                    | 30 ++++++++++++++++++++++++------
 src/Text/Pandoc/Templates.hs    |  6 +++++-
 src/Text/Pandoc/Writers/HTML.hs |  6 +++++-
 3 files changed, 34 insertions(+), 8 deletions(-)

diff --git a/pandoc.cabal b/pandoc.cabal
index 2f56278e1..aafd78b0f 100644
--- a/pandoc.cabal
+++ b/pandoc.cabal
@@ -185,6 +185,9 @@ Flag library
 Flag tests
   Description:   Build test-pandoc.
   Default:       False
+Flag blaze_html_0_5
+  Description:   Use blaze-html 0.5 and blaze-markup 0.5
+  Default:       False
 
 Library
   -- Note: the following is duplicated in all stanzas.
@@ -192,8 +195,6 @@ Library
   -- BEGIN DUPLICATED SECTION
   Build-Depends: containers >= 0.1 && < 0.5,
                  parsec >= 3.1 && < 3.2,
-                 blaze-html >= 0.5 && < 0.6,
-                 blaze-markup >= 0.5.1 && < 0.6,
                  mtl >= 1.1 && < 2.2,
                  network >= 2 && < 2.4,
                  filepath >= 1.1 && < 1.4,
@@ -217,6 +218,13 @@ Library
                  zlib >= 0.5 && < 0.6,
                  highlighting-kate >= 0.5.0.2 && < 0.6,
                  temporary >= 1.1 && < 1.2
+  if flag(blaze_html_0_5)
+    build-depends:
+                 blaze-html >= 0.5 && < 0.6,
+                 blaze-markup >= 0.5.1 && < 0.6
+  else
+    build-depends:
+                 blaze-html >= 0.4.3.0 && < 0.5
   if impl(ghc >= 6.10)
     Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4
   else
@@ -291,8 +299,6 @@ Executable pandoc
   -- It needs to be duplicated because of the library & executable flags.
   -- BEGIN DUPLICATED SECTION
   Build-Depends: containers >= 0.1 && < 0.5,
-                 blaze-html >= 0.5 && < 0.6,
-                 blaze-markup >= 0.5.1 && < 0.6,
                  parsec >= 3.1 && < 3.2,
                  mtl >= 1.1 && < 2.2,
                  network >= 2 && < 2.4,
@@ -317,6 +323,13 @@ Executable pandoc
                  zlib >= 0.5 && < 0.6,
                  highlighting-kate >= 0.5.0.2 && < 0.6,
                  temporary >= 1.1 && < 1.2
+  if flag(blaze_html_0_5)
+    build-depends:
+                 blaze-html >= 0.5 && < 0.6,
+                 blaze-markup >= 0.5.1 && < 0.6
+  else
+    build-depends:
+                 blaze-html >= 0.4.3.0 && < 0.5
   if impl(ghc >= 6.10)
     Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4
   else
@@ -350,8 +363,6 @@ Executable test-pandoc
   -- It needs to be duplicated because of the library & executable flags.
   -- BEGIN DUPLICATED SECTION
   Build-Depends: containers >= 0.1 && < 0.5,
-                 blaze-html >= 0.5 && < 0.6,
-                 blaze-markup >= 0.5.1 && < 0.6,
                  parsec >= 3.1 && < 3.2,
                  mtl >= 1.1 && < 2.2,
                  network >= 2 && < 2.4,
@@ -376,6 +387,13 @@ Executable test-pandoc
                  zlib >= 0.5 && < 0.6,
                  highlighting-kate >= 0.5.0.2 && < 0.6,
                  temporary >= 1.1 && < 1.2
+  if flag(blaze_html_0_5)
+    build-depends:
+                 blaze-html >= 0.5 && < 0.6,
+                 blaze-markup >= 0.5.1 && < 0.6
+  else
+    build-depends:
+                 blaze-html >= 0.4.3.0 && < 0.5
   if impl(ghc >= 6.10)
     Build-depends: base >= 4 && < 5, syb >= 0.1 && < 0.4
   else
diff --git a/src/Text/Pandoc/Templates.hs b/src/Text/Pandoc/Templates.hs
index 6e3369797..dfdcd8e63 100644
--- a/src/Text/Pandoc/Templates.hs
+++ b/src/Text/Pandoc/Templates.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances #-}
+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, CPP #-}
 {-
 Copyright (C) 2009-2010 John MacFarlane <jgm@berkeley.edu>
 
@@ -72,8 +72,12 @@ import Text.ParserCombinators.Parsec
 import Control.Monad (liftM, when, forM)
 import System.FilePath
 import Data.List (intercalate, intersperse)
+#if MIN_VERSION_blaze_html(0,5,0)
 import Text.Blaze.Html (Html)
 import Text.Blaze.Internal (preEscapedString)
+#else
+import Text.Blaze (preEscapedString, Html)
+#endif
 import Data.ByteString.Lazy.UTF8 (ByteString, fromString)
 import Text.Pandoc.Shared (readDataFile)
 import qualified Control.Exception.Extensible as E (try, IOException)
diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs
index b647dcd4b..59666da08 100644
--- a/src/Text/Pandoc/Writers/HTML.hs
+++ b/src/Text/Pandoc/Writers/HTML.hs
@@ -1,4 +1,4 @@
-{-# LANGUAGE OverloadedStrings #-}
+{-# LANGUAGE OverloadedStrings, CPP #-}
 {-# OPTIONS_GHC -fno-warn-deprecations #-}
 {-
 Copyright (C) 2006-2010 John MacFarlane <jgm@berkeley.edu>
@@ -46,8 +46,12 @@ import Data.List ( isPrefixOf, intersperse )
 import Data.String ( fromString )
 import Data.Maybe ( catMaybes )
 import Control.Monad.State
+#if MIN_VERSION_blaze_html(0,5,0)
 import Text.Blaze.Html hiding(contents)
 import Text.Blaze.Internal(preEscapedString)
+#else
+import Text.Blaze
+#endif
 import qualified Text.Blaze.Html5 as H5
 import qualified Text.Blaze.XHtml1.Transitional as H
 import qualified Text.Blaze.XHtml1.Transitional.Attributes as A