# Missing scheme: freenet

**URL:** <https://talk.commonmark.org/t/missing-scheme-freenet/145>\
**Category:** Spec\
**Created:** [September 3, 2014, 11:20pm UTC](https://talk.commonmark.org/t/missing-scheme-freenet/145 "2014-09-03T23:20:49Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![dClauzel](https://talk.commonmark.org/user_avatar/talk.commonmark.org/dclauzel/32/93_2.png) [@dClauzel](https://talk.commonmark.org/u/dClauzel)\
**Post date:** [September 3, 2014, 11:20pm UTC](https://talk.commonmark.org/t/missing-scheme-freenet/145/1 "2014-09-03T23:20:49Z")

</div>

Section “6.7 Autolinks” lacks the scheme support for [Freenet](https://en.wikipedia.org/wiki/Freenet).

---

<div class="post-metadata">

**Author:** ![joallard](https://talk.commonmark.org/user_avatar/talk.commonmark.org/joallard/32/2078_2.png) [@joallard](https://talk.commonmark.org/u/joallard)\
**Post date:** [September 4, 2014, 12:49am UTC](https://talk.commonmark.org/t/missing-scheme-freenet/145/2 "2014-09-04T00:49:14Z")

</div>

Is it even a good idea to give an explicit list of schemes? What happens when there are new schemes? We change the spec and every implementation with it?

---

<div class="post-metadata">

**Author:** ![Zegnat](https://talk.commonmark.org/user_avatar/talk.commonmark.org/zegnat/32/182_2.png) [@Zegnat](https://talk.commonmark.org/u/Zegnat)\
**Post date:** [September 4, 2014, 4:10pm UTC](https://talk.commonmark.org/t/missing-scheme-freenet/145/3 "2014-09-04T16:10:02Z")

</div>

I am not sure where the spec has taken this list from, but it looks fairly close to [IANA’s](http://www.iana.org/assignments/uri-schemes/uri-schemes.xhtml "Wikipedia’s article on URI scheme"). (I have not done a side-by-side, might be equal.) Looking through the officially recognised schemes shows `freenet` is not registered, which would explain why it is missing.

It might be the spec is requiring matching the scheme so it will not accidentally change XHTML elements under a namespace into links, e.g. `<svg:svg>` opens an SVG element under the SVG syntax. Example from [MDN](https://developer.mozilla.org/en-US/docs/Web/SVG/Namespaces_Crash_Course):

```xhtml
<html xmlns="http://www.w3.org/1999/xhtml" 
      xmlns:svg="http://www.w3.org/2000/svg">
  <body>
    <h1>SVG embedded inline in XHTML</h1>
    <svg:svg width="300px" height="200px">
      <svg:circle cx="150" cy="100" r="50" fill="#ff0000"/>
    </svg:svg>
  </body>
</html>

```

IIRC HTML5 did away with this and is no longer allowing colons within tag names, so if SMD is only to look at the latest HTML specification it could probably drop all such limitations.

---

<div class="post-metadata">

**Author:** ![codinghorror](https://talk.commonmark.org/user_avatar/talk.commonmark.org/codinghorror/32/2_2.png) [@codinghorror](https://talk.commonmark.org/u/codinghorror)\
**Post date:** [October 3, 2014, 11:39pm UTC](https://talk.commonmark.org/t/missing-scheme-freenet/145/4 "2014-10-03T23:39:10Z")

</div>

@jgm can you clarify if the CommonMark spec is using the IANA scheme list as a source? This might alleviate some of the complaints about it..

Also @joallard this is already covered in [an existing topic](http://talk.commonmark.org/t/what-is-the-point-of-limiting-uri-schemes-in-autolinks/555).

---

<div class="post-metadata">

**Author:** ![jgm](https://talk.commonmark.org/user_avatar/talk.commonmark.org/jgm/32/1360_2.png) [@jgm](https://talk.commonmark.org/u/jgm)\
**Post date:** [October 4, 2014, 6:07pm UTC](https://talk.commonmark.org/t/missing-scheme-freenet/145/5 "2014-10-04T18:07:33Z")

</div>

+++ codinghorror [Oct 03 14 23:49]:

> [2]@jgm can you clarify if the CommonMark spec is using the IANA scheme  
> list as a source? This might alleviate some of the complaints about  
> it..

If I recall correctly, the list consists of the IANA official + provisional schemes, plus the unofficial schemes “coap”, “doi”, and “javascript”.

I am sympathetic with the desire not to hard-code a list of schemes in the spec. The question is whether there’s a reliable heuristic for recognizing when the thing inside `<>` is a URI that doesn’t involve a list of schemes, and that acknowledges the fact that XML tags might have namespaces, e.g. `<m:math>`.
