<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.stoney-cloud.org/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-DotsSyntaxHighlighter.js</id>
	<title>MediaWiki:Gadget-DotsSyntaxHighlighter.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.stoney-cloud.org/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-DotsSyntaxHighlighter.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&amp;action=history"/>
	<updated>2026-04-17T11:01:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.6</generator>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&amp;diff=4165&amp;oldid=prev</id>
		<title>Tiziano: 1 revision from :mediawikiwiki:MediaWiki:Gadget-DotsSyntaxHighlighter.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&amp;diff=4165&amp;oldid=prev"/>
		<updated>2014-08-22T09:58:03Z</updated>

		<summary type="html">&lt;p&gt;1 revision from &lt;a href=&quot;http://www.mediawiki.org/wiki/MediaWiki:Gadget-DotsSyntaxHighlighter.js&quot; class=&quot;extiw&quot; title=&quot;mediawikiwiki:MediaWiki:Gadget-DotsSyntaxHighlighter.js&quot;&gt;mediawikiwiki:MediaWiki:Gadget-DotsSyntaxHighlighter.js&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:58, 22 August 2014&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-4160:rev-4165 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tiziano</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&amp;diff=4160&amp;oldid=prev</id>
		<title>Tiziano: Tiziano moved page MediaWiki:Remember the dot/Syntax highlighter.js to MediaWiki:Gadget-DotsSyntaxHighlighter.js without leaving a redirect</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&amp;diff=4160&amp;oldid=prev"/>
		<updated>2014-08-22T09:43:59Z</updated>

		<summary type="html">&lt;p&gt;Tiziano moved page &lt;a href=&quot;/w/index.php?title=MediaWiki:Remember_the_dot/Syntax_highlighter.js&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki:Remember the dot/Syntax highlighter.js (page does not exist)&quot;&gt;MediaWiki:Remember the dot/Syntax highlighter.js&lt;/a&gt; to &lt;a href=&quot;/wiki/MediaWiki:Gadget-DotsSyntaxHighlighter.js&quot; title=&quot;MediaWiki:Gadget-DotsSyntaxHighlighter.js&quot;&gt;MediaWiki:Gadget-DotsSyntaxHighlighter.js&lt;/a&gt; without leaving a redirect&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:43, 22 August 2014&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key mw_3728085_app?h054:diff::1.12:old-4159:rev-4160 --&gt;
&lt;/table&gt;</summary>
		<author><name>Tiziano</name></author>
	</entry>
	<entry>
		<id>https://wiki.stoney-cloud.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&amp;diff=4159&amp;oldid=prev</id>
		<title>Tiziano: 1 revision from :mediawikiwiki:User:Remember the dot/Syntax highlighter.js</title>
		<link rel="alternate" type="text/html" href="https://wiki.stoney-cloud.org/w/index.php?title=MediaWiki:Gadget-DotsSyntaxHighlighter.js&amp;diff=4159&amp;oldid=prev"/>
		<updated>2014-08-22T09:43:42Z</updated>

		<summary type="html">&lt;p&gt;1 revision from &lt;a href=&quot;http://www.mediawiki.org/wiki/User:Remember_the_dot/Syntax_highlighter.js&quot; class=&quot;extiw&quot; title=&quot;mediawikiwiki:User:Remember the dot/Syntax highlighter.js&quot;&gt;mediawikiwiki:User:Remember the dot/Syntax highlighter.js&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//Syntax highlighter with various advantages&lt;br /&gt;
//See [[User:Remember the dot/Syntax highlighter]] for more information&lt;br /&gt;
&lt;br /&gt;
(function () {&lt;br /&gt;
    &amp;quot;use strict&amp;quot;;&lt;br /&gt;
    &lt;br /&gt;
    //variables that are preserved between function calls&lt;br /&gt;
    var wgAction = mw.config.get(&amp;quot;wgAction&amp;quot;);&lt;br /&gt;
    var wgPageContentModel = mw.config.get(&amp;quot;wgPageContentModel&amp;quot;);&lt;br /&gt;
    var wgUserLanguage = mw.config.get(&amp;quot;wgUserLanguage&amp;quot;);&lt;br /&gt;
    var textboxContainer;&lt;br /&gt;
    var wpTextbox0;&lt;br /&gt;
    var wpTextbox1;&lt;br /&gt;
    var syntaxStyleTextNode;&lt;br /&gt;
    var lastText;&lt;br /&gt;
    var maxSpanNumber = -1; //the number of the last span available, used to tell if creating additional spans is necessary&lt;br /&gt;
    var highlightSyntaxIfNeededIntervalID;&lt;br /&gt;
    &lt;br /&gt;
    /* Define context-specific regexes, one for every common token that ends the&lt;br /&gt;
       current context.&lt;br /&gt;
       &lt;br /&gt;
       An attempt has been made to search for the most common syntaxes first,&lt;br /&gt;
       thus maximizing performance. Syntaxes that begin with the same character&lt;br /&gt;
       are searched for at the same time.&lt;br /&gt;
       &lt;br /&gt;
       Wiki syntaxes from most common to least common:&lt;br /&gt;
           [[internal link]] [http:// named external link]&lt;br /&gt;
           {{template}} {{{template parameter}}} {| table |}&lt;br /&gt;
           &amp;lt;tag&amp;gt; &amp;lt;!-- comment --&amp;gt;&lt;br /&gt;
           http:// bare external link&lt;br /&gt;
           =Heading= * unordered list # ordered list : indent ; small heading  pre ---- horizontal line&lt;br /&gt;
           &amp;#039;&amp;#039;italic&amp;#039;&amp;#039; &amp;#039;&amp;#039;&amp;#039;bold&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
           three tildes username four tildes signature five tildes timestamp&lt;br /&gt;
           &amp;amp;entity;&lt;br /&gt;
       &lt;br /&gt;
       The tag-matching regex follows the XML standard closely so that users&lt;br /&gt;
       won&amp;#039;t feel like they have to escape sequences that MediaWiki will never&lt;br /&gt;
       consider to be tags.&lt;br /&gt;
       &lt;br /&gt;
       Only entities for characters which need to be escaped or cannot be&lt;br /&gt;
       unambiguously represented in a monospace font are highlighted, such as&lt;br /&gt;
       Greek letters that strongly resemble Latin letters. Use of other entities&lt;br /&gt;
       is discouraged as a matter of style. For the same reasons, numeric&lt;br /&gt;
       entities should be in hexadecimal (giving character codes in decimal only&lt;br /&gt;
       adds confusion).&lt;br /&gt;
       &lt;br /&gt;
       Flags: g for global search, m for make ^ match the beginning of each line&lt;br /&gt;
       and $ the end of each line&lt;br /&gt;
    */&lt;br /&gt;
    var breakerRegexBase = &amp;quot;\\[(?:\\[|(?:https?:|ftp:)?//|mailto:)|\\{(?:\\{\\{?|\\|)|&amp;lt;(?:[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:\\w\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD-\\.\u00B7\u0300-\u036F\u203F-\u203F-\u2040]*(?=/?&amp;gt;| )|!--[^]*?--&amp;gt;)|(?:https?://|ftp://|mailto:)[^\\s\&amp;quot;&amp;lt;&amp;gt;[\\]{-}]*[^\\s\&amp;quot;,\\.:;&amp;lt;&amp;gt;[\\]{-}]|^(?:=|[*#:;]+|-{4,})|\\\\&amp;#039;\\\\&amp;#039;(?:\\\\&amp;#039;)?|&amp;amp;(?:(?:n(?:bsp|dash)|m(?:dash|inus)|lt|e[mn]sp|thinsp|amp|quot|gt|shy|zwn?j|lrm|rlm|Alpha|Beta|Epsilon|Zeta|Eta|Iota|Kappa|[Mm]u|micro|Nu|[Oo]micron|[Rr]ho|Tau|Upsilon|Chi)|#x[0-9a-fA-F]+);|~{3,5}&amp;quot;;&lt;br /&gt;
    function breakerRegexWithPrefix(prefix)&lt;br /&gt;
    {&lt;br /&gt;
        //the stop token has to be at the beginning of the regex so that it takes precedence over substrings of itself.&lt;br /&gt;
        //suck up newlines into the end token to avoid creating spans with nothing but newlines in them&lt;br /&gt;
        return new RegExp(&amp;quot;(&amp;quot; + prefix + &amp;quot;)\n*|&amp;quot; + breakerRegexBase, &amp;quot;gm&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    var defaultBreakerRegex           = new RegExp(breakerRegexBase, &amp;quot;gm&amp;quot;);&lt;br /&gt;
    var wikilinkBreakerRegex          = breakerRegexWithPrefix(&amp;quot;]][a-zA-Z]*&amp;quot;);&lt;br /&gt;
    var namedExternalLinkBreakerRegex = breakerRegexWithPrefix(&amp;quot;]&amp;quot;);&lt;br /&gt;
    var parameterBreakerRegex         = breakerRegexWithPrefix(&amp;quot;}}}&amp;quot;);&lt;br /&gt;
    var templateBreakerRegex          = breakerRegexWithPrefix(&amp;quot;}}&amp;quot;);&lt;br /&gt;
    var tableBreakerRegex             = breakerRegexWithPrefix(&amp;quot;\\|}&amp;quot;);&lt;br /&gt;
    var headingBreakerRegex           = breakerRegexWithPrefix(&amp;quot;\n&amp;quot;);&lt;br /&gt;
    var tagBreakerRegexCache          = {};&lt;br /&gt;
    &lt;br /&gt;
    //browser workaround triggers&lt;br /&gt;
    var trident = ($.client.profile().layout == &amp;quot;trident&amp;quot;);&lt;br /&gt;
    &lt;br /&gt;
    function highlightSyntax()&lt;br /&gt;
    {&lt;br /&gt;
        lastText = wpTextbox1.value;&lt;br /&gt;
        /* Backslashes and apostrophes are CSS-escaped at the beginning and all&lt;br /&gt;
           parsing regexes and functions are designed to match. On the other hand,&lt;br /&gt;
           newlines are not escaped until written so that in the regexes ^ and $&lt;br /&gt;
           work for both newlines and the beginning or end of the string. */&lt;br /&gt;
        var text = lastText.replace(/[&amp;#039;\\]/g, &amp;quot;\\$&amp;amp;&amp;quot;) + &amp;quot;\n&amp;quot;; //add a newline to fix scrolling and parsing issues&lt;br /&gt;
        var i = 0; //the location of the parser as it goes through var text&lt;br /&gt;
        &lt;br /&gt;
        var css = &amp;quot;&amp;quot;;&lt;br /&gt;
        var spanNumber = 0;&lt;br /&gt;
        var lastColor;&lt;br /&gt;
        var before = true;&lt;br /&gt;
        &lt;br /&gt;
        /* Highlighting bold or italic markup presents a special challenge&lt;br /&gt;
           because the actual MediaWiki parser uses multiple passes to determine&lt;br /&gt;
           which ticks represent start tags and which represent end tags.&lt;br /&gt;
           Because that would be too slow for us here, we instead keep track of&lt;br /&gt;
           what kinds of unclosed opening ticks have been encountered and use&lt;br /&gt;
           that to make a good guess as to whether the next ticks encountered&lt;br /&gt;
           are an opening tag or a closing tag.&lt;br /&gt;
           &lt;br /&gt;
           The major downsides to this method are that &amp;#039;&amp;#039;&amp;#039;apostrophe italic&amp;#039;&amp;#039;&lt;br /&gt;
           and &amp;#039;&amp;#039;italic apostrophe&amp;#039;&amp;#039;&amp;#039; are not highlighted correctly, and bold&lt;br /&gt;
           and italic are both highlighted in the same color. */&lt;br /&gt;
        var assumedBold = false;&lt;br /&gt;
        var assumedItalic = false;&lt;br /&gt;
        &lt;br /&gt;
        //writes text into to-be-created span elements of wpTextbox0 using :before and :after pseudo-elements&lt;br /&gt;
        //both :before and :after are used because using two pseudo-elements per span is significantly faster than doubling the number of spans required&lt;br /&gt;
        function writeText(text, color)&lt;br /&gt;
        {&lt;br /&gt;
            //no need to use another span if using the same color&lt;br /&gt;
            if (color != lastColor)&lt;br /&gt;
            {&lt;br /&gt;
                //whitespace is omitted in the hope of increasing performance&lt;br /&gt;
                css += &amp;quot;&amp;#039;}#s&amp;quot; + spanNumber; //spans will be created with IDs s0 through sN&lt;br /&gt;
                if (before)&lt;br /&gt;
                {&lt;br /&gt;
                    css += &amp;quot;:before{&amp;quot;;&lt;br /&gt;
                    before = false;&lt;br /&gt;
                }&lt;br /&gt;
                else&lt;br /&gt;
                {&lt;br /&gt;
                    css += &amp;quot;:after{&amp;quot;;&lt;br /&gt;
                    before = true;&lt;br /&gt;
                    ++spanNumber;&lt;br /&gt;
                }&lt;br /&gt;
                if (color)&lt;br /&gt;
                {&lt;br /&gt;
                    //&amp;quot;background-color&amp;quot; is 6 characters longer than &amp;quot;background&amp;quot; but the browser processes it faster&lt;br /&gt;
                    css += &amp;quot;background-color:&amp;quot; + color + &amp;quot;;&amp;quot;;&lt;br /&gt;
                }&lt;br /&gt;
                css += &amp;quot;content:&amp;#039;&amp;quot;;&lt;br /&gt;
                lastColor = color;&lt;br /&gt;
            }&lt;br /&gt;
            css += text;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        function highlightBlock(color, breakerRegex)&lt;br /&gt;
        {&lt;br /&gt;
            var match;&lt;br /&gt;
            &lt;br /&gt;
            for (breakerRegex.lastIndex = i; match = breakerRegex.exec(text); breakerRegex.lastIndex = i)&lt;br /&gt;
            {&lt;br /&gt;
                if (match[1])&lt;br /&gt;
                {&lt;br /&gt;
                    //end token found&lt;br /&gt;
                    writeText(text.substring(i, breakerRegex.lastIndex), color);&lt;br /&gt;
                    i = breakerRegex.lastIndex;&lt;br /&gt;
                    return;&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                var endIndexOfLastColor = breakerRegex.lastIndex - match[0].length;&lt;br /&gt;
                if (i &amp;lt; endIndexOfLastColor) //avoid calling writeText with text == &amp;quot;&amp;quot; to improve performance&lt;br /&gt;
                {&lt;br /&gt;
                    writeText(text.substring(i, endIndexOfLastColor), color);&lt;br /&gt;
                }&lt;br /&gt;
                &lt;br /&gt;
                i = breakerRegex.lastIndex;&lt;br /&gt;
                &lt;br /&gt;
                switch (match[0].charAt(0)) //cases in this switch should be arranged from most common to least common&lt;br /&gt;
                {&lt;br /&gt;
                    case &amp;quot;[&amp;quot;:&lt;br /&gt;
                        if (match[0].charAt(1) == &amp;quot;[&amp;quot;)&lt;br /&gt;
                        {&lt;br /&gt;
                            //wikilink&lt;br /&gt;
                            writeText(&amp;quot;[[&amp;quot;, syntaxHighlighterConfig.wikilinkColor || color);&lt;br /&gt;
                            highlightBlock(syntaxHighlighterConfig.wikilinkColor || color, wikilinkBreakerRegex);&lt;br /&gt;
                        }&lt;br /&gt;
                        else&lt;br /&gt;
                        {&lt;br /&gt;
                            //named external link&lt;br /&gt;
                            writeText(match[0], syntaxHighlighterConfig.externalLinkColor || color);&lt;br /&gt;
                            highlightBlock(syntaxHighlighterConfig.externalLinkColor || color, namedExternalLinkBreakerRegex);&lt;br /&gt;
                        }&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;{&amp;quot;:&lt;br /&gt;
                        if (match[0].charAt(1) == &amp;quot;{&amp;quot;)&lt;br /&gt;
                        {&lt;br /&gt;
                            if (match[0].length == 3)&lt;br /&gt;
                            {&lt;br /&gt;
                                //parameter&lt;br /&gt;
                                writeText(&amp;quot;{{{&amp;quot;, syntaxHighlighterConfig.parameterColor || color);&lt;br /&gt;
                                highlightBlock(syntaxHighlighterConfig.parameterColor || color, parameterBreakerRegex);&lt;br /&gt;
                            }&lt;br /&gt;
                            else&lt;br /&gt;
                            {&lt;br /&gt;
                                //template&lt;br /&gt;
                                writeText(&amp;quot;{{&amp;quot;, syntaxHighlighterConfig.templateColor || color);&lt;br /&gt;
                                highlightBlock(syntaxHighlighterConfig.templateColor || color, templateBreakerRegex);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                        else //|&lt;br /&gt;
                        {&lt;br /&gt;
                            //table&lt;br /&gt;
                            writeText(&amp;quot;{|&amp;quot;, syntaxHighlighterConfig.tableColor || color);&lt;br /&gt;
                            highlightBlock(syntaxHighlighterConfig.tableColor || color, tableBreakerRegex);&lt;br /&gt;
                        }&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;&amp;lt;&amp;quot;:&lt;br /&gt;
                        if (match[0].charAt(1) == &amp;quot;!&amp;quot;)&lt;br /&gt;
                        {&lt;br /&gt;
                            //comment tag&lt;br /&gt;
                            writeText(match[0], syntaxHighlighterConfig.commentColor || color);&lt;br /&gt;
                            break;&lt;br /&gt;
                        }&lt;br /&gt;
                        else&lt;br /&gt;
                        {&lt;br /&gt;
                            //some other kind of tag, search for its end&lt;br /&gt;
                            //the search is made easier because XML attributes may not contain the character &amp;quot;&amp;gt;&amp;quot;&lt;br /&gt;
                            var tagEnd = text.indexOf(&amp;quot;&amp;gt;&amp;quot;, i) + 1;&lt;br /&gt;
                            if (tagEnd == 0)&lt;br /&gt;
                            {&lt;br /&gt;
                                //not a tag, just a &amp;quot;&amp;lt;&amp;quot; with some text after it&lt;br /&gt;
                                writeText(&amp;quot;&amp;lt;&amp;quot;, color);&lt;br /&gt;
                                i = i - match[0].length + 1;&lt;br /&gt;
                                break;&lt;br /&gt;
                            }&lt;br /&gt;
                            &lt;br /&gt;
                            if (text.charAt(tagEnd - 2) == &amp;quot;/&amp;quot;)&lt;br /&gt;
                            {&lt;br /&gt;
                                //empty tag&lt;br /&gt;
                                writeText(text.substring(i - match[0].length, tagEnd), syntaxHighlighterConfig.tagColor || color);&lt;br /&gt;
                                i = tagEnd;&lt;br /&gt;
                            }&lt;br /&gt;
                            else&lt;br /&gt;
                            {&lt;br /&gt;
                                var tagName = match[0].substring(1);&lt;br /&gt;
                                &lt;br /&gt;
                                //again, cases are ordered from most common to least common&lt;br /&gt;
                                if (/^(?:nowiki|pre|math|syntaxhighlight|source|timeline|hiero)$/.test(tagName))&lt;br /&gt;
                                {&lt;br /&gt;
                                    //tag that can contain only plain text&lt;br /&gt;
                                    var stopAfter = &amp;quot;&amp;lt;/&amp;quot; + tagName + &amp;quot;&amp;gt;&amp;quot;;&lt;br /&gt;
                                    var endIndex = text.indexOf(stopAfter, i);&lt;br /&gt;
                                    if (endIndex == -1)&lt;br /&gt;
                                    {&lt;br /&gt;
                                        endIndex = text.length;&lt;br /&gt;
                                    }&lt;br /&gt;
                                    else&lt;br /&gt;
                                    {&lt;br /&gt;
                                        endIndex += stopAfter.length;&lt;br /&gt;
                                    }&lt;br /&gt;
                                    writeText(text.substring(i - match[0].length, endIndex), syntaxHighlighterConfig.tagColor || color);&lt;br /&gt;
                                    i = endIndex;&lt;br /&gt;
                                }&lt;br /&gt;
                                else&lt;br /&gt;
                                {&lt;br /&gt;
                                    //ordinary tag&lt;br /&gt;
                                    writeText(text.substring(i - match[0].length, tagEnd), syntaxHighlighterConfig.tagColor || color);&lt;br /&gt;
                                    i = tagEnd;&lt;br /&gt;
                                    if (!tagBreakerRegexCache[tagName])&lt;br /&gt;
                                    {&lt;br /&gt;
                                        tagBreakerRegexCache[tagName] = breakerRegexWithPrefix(&amp;quot;&amp;lt;/&amp;quot; + tagName + &amp;quot;&amp;gt;&amp;quot;);&lt;br /&gt;
                                    }&lt;br /&gt;
                                    highlightBlock(syntaxHighlighterConfig.tagColor || color, tagBreakerRegexCache[tagName]);&lt;br /&gt;
                                }&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;h&amp;quot;:&lt;br /&gt;
                    case &amp;quot;f&amp;quot;:&lt;br /&gt;
                    case &amp;quot;m&amp;quot;:&lt;br /&gt;
                        //bare external link&lt;br /&gt;
                        writeText(match[0], syntaxHighlighterConfig.externalLinkColor || color);&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;=&amp;quot;:&lt;br /&gt;
                        if (/[^=]=+$/.test(text.substring(i, text.indexOf(&amp;quot;\n&amp;quot;, i)))) //the line begins and ends with an equals sign and has something else in the middle&lt;br /&gt;
                        {&lt;br /&gt;
                            //heading&lt;br /&gt;
                            writeText(&amp;quot;=&amp;quot;, syntaxHighlighterConfig.headingColor || color);&lt;br /&gt;
                            highlightBlock(syntaxHighlighterConfig.headingColor || color, headingBreakerRegex);&lt;br /&gt;
                        }&lt;br /&gt;
                        else&lt;br /&gt;
                        {&lt;br /&gt;
                            writeText(&amp;quot;=&amp;quot;, color); //move on, process this line as regular wikitext&lt;br /&gt;
                        }&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;*&amp;quot;:&lt;br /&gt;
                    case &amp;quot;#&amp;quot;:&lt;br /&gt;
                    case &amp;quot;:&amp;quot;:&lt;br /&gt;
                        //unordered list, ordered list, indent, small heading&lt;br /&gt;
                        //just highlight the marker&lt;br /&gt;
                        writeText(match[0], syntaxHighlighterConfig.listOrIndentColor || color);&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;;&amp;quot;:&lt;br /&gt;
                        //small heading&lt;br /&gt;
                        writeText(&amp;quot;;&amp;quot;, syntaxHighlighterConfig.headingColor || color);&lt;br /&gt;
                        highlightBlock(syntaxHighlighterConfig.headingColor || color, headingBreakerRegex);&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;-&amp;quot;:&lt;br /&gt;
                        //horizontal line&lt;br /&gt;
                        writeText(match[0], syntaxHighlighterConfig.hrColor || color);&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;\\&amp;quot;:&lt;br /&gt;
                        writeText(match[0], syntaxHighlighterConfig.boldOrItalicColor || color);&lt;br /&gt;
                        if (match[0].length == 6)&lt;br /&gt;
                        {&lt;br /&gt;
                            //bold&lt;br /&gt;
                            if (assumedBold)&lt;br /&gt;
                            {&lt;br /&gt;
                                //end tag&lt;br /&gt;
                                assumedBold = false;&lt;br /&gt;
                                return;&lt;br /&gt;
                            }&lt;br /&gt;
                            else&lt;br /&gt;
                            {&lt;br /&gt;
                                //start tag&lt;br /&gt;
                                assumedBold = true;&lt;br /&gt;
                                highlightBlock(syntaxHighlighterConfig.boldOrItalicColor || color, defaultBreakerRegex);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                        else&lt;br /&gt;
                        {&lt;br /&gt;
                            //italic&lt;br /&gt;
                            if (assumedItalic)&lt;br /&gt;
                            {&lt;br /&gt;
                                //end tag&lt;br /&gt;
                                assumedItalic = false;&lt;br /&gt;
                                return;&lt;br /&gt;
                            }&lt;br /&gt;
                            else&lt;br /&gt;
                            {&lt;br /&gt;
                                //start tag&lt;br /&gt;
                                assumedItalic = true;&lt;br /&gt;
                                highlightBlock(syntaxHighlighterConfig.boldOrItalicColor || color, defaultBreakerRegex);&lt;br /&gt;
                            }&lt;br /&gt;
                        }&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;&amp;amp;&amp;quot;:&lt;br /&gt;
                        //entity&lt;br /&gt;
                        writeText(match[0], syntaxHighlighterConfig.entityColor || color);&lt;br /&gt;
                        break;&lt;br /&gt;
                    case &amp;quot;~&amp;quot;:&lt;br /&gt;
                        //username, signature, timestamp&lt;br /&gt;
                        writeText(match[0], syntaxHighlighterConfig.signatureColor || color);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        &lt;br /&gt;
        //start!&lt;br /&gt;
        var startTime = Date.now();&lt;br /&gt;
        highlightBlock(&amp;quot;&amp;quot;, defaultBreakerRegex);&lt;br /&gt;
        &lt;br /&gt;
        //output the leftovers (if any) to make sure whitespace etc. matches&lt;br /&gt;
        if (i &amp;lt; text.length)&lt;br /&gt;
        {&lt;br /&gt;
            writeText(text.substring(i), &amp;quot;&amp;quot;);&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        //do we have enough span elements to match the generated CSS?&lt;br /&gt;
        while (maxSpanNumber &amp;lt; spanNumber)&lt;br /&gt;
        {&lt;br /&gt;
            wpTextbox0.appendChild(document.createElement(&amp;quot;span&amp;quot;)).id = &amp;quot;s&amp;quot; + ++maxSpanNumber;&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        /* finish CSS: move the extra &amp;#039;} from the beginning to the end and CSS-&lt;br /&gt;
           escape newlines. CSS ignores the space after the hex code of the&lt;br /&gt;
           escaped character */&lt;br /&gt;
        syntaxStyleTextNode.nodeValue = css.substring(2).replace(/\n/g, &amp;quot;\\A &amp;quot;) + &amp;quot;&amp;#039;}&amp;quot;;&lt;br /&gt;
        &lt;br /&gt;
        //if highlighting took too long, disable it.&lt;br /&gt;
        var endTime = Date.now();&lt;br /&gt;
        /*if (typeof(bestTime) == &amp;quot;undefined&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            window.bestTime = 10000;&lt;br /&gt;
            highlightSyntaxIfNeededIntervalID = setInterval(highlightSyntax, 250);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            if (endTime - startTime &amp;lt; bestTime)&lt;br /&gt;
            {&lt;br /&gt;
                bestTime = endTime - startTime;&lt;br /&gt;
                document.title = bestTime;&lt;br /&gt;
            }&lt;br /&gt;
        }//*/&lt;br /&gt;
        if (endTime - startTime &amp;gt; syntaxHighlighterConfig.timeout)&lt;br /&gt;
        {&lt;br /&gt;
            clearInterval(highlightSyntaxIfNeededIntervalID);&lt;br /&gt;
            syntaxStyleTextNode.nodeValue = &amp;quot;&amp;quot;;&lt;br /&gt;
            wpTextbox1.removeEventListener(&amp;quot;input&amp;quot;, highlightSyntax);&lt;br /&gt;
            &lt;br /&gt;
            var errorMessage = {};&lt;br /&gt;
            errorMessage[&amp;quot;ca&amp;quot;] = &amp;quot;S&amp;#039;ha desactivat el remarcar de sintaxi en aquesta pàgina perquè ha tardat massa. El temps màxim permès per a remarcar és $1ms, i el teu ordinador ha trigat $2ms. Prova tancar algunes pestanyes i programes i fer clic en \&amp;quot;Mostra la previsualització\&amp;quot; o \&amp;quot;Mostra els canvis\&amp;quot;. Si no funciona això, prova altre navegador web, i si això no funciona, prova un ordinador més ràpid.&amp;quot;;&lt;br /&gt;
            errorMessage[&amp;quot;de&amp;quot;] = &amp;quot;Die Syntaxhervorhebung wurde auf dieser Seite deaktiviert, da diese zu lange gedauert hat. Die maximal erlaubte Zeit zur Hervorhebung beträgt $1ms und dein Computer benötigte $2ms. Versuche einige Tabs und Programme zu schließen und klicke \&amp;quot;Vorschau zeigen\&amp;quot; oder \&amp;quot;Änderungen zeigen\&amp;quot;. Wenn das nicht funktioniert, probiere einen anderen Webbrowser und wenn immer noch nicht, probiere einen schnelleren Computer.&amp;quot;;&lt;br /&gt;
            errorMessage[&amp;quot;en&amp;quot;] = &amp;quot;Syntax highlighting on this page was disabled because it took too long. The maximum allowed highlighting time is $1ms, and your computer took $2ms. Try closing some tabs and programs and clicking \&amp;quot;Show preview\&amp;quot; or \&amp;quot;Show changes\&amp;quot;. If that doesn&amp;#039;t work, try a different web browser, and if that doesn&amp;#039;t work, try a faster computer.&amp;quot;;&lt;br /&gt;
            errorMessage[&amp;quot;es&amp;quot;] = &amp;quot;Se desactivó el resaltar de sintaxis en esta página porque tardó demasiado. El tiempo máximum permitido para resaltar es $1ms, y tu ordenador tardó $2ms. Prueba cerrar algunas pestañas y programas y hacer clic en \&amp;quot;Mostrar previsualización\&amp;quot; o \&amp;quot;Mostrar cambios\&amp;quot;. Si no funciona esto, prueba otro navegador web, y si eso no funciona, prueba un ordenador más rápido.&amp;quot;;&lt;br /&gt;
            errorMessage[&amp;quot;io&amp;quot;] = &amp;quot;Sintaxo-hailaitar en ca pagino esis nekapabligata pro ke konsumis tro multa tempo. La maxima permisata hailaitala tempo es $1ms, e tua ordinatro konsumis $2ms. Probez klozar kelka tabi e programi e kliktar \&amp;quot;Previdar\&amp;quot; o \&amp;quot;Montrez chanji\&amp;quot;. Se to ne funcionas, probez altra brauzero, e se to ne funcionas, probez plu rapida ordinatro.&amp;quot;;&lt;br /&gt;
            errorMessage[&amp;quot;pt&amp;quot;] = &amp;quot;O marcador de sintaxe foi desativado nesta pagina porque demorou demais. O tempo máximo permitido para marcar e $1ms, e seu computador demorou $2ms. Tenta sair de alguns programas e clique em \&amp;quot;Mostrar previsão\&amp;quot; ou \&amp;quot;Mostrar alterações\&amp;quot;. Se isso não funciona, tenta usar uma outra navegador web, e se ainda não funciona, procura um computador mais rápido.&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
            errorMessage = errorMessage[wgUserLanguage] || errorMessage[wgUserLanguage.substring(0, wgUserLanguage.indexOf(&amp;quot;-&amp;quot;))] || errorMessage[&amp;quot;en&amp;quot;];&lt;br /&gt;
            &lt;br /&gt;
            wpTextbox1.style.backgroundColor = &amp;quot;&amp;quot;;&lt;br /&gt;
            wpTextbox1.style.position = &amp;quot;&amp;quot;;&lt;br /&gt;
            wpTextbox0.style.color = &amp;quot;red&amp;quot;;&lt;br /&gt;
            wpTextbox0.style.fontFamily = &amp;quot;&amp;quot;;&lt;br /&gt;
            wpTextbox0.style.fontWeight = &amp;quot;bold&amp;quot;;&lt;br /&gt;
            wpTextbox0.style.height = &amp;quot;&amp;quot;;&lt;br /&gt;
            &lt;br /&gt;
            var range = document.createRange();&lt;br /&gt;
            range.selectNode(wpTextbox0); //chrome can&amp;#039;t live without this&lt;br /&gt;
            wpTextbox0.appendChild(range.createContextualFragment(errorMessage.replace(&amp;quot;$1&amp;quot;, syntaxHighlighterConfig.timeout).replace(&amp;quot;$2&amp;quot;, endTime - startTime)));&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    function syncScrollX()&lt;br /&gt;
    {&lt;br /&gt;
        wpTextbox0.scrollLeft = wpTextbox1.scrollLeft;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    function syncScrollY()&lt;br /&gt;
    {&lt;br /&gt;
        wpTextbox0.scrollTop = wpTextbox1.scrollTop;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    //this function runs once every 500ms to detect changes to wpTextbox1&amp;#039;s text that the input event does not catch&lt;br /&gt;
    //this happens when another script changes the text without knowing that the syntax highlighter needs to be informed&lt;br /&gt;
    function highlightSyntaxIfNeeded()&lt;br /&gt;
    {&lt;br /&gt;
        if (wpTextbox1.value != lastText)&lt;br /&gt;
        {&lt;br /&gt;
            highlightSyntax();&lt;br /&gt;
        }&lt;br /&gt;
        if (wpTextbox1.scrollLeft != wpTextbox0.scrollLeft)&lt;br /&gt;
        {&lt;br /&gt;
            syncScrollX();&lt;br /&gt;
        }&lt;br /&gt;
        if (wpTextbox1.scrollTop != wpTextbox0.scrollTop)&lt;br /&gt;
        {&lt;br /&gt;
            syncScrollY();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    function setup()&lt;br /&gt;
    {&lt;br /&gt;
        function configureColor(parameterName, hardcodedFallback)&lt;br /&gt;
        {&lt;br /&gt;
            if (syntaxHighlighterConfig[parameterName] == &amp;quot;normal&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                syntaxHighlighterConfig[parameterName] = hardcodedFallback;&lt;br /&gt;
            }&lt;br /&gt;
            else if (typeof(syntaxHighlighterConfig[parameterName]) != &amp;quot;undefined&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            else if (typeof(syntaxHighlighterConfig.defaultColor) != &amp;quot;undefined&amp;quot;)&lt;br /&gt;
            {&lt;br /&gt;
                syntaxHighlighterConfig[parameterName] = syntaxHighlighterConfig.defaultColor;&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                syntaxHighlighterConfig[parameterName] = hardcodedFallback;&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
        &lt;br /&gt;
        window.syntaxHighlighterConfig = window.syntaxHighlighterConfig || {};&lt;br /&gt;
        &lt;br /&gt;
        //use 3-digit colors instead of 6-digit colors for performance&lt;br /&gt;
        configureColor(&amp;quot;boldOrItalicColor&amp;quot;,  &amp;quot;#EEE&amp;quot;); //gray&lt;br /&gt;
        configureColor(&amp;quot;commentColor&amp;quot;,       &amp;quot;#EFE&amp;quot;); //green&lt;br /&gt;
        configureColor(&amp;quot;entityColor&amp;quot;,        &amp;quot;#DFD&amp;quot;); //green&lt;br /&gt;
        configureColor(&amp;quot;externalLinkColor&amp;quot;,  &amp;quot;#EFF&amp;quot;); //cyan&lt;br /&gt;
        configureColor(&amp;quot;headingColor&amp;quot;,       &amp;quot;#EEE&amp;quot;); //gray&lt;br /&gt;
        configureColor(&amp;quot;hrColor&amp;quot;,            &amp;quot;#EEE&amp;quot;); //gray&lt;br /&gt;
        configureColor(&amp;quot;listOrIndentColor&amp;quot;,  &amp;quot;#EFE&amp;quot;); //green&lt;br /&gt;
        configureColor(&amp;quot;parameterColor&amp;quot;,     &amp;quot;#FC6&amp;quot;); //orange&lt;br /&gt;
        configureColor(&amp;quot;signatureColor&amp;quot;,     &amp;quot;#FC6&amp;quot;); //orange&lt;br /&gt;
        configureColor(&amp;quot;tagColor&amp;quot;,           &amp;quot;#FEF&amp;quot;); //pink&lt;br /&gt;
        configureColor(&amp;quot;tableColor&amp;quot;,         &amp;quot;#FFC&amp;quot;); //yellow&lt;br /&gt;
        configureColor(&amp;quot;templateColor&amp;quot;,      &amp;quot;#FFC&amp;quot;); //yellow&lt;br /&gt;
        configureColor(&amp;quot;wikilinkColor&amp;quot;,      &amp;quot;#EEF&amp;quot;); //blue&lt;br /&gt;
        &lt;br /&gt;
        syntaxHighlighterConfig.timeout = syntaxHighlighterConfig.timeout || 100;&lt;br /&gt;
        &lt;br /&gt;
        textboxContainer = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        wpTextbox0 = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
        wpTextbox1 = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
        &lt;br /&gt;
        var syntaxStyleElement = document.createElement(&amp;quot;style&amp;quot;);&lt;br /&gt;
        syntaxStyleElement.type = &amp;quot;text/css&amp;quot;;&lt;br /&gt;
        syntaxStyleTextNode = syntaxStyleElement.appendChild(document.createTextNode(&amp;quot;&amp;quot;));&lt;br /&gt;
        &lt;br /&gt;
        //the styling of the textbox and the background div must be kept very similar&lt;br /&gt;
        var wpTextbox1Style = window.getComputedStyle(wpTextbox1);&lt;br /&gt;
        var scrollTop = wpTextbox1.scrollTop;&lt;br /&gt;
        var focus = (document.activeElement == wpTextbox1);&lt;br /&gt;
        &lt;br /&gt;
        wpTextbox0.style.backgroundColor = wpTextbox1Style.backgroundColor;&lt;br /&gt;
        wpTextbox0.style.border          = &amp;quot;1px solid transparent&amp;quot;;&lt;br /&gt;
        wpTextbox0.style.boxSizing       = &amp;quot;border-box&amp;quot;;&lt;br /&gt;
        wpTextbox0.style.color           = &amp;quot;transparent&amp;quot;; //makes it look just a little bit smoother&lt;br /&gt;
        wpTextbox0.style.direction       = wpTextbox1Style.direction; //because your UI language set in Preferences may have a different direction than the edit box&lt;br /&gt;
        wpTextbox0.style.fontFamily      = wpTextbox1Style.fontFamily;&lt;br /&gt;
        wpTextbox0.style.fontSize        = wpTextbox1Style.fontSize;&lt;br /&gt;
        wpTextbox0.style.lineHeight      = &amp;quot;normal&amp;quot;;&lt;br /&gt;
        wpTextbox0.style.overflowX       = &amp;quot;auto&amp;quot;;&lt;br /&gt;
        wpTextbox0.style.overflowY       = &amp;quot;scroll&amp;quot;;&lt;br /&gt;
        wpTextbox0.style.tabSize         = wpTextbox1Style.tabSize;&lt;br /&gt;
        wpTextbox0.style.whiteSpace      = &amp;quot;pre-wrap&amp;quot;;&lt;br /&gt;
        wpTextbox0.style.width           = &amp;quot;100%&amp;quot;;&lt;br /&gt;
        wpTextbox0.style.wordWrap        = &amp;quot;normal&amp;quot;; //see below&lt;br /&gt;
        &lt;br /&gt;
        wpTextbox1.style.backgroundColor = &amp;quot;transparent&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.border          = &amp;quot;1px inset gray&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.boxSizing       = &amp;quot;border-box&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.lineHeight      = &amp;quot;normal&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.left            = &amp;quot;0&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.margin          = &amp;quot;0&amp;quot;; //firefox wants to put a 1px margin on the top and bottom of the textbox, which throws it out of alignment with wpTextbox0&lt;br /&gt;
        wpTextbox1.style.overflowX       = &amp;quot;auto&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.overflowY       = &amp;quot;scroll&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.padding         = &amp;quot;0&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.position        = &amp;quot;absolute&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.resize          = &amp;quot;none&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.top             = &amp;quot;0&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.width           = &amp;quot;100%&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.wordWrap        = &amp;quot;normal&amp;quot;; //overall more visually appealing&lt;br /&gt;
        &lt;br /&gt;
        //lock both heights to pixel values so that the browser zoom feature works better&lt;br /&gt;
        wpTextbox0.style.height          = wpTextbox1.offsetHeight + &amp;quot;px&amp;quot;;&lt;br /&gt;
        wpTextbox1.style.height          = wpTextbox0.style.height;&lt;br /&gt;
        &lt;br /&gt;
        textboxContainer.style.position = &amp;quot;relative&amp;quot;;&lt;br /&gt;
        wpTextbox1.parentNode.insertBefore(textboxContainer, wpTextbox1);&lt;br /&gt;
        textboxContainer.appendChild(wpTextbox1);&lt;br /&gt;
        textboxContainer.appendChild(wpTextbox0);&lt;br /&gt;
        &lt;br /&gt;
        //changing the parent resets scrollTop to 0 and removes focus, so we have to bring that back&lt;br /&gt;
        wpTextbox0.scrollTop = scrollTop;&lt;br /&gt;
        wpTextbox1.scrollTop = scrollTop;&lt;br /&gt;
        if (focus) wpTextbox1.focus();&lt;br /&gt;
        &lt;br /&gt;
        //fix drop-downs in editing toolbar&lt;br /&gt;
        $(&amp;#039;.tool-select *&amp;#039;).css({zIndex: 5});&lt;br /&gt;
        &lt;br /&gt;
        document.head.appendChild(syntaxStyleElement);&lt;br /&gt;
        &lt;br /&gt;
        wpTextbox1.addEventListener(&amp;quot;input&amp;quot;, highlightSyntax);&lt;br /&gt;
        wpTextbox1.addEventListener(&amp;quot;scroll&amp;quot;, syncScrollX);&lt;br /&gt;
        wpTextbox1.addEventListener(&amp;quot;scroll&amp;quot;, syncScrollY);&lt;br /&gt;
        highlightSyntaxIfNeededIntervalID = setInterval(highlightSyntaxIfNeeded, 500);&lt;br /&gt;
        highlightSyntax();&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    function queueSetup()&lt;br /&gt;
    {&lt;br /&gt;
        setTimeout(setup, 0);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    //enable the highlighter only when editing wikitext pages&lt;br /&gt;
    //in the future a separate parser could be added for CSS and JS pages&lt;br /&gt;
    //blacklist Internet Explorer, it&amp;#039;s just too broken&lt;br /&gt;
    if ((wgAction == &amp;quot;edit&amp;quot; || wgAction == &amp;quot;submit&amp;quot;) &amp;amp;&amp;amp; wgPageContentModel == &amp;quot;wikitext&amp;quot; &amp;amp;&amp;amp; !trident)&lt;br /&gt;
    {&lt;br /&gt;
        /* The highlighter has to run after any other script (such as the&lt;br /&gt;
           editing toolbar) that reparents wpTextbox1. We make sure that&lt;br /&gt;
           everything else has run by waiting for the page to completely load&lt;br /&gt;
           and then adding a call to the setup function to the end of the event&lt;br /&gt;
           queue, so that the setup function runs after any other triggers set&lt;br /&gt;
           on the load event. */&lt;br /&gt;
        if (document.readyState == &amp;quot;complete&amp;quot;)&lt;br /&gt;
        {&lt;br /&gt;
            queueSetup();&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
            $(window).load(queueSetup);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
})();&lt;/div&gt;</summary>
		<author><name>Tiziano</name></author>
	</entry>
</feed>