Textile reader: don't do smart punctuation unless explicitly asked.
Closes #2480. Note that although smart punctuation is part of the textile spec, it's not always wanted when converting from textile to, say, Markdown. So it seems better to make this an option.
This commit is contained in:
parent
d1ba023d9e
commit
532ae22c29
3 changed files with 14 additions and 15 deletions
6
README
6
README
|
@ -372,10 +372,8 @@ Reader options
|
|||
: Produce typographically correct output, converting straight quotes
|
||||
to curly quotes, `---` to em-dashes, `--` to en-dashes, and
|
||||
`...` to ellipses. Nonbreaking spaces are inserted after certain
|
||||
abbreviations, such as "Mr." (Note: This option is significant only when
|
||||
the input format is `markdown`, `markdown_strict`, `textile` or `twiki`.
|
||||
It is selected automatically when the input format is `textile` or the
|
||||
output format is `latex` or `context`, unless `--no-tex-ligatures`
|
||||
abbreviations, such as "Mr." (Note: This option is selected automatically
|
||||
when the output format is `latex` or `context`, unless `--no-tex-ligatures`
|
||||
is used.)
|
||||
|
||||
`--old-dashes`
|
||||
|
|
|
@ -79,11 +79,12 @@ readTextile opts s =
|
|||
-- | Generate a Pandoc ADT from a textile document
|
||||
parseTextile :: Parser [Char] ParserState Pandoc
|
||||
parseTextile = do
|
||||
-- textile allows raw HTML and does smart punctuation by default
|
||||
-- textile allows raw HTML and does smart punctuation by default,
|
||||
-- but we do not enable smart punctuation unless it is explicitly
|
||||
-- asked for, for better conversion to other light markup formats
|
||||
oldOpts <- stateOptions `fmap` getState
|
||||
updateState $ \state -> state{ stateOptions =
|
||||
oldOpts{ readerSmart = True
|
||||
, readerParseRaw = True
|
||||
oldOpts{ readerParseRaw = True
|
||||
, readerOldDashes = True
|
||||
} }
|
||||
many blankline
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
Pandoc (Meta {unMeta = fromList []})
|
||||
[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc",Space,Str "Textile",Space,Str "Reader.",Space,Str "Part",Space,Str "of",Space,Str "it",Space,Str "comes",LineBreak,Str "from",Space,Str "John",Space,Str "Gruber\8217s",Space,Str "markdown",Space,Str "test",Space,Str "suite."]
|
||||
[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "set",Space,Str "of",Space,Str "tests",Space,Str "for",Space,Str "pandoc",Space,Str "Textile",Space,Str "Reader.",Space,Str "Part",Space,Str "of",Space,Str "it",Space,Str "comes",LineBreak,Str "from",Space,Str "John",Space,Str "Gruber's",Space,Str "markdown",Space,Str "test",Space,Str "suite."]
|
||||
,HorizontalRule
|
||||
,Header 1 ("headers",[],[]) [Str "Headers"]
|
||||
,Header 2 ("level-2-with-an-embeded-link",[],[]) [Str "Level",Space,Str "2",Space,Str "with",Space,Str "an",Space,Link [Str "embeded",Space,Str "link"] ("http://www.example.com","")]
|
||||
|
@ -8,9 +8,9 @@ Pandoc (Meta {unMeta = fromList []})
|
|||
,Header 5 ("level-5",[],[]) [Str "Level",Space,Str "5"]
|
||||
,Header 6 ("level-6",[],[]) [Str "Level",Space,Str "6"]
|
||||
,Header 1 ("paragraphs",[],[]) [Str "Paragraphs"]
|
||||
,Para [Str "Here\8217s",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]
|
||||
,Para [Str "Here's",Space,Str "a",Space,Str "regular",Space,Str "paragraph."]
|
||||
,Para [Str "Line",Space,Str "breaks",Space,Str "are",Space,Str "preserved",Space,Str "in",Space,Str "textile,",Space,Str "so",Space,Str "you",Space,Str "can",Space,Str "not",Space,Str "wrap",Space,Str "your",Space,Str "very",LineBreak,Str "long",Space,Str "paragraph",Space,Str "with",Space,Str "your",Space,Str "favourite",Space,Str "text",Space,Str "editor",Space,Str "and",Space,Str "have",Space,Str "it",Space,Str "rendered",LineBreak,Str "with",Space,Str "no",Space,Str "break."]
|
||||
,Para [Str "Here\8217s",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet."]
|
||||
,Para [Str "Here's",Space,Str "one",Space,Str "with",Space,Str "a",Space,Str "bullet."]
|
||||
,BulletList
|
||||
[[Plain [Str "criminey."]]]
|
||||
,Para [Str "There",Space,Str "should",Space,Str "be",Space,Str "a",Space,Str "paragraph",Space,Str "break",Space,Str "between",Space,Str "here"]
|
||||
|
@ -87,9 +87,9 @@ Pandoc (Meta {unMeta = fromList []})
|
|||
,Para [Str "This",Space,Str "is",Space,Emph [Str "emphasized"],Str ",",Space,Str "and",Space,Str "so",Space,Emph [Str "is",Space,Str "this"],Str ".",LineBreak,Str "This",Space,Str "is",Space,Strong [Str "strong"],Str ",",Space,Str "and",Space,Str "so",Space,Strong [Str "is",Space,Str "this"],Str ".",LineBreak,Str "Hyphenated-words-are-ok,",Space,Str "as",Space,Str "well",Space,Str "as",Space,Str "strange_underscore_notation.",LineBreak,Str "A",Space,Link [Strong [Str "strong",Space,Str "link"]] ("http://www.foobar.com",""),Str "."]
|
||||
,Para [Emph [Strong [Str "This",Space,Str "is",Space,Str "strong",Space,Str "and",Space,Str "em."]],LineBreak,Str "So",Space,Str "is",Space,Strong [Emph [Str "this"]],Space,Str "word",Space,Str "and",Space,Emph [Strong [Str "that",Space,Str "one"]],Str ".",LineBreak,Strikeout [Str "This",Space,Str "is",Space,Str "strikeout",Space,Str "and",Space,Strong [Str "strong"]]]
|
||||
,Para [Str "Superscripts:",Space,Str "a",Superscript [Str "bc"],Str "d",Space,Str "a",Space,Superscript [Strong [Str "hello"]],Space,Str "a",Superscript [Str "hello",Space,Str "there"],Str ".",LineBreak,Str "Subscripts:",Space,Subscript [Str "here"],Space,Str "H",Space,Subscript [Str "2"],Str "O,",Space,Str "H",Space,Subscript [Str "23"],Str "O,",Space,Str "H",Space,Subscript [Str "many",Space,Str "of",Space,Str "them"],Str "O."]
|
||||
,Para [Str "Dashes",Space,Str ":",Space,Str "How",Space,Str "cool",Space,Str "\8212",Space,Str "automatic",Space,Str "dashes."]
|
||||
,Para [Str "Elipses",Space,Str ":",Space,Str "He",Space,Str "thought",Space,Str "and",Space,Str "thought",Space,Str "\8230",Space,Str "and",Space,Str "then",Space,Str "thought",Space,Str "some",Space,Str "more."]
|
||||
,Para [Str "Quotes",Space,Str "and",Space,Str "apostrophes",Space,Str ":",Space,Quoted DoubleQuote [Str "I\8217d",Space,Str "like",Space,Str "to",Space,Str "thank",Space,Str "you"],Space,Str "for",Space,Str "example."]
|
||||
,Para [Str "Dashes",Space,Str ":",Space,Str "How",Space,Str "cool",Space,Str "--",Space,Str "automatic",Space,Str "dashes."]
|
||||
,Para [Str "Elipses",Space,Str ":",Space,Str "He",Space,Str "thought",Space,Str "and",Space,Str "thought",Space,Str "...",Space,Str "and",Space,Str "then",Space,Str "thought",Space,Str "some",Space,Str "more."]
|
||||
,Para [Str "Quotes",Space,Str "and",Space,Str "apostrophes",Space,Str ":",Space,Str "\"I'd",Space,Str "like",Space,Str "to",Space,Str "thank",Space,Str "you\"",Space,Str "for",Space,Str "example."]
|
||||
,Header 1 ("links",[],[]) [Str "Links"]
|
||||
,Header 2 ("explicit",[],[]) [Str "Explicit"]
|
||||
,Para [Str "Just",Space,Str "a",Space,Link [Str "url"] ("http://www.url.com","")]
|
||||
|
@ -114,7 +114,7 @@ Pandoc (Meta {unMeta = fromList []})
|
|||
,[[Plain [Str "bella"]]
|
||||
,[Plain [Str "45"]]
|
||||
,[Plain [Str "f"]]]]
|
||||
,Para [Str "and",Space,Str "some",Space,Str "text",Space,Str "following",Space,Str "\8230"]
|
||||
,Para [Str "and",Space,Str "some",Space,Str "text",Space,Str "following",Space,Str "..."]
|
||||
,Header 2 ("with-headers",[],[]) [Str "With",Space,Str "headers"]
|
||||
,Table [] [AlignDefault,AlignDefault,AlignDefault] [0.0,0.0,0.0]
|
||||
[[Plain [Str "name"]]
|
||||
|
@ -152,7 +152,7 @@ Pandoc (Meta {unMeta = fromList []})
|
|||
,RawBlock (Format "html") "</div>"
|
||||
,Para [Str "Html",Space,Str "blocks",Space,Str "can",Space,Str "be",Space,RawInline (Format "html") "<div>",Str "inlined",RawInline (Format "html") "</div>",Space,Str "as",Space,Str "well."]
|
||||
,BulletList
|
||||
[[Plain [Str "this",Space,RawInline (Format "html") "<div>",Space,Str "won\8217t",Space,Str "produce",Space,Str "raw",Space,Str "html",Space,Str "blocks",Space,RawInline (Format "html") "</div>"]]
|
||||
[[Plain [Str "this",Space,RawInline (Format "html") "<div>",Space,Str "won't",Space,Str "produce",Space,Str "raw",Space,Str "html",Space,Str "blocks",Space,RawInline (Format "html") "</div>"]]
|
||||
,[Plain [Str "but",Space,Str "this",Space,RawInline (Format "html") "<strong>",Space,Str "will",Space,Str "produce",Space,Str "inline",Space,Str "html",Space,RawInline (Format "html") "</strong>"]]]
|
||||
,Para [Str "Can",Space,Str "you",Space,Str "prove",Space,Str "that",Space,Str "2",Space,Str "<",Space,Str "3",Space,Str "?"]
|
||||
,Header 1 ("acronyms-and-marks",[],[]) [Str "Acronyms",Space,Str "and",Space,Str "marks"]
|
||||
|
|
Loading…
Reference in a new issue