Difference between revisions of "Template:ShortURL"
Line 1: | Line 1: | ||
− | <includeonly>{{#ifeq:{{{plain}}}|yes|<span class="plainlinks">|}}{{#ifexpr:{{#len:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}}} > {{#expr:{{{count|35 | + | <includeonly>{{#ifeq:{{{plain}}}|yes|<span class="plainlinks">|}}{{#ifexpr:{{#len:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}}} > {{#expr:{{{count|35}}}|[{{{url|}}} {{#ifeq:{{{domainbold}}}|yes|'''}}{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}{{#ifeq:{{{domainbold}}}|yes|'''}}{{#ifeq:{{{domainonly}}}|yes||{{#sub:{{#replace:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}|0| |
{{#expr:{{{count|35}}}-{{#len:{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}}} | {{#expr:{{{count|35}}}-{{#len:{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}}} | ||
}}}}{{{suffix|…}}}]| | }}}}{{{suffix|…}}}]| | ||
{{#ifeq:{{{domainforce}}}|yes|[{{{url|}}} {{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}]| | {{#ifeq:{{{domainforce}}}|yes|[{{{url|}}} {{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}]| | ||
− | {{#ifeq:{{{domainbold}}}|yes|[{{{url|}}} '''{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}'''{{#sub:{{#replace:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}|0| | + | {{#ifeq:{{{domainbold}}}|yes|[{{{url|}}} '''{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}'''{{#sub:{{#replace:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|{{#explode:{{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}|/|}}}}|0|{{{count|35}}}}}] |
|{{#ifeq:{{{forceprefix}}}|yes|{{{url|}}}}}|[{{{url|}}} {{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}] | |{{#ifeq:{{{forceprefix}}}|yes|{{{url|}}}}}|[{{{url|}}} {{#replace:{{#replace:{{{url|}}}|http://|}}|www.|}}] | ||
}} | }} | ||
Line 19: | Line 19: | ||
|suffix = | |suffix = | ||
|plain =(yes) | |plain =(yes) | ||
+ | |forceprefix =(yes) | ||
|domainonly =(yes) | |domainonly =(yes) | ||
|domainbold =(yes) | |domainbold =(yes) | ||
|domainforce =(yes) | |domainforce =(yes) | ||
− | |||
− | |||
}}</pre> | }}</pre> | ||
*'''count''': optional / default: 35 | *'''count''': optional / default: 35 | ||
:The number of displayed characters. It counts and returns the string without "http://" and "www." (if the URL is longer than the default 35 characters). | :The number of displayed characters. It counts and returns the string without "http://" and "www." (if the URL is longer than the default 35 characters). | ||
− | |||
*'''url''': required | *'''url''': required | ||
:Set the full URL <nowiki>http://...</nowiki> | :Set the full URL <nowiki>http://...</nowiki> | ||
Line 34: | Line 32: | ||
*'''plain''': optional / default: no | *'''plain''': optional / default: no | ||
:Returns the link in spans with the [http://www.mediawiki.org/wiki/Plainlinks plainlinks] class. Note that you should have this set up in you CSS. Also note that your page code is more clear when you set class="plainlinks" for the element that contains all your links. | :Returns the link in spans with the [http://www.mediawiki.org/wiki/Plainlinks plainlinks] class. Note that you should have this set up in you CSS. Also note that your page code is more clear when you set class="plainlinks" for the element that contains all your links. | ||
+ | *'''forceprefix''': optional / default: no | ||
+ | :Will not remove the "http://" and "www." prefix. I.e. if no "www." is in given it won't be returned. | ||
*'''domainonly''': optional / default: no | *'''domainonly''': optional / default: no | ||
− | :domainonly=yes will only display the domain (including subdomains if given). A setting for count is useless here. | + | :domainonly=yes will only display the domain (including subdomains if given). A setting for count or forceprefix is useless here. |
*'''domainbold''': optional / default: no | *'''domainbold''': optional / default: no | ||
:domainbold=yes will highlight the domain bold. This is useful for lists of many different external URLs. The prefix is also stripped for URLs shorter than count. | :domainbold=yes will highlight the domain bold. This is useful for lists of many different external URLs. The prefix is also stripped for URLs shorter than count. | ||
− | |||
− | |||
− | |||
− | |||
===Examples=== | ===Examples=== | ||
<pre>{{ShortURL|url=http://semeb.com/dpldemo/index.php?title=Template:ShortURL}}</pre> | <pre>{{ShortURL|url=http://semeb.com/dpldemo/index.php?title=Template:ShortURL}}</pre> | ||
− | The URL (stripped: without "http://" and "www") has 45 characters. That's more than count (default 35) | + | The URL (stripped: without "http://" and "www.") has 45 characters. That's more than count (default 35).<br>Result: {{ShortURL|url=http://semeb.com/dpldemo/index.php?title=Template:ShortURL}} |
<pre>{{ShortURL|url=http://www.imdb.com|suffix=....}}</pre> | <pre>{{ShortURL|url=http://www.imdb.com|suffix=....}}</pre> | ||
Line 91: | Line 87: | ||
*{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainbold=yes}} | *{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainbold=yes}} | ||
*{{ShortURL|url=http://www.imdb.com|count=50|domainbold=yes}} | *{{ShortURL|url=http://www.imdb.com|count=50|domainbold=yes}} | ||
− | |||
− | |||
− | |||
For practical examples see: [[Template:ShortURL/Examples/Examples]]. | For practical examples see: [[Template:ShortURL/Examples/Examples]]. | ||
− | |||
− | |||
− |
Revision as of 02:14, 24 July 2009
The template
This is not finished yet.
Usage
This shortens external URLs. It may not be useful for single usage on a page but for list output and esp. in combination with addexternallink=true and %EXTERNALLINK% in the output. Consider that shortened URLs may cause wrong copy-paste by unexperienced users.
Note: Requires Extension:StringFunctions
Usage
{{ShortURL |url = |count = |suffix = |plain =(yes) |forceprefix =(yes) |domainonly =(yes) |domainbold =(yes) |domainforce =(yes) }}
- count: optional / default: 35
- The number of displayed characters. It counts and returns the string without "http://" and "www." (if the URL is longer than the default 35 characters).
- url: required
- Set the full URL http://...
- suffix: optional / default: "…" (not ...)
- Adds an suffix at the end of the shortened string. It is not recommend to set an empty suffix.
- plain: optional / default: no
- Returns the link in spans with the plainlinks class. Note that you should have this set up in you CSS. Also note that your page code is more clear when you set class="plainlinks" for the element that contains all your links.
- forceprefix: optional / default: no
- Will not remove the "http://" and "www." prefix. I.e. if no "www." is in given it won't be returned.
- domainonly: optional / default: no
- domainonly=yes will only display the domain (including subdomains if given). A setting for count or forceprefix is useless here.
- domainbold: optional / default: no
- domainbold=yes will highlight the domain bold. This is useful for lists of many different external URLs. The prefix is also stripped for URLs shorter than count.
Examples
{{ShortURL|url=http://semeb.com/dpldemo/index.php?title=Template:ShortURL}}
The URL (stripped: without "http://" and "www.") has 45 characters. That's more than count (default 35).
Result: delete me
{{ShortURL|url=http://www.imdb.com|suffix=....}}
The (stripped) URL is shorter than the count (default 35). It will be fully returned without suffix.
Result: delete me
{{ShortURL |url=http://www.google.de/search?q=DLP&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a |count=50}}
We use a count of 50.
Result: delete me
{{ShortURL |url=http://www.google.de/search?q=DLP&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:de:official&client=firefox-a |count=50 |suffix='''....''' |plain=yes}}
We add a custom suffix and use class="plainlinks".
Result: delete me
{{ShortURL |url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete |count=50 |domainbold=yes}}
We highlight the domain.
Result: delete me
{{ShortURL|url=http://www.mediawiki.org/wiki/Manual:Configuration_settings_%28alphabetical%29|domainonly=yes}} and {{ShortURL|url=http://commons.wikimedia.org/wiki/Category:Icons|domainonly=yes}}
We only want the domain.
Result: delete me and delete me
*{{ShortURL|url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete |count=50|domainforce=yes}} *{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainforce=yes}} *{{ShortURL|url=http://www.imdb.com|count=50|domainforce=yes}}
When you use this template in another template or DPL output, it might useful if the URLs all look the same. Therefor we use domainforce. The last URLs are actually shorter than the count but the prefix strip is forced. Result:
- delete me
- delete me
- delete me
*{{ShortURL|url=http://commons.wikimedia.org/wiki/Commons:Village_pump/Archive/2008Sep#Hack_for_search_suggestion_field_width_will_be_obsolete |count=50|domainbold=yes}} *{{ShortURL|url=http://commons.wikimedia.org/wiki/Main_Page|count=50|domainbold=yes}} *{{ShortURL|url=http://www.imdb.com|count=50|domainbold=yes}}
Whenever domainbold is used the prefix strip is forced (domainforce doesn't need to be set). Result:
- delete me
- delete me
- delete me
For practical examples see: Template:ShortURL/Examples/Examples.