*/
public static function linkKnown(
$target, $html = null, $customAttribs = [],
- $query = [], $options = [ 'known', 'noclasses' ]
+ $query = [], $options = [ 'known' ]
) {
return self::link( $target, $html, $customAttribs, $query, $options );
}
if ( !$title ) {
$title = $wgTitle;
}
- $attribs['rel'] = Parser::getExternalLinkRel( $url, $title );
+ $newRel = Parser::getExternalLinkRel( $url, $title );
+ if ( !isset( $attribs['rel'] ) || $attribs['rel'] === '' ) {
+ $attribs['rel'] = $newRel;
+ } elseif ( $newRel !== '' ) {
+ // Merge the rel attributes.
+ $newRels = explode( ' ', $newRel );
+ $oldRels = explode( ' ', $attribs['rel'] );
+ $combined = array_unique( array_merge( $newRels, $oldRels ) );
+ $attribs['rel'] = implode( ' ', $combined );
+ }
$link = '';
$success = Hooks::run( 'LinkerMakeExternalLink',
[ &$url, &$text, &$link, &$attribs, $linktype ] );
* work if $wgShowRollbackEditCount is disabled, so this can only function
* as an additional check.
*
- * If the option noBrackets is set the rollback link wont be enclosed in []
+ * If the option noBrackets is set the rollback link wont be enclosed in "[]".
+ *
+ * See the "mediawiki.page.rollback" module for the client-side handling of this link.
*
* @since 1.16.3. $context added in 1.20. $options added in 1.21
*
$inner = $context->msg( 'brackets' )->rawParams( $inner )->escaped();
}
+ $context->getOutput()->addModules( 'mediawiki.page.rollback' );
+
return '<span class="mw-rollback-link">' . $inner . '</span>';
}
$query = [
'action' => 'rollback',
'from' => $rev->getUserText(),
- 'token' => $context->getUser()->getEditToken( [
- $title->getPrefixedText(),
- $rev->getUserText()
- ] ),
];
+ $attrs = [
+ 'data-mw' => 'interface',
+ 'title' => $context->msg( 'tooltip-rollback' )->text(),
+ ];
+ $options = [ 'known', 'noclasses' ];
+
if ( $context->getRequest()->getBool( 'bot' ) ) {
$query['bot'] = '1';
$query['hidediff'] = '1'; // bug 15999
}
if ( $editCount > $wgShowRollbackEditCount ) {
- $editCount_output = $context->msg( 'rollbacklinkcount-morethan' )
+ $html = $context->msg( 'rollbacklinkcount-morethan' )
->numParams( $wgShowRollbackEditCount )->parse();
} else {
- $editCount_output = $context->msg( 'rollbacklinkcount' )->numParams( $editCount )->parse();
+ $html = $context->msg( 'rollbacklinkcount' )->numParams( $editCount )->parse();
}
- return self::link(
- $title,
- $editCount_output,
- [ 'title' => $context->msg( 'tooltip-rollback' )->text() ],
- $query,
- [ 'known', 'noclasses' ]
- );
+ return self::link( $title, $html, $attrs, $query, $options );
} else {
- return self::link(
- $title,
- $context->msg( 'rollbacklink' )->escaped(),
- [ 'title' => $context->msg( 'tooltip-rollback' )->text() ],
- $query,
- [ 'known', 'noclasses' ]
- );
+ $html = $context->msg( 'rollbacklink' )->escaped();
+ return self::link( $title, $html, $attrs, $query, $options );
}
}
!! end
+!! test
+<nowiki> inside of #tag:pre
+!! wikitext
+{{#tag:pre|Foo <nowiki>→bar</nowiki>}}
+!! html
+<pre>Foo →bar</pre>
+
+!! end
+
!! test
<nowiki> and <pre> preference (first one wins)
!! wikitext
!! config
wgExternalLinkTarget='foobar'
!! html/php
-<p><a href="http://example.com/" target="foobar" rel="nofollow"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
+<p><a href="http://example.com/" target="foobar" rel="nofollow noreferrer noopener"><img alt="Foobar.jpg" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
</p>
!! end
!! config
wgExternalLinkTarget='foobar'
!! html/php
-<p><a href="http://example.com/" title="Title" target="foobar" rel="nofollow"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
+<p><a href="http://example.com/" title="Title" target="foobar" rel="nofollow noreferrer noopener"><img alt="Title" src="http://example.com/images/3/3a/Foobar.jpg" width="1941" height="220" /></a>
</p>
!! end
!! wikitext
[[Image:Barfoo.jpg]]
!! html/php
- <p><a href="/wiki/File:Barfoo.jpg" title="File:Barfoo.jpg">File:Barfoo.jpg</a>
+ <p><a href="/wiki/File:Barfoo.jpg" class="mw-redirect" title="File:Barfoo.jpg">File:Barfoo.jpg</a>
</p>
!! end