aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2015-06-27 20:18:42 -0700
committerJohn MacFarlane <jgm@berkeley.edu>2015-06-27 20:19:04 -0700
commitfce3ebb8e023d0f9fd5756503e9264b05571b75a (patch)
treea23229ad8363d9d6c8557bac2c55155126999553
parent177533d3f803f3d50881a63a50d5faf62432ac44 (diff)
downloadpandoc-fce3ebb8e023d0f9fd5756503e9264b05571b75a.tar.gz
Plain writer: don't use symbols for super/subscript.
Simplified code by using plainExtensions from Options. Closes #2237.
-rw-r--r--src/Text/Pandoc.hs2
-rw-r--r--src/Text/Pandoc/Writers/Markdown.hs24
-rw-r--r--tests/writer.plain6
3 files changed, 14 insertions, 18 deletions
diff --git a/src/Text/Pandoc.hs b/src/Text/Pandoc.hs
index 8cf8c451a..63da88c2e 100644
--- a/src/Text/Pandoc.hs
+++ b/src/Text/Pandoc.hs
@@ -316,7 +316,7 @@ getDefaultExtensions "markdown_phpextra" = phpMarkdownExtraExtensions
getDefaultExtensions "markdown_mmd" = multimarkdownExtensions
getDefaultExtensions "markdown_github" = githubMarkdownExtensions
getDefaultExtensions "markdown" = pandocExtensions
-getDefaultExtensions "plain" = pandocExtensions
+getDefaultExtensions "plain" = plainExtensions
getDefaultExtensions "org" = Set.fromList [Ext_citations]
getDefaultExtensions "textile" = Set.fromList [Ext_auto_identifiers]
getDefaultExtensions "html" = Set.fromList [Ext_auto_identifiers,
diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs
index 9838cefff..8e821ec3f 100644
--- a/src/Text/Pandoc/Writers/Markdown.hs
+++ b/src/Text/Pandoc/Writers/Markdown.hs
@@ -79,17 +79,7 @@ writeMarkdown opts document =
-- pictures, or inline formatting).
writePlain :: WriterOptions -> Pandoc -> String
writePlain opts document =
- evalState (pandocToMarkdown opts{
- writerExtensions = Set.delete Ext_escaped_line_breaks $
- Set.delete Ext_pipe_tables $
- Set.delete Ext_raw_html $
- Set.delete Ext_markdown_in_html_blocks $
- Set.delete Ext_raw_tex $
- Set.delete Ext_footnotes $
- Set.delete Ext_tex_math_dollars $
- Set.delete Ext_citations $
- writerExtensions opts }
- document) def{ stPlain = True }
+ evalState (pandocToMarkdown opts document) def{ stPlain = True }
pandocTitleBlock :: Doc -> [Doc] -> Doc -> Doc
pandocTitleBlock tit auths dat =
@@ -774,17 +764,23 @@ inlineToMarkdown opts (Strikeout lst) = do
contents <- inlineListToMarkdown opts lst
return $ if isEnabled Ext_strikeout opts
then "~~" <> contents <> "~~"
- else "<s>" <> contents <> "</s>"
+ else if isEnabled Ext_raw_html opts
+ then "<s>" <> contents <> "</s>"
+ else contents
inlineToMarkdown opts (Superscript lst) = do
contents <- inlineListToMarkdown opts $ walk escapeSpaces lst
return $ if isEnabled Ext_superscript opts
then "^" <> contents <> "^"
- else "<sup>" <> contents <> "</sup>"
+ else if isEnabled Ext_raw_html opts
+ then "<sup>" <> contents <> "</sup>"
+ else contents
inlineToMarkdown opts (Subscript lst) = do
contents <- inlineListToMarkdown opts $ walk escapeSpaces lst
return $ if isEnabled Ext_subscript opts
then "~" <> contents <> "~"
- else "<sub>" <> contents <> "</sub>"
+ else if isEnabled Ext_raw_html opts
+ then "<sub>" <> contents <> "</sub>"
+ else contents
inlineToMarkdown opts (SmallCaps lst) = do
plain <- gets stPlain
if not plain &&
diff --git a/tests/writer.plain b/tests/writer.plain
index 0332a747b..ba476f21d 100644
--- a/tests/writer.plain
+++ b/tests/writer.plain
@@ -449,9 +449,9 @@ This is code: >, $, \, \$, <html>.
~~This is _strikeout_.~~
-Superscripts: a^bc^d a^_hello_^ a^hello there^.
+Superscripts: abcd a_hello_ ahello there.
-Subscripts: H~2~O, H~23~O, H~many of them~O.
+Subscripts: H2O, H23O, Hmany of themO.
These should not be superscripts or subscripts, because of the unescaped
spaces: a^b c^d, a~b c~d.
@@ -494,7 +494,7 @@ LATEX
- p-Tree
- Here’s some display math:
$$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$$
-- Here’s one that has a line break in it: α + ω × x^2^.
+- Here’s one that has a line break in it: α + ω × x2.
These shouldn’t be math: