git.iko.soy/typeable/pandoc
on master help sign in
Muse writer: change verse markup
8b1630aAlexander Krotov
src/Text/Pandoc/Writers/Muse.hs+2−9
@@ -156,15 +156,8 @@ blockToMuse (Para inlines) = do
156 contents <- inlineListToMuse inlines
156 contents <- inlineListToMuse inlines
157 return $ contents <> blankline
157 return $ contents <> blankline
158blockToMuse (LineBlock lns) = do
158blockToMuse (LineBlock lns) = do
159− let splitStanza [] = []
160− splitStanza xs = case break (== mempty) xs of
161− (l, []) -> [l]
162− (l, _:r) -> l : splitStanza r
163− let joinWithLinefeeds = nowrap . mconcat . intersperse cr
164− let joinWithBlankLines = mconcat . intersperse blankline
165− let prettyfyStanza ls = joinWithLinefeeds <$> mapM inlineListToMuse ls
159+ lns' <- mapM inlineListToMuse lns
166− contents <- joinWithBlankLines <$> mapM prettyfyStanza (splitStanza lns)
160+ return $ nowrap $ vcat (map ((text "> ") <>) lns') <> blankline
167− return $ blankline $$ "<verse>" $$ contents $$ "</verse>" <> blankline
168blockToMuse (CodeBlock (_,_,_) str) =
161blockToMuse (CodeBlock (_,_,_) str) =
169 return $ "<example>" $$ text str $$ "</example>" $$ blankline
162 return $ "<example>" $$ text str $$ "</example>" $$ blankline
170blockToMuse (RawBlock (Format format) str) =
163blockToMuse (RawBlock (Format format) str) =
test/Tests/Writers/Muse.hs+3−5
@@ -34,11 +34,9 @@ tests = [ testGroup "block elements"
34 ]
34 ]
35 ]
35 ]
36 , "line block" =: lineBlock [text "Foo", text "bar", text "baz"]
36 , "line block" =: lineBlock [text "Foo", text "bar", text "baz"]
37− =?> unlines [ "<verse>"
37+ =?> unlines [ "> Foo"
38− , "Foo"
39− , "bar"
38+ , "> bar"
40− , "baz"
39+ , "> baz"
41− , "</verse>"
42 ]
40 ]
43 , "code block" =: codeBlock "int main(void) {\n\treturn 0;\n}"
41 , "code block" =: codeBlock "int main(void) {\n\treturn 0;\n}"
44 =?> unlines [ "<example>"
42 =?> unlines [ "<example>"