Difference between revisions of "Template:URL"
Jump to navigation
Jump to search
imported>Verdy p m (work-around when titleparts does not work (for example presence of %xx URL-encoding in the path or in the query string):don't transform the displayed URL) |
imported>Verdy p m (simplify tests for presence of parameter 2, and of the titleparts limitation and its work-round ; additional fix for "ftp://" URLs) |
||
Line 1: | Line 1: | ||
<includeonly>{{#if:{{{1|}}}|<!-- | <includeonly>{{#if:{{{1|}}}|<!-- | ||
--><span class="url"><!-- | --><span class="url"><!-- | ||
+ | -->{{#ifeq:{{#titleparts:{{{1|}}}|1|1}}|{{{1|}}}|<!-- work-around when titleparts doesn't accept the URL and returns the full string instead: don't attempt to transform the displayed URL | ||
+ | -->[{{#if:1|{{{1|}}}}}]<!-- This #if:1 allows trimming leading spaces in the full URL: {{{1|}}} | ||
+ | -->|<!-- | ||
-->{{#switch:{{lc:{{#titleparts:{{{1|}}}|2}}}}<!-- | -->{{#switch:{{lc:{{#titleparts:{{{1|}}}|2}}}}<!-- | ||
-->|https:/<!-- | -->|https:/<!-- | ||
-->|http:/<!-- | -->|http:/<!-- | ||
− | -->|ftp:/=<!-- | + | -->|ftp:/=<!-- an FTP URL is a valid URI scheme and MUST NOT imply a default "http://" (as generated in the #default case) |
-->[{{#if:1|{{{1|}}}}} <!-- This #if:1 allows trimming leading spaces in the full URL: {{{1|}}} | -->[{{#if:1|{{{1|}}}}} <!-- This #if:1 allows trimming leading spaces in the full URL: {{{1|}}} | ||
− | -->{{#if:{{{2|}}}|{{{2|}}}|<!-- | + | -->{{#if:{{{2|}}}|{{#if:1|{{{2|}}}}}| <!-- This #if:1 allows trimming leading spaces in the specified display text : {{{2|}}} |
− | + | -->{{lc:<!-- domain name in lowercase | |
− | + | -->{{#ifeq:{{lc:{{padleft:|4|{{#titleparts:{{{1|}}}|1|3}}}}}}|www.<!-- | |
− | + | -->|{{Str right|{{#titleparts:{{{1|}}}|1|3}}|4}}<!-- | |
− | + | -->|{{#titleparts:{{{1|}}}||3}}<!-- | |
− | |||
− | |||
− | |||
− | |||
− | |||
-->}}<!-- | -->}}<!-- | ||
+ | -->}}<!-- | ||
+ | -->{{#if:{{#titleparts:{{{1|}}}||4}}<!-- rest of the ressource path | ||
+ | -->|/{{#titleparts:{{{1|}}}||4}}<!-- | ||
-->}}<!-- | -->}}<!-- | ||
-->}}<!-- | -->}}<!-- | ||
-->]<!-- | -->]<!-- | ||
− | -->|#default=<!-- | + | -->|#default=<!-- Warning! this case implies a default "http://" URI scheme, and should NOT occur if there's another accepted URI scheme in the URL |
-->[http://{{#if:1|{{{1|}}}}} <!-- This #if:1 allows trimming leading spaces in the full URL: {{{1|}}} | -->[http://{{#if:1|{{{1|}}}}} <!-- This #if:1 allows trimming leading spaces in the full URL: {{{1|}}} | ||
− | -->{{#if:{{{2|}}}|{{{2|}}}|<!-- | + | -->{{#if:{{{2|}}}|{{#if:1|{{{2|}}}}}| <!-- This #if:1 allows trimming leading spaces in the specified display text : {{{2|}}} |
− | + | -->{{lc:<!-- domain name in lowercase | |
− | + | -->{{#ifeq:{{lc:{{padleft:|4|{{#titleparts:{{{1|}}}|1|1}}}}}}|www.<!-- | |
− | + | -->|{{Str right|{{#titleparts:{{{1|}}}|1|1}}|4}}<!-- | |
− | + | -->|{{#titleparts:{{{1|}}}|1|1}}<!-- | |
− | |||
− | |||
− | |||
− | |||
− | |||
-->}}<!-- | -->}}<!-- | ||
+ | -->}}<!-- | ||
+ | -->{{#if:{{#titleparts:{{{1|}}}||2}}<!-- rest of the ressource path | ||
+ | -->|/{{#titleparts:{{{1|}}}||2}}<!-- | ||
-->}}<!-- | -->}}<!-- | ||
-->}}<!-- | -->}}<!-- |