From 4ea1b2bdc0a86f135bae4ae95cfc3d45a9416604 Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Sat, 30 Dec 2006 22:51:49 +0000 Subject: Merged 'strict' branch from r324. This adds a '--strict' option to pandoc, which forces it to stay as close as possible to official Markdown syntax. git-svn-id: https://pandoc.googlecode.com/svn/trunk@347 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Text/Pandoc/Writers/HTML.hs | 19 +++++++++---------- src/Text/Pandoc/Writers/LaTeX.hs | 4 ---- src/Text/Pandoc/Writers/Markdown.hs | 14 ++++++-------- src/Text/Pandoc/Writers/RST.hs | 6 ------ src/Text/Pandoc/Writers/RTF.hs | 4 ---- 5 files changed, 15 insertions(+), 32 deletions(-) (limited to 'src/Text/Pandoc/Writers') diff --git a/src/Text/Pandoc/Writers/HTML.hs b/src/Text/Pandoc/Writers/HTML.hs index effede04c..4456a61b5 100644 --- a/src/Text/Pandoc/Writers/HTML.hs +++ b/src/Text/Pandoc/Writers/HTML.hs @@ -91,12 +91,15 @@ obfuscateLink options text src = then name ++ " at " ++ domain' else text' ++ " (" ++ name ++ " at " ++ domain' ++ ")" in - "" + if writerStrictMarkdown options + then "" ++ + obfuscateString text' ++ "" + else "" _ -> "" ++ text' ++ "" -- malformed email -- | Obfuscate character as entity. @@ -264,8 +267,6 @@ inlineToHtml options (Link text (Src src tit)) = else "" else ">") ++ (inlineListToHtml options text) ++ "" -inlineToHtml options (Link text (Ref [])) = - "[" ++ (inlineListToHtml options text) ++ "]" inlineToHtml options (Link text (Ref ref)) = "[" ++ (inlineListToHtml options text) ++ "][" ++ (inlineListToHtml options ref) ++ "]" @@ -276,8 +277,6 @@ inlineToHtml options (Image alt (Src source tit)) = "\""" -inlineToHtml options (Image alternate (Ref [])) = - "![" ++ (inlineListToHtml options alternate) ++ "]" inlineToHtml options (Image alternate (Ref ref)) = "![" ++ (inlineListToHtml options alternate) ++ "][" ++ (inlineListToHtml options ref) ++ "]" diff --git a/src/Text/Pandoc/Writers/LaTeX.hs b/src/Text/Pandoc/Writers/LaTeX.hs index cb8e13305..e34b7b61e 100644 --- a/src/Text/Pandoc/Writers/LaTeX.hs +++ b/src/Text/Pandoc/Writers/LaTeX.hs @@ -180,15 +180,11 @@ inlineToLaTeX notes (LineBreak) = "\\\\\n" inlineToLaTeX notes Space = " " inlineToLaTeX notes (Link text (Src src tit)) = "\\href{" ++ src ++ "}{" ++ (inlineListToLaTeX notes (deVerb text)) ++ "}" -inlineToLaTeX notes (Link text (Ref [])) = "[" ++ - (inlineListToLaTeX notes text) ++ "]" inlineToLaTeX notes (Link text (Ref ref)) = "[" ++ (inlineListToLaTeX notes text) ++ "][" ++ (inlineListToLaTeX notes ref) ++ "]" -- this is what markdown does, for better or worse inlineToLaTeX notes (Image alternate (Src source tit)) = "\\includegraphics{" ++ source ++ "}" -inlineToLaTeX notes (Image alternate (Ref [])) = - "![" ++ (inlineListToLaTeX notes alternate) ++ "]" inlineToLaTeX notes (Image alternate (Ref ref)) = "![" ++ (inlineListToLaTeX notes alternate) ++ "][" ++ (inlineListToLaTeX notes ref) ++ "]" diff --git a/src/Text/Pandoc/Writers/Markdown.hs b/src/Text/Pandoc/Writers/Markdown.hs index 0e0563ab3..bfebc71fe 100644 --- a/src/Text/Pandoc/Writers/Markdown.hs +++ b/src/Text/Pandoc/Writers/Markdown.hs @@ -168,11 +168,12 @@ inlineToMarkdown (Link txt (Src src tit)) = (if tit /= "" then text (" \"" ++ (escapeLinkTitle tit) ++ "\"") else empty) <> char ')' -inlineToMarkdown (Link txt (Ref [])) = - char '[' <> inlineListToMarkdown txt <> text "][]" inlineToMarkdown (Link txt (Ref ref)) = - char '[' <> inlineListToMarkdown txt <> char ']' <> char '[' <> - inlineListToMarkdown ref <> char ']' + let first = char '[' <> inlineListToMarkdown txt <> char ']' + second = if (txt == ref) + then empty + else char '[' <> inlineListToMarkdown ref <> char ']' in + first <> second inlineToMarkdown (Image alternate (Src source tit)) = let alt = if (null alternate) || (alternate == [Str ""]) then text "image" @@ -181,10 +182,7 @@ inlineToMarkdown (Image alternate (Src source tit)) = (if tit /= "" then text (" \"" ++ (escapeLinkTitle tit) ++ "\"") else empty) <> char ')' -inlineToMarkdown (Image alternate (Ref [])) = - char '!' <> char '[' <> inlineListToMarkdown alternate <> char ']' inlineToMarkdown (Image alternate (Ref ref)) = - char '!' <> char '[' <> inlineListToMarkdown alternate <> char ']' <> - char '[' <> inlineListToMarkdown ref <> char ']' + char '!' <> inlineToMarkdown (Link alternate (Ref ref)) inlineToMarkdown (NoteRef ref) = text "[^" <> text (escapeString ref) <> char ']' diff --git a/src/Text/Pandoc/Writers/RST.hs b/src/Text/Pandoc/Writers/RST.hs index 1c14a4d7f..8b2563eb4 100644 --- a/src/Text/Pandoc/Writers/RST.hs +++ b/src/Text/Pandoc/Writers/RST.hs @@ -202,9 +202,6 @@ inlineToRST (Link txt (Src src tit)) = else linktext' in let ref = text ".. _" <> text linktext'' <> text ": " <> text src in (link, ref' $$ ref) -inlineToRST (Link txt (Ref [])) = - let (linktext, refs) = inlineListToRST txt in - (char '[' <> linktext <> char ']', refs) inlineToRST (Link txt (Ref ref)) = let (linktext, refs1) = inlineListToRST txt (reftext, refs2) = inlineListToRST ref in @@ -216,9 +213,6 @@ inlineToRST (Image alternate (Src source tit)) = let link = char '|' <> alt <> char '|' in let ref = text ".. " <> link <> text " image:: " <> text source in (link, ref' $$ ref) -inlineToRST (Image alternate (Ref [])) = - let (alttext, refs) = inlineListToRST alternate in - (char '|' <> alttext <> char '|', refs) -- The following case won't normally occur... inlineToRST (Image alternate (Ref ref)) = let (alttext, refs1) = inlineListToRST alternate diff --git a/src/Text/Pandoc/Writers/RTF.hs b/src/Text/Pandoc/Writers/RTF.hs index 19b4a5934..28cbe2ee8 100644 --- a/src/Text/Pandoc/Writers/RTF.hs +++ b/src/Text/Pandoc/Writers/RTF.hs @@ -220,15 +220,11 @@ inlineToRTF notes Space = " " inlineToRTF notes (Link text (Src src tit)) = "{\\field{\\*\\fldinst{HYPERLINK \"" ++ (codeStringToRTF src) ++ "\"}}{\\fldrslt{\\ul\n" ++ (inlineListToRTF notes text) ++ "\n}}}\n" -inlineToRTF notes (Link text (Ref [])) = - "[" ++ (inlineListToRTF notes text) ++ "]" inlineToRTF notes (Link text (Ref ref)) = "[" ++ (inlineListToRTF notes text) ++ "][" ++ (inlineListToRTF notes ref) ++ "]" -- this is what markdown does inlineToRTF notes (Image alternate (Src source tit)) = "{\\cf1 [image: " ++ source ++ "]\\cf0}" -inlineToRTF notes (Image alternate (Ref [])) = - "![" ++ (inlineListToRTF notes alternate) ++ "]" inlineToRTF notes (Image alternate (Ref ref)) = "![" ++ (inlineListToRTF notes alternate) ++ "][" ++ (inlineListToRTF notes ref) ++ "]" -- cgit v1.2.3