Jump to content

Extension:LinkTarget

From mediawiki.org
This extension is professionally maintained by the WikiTeq team.
WikiTeq provides official support for MediaWiki LTS releases only. It may work with other MediaWiki releases.
MediaWiki extensions manual
LinkTarget
Release status: stable
Implementation MyWiki
Description Adds a target attribute to specified links
Author(s) Ike Hecht (Tosfostalk)
Maintainer(s) WikiTeq team
Latest version 0.2.0 ()
Compatibility policy For every MediaWiki release that is a Long Term Support release there is a corresponding branch in the extension.
MediaWiki 1.35, 1.39
Database changes No
License GNU General Public License 2.0 or later
Download

  • $wgLinkTargetParentClasses
  • $wgLinkTargetDefault
Quarterly downloads 35 (Ranked 94th)
Translate the LinkTarget extension if it is available at translatewiki.net
Issues Open tasks · Report a bug

The LinkTarget extension allows admins to add a target attribute to internal and external links. That can be used to, for example, open internal and external links in new windows.

This extension was created for WikiWorks.


Installation

  • Download and move the extracted LinkTarget folder to your extensions/ directory.
    Developers and code contributors should install the extension from Git instead, using:cd extensions/
    git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LinkTarget
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'LinkTarget' );
    $wgLinkTargetParentClasses = ' /*ENTER SOME CLASSES HERE*/ ';
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Configuration

$wgLinkTargetParentClasses
The descendants of elements of this class will have their target attribute set by the extension. Expects an array with the format:
[
     target => [ classes ],
     target => [ classes ],
      ... 
]
If target is not specified or is invalid, the target will be set to $wgLinkTargetDefault. Note that it is also valid to specify one class as a string, instead of an array of classes.
$wgLinkTargetDefault
The default target for parent classes that do not have a valid target specified.
Can be set to: _blank, _self, _parent or _top. Defaults to _blank.

Examples

In LocalSettings.php:

$wgLinkTargetParentClasses = [ 'foo', 'bar' ];

Adds target="_blank" as an attribute to links that are children of an HTML element that belong to either class "foo" or "bar". To use in the wiki:

This is some text with an <span class="foo">[[Internal link]]</span> and also an <span class="bar">[https://www.mediawiki.org External link]</span>.

In that example, both links will open in new windows or tabs.

Example 2: Open specific images in new windows

Using the same LocalSettings as in Example 1, in the wiki use:

<div class="bar">[[File:SomeImage|link=mediawiki.org]]</div>
$wgExternalLinkTarget = '_blank';
$wgLinkTargetParentClasses = [ 'foo', 'bar' ];
$wgLinkTargetDefault = '_self';

In the wiki:

[[This link]] will open in a new window, but not <span class="foo">[[this one]]</span>.

Example 4: Use with extensions

Surround extension parser functions or tags with some code and open any links generated by those extensions in a new window. As an example, we will use the Flickr API extension, with the LocalSettings code from Example 1:

<div class="foo"><flickr>SOMEIMAGEID</flickr></div>

Actually, that extension helpfully already surrounds any code that it generates with a class so really it is sufficient to set LocalSettings as follows:

$wgLinkTargetParentClasses = [ 'flickrapi' ];

This will apply to all Flickr images generated by the extension. When users click on any image, the link will open in a new window or tab.

Advanced

$wgLinkTargetParentClasses = [
     '_top' => [ 'foo' ],
     [ 'bar' ],
     '_parent' => 'baz'
];

Descendants of 'foo' will have target '_top', descendants of 'bar' will have target '_blank' and descendants of 'baz' will have target '_parent'.

Known limitations

  • The links will not have any special target while viewing the page in "preview" mode.

See also