From 987ec3a7523f4fe529575004d76d93680f127fa3 Mon Sep 17 00:00:00 2001
From: Ivo Clarysse <ivo@bcdevices.com>
Date: Fri, 29 Apr 2016 15:43:15 -0700
Subject: Write out Docbook 5 namespace

---
 src/Text/Pandoc.hs                 |  2 +-
 src/Text/Pandoc/Options.hs         |  4 ++--
 src/Text/Pandoc/Writers/Docbook.hs | 11 +++++++----
 3 files changed, 10 insertions(+), 7 deletions(-)

(limited to 'src')

diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs
index 58f666939..0330c46e2 100644
--- a/src/Text/Pandoc.hs
+++ b/src/Text/Pandoc.hs
@@ -292,7 +292,7 @@ writers = [
                       , writerHtml5 = True })
   ,("docbook"      , PureStringWriter writeDocbook)
   ,("docbook5"     , PureStringWriter $ \o ->
-     writeDocbook o{ writerDocBook5 = True })
+     writeDocbook o{ writerDocbook5 = True })
   ,("opml"         , PureStringWriter writeOPML)
   ,("opendocument" , PureStringWriter writeOpenDocument)
   ,("latex"        , PureStringWriter writeLaTeX)
diff --git a/src/Text/Pandoc/Options.hs b/src/Text/Pandoc/Options.hs
index fcf6537c0..701cd8bd1 100644
--- a/src/Text/Pandoc/Options.hs
+++ b/src/Text/Pandoc/Options.hs
@@ -357,7 +357,7 @@ data WriterOptions = WriterOptions
   , writerSourceURL        :: Maybe String  -- ^ Absolute URL + directory of 1st source file
   , writerUserDataDir      :: Maybe FilePath -- ^ Path of user data directory
   , writerCiteMethod       :: CiteMethod -- ^ How to print cites
-  , writerDocBook5         :: Bool       -- ^ Produce DocBook5
+  , writerDocbook5         :: Bool       -- ^ Produce DocBook5
   , writerHtml5            :: Bool       -- ^ Produce HTML5
   , writerHtmlQTags        :: Bool       -- ^ Use @<q>@ tags for quotes in HTML
   , writerBeamer           :: Bool       -- ^ Produce beamer LaTeX slide show
@@ -404,7 +404,7 @@ instance Default WriterOptions where
                       , writerSourceURL        = Nothing
                       , writerUserDataDir      = Nothing
                       , writerCiteMethod       = Citeproc
-                      , writerDocBook5         = False
+                      , writerDocbook5         = False
                       , writerHtml5            = False
                       , writerHtmlQTags        = False
                       , writerBeamer           = False
diff --git a/src/Text/Pandoc/Writers/Docbook.hs b/src/Text/Pandoc/Writers/Docbook.hs
index 5528714a2..79ccde9af 100644
--- a/src/Text/Pandoc/Writers/Docbook.hs
+++ b/src/Text/Pandoc/Writers/Docbook.hs
@@ -112,12 +112,15 @@ elementToDocbook opts lvl (Sec _ _num (id',_,_) title elements) =
                     else elements
       tag = case lvl of
                  n | n == 0           -> "chapter"
-                   | n >= 1 && n <= 5 -> if writerDocBook5 opts
+                   | n >= 1 && n <= 5 -> if writerDocbook5 opts
                                               then "section"
                                               else "sect" ++ show n
                    | otherwise        -> "simplesect"
-  in  inTags True tag [("id", writerIdentifierPrefix opts ++ id') |
-                       not (null id')] $
+      idAttr = [("id", writerIdentifierPrefix opts ++ id') | not (null id')]
+      nsAttr = if writerDocbook5 opts && lvl == 0 then [("xmlns", "http://docbook.org/ns/docbook")]
+                                      else []
+      attribs = nsAttr ++ idAttr
+  in  inTags True tag attribs $
       inTagsSimple "title" (inlinesToDocbook opts title) $$
       vcat (map (elementToDocbook opts (lvl + 1)) elements')
 
@@ -231,7 +234,7 @@ blockToDocbook opts (DefinitionList lst) =
   in  inTags True "variablelist" attribs $ deflistItemsToDocbook opts lst
 blockToDocbook opts (RawBlock f str)
   | f == "docbook" = text str -- raw XML block
-  | f == "html"    = if writerDocBook5 opts
+  | f == "html"    = if writerDocbook5 opts
                         then empty -- No html in Docbook5
                         else text str -- allow html for backwards compatibility
   | otherwise      = empty
-- 
cgit v1.2.3