@@ -311,14 +311,17 @@ anyUntilPos pos = go
311 False -> (:) <$> anyChar <*> go
311 False -> (:) <$> anyChar <*> go
313markdown :: ([a] -> IParser (String, [a])) -> IParser (String, [a])
313markdown :: ([a] -> IParser (String, [a])) -> IParser (String, [a])
314−markdown interpolation = try (string "[markdown|") >> closeMarkdown (++ "") []
314+markdown interpolation =
315+ do try (string "[markdown|")
316− closeMarkdown md stuff =
318+ closeMarkdown markdownBuilder stuff =
317 choice [ do try (string "|]")
319 choice [ do try (string "|]")
318− return (md "", stuff)
320+ return (markdownBuilder "", stuff)
321+ , do (markdown,stuff') <- interpolation stuff
319− , (\(m,s) -> closeMarkdown (md . (m ++)) s) =<< interpolation stuff
322+ closeMarkdown (markdownBuilder . (markdown++)) stuff'
320 , do c <- anyChar
323 , do c <- anyChar
321− closeMarkdown (md . ([c]++)) stuff
324+ closeMarkdown (markdownBuilder . (c:)) stuff
324glShader :: IParser (String, Literal.GLShaderTipe)
327glShader :: IParser (String, Literal.GLShaderTipe)