From 060a76a38e1f3586bc92787bb2c25c2dc04e380e Mon Sep 17 00:00:00 2001
From: John MacFarlane <fiddlosopher@gmail.com>
Date: Sat, 5 Apr 2014 20:41:38 -0700
Subject: [PATCH] Textile reader: Improved treatment of HTML spans (%).

Closes #1115.
---
 src/Text/Pandoc/Readers/Textile.hs | 6 +-----
 tests/textile-reader.native        | 2 +-
 2 files changed, 2 insertions(+), 6 deletions(-)

diff --git a/src/Text/Pandoc/Readers/Textile.hs b/src/Text/Pandoc/Readers/Textile.hs
index b42c5e75d..f19d68e64 100644
--- a/src/Text/Pandoc/Readers/Textile.hs
+++ b/src/Text/Pandoc/Readers/Textile.hs
@@ -376,7 +376,6 @@ inlineParsers = [ inlineMarkup
                 , endline
                 , code
                 , escapedInline
-                , htmlSpan
                 , rawHtmlInline
                 , rawLaTeXInline'
                 , note
@@ -400,6 +399,7 @@ inlineMarkup = choice [ simpleInline (string "??") (B.cite [])
                       , simpleInline (char '-' <* notFollowedBy (char '-')) B.strikeout
                       , simpleInline (char '^') B.superscript
                       , simpleInline (char '~') B.subscript
+                      , simpleInline (char '%') id
                       ]
 
 -- | Trademark, registered, copyright
@@ -476,10 +476,6 @@ str = do
   updateLastStrPos
   return $ B.str fullStr
 
--- | Textile allows HTML span infos, we discard them
-htmlSpan :: Parser [Char] ParserState Inlines
-htmlSpan = try $ B.str <$> ( char '%' *> attributes *> manyTill anyChar (char '%') )
-
 -- | Some number of space chars
 whitespace :: Parser [Char] ParserState Inlines
 whitespace = many1 spaceChar >> return B.space <?> "whitespace"
diff --git a/tests/textile-reader.native b/tests/textile-reader.native
index 0c2b13e72..88fc0bb47 100644
--- a/tests/textile-reader.native
+++ b/tests/textile-reader.native
@@ -124,7 +124,7 @@ Pandoc (Meta {unMeta = fromList []})
 ,Para [Str "Textile",Space,Str "inline",Space,Str "image",Space,Str "syntax,",Space,Str "like",LineBreak,Str "here",Space,Image [Str "this is the alt text"] ("this_is_an_image.png","this is the alt text"),LineBreak,Str "and",Space,Str "here",Space,Image [Str ""] ("this_is_an_image.png",""),Str "."]
 ,Header 1 ("attributes",[],[]) [Str "Attributes"]
 ,Header 2 ("ident",["bar","foo"],[("style","color:red"),("lang","en")]) [Str "HTML",Space,Str "and",Space,Str "CSS",Space,Str "attributes",Space,Str "are",Space,Str "parsed",Space,Str "in",Space,Str "headers."]
-,Para [Str "as",Space,Str "well",Space,Str "as",Space,Strong [Str "inline",Space,Str "attributes"],Space,Str "of",Space,Str " all kind"]
+,Para [Str "as",Space,Str "well",Space,Str "as",Space,Strong [Str "inline",Space,Str "attributes"],Space,Str "of",Space,Str "all",Space,Str "kind"]
 ,Para [Str "and",Space,Str "paragraph",Space,Str "attributes,",Space,Str "and",Space,Str "table",Space,Str "attributes."]
 ,Table [] [AlignDefault,AlignDefault,AlignDefault] [0.0,0.0,0.0]
  []