Extension:Header Tabs
Header Tabs Release status: stable |
|
---|---|
Implementation | Parser function , User interface |
Description | Displays top-level headers as JavaScript-based tabs |
Author(s) | |
Latest version | 2.3 (October 2024) |
Compatibility policy | Master maintains backward compatibility. |
MediaWiki | 1.33+ |
License | GNU General Public License 2.0 or later |
Download | Version history |
|
|
Translate the Header Tabs extension if it is available at translatewiki.net | |
Issues | Open tasks · Report a bug |
The Header Tabs extension transforms top-level MediaWiki headers (i.e., headers surrounded by a single "=") into JavaScript-based tabs.
Usage
To enable tabs on a page after you installed the extension, you need to add a <headertabs />
tag into the page in place where the last tab should end (everything below this tag will be shown under the tab view).
Most of the time, though, you'll want to put it at the bottom of the page.
In addition to that, the page should have top-level headers defined in it like this:
= Header title =
Each such top-level header, if it's anywhere above the <headertabs />
tag, will be displayed as a tab.
Linking to tabs
You can link to a tab, both from another page and from within that same page (and, within that same page, both from another tab and from outside the tab view).
This is done using the {{#switchtablink}}
parser function, which is called like this:
{{#switchtablink:Tab name|Link text|Page name}}
This will create a link to the tab with the name "Tab name", and the text of the link will read "Link text". If you want the link to a point to a tab on another page, you can optionally add the third parameter, "Page name".
Example
Some text above the tab view = First section header = This will be displayed on the first tab {{#switchtablink:Second section header|Click here to go to the next tab...}} = Second section header = This will be displayed on the second tab <headertabs/> = Third section header = This will be always displayed under the tab view because it's below the <headertabs/> tag.
The header titles get automatically converted into tab titles.
Download
You can download the Header Tabs code, in .zip format: https://github.com/wikimedia/mediawiki-extensions-HeaderTabs/archive/2.3.zip
You can also download the code directly via Git from the MediaWiki source code repository. From a command line, call the following:
git clone https://phabricator.wikimedia.org/diffusion/EHET/extension-headertabs.git
To view the code online, including the version history for each file: https://phabricator.wikimedia.org/diffusion/EHET/browse/master/
Installation
- Download and move the extracted
HeaderTabs
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/HeaderTabs - Add the following code at the bottom of your LocalSettings.php file:
wfLoadExtension( 'HeaderTabs' );
- Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.
Modifications
Skin modification
To change the tabs' styling, see "Skin modification".
Configuration parameters
The following parameters can be modified in LocalSettings.php below the call to wfLoadExtension()
.
$wgHeaderTabsRenderSingleTab
The $wgHeaderTabsRenderSingleTab
variable defines if Header Tabs will activate if only a single top-level header is found.
By default this variable is set to false, i.e. no tabs will be shown if only one top-level header is found.
You can enable this behaviour by adding the following:
$wgHeaderTabsRenderSingleTab = true;
$wgHeaderTabsAutomaticNamespaces
The $wgHeaderTabsAutomaticNamespaces
variable defines the set of namespaces for which you don't need to add the <headertabs />
tag in order to enable tabs.
If a namespace ID is defined in this variable, header tabs will activate automatically when you have two top-level headers (or one, if you have $wgHeaderTabsRenderSingleTab
set to true) in an article.
By default this variable holds no namespaces.
You can add namespaces to this list by adding the following for each namespace:
$wgHeaderTabsAutomaticNamespaces[] = NS_MAIN;
$wgHeaderTabsDefaultFirstTab
The $wgHeaderTabsDefaultFirstTab
variable defines whether Header Tabs puts any content before the first defined header and put it into its own tab.
By default this variable is set to false
.
You can enable this behavior by adding the default name using the following:
$wgHeaderTabsDefaultFirstTab = 'DefaultTabName';
If using this setting, be careful not to enable $wgHeaderTabsRenderSingleTab
as it will lead to tabs appearing in other parts of the UI.
$wgHeaderTabsNoTabsInToc
If you want the page to have a TOC, but do not want to include the tab names in that TOC, add the following to LocalSettings.php:
$wgHeaderTabsNoTabsInToc = true;
If, however, you only want to keep the tabs out of the TOC in some but not all pages, you can instead add the following to the top of any such pages:
<notabtoc/>
$wgHeaderTabsEditTabLink
The $wgHeaderTabsEditTabLink
variable defines if Header Tabs will add a edit link to the right of the tabs which let you edit only the tabs' text.
By default this variable is set to true, i.e. a edit link for the tab will be shown.
You can disable this behavior by adding the following:
$wgHeaderTabsEditTabLink = false;
Version history
To see a list of changes for each version, see version history. For a list of features planned for future releases, please see roadmap.
Known limitations and issues
- You cannot use the tag more than once. In other words, a second tag will not produce a second series of tabs.
- Tabs render on top of infoboxes in Chrome.
- Header Tabs will not work with the HTML Tidy tool, i.e. if $wgTidyConfig is populated.
Sections appearing outside the tabbed section
Header Tabs sections which include floated objects (such as infoboxes) may appear outside the tabs container if other content does not force the container to be large enough to hold the floated object. One resolution to this problem is to place a cleared html element at the very end of each section.
A simple, but not best-practice, means of doing this is:
<div style="clear:both"></div>
This forces this element to be considered by the browser after your floated object and thus will grow the container to fit both.
Support
The best way to seek help with this extension is to send questions to the mediawiki-l mailing list. The extension maintainers, and active users and contributors, are on this list and will be able to help you.
Contributing to the project
Bugs and feature requests
There are a number of ways to get support for Header Tabs, including questions, suggestions, bug reports and feature requests:
- Place questions on the discussion page for Header Tabs.
- You can submit bug reports and feature requests at MediaWiki's Phabricator site, here; enter "Header Tabs" in the "Tags" field. (The current list of known bugs and requested features for Header Tabs can be found here.)
- Use the main MediaWiki mailing list, mediawiki-l.
Contributing patches to the project
If you found some bug and fixed it, or if you wrote code for a new feature, please either do a Git commit for it, or create a patch by going to the "HeaderTabs
" directory, and typing:
git diff > descriptivename.patch
If you create a patch, please send it, with a description, to Yaron Koren.
Translating
Translation of Header Tabs is done through translatewiki.net. The translation for this extension can be found here: https://translatewiki.net/wiki/Special:Translate?group=ext-headertabs. To add language values or change existing ones, you should create an account on translatewiki.net, then request permission from the administrators to translate a certain language or languages on this page (this is a very simple process). Once you have permission for a given language, you can log in and add or edit whatever messages you want to in that language.
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. |
- Stable extensions/en
- Parser function extensions/en
- User interface extensions/en
- GPL licensed extensions/en
- Extensions in Wikimedia version control/en
- All extensions/en
- Extensions included in BlueSpice/en
- Extensions included in Canasta/en
- Extensions included in Miraheze/en
- Extensions included in MyWikis/en
- Extensions included in ProWiki/en
- Extensions included in WikiForge/en