Difference between revisions of "Template:Citation/make link"

From blackwiki
Jump to navigation Jump to search
imported>Eubulides
(Fix problem with wikilinks to articles whose names do not begin with a letter, e.g., ! (album). See Template:Citation/make link/testcases.)
imported>Eubulides
(Remove the URL part, since that's controversial, and focus on the non-controversial part for now.)
Line 1: Line 1:
{{#switch:{{#titleparts:x{{{1|}}}|2}}
+
{{#if: {{{1|}}}
|X|Xnone|XNone = {{{2}}}
+
  | [{{{1}}} {{{2}}}]
|Xhttp:/|Xhttps:/|Xftp:/|x{{{1|}}} = [{{{1}}} {{{2}}}]
+
  | {{{2}}}
|#default = [[:{{{1}}}|{{{2}}}]]
 
 
}}<noinclude>
 
}}<noinclude>
 
<!-- Code notes (here so that people /read/ it)  
 
<!-- Code notes (here so that people /read/ it)  
Line 10: Line 9:
 
     at both beginning and end of the call to this template. Since this is only  
 
     at both beginning and end of the call to this template. Since this is only  
 
     needed once, it's more efficient to do it in {{Citation/core}} than here.
 
     needed once, it's more efficient to do it in {{Citation/core}} than here.
  3. "None" is safe to use as a magic word here, as the Wikipedia article [[None]] is
 
    not about a book or chapter.
 
  4. The colon in "[[:" prevents images from being expanded.
 
  5. The leading "x" checks whether #titleparts rejected the argument as not
 
    being a valid page title. For example, if the argument contains "%" it is
 
    not a valid page title, and #titleparts returns it unchanged instead of
 
    upper-casing the "x".
 
 
-->
 
-->
 
{{documentation}}
 
{{documentation}}
 
</noinclude>
 
</noinclude>

Revision as of 03:33, 10 August 2009

{{{2}}}

Template documentation[view] [edit] [history] [purge]

This template is a "subroutine" of {{Citation/core}} used for conditionally making links for the chapter= and title= fields in a citation.

It is invoked as:

{{Citation/make link
| 1 = <value of IncludedWorkURL= or URL= or PMC= parameters>
| 2 = <value of IncludedWorkTitle= or Title= parameters>
}}

It uses the following algorithm:

  1. If the first parameter is empty, it returns the second parameter as plain text.
  2. If the first parameter is a URL, it returns the second parameter wrapped inside an external link to the first.

This "subroutine" is designed for {{Citation/core}} and makes assumptions that may not be valid elsewhere.

Examples:

  • "{{Citation/make link||BBC News front page}}" produces "BBC News front page".
  • "{{Citation/make link|http://news.bbc.co.uk/|BBC News front page}}" produces "BBC News front page".