Fixed latex macro parsing.
Now latex macro definitions are preserved when output is latex, and applied when it is another format, as originally intended. Partially addresses #730. \providecommand is still not supported. For this we need changes to texmath.
This commit is contained in:
parent
cc17c794a1
commit
8c55023d18
3 changed files with 6 additions and 6 deletions
|
@ -148,7 +148,7 @@ where
|
|||
|
||||
import Text.Pandoc.Definition
|
||||
import Text.Pandoc.Options
|
||||
import Text.Pandoc.Builder (Blocks, Inlines)
|
||||
import Text.Pandoc.Builder (Blocks, Inlines, rawBlock)
|
||||
import qualified Text.Pandoc.UTF8 as UTF8 (putStrLn)
|
||||
import Text.Parsec
|
||||
import Text.Parsec.Pos (newPos)
|
||||
|
@ -1007,7 +1007,7 @@ nested p = do
|
|||
--
|
||||
|
||||
-- | Parse a \newcommand or \renewcommand macro definition.
|
||||
macro :: Parser [Char] ParserState Block
|
||||
macro :: Parser [Char] ParserState Blocks
|
||||
macro = do
|
||||
apply <- getOption readerApplyMacros
|
||||
inp <- getInput
|
||||
|
@ -1018,8 +1018,8 @@ macro = do
|
|||
then do
|
||||
updateState $ \st ->
|
||||
st { stateMacros = ms ++ stateMacros st }
|
||||
return Null
|
||||
else return $ RawBlock "latex" def'
|
||||
return mempty
|
||||
else return $ rawBlock "latex" def'
|
||||
|
||||
-- | Apply current macros to string.
|
||||
applyMacros' :: String -> Parser [Char] ParserState String
|
||||
|
|
|
@ -204,7 +204,7 @@ block :: LP Blocks
|
|||
block = (mempty <$ comment)
|
||||
<|> (mempty <$ ((spaceChar <|> newline) *> spaces))
|
||||
<|> environment
|
||||
<|> mempty <$ macro
|
||||
<|> macro
|
||||
<|> blockCommand
|
||||
<|> paragraph
|
||||
<|> grouped block
|
||||
|
|
|
@ -355,7 +355,7 @@ parseBlocks = mconcat <$> manyTill block eof
|
|||
|
||||
block :: MarkdownParser (F Blocks)
|
||||
block = choice [ codeBlockFenced
|
||||
, guardEnabled Ext_latex_macros *> (mempty <$ macro)
|
||||
, guardEnabled Ext_latex_macros *> (macro >>= return . return)
|
||||
, header
|
||||
, lhsCodeBlock
|
||||
, rawTeXBlock
|
||||
|
|
Loading…
Reference in a new issue