Unify coding style of jQuery( '<element>' ) calls
authorThiemo Mättig <thiemo.maettig@wikimedia.de>
Wed, 19 Mar 2014 10:20:36 +0000 (11:20 +0100)
committerThiemo Mättig <thiemo.maettig@wikimedia.de>
Wed, 19 Mar 2014 10:20:36 +0000 (11:20 +0100)
According to jQuery and our MediaWiki style guide all kinds of
$( '<element>' )
$( '<element/>' )
$( '<element />' )
$( '<element></element>' )
are identical. So yes, all this patch does is removing characters
that are ignored anyway. Using the same style everywhere makes the
code easier to read and understand and may save a few bytes when it
is gzipped.

The current core/resources/ folder contains 148 jQuery calls of
that kind. Only this file (plus some jQuery plugins I don't want to
touch) do not use the most simple <element> style.

Plus:
* Added some line breaks.
* Fixed broken inline documentation.

Change-Id: I080716f21f2ab95164a9ca241a4ce4fc351e0b55

resources/mediawiki/mediawiki.jqueryMsg.js

index d7d90f4..40e6039 100644 (file)
@@ -89,7 +89,7 @@
         * Decodes the main HTML entities, those encoded by mw.html.escape.
         *
         * @private
-        * @param {string} encode Encoded string
+        * @param {string} encoded Encoded string
         * @return {string} String with those entities decoded
         */
        function decodePrimaryHtmlEntities( encoded ) {
         * If there was an error parsing, return the key and the error message (wrapped in jQuery). This should put the error right into
         * the interface, without causing the page to halt script execution, and it hopefully should be clearer how to fix it.
         * @private
-        * @param {Object} parser options
+        * @param {Object} options Parser options
         * @return {Function}
         * @return {Array} return.args First element is the key, replacements may be in array in 2nd element, or remaining elements.
         * @return {jQuery} return.return
 
                                if ( parsedCloseTagResult === null ) {
                                        // Closing tag failed.  Return the start tag and contents.
-                                       return [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ].concat( parsedHtmlContents );
+                                       return [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ]
+                                               .concat( parsedHtmlContents );
                                }
 
                                endCloseTagPos = pos;
                                wrappedAttributes = parsedOpenTagResult[2];
                                attributes = wrappedAttributes.slice( 1 );
                                if ( isAllowedHtml( startTagName, endTagName, attributes ) ) {
-                                       result = [ 'HTMLELEMENT', startTagName, wrappedAttributes ].concat( parsedHtmlContents );
+                                       result = [ 'HTMLELEMENT', startTagName, wrappedAttributes ]
+                                               .concat( parsedHtmlContents );
                                } else {
                                        // HTML is not allowed, so contents will remain how
                                        // it was, while HTML markup at this level will be
                                        // parsed HTML link.
                                        //
                                        // Concatenate everything from the tag, flattening the contents.
-                                       result = [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ].concat( parsedHtmlContents, input.substring( startCloseTagPos, endCloseTagPos ) );
+                                       result = [ 'CONCAT', input.substring( startOpenTagPos, endOpenTagPos ) ]
+                                               .concat( parsedHtmlContents, input.substring( startCloseTagPos, endCloseTagPos ) );
                                }
 
                                return result;
                                curlyBraceTransformExpressionLiteral
                        ] );
 
-
                        /**
                         * Starts the parse
                         *
                }
 
        };
+
        /**
         * htmlEmitter - object which primarily exists to emit HTML from parser ASTs
         */
                                return val;
                        };
                } );
+
                /**
                 * (We put this method definition here, and not in prototype, to make sure it's not overwritten by any magic.)
                 * Walk entire node structure, applying replacements and template functions when appropriate
-                * @param {Mixed} abstract syntax tree (top node or subnode)
+                * @param {Mixed} node Abstract syntax tree (top node or subnode)
                 * @param {Array} replacements for $1, $2, ... $n
                 * @return {Mixed} single-string node or array of nodes suitable for jQuery appending
                 */
                        return ret;
                };
        };
+
        // For everything in input that follows double-open-curly braces, there should be an equivalent parser
        // function. For instance {{PLURAL ... }} will be processed by 'plural'.
        // If you have 'magic words' then configure the parser to have them upon creation.
                 * TODO: Throw error if nodes.length > 1 ?
                 *
                 * @param {Array} nodes List of one element, integer, n >= 0
-                * @param {Array} replacements
+                * @param {Array} replacements List of at least n strings
                 * @return {String} replacement
                 */
                replace: function ( nodes, replacements ) {
                                anchor = nodes[1];
                        }
 
-                       return $( '<a />' ).attr( {
+                       return $( '<a>' ).attr( {
                                title: page,
                                href: url
                        } ).text( anchor );
                 * TODO: throw error if nodes.length > 1 ?
                 *
                 * @param {Array} nodes List of one element, integer, n >= 0
+                * @param {Array} replacements List of at least n strings
                 * @return {string} replacement
                 */
                extlinkparam: function ( nodes, replacements ) {