diff options
| -rw-r--r-- | src/Text/Pandoc/Readers/Markdown.hs | 19 | ||||
| -rw-r--r-- | test/command/5714.md | 13 | 
2 files changed, 28 insertions, 4 deletions
diff --git a/src/Text/Pandoc/Readers/Markdown.hs b/src/Text/Pandoc/Readers/Markdown.hs index d688e3d1d..e626321e6 100644 --- a/src/Text/Pandoc/Readers/Markdown.hs +++ b/src/Text/Pandoc/Readers/Markdown.hs @@ -532,8 +532,13 @@ atxHeader = try $ do                    (char '.' <|> char ')') -- this would be a list    guardDisabled Ext_space_in_atx_header <|> notFollowedBy nonspaceChar    skipSpaces -  (text, raw) <- withRaw $ -          trimInlinesF . mconcat <$> many (notFollowedBy atxClosing >> inline) +  (text, raw) <- withRaw $ do +    oldAllowLineBreaks <- stateAllowLineBreaks <$> getState +    updateState $ \st -> st{ stateAllowLineBreaks = False } +    res <- trimInlinesF . mconcat <$> +               many (notFollowedBy atxClosing >> inline) +    updateState $ \st -> st{ stateAllowLineBreaks = oldAllowLineBreaks } +    return res    attr <- atxClosing    attr' <- registerHeader attr (runF text defaultParserState)    guardDisabled Ext_implicit_header_references @@ -576,8 +581,13 @@ setextHeader = try $ do    -- unless necessary -- it gives a significant performance boost.    lookAhead $ anyLine >> many1 (oneOf setextHChars) >> blankline    skipSpaces -  (text, raw) <- withRaw $ -       trimInlinesF . mconcat <$> many1 (notFollowedBy setextHeaderEnd >> inline) +  (text, raw) <- withRaw $ do +    oldAllowLineBreaks <- stateAllowLineBreaks <$> getState +    updateState $ \st -> st{ stateAllowLineBreaks = False } +    res <- trimInlinesF . mconcat <$> +               many (notFollowedBy setextHeaderEnd >> inline) +    updateState $ \st -> st{ stateAllowLineBreaks = oldAllowLineBreaks } +    return res    attr <- setextHeaderEnd    underlineChar <- oneOf setextHChars    many (char underlineChar) @@ -1730,6 +1740,7 @@ endline :: PandocMonad m => MarkdownParser m (F Inlines)  endline = try $ do    newline    notFollowedBy blankline +  getState >>= guard . stateAllowLineBreaks    -- parse potential list-starts differently if in a list:    notFollowedBy (inList >> listStart)    guardDisabled Ext_lists_without_preceding_blankline <|> notFollowedBy listStart diff --git a/test/command/5714.md b/test/command/5714.md new file mode 100644 index 000000000..48e25c1a2 --- /dev/null +++ b/test/command/5714.md @@ -0,0 +1,13 @@ +``` +% pandoc -t native +# hi _a +b_ + +# hi _c +c +^D +[Header 1 ("hi-_a",[],[]) [Str "hi",Space,Str "_a"] +,Para [Str "b_"] +,Header 1 ("hi-_c",[],[]) [Str "hi",Space,Str "_c"] +,Para [Str "c"]] +```  | 
