From 9d3d656065105ee251f73d3f6f28ebe580af1079 Mon Sep 17 00:00:00 2001 From: Aadhavan Srinivasan Date: Wed, 30 Jul 2025 15:28:58 -0400 Subject: [PATCH] Improved parser for horizontal rule and codeblock --- src/MdToHTML.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/MdToHTML.hs b/src/MdToHTML.hs index 4f2c99d..87646ba 100644 --- a/src/MdToHTML.hs +++ b/src/MdToHTML.hs @@ -542,11 +542,15 @@ doubleNewlineText :: T.Text doubleNewlineText = T.pack "\n\n" parseHorizontalRule :: Parser MdToken -parseHorizontalRule = string horizontalRuleText *> (void (string doubleNewlineText) <|> eof) *> return HorizontalRule +parseHorizontalRule = parseHorizontalRuleLine *> (void (string doubleNewlineText) <|> eof) *> return HorizontalRule + where + parseHorizontalRuleLine = fallthroughParser (map (string . T.pack) ["---", "***", "___", "- - -", "* * *", "_ _ _"]) parseCodeblock :: Parser MdToken parseCodeblock = do - string (T.pack "```\n") + string (T.pack "```") + _ <- many $ satisfy (/= '\n') -- Language name + char '\n' inside <- someTill anySingle (string (T.pack "\n```")) return $ Codeblock (Unit (concatMap escapeChar inside))