<?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=Module%3Acategory_tree%2Faffixes_and_compounds</id>
	<title>Module:category tree/affixes and compounds - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://linguifex.com/w/index.php?action=history&amp;feed=atom&amp;title=Module%3Acategory_tree%2Faffixes_and_compounds"/>
	<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:category_tree/affixes_and_compounds&amp;action=history"/>
	<updated>2026-04-22T02:43:33Z</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=Module:category_tree/affixes_and_compounds&amp;diff=496725&amp;oldid=prev</id>
		<title>Sware at 15:33, 21 April 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:category_tree/affixes_and_compounds&amp;diff=496725&amp;oldid=prev"/>
		<updated>2026-04-21T15:33:20Z</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 15:33, 21 April 2026&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-l270&quot;&gt;Line 270:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 270:&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;		local parents = {}&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;		local parents = {}&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;		if id then&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;		if id then&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;			if pos == &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms&lt;/del&gt;&quot; &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or &lt;/del&gt;pos == &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;words&lt;/del&gt;&quot; then&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;			if pos == &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;words&quot; then&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;				-- don&#039;t allow formerly-named categories with &quot;words&lt;/ins&gt;&quot;&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;				return nil&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;			end&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;			if &lt;/ins&gt;pos == &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms&lt;/ins&gt;&quot; then&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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; 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;				table.insert(parents, {name = &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pos .. &lt;/del&gt;&quot; &quot; .. affixtype .. &quot;ed with &quot; .. term_and_id, sort = id .. &quot;, &quot; .. pos, args = args})&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;				table.insert(parents, {name = &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms &lt;/ins&gt;&quot; .. affixtype .. &quot;ed with &quot; .. term_and_id, sort = id .. &quot;, &quot; .. pos, args = args})&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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;			end&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;			end&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;		elseif pos == &quot;words&quot; then&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;			-- don&#039;t allow formerly-named categories with &quot;words&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;			return nil&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;		elseif pos ~= &amp;quot;terms&amp;quot; then&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;		elseif pos ~= &amp;quot;terms&amp;quot; then&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;			table.insert(parents, {name = &amp;quot;terms &amp;quot; .. affixtype .. &amp;quot;ed with &amp;quot; .. term, sort = pos, args = args})&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;			table.insert(parents, {name = &amp;quot;terms &amp;quot; .. affixtype .. &amp;quot;ed with &amp;quot; .. term, sort = pos, args = args})&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=Module:category_tree/affixes_and_compounds&amp;diff=496698&amp;oldid=prev</id>
		<title>Sware at 15:22, 21 April 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:category_tree/affixes_and_compounds&amp;diff=496698&amp;oldid=prev"/>
		<updated>2026-04-21T15:22:56Z</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 15:22, 21 April 2026&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-l219&quot;&gt;Line 219:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 219:&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;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;table.insert(handlers, function(data)&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;table.insert(handlers, function(data)&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;	local labelpref, pos, affixtype, term_and_id = data.label:match(&quot;^(([&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;%w&#039; &lt;/del&gt;-]+) ([a-z]+fix)ed with )(.+)$&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;	local labelpref, pos, affixtype, term_and_id = data.label:match(&quot;^(([&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a-z &lt;/ins&gt;-]+) ([a-z]+fix)ed with )(.+)$&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;	if affixtype then&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;	if affixtype then&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;		local term, id = term_and_id:match(&amp;quot;^(.+) %(([^()]+)%)$&amp;quot;)&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;		local term, id = term_and_id:match(&amp;quot;^(.+) %(([^()]+)%)$&amp;quot;)&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-l270&quot;&gt;Line 270:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 270:&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;		local parents = {}&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;		local parents = {}&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;		if id then&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;		if id then&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;			if pos == &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;words&quot; then&lt;/del&gt;&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;			if pos == &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms&lt;/ins&gt;&quot; &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;or &lt;/ins&gt;pos == &quot;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;words&lt;/ins&gt;&quot; then&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				-- don&#039;t allow formerly-named categories with &lt;/del&gt;&quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;words&quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;				return nil&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			end&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			if &lt;/del&gt;pos == &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms&lt;/del&gt;&quot; then&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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; 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;				table.insert(parents, {name = &quot;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;terms &lt;/del&gt;&quot; .. affixtype .. &quot;ed with &quot; .. term_and_id, sort = id .. &quot;, &quot; .. pos, args = args})&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;				table.insert(parents, {name = &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pos .. &lt;/ins&gt;&quot; &quot; .. affixtype .. &quot;ed with &quot; .. term_and_id, sort = id .. &quot;, &quot; .. pos, args = args})&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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;				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&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;			end&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;			end&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;		elseif pos == &quot;words&quot; then&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			-- don&#039;t allow formerly-named categories with &quot;words&quot;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;			return nil&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&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;		elseif pos ~= &amp;quot;terms&amp;quot; then&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;		elseif pos ~= &amp;quot;terms&amp;quot; then&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;			table.insert(parents, {name = &amp;quot;terms &amp;quot; .. affixtype .. &amp;quot;ed with &amp;quot; .. term, sort = pos, args = args})&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;			table.insert(parents, {name = &amp;quot;terms &amp;quot; .. affixtype .. &amp;quot;ed with &amp;quot; .. term, sort = pos, args = args})&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=Module:category_tree/affixes_and_compounds&amp;diff=496678&amp;oldid=prev</id>
		<title>Sware at 14:59, 21 April 2026</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:category_tree/affixes_and_compounds&amp;diff=496678&amp;oldid=prev"/>
		<updated>2026-04-21T14:59:51Z</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 14:59, 21 April 2026&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-l219&quot;&gt;Line 219:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 219:&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;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;table.insert(handlers, function(data)&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;table.insert(handlers, function(data)&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;	local labelpref, pos, affixtype, term_and_id = data.label:match(&quot;^(([&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;a-z &lt;/del&gt;-]+) ([a-z]+fix)ed with )(.+)$&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;	local labelpref, pos, affixtype, term_and_id = data.label:match(&quot;^(([&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;%w&#039; &lt;/ins&gt;-]+) ([a-z]+fix)ed with )(.+)$&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;	if affixtype then&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;	if affixtype then&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;		local term, id = term_and_id:match(&amp;quot;^(.+) %(([^()]+)%)$&amp;quot;)&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;		local term, id = term_and_id:match(&amp;quot;^(.+) %(([^()]+)%)$&amp;quot;)&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=Module:category_tree/affixes_and_compounds&amp;diff=494668&amp;oldid=prev</id>
		<title>Sware: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:category_tree/affixes_and_compounds&amp;diff=494668&amp;oldid=prev"/>
		<updated>2026-04-21T11:22:23Z</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 11:22, 21 April 2026&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=Module:category_tree/affixes_and_compounds&amp;diff=494667&amp;oldid=prev</id>
		<title>wikt&gt;Surjection: Changed protection settings for &quot;Module:category tree/affixes and compounds&quot;: Highly visible template/module ([Edit=Allow only autopatrollers] (indefinite) [Move=Allow only autopatrollers] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://linguifex.com/w/index.php?title=Module:category_tree/affixes_and_compounds&amp;diff=494667&amp;oldid=prev"/>
		<updated>2026-04-15T09:16:35Z</updated>

		<summary type="html">&lt;p&gt;Changed protection settings for &amp;quot;&lt;a href=&quot;/wiki/Module:category_tree/affixes_and_compounds&quot; title=&quot;Module:category tree/affixes and compounds&quot;&gt;Module:category tree/affixes and compounds&lt;/a&gt;&amp;quot;: Highly visible template/module ([Edit=Allow only autopatrollers] (indefinite) [Move=Allow only autopatrollers] (indefinite))&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;local labels = {}&lt;br /&gt;
local raw_categories = {}&lt;br /&gt;
local handlers = {}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
--                                                                         --&lt;br /&gt;
--                                  LABELS                                 --&lt;br /&gt;
--                                                                         --&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;alliterative compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} noun phrases composed of two or more stems that alliterate.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;, &amp;quot;alliterative phrases&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;antonymous compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds in which one part is an antonym of the other.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;dvandva compounds&amp;quot;, sort = &amp;quot;antonym&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;bahuvrihi compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds in which the first part (A) modifies the second (B), and whose meaning follows a [[metonymic]] pattern: “&amp;lt;person&amp;gt; having a B that is A.”&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;, &amp;quot;exocentric compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
-- Add &amp;quot;compound POS&amp;quot; categories for various parts of speech.&lt;br /&gt;
&lt;br /&gt;
local compound_poses = {&lt;br /&gt;
	&amp;quot;adjectives&amp;quot;,&lt;br /&gt;
	&amp;quot;adverbs&amp;quot;,&lt;br /&gt;
	&amp;quot;conjunctions&amp;quot;,&lt;br /&gt;
	&amp;quot;determiners&amp;quot;,&lt;br /&gt;
	&amp;quot;interjections&amp;quot;,&lt;br /&gt;
	&amp;quot;nouns&amp;quot;,&lt;br /&gt;
	&amp;quot;numerals&amp;quot;,&lt;br /&gt;
	&amp;quot;particles&amp;quot;,&lt;br /&gt;
	&amp;quot;postpositions&amp;quot;,&lt;br /&gt;
	&amp;quot;prefixes&amp;quot;,&lt;br /&gt;
	&amp;quot;prepositions&amp;quot;,&lt;br /&gt;
	&amp;quot;pronouns&amp;quot;,&lt;br /&gt;
	&amp;quot;proper nouns&amp;quot;,&lt;br /&gt;
	&amp;quot;suffixes&amp;quot;,&lt;br /&gt;
	&amp;quot;verbs&amp;quot;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for _, pos in ipairs(compound_poses) do&lt;br /&gt;
	labels[&amp;quot;compound &amp;quot; .. pos] = {&lt;br /&gt;
		description = &amp;quot;{{{langname}}} &amp;quot; .. pos .. &amp;quot; composed of two or more stems.&amp;quot;,&lt;br /&gt;
		parents = {{name = &amp;quot;compound terms&amp;quot;, sort = &amp;quot; &amp;quot;}, pos},&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;compound determinatives&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} determinatives composed of two or more stems.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;, &amp;quot;determiners&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;compound terms&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems.&amp;quot;,&lt;br /&gt;
	umbrella_parents = &amp;quot;Terms by etymology subcategories by language&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;terms by etymology&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;dvandva compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems whose stems could be connected by an &amp;#039;and&amp;#039;.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;dvigu compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} [[tatpuruṣa]] compounds where the modifying member is a number&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;tatpurusa compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;endocentric compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems, one of which is the [[w:head (linguistics)|head]] of that compound.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;endocentric noun-noun compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems, one of which is the [[w:head (linguistics)|head]] of that compound.&amp;quot;,&lt;br /&gt;
	breadcrumb = &amp;quot;noun-noun&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;endocentric compounds&amp;quot;, &amp;quot;compound terms&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;endocentric verb-noun compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds in which the first element is a verbal stem, the second a nominal stem and the head of the compound.&amp;quot;,&lt;br /&gt;
	breadcrumb = &amp;quot;verb-noun&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;endocentric compounds&amp;quot;, &amp;quot;verb-noun compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;exocentric compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems, none of which is the [[w:head (linguistics)|head]] of that compound.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;exocentric verb-noun compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds in which the first element is a transitive verb, the second a noun functioning as its direct object, and whose referent is the person or thing doing the action.&amp;quot;,&lt;br /&gt;
	breadcrumb = &amp;quot;verb-noun&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;exocentric compounds&amp;quot;, &amp;quot;verb-noun compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;karmadharaya compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems in which the main stem determines the case endings.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;tatpurusa compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;itaretara dvandva compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems whose stems could be connected by an &amp;#039;and&amp;#039;.&amp;quot;,&lt;br /&gt;
	breadcrumb = &amp;quot;itaretara&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;dvandva compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;rhyming compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} noun phrases composed of two or more stems that rhyme.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;, &amp;quot;rhyming phrases&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;samahara dvandva compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems whose stems could be connected by an &amp;#039;and&amp;#039;.&amp;quot;,&lt;br /&gt;
	breadcrumb = &amp;quot;samahara&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;dvandva compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;shitgibbons&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms that consist of a single-syllable [[expletive]] followed by a two-syllable [[trochee]] that serves as a [[nominalizer]] or [[intensifier]].&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;endocentric compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;synonymous compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds in which one part is a synonym of the other.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;dvandva compounds&amp;quot;, sort = &amp;quot;synonym&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;tatpurusa compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;verb-noun compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds in which the first element is a transitive verb, the second a noun functioning as its direct object, and whose referent is the person or thing doing the action, or an adjective describing such a person or thing.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;verb-object compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;verb-object compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds in which the first element is a transitive verb, the second a term (usually but not always a noun) functioning as its (normally direct) object, and whose referent is the person or thing doing the action, or an adjective describing such a person or thing.&amp;quot;,&lt;br /&gt;
	additional = &amp;quot;Examples in English are {{m|en|pickpocket|lit=someone who picks pockets}} and {{m|en|catch-all|lit=something that catches everything}}.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;verb-verb compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} compounds composed of two or more verbs in apposition, often either synonyms or antonyms, and whose referent refers to the result of performing those actions.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;compound terms&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;vrddhi derivatives&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms derived from a Proto-Indo-European root by the process of [[w:vṛddhi|vṛddhi]] derivation.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;terms by etymology&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;vrddhi gerundives&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} [[gerundive]]s derived from a Proto-Indo-European root by the process of [[w:vṛddhi|vṛddhi]] derivation.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;vrddhi derivatives&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
labels[&amp;quot;vyadhikarana compounds&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;{{{langname}}} terms composed of two or more stems in which the non-main stem determines the case endings.&amp;quot;,&lt;br /&gt;
	parents = {&amp;quot;tatpurusa compounds&amp;quot;},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
for _, fixtype in ipairs({&amp;quot;circumfix&amp;quot;, &amp;quot;infix&amp;quot;, &amp;quot;interfix&amp;quot;, &amp;quot;prefix&amp;quot;, &amp;quot;suffix&amp;quot;,}) do&lt;br /&gt;
	labels[&amp;quot;terms by &amp;quot; .. fixtype] = {&lt;br /&gt;
		description = &amp;quot;{{{langname}}} terms categorized by their &amp;quot; .. fixtype .. &amp;quot;es.&amp;quot;,&lt;br /&gt;
		umbrella_parents = &amp;quot;Terms by etymology subcategories by language&amp;quot;,&lt;br /&gt;
		parents = {{name = &amp;quot;terms by etymology&amp;quot;, sort = fixtype}, fixtype .. &amp;quot;es&amp;quot;},&lt;br /&gt;
	}&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-- Add &amp;#039;umbrella_parents&amp;#039; key if not already present.&lt;br /&gt;
for key, data in pairs(labels) do&lt;br /&gt;
	-- NOTE: umbrella.parents overrides umbrella_parents if both are given.&lt;br /&gt;
	if not data.umbrella_parents then&lt;br /&gt;
		data.umbrella_parents = &amp;quot;Types of compound terms by language&amp;quot;&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
--                                                                         --&lt;br /&gt;
--                              RAW CATEGORIES                             --&lt;br /&gt;
--                                                                         --&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
raw_categories[&amp;quot;Types of compound terms by language&amp;quot;] = {&lt;br /&gt;
	description = &amp;quot;Umbrella categories covering topics related to types of compound terms.&amp;quot;,&lt;br /&gt;
	additional = &amp;quot;{{{umbrella_meta_msg}}}&amp;quot;,&lt;br /&gt;
	parents = {&lt;br /&gt;
		&amp;quot;Umbrella metacategories&amp;quot;,&lt;br /&gt;
		{name = &amp;quot;compound terms&amp;quot;, is_label = true, sort = &amp;quot; &amp;quot;},&lt;br /&gt;
		{name = &amp;quot;Terms by etymology subcategories by language&amp;quot;, sort = &amp;quot; &amp;quot;},&lt;br /&gt;
	},&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
--                                                                         --&lt;br /&gt;
--                                 HANDLERS                                --&lt;br /&gt;
--                                                                         --&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
------------------------------ Affix handlers -------------------------------&lt;br /&gt;
-----------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
table.insert(handlers, function(data)&lt;br /&gt;
	local labelpref, pos, affixtype, term_and_id = data.label:match(&amp;quot;^(([a-z -]+) ([a-z]+fix)ed with )(.+)$&amp;quot;)&lt;br /&gt;
	if affixtype then&lt;br /&gt;
		local term, id = term_and_id:match(&amp;quot;^(.+) %(([^()]+)%)$&amp;quot;)&lt;br /&gt;
		term = term or term_and_id&lt;br /&gt;
&lt;br /&gt;
		-- Convert term/alt into affixes if needed&lt;br /&gt;
		local desc = {&lt;br /&gt;
			[&amp;quot;prefix&amp;quot;]		= &amp;quot;beginning with the prefix&amp;quot;,&lt;br /&gt;
			[&amp;quot;suffix&amp;quot;]		= &amp;quot;ending with the suffix&amp;quot;,&lt;br /&gt;
			[&amp;quot;circumfix&amp;quot;]	= &amp;quot;bookended with the circumfix&amp;quot;,&lt;br /&gt;
			[&amp;quot;infix&amp;quot;]		= &amp;quot;spliced with the infix&amp;quot;,&lt;br /&gt;
			[&amp;quot;interfix&amp;quot;]	= &amp;quot;joined with the interfix&amp;quot;,&lt;br /&gt;
			-- Transfixes not supported currently.&lt;br /&gt;
			-- [&amp;quot;transfix&amp;quot;]	= &amp;quot;patterned with the transfix&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
		if not desc[affixtype] then&lt;br /&gt;
			return nil&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		-- Here, {LANG} is replaced with the actual language, {TERM_AND_ID} with the actual term (or with &amp;#039;TERM&amp;lt;id:ID&amp;gt;&amp;#039;&lt;br /&gt;
		-- if there is an ID), {BASE} with &amp;#039;&amp;lt;var&amp;gt;base&amp;lt;/var&amp;gt;&amp;#039;, {BASE2} with &amp;#039;&amp;lt;var&amp;gt;base2&amp;lt;/var&amp;gt;&amp;#039;, {BASE_EXPL} with an&lt;br /&gt;
		-- explanation of what &amp;quot;base&amp;quot; means, {BASE_BASE2_EXPL} with an explanation of what &amp;quot;base&amp;quot; and &amp;quot;base2&amp;quot; mean, and&lt;br /&gt;
		-- {POS} with &amp;#039;|pos=POS&amp;#039; if there is a `pos` other than &amp;quot;terms&amp;quot;, otherwise a blank string.&lt;br /&gt;
		local what_categorizes = {&lt;br /&gt;
			[&amp;quot;prefix&amp;quot;] = &amp;quot;{{tl|af|{LANG}|{TERM_AND_ID}|{BASE}{POS}}} or {{tl|affix|{LANG}|{TERM_AND_ID}|{BASE}{POS}}} (or the more specific and less-preferred equivalents {{tl|pre}} or {{tl|prefix}}), where {BASE_EXPL}&amp;quot;,&lt;br /&gt;
			[&amp;quot;suffix&amp;quot;] = &amp;quot;{{tl|af|{LANG}|{BASE}|{TERM_AND_ID}{POS}}} or {{tl|affix|{LANG}|{BASE}|{TERM_AND_ID}{POS}}} (or the more specific and less-preferred equivalents {{tl|suf}} or {{tl|suffix}}), where {BASE_EXPL}&amp;quot;,&lt;br /&gt;
			[&amp;quot;circumfix&amp;quot;] = &amp;quot;{{tl|af|{LANG}|{BASE}|{TERM_AND_ID}{POS}}} or {{tl|affix|{LANG}|{BASE}|{TERM_AND_ID}{POS}}}, where {BASE_EXPL}&amp;quot;,&lt;br /&gt;
			[&amp;quot;infix&amp;quot;] = &amp;quot;{{tl|infix|{LANG}|{BASE}|{TERM_AND_ID}{POS}}}, where {BASE_EXPL}&amp;quot;,&lt;br /&gt;
			[&amp;quot;interfix&amp;quot;] = &amp;quot;{{tl|af|{LANG}|{BASE}|{TERM_AND_ID}{POS}|{BASE2}}} or {{tl|affix|{LANG}|{BASE}|{TERM_AND_ID}|{BASE2}{POS}}}, where {BASE_BASE2_EXPL}&amp;quot;,&lt;br /&gt;
		}&lt;br /&gt;
&lt;br /&gt;
		local args = require(&amp;quot;Module:parameters&amp;quot;).process(data.args, {&lt;br /&gt;
			[&amp;quot;alt&amp;quot;] = true,&lt;br /&gt;
			[&amp;quot;sc&amp;quot;] = true,&lt;br /&gt;
			[&amp;quot;sort&amp;quot;] = true,&lt;br /&gt;
			[&amp;quot;tr&amp;quot;] = true,&lt;br /&gt;
			[&amp;quot;ts&amp;quot;] = true,&lt;br /&gt;
		})&lt;br /&gt;
		local sc = data.sc or args.sc and require(&amp;quot;Module:scripts&amp;quot;).getByCode(args.sc, &amp;quot;sc&amp;quot;) or nil&lt;br /&gt;
		local m_affix = require(&amp;quot;Module:affix&amp;quot;)&lt;br /&gt;
		-- Call make_affix to add display hyphens if they&amp;#039;re not already present.&lt;br /&gt;
		local _, display_term, lookup_term = m_affix.make_affix(term, data.lang, sc, affixtype, nil, true)&lt;br /&gt;
		local _, display_alt = m_affix.make_affix(args.alt, data.lang, sc, affixtype)&lt;br /&gt;
		local _, display_tr = m_affix.make_affix(args.tr, data.lang, require(&amp;quot;Module:scripts&amp;quot;).getByCode(&amp;quot;Latn&amp;quot;), affixtype)&lt;br /&gt;
		local _, display_ts = m_affix.make_affix(args.ts, data.lang, require(&amp;quot;Module:scripts&amp;quot;).getByCode(&amp;quot;Latn&amp;quot;), affixtype)&lt;br /&gt;
		local m_script_utilities = require(&amp;quot;Module:script utilities&amp;quot;)&lt;br /&gt;
		local id_text = id and &amp;quot; (&amp;quot; .. id .. &amp;quot;)&amp;quot; or &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
		-- Compute parents.&lt;br /&gt;
		local parents = {}&lt;br /&gt;
		if id then&lt;br /&gt;
			if pos == &amp;quot;words&amp;quot; then&lt;br /&gt;
				-- don&amp;#039;t allow formerly-named categories with &amp;quot;words&amp;quot;&lt;br /&gt;
				return nil&lt;br /&gt;
			end&lt;br /&gt;
			if pos == &amp;quot;terms&amp;quot; then&lt;br /&gt;
				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&lt;br /&gt;
			else&lt;br /&gt;
				table.insert(parents, {name = &amp;quot;terms &amp;quot; .. affixtype .. &amp;quot;ed with &amp;quot; .. term_and_id, sort = id .. &amp;quot;, &amp;quot; .. pos, args = args})&lt;br /&gt;
				table.insert(parents, {name = labelpref .. term, sort = id, args = args})&lt;br /&gt;
			end&lt;br /&gt;
		elseif pos == &amp;quot;words&amp;quot; then&lt;br /&gt;
			-- don&amp;#039;t allow formerly-named categories with &amp;quot;words&amp;quot;&lt;br /&gt;
			return nil&lt;br /&gt;
		elseif pos ~= &amp;quot;terms&amp;quot; then&lt;br /&gt;
			table.insert(parents, {name = &amp;quot;terms &amp;quot; .. affixtype .. &amp;quot;ed with &amp;quot; .. term, sort = pos, args = args})&lt;br /&gt;
		end&lt;br /&gt;
		table.insert(parents, {name = &amp;quot;terms by &amp;quot; .. affixtype, sort = (data.lang:makeSortKey(data.lang:stripDiacritics(args.sort or term)))})&lt;br /&gt;
&lt;br /&gt;
		-- If other affixes are mapped to this one, show them.&lt;br /&gt;
		local additional&lt;br /&gt;
&lt;br /&gt;
		if data.lang then&lt;br /&gt;
			local langcode = data.lang:getCode()&lt;br /&gt;
			if m_affix.langs_with_lang_specific_data[langcode] then&lt;br /&gt;
				local langdata = mw.loadData(m_affix.affix_lang_data_module_prefix .. langcode)&lt;br /&gt;
				local variants = {}&lt;br /&gt;
				if langdata.affix_mappings then&lt;br /&gt;
					for variant, canonical in pairs(langdata.affix_mappings) do&lt;br /&gt;
						-- Above, we converted the stripped link term as we received it to the lookup form, so we&lt;br /&gt;
						-- can look up the variants that are mapped to this term. Once we find them, map them to&lt;br /&gt;
						-- display form.&lt;br /&gt;
						local is_variant = false&lt;br /&gt;
						if type(canonical) == &amp;quot;table&amp;quot; then&lt;br /&gt;
							for _, canonical_v in pairs(canonical) do&lt;br /&gt;
								if canonical_v == lookup_term then&lt;br /&gt;
									is_variant = true&lt;br /&gt;
									break&lt;br /&gt;
								end&lt;br /&gt;
							end&lt;br /&gt;
						else&lt;br /&gt;
							is_variant = canonical == lookup_term&lt;br /&gt;
						end&lt;br /&gt;
						if is_variant then&lt;br /&gt;
							local _, display_variant = m_affix.make_affix(variant, data.lang, sc, affixtype)&lt;br /&gt;
							table.insert(variants, &amp;quot;{{m|&amp;quot; .. langcode .. &amp;quot;|&amp;quot; .. display_variant .. &amp;quot;}}&amp;quot;)&lt;br /&gt;
						end&lt;br /&gt;
					end&lt;br /&gt;
					if #variants &amp;gt; 0 then&lt;br /&gt;
						table.sort(variants)&lt;br /&gt;
						additional = (&amp;quot;This category also includes terms %sed with %s.&amp;quot;):format(affixtype,&lt;br /&gt;
							require(&amp;quot;Module:table&amp;quot;).serialCommaJoin(variants))&lt;br /&gt;
					end&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		if data.lang then&lt;br /&gt;
			local m_str_utils = require(&amp;quot;Module:string utilities&amp;quot;)&lt;br /&gt;
			local what_categorizes_msg = what_categorizes[affixtype]&lt;br /&gt;
			if not what_categorizes_msg then&lt;br /&gt;
				error((&amp;quot;Internal error: No what_categorizes value for affixtype &amp;#039;%s&amp;#039; for label &amp;#039;%s&amp;#039;, lang &amp;#039;%s&amp;#039;&amp;quot;):&lt;br /&gt;
					format(affixtype, data.label, data.lang:getCode()))&lt;br /&gt;
			end&lt;br /&gt;
			what_categorizes_msg = &amp;quot;Terms are placed in this category using &amp;quot; .. (what_categorizes_msg&lt;br /&gt;
				:gsub(&amp;quot;{LANG}&amp;quot;, data.lang:getCode())&lt;br /&gt;
				:gsub(&amp;quot;{TERM_AND_ID}&amp;quot;, m_str_utils.replacement_escape(&lt;br /&gt;
					id and (&amp;quot;%s&amp;lt;id:%s&amp;gt;&amp;quot;):format(term, id) or term))&lt;br /&gt;
				:gsub(&amp;quot;{POS}&amp;quot;, m_str_utils.replacement_escape(&lt;br /&gt;
					pos == &amp;quot;terms&amp;quot; and &amp;quot;&amp;quot; or (&amp;quot;|pos=%s&amp;quot;):format(pos)))&lt;br /&gt;
				:gsub(&amp;quot;{BASE}&amp;quot;, &amp;quot;&amp;lt;var&amp;gt;base&amp;lt;/var&amp;gt;&amp;quot;)&lt;br /&gt;
				:gsub(&amp;quot;{BASE2}&amp;quot;, &amp;quot;&amp;lt;var&amp;gt;base2&amp;lt;/var&amp;gt;&amp;quot;)&lt;br /&gt;
				:gsub(&amp;quot;{BASE_EXPL}&amp;quot;, &amp;quot;&amp;lt;code&amp;gt;&amp;lt;var&amp;gt;base&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt; is the base lemma from which this term is derived&amp;quot;)&lt;br /&gt;
				:gsub(&amp;quot;{BASE_BASE2_EXPL}&amp;quot;, &amp;quot;&amp;lt;code&amp;gt;&amp;lt;var&amp;gt;base&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&amp;lt;var&amp;gt;base2&amp;lt;/var&amp;gt;&amp;lt;/code&amp;gt; are the &amp;quot; ..&lt;br /&gt;
					&amp;quot;base lemmas from which this term is derived&amp;quot;)&lt;br /&gt;
			) .. &amp;quot;.&amp;quot;&lt;br /&gt;
			&lt;br /&gt;
			if data.lang:getCode() == &amp;quot;ja&amp;quot; then&lt;br /&gt;
				what_categorizes_msg =&lt;br /&gt;
					require(&amp;quot;Module:category tree/fam/jpx/what-categorizes-msg&amp;quot;)&lt;br /&gt;
					.get_what_categorizes_msg(term, nil, affixtype)&lt;br /&gt;
			end&lt;br /&gt;
			&lt;br /&gt;
			if what_categorizes_msg and what_categorizes_msg ~= &amp;quot;&amp;quot; then&lt;br /&gt;
				if additional then&lt;br /&gt;
					additional = additional .. &amp;quot;\n\n&amp;quot; .. what_categorizes_msg&lt;br /&gt;
				else&lt;br /&gt;
					additional = what_categorizes_msg&lt;br /&gt;
				end&lt;br /&gt;
			end&lt;br /&gt;
		end&lt;br /&gt;
&lt;br /&gt;
		return {&lt;br /&gt;
			description = &amp;quot;{{{langname}}} &amp;quot; .. pos .. &amp;quot; &amp;quot; .. desc[affixtype] .. &amp;quot; &amp;quot; .. require(&amp;quot;Module:links&amp;quot;).full_link({&lt;br /&gt;
				lang = data.lang, term = display_term, alt = display_alt, sc = sc, id = id, tr = display_tr, ts = display_ts}, &amp;quot;term&amp;quot;) .. &amp;quot;.&amp;quot;,&lt;br /&gt;
			additional = additional,&lt;br /&gt;
			breadcrumb = pos == &amp;quot;terms&amp;quot; and m_script_utilities.tag_text(display_alt or display_term, data.lang, sc, &amp;quot;term&amp;quot;) .. id_text or pos,&lt;br /&gt;
			displaytitle = &amp;quot;{{{langname}}} &amp;quot; .. labelpref .. m_script_utilities.tag_text(term, data.lang, sc, &amp;quot;term&amp;quot;) .. id_text,&lt;br /&gt;
			parents = parents,&lt;br /&gt;
			umbrella = false,&lt;br /&gt;
		}, true -- true = args handled&lt;br /&gt;
	end&lt;br /&gt;
end)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
return {LABELS = labels, RAW_CATEGORIES = raw_categories, HANDLERS = handlers}&lt;/div&gt;</summary>
		<author><name>wikt&gt;Surjection</name></author>
	</entry>
</feed>