Extension talk:Cite

About this board

Is there a technical reason for why the tag name cannot be a simple integer?

Elominius (talkcontribs)

For example, <ref name=2022>test</ref> results in "Cite error: The <ref> tag name cannot be a simple integer."

I don't mind this restriction, but I am just asking out of curiosity.

Ancheta Wis (talkcontribs)

The explanation looks something like "the object should be symbolic in nature, and not a number (in C programming, a symbol is like a string; a symbol does not begin with a number -- that would fool the parser into thinking the object being parsed is some kind of number)".

Jdforrester (WMF) (talkcontribs)

I believe this restriction comes from the HTML specification. If you want to use a number-like value as the name, you should quote it (which ideally you should do anyway), i.e. <ref name="2022">test</ref> or similar.

Ancheta Wis (talkcontribs)

<ref name= a12345 >test</ref> works perfectly well.

Jdforrester (WMF) (talkcontribs)

It "works" because people are lazy and write it without quotes, but, as I said, properly you should quote it.

Thiemo Kreuz (WMDE) (talkcontribs)

It's not about the quotes. The original reason is that <ref> tags without a name=… are automatically named – with numbers. While there would be a way to allow both (e.g. by prepending two different prefixes) the original authors of this extension found it easier and less confusing for everybody to reserve numbers for internal use.

I hope this helps.

Reply to "Is there a technical reason for why the tag name cannot be a simple integer?"
Bedivere (talkcontribs)

Hello there. I would like to know if there is a way to hide references to unregistered users. I have found some copy the references but refuse to cite my website.

I've thought maybe it's a good idea to restrict access to the Reflist template, but I'm not sure how to do that. I'd be glad if somebody could help me out.

Want (talkcontribs)
Bedivere (talkcontribs)

Hi there. I have tried doing so, but the references still show up automatically. Haven't found a way to prevent Cite from adding them.

Want (talkcontribs)

You add example code, please. I use next code for it:

|Wikicode for registered users
|Wikicode for anonymous
Bedivere (talkcontribs)

Yeah, I did the same, but using ifeq (which provides similar results). However, the references list still appears to unregistered users because it is added automatically, I presume by the extension itself.

Bedivere (talkcontribs)

I have reviewed the extension code and found no easy way (parameters) to prevent the references from showing up despite there being no <references /> tag. There is a workaround using CSS, but the references are generated anyway and may be found and extracted.

Want (talkcontribs)

Solution may be template. For it I must see example of code.

Reply to "Hiding references"

Placeholder citation numbers are all ampersands

Summary by Thiemo Kreuz (WMDE)

Example page appears fixed.

Thadius856 (talkcontribs)

Howdy. We installed MediaWiki 1.37.1 a few weeks back. Today we enabled this extension and noticed that all of the reference numbers are given as solely an ampersand (&). The same character for every reference number.

The output of both <references /> and {{reflist}} behave normally. The anchors seems to be functioning, as is the text-decoration that fire after clicking one of the up arrows.

Can't find anything on Google remotely related and I went through every page I could find here, plus 30 minutes looking through Phabricator without finding anything similar.

Here's a test page on my sandbox at that wiki with nothing else on it.

Nomination for deletion of Template:Footnote group

Summary by Thiemo Kreuz (WMDE)

Misplaced on mediawiki.org.

Manabimasu (talkcontribs)
Dinoguy1000 (talkcontribs)

What is the point to reposting this notice here? These templates do not appear to exist on MediaWiki.org, and even if they did, their deletion on Wikipedia would not affect their use here.

Summary by Thiemo Kreuz (WMDE)

Duplicate question, see Topic:W636cdc70qyw5a8f.

Juandev (talkcontribs)

Does site format references regarding any standard? Is there a way to change standards of references how they display?

Dinoguy1000 (talkcontribs)

Cite doesn't format references itself, and it doesn't care about how they're formatted, so you can do whatever you like.

Juandev (talkcontribs)

Does the output follows any citation standard? Is there a possibility to switch between citation standards?

Thiemo Kreuz (WMDE) (talkcontribs)
Juandev (talkcontribs)

Well, on the side of Wikipedia you can modify how the references look in References paragraph via template. But can you modife it in the text? E.g. insted of having anchors lik [1], use somethig like (Peters, 2015)?

Thiemo Kreuz (WMDE) (talkcontribs)
Reply to "Citation standard"
Ktfeenan (talkcontribs)

I'm trying to get this extension to work but it appears there are 1000 dependencies in terms of templates that also need to be installed in order to get this to work and zero documentation on how to exactly do that.

I'm getting a pile of #invoke:citation/CS1|citation|CitationClass=web and other errors

Have been googling for a month now on how / why this is occuring with no results.

Why are all these components missing from the extension and where do I find documentation on how we can enable these things to get the extension configured correctly?

Dinoguy1000 (talkcontribs)

It sounds like you copied a citation template from Wikipedia or elsewhere. This extension only provides the <ref></ref>/<references/> functionality.

To be able to use the templates properly, you'll have to export them from the wiki you originally copied them from: go to Special:Export on that wiki, and add the name of the template(s) (including the Template: namespace) in the "Add pages manually" inputbox, one per line, then check the "Include templates" checkbox and click "Export".

This will give you an XML file that you can upload on your wiki via Special:Import (though you'll need to be an administrator to do so): click "Browse" and select the XML file you got from the export, add a short name for the source wiki in the "Interwiki prefix" textbox (e.g. "wikipedia" if you exported from Wikipedia; if you have an interwiki prefix set up for that wiki, just use it), optionally check "Assign edits to local users where the named user exists locally", add a comment, and click "Upload file". For more information on exporting and importing, see Help:Export and Help:Import .

Be aware that if you're importing Wikipedia's citation templates, you'll get a fairly large number of templates and modules, at least some of which will only be used in the citation templates' documentation. You also won't get any CSS or Javascript which might be required and which is saved on the wiki's global CSS/JS files (though at least for Wikipedia, I think all of that has been migrated to TemplateStyles for the citation templates).

Dinoguy1000 (talkcontribs)

(It is possible to copy everything manually - I've done so myself, in the days before I realized I could do it much more quickly and easily via the export/import method - but it's a royal pain and you'll have to comply with the terms of the source wiki's content license yourself.)

Ktfeenan (talkcontribs)

Which is all well and good - I've gone through all those pages already in terms of what is 'supposed' to work however the the interwiki prefix is confusing as I see in one place it says to export from Wikipedia and then use 'en' (I have no idea if I'm supposed to include the quotes or not) as the interwiki and then other places it saying to use the full uri (subing $1 for the last bit). And in the meantime regardless when I try to do the import I keep getting a gateway timeout even after I've bumped the memory and timeout limits to something well beyond what should be required for a 960Kb file.

We managed to finally get cite to work without any imports by ensuring the following were turned on in the LocalSettings.php.

wfLoadExtension( 'Cite' );

wfLoadExtension( 'ParserFunctions' );

wfLoadExtension( 'Scribunto' );

$wgScribuntoEngineConf['luastandalone']['memoryLimit'] = 209715200;

$wgMaxShellMemory = 204800;

wfLoadExtension( 'TemplateData' );

wfLoadExtension( 'TemplateStyles' );

I still need a couple of other templates but even with debuging turned on I'm getting squat in the way of information that is telling me why I'm getting the gateway timeout. I have no idea if it is a problem with the Interwiki value I'm using or if there are other extensions that need to be enabled before the import will work.

This is the essence of the problem I have with much of the documentation for mediawiki. There was nothing indicating that I needed those other 4 extensions and the scribunto configuration variables in order to get it to work short of random searching for other people running into the same problem before one of the other people working with me on this happened to come by that information as a potential solution.

So, while I've sort of solved one problem, I'm still unable to figure out why Special:Import isn't working in that I've tried all the recommendations for modifing the php timeouts and memory limits and I'm still getting a gateway timeout.

Dinoguy1000 (talkcontribs)

the interwiki prefix is confusing as I see in one place it says to export from Wikipedia and then use 'en' (I have no idea if I'm supposed to include the quotes or not) as the interwiki

The interwiki prefix is, ultimately, just a label to identify the source wiki. If you already have an actual interwiki prefix set up on your wiki for the source wiki, use that; otherwise, just pick something single-word and reasonably descriptive. If you're following guidance that has quotes around a suggested name, ignore the quotes (I don't actually know what would happen if you tried to include them, but considering that, if you're importing, there's no way to change it afterwards, I wouldn't really recommend testing on a live wiki).

other places it saying to use the full uri (subing $1 for the last bit)

This is if you're actually adding an interwiki prefix to use in links. To do this you would need Extension:Interwiki installed on your wiki, and you'd go to Special:Interwiki on your wiki to actually add/manage prefixes. But you don't actually need to add a prefix like this to use the prefix during an import: if the prefix is actually there, imported usernames will link to the source wiki; otherwise they'll just be unlinked (AFAIK that's the only difference here).

And in the meantime regardless when I try to do the import I keep getting a gateway timeout even after I've bumped the memory and timeout limits to something well beyond what should be required for a 960Kb file.

Unfortunately imports do tend to time out when you're attempting to import larger files. I've had to resort to actually opening the XML file and deleting revisions that have already been imported on my wiki to get the size small enough to not time out (though I only recommend doing this if you're comfortable editing XML in general, since XML is not fault-tolerant, and I have no idea how careful the import process is in checking for correctness before adding stuff to the database).

There was nothing indicating that I needed those other 4 extensions and the scribunto configuration variables in order to get it to work

That's because, for the Cite extension itself, you don't need any of that other stuff. Open a random page on your wiki, without any references, and type or copy-paste the following code exactly, then preview:

This is some text.<ref>This is a reference.</ref> <references />

It should work just fine. The reason you've needed to enable all the other stuff and copy so much from another wiki (I'm guessing Wikipedia, though you've never outright said which wiki) is because you originally copied one or more of Wikipedia's citation templates, which bring in a huge number of dependencies, as you've unfortunately found out first-hand. (All that being said, I will absolutely agree that the documentation here isn't as good as it could be. I've made improvements here myself, and all I can really suggest is that you also do so, if you have the time and interest.)

Ktfeenan (talkcontribs)

The system here doesn't let me put in the URLs for the two pages I'm trying to get to match otherwise this would be much easier to demonstrate what I'm trying to do. I went to do that originally but it flagged the post as spam so I had to remove all links and therefore be a bit vague.

Essentially one of our folks (vallibrarian) wrote a wikipedia article (Libraries_in_Virtual_Worlds) awhile back including reference to several sources. We are trying to set-up a new library wiki that will focus primarily on Virtual Worlds - our test system is over at (dev urockcliffe net) and we are trying to get the two pages to match including all the associated extensions we need as our test case before we start creating new articles.

I copied the page over and we've been having nothing but problems trying to get these extensions to work ever since. I had hoped all I needed to do was uncomment wfLoadExtension( 'Cite' ); and everything would just work the same way it does on Wikipedia but apparently not.

Certainly will add to the base article here if that is allowed once I have this figured out. Thank you very much for the help.

Dinoguy1000 (talkcontribs)

Aah, if you're explicitly trying to copy Wikipedia, that's a whole different beast. If you aren't already aware of it, the page to look at is w:Special:Version, which lists all extensions that are installed and enabled on Wikipedia, though you should also keep in mind that if you're only copying content, you won't need many of them. But if you copy something that doesn't work correctly, and you're sure you've got all the templates and modules it needs, that's a good starting point for figuring out what else you might need to install.

Reply to "Extremely Confused"

What is the purpose of <div class="references-small"></div>?

2 (talkcontribs)

Just out of curiosity, did <div class="references-small"></div> once have a purpose?

I could not find it documented anywhere.

Dinoguy1000 (talkcontribs)

Once upon a time it was a class used to make references smaller (as you might've guessed from the name). It was never a feature of Ext:Cite; rather, it was a site-specific class. I don't know about its history here on MediaWiki.org, but on English Wikipedia, the class was removed in 2010 (see here), and I'd imagine it hasn't worked here for a similar period of time. Basically, you can remove this class when you see it.

Reply to "What is the purpose of <div class="references-small"></div>?"

Remove numbering from id/href when reference name is defined

Jiou7 (talkcontribs)

I would like my references/notes to have permalinks, i.e. links which do not change when new references are added. So I was wondering whether there is a possibility to remove the number in id and href when references have name attributes.

Behavior I expect:

- <ref>...</ref> gives href="#cite-note-1" (which is the current behavior)

- <ref name="foo">...</ref> gives href="#cite-note-foo" (instead of href="#cite-note-foo-1" with the current behavior)

This numbering is hardcoded in ReferencesFormatter.php and FootnoteMarkFormatter.php using $val['key'] and $ref['key'] and I do not see any hook or system message able to change that.

Is there a clean way to do this, i.e. without changing Mediawiki core code?

Ancheta Wis (talkcontribs)

The footnote numbering is in order of appearance of the article. You can define a single reference in wikitext thus:

<ref name= foo >[https:theURLhere Your foo content here]</ref> at a single ref occurrence anywhere in the article. Your foo content obeys the rules of wikitext, such as bold, italic, indent, bullet etc. All the other occurrences of that ref content foo are of the form

<ref name= foo /> and the footnotes renumber automatically.

You can then position other copies of ref foo with the wikitext <ref name= foo /> where ever you need in the article. (I use NavPops to check the ref foo content but I have learned that the numbers themselves do not need to be maintained.) Each occurrence of that single foo is distinguished with alphabetical labels. But its footnote number is under program control. Only the name foo is under your control.

I have learned that name= foo works just as well as name="foo" and that camelCaseServesToDistinguish each ref foo namespace.

Thiemo Kreuz (WMDE) (talkcontribs)

What is the purpose of this permalink? What do you want to use it for?

One suggestion I have is to do something like this: <ref><span id="custom_anchor">…</span></ref>. The Wikipedias use templates for this, i.e. Template:Anchor.

Jiou7 (talkcontribs)

Thank you for your answers

@Ancheta Wis I want to keep the seconday numbering you mention when a reference name is used multiple times, but the first numbering seems useless as a given name cannot be used for different references but only to refer to the same reference multiple times. So to be more precise, let us imagine we have the successive ref tags:

- First <ref>...</ref> => gives id ="cite-ref-1"; href="#cite-note-1" . Ok for me

- Then <ref name="foo">...</ref> => gives id="cite-ref-foo_2-0"; href="#cite-note-foo-2" (I would like to have id="cite-ref-foo-0"; href="#cite-note-foo" instead)

- Then <ref name="foo" /> => gives id="cite-ref-foo_2-1"; href="#cite-note-foo-2" (I would like to have id="cite-ref-foo-1"; href="#cite-note-foo" instead)

@Thiemo Kreuz (WMDE) My notes will be used to store additional information which are not just references so I want readers and contributors to be able to share a link to a specific note to share its valuable content.

I want this "permalink" to be created automatically for each named reference. I also want an anchor in the text (where the reference/note will be cited) so I need the second numberig mentionned above. (which is not so doable with templates) The Cite extension already does a lot of the work, so the solution consisting in creating an anchor is not ideal for me.

In fact, I do not understand why the numbering is kept in named references as you cannot use the same name for a different reference so it will necessary be uniue. A secondary numbering is used in the case of multiplle uses of a given reference as mentioned above and it seems sufficient.

Thiemo Kreuz (WMDE) (talkcontribs)

The way the Cite extension works (most notably: the behavior of each element heavily depends on it's position on the page) is quite a beast that's hard to tame. These additional sequence numbers help. I don't know if they are strictly necessary in all situations. Maybe they aren't. But even if, this is impossible to change 15 years and millions of pages later. Sorry. My suggestion is to use a template, e.g. <ref>{{refid|foo|Content of the reference here…}}</ref>.

Jiou7 (talkcontribs)

Thank you for your suggestion. I understand it is impossible to change the default behavior of the Cite extension. But wouldn't it be possible to create hooks or system message to make it parameterizable? For instance, you can alter a reference link with cite_reference_link_key_with_num but unfortunately not enough for my case.

Thiemo Kreuz (WMDE) (talkcontribs)

I had a closer look. Unfortunately, what you want to achieve is currently only possibly by patching the code:

  • In FootnoteMarkFormatter.php change the line with the code snippet $subkey = to $subkey = '';
  • In ReferencesFormatter.php change the line with the code snippet $key . '-' . ( $val['key'] ?? '' ) to $this->anchorFormatter->getReferencesKey( $key ),
Jiou7 (talkcontribs)

Indeed, I modified the core code of Mediawiki but I was looking for a solution which would not imply I have to redo the same modification at each upgrade.

Thank you for your time!

Ancheta Wis (talkcontribs)

My experience is with Wikipedia.en; in this wikipedia, I can define a more slowly varying ref with

<ref name= foo25 group= Bah >The noted [https: Your fooBahContent] </ref>

where each note has a distinguishing name foo1, foo2, .. foo25 etc.

which renders these slowly varying ref foo as [Bah 1], [Bah 2], etc in the body of the article in their own ref list.

Copies of the annotation get referenced as before: <ref name= foo25 group= Bah /> etc. You can intermix [Bah 1] and other refs [1]

But I also have to define a destination at the bottom

{{reflist| name = "Bah"}}

to display the notes at the bottom


  1. The noted Your fooBahContent
  2. More note Their fooBahContent




I don't use visual editor, but I guess I'm learning a little usage here on this mediaWiki talk page.

  1. Your fooBah here

For example, it was not obvious to me that I did not need a reflist template location here. On Wikipedia you have to explicitly position the Bahs to see them.

  1. Ordinary foo
Jiou7 (talkcontribs)

I am not sure I understand how it can solve my problem of primary numbering that I want get rid of. Indeed, the primary numbering is still present in the href and id of notes in your example. Am I missing something?

This post was hidden by Ancheta Wis (history)
Ancheta Wis (talkcontribs)

The visual editor is getting in the way, so I deleted my reply, which had an example. Sorry

Reply to "Remove numbering from id/href when reference name is defined"

Include reference text as text

C holtermann (talkcontribs)

I'm looking for a way to include the text of a reference in the text of the page. I'd like to have something like:

This is a text from [1].

These are some of the books referenced on this page:

  • Some author, Some book [<- This is what I'd like to achieve, identical to what is shown in References]


[1] Some author, Some book

Is there a possibility to achieve that?

Thiemo Kreuz (WMDE) (talkcontribs)

Not with this extension, sorry. You can link to the same reference twice, but it can't be displayed in two different places.

Reply to "Include reference text as text"