<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://yezur.xyz/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AAuphen%2Fsandbox%2Fframe%2Fdoc</id>
	<title>Module:Auphen/sandbox/frame/doc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://yezur.xyz/w/index.php?action=history&amp;feed=atom&amp;title=Module%3AAuphen%2Fsandbox%2Fframe%2Fdoc"/>
	<link rel="alternate" type="text/html" href="https://yezur.xyz/w/index.php?title=Module:Auphen/sandbox/frame/doc&amp;action=history"/>
	<updated>2026-08-28T16:50:37Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://yezur.xyz/w/index.php?title=Module:Auphen/sandbox/frame/doc&amp;diff=13121&amp;oldid=prev</id>
		<title>Thiorosan: Create the documentation subpage</title>
		<link rel="alternate" type="text/html" href="https://yezur.xyz/w/index.php?title=Module:Auphen/sandbox/frame/doc&amp;diff=13121&amp;oldid=prev"/>
		<updated>2026-08-27T12:19:46Z</updated>

		<summary type="html">&lt;p&gt;Create the documentation subpage&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is the documentation for [[Module:Auphen/sandbox/frame]], a working copy of [[Module:Auphen/frame]], the template-facing wrapper around the [[Module:Auphen|Auphen]] sound engine. It is a test rig rather than production code: no article, entry or template should depend on it, and its output is not evidence of what the live engine does.&lt;br /&gt;
&lt;br /&gt;
It differs from the live frame in two places only — its header comment, and the &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt;, which names [[Module:Auphen/sandbox]] in place of [[Module:Auphen]]. A candidate engine placed in the sandbox can therefore be driven through the same wrapper as the live one and the two compared side by side before the candidate is promoted. The per-language data pages it reads are the live ones at &amp;lt;code&amp;gt;Module:Auphen/&amp;amp;lt;code&amp;amp;gt;&amp;lt;/code&amp;gt;; there are no sandbox copies of those. When the live frame changes, this copy has to be brought back into step with it by hand.&lt;br /&gt;
&lt;br /&gt;
[[Template:Auphen]] invokes the live frame, so &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{auphen}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; never reaches this module. It is called directly, and exports nothing beyond the two entry points below:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Auphen/sandbox/frame|auphen|word|code|ruleset}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;{{#invoke:Auphen/sandbox/frame|raw|word|code|ruleset}}&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;auphen&amp;lt;/code&amp;gt; formats the result: an estimated pronunciation is wrapped in slashes and marked up as IPA, while a named ruleset returns plain text. &amp;lt;code&amp;gt;raw&amp;lt;/code&amp;gt; returns the engine&amp;#039;s output unformatted, which is what a comparison table wants.&lt;br /&gt;
&lt;br /&gt;
== Parameters ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Parameter !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;1&amp;lt;/code&amp;gt; || The word, in the language&amp;#039;s orthography. Required. It is passed to the engine unaltered; a &amp;lt;code&amp;gt;~&amp;lt;/code&amp;gt; is a word boundary handled there rather than here, each part being run as its own word.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;2&amp;lt;/code&amp;gt; || The language registry code, such as &amp;lt;code&amp;gt;YAQ-HE&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;YBS-PJ&amp;lt;/code&amp;gt;. Required. It is upper-cased before the matching &amp;lt;code&amp;gt;Module:Auphen/&amp;amp;lt;code&amp;amp;gt;&amp;lt;/code&amp;gt; data page is loaded.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || The name of a ruleset from that data page&amp;#039;s &amp;lt;code&amp;gt;sets&amp;lt;/code&amp;gt; table. Left empty, the module runs the page&amp;#039;s &amp;lt;code&amp;gt;pronounce&amp;lt;/code&amp;gt; ruleset instead and marks the result as an estimate.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All three are trimmed of surrounding whitespace. For an estimate the engine is built from the data page&amp;#039;s &amp;lt;code&amp;gt;ipacats&amp;lt;/code&amp;gt; (falling back to &amp;lt;code&amp;gt;cats&amp;lt;/code&amp;gt;) together with its &amp;lt;code&amp;gt;ipa_rules&amp;lt;/code&amp;gt;; for a named ruleset it is built from &amp;lt;code&amp;gt;cats&amp;lt;/code&amp;gt; (falling back to &amp;lt;code&amp;gt;ipacats&amp;lt;/code&amp;gt;) and no spelling rules are applied.&lt;br /&gt;
&lt;br /&gt;
A missing word, a missing code, a code with no data page, or a ruleset name absent from &amp;lt;code&amp;gt;sets&amp;lt;/code&amp;gt; yields an error rather than a script failure. &amp;lt;code&amp;gt;auphen&amp;lt;/code&amp;gt; shows the message as an error span prefixed &amp;lt;code&amp;gt;Auphen:&amp;lt;/code&amp;gt; and files the calling page into [[:Category:Auphen errors]] — the live maintenance category, which a failing sandbox call will populate like any other; &amp;lt;code&amp;gt;raw&amp;lt;/code&amp;gt; returns the message prefixed &amp;lt;code&amp;gt;ERROR:&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Data pages are loaded with &amp;lt;code&amp;gt;require&amp;lt;/code&amp;gt; rather than &amp;lt;code&amp;gt;mw.loadData&amp;lt;/code&amp;gt;, because the read-only proxy &amp;lt;code&amp;gt;mw.loadData&amp;lt;/code&amp;gt; returns does not enumerate nested tables under &amp;lt;code&amp;gt;pairs()&amp;lt;/code&amp;gt;, which would hide the category members; the frame then copies the category tables into plain Lua tables before handing them to the engine. [[Template:Auphen/testcases]] holds the acceptance tests against the live frame, and the same rows can be pointed at this module to measure a candidate against them. The engine&amp;#039;s design notes and behaviour log are on [[Module talk:Auphen]].&lt;/div&gt;</summary>
		<author><name>Thiorosan</name></author>
	</entry>
</feed>