Fix self link issues about titles in different or mixed variants
Change-Id: I64a1b25a45cb8df9fea6fbbfd92cac2e6d53ff98
This commit is contained in:
parent
6d2ed516be
commit
bca8b8ad7d
2 changed files with 21 additions and 7 deletions
|
|
@ -1814,12 +1814,6 @@ class Parser {
|
||||||
$prefix = '';
|
$prefix = '';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $this->getConverterLanguage()->hasVariants() ) {
|
|
||||||
$selflink = $this->getConverterLanguage()->autoConvertToAllVariants(
|
|
||||||
$this->mTitle->getPrefixedText() );
|
|
||||||
} else {
|
|
||||||
$selflink = array( $this->mTitle->getPrefixedText() );
|
|
||||||
}
|
|
||||||
$useSubpages = $this->areSubpagesAllowed();
|
$useSubpages = $this->areSubpagesAllowed();
|
||||||
wfProfileOut( __METHOD__.'-setup' );
|
wfProfileOut( __METHOD__.'-setup' );
|
||||||
|
|
||||||
|
|
@ -2055,7 +2049,11 @@ class Parser {
|
||||||
|
|
||||||
# Self-link checking
|
# Self-link checking
|
||||||
if ( $nt->getFragment() === '' && $ns != NS_SPECIAL ) {
|
if ( $nt->getFragment() === '' && $ns != NS_SPECIAL ) {
|
||||||
if ( in_array( $nt->getPrefixedText(), $selflink, true ) ) {
|
if ( $nt->equals( $this->mTitle ) || ( !$nt->isKnown() && in_array(
|
||||||
|
$this->mTitle->getPrefixedText(),
|
||||||
|
$this->getConverterLanguage()->autoConvertToAllVariants( $nt->getPrefixedText() ),
|
||||||
|
true
|
||||||
|
) ) ) {
|
||||||
$s .= $prefix . Linker::makeSelfLinkObj( $nt, $text, '', $trail );
|
$s .= $prefix . Linker::makeSelfLinkObj( $nt, $text, '', $trail );
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10851,6 +10851,22 @@ Both [[Dunav]] and [[Дунав]] are names for this river.
|
||||||
</p>
|
</p>
|
||||||
!!end
|
!!end
|
||||||
|
|
||||||
|
!! article
|
||||||
|
Дуна
|
||||||
|
!! text
|
||||||
|
content
|
||||||
|
!! endarticle
|
||||||
|
|
||||||
|
!! test
|
||||||
|
Link to another existing title shouldn't be parsed as self-link even if it's a variant of this title
|
||||||
|
!! options
|
||||||
|
title=[[Duna]] language=sr
|
||||||
|
!! input
|
||||||
|
[[Дуна]] is not a self-link while [[Duna]] and [[Dуна]] are still self-links.
|
||||||
|
!! result
|
||||||
|
<p><a href="/wiki/%D0%94%D1%83%D0%BD%D0%B0" title="Дуна">Дуна</a> is not a self-link while <strong class="selflink">Duna</strong> and <strong class="selflink">Dуна</strong> are still self-links.
|
||||||
|
</p>
|
||||||
|
!! end
|
||||||
|
|
||||||
!! test
|
!! test
|
||||||
Link to pages in language variants
|
Link to pages in language variants
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue