git.iko.soy/typeable/pandoc
on master help sign in
Markdown reader: distinguish autolinks in the AST.
136bf90John MacFarlane
src/Text/Pandoc/Readers/Markdown.hs+7−5
@@ -1,6 +1,7 @@
1{-# LANGUAGE NoImplicitPrelude #-}
1{-# LANGUAGE NoImplicitPrelude #-}
2{-# LANGUAGE RelaxedPolyRec #-}
2{-# LANGUAGE RelaxedPolyRec #-}
3{-# LANGUAGE ScopedTypeVariables #-}
3{-# LANGUAGE ScopedTypeVariables #-}
4+{-# LANGUAGE TupleSections #-}
4
5
5{-
6{-
6Copyright (C) 2006-2018 John MacFarlane <jgm@berkeley.edu>
7Copyright (C) 2006-2018 John MacFarlane <jgm@berkeley.edu>
@@ -1879,23 +1880,24 @@ bareURL :: PandocMonad m => MarkdownParser m (F Inlines)
1879bareURL = try $ do
1880bareURL = try $ do
1880 guardEnabled Ext_autolink_bare_uris
1881 guardEnabled Ext_autolink_bare_uris
1881 getState >>= guard . stateAllowLinks
1882 getState >>= guard . stateAllowLinks
1882− (orig, src) <- uri <|> emailAddress
1883+ (cls, (orig, src)) <- (("uri",) <$> uri) <|> (("email",) <$> emailAddress)
1883 notFollowedBy $ try $ spaces >> htmlTag (~== TagClose "a")
1884 notFollowedBy $ try $ spaces >> htmlTag (~== TagClose "a")
1884− return $ return $ B.link src "" (B.str orig)
1885+ return $ return $ B.linkWith ("",[cls],[]) src "" (B.str orig)
1885
1886
1886autoLink :: PandocMonad m => MarkdownParser m (F Inlines)
1887autoLink :: PandocMonad m => MarkdownParser m (F Inlines)
1887autoLink = try $ do
1888autoLink = try $ do
1888 getState >>= guard . stateAllowLinks
1889 getState >>= guard . stateAllowLinks
1889 char '<'
1890 char '<'
1890− (orig, src) <- uri <|> emailAddress
1891+ (cls, (orig, src)) <- (("uri",) <$> uri) <|> (("email",) <$> emailAddress)
1891 -- in rare cases, something may remain after the uri parser
1892 -- in rare cases, something may remain after the uri parser
1892 -- is finished, because the uri parser tries to avoid parsing
1893 -- is finished, because the uri parser tries to avoid parsing
1893 -- final punctuation. for example: in `<http://hi---there>`,
1894 -- final punctuation. for example: in `<http://hi---there>`,
1894 -- the URI parser will stop before the dashes.
1895 -- the URI parser will stop before the dashes.
1895 extra <- fromEntities <$> manyTill nonspaceChar (char '>')
1896 extra <- fromEntities <$> manyTill nonspaceChar (char '>')
1896− attr <- option nullAttr $ try $
1897+ attr <- option ("", [cls], []) $ try $
1897 guardEnabled Ext_link_attributes >> attributes
1898 guardEnabled Ext_link_attributes >> attributes
1898− return $ return $ B.linkWith attr (src ++ escapeURI extra) "" (B.str $ orig ++ extra)
1899+ return $ return $ B.linkWith attr (src ++ escapeURI extra) ""
1900+ (B.str $ orig ++ extra)
1899
1901
1900image :: PandocMonad m => MarkdownParser m (F Inlines)
1902image :: PandocMonad m => MarkdownParser m (F Inlines)
1901image = try $ do
1903image = try $ do
src/Text/Pandoc/Writers/HTML.hs+2−5
@@ -56,7 +56,7 @@ import Data.String (fromString)
56import Data.Text (Text)
56import Data.Text (Text)
57import qualified Data.Text.Lazy as TL
57import qualified Data.Text.Lazy as TL
58import Network.HTTP (urlEncode)
58import Network.HTTP (urlEncode)
59−import Network.URI (URI (..), parseURIReference, unEscapeString)
59+import Network.URI (URI (..), parseURIReference)
60import Numeric (showHex)
60import Numeric (showHex)
61import Text.Blaze.Internal (customLeaf, customParent, MarkupM(Empty))
61import Text.Blaze.Internal (customLeaf, customParent, MarkupM(Empty))
62#if MIN_VERSION_blaze_markup(0,6,3)
62#if MIN_VERSION_blaze_markup(0,6,3)
@@ -1084,10 +1084,7 @@ inlineToHtml opts inline = do
1084 in '#' : prefix ++ xs
1084 in '#' : prefix ++ xs
1085 _ -> s
1085 _ -> s
1086 let link = H.a ! A.href (toValue s') $ linkText
1086 let link = H.a ! A.href (toValue s') $ linkText
1087− let attr = if txt == [Str (unEscapeString s)]
1088− then (ident, "uri" : classes, kvs)
1089− else (ident, classes, kvs)
1090− link' <- addAttrs opts attr link
1087+ link' <- addAttrs opts (ident, classes, kvs) link
1091 return $ if null tit
1088 return $ if null tit
1092 then link'
1089 then link'
1093 else link' ! A.title (toValue tit)
1090 else link' ! A.title (toValue tit)
src/Text/Pandoc/Writers/Textile.hs+3−3
@@ -463,15 +463,15 @@ inlineToTextile _ SoftBreak = return " "
463inlineToTextile _ Space = return " "
463inlineToTextile _ Space = return " "
464
464
465inlineToTextile opts (Link (_, cls, _) txt (src, _)) = do
465inlineToTextile opts (Link (_, cls, _) txt (src, _)) = do
466− let classes = if null cls
467− then ""
468− else "(" ++ unwords cls ++ ")"
469 label <- case txt of
466 label <- case txt of
470 [Code _ s]
467 [Code _ s]
471 | s == src -> return "$"
468 | s == src -> return "$"
472 [Str s]
469 [Str s]
473 | s == src -> return "$"
470 | s == src -> return "$"
474 _ -> inlineListToTextile opts txt
471 _ -> inlineListToTextile opts txt
472+ let classes = if null cls || cls == ["uri"] && label == "$"
473+ then ""
474+ else "(" ++ unwords cls ++ ")"
475 return $ "\"" ++ classes ++ label ++ "\":" ++ src
475 return $ "\"" ++ classes ++ label ++ "\":" ++ src
476
476
477inlineToTextile opts (Image attr@(_, cls, _) alt (source, tit)) = do
477inlineToTextile opts (Image attr@(_, cls, _) alt (source, tit)) = do
test/Tests/Readers/Markdown.hs+5−3
@@ -39,7 +39,7 @@ testBareLink (inp, ils) =
39 (unpack inp) (inp, doc $ para ils)
39 (unpack inp) (inp, doc $ para ils)
40
40
41autolink :: String -> Inlines
41autolink :: String -> Inlines
42−autolink = autolinkWith nullAttr
42+autolink = autolinkWith ("",["uri"],[])
43
43
44autolinkWith :: Attr -> String -> Inlines
44autolinkWith :: Attr -> String -> Inlines
45autolinkWith attr s = linkWith attr s "" (str s)
45autolinkWith attr s = linkWith attr s "" (str s)
@@ -72,10 +72,12 @@ bareLinkTests =
72 , ("http://en.wikipedia.org/wiki/Sprite_(computer_graphics)",
72 , ("http://en.wikipedia.org/wiki/Sprite_(computer_graphics)",
73 autolink "http://en.wikipedia.org/wiki/Sprite_(computer_graphics)")
73 autolink "http://en.wikipedia.org/wiki/Sprite_(computer_graphics)")
74 , ("http://en.wikipedia.org/wiki/Sprite_[computer_graphics]",
74 , ("http://en.wikipedia.org/wiki/Sprite_[computer_graphics]",
75+ linkWith ("",["uri"],[])
75− link "http://en.wikipedia.org/wiki/Sprite_%5Bcomputer_graphics%5D" ""
76+ "http://en.wikipedia.org/wiki/Sprite_%5Bcomputer_graphics%5D" ""
76 (str "http://en.wikipedia.org/wiki/Sprite_[computer_graphics]"))
77 (str "http://en.wikipedia.org/wiki/Sprite_[computer_graphics]"))
77 , ("http://en.wikipedia.org/wiki/Sprite_{computer_graphics}",
78 , ("http://en.wikipedia.org/wiki/Sprite_{computer_graphics}",
79+ linkWith ("",["uri"],[])
78− link "http://en.wikipedia.org/wiki/Sprite_%7Bcomputer_graphics%7D" ""
80+ "http://en.wikipedia.org/wiki/Sprite_%7Bcomputer_graphics%7D" ""
79 (str "http://en.wikipedia.org/wiki/Sprite_{computer_graphics}"))
81 (str "http://en.wikipedia.org/wiki/Sprite_{computer_graphics}"))
80 , ("http://example.com/Notification_Center-GitHub-20101108-140050.jpg",
82 , ("http://example.com/Notification_Center-GitHub-20101108-140050.jpg",
81 autolink "http://example.com/Notification_Center-GitHub-20101108-140050.jpg")
83 autolink "http://example.com/Notification_Center-GitHub-20101108-140050.jpg")
test/command/3716.md+1−1
@@ -2,5 +2,5 @@
2% pandoc
2% pandoc
3<http://example.com>{.foo}
3<http://example.com>{.foo}
4^D
4^D
5−<p><a href="http://example.com" class="uri foo">http://example.com</a></p>
5+<p><a href="http://example.com" class="foo">http://example.com</a></p>
6```
6```
test/command/4913.mdnew file+34
@@ -0,0 +1,34 @@
1+```
2+% pandoc -f markdown -t html
3+[https://pandoc.org](https://pandoc.org)
4+^D
5+<p><a href="https://pandoc.org">https://pandoc.org</a></p>
6+```
7+
8+```
9+% pandoc -f markdown -t markdown
10+[https://pandoc.org](https://pandoc.org)
11+^D
12+<https://pandoc.org>
13+```
14+
15+```
16+% pandoc -f markdown -t html
17+<https://pandoc.org>
18+^D
19+<p><a href="https://pandoc.org" class="uri">https://pandoc.org</a></p>
20+```
21+
22+```
23+% pandoc -f markdown -t html
24+<https://pandoc.org>{.foo}
25+^D
26+<p><a href="https://pandoc.org" class="foo">https://pandoc.org</a></p>
27+```
28+
29+```
30+% pandoc -f markdown -t html
31+<me@example.com>
32+^D
33+<p><a href="mailto:me@example.com" class="email">me@example.com</a></p>
34+```
test/markdown-reader-more.native+4−4
@@ -45,9 +45,9 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "Author",S
45,Para [Str "`hi"]
45,Para [Str "`hi"]
46,Para [Str "there`"]
46,Para [Str "there`"]
47,Header 2 ("multilingual-urls",[],[]) [Str "Multilingual",Space,Str "URLs"]
47,Header 2 ("multilingual-urls",[],[]) [Str "Multilingual",Space,Str "URLs"]
48−,Para [Link ("",[],[]) [Str "http://\27979.com?\27979=\27979"] ("http://\27979.com?\27979=\27979","")]
48+,Para [Link ("",["uri"],[]) [Str "http://\27979.com?\27979=\27979"] ("http://\27979.com?\27979=\27979","")]
49,Para [Link ("",[],[]) [Str "foo"] ("/bar/\27979?x=\27979","title")]
49,Para [Link ("",[],[]) [Str "foo"] ("/bar/\27979?x=\27979","title")]
50−,Para [Link ("",[],[]) [Str "\27979@foo.\27979.baz"] ("mailto:\27979@foo.\27979.baz","")]
50+,Para [Link ("",["email"],[]) [Str "\27979@foo.\27979.baz"] ("mailto:\27979@foo.\27979.baz","")]
51,Header 2 ("numbered-examples",[],[]) [Str "Numbered",Space,Str "examples"]
51,Header 2 ("numbered-examples",[],[]) [Str "Numbered",Space,Str "examples"]
52,OrderedList (1,Example,TwoParens)
52,OrderedList (1,Example,TwoParens)
53 [[Plain [Str "First",Space,Str "example."]]
53 [[Plain [Str "First",Space,Str "example."]]
@@ -176,8 +176,8 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "Author",S
176 ,[]]]
176 ,[]]]
177,Header 2 ("entities-in-links-and-titles",[],[]) [Str "Entities",Space,Str "in",Space,Str "links",Space,Str "and",Space,Str "titles"]
177,Header 2 ("entities-in-links-and-titles",[],[]) [Str "Entities",Space,Str "in",Space,Str "links",Space,Str "and",Space,Str "titles"]
178,Para [Link ("",[],[]) [Str "link"] ("/\252rl","\246\246!")]
178,Para [Link ("",[],[]) [Str "link"] ("/\252rl","\246\246!")]
179−,Para [Link ("",[],[]) [Str "http://g\246\246gle.com"] ("http://g\246\246gle.com","")]
179+,Para [Link ("",["uri"],[]) [Str "http://g\246\246gle.com"] ("http://g\246\246gle.com","")]
180−,Para [Link ("",[],[]) [Str "me@ex\228mple.com"] ("mailto:me@ex\228mple.com","")]
180+,Para [Link ("",["email"],[]) [Str "me@ex\228mple.com"] ("mailto:me@ex\228mple.com","")]
181,Para [Link ("",[],[]) [Str "foobar"] ("/\252rl","\246\246!")]
181,Para [Link ("",[],[]) [Str "foobar"] ("/\252rl","\246\246!")]
182,Header 2 ("parentheses-in-urls",[],[]) [Str "Parentheses",Space,Str "in",Space,Str "URLs"]
182,Header 2 ("parentheses-in-urls",[],[]) [Str "Parentheses",Space,Str "in",Space,Str "URLs"]
183,Para [Link ("",[],[]) [Str "link"] ("/hi(there)","")]
183,Para [Link ("",[],[]) [Str "link"] ("/hi(there)","")]
test/testsuite.native+4−4
@@ -384,14 +384,14 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Spa
384,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]
384,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]
385,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]
385,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]
386,Header 2 ("autolinks",[],[]) [Str "Autolinks"]
386,Header 2 ("autolinks",[],[]) [Str "Autolinks"]
387−,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]
387+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",["uri"],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]
388,BulletList
388,BulletList
389 [[Plain [Str "In",Space,Str "a",Space,Str "list?"]]
389 [[Plain [Str "In",Space,Str "a",Space,Str "list?"]]
390− ,[Plain [Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]
390+ ,[Plain [Link ("",["uri"],[]) [Str "http://example.com/"] ("http://example.com/","")]]
391 ,[Plain [Str "It",Space,Str "should."]]]
391 ,[Plain [Str "It",Space,Str "should."]]]
392−,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]
392+,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link ("",["email"],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]
393,BlockQuote
393,BlockQuote
394− [Para [Str "Blockquoted:",Space,Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]
394+ [Para [Str "Blockquoted:",Space,Link ("",["uri"],[]) [Str "http://example.com/"] ("http://example.com/","")]]
395,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"]
395,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"]
396,CodeBlock ("",[],[]) "or here: <http://example.com/>"
396,CodeBlock ("",[],[]) "or here: <http://example.com/>"
397,HorizontalRule
397,HorizontalRule
test/writer.docbook4+3−3
@@ -1298,7 +1298,7 @@ These should not be escaped: \$ \\ \&gt; \[ \{
1298 <title>Autolinks</title>
1298 <title>Autolinks</title>
1299 <para>
1299 <para>
1300 With an ampersand:
1300 With an ampersand:
1301− <ulink url="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</ulink>
1301+ <ulink url="http://example.com/?foo=1&amp;bar=2" role="uri">http://example.com/?foo=1&amp;bar=2</ulink>
1302 </para>
1302 </para>
1303 <itemizedlist spacing="compact">
1303 <itemizedlist spacing="compact">
1304 <listitem>
1304 <listitem>
@@ -1308,7 +1308,7 @@ These should not be escaped: \$ \\ \&gt; \[ \{
1308 </listitem>
1308 </listitem>
1309 <listitem>
1309 <listitem>
1310 <para>
1310 <para>
1311− <ulink url="http://example.com/">http://example.com/</ulink>
1311+ <ulink url="http://example.com/" role="uri">http://example.com/</ulink>
1312 </para>
1312 </para>
1313 </listitem>
1313 </listitem>
1314 <listitem>
1314 <listitem>
@@ -1323,7 +1323,7 @@ These should not be escaped: \$ \\ \&gt; \[ \{
1323 <blockquote>
1323 <blockquote>
1324 <para>
1324 <para>
1325 Blockquoted:
1325 Blockquoted:
1326− <ulink url="http://example.com/">http://example.com/</ulink>
1326+ <ulink url="http://example.com/" role="uri">http://example.com/</ulink>
1327 </para>
1327 </para>
1328 </blockquote>
1328 </blockquote>
1329 <para>
1329 <para>
test/writer.docbook5+3−3
@@ -1273,7 +1273,7 @@ These should not be escaped: \$ \\ \&gt; \[ \{
1273 <title>Autolinks</title>
1273 <title>Autolinks</title>
1274 <para>
1274 <para>
1275 With an ampersand:
1275 With an ampersand:
1276− <link xlink:href="http://example.com/?foo=1&amp;bar=2">http://example.com/?foo=1&amp;bar=2</link>
1276+ <link xlink:href="http://example.com/?foo=1&amp;bar=2" role="uri">http://example.com/?foo=1&amp;bar=2</link>
1277 </para>
1277 </para>
1278 <itemizedlist spacing="compact">
1278 <itemizedlist spacing="compact">
1279 <listitem>
1279 <listitem>
@@ -1283,7 +1283,7 @@ These should not be escaped: \$ \\ \&gt; \[ \{
1283 </listitem>
1283 </listitem>
1284 <listitem>
1284 <listitem>
1285 <para>
1285 <para>
1286− <link xlink:href="http://example.com/">http://example.com/</link>
1286+ <link xlink:href="http://example.com/" role="uri">http://example.com/</link>
1287 </para>
1287 </para>
1288 </listitem>
1288 </listitem>
1289 <listitem>
1289 <listitem>
@@ -1298,7 +1298,7 @@ These should not be escaped: \$ \\ \&gt; \[ \{
1298 <blockquote>
1298 <blockquote>
1299 <para>
1299 <para>
1300 Blockquoted:
1300 Blockquoted:
1301− <link xlink:href="http://example.com/">http://example.com/</link>
1301+ <link xlink:href="http://example.com/" role="uri">http://example.com/</link>
1302 </para>
1302 </para>
1303 </blockquote>
1303 </blockquote>
1304 <para>
1304 <para>
test/writer.html4+1−1
@@ -508,7 +508,7 @@ Blah
508<li><a href="http://example.com/" class="uri">http://example.com/</a></li>
508<li><a href="http://example.com/" class="uri">http://example.com/</a></li>
509<li>It should.</li>
509<li>It should.</li>
510</ul>
510</ul>
511−<p>An e-mail address: <a href="mailto:nobody@nowhere.net">nobody@nowhere.net</a></p>
511+<p>An e-mail address: <a href="mailto:nobody@nowhere.net" class="email">nobody@nowhere.net</a></p>
512<blockquote>
512<blockquote>
513<p>Blockquoted: <a href="http://example.com/" class="uri">http://example.com/</a></p>
513<p>Blockquoted: <a href="http://example.com/" class="uri">http://example.com/</a></p>
514</blockquote>
514</blockquote>
test/writer.html5+1−1
@@ -511,7 +511,7 @@ Blah
511<li><a href="http://example.com/" class="uri">http://example.com/</a></li>
511<li><a href="http://example.com/" class="uri">http://example.com/</a></li>
512<li>It should.</li>
512<li>It should.</li>
513</ul>
513</ul>
514−<p>An e-mail address: <a href="mailto:nobody@nowhere.net">nobody@nowhere.net</a></p>
514+<p>An e-mail address: <a href="mailto:nobody@nowhere.net" class="email">nobody@nowhere.net</a></p>
515<blockquote>
515<blockquote>
516<p>Blockquoted: <a href="http://example.com/" class="uri">http://example.com/</a></p>
516<p>Blockquoted: <a href="http://example.com/" class="uri">http://example.com/</a></p>
517</blockquote>
517</blockquote>
test/writer.native+4−4
@@ -384,14 +384,14 @@ Pandoc (Meta {unMeta = fromList [("author",MetaList [MetaInlines [Str "John",Spa
384,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]
384,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link"] ("/script?foo=1&bar=2",""),Str "."]
385,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]
385,Para [Str "Here\8217s",Space,Str "an",Space,Link ("",[],[]) [Str "inline",Space,Str "link",Space,Str "in",Space,Str "pointy",Space,Str "braces"] ("/script?foo=1&bar=2",""),Str "."]
386,Header 2 ("autolinks",[],[]) [Str "Autolinks"]
386,Header 2 ("autolinks",[],[]) [Str "Autolinks"]
387−,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",[],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]
387+,Para [Str "With",Space,Str "an",Space,Str "ampersand:",Space,Link ("",["uri"],[]) [Str "http://example.com/?foo=1&bar=2"] ("http://example.com/?foo=1&bar=2","")]
388,BulletList
388,BulletList
389 [[Plain [Str "In",Space,Str "a",Space,Str "list?"]]
389 [[Plain [Str "In",Space,Str "a",Space,Str "list?"]]
390− ,[Plain [Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]
390+ ,[Plain [Link ("",["uri"],[]) [Str "http://example.com/"] ("http://example.com/","")]]
391 ,[Plain [Str "It",Space,Str "should."]]]
391 ,[Plain [Str "It",Space,Str "should."]]]
392−,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link ("",[],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]
392+,Para [Str "An",Space,Str "e-mail",Space,Str "address:",Space,Link ("",["email"],[]) [Str "nobody@nowhere.net"] ("mailto:nobody@nowhere.net","")]
393,BlockQuote
393,BlockQuote
394− [Para [Str "Blockquoted:",Space,Link ("",[],[]) [Str "http://example.com/"] ("http://example.com/","")]]
394+ [Para [Str "Blockquoted:",Space,Link ("",["uri"],[]) [Str "http://example.com/"] ("http://example.com/","")]]
395,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"]
395,Para [Str "Auto-links",Space,Str "should",Space,Str "not",Space,Str "occur",Space,Str "here:",Space,Code ("",[],[]) "<http://example.com/>"]
396,CodeBlock ("",[],[]) "or here: <http://example.com/>"
396,CodeBlock ("",[],[]) "or here: <http://example.com/>"
397,HorizontalRule
397,HorizontalRule
test/writer.textile+1−1
@@ -660,7 +660,7 @@ With an ampersand: "$":http://example.com/?foo=1&bar=2
660* "$":http://example.com/
660* "$":http://example.com/
661* It should.
661* It should.
662
662
663−An e&#45;mail address: "nobody&#64;nowhere.net":mailto:nobody@nowhere.net
663+An e&#45;mail address: "(email)nobody&#64;nowhere.net":mailto:nobody@nowhere.net
664
664
665bq. Blockquoted: "$":http://example.com/
665bq. Blockquoted: "$":http://example.com/
666
666