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

From blackwiki
Jump to navigation Jump to search
imported>Fullstop
(+fullurl form as requested for demonstration purposes)
imported>Fullstop
(return to non-demo #default, remove <span>s, and update code notes)
Line 1: Line 1:
 
{{#switch:{{#titleparts:{{{1|}}}|2}}
 
{{#switch:{{#titleparts:{{{1|}}}|2}}
 
  |Http:/|Https:/|Ftp:/ = [{{{1}}} {{{2|}}}]
 
  |Http:/|Https:/|Ftp:/ = [{{{1}}} {{{2|}}}]
  |<!--if empty-->|None = <span>{{{2|}}}</span>
+
  |<!--if empty-->|None = {{{2|}}}
  |#default            = <span class="plainlinks plainlinks2"><!--
+
  |#default            = [[:{{{1}}}|{{{2|{{{1}}}}}}]]
                          -->[{{fullurl:{{{1}}}}} {{{2|{{{1}}}}}}]</span>
 
 
}}<noinclude>
 
}}<noinclude>
<!-- Code notes:  
+
<!-- Code notes (here so that people /read/ it)
 +
  Switch cases:
 
   1. The switch cases on the first line are for regular url= or chapter-url=  
 
   1. The switch cases on the first line are for regular url= or chapter-url=  
 
   2. The switch cases on the second line are for empty first param, or for "none" in first param.
 
   2. The switch cases on the second line are for empty first param, or for "none" in first param.
 
     Editors can use "none" to stop chapter-url= from defaulting to the value of url=
 
     Editors can use "none" to stop chapter-url= from defaulting to the value of url=
    The benign <span> is to to stop italicized "'foo' & 'bar'" from becoming "'''foo' & 'bar'''"
 
 
   3. The #default constructs an internal link since that is what the editor  
 
   3. The #default constructs an internal link since that is what the editor  
     seems to have passed in url=.
+
     seems to have passed in url=
    The fullurl form is functionally equivalent to [[:{{{1}}}|{{{2|{{{1}}}}}}]],
+
  Other notes:
     but without clogging up the target's what-links-here.
+
  1. Parameter #2 is always non-empty when called from citation/core.
 +
  2. Its up to citation/core to stop italicized "'foo' & 'bar'" from becoming
 +
    "'''foo' & 'bar'''". Citation/core does this by having a <nowiki></nowiki>
 +
     at both beginning and end of the call to this template. Since this is only
 +
    needed once, its more efficient to do it in citation/core than here.
 +
  3. "None" is safe to use as a magic word. The wp article is not the title of
 +
    a book, and will thus not be a url=
 
-->
 
-->
 
{{documentation}}
 
{{documentation}}
 
</noinclude>
 
</noinclude>

Revision as of 22:47, 28 July 2009

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".