git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: improved raw tex parsing.

+ Preserve original whitespace between blocks. + Recognize `\placeformula` as context.

commit4a07977715021da241b1bf5ab3e1ee62fef89fa1 authorJohn MacFarlane <jgm@berkeley.edu> dateFri 22 Dec 2017, 17:33 (9 years ago) parent3679d8d
3 files changed+11−10
src/Text/Pandoc/Readers/Markdown.hs+9−6 test/command/hspace.md+1−1 test/markdown-reader-more.native+1−3
src/Text/Pandoc/Readers/Markdown.hs+9−6
@@ -1120,14 +1120,17 @@ rawVerbatimBlock = htmlInBalanced isVerbTag
11201120rawTeXBlock :: PandocMonad m => MarkdownParser m (F Blocks)
11211121rawTeXBlock = do
11221122 guardEnabled Ext_raw_tex
1123− result <- (B.rawBlock "context" . concat <$>
1124− rawConTeXtEnvironment `sepEndBy1` blankline)
1125− <|> (B.rawBlock "latex" . concat <$>
1126− rawLaTeXBlock `sepEndBy1` blankline)
1127−
1128− optional blanklines
1123+ result <- (B.rawBlock "context" . trimr . concat <$>
1124+ many1 ((++) <$> (rawConTeXtEnvironment <|> conTeXtCommand)
1125+ <*> (blanklines <|> many spaceChar)))
1126+ <|> (B.rawBlock "latex" . trimr . concat <$>
1127+ many1 ((++) <$> rawLaTeXBlock
1128+ <*> (blanklines <|> many spaceChar)))
11291129 return $ return result
11301130
1131+conTeXtCommand :: PandocMonad m => MarkdownParser m String
1132+conTeXtCommand = oneOfStrings ["\\placeformula"]
1133+
11311134rawHtmlBlocks :: PandocMonad m => MarkdownParser m (F Blocks)
11321135rawHtmlBlocks = do
11331136 (TagOpen tagtype _, raw) <- htmlTag isBlockTag
test/command/hspace.md+1−1
@@ -32,7 +32,7 @@ F & T &\\
3232F & F &\\
3333\end{tabular}
3434^D
35−[RawBlock (Format "latex") "\\begin{tabular}[t]{cc|c}\n\\(P\\) & \\(Q\\) & \\(P\\wedge Q\\)\\\\\n\\hline\nT & T &\\\\\nT & F &\\\\\nF & T &\\\\\nF & F &\\\\\n\\end{tabular}\\hspace{1em}\\begin{tabular}[t]{cc|c}\n\\(P\\) & \\(Q\\) & \\(P\\vee Q\\)\\\\\n\\hline\nT & T &\\\\\nT & F &\\\\\nF & T &\\\\\nF & F &\\\\\n\\end{tabular}"]
35+[RawBlock (Format "latex") "\\begin{tabular}[t]{cc|c}\n\\(P\\) & \\(Q\\) & \\(P\\wedge Q\\)\\\\\n\\hline\nT & T &\\\\\nT & F &\\\\\nF & T &\\\\\nF & F &\\\\\n\\end{tabular}\n\\hspace{1em}\n\\begin{tabular}[t]{cc|c}\n\\(P\\) & \\(Q\\) & \\(P\\vee Q\\)\\\\\n\\hline\nT & T &\\\\\nT & F &\\\\\nF & T &\\\\\nF & F &\\\\\n\\end{tabular}"]
3636```
3737
3838```
test/markdown-reader-more.native+1−3
@@ -3,9 +3,7 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "Author",S
33,Header 2 ("blank-line-before-url-in-link-reference",[],[]) [Str "Blank",Space,Str "line",Space,Str "before",Space,Str "URL",Space,Str "in",Space,Str "link",Space,Str "reference"]
44,Para [Link ("",[],[]) [Str "foo"] ("/url",""),Space,Str "and",Space,Link ("",[],[]) [Str "bar"] ("/url","title")]
55,Header 2 ("raw-context-environments",[],[]) [Str "Raw",Space,Str "ConTeXt",Space,Str "environments"]
6−,RawBlock (Format "latex") "\\placeformula "
7−,RawBlock (Format "context") "\\startformula\n L_{1} = L_{2}\n \\stopformula"
8−,RawBlock (Format "context") "\\start[a2]\n\\start[a2]\n\\stop[a2]\n\\stop[a2]"
6+,RawBlock (Format "context") "\\placeformula \\startformula\n L_{1} = L_{2}\n \\stopformula\n\n\\start[a2]\n\\start[a2]\n\\stop[a2]\n\\stop[a2]"
97,Header 2 ("raw-latex-environments",[],[]) [Str "Raw",Space,Str "LaTeX",Space,Str "environments"]
108,RawBlock (Format "latex") "\\begin{center}\n\\begin{tikzpicture}[baseline={([yshift=+-.5ex]current bounding box.center)}, level distance=24pt]\n\\Tree [.{S} [.NP John\\index{i} ] [.VP [.V likes ] [.NP himself\\index{i,*j} ]]]\n\\end{tikzpicture}\n\\end{center}"
119,Header 2 ("urls-with-spaces-and-punctuation",[],[]) [Str "URLs",Space,Str "with",Space,Str "spaces",Space,Str "and",Space,Str "punctuation"]