I'm a dev for PracticalPlants.org, a semantic wiki of plant use information. We've had long running mysterious problems with Cite which have been difficult to pin down, but since upgrading to MW 1.20.3 and Cite 1.20, the problem has become much worse.
All our references on plant articles are at least 2 templates deep - the first template is a template used with semantic forms, the second is the Ref template we use.
The result is that Cite outputs the following Cite error for every reference:
Cite error: <ref> tag with name "PFAFimport-1" defined in <references> is not used in prior text.
The ref tag name is most certainly used in the prior text in all cases. The <references> tag is placed after all <ref> (actually {{#tag:ref}}) calls.
If I place a <ref name="PFAFimport-1"/> or use our ref template {{Ref | PFAFimport-1}} directly in the wikitext after the semantic forms template then Cite lists it, so it seems like it's something to do with it being in a second level template. Again, the ref tag with that name is certainly being output, and indeed it's rendered inline as a reference, it just fails to list it in the <references> section.
Has anyone experienced anything similar? Anyone have any ideas?
I should add that <references> is also within a template, and called using {{#tag:references}} with a series of calls to another template which calls the ref tag via the #tag parser function {{#tag:ref}}.
Incase anyone is inclined to look over the templates...
Ref template (outputs a reference in article text) http://practicalplants.org/wiki/Template:Ref?action=edit
References template (used to output the reference list) http://practicalplants.org/wiki/Template:References?action=edit
Reference template (an individual reference in the list) http://practicalplants.org/wiki/Template:Reference?action=edit
Having delved into Cite_body.php, I've come accross this (Cite_body.php:569)
# The following assumes that the parsed <ref>s sent within # the <references> block were the most recent calls to # <ref>. This assumption is true for all known use cases, # but not strictly enforced by the parser. It is possible # that some unusual combination of #tag, <references> and # conditional parser functions could be created that would # lead to malformed references here.
If I comment out line 582:
$this->rollbackRef( $type, $ref_key, $ref_group, $ref_index );
Then my references reappear, albeit with no counts (and therefore the links from article to references and visa versa don't work)
So, it would appear that the parser is parsing the <ref> calls within the <references> block before it parses the <ref>'s in the templates above.
Leaving that line uncommented, I've tried reformatting templates in various ways to attempt to stumble accross something which the parser can parse in the order indended, but I haven't found any combination of template changes which helps.
I'll continue to dig in Cite and try and come up with a bugfix, but as unfamiliar with the internals of Cite as I am, if anyone has any tips they would be greatly appreciated.
Thanks Andru
On 2013-03-19 09:50:27 +0000, Andru Vallance said:
I'm a dev for PracticalPlants.org, a semantic wiki of plant use information. We've had long running mysterious problems with Cite which have been difficult to pin down, but since upgrading to MW 1.20.3 and Cite 1.20, the problem has become much worse.
All our references on plant articles are at least 2 templates deep - the first template is a template used with semantic forms, the second is the Ref template we use.
The result is that Cite outputs the following Cite error for every reference:
Cite error: <ref> tag with name "PFAFimport-1" defined in <references> is not used in prior text.
The ref tag name is most certainly used in the prior text in all cases. The <references> tag is placed after all <ref> (actually {{#tag:ref}}) calls.
If I place a <ref name="PFAFimport-1"/> or use our ref template {{Ref | PFAFimport-1}} directly in the wikitext after the semantic forms template then Cite lists it, so it seems like it's something to do with it being in a second level template. Again, the ref tag with that name is certainly being output, and indeed it's rendered inline as a reference, it just fails to list it in the <references> section.
Has anyone experienced anything similar? Anyone have any ideas? _______________________________________________ MediaWiki-l mailing list MediaWiki-l@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-l
mediawiki-l@lists.wikimedia.org