md4c

Log

Files

Refs

README

LICENSE

permissive-www-autolinks.txt (3631B)

     1 
     2 # Permissive WWW Autolinks
     3 
     4 With the flag `MD_FLAG_PERMISSIVEWWWAUTOLINKS`, MD4C enables recognition of
     5 autolinks starting with `www.`, even if they do not exactly follow the syntax
     6 of autolink as specified in CommonMark specification.
     7 
     8 These do not have to be enclosed in `<` and `>`, and they even do not need
     9 any preceding scheme specification.
    10 
    11 The WWW autolink will be recognized when a valid domain is found.
    12 
    13 A valid domain consists of the text `www.`, followed by alphanumeric characters,
    14 nderscores (`_`), hyphens (`-`) and periods (`.`). There must be at least one
    15 period, and no underscores may be present in the last two segments of the domain.
    16 
    17 The scheme `http` will be inserted automatically:
    18 
    19 ```````````````````````````````` example
    20 www.commonmark.org
    21 .
    22 <p><a href="http://www.commonmark.org">www.commonmark.org</a></p>
    23 ````````````````````````````````
    24 
    25 After a valid domain, zero or more non-space non-`<` characters may follow:
    26 
    27 ```````````````````````````````` example
    28 Visit www.commonmark.org/help for more information.
    29 .
    30 <p>Visit <a href="http://www.commonmark.org/help">www.commonmark.org/help</a> for more information.</p>
    31 ````````````````````````````````
    32 
    33 We then apply extended autolink path validation as follows:
    34 
    35 Trailing punctuation (specifically, `?`, `!`, `.`, `,`, `:`, `*`, `_`, and `~`)
    36 will not be considered part of the autolink, though they may be included in the
    37 interior of the link:
    38 
    39 ```````````````````````````````` example
    40 Visit www.commonmark.org.
    41 
    42 Visit www.commonmark.org/a.b.
    43 .
    44 <p>Visit <a href="http://www.commonmark.org">www.commonmark.org</a>.</p>
    45 <p>Visit <a href="http://www.commonmark.org/a.b">www.commonmark.org/a.b</a>.</p>
    46 ````````````````````````````````
    47 
    48 When an autolink ends in `)`, we scan the entire autolink for the total number
    49 of parentheses.  If there is a greater number of closing parentheses than
    50 opening ones, we don't consider the last character part of the autolink, in
    51 order to facilitate including an autolink inside a parenthesis:
    52 
    53 ```````````````````````````````` example
    54 www.google.com/search?q=Markup+(business)
    55 
    56 (www.google.com/search?q=Markup+(business))
    57 .
    58 <p><a href="http://www.google.com/search?q=Markup+(business)">www.google.com/search?q=Markup+(business)</a></p>
    59 <p>(<a href="http://www.google.com/search?q=Markup+(business)">www.google.com/search?q=Markup+(business)</a>)</p>
    60 ````````````````````````````````
    61 
    62 This check is only done when the link ends in a closing parentheses `)`, so if
    63 the only parentheses are in the interior of the autolink, no special rules are
    64 applied:
    65 
    66 ```````````````````````````````` example
    67 www.google.com/search?q=(business))+ok
    68 .
    69 <p><a href="http://www.google.com/search?q=(business))+ok">www.google.com/search?q=(business))+ok</a></p>
    70 ````````````````````````````````
    71 
    72 If an autolink ends in a semicolon (`;`), we check to see if it appears to
    73 resemble an [entity reference][entity references]; if the preceding text is `&`
    74 followed by one or more alphanumeric characters.  If so, it is excluded from
    75 the autolink:
    76 
    77 ```````````````````````````````` example
    78 www.google.com/search?q=commonmark&hl=en
    79 
    80 www.google.com/search?q=commonmark&hl;
    81 .
    82 <p><a href="http://www.google.com/search?q=commonmark&amp;hl=en">www.google.com/search?q=commonmark&amp;hl=en</a></p>
    83 <p><a href="http://www.google.com/search?q=commonmark">www.google.com/search?q=commonmark</a>&amp;hl;</p>
    84 ````````````````````````````````
    85 
    86 `<` immediately ends an autolink.
    87 
    88 ```````````````````````````````` example
    89 www.commonmark.org/he<lp
    90 .
    91 <p><a href="http://www.commonmark.org/he">www.commonmark.org/he</a>&lt;lp</p>
    92 ````````````````````````````````