From 81610144f94a99dc0156abeffea66ffd7aa808b7 Mon Sep 17 00:00:00 2001
From: John MacFarlane <jgm@berkeley.edu>
Date: Tue, 31 Oct 2017 10:38:48 -0700
Subject: Make `fenced_divs` affect the Markdown writer.

If `fenced_divs` is enabled, fenced divs will be used.
---
 src/Text/Pandoc/Writers/Markdown.hs | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

(limited to 'src')

diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index 5d812b169..c109385d8 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -397,11 +397,19 @@ blockToMarkdown' :: PandocMonad m
 blockToMarkdown' _ Null = return empty
 blockToMarkdown' opts (Div attrs ils) = do
   contents <- blockListToMarkdown opts ils
-  return $ if isEnabled Ext_raw_html opts &&
-                isEnabled Ext_markdown_in_html_blocks opts
-              then tagWithAttrs "div" attrs <> blankline <>
-                      contents <> blankline <> "</div>" <> blankline
-              else contents <> blankline
+  return $
+    case () of
+         _ | isEnabled Ext_fenced_divs opts &&
+             attrs /= nullAttr ->
+                nowrap (text ":::" <+> attrsToMarkdown attrs) $$
+                contents $$
+                text ":::" <> blankline
+           | isEnabled Ext_native_divs opts ||
+             (isEnabled Ext_raw_html opts &&
+              isEnabled Ext_markdown_in_html_blocks opts) ->
+                tagWithAttrs "div" attrs <> blankline <>
+                contents <> blankline <> "</div>" <> blankline
+           | otherwise -> contents <> blankline
 blockToMarkdown' opts (Plain inlines) = do
   contents <- inlineListToMarkdown opts inlines
   -- escape if para starts with ordered list marker
-- 
cgit v1.2.3