<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://htyp.org/mw/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%2Farchive%2Fv1.12</id>
	<title>MediaWiki/archive/v1.12 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://htyp.org/mw/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%2Farchive%2Fv1.12"/>
	<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/v1.12&amp;action=history"/>
	<updated>2026-07-01T21:27:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MediaWiki/archive/v1.12&amp;diff=23337&amp;oldid=prev</id>
		<title>Woozle: Woozle moved page MediaWiki 1.12 to MediaWiki/archive/v1.12 without leaving a redirect: moving obsolete pages</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/v1.12&amp;diff=23337&amp;oldid=prev"/>
		<updated>2017-12-14T22:33:08Z</updated>

		<summary type="html">&lt;p&gt;Woozle moved page &lt;a href=&quot;/mw/index.php?title=MediaWiki_1.12&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki 1.12 (page does not exist)&quot;&gt;MediaWiki 1.12&lt;/a&gt; to &lt;a href=&quot;/MediaWiki/archive/v1.12&quot; title=&quot;MediaWiki/archive/v1.12&quot;&gt;MediaWiki/archive/v1.12&lt;/a&gt; without leaving a redirect: moving obsolete pages&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 22:33, 14 December 2017&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MediaWiki/archive/v1.12&amp;diff=10129&amp;oldid=prev</id>
		<title>Woozle: /* Attempted Solutions */ one in-code solution</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/v1.12&amp;diff=10129&amp;oldid=prev"/>
		<updated>2008-08-14T01:53:19Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Attempted Solutions: &lt;/span&gt; one in-code solution&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 01:53, 14 August 2008&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l47&quot;&gt;Line 47:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 47:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Attempted Solutions===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;===Attempted Solutions===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So far, all solutions seem to involve making changes to extension code or creating entirely new extensions to do things properly rather than relying on the vagaries of parser processing. Also, I haven&amp;#039;t yet found any solutions which can be used as a drop-in replacement for templates using this function (or presumably other parser functions broken by the change). Will document what I find as I map it out. --[[User:Woozle|Woozle]] 21:47, 13 August 2008 (EDT)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;So far, all solutions seem to involve making changes to extension code or creating entirely new extensions to do things properly rather than relying on the vagaries of parser processing. Also, I haven&amp;#039;t yet found any solutions which can be used as a drop-in replacement for templates using this function (or presumably other parser functions broken by the change). Will document what I find as I map it out. --[[User:Woozle|Woozle]] 21:47, 13 August 2008 (EDT)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* &#039;&#039;&#039;return $parser-&amp;gt;recursiveTagParse($out);&#039;&#039;&#039; instead of &#039;&#039;&#039;return $out;&#039;&#039;&#039;, where $out is the parser function&#039;s output. Perhaps this can be made conditional on the parser version, if there is a constant for that.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
	<entry>
		<id>https://htyp.org/mw/index.php?title=MediaWiki/archive/v1.12&amp;diff=10127&amp;oldid=prev</id>
		<title>Woozle: New page: ==Navigation== &lt;section begin=navbar /&gt;{{#lst:MediaWiki|navbar}}: version 1.12&lt;section end=navbar /&gt; ==Parser Changes== The wikitext parser (Parser.php) has been substan...</title>
		<link rel="alternate" type="text/html" href="https://htyp.org/mw/index.php?title=MediaWiki/archive/v1.12&amp;diff=10127&amp;oldid=prev"/>
		<updated>2008-08-14T01:47:53Z</updated>

		<summary type="html">&lt;p&gt;New page: ==Navigation== &amp;lt;section begin=navbar /&amp;gt;{{#lst:MediaWiki|navbar}}: &lt;a href=&quot;/mw/index.php?title=MediaWiki_1.12&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;MediaWiki 1.12 (page does not exist)&quot;&gt;version 1.12&lt;/a&gt;&amp;lt;section end=navbar /&amp;gt; ==Parser Changes== The wikitext parser (Parser.php) has been substan...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Navigation==&lt;br /&gt;
&amp;lt;section begin=navbar /&amp;gt;{{#lst:MediaWiki|navbar}}: [[MediaWiki 1.12|version 1.12]]&amp;lt;section end=navbar /&amp;gt;&lt;br /&gt;
==Parser Changes==&lt;br /&gt;
The wikitext parser (Parser.php) has been substantially rewritten for this version. Although this makes it more efficient (presumably faster serving of pages), it also breaks some extensions and certain usages of other extensions.&lt;br /&gt;
&lt;br /&gt;
The basic problem seems to be the order in which things are processed. In v1.12, &amp;lt;nowiki&amp;gt;&amp;lt;tag&amp;gt;s&amp;lt;/nowiki&amp;gt; are processed first, followed by &amp;lt;nowiki&amp;gt;{{#parser_function}}s&amp;lt;/nowiki&amp;gt;; the latter are also only parsed once, whereas before there were sometimes two (or possibly more) passes.&lt;br /&gt;
&lt;br /&gt;
===Example===&lt;br /&gt;
A third-party parser function called &amp;#039;&amp;#039;&amp;#039;xploop&amp;#039;&amp;#039;&amp;#039; is invoked like this:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;{{#xploop:\one\two\three\four|\n* This is line $s$}}&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
This results in the following, where the &amp;quot;\one\two\three\four&amp;quot; string is split on the first character (&amp;quot;\&amp;quot;) and the remaining text is &amp;quot;executed&amp;quot; once for each item found, with &amp;quot;$s$&amp;quot; being replaced by the value from the first string:&lt;br /&gt;
* This is line one&lt;br /&gt;
* This is line two&lt;br /&gt;
* This is line three&lt;br /&gt;
* This is line four&lt;br /&gt;
&lt;br /&gt;
This continues to work under 1.12. The problem occurred with a usage where the $s$ was being used to refer to a variable set using the PageVars extension:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{#vardefine:varone|first}}&lt;br /&gt;
{{#vardefine:vartwo|second}}&lt;br /&gt;
{{#vardefine:varthree|third}}&lt;br /&gt;
{{#vardefine:varfour|fourth}}&lt;br /&gt;
{{#vardefine:var$s$|WRONG!}}&lt;br /&gt;
{{#xploop:\one\two\three\four|\n* This is the \o#var:var$s$\c line}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(&amp;quot;\n&amp;quot;, &amp;quot;\o&amp;quot;, and &amp;quot;\c&amp;quot; are all &amp;quot;escape&amp;quot; sequences translated by the EscapeChars extension into a newline, double open braces, and double closing braces respectively.)&lt;br /&gt;
&lt;br /&gt;
Under v1.11, the output was:&lt;br /&gt;
* This is the first line&lt;br /&gt;
* This is the second line&lt;br /&gt;
* This is the third line&lt;br /&gt;
* This is the fourth line &lt;br /&gt;
&lt;br /&gt;
Under v1.12, the output now looks like this:&lt;br /&gt;
* This is the &amp;lt;nowiki&amp;gt;{{#var:varone}}&amp;lt;/nowiki&amp;gt; line&lt;br /&gt;
* This is the &amp;lt;nowiki&amp;gt;{{#var:vartwo}}&amp;lt;/nowiki&amp;gt; line&lt;br /&gt;
* This is the &amp;lt;nowiki&amp;gt;{{#var:varthree}}&amp;lt;/nowiki&amp;gt; line&lt;br /&gt;
* This is the &amp;lt;nowiki&amp;gt;{{#var:varfour}}&amp;lt;/nowiki&amp;gt; line&lt;br /&gt;
&lt;br /&gt;
In other words, the \o and \c are being translated into braces, but the braces are not then being parsed to execute the #var parser function. Changing the \o and \c to actual braces gives this output:&lt;br /&gt;
* This is the WRONG! line&lt;br /&gt;
* This is the WRONG! line&lt;br /&gt;
* This is the WRONG! line&lt;br /&gt;
* This is the WRONG! line&lt;br /&gt;
&lt;br /&gt;
In other words, the &amp;lt;nowiki&amp;gt;{{var:var$s$}}&amp;lt;/nowiki&amp;gt; sequence is being parsed &amp;#039;&amp;#039;before&amp;#039;&amp;#039; the $s$ is replaced &amp;amp;ndash; the situation which the escape characters are intended to prevent. So the parsing behavior &amp;#039;&amp;#039;before&amp;#039;&amp;#039; calling the outer #xploop function seems unchanged; what has changed is that the &amp;#039;&amp;#039;output&amp;#039;&amp;#039; of #xploop is no longer being parsed further.&lt;br /&gt;
===Attempted Solutions===&lt;br /&gt;
So far, all solutions seem to involve making changes to extension code or creating entirely new extensions to do things properly rather than relying on the vagaries of parser processing. Also, I haven&amp;#039;t yet found any solutions which can be used as a drop-in replacement for templates using this function (or presumably other parser functions broken by the change). Will document what I find as I map it out. --[[User:Woozle|Woozle]] 21:47, 13 August 2008 (EDT)&lt;/div&gt;</summary>
		<author><name>Woozle</name></author>
	</entry>
</feed>