git.iko.soy/typeable/pandoc
on master help sign in
Muse writer: indent lists inside <quote> with at least one space (#3795)
commitde117fbd9e32e890663eb831b47fd91fcd6419a0 authorAlexander Krotov <ilabdsf@gmail.com> dateWed 12 Jul 2017, 18:16 (9 years ago) parente0025cf
3 files changed+25−7
src/Text/Pandoc/Writers/Muse.hs+11−4 test/Tests/Writers/Muse.hs+11 test/writer.muse+3−3
src/Text/Pandoc/Writers/Muse.hs+11−4
@@ -102,6 +102,13 @@ pandocToMuse (Pandoc meta blocks) = do
102102 Nothing -> return main
103103 Just tpl -> renderTemplate' tpl context
104104
105+-- | Convert list of Pandoc block elements to Muse
106+-- | without setting stTopLevel.
107+flatBlockListToMuse :: PandocMonad m
108+ => [Block] -- ^ List of block elements
109+ -> StateT WriterState m Doc
110+flatBlockListToMuse blocks = cat <$> mapM blockToMuse blocks
111+
105112-- | Convert list of Pandoc block elements to Muse.
106113blockListToMuse :: PandocMonad m
107114 => [Block] -- ^ List of block elements
@@ -111,11 +118,11 @@ blockListToMuse blocks = do
111118 modify $ \s -> s { stTopLevel = not $ stInsideBlock s
112119 , stInsideBlock = True
113120 }
114− contents <- mapM blockToMuse blocks
121+ result <- flatBlockListToMuse blocks
115122 modify $ \s -> s { stTopLevel = stTopLevel oldState
116123 , stInsideBlock = stInsideBlock oldState
117124 }
118− return $ cat contents
125+ return result
119126
120127-- | Convert Pandoc block element to Muse.
121128blockToMuse :: PandocMonad m
@@ -141,10 +148,10 @@ blockToMuse (RawBlock (Format format) str) =
141148 return $ blankline $$ "<literal style=\"" <> text format <> "\">" $$
142149 text str $$ "</literal>" $$ blankline
143150blockToMuse (BlockQuote blocks) = do
144− contents <- blockListToMuse blocks
151+ contents <- flatBlockListToMuse blocks
145152 return $ blankline
146153 <> "<quote>"
147− $$ flush contents -- flush to drop blanklines
154+ $$ nest 0 contents -- nest 0 to remove trailing blank lines
148155 $$ "</quote>"
149156 <> blankline
150157blockToMuse (OrderedList (start, style, _) items) = do
test/Tests/Writers/Muse.hs+11
@@ -137,6 +137,17 @@ tests = [ testGroup "block elements"
137137 , " second inner definition :: second inner description"
138138 ]
139139 ]
140+ -- Check that list is intended with one space even inside a quote
141+ , "List inside block quote" =: blockQuote (orderedList [ plain $ text "first"
142+ , plain $ text "second"
143+ , plain $ text "third"
144+ ])
145+ =?> unlines [ "<quote>"
146+ , " 1. first"
147+ , " 2. second"
148+ , " 3. third"
149+ , "</quote>"
150+ ]
140151 ]
141152 , testGroup "headings"
142153 [ "normal heading" =:
test/writer.muse+3−3
@@ -65,8 +65,8 @@ sub status {
6565
6666A list:
6767
68−1. item one
69−2. item two
68+ 1. item one
69+ 2. item two
7070
7171Nested block quotes:
7272
@@ -281,7 +281,7 @@ Multiple blocks with italics:
281281 </example>
282282
283283 <quote>
284−orange block quote
284+ orange block quote
285285 </quote>
286286
287287Multiple definitions, tight: