mw.jqueryMsg: Add support for {{PAGENAME}} and {{PAGENAMEE}}
[lhc/web/wiklou.git] / resources / src / mediawiki / mediawiki.jqueryMsg.js
index 17ecc6c..44b9117 100644 (file)
@@ -15,6 +15,8 @@
                slice = Array.prototype.slice,
                parserDefaults = {
                        magic: {
+                               PAGENAME: mw.config.get( 'wgPageName' ),
+                               PAGENAMEE: mw.util.wikiUrlencode( mw.config.get( 'wgPageName' ) ),
                                SITENAME: mw.config.get( 'wgSiteName' )
                        },
                        // Whitelist for allowed HTML elements in wikitext.
                                return result;
                        }
 
+                       // <nowiki>...</nowiki> tag. The tags are stripped and the contents are returned unparsed.
+                       function nowiki() {
+                               var parsedResult, plainText,
+                                       result = null;
+
+                               parsedResult = sequence( [
+                                       makeStringParser( '<nowiki>' ),
+                                       // We use a greedy non-backtracking parser, so we must ensure here that we don't take too much
+                                       makeRegexParser( /^.*?(?=<\/nowiki>)/ ),
+                                       makeStringParser( '</nowiki>' )
+                               ] );
+                               if ( parsedResult !== null ) {
+                                       plainText = parsedResult[ 1 ];
+                                       result = [ 'CONCAT' ].concat( plainText );
+                               }
+
+                               return result;
+                       }
+
                        templateName = transform(
                                // see $wgLegalTitleChars
                                // not allowing : due to the need to catch "PLURAL:$1"
                                wikilink,
                                extlink,
                                replacement,
+                               nowiki,
                                html,
                                literal
                        ] );
         *
         * This method is only available when jqueryMsg is loaded.
         *
+        * @since 1.27
         * @method parseDom
         * @member mw.Message
         * @return {jQuery}