From 271cb4d8457b2252cddc76a476f3681e8b2a1486 Mon Sep 17 00:00:00 2001 From: Ivo Clarysse Date: Fri, 29 Apr 2016 14:00:46 -0700 Subject: Add docbook5 writer support --- src/Text/Pandoc.hs | 2 ++ 1 file changed, 2 insertions(+) (limited to 'src/Text/Pandoc.hs') diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs index b67a53f5b..58f666939 100644 --- a/src/Text/Pandoc.hs +++ b/src/Text/Pandoc.hs @@ -291,6 +291,8 @@ writers = [ writeHtmlString o{ writerSlideVariant = RevealJsSlides , writerHtml5 = True }) ,("docbook" , PureStringWriter writeDocbook) + ,("docbook5" , PureStringWriter $ \o -> + writeDocbook o{ writerDocBook5 = True }) ,("opml" , PureStringWriter writeOPML) ,("opendocument" , PureStringWriter writeOpenDocument) ,("latex" , PureStringWriter writeLaTeX) -- cgit v1.2.3 From 987ec3a7523f4fe529575004d76d93680f127fa3 Mon Sep 17 00:00:00 2001 From: Ivo Clarysse 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/Text/Pandoc.hs') 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 @@ 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