Extension:LinkTarget
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 | |
|
|
Quarterly downloads | 28 (Ranked 111st) |
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 yourextensions/
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*/ ';
- 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
Example 1: Open specific internal/external links in new windows
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>
Example 3: Open most links in a new window, but not these
$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
This extension is included in the following wiki farms/hosts and/or packages: This is not an authoritative list. Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here. Always check with your wiki farms/hosts or bundle to confirm. |