git.iko.soy/typeable/pandoc
on master help sign in
Muse writer: indent simple tables only on the top level
commit195b3af8b63bed91d565d8745e75f07509bb595d authorAlexander Krotov <ilabdsf@gmail.com> dateWed 14 Nov 2018, 14:35 (8 years ago) parentd27384c
2 files changed+11−4
src/Text/Pandoc/Writers/Muse.hs+5−4 test/Tests/Writers/Muse.hs+6
src/Text/Pandoc/Writers/Muse.hs+5−4
@@ -171,19 +171,20 @@ simpleTable :: PandocMonad m
171171 -> [[TableCell]]
172172 -> Muse m Doc
173173simpleTable caption headers rows = do
174+ topLevel <- asks envTopLevel
174175 caption' <- inlineListToMuse caption
175176 headers' <- mapM blockListToMuse headers
176177 rows' <- mapM (mapM blockListToMuse) rows
177178 let widthsInChars = maximum . map offset <$> transpose (headers' : rows')
178179 let hpipeBlocks sep blocks = hcat $ intersperse sep' blocks
179180 where sep' = lblock (length sep) $ text sep
180− let makeRow sep = (" " <>) . hpipeBlocks sep . zipWith lblock widthsInChars
181+ let makeRow sep = hpipeBlocks sep . zipWith lblock widthsInChars
181182 let head' = makeRow " || " headers'
182183 rows'' <- mapM (\row -> makeRow rowSeparator <$> mapM blockListToMuse row) rows
183184 let body = vcat rows''
184− return $ (if noHeaders then empty else head')
185− $$ body
186− $$ (if null caption then empty else " |+ " <> caption' <> " +|")
185+ return $ (if topLevel then nest 1 else id) ((if noHeaders then empty else head')
186+ $$ body
187+ $$ (if null caption then empty else "|+ " <> caption' <> " +|"))
187188 $$ blankline
188189 where noHeaders = all null headers
189190 rowSeparator = if noHeaders then " | " else " | "
test/Tests/Writers/Muse.hs+6
@@ -400,6 +400,12 @@ tests = [ testGroup "block elements"
400400 , " Para 2.1 | Para 2.2"
401401 , " |+ Table 1 +|"
402402 ]
403+ , "table inside bullet list" =:
404+ bulletList [simpleTable [] [[para "foo", para "bar"]
405+ ,[para "bat", para "baz"]]]
406+ =?> unlines [ " - foo | bar"
407+ , " bat | baz"
408+ ]
403409 , "table with one column" =:
404410 let headers = []
405411 rows = [[para "Para 1"]