![]() Release status: unmaintained |
|
---|---|
Implementation | Tag |
Description | Provides tags to control whitespace |
Author(s) | Van de Buggertalk |
Latest version | 0.1.0 (2012-03-19) |
MediaWiki | 1.35+ |
License | GNU Affero General Public License 3.0 |
Download | Download extension Git [?]: |
Tags
|
|
Hooks used
|
|
Hooks provided
|
|
Quarterly downloads | 5 (Ranked 165th) |
Translate the WhiteSpace extension if it is available at translatewiki.net | |
The WhiteSpace extension provides two tags to control whitespace in templates: <dws />
discards itself and all whitespace (including newlines) after the tag, <nl />
replaces itself with a newline.
Rationale
In wikitext spaces and newlines do matter. Leading space causes a paragraph to be verbatim, newline terminates a list item, etc. This means that template code cannot be formatted freely. For example, two subsequent template calls:
{{ Template1 }}{{ Template2 }}
being reformatted as:
{{ Template1 }} {{ Template2 }}
may produce different result (e. g. two list items instead of one). This is not a big deal for a simple template, but it quickly become a real issue for complicated templates. Let us consider a real example, a small part of Template:Extension:
{{#if: {{{username|}}} |<!--
-->{{#ifeq: {{{username}}}|{{{author|{{{username}}}<!-- -->}}}|<!--
nothing
-->|<!--else--><!--
-->{{{author}}} (<!--
-->}}<!--
-->[[User:{{{username}}}|{{{username}}}]]<!--
--><sup><small>[[User talk:{{{username}}}|{{int:talkpagelinktext}}]]</small></sup><!--
-->{{#ifeq: {{{username}}}|{{{author|{{{username}}}<!-- -->}}}|<!--
nothing
-->|<!--else--><!--
-->)<!--
-->}}<!--
-->|<!--else--><!--
-->{{{author}}}<!--
-->}}
HTML comments (<!-- -->
) allows splitting template code to lines but it pollutes template code so the overall result is not so good. Using <dws/>
the code can be reformatted as:
{{ #if: {{{ username | }}} | {{ #ifeq: {{{ username }}} | {{{ author | {{{ username }}} }}} | nothing | {{{ author }}}<dws/> ( }}<dws/> [[User:{{{ username }}}|{{{ username }}}]]<dws/> <sup><small>[[User talk:{{{ username }}}|{{ int: talkpagelinktext }}]]</small></sup><dws/> {{ #ifeq: {{{ username }}} | {{{ author | {{{ username }}} }}} | nothing | ) }} | {{{ author }}} }}
Of course, it is just another style of formatting, but <dws/>
allows using this style regularly and uniformly.
Installation
- Download and place the file(s) in a directory called
WhiteSpace
in yourextensions/
folder. - Add the following code at the bottom of your LocalSettings.php
wfLoadExtension( 'WhiteSpace' );
file: Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.