Get our free book (in Spanish or English) on rainwater now - To Catch the Rain.

Template:Url/doc

From Appropedia
Jump to: navigation, search

This template can be used to create a formatted external link.

In brief[edit]

Use the template without parameters, and it will prompt for them:

{{ Url }}

displays as: {{URL|example.com|optional display text}}

{{ Url | }}

displays as: {{URL|example.com|optional display text}}

Use just a url as a parameter (without the http:// or equivalent) and you get a link to the url, like this:

{{ Url | EXAMPLE.com }}

displays as: example.com

{{ Url | example.com }}

displays as: example.com

{{ Url | example.com | display text }}

displays as: display text

If you omit the first parameter and specify the second parameter, the display text is unlinked - i.e. the template doesn't do anything useful:

display text

displays as: display text

Note: This template currently doesn't work with "http://" or similar prefixes. Enter the url in the form www.foo.com or foo.org, as appropriate, using a form that successfully finds the site when typed into the url of a browser.

Usage[edit]

  • {{URL|1=url name|2=optional display text}}
    • The first parameter is parsed to see if it takes the form of a complete URL. If it doesn't start with an known URI scheme and a slash ("http:/" or "https:/" or "ftp:/", possibly others in the future, by editing its code), an "http://" prefix will be prepended to the specified generated target URL of the link.
    • If no display text is specified or is empty, a default display text will be inferred by trying to reduce the specified URL without its recognized URI scheme (and without the common "www." hostname prefix which is assigned in almost all domains as the default one for this domain, and without the default "/" path of HTTP and FTP resources), and the domain name part will be forced to lowercase (for shorter and canonical display, but also to limit the occurrences of easily confusable characters, for example between letters and digits). The rest of the URL (including the rest of its path, the optional query string or the specified anchor) will be displayed unchanged.
  • {{URL|2=display text}}
    • The url or domain name is optional : if it is not specified in the first parameter or this parameter is empty, the display text becomes mandatory, and will be displayed without any change.
    • If both parameters are missing or empty, a default message referencing a correct usage of this template will be generated (including a link to this page), to help editors.
Warning:
  • It is strongly advised to number the parameters explicitly (notably when the value of the URL is unknown, for example when this template is used in another template specifying the effective URL as a variable value), because many URLs contain an equal sign (in their query string). In that case, the second parameter for the displayed text, if present, must also be explicitly numbered ; otherwise it will override the value of the explicitly numbered first parameter.
  • If you specify a query string (starting by "?", up to the end of the string or up to the first "#" character) or an anchor (starting by '"#" up to the end of the string) in the first parameter then you must specify at least the default path "/" immediately after the domain name ; otherwise the resulting link target will be unpredictable, as the query string and/or the anchor may be unexpectedly converted to all lowercase ; it is strongly recommended to use full and canonical URLs in the first parameter (without depending on the tentative detection of a missing URI scheme or path). Don't worry, this default "/" path won't be visible in the default display text.

Examples[edit]

Code Result
{{ Url }} {{URL|example.com|optional display text}}
{{ Url | }} {{URL|example.com|optional display text}}
{{ Url | EXAMPLE.com }} example.com
{{ Url | example.com }} example.com
{{ Url | www.example.com }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any
{{ Url | http://www.example.com }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any
{{ Url | https://www.example.com }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any
{{ Url | ftp://www.example.com }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any
{{ Url | ftp://ftp.example.com }} ftp.example.com
{{ Url | http://www.example.com/ }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any
{{ Url | http://www.example.com/path }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any/path
{{ Url | www.example.com/foo }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any/foo
{{ Url | http://www.example.com/foo | link }} link
{{ Url | www.example.com/foo | link }} link
{{ Url | http://www.example.com/path/ }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any/path/
{{ Url | www.example.com/foo/ }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any/foo/
{{ Url | 1=http://www.example.com/path?section=17 }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any/path?section=17
{{ Url | 1=www.example.com/foo?page=42 }} template:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index anytemplate:str index any/foo?page=42
{{ Url | http://www.example.com/foo/ | link }} link
{{ Url | www.example.com/foo/ | link }} link

Microformat[edit]

The template wraps the displayed URL with a class="url" so that it is included in any parent microformat which takes a URL parameter - see our microformats project.

See also[edit]