Phabricator project: #Cite

Extension:Cite

From MediaWiki.org
(Redirected from Extension:Cite/Cite.php)
Jump to: navigation, search
Translate this page; This page contains changes which are not marked for translation.

Other languages:
català • ‎Deutsch • ‎English • ‎español • ‎suomi • ‎français • ‎magyar • ‎italiano • ‎日本語 • ‎polski • ‎português • ‎português do Brasil • ‎中文
This page is about the extension. See also the help on footnotes and the help on citing for how to use it.
Starting with MediaWiki 1.25 the "Special:Cite" extension that used to be documented on this page too is no longer part of the "Cite" extension. When upgrading from MediaWiki 1.24 the following line will have to be removed from your "LocalSettings.php" file:
require_once "$IP/extensions/Cite/SpecialCite.php";
The "Special:Cite" extension is now know as the CiteThisPage extension and may be installed separately.
MediaWiki extensions manual
Crystal Clear action run.png
Cite

Release status: stable

Implementation Tag
Description Allows footnotes for citing sources and helps for correctly citing content in offline media
Author(s) Ævar Arnfjörð Bjarmasontalk
Latest version continuous updates
MediaWiki 1.19+
PHP 5.3+
Database changes No
License GNU General Public License 2.0 or later
Download
Example Wikipedia:Footnotes
Hooks used
BeforePageDisplay

Debug
ParserBeforeTidy
ParserClearState
ParserFirstCallInit
ParserGetVariableValueTs
ParserGetVariableValueVarCache
SkinTemplateBuildNavUrlsNav_urlsAfterPermalink
SkinTemplateToolboxEnd
User

Translate the Cite extension if it is available at translatewiki.net

Check usage and version matrix; code metrics

Issues:

Open tasks · Report a bug

The Cite extension allows a user to create references as footnotes on a page. It adds two parser hooks to MediaWiki, <ref> and <references />; these operate together to add citations to pages.

Download[edit | edit source]

The extension can be retrieved directly from Git [?]:

  • Browse code
  • Some extensions have tags for stable releases.
  • Each branch is associated with a past MediaWiki release. There is also a "master" branch containing the latest alpha version (might require an alpha version of MediaWiki).

Extract the snapshot and place it in the extensions/Cite/ directory of your MediaWiki installation.

If you are familiar with git and have shell access to your server, you can also obtain the extension as follows:

cd extensions/
git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Cite.git

Installation[edit | edit source]

  • If using Vagrant, install with vagrant enable-role cite && vagrant provision
Manual Installation
  • Download and place the file(s) in a directory called Cite in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
wfLoadExtension( 'Cite' );
  • Done! Navigate to "Special:Version" on your wiki to verify that the extension is successfully installed.

Usage[edit | edit source]

The basic concept of the <ref> tag is that it inserts the text enclosed by the ref tags as a footnote in a designated section, which you indicate with the placeholder tag <references />. This format cannot be used interchangeably with the older format — you must pick one or the other.

If you forget to include <references /> in the article, the footnotes will not appear, but a red error message will be displayed at the end of the page.

This page itself uses footnotes, such as the one at the end of this sentence.[1] If you view the source of this page by clicking "Edit this page", you can see a working example of footnotes.

The Sun is pretty big.<ref>E. Miller, The Sun, (New York: Academic Press, 2005), 23-5.</ref>
The Moon, however, is not so big.<ref>R. Smith, "Size of the Moon", Scientific American, 46 (April 1978): 44-6.</ref>

==Notes==
<references />

Multiple uses of the same footnote[edit | edit source]

To give a footnote a unique identifier, use <ref name="name">. You can then refer to the same footnote again by using a ref tag with the same name. The text inside the second tag doesn't matter, because the text already exists in the first reference. You can either copy the whole footnote, or you can use a terminated empty ref tag that looks like this: <ref name="name" />. The quotes are not required (but still correct) if the name contains no embedded spaces. The space before the closing "/" may be omitted.

In the following example, the same source is cited three times.

This is an example of multiple references to the same footnote.<ref name="multiple">Remember that when you refer to the same footnote multiple times, the text from the first reference is used.</ref>

Such references are particularly useful when citing sources, if different statements come from the same source.<ref name="multiple">This text is superfluous, and won't show up anywhere. We may as well just use an empty tag.</ref>

A concise way to make multiple references is to use empty ref tags, which have a slash at the end. Although this may reduce redundant work, please be aware that if a future editor removes the first reference, this will result in the loss of all references using the empty ref tags.<ref name="multiple" />

==Notes==
<references />

The text above gives the following result in the article (see also section below):

This is an example of multiple references to the same footnote.[2]

Such references are particularly useful when citing sources, when different statements come from the same source.[2]

A concise way to make multiple references is to use empty ref tags, which have a slash at the end. Although this may reduce redundant work, please be aware that if a future editor removes the first reference, this will result in the loss of all references using the empty ref tags.[2]

Note Note: name= identifiers require alphabetic characters; solely relying on numerals will generate an error message.

Merging two texts into a single reference[edit | edit source]

A typical wikisource issue is, how to merge into one reference texts split into different pages. This can be done using a <ref name="name"> tag for the first part of the reference, and tagging the following parts into different pages with a tag <ref follow="name">.

Here an example, deriving the text used into previous section:

This is an example of merging multiple texts into the same footnote.<ref name="main">Remember that all the texts will be included into the reference containing the ''name='' attribute.<br /></ref>

<ref follow="main">Simply include the text to be merged into the first <ref name="name"> reference with a tag <ref follow="name"><br />This paragraph is included into a similar tag and it will be merged into the reference in former paragraph. </ref>

Result:

This is an example of merging multiple texts into the same footnote.[3]


When using this syntax into Page: namespace, take care that the ref follow part of the footnote is transcluded too into the same ns0 page, where the first part of footnote is transcluded. Use appropriately section tags to get this result. To also remind users that reference names should not solely be numbers, eg. <ref name="p32"> and <ref follow="p32">.

The <references /> tag[edit | edit source]

Placing <references /> inserts the full text of all pending inline citations defined by <ref>, anywhere on the page. For example, based on the citations above, the code:

<references />

… will yield:

  1. This footnote is used as an example in the "How to use" section.
  2. 2.0 2.1 2.2 Remember that when you refer to the same footnote multiple times, the text from the first reference is used.
  3. Remember that all the texts will be included into the reference containing the name= attribute.
    Simply include the text to be merged into the first <ref name="name"> reference with a tag <ref follow="name">
    This paragraph is included into a similar tag and it will be merged into the reference in former paragraph.

In some language editions of Wikipedia, long reference lists may be placed using the template {{Reflist}}, which incorporates <references />. It provides an optional parameter to display the reference list in multiple columns. For instance, the English, Hindi and Interlingua Wikipedias use the css selector references-small to make the reference text smaller than normal text.

In the case of multiple references-tags on a page, each gives the references defined in the ref-tags from the previous references-tag. In the case that these references-tags are produced by templates, each gives the references defined in the ref-tags before the first references-tag, and there is an error message that there is a ref-tag but not a references-tag.

Grouped references[edit | edit source]

This may be disabled by $wgAllowCiteGroups = false; if desired.

The following example generates separate reference lists for citations and miscellaneous footnotes:

According to scientists, the Sun is pretty big <ref>E. Miller, The Sun, (New York: Academic Press, 2005), 23-5.</ref>.
In fact, it is very big <ref group="footnotes">Take their word for it. Don't look directly at the sun!</ref>.

==Notes==
<references group="footnotes" />
==References==
<references />

The anonymous group works as before, while the named group reference will show up as [footnotes 1], and the references will look like this:

  1. Test of the group argument


Separating references from text[edit | edit source]

In-text references make it easy to copy the text to another page; on the other hand, they make it hard to read. References containing a lot of data, quotes or elaborate citation templates can make up a significantly larger fraction of the source than the text that will actually be visible. To avoid this, recent versions of the extension allow moving some or all of the references into the <references /> section, to the place where they will actually appear to the reader. Thus,

According to scientists, the Sun is pretty big.<ref name="miller" />
The Moon, however, is not so big.<ref name="smith" />

==Notes==
<references>
<ref name="miller">E. Miller, The Sun, (New York: Academic Press, 2005), 23-5.</ref>
<ref name="smith">R. Smith, "Size of the Moon", Scientific American, 46 (April 1978): 44-6.</ref>
</references>

will have the same output as the first example above, although the numbering and order of the references will not in general be the same.

Substitution and embedded parser functions[edit | edit source]

Since <ref> is parsed before substitution (i.e., subst:) or parser functions, e.g., {{#if:}}, those will not work inside of citation references. Instead, you have to use the magic word {{#tag:}}.

This non-working example
<ref name="Resource">Content that can include subst: and parser functions like {{#if:}} and {{PAGENAME}}</ref>
could be made to work using
{{#tag:ref|Content that can include subst: and parser functions like {{#if:}} and {{PAGENAME}}|name="resource"}}

At this time, there is no way to create an "empty" tag, i.e., <ref name="resource" />, without triggering Cite's complaint about empty content. The workaround is to simply redefine the full tag each time you use this feature. Since such usage is likely limited to templates or other semi-automated process, this may not be too onerous. Bookmarklet example for Cite web:

javascript:insertTags('{{#tag:ref|{{cite web|url= |title= |author= |date= |accessdate={{subst:#time:Y-m-d|now}}}}}}')

Customization[edit | edit source]

The format of the output of <ref> and <references> is almost completely customizable through MediaWiki messages, that can be modified, for example, through the MediaWiki namespace depending on the configuration of the wiki.

For a list of messages that control the output of <ref> and <references> and the values, if any, that are passed to them ($1, $2, $3 ...), see here for an up-to-date listing of their default contents.

  • cite_reference_link_key_with_num
    1. key
    2. num
  • cite_reference_link_prefix
  • cite_reference_link_suffix
  • cite_references_link_prefix
  • cite_references_link_suffix
  • cite_reference_link
    1. ref ID
    2. backlink ID
    3. count to display
  • cite_references_link_one
    • Used to format the source list that <references /> outputs, it configures 3 things: the backlink ID, the ref ID, and text of note.
    1. backlink ID - used for creating the number order of the source list.
    2. ref ID - used to link back to the actual reference in the text, this is where you can configure the <bold>^</bold> symbol
    3. text of note - text used above describing the source info
  • cite_references_link_many
    1. backlink ID
    2. list of links
    3. text of note
  • cite_references_link_many_format
    1. ref ID
    2. numeric value to use as a backlink
    3. custom value (as defined in cite_references_link_many_format_backlink_labels to use as a backlink)
  • cite_references_link_many_format_backlink_labels
  • cite_references_link_many_sep
  • cite_references_link_many_and
  • cite_references_prefix
  • cite_references_suffix

Set references to use ^ and letters[edit | edit source]

Modify the following system messages. All of these pages can be found on Special:Allmessages:

On the page MediaWiki:Cite references link one change:

<li id="$1">[[#$2|↑]] $3</li>
to
<li id="$1">[[#$2|^]] $3</li>

On the page MediaWiki:Cite references link many change:

<li id="$1">↑ $2 $3</li>
to
<li id="$1">^ $2 $3</li>

On the page MediaWiki:Cite references link many format change:

[[#$1|<sup>$2</sup>]]
to:
[[#$1|<sup>$3</sup>]]

Explanation:

The ^ replaces the up arrows.
Putting $3 between the <sup> </sup> tags changes the links from 1.0, 1.1, 1.2 to a, b, c etc...

Searching for these 3 pages for the first time will result in no matches. Simply click "Create this page" to edit the code. The changes will not show up until a page with references is rebuilt.

Set reference and reference number highlighting[edit | edit source]

Starting with MW 1.26 the selectors for highlighting are now incorporated into Cite/modules/ext.cite.css. Thus the CSS code below no longer needs to be added manually.

Add the following code to the MediaWiki:Common.css page.

/* make the Cite extension list of references look smaller and highlight clicked reference in blue */
ol.references { font-size: 90%; }
ol.references li:target { background-color: #ddeeff; }
sup.reference:target { background-color: #ddeeff; }

See also[edit | edit source]