<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-AcceleratedFormCreation.js</id>
	<title>MediaWiki:Gadget-AcceleratedFormCreation.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-AcceleratedFormCreation.js"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;action=history"/>
	<updated>2026-04-10T21:17:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=475081&amp;oldid=prev</id>
		<title>Sware: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=475081&amp;oldid=prev"/>
		<updated>2025-11-04T17:52:59Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&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 17:52, 4 November 2025&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>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=475080&amp;oldid=prev</id>
		<title>wikt&gt;Surjection at 09:35, 31 October 2025</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=475080&amp;oldid=prev"/>
		<updated>2025-10-31T09:35:05Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;amp;diff=475080&amp;amp;oldid=470897&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>wikt&gt;Surjection</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470897&amp;oldid=prev</id>
		<title>Sware at 20:51, 16 September 2025</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470897&amp;oldid=prev"/>
		<updated>2025-09-16T20:51:05Z</updated>

		<summary type="html">&lt;p&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 20:51, 16 September 2025&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-l319&quot;&gt;Line 319:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 319:&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;                         resultInBox = true;&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;                         resultInBox = true;&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;                         break;&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;                         break;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                     } else if (match[1] == &quot;Translingual&quot; || match[1] == &quot;English&quot; || (langname != &quot;English&quot; &amp;amp;&amp;amp; match[1] &amp;lt; langname)) {&lt;/div&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;/*&lt;/ins&gt;} else if (match[1] == &quot;Translingual&quot; || match[1] == &quot;English&quot; || (langname != &quot;English&quot; &amp;amp;&amp;amp; match[1] &amp;lt; langname)) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                         continue;&lt;/div&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;                         continue;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;*/&lt;/ins&gt;&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;                     } else {&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;                     } else {&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;                         break;&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;                         break;&lt;/div&gt;&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-l356&quot;&gt;Line 356:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 356:&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;                 textbox.selectionStart = scrollIndex;&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;                 textbox.selectionStart = scrollIndex;&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;                 textbox.selectionEnd = scrollIndex;&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;                 textbox.selectionEnd = scrollIndex;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 summary.value = &quot;Adding forms of &quot; + langname + &quot; [[&quot; + lemma + &quot;]] ([[WT:ACCEL|Accelerated]])&quot;;&lt;/div&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;                 summary.value = &quot;Adding forms of &quot; + langname + &quot; [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Contionary:&quot; + lemma + &quot;|&lt;/ins&gt;&quot; + lemma + &quot;]] ([[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikt:&lt;/ins&gt;WT:ACCEL|Accelerated]])&quot;;&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;             } else {&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;             } else {&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;                 newValue = newtext;&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;                 newValue = newtext;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&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: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 summary.value = &quot;Creating forms of &quot; + langname + &quot; [[&quot; + lemma + &quot;]] ([[WT:ACCEL|Accelerated]])&quot;;&lt;/div&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;                 summary.value = &quot;Creating forms of &quot; + langname + &quot; [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Contionary:&quot; + lemma + &quot;|&lt;/ins&gt;&quot; + lemma + &quot;]] ([[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;wikt:&lt;/ins&gt;WT:ACCEL|Accelerated]])&quot;;&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;             }&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;             }&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;br&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;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470895&amp;oldid=prev</id>
		<title>Sware at 20:23, 16 September 2025</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470895&amp;oldid=prev"/>
		<updated>2025-09-16T20:23:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;amp;diff=470895&amp;amp;oldid=470878&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470878&amp;oldid=prev</id>
		<title>Sware at 18:56, 16 September 2025</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470878&amp;oldid=prev"/>
		<updated>2025-09-16T18:56:46Z</updated>

		<summary type="html">&lt;p&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 18:56, 16 September 2025&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-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&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;// &amp;lt;nowiki&amp;gt;&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;// &amp;lt;nowiki&amp;gt;&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;/* eslint-env es6, browser, jquery */&lt;/ins&gt;&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;/* eslint semi: &quot;error&quot; */&lt;/ins&gt;&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;/* jshint esversion: 6, eqeqeq: true */&lt;/ins&gt;&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;/* requires mw.cookie, mw.storage */&lt;/ins&gt;&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;/* globals mw, $ */&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;/* globals mw, $ */&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;// jshint maxerr:500&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;// jshint maxerr:500&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
	<entry>
		<id>https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470857&amp;oldid=prev</id>
		<title>Sware: Created page with &quot;// &lt;nowiki&gt; /* globals mw, $ */ // jshint maxerr:500  // FIXME: This gadget relies to an excessive degree on OrangeLinks to function. These gadgets should be made independent.  /*  * The starting point of the whole script.  *   * This adds a hook to the page load event so that the script runs  * adds the generated text to the edit window once the page is done loading.  */  &quot;use strict&quot;;  mw.loader.using([&quot;mediawiki.util&quot;]).done(function() { 	var pageName = mw.config.get(...&quot;</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=MediaWiki:Gadget-AcceleratedFormCreation.js&amp;diff=470857&amp;oldid=prev"/>
		<updated>2025-09-16T17:25:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;// &amp;lt;nowiki&amp;gt; &lt;span class=&quot;autocomment&quot;&gt;globals mw, $: &lt;/span&gt; // jshint maxerr:500  // FIXME: This gadget relies to an excessive degree on OrangeLinks to function. These gadgets should be made independent.  &lt;span class=&quot;autocomment&quot;&gt;* The starting point of the whole script.  *   * This adds a hook to the page load event so that the script runs  * adds the generated text to the edit window once the page is done loading.: &lt;/span&gt;  &amp;quot;use strict&amp;quot;;  mw.loader.using([&amp;quot;mediawiki.util&amp;quot;]).done(function() { 	var pageName = mw.config.get(...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;// &amp;lt;nowiki&amp;gt;&lt;br /&gt;
/* globals mw, $ */&lt;br /&gt;
// jshint maxerr:500&lt;br /&gt;
&lt;br /&gt;
// FIXME: This gadget relies to an excessive degree on OrangeLinks to function. These gadgets should be made independent.&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * The starting point of the whole script.&lt;br /&gt;
 * &lt;br /&gt;
 * This adds a hook to the page load event so that the script runs&lt;br /&gt;
 * adds the generated text to the edit window once the page is done loading.&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
mw.loader.using([&amp;quot;mediawiki.util&amp;quot;]).done(function() {&lt;br /&gt;
	var pageName = mw.config.get(&amp;quot;wgPageName&amp;quot;);&lt;br /&gt;
	&lt;br /&gt;
	// Don&amp;#039;t do anything unless the current page is in the main namespace.&lt;br /&gt;
	// Set window.accelEverywhere = true to test this gadget elsewhere.&lt;br /&gt;
	if (window.accelEverywhere || (mw.config.get(&amp;quot;wgAction&amp;quot;) === &amp;quot;view&amp;quot; &amp;amp;&amp;amp; (mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;) === 0 || pageName == &amp;quot;Wiktionary:Sandbox&amp;quot;))) {&lt;br /&gt;
		// Stores all accelerated data, by language, by target pagename.&lt;br /&gt;
		// Sub-arrays are in HTML order.&lt;br /&gt;
		var accelParamsByPagename = {};&lt;br /&gt;
		&lt;br /&gt;
		var getTargetPagename = function(link) {&lt;br /&gt;
			var targetPagename = mw.util.getParamValue(&amp;quot;title&amp;quot;, link.href);&lt;br /&gt;
			&lt;br /&gt;
			if (targetPagename === null) {&lt;br /&gt;
				var match = link.href.match(/^(.*)\/wiki\/([^#]+)(?:#.+)?$/);&lt;br /&gt;
				&lt;br /&gt;
				if (match) {&lt;br /&gt;
					targetPagename = decodeURIComponent(match[2]);&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			return targetPagename;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var getLang = function (element) {&lt;br /&gt;
			if (element.accelLang !== undefined) {&lt;br /&gt;
				return element.accelLang;&lt;br /&gt;
			}&lt;br /&gt;
			var hasLang = $(element).closest(&amp;quot;[lang]&amp;quot;)[0];&lt;br /&gt;
			var lang = hasLang ? hasLang.getAttribute(&amp;quot;lang&amp;quot;) : null;&lt;br /&gt;
			element.accelLang = lang;&lt;br /&gt;
			return lang;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var getPartOfSpeech = function(link) {&lt;br /&gt;
			// Acceleration can be added to inflection tables too.&lt;br /&gt;
			// This tells the search script to skip headers with these names.&lt;br /&gt;
			var skipheaders = [&lt;br /&gt;
				&amp;quot;alternative forms&amp;quot;,&lt;br /&gt;
				&amp;quot;antonyms&amp;quot;,&lt;br /&gt;
				&amp;quot;conjugation&amp;quot;,&lt;br /&gt;
				&amp;quot;declension&amp;quot;,&lt;br /&gt;
				&amp;quot;derived terms&amp;quot;, &lt;br /&gt;
				&amp;quot;inflection&amp;quot;,&lt;br /&gt;
				&amp;quot;mutation&amp;quot;,&lt;br /&gt;
				&amp;quot;related terms&amp;quot;,&lt;br /&gt;
				&amp;quot;synonyms&amp;quot;,&lt;br /&gt;
				&amp;quot;translations&amp;quot;,&lt;br /&gt;
				&amp;quot;usage notes&amp;quot;&lt;br /&gt;
			];&lt;br /&gt;
			&lt;br /&gt;
			for (var node = link; node !== null; node = node.previousSibling || node.parentNode) {&lt;br /&gt;
				if (node.nodeType == 1 &amp;amp;&amp;amp; (node.nodeName.match(/^H[3-6]$/) || (node.nodeName === &amp;#039;DIV&amp;#039; &amp;amp;&amp;amp; node.className.indexOf(&amp;#039;mw-heading&amp;#039;) !== -1))) {&lt;br /&gt;
					var header = $(node).find(&amp;quot;.mw-headline, h3, h4, h5, h6&amp;quot;);&lt;br /&gt;
					if (!header) {&lt;br /&gt;
						continue;&lt;br /&gt;
					}&lt;br /&gt;
					header = header.text().replace(/^[1-9.]* /, &amp;quot;&amp;quot;).toLowerCase();&lt;br /&gt;
					&lt;br /&gt;
					if (skipheaders.indexOf(header) == -1) {&lt;br /&gt;
						return header;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			throw new Error(&amp;quot;This entry seems to be formatted incorrectly. Does it have a language and part-of-speech header?&amp;quot;);&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var createAccelParam = function(link) {&lt;br /&gt;
			var classNames = Array.prototype.filter.call($(link).closest(&amp;quot;.form-of&amp;quot;)[0].classList,&lt;br /&gt;
				function (className) {&lt;br /&gt;
					return (/^(gender|origin|origin_transliteration|pos|target|transliteration)-.+|.+-form-of$/.test(className));&lt;br /&gt;
				});&lt;br /&gt;
			&lt;br /&gt;
			var accelParam = classNames.join(&amp;quot; &amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			var targetPagename = getTargetPagename(link);&lt;br /&gt;
			var targetHead = (link.innerText || link.textContent).replace(/ /g, &amp;quot;_&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			if (targetPagename != targetHead) {&lt;br /&gt;
				accelParam = &amp;quot;target-&amp;quot; + targetHead + &amp;quot; &amp;quot; + accelParam;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			return &amp;quot;pos-&amp;quot; + getPartOfSpeech(link).replace(/ /g, &amp;quot;_&amp;quot;) + &amp;quot; &amp;quot; + accelParam;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var storeAccelParam = function(link) {&lt;br /&gt;
			// Extract the targeted pagename from the URL,&lt;br /&gt;
			// and language code from the nearest element with a lang attribute&lt;br /&gt;
			var lang = getLang(link);&lt;br /&gt;
			var targetPagename = getTargetPagename(link);&lt;br /&gt;
			&lt;br /&gt;
			// Add page name to the list&lt;br /&gt;
			if (accelParamsByPagename[lang] === undefined) {&lt;br /&gt;
				accelParamsByPagename[lang] = {};&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (accelParamsByPagename[lang][targetPagename] === undefined) {&lt;br /&gt;
				accelParamsByPagename[lang][targetPagename] = [];&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			var accelParam = createAccelParam(link);&lt;br /&gt;
			&lt;br /&gt;
			if (accelParamsByPagename[lang][targetPagename].indexOf(accelParam) === -1) {&lt;br /&gt;
				accelParamsByPagename[lang][targetPagename].push(accelParam);&lt;br /&gt;
			}&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var processLink = function(link) {&lt;br /&gt;
			// Extract the targeted pagename from the URL,&lt;br /&gt;
			// and language code from the nearest element with a lang attribute&lt;br /&gt;
			var lang = getLang(link);&lt;br /&gt;
			var targetPagename = getTargetPagename(link);&lt;br /&gt;
			&lt;br /&gt;
			// Fetch the acceleration parameters from the store&lt;br /&gt;
			var accelParam = accelParamsByPagename[lang][targetPagename]&lt;br /&gt;
				.map(function (accel, i) {&lt;br /&gt;
					return &amp;quot;accel&amp;quot; + (i + 1).toString() + &amp;quot;=&amp;quot; + encodeURIComponent(accel);&lt;br /&gt;
				})&lt;br /&gt;
				.join(&amp;quot;&amp;amp;&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			// Convert a non-edit link into an edit link&lt;br /&gt;
			if (link.href.indexOf(&amp;quot;action=edit&amp;quot;) &amp;lt; 0) {&lt;br /&gt;
				link.href = link.href.replace(/^(.*)\/wiki\/([^#]+)(?:#.+)?$/, &amp;quot;$1/w/index.php?title=$2&amp;amp;action=edit&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Now build a new &amp;quot;green link&amp;quot; URL to replace the original red link with&lt;br /&gt;
			link.href +=&lt;br /&gt;
				&amp;quot;&amp;amp;editintro=MediaWiki:Gadget-AcceleratedFormCreation.js/intro&amp;quot; +&lt;br /&gt;
				&amp;quot;&amp;amp;accel_lang=&amp;quot; + encodeURIComponent(lang) +&lt;br /&gt;
				&amp;quot;&amp;amp;accel_lemma=&amp;quot; + encodeURIComponent(pageName.replace(/_/g, &amp;quot; &amp;quot;)) +&lt;br /&gt;
				&amp;quot;&amp;amp;&amp;quot; + accelParam + &lt;br /&gt;
				&amp;quot;&amp;amp;veswitched=1&amp;quot;;&lt;br /&gt;
			link.classList.add(&amp;quot;accelerated&amp;quot;);&lt;br /&gt;
			link.processedLink = true;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		// Mutation observer to respond when OrangeLinks modifies links&lt;br /&gt;
		var mutobs = new MutationObserver(function(mutations, observer) {&lt;br /&gt;
			mutations.forEach(function(mutation) {&lt;br /&gt;
				var link = mutation.target;&lt;br /&gt;
				if (!(mutation.attributeName == &amp;quot;class&amp;quot; &amp;amp;&amp;amp; link.tagName === &amp;quot;A&amp;quot;)) {&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				// Don&amp;#039;t process a link we&amp;#039;ve already been to&lt;br /&gt;
				if (link.processedLink) {&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				if (!$(link).hasClass(&amp;quot;orange-link&amp;quot;)) {&lt;br /&gt;
					return;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				// Process&lt;br /&gt;
				processLink(link);&lt;br /&gt;
			});&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// First generate and store all the parameters&lt;br /&gt;
		var oldtable = null;  // Were we previously inside a table?&lt;br /&gt;
		var columns = [];&lt;br /&gt;
		&lt;br /&gt;
		$(&amp;quot;.form-of a&amp;quot;).each(function() {&lt;br /&gt;
			// Are we currently inside a table?&lt;br /&gt;
			var $this = $(this);&lt;br /&gt;
			var table = $this.closest(&amp;quot;table&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			if (table.length &amp;gt; 0) {&lt;br /&gt;
				table = table[0];&lt;br /&gt;
			} else {&lt;br /&gt;
				table = null;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Was a column number specified on the current table cell?&lt;br /&gt;
			// jQuery.fn.data automatically converts an integer-like string&lt;br /&gt;
			// to a number.&lt;br /&gt;
			var col = $this.closest(&amp;quot;td[data-accel-col]&amp;quot;).first().data(&amp;quot;accel-col&amp;quot;);&lt;br /&gt;
			&lt;br /&gt;
			if (typeof col !== &amp;quot;number&amp;quot;) {&lt;br /&gt;
				col = null;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// If we were in a table, and we changed to another table or are no longer in one,&lt;br /&gt;
			// or if there is no column number attribute, flush the column lists.&lt;br /&gt;
			if (oldtable &amp;amp;&amp;amp; (oldtable !== table || col === null)) {&lt;br /&gt;
				for (var i = 0; i &amp;lt; columns.length; ++i) {&lt;br /&gt;
					for (var j = 0; j &amp;lt; columns[i].length; ++j) {&lt;br /&gt;
						storeAccelParam(columns[i][j]);&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				columns = [];&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			oldtable = table;&lt;br /&gt;
			&lt;br /&gt;
			// The nostore parameter causes the link to not be stored,&lt;br /&gt;
			// but it is processed later. The effect is that this link has no&lt;br /&gt;
			// effect on the ordering of forms.&lt;br /&gt;
			if ($(this).closest(&amp;quot;.form-of&amp;quot;).first().hasClass(&amp;quot;form-of-nostore&amp;quot;)) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// If there is a column number attribute, defer storing the link,&lt;br /&gt;
			// put it in the columns array instead.&lt;br /&gt;
			if (col !== null) {&lt;br /&gt;
				--col;  // Column attributes are 1-based, JS arrays are 0-based&lt;br /&gt;
				&lt;br /&gt;
				// Expand the columns list to fit the number of columns&lt;br /&gt;
				while (columns.length &amp;lt;= col) {&lt;br /&gt;
					columns.push([]);&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				// Save the link in the columns list&lt;br /&gt;
				columns[col].push(this);&lt;br /&gt;
			} else {&lt;br /&gt;
				// Store the link directly&lt;br /&gt;
				storeAccelParam(this);&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// Flush column lists&lt;br /&gt;
		for (var i = 0; i &amp;lt; columns.length; ++i) {&lt;br /&gt;
			for (var j = 0; j &amp;lt; columns[i].length; ++j) {&lt;br /&gt;
				storeAccelParam(columns[i][j]);&lt;br /&gt;
			}&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Then add them onto the links, or add a mutation observer&lt;br /&gt;
		$(&amp;quot;.form-of a&amp;quot;).each(function() {&lt;br /&gt;
			var $this = $(this);&lt;br /&gt;
			if ($this.hasClass(&amp;quot;new&amp;quot;) || $this.hasClass(&amp;quot;orange-link&amp;quot;)) {&lt;br /&gt;
				processLink(this);&lt;br /&gt;
			} else {&lt;br /&gt;
				// FIXME: There&amp;#039;s a small window for a race condition here.&lt;br /&gt;
				// If the &amp;quot;orange-link&amp;quot; class is added by OrangeLinks after the above if-statement is evaluated,&lt;br /&gt;
				// but before the observer is added, then the link won&amp;#039;t be processed.&lt;br /&gt;
				mutobs.observe(this, {attributes : true});&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
		// A function that force-processes all links and adds a class to those that would not have otherwise been processed.&lt;br /&gt;
		var forceProcessAllLinks = function() {&lt;br /&gt;
			$(&amp;quot;.form-of a&amp;quot;).each(function() {&lt;br /&gt;
				var $this = $(this);&lt;br /&gt;
				if (!($this.hasClass(&amp;quot;new&amp;quot;) || $this.hasClass(&amp;quot;orange-link&amp;quot;))) {&lt;br /&gt;
					this.classList.add(&amp;quot;accelerated-forced&amp;quot;);&lt;br /&gt;
				}&lt;br /&gt;
				processLink(this);&lt;br /&gt;
			});&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		window.accelForceProcessAllLinks = forceProcessAllLinks;&lt;br /&gt;
	} else if (mw.config.get(&amp;quot;wgAction&amp;quot;) === &amp;quot;edit&amp;quot;) {&lt;br /&gt;
		// Get the parameters from the URL&lt;br /&gt;
		var getAccelParams = function() {&lt;br /&gt;
			var accelParams = [];&lt;br /&gt;
			var i = 1;&lt;br /&gt;
			&lt;br /&gt;
			while (true) {&lt;br /&gt;
				var acceldata = mw.util.getParamValue(&amp;quot;accel&amp;quot; + i.toString());&lt;br /&gt;
				&lt;br /&gt;
				if (!acceldata) {&lt;br /&gt;
					break;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				// Default values&lt;br /&gt;
				var params = {&lt;br /&gt;
					pos: null,&lt;br /&gt;
					form: null,&lt;br /&gt;
					gender: null,&lt;br /&gt;
					transliteration: null,&lt;br /&gt;
					origin: mw.util.getParamValue(&amp;quot;accel_lemma&amp;quot;),&lt;br /&gt;
					origin_transliteration: null,&lt;br /&gt;
					target: pageName,&lt;br /&gt;
				};&lt;br /&gt;
				&lt;br /&gt;
				// Go over each part and add it&lt;br /&gt;
				var parts = acceldata.split(&amp;quot; &amp;quot;);&lt;br /&gt;
				&lt;br /&gt;
				for (var j = 0; j &amp;lt; parts.length; ++j) {&lt;br /&gt;
					var part = parts[j];&lt;br /&gt;
					&lt;br /&gt;
					var paramMatch = part.match(/^(gender|origin|origin_transliteration|pos|target|transliteration)-(.+)$/);&lt;br /&gt;
					if (paramMatch) {&lt;br /&gt;
						params[paramMatch[1]] = paramMatch[2].replace(/_/g, &amp;quot; &amp;quot;).replace(/\uFFF0/g, &amp;quot;_&amp;quot;);&lt;br /&gt;
					} else {&lt;br /&gt;
						var formMatch = part.match(/^(.+)-form-of$/);&lt;br /&gt;
						if (formMatch) {&lt;br /&gt;
							params.form = formMatch[1].replace(/_/g, &amp;quot; &amp;quot;).replace(/\uFFF0/g, &amp;quot;_&amp;quot;);&lt;br /&gt;
						}&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				accelParams.push(params);&lt;br /&gt;
				++i;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			return accelParams;&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		// Generates entries from the information&lt;br /&gt;
		var printArgs = function(accelParams) {&lt;br /&gt;
			var args = [&lt;br /&gt;
				&amp;quot;lang=&amp;quot; + mw.util.getParamValue(&amp;quot;accel_lang&amp;quot;),&lt;br /&gt;
				&amp;quot;origin_pagename=&amp;quot; + mw.util.getParamValue(&amp;quot;accel_lemma&amp;quot;),&lt;br /&gt;
				&amp;quot;target_pagename=&amp;quot; + pageName,&lt;br /&gt;
				&amp;quot;num=&amp;quot; + accelParams.length,&lt;br /&gt;
			];&lt;br /&gt;
			&lt;br /&gt;
			for (var i = 0; i &amp;lt; accelParams.length; ++i) {&lt;br /&gt;
				for (var key in accelParams[i]) {&lt;br /&gt;
					if (accelParams[i][key] !== null) {&lt;br /&gt;
						args.push(key + (i + 1) + &amp;quot;=&amp;quot; + accelParams[i][key].replace(/\|/g, &amp;quot;&amp;amp;#124;&amp;quot;));&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			return args.join(&amp;quot;|&amp;quot;);&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var showModuleError = function(errorText) {&lt;br /&gt;
			// Attempt to link to the line of the module in which the error occurred.&lt;br /&gt;
			errorText = errorText.replace(&lt;br /&gt;
				/(Module:[^#&amp;lt;&amp;gt;\[\]|{}_]+)(?: at line |:)(\d+)/,&lt;br /&gt;
				function (wholeMatch, moduleName, lineNumber) {&lt;br /&gt;
					var link = document.createElement(&amp;#039;a&amp;#039;);&lt;br /&gt;
					link.href = mw.util.getUrl(moduleName, {action: &amp;quot;edit&amp;quot;}) + &amp;quot;#mw-ce-l&amp;quot; + lineNumber;&lt;br /&gt;
					link.innerHTML = moduleName + &amp;quot; at line &amp;quot; + lineNumber;&lt;br /&gt;
					return &amp;quot;Lua error in &amp;quot; + link.outerHTML;&lt;br /&gt;
				});&lt;br /&gt;
			&lt;br /&gt;
			var errorBox =&lt;br /&gt;
				&amp;quot;&amp;lt;div id=\&amp;quot;accel-error\&amp;quot;&amp;gt;&amp;quot; +&lt;br /&gt;
				&amp;quot;&amp;lt;p&amp;gt;&amp;lt;big&amp;gt;An error occurred while generating the entry:&amp;lt;/big&amp;gt;&amp;lt;/p&amp;gt;&amp;quot; +&lt;br /&gt;
				&amp;quot;&amp;lt;p&amp;gt;&amp;quot; + errorText + &amp;quot;&amp;lt;/p&amp;gt;&amp;quot; +&lt;br /&gt;
				&amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;&lt;br /&gt;
			&lt;br /&gt;
			wikipreview.insertAdjacentHTML(&amp;quot;beforebegin&amp;quot;, errorBox);&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var receiveModuleResponse = function(response) {&lt;br /&gt;
			var newtext, result;&lt;br /&gt;
			&lt;br /&gt;
			try {&lt;br /&gt;
				result = JSON.parse(response.expandtemplates.wikitext);&lt;br /&gt;
			} catch (err) { // JSON parse error should not happen.&lt;br /&gt;
				mw.notify(err.msg);&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (result.error) { // module error&lt;br /&gt;
				showModuleError(result.error);&lt;br /&gt;
			} else { // successfully generated entries&lt;br /&gt;
				newtext = result.entries;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			for (i = 0; i &amp;lt; result.messages.length; ++i) {&lt;br /&gt;
				mw.notify(result.messages[i]);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			if (!newtext) {&lt;br /&gt;
				return;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			var newValue;&lt;br /&gt;
&lt;br /&gt;
			var langsection_regex = /^==([^=\n]+)==$/mg;&lt;br /&gt;
			var match = langsection_regex.exec(newtext);&lt;br /&gt;
			&lt;br /&gt;
			if (!match) {&lt;br /&gt;
				showModuleError(&amp;quot;No language section was found in the returned text.&amp;quot;);&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			var langname = match[1];&lt;br /&gt;
			&lt;br /&gt;
			// Does the page already exist?&lt;br /&gt;
			if (textbox.value) {&lt;br /&gt;
				var resultInBox = false;&lt;br /&gt;
				&lt;br /&gt;
				// Reset position at which regex starts its search.&lt;br /&gt;
				// Otherwise, regex starts matching after the index where it&lt;br /&gt;
				// found the language header in newtext.&lt;br /&gt;
				langsection_regex.lastIndex = 0;&lt;br /&gt;
				&lt;br /&gt;
				// Go over language sections to find where to insert our new one&lt;br /&gt;
				while ((match = langsection_regex.exec(textbox.value)) !== null) {&lt;br /&gt;
					if (match[1] == langname) {&lt;br /&gt;
						// There already exists a section for our language, display text in a separate box.&lt;br /&gt;
						resultInBox = true;&lt;br /&gt;
						break;&lt;br /&gt;
					} else if (match[1] == &amp;quot;Translingual&amp;quot; || match[1] == &amp;quot;English&amp;quot; || (langname != &amp;quot;English&amp;quot; &amp;amp;&amp;amp; match[1] &amp;lt; langname)) {&lt;br /&gt;
						// Skip past English and Translingual, or if the language sorts higher&lt;br /&gt;
						continue;&lt;br /&gt;
					} else {&lt;br /&gt;
						// We found the first match that sorts lower than our language, great.&lt;br /&gt;
						break;&lt;br /&gt;
					}&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				var scrollIndex;&lt;br /&gt;
				newValue = textbox.value;&lt;br /&gt;
				&lt;br /&gt;
				if (resultInBox) {&lt;br /&gt;
					// Display the result in a separate box.&lt;br /&gt;
					var insertTextBoxIn = document.getElementById(&amp;quot;accel-form-conflict-textbox-here&amp;quot;);&lt;br /&gt;
					if (insertTextBoxIn) {&lt;br /&gt;
						var newElement = document.createElement(&amp;quot;div&amp;quot;);&lt;br /&gt;
						newElement.id = insertTextBoxIn.id;&lt;br /&gt;
						var warning = document.createElement(&amp;quot;p&amp;quot;);&lt;br /&gt;
						warning.textContent = &amp;quot;A section for this language already exists. Please combine the new text manually:&amp;quot;;&lt;br /&gt;
						var textBox = document.createElement(&amp;quot;textarea&amp;quot;);&lt;br /&gt;
						textBox.setAttribute(&amp;quot;readonly&amp;quot;, true);&lt;br /&gt;
						textBox.setAttribute(&amp;quot;rows&amp;quot;, 10);&lt;br /&gt;
						textBox.textContent = newtext;&lt;br /&gt;
						newElement.appendChild(warning);&lt;br /&gt;
						newElement.appendChild(textBox);&lt;br /&gt;
						insertTextBoxIn.replaceWith(newElement);&lt;br /&gt;
					}&lt;br /&gt;
					&lt;br /&gt;
					scrollIndex = match !== null ? match.index : newValue.length;&lt;br /&gt;
				} else if (match === null) {&lt;br /&gt;
					// We found no language that our section should go before, so insert it at the end.&lt;br /&gt;
					newValue = newValue.trimEnd() + &amp;quot;\n\n&amp;quot;;&lt;br /&gt;
					scrollIndex = newValue.length;&lt;br /&gt;
					newValue = newValue + newtext;&lt;br /&gt;
				} else {&lt;br /&gt;
					// We found a language to insert before, so do that.&lt;br /&gt;
					newValue = newValue.substring(0, match.index) + newtext + &amp;quot;\n\n&amp;quot; + newValue.substring(match.index);&lt;br /&gt;
					scrollIndex = match.index;&lt;br /&gt;
				}&lt;br /&gt;
				&lt;br /&gt;
				// Scroll the textbox to the newly added section. First scroll all the way down,&lt;br /&gt;
				// then set the cursor to the start of the new section, which scrolls back up&lt;br /&gt;
				// to the new section&amp;#039;s language header.&lt;br /&gt;
				textbox.scrollTop = textbox.scrollHeight;&lt;br /&gt;
				textbox.selectionStart = scrollIndex;&lt;br /&gt;
				textbox.selectionEnd = scrollIndex;&lt;br /&gt;
				&lt;br /&gt;
				summary.value = &amp;quot;Adding forms of &amp;quot; + langname + &amp;quot; [[&amp;quot; + lemma + &amp;quot;]] ([[WT:ACCEL|Accelerated]])&amp;quot;;&lt;br /&gt;
			} else {&lt;br /&gt;
				newValue = newtext;&lt;br /&gt;
				summary.value = &amp;quot;Creating forms of &amp;quot; + langname + &amp;quot; [[&amp;quot; + lemma + &amp;quot;]] ([[WT:ACCEL|Accelerated]])&amp;quot;;&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
			// Set textbox text. Setting textbox.value is unreliable.&lt;br /&gt;
			$(textbox).val(newValue);&lt;br /&gt;
		};&lt;br /&gt;
		&lt;br /&gt;
		var wikipreview = document.getElementById(&amp;quot;wikiPreview&amp;quot;);&lt;br /&gt;
		var textbox = document.getElementById(&amp;quot;wpTextbox1&amp;quot;);&lt;br /&gt;
		var summary = document.getElementById(&amp;quot;wpSummary&amp;quot;);&lt;br /&gt;
		var lang = mw.util.getParamValue(&amp;quot;accel_lang&amp;quot;);&lt;br /&gt;
		var lemma = mw.util.getParamValue(&amp;quot;accel_lemma&amp;quot;);&lt;br /&gt;
		&lt;br /&gt;
		if (!(wikipreview &amp;amp;&amp;amp; textbox &amp;amp;&amp;amp; summary &amp;amp;&amp;amp; lang &amp;amp;&amp;amp; lemma)) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		// Gather all the information that was given in the URL&lt;br /&gt;
		var accelParams = getAccelParams();&lt;br /&gt;
		&lt;br /&gt;
		if (!accelParams) {&lt;br /&gt;
			return;&lt;br /&gt;
		}&lt;br /&gt;
		&lt;br /&gt;
		var module = &amp;quot;accel&amp;quot;, funcName = &amp;quot;generate_JSON&amp;quot;;&lt;br /&gt;
		mw.loader.using(&amp;quot;mediawiki.api&amp;quot;, function() {&lt;br /&gt;
			new mw.Api().get({&lt;br /&gt;
				&amp;quot;action&amp;quot;: &amp;quot;expandtemplates&amp;quot;,&lt;br /&gt;
				&amp;quot;format&amp;quot;: &amp;quot;json&amp;quot;,&lt;br /&gt;
				&amp;quot;text&amp;quot;: &amp;quot;{{#invoke:&amp;quot; + module + &amp;quot;|&amp;quot; + funcName + &amp;quot;|&amp;quot; + printArgs(accelParams) + &amp;quot;}}&amp;quot;,&lt;br /&gt;
				&amp;quot;prop&amp;quot;: &amp;quot;wikitext&amp;quot;&lt;br /&gt;
			}).done(receiveModuleResponse);&lt;br /&gt;
			&lt;br /&gt;
		});&lt;br /&gt;
	}&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
// &amp;lt;/nowiki&amp;gt;&lt;/div&gt;</summary>
		<author><name>Sware</name></author>
	</entry>
</feed>