aboutsummaryrefslogtreecommitdiff
path: root/spec.txt
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2016-01-05 22:11:51 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2016-01-05 22:13:02 -0800
commit607d5b9e5f50a94c94bb20f077e97fdf3c14dc29 (patch)
tree6b3f903facdbcbb6236a64f92a9cc9c9dd09987b /spec.txt
parentbb33b2f519f190c141a7df602ed3246c75a407fe (diff)
Removed whitelist of valid schemes.
Now a scheme is any sequence of 2-32 characters, beginning with an ASCII letter, and containing only ASCII letters, digits, and the symbols `-`, `+`, `.`. Changed several spec examples accordingly. Discussion at http://talk.commonmark.org/t/what-is-the-point-of-limiting-uri-schemes-in-autolinks/555/26
Diffstat (limited to 'spec.txt')
-rw-r--r--spec.txt64
1 files changed, 26 insertions, 38 deletions
diff --git a/spec.txt b/spec.txt
index 9c495ab..dda255d 100644
--- a/spec.txt
+++ b/spec.txt
@@ -7545,34 +7545,13 @@ An [absolute URI](@absolute-uri),
for these purposes, consists of a [scheme] followed by a colon (`:`)
followed by zero or more characters other than ASCII
[whitespace] and control characters, `<`, and `>`. If
-the URI includes these characters, you must use percent-encoding
+the URI includes these characters, they must be percent-encoded
(e.g. `%20` for a space).
-The following [schemes](@scheme)
-are recognized (case-insensitive):
-`coap`, `doi`, `javascript`, `aaa`, `aaas`, `about`, `acap`, `cap`,
-`cid`, `crid`, `data`, `dav`, `dict`, `dns`, `file`, `ftp`, `geo`, `go`,
-`gopher`, `h323`, `http`, `https`, `iax`, `icap`, `im`, `imap`, `info`,
-`ipp`, `iris`, `iris.beep`, `iris.xpc`, `iris.xpcs`, `iris.lwz`, `ldap`,
-`mailto`, `mid`, `msrp`, `msrps`, `mtqp`, `mupdate`, `news`, `nfs`,
-`ni`, `nih`, `nntp`, `opaquelocktoken`, `pop`, `pres`, `rtsp`,
-`service`, `session`, `shttp`, `sieve`, `sip`, `sips`, `sms`, `snmp`,`
-soap.beep`, `soap.beeps`, `tag`, `tel`, `telnet`, `tftp`, `thismessage`,
-`tn3270`, `tip`, `tv`, `urn`, `vemmi`, `ws`, `wss`, `xcon`,
-`xcon-userid`, `xmlrpc.beep`, `xmlrpc.beeps`, `xmpp`, `z39.50r`,
-`z39.50s`, `adiumxtra`, `afp`, `afs`, `aim`, `apt`,` attachment`, `aw`,
-`beshare`, `bitcoin`, `bolo`, `callto`, `chrome`,` chrome-extension`,
-`com-eventbrite-attendee`, `content`, `cvs`,` dlna-playsingle`,
-`dlna-playcontainer`, `dtn`, `dvb`, `ed2k`, `facetime`, `feed`,
-`finger`, `fish`, `gg`, `git`, `gizmoproject`, `gtalk`, `hcp`, `icon`,
-`ipn`, `irc`, `irc6`, `ircs`, `itms`, `jar`, `jms`, `keyparc`, `lastfm`,
-`ldaps`, `magnet`, `maps`, `market`,` message`, `mms`, `ms-help`,
-`msnim`, `mumble`, `mvn`, `notes`, `oid`, `palm`, `paparazzi`,
-`platform`, `proxy`, `psyc`, `query`, `res`, `resource`, `rmi`, `rsync`,
-`rtmp`, `secondlife`, `sftp`, `sgn`, `skype`, `smb`, `soldat`,
-`spotify`, `ssh`, `steam`, `svn`, `teamspeak`, `things`, `udp`,
-`unreal`, `ut2004`, `ventrilo`, `view-source`, `webcal`, `wtai`,
-`wyciwyg`, `xfire`, `xri`, `ymsgr`.
+For purposes of this spec, a [scheme](@scheme) is any sequence
+of 2--32 characters beginning with an ASCII letter and followed
+by any combination of ASCII letters, digits, or the symbols plus
+("+"), period ("."), or hyphen ("-").
Here are some valid autolinks:
@@ -7602,6 +7581,27 @@ Uppercase is also fine:
<p><a href="MAILTO:FOO@BAR.BAZ">MAILTO:FOO@BAR.BAZ</a></p>
.
+Note that many strings that count as [absolute URI]s for
+purposes of this spec are not valid URIs, because their
+schemes are not registered or because of other problems
+with their syntax:
+
+.
+<a+b+c:d>
+
+<made-up-scheme://foo,bar>
+
+<http://../>
+
+<localhost:5001/foo>
+.
+<p><a href="a+b+c:d">a+b+c:d</a></p>
+<p><a href="made-up-scheme://foo,bar">made-up-scheme://foo,bar</a></p>
+<p><a href="http://../">http://../</a></p>
+<p><a href="localhost:5001/foo">localhost:5001/foo</a></p>
+.
+
+
Spaces are not allowed in autolinks:
.
@@ -7662,12 +7662,6 @@ These are not autolinks:
.
.
-<heck://bing.bong>
-.
-<p>&lt;heck://bing.bong&gt;</p>
-.
-
-.
< http://foo.bar >
.
<p>&lt; http://foo.bar &gt;</p>
@@ -7680,12 +7674,6 @@ These are not autolinks:
.
.
-<localhost:5001/foo>
-.
-<p>&lt;localhost:5001/foo&gt;</p>
-.
-
-.
http://example.com
.
<p>http://example.com</p>