CINXE.COM

Module:pages - Wiktionary, the free dictionary

<!DOCTYPE html> <html class="client-nojs" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Module:pages - Wiktionary, the free dictionary</title> <script>(function(){var className="client-js";var cookie=document.cookie.match(/(?:^|; )enwiktionarymwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"6c834727-4b06-45f5-a0e0-b5c9ad07749f","wgCanonicalNamespace":"Module","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":828,"wgPageName":"Module:pages","wgTitle":"pages","wgCurRevisionId":82697327,"wgRevisionId":82697327,"wgArticleId":10479383,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[ "Utility modules","Wikitext parsing modules"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"Scribunto","wgRelevantPageName":"Module:pages","wgRelevantArticleId":10479383,"wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":["templateeditor"],"wgRestrictionMove":["templateeditor"],"wgNoticeProject":"wiktionary","wgCiteReferencePreviewsActive":true,"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true,"tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":10000,"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":true,"wgVector2022LanguageInHeader":false,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q130305149", "wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"]};RLSTATE={"ext.gadget.LanguagesAndScripts":"ready","ext.gadget.Palette":"ready","ext.gadget.Site":"ready","ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.pygments":"ready","skins.vector.styles.legacy":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","codex-search-styles":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.pygments.view","site","mediawiki.page.ready","mediawiki.toc","skins.vector.legacy.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.LegacyScripts","ext.gadget.DocTabs","ext.gadget.RevdelInfo","ext.gadget.PagePreviews","ext.gadget.Edittools","ext.gadget.defaultVisibilityToggles","ext.gadget.UnsupportedTitles", "ext.gadget.WiktGadgetPrefs","ext.urlShortener.toolbar","ext.centralauth.centralautologin","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.compactlinks","ext.uls.interface","ext.checkUser.clientHints","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=codex-search-styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cskins.vector.styles.legacy%7Cwikibase.client.init&amp;only=styles&amp;skin=vector"> <script async="" src="/w/load.php?lang=en&amp;modules=startup&amp;only=scripts&amp;raw=1&amp;skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=ext.gadget.LanguagesAndScripts%2CPalette%2CSite&amp;only=styles&amp;skin=vector"> <link rel="stylesheet" href="/w/load.php?lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:site_name" content="Wiktionary"> <meta property="og:title" content="Module:pages - Wiktionary, the free dictionary"> <meta property="og:type" content="website"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wiktionary.org/wiki/Module:pages"> <link rel="apple-touch-icon" href="/static/apple-touch/wiktionary/en.png"> <link rel="icon" href="/static/favicon/wiktionary/en.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wiktionary (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wiktionary.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wiktionary.org/wiki/Module:pages"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wiktionary Atom feed" href="/w/index.php?title=Special:RecentChanges&amp;feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin-vector-legacy mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-828 ns-subject page-Module_pages rootpage-Module_pages skin-vector action-view"><div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div id="siteNotice"><!-- CentralNotice --></div> <div class="mw-indicators"> </div> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-namespace">Module</span><span class="mw-page-title-separator">:</span><span class="mw-page-title-main">pages</span></h1> <div id="bodyContent" class="vector-body"> <div id="siteSub" class="noprint">From Wiktionary, the free dictionary</div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="contentSub2"></div> <div id="jump-to-nav"></div> <a class="mw-jump-link" href="#mw-head">Jump to navigation</a> <a class="mw-jump-link" href="#searchInput">Jump to search</a> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="documentation" style="display:block; clear:both"> <hr /> <dl class="plainlinks" style="font-size: smaller;"><dd><i style="font-size: larger;">The following <a href="/wiki/Help:Documenting_templates_and_modules" title="Help:Documenting templates and modules">documentation</a> is located at <a href="/wiki/Module:pages/documentation" title="Module:pages/documentation">Module:pages/documentation</a>. <sup>[<a class="external text" href="https://en.wiktionary.org/w/index.php?title=Module:pages/documentation&amp;action=edit">edit</a>]</sup></i></dd><dd> <i>Useful links</i>: <a href="/wiki/Special:PrefixIndex/Module:pages/" title="Special:PrefixIndex/Module:pages/">subpage list</a> • <a class="external text" href="https://en.wiktionary.org/w/index.php?title=Special%3AWhatLinksHere%2FModule%3Apages&amp;hideredirs=1&amp;hidetrans=1">links</a> • <a class="external text" href="https://en.wiktionary.org/w/index.php?title=Special%3AWhatLinksHere%2FModule%3Apages&amp;hidelinks=1&amp;hideredirs=1">transclusions</a> • <a href="/w/index.php?title=Module:pages/testcases&amp;action=edit&amp;redlink=1" class="new" title="Module:pages/testcases (page does not exist)">testcases</a> • <a href="/w/index.php?title=Module:pages/sandbox&amp;action=edit&amp;redlink=1" class="new" title="Module:pages/sandbox (page does not exist)">sandbox</a></dd></dl> <p>This module exports various utility functions for handling page names and <a href="https://www.mediawiki.org/wiki/Extension:Scribunto/Lua_reference_manual#Title_library" class="extiw" title="mw:Extension:Scribunto/Lua reference manual">title objects</a>. </p> <div id="toc" class="toc" role="navigation" aria-labelledby="mw-toc-heading"><input type="checkbox" role="button" id="toctogglecheckbox" class="toctogglecheckbox" style="display:none" /><div class="toctitle" lang="en" dir="ltr"><h2 id="mw-toc-heading">Contents</h2><span class="toctogglespan"><label class="toctogglelabel" for="toctogglecheckbox"></label></span></div> <ul> <li class="toclevel-1"><a href="#Detailed_documentation"><span class="tocnumber">1</span> <span class="toctext">Detailed documentation</span></a> <ul> <li class="toclevel-2"><a href="#export.is_valid_title"><span class="tocnumber">1.1</span> <span class="toctext">export.is_valid_title</span></a></li> <li class="toclevel-2"><a href="#export.is_valid_page_name"><span class="tocnumber">1.2</span> <span class="toctext">export.is_valid_page_name</span></a></li> <li class="toclevel-2"><a href="#export.pagetype"><span class="tocnumber">1.3</span> <span class="toctext">export.pagetype</span></a></li> <li class="toclevel-2"><a href="#export.get_section"><span class="tocnumber">1.4</span> <span class="toctext">export.get_section</span></a></li> <li class="toclevel-2"><a href="#export.get_current_section"><span class="tocnumber">1.5</span> <span class="toctext">export.get_current_section</span></a></li> <li class="toclevel-2"><a href="#export.get_current_L2"><span class="tocnumber">1.6</span> <span class="toctext">export.get_current_L2</span></a></li> </ul> </li> </ul> </div> <div class="mw-heading mw-heading2"><h2 id="Detailed_documentation">Detailed documentation</h2></div> <div class="mw-heading mw-heading3"><h3 id="export.is_valid_title">export.is_valid_title</h3></div> <p><code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">is_valid_title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span></code> </p><p>Returns true if the title object is a valid title that is not an interwiki link. </p> <div class="mw-heading mw-heading3"><h3 id="export.is_valid_page_name">export.is_valid_page_name</h3></div> <p><code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">is_valid_page_name</span><span class="p">(</span><span class="n">pagename</span><span class="p">)</span></code> </p><p>Returns true if <code>pagename</code> is a valid page title that is not an interwiki link. </p> <div class="mw-heading mw-heading3"><h3 id="export.pagetype">export.pagetype</h3></div> <p><code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">pagetype</span><span class="p">(</span><span class="n">title</span><span class="p">)</span></code> </p><p> Returns the page type of <code>title</code> in a format which can be used in running text. </p> <div class="mw-heading mw-heading3"><h3 id="export.get_section">export.get_section</h3></div> <p><code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">get_section</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">names</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span></code> </p><p> A helper function to return the content of a page section. </p><p> <code>content</code> is raw wikitext, <code>name</code> is the requested section, and <code>level</code> is an optional parameter that specifies the required section heading level. If <code>level</code> is not supplied, then the first section called <code>name</code> is returned. <code>name</code> can either be a string or table of section names. If a table, each name represents a section that has the next as a subsection. For example, <code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="p">{</span><span class="s2">&quot;Spanish&quot;</span><span class="p">,</span> <span class="s2">&quot;Noun&quot;</span><span class="p">}</span></code> will return the first matching section called "Noun" under a section called "Spanish". These do not have to be at adjacent levels ("Noun" might be L4, while "Spanish" is L2). If <code>level</code> is given, it refers to the last name in the table (i.e. the name of the section to be returned). </p><p> The returned section includes all of its subsections. If no matching section is found, return <code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="kc">nil</span></code>. </p> <div class="mw-heading mw-heading3"><h3 id="export.get_current_section">export.get_current_section</h3></div> <p><code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">get_current_section</span><span class="p">()</span></code> </p><p> A function which returns the number of the page section which contains the current <code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="o">#</span><span class="n">invoke</span></code>. </p> <div class="mw-heading mw-heading3"><h3 id="export.get_current_L2">export.get_current_L2</h3></div> <p><code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">get_current_L2</span><span class="p">()</span></code> </p><p> A function which returns the name of the L2 language section which contains the current <code class="mw-highlight mw-highlight-lang-lua mw-content-ltr" dir="ltr"><span class="o">#</span><span class="n">invoke</span></code>. </p> <br style="clear: both;" /></div> <div class="mw-highlight mw-highlight-lang-lua mw-content-ltr mw-highlight-lines" dir="ltr"><pre><span></span><span id="L-1"><a href="#L-1"><span class="linenos" data-line="1"></span></a><span class="kd">local</span> <span class="n">export</span> <span class="o">=</span> <span class="p">{}</span> </span><span id="L-2"><a href="#L-2"><span class="linenos" data-line="2"></span></a> </span><span id="L-3"><a href="#L-3"><span class="linenos" data-line="3"></span></a><span class="kd">local</span> <span class="n">string_utilities_module</span> <span class="o">=</span> <span class="s2">&quot;Module:string utilities&quot;</span> </span><span id="L-4"><a href="#L-4"><span class="linenos" data-line="4"></span></a> </span><span id="L-5"><a href="#L-5"><span class="linenos" data-line="5"></span></a><span class="kd">local</span> <span class="n">find</span> <span class="o">=</span> <span class="nb">string.find</span> </span><span id="L-6"><a href="#L-6"><span class="linenos" data-line="6"></span></a><span class="kd">local</span> <span class="n">format</span> <span class="o">=</span> <span class="nb">string.format</span> </span><span id="L-7"><a href="#L-7"><span class="linenos" data-line="7"></span></a><span class="kd">local</span> <span class="n">get_current_section</span> <span class="c1">-- Defined below.</span> </span><span id="L-8"><a href="#L-8"><span class="linenos" data-line="8"></span></a><span class="kd">local</span> <span class="n">gsub</span> <span class="o">=</span> <span class="nb">string.gsub</span> </span><span id="L-9"><a href="#L-9"><span class="linenos" data-line="9"></span></a><span class="kd">local</span> <span class="n">is_valid_title</span> <span class="c1">-- Defined below.</span> </span><span id="L-10"><a href="#L-10"><span class="linenos" data-line="10"></span></a><span class="kd">local</span> <span class="n">lower</span> <span class="o">=</span> <span class="nb">string.lower</span> </span><span id="L-11"><a href="#L-11"><span class="linenos" data-line="11"></span></a><span class="kd">local</span> <span class="n">match</span> <span class="o">=</span> <span class="nb">string.match</span> </span><span id="L-12"><a href="#L-12"><span class="linenos" data-line="12"></span></a><span class="kd">local</span> <span class="n">new_title</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">title</span><span class="p">.</span><span class="n">new</span> </span><span id="L-13"><a href="#L-13"><span class="linenos" data-line="13"></span></a><span class="kd">local</span> <span class="nb">require</span> <span class="o">=</span> <span class="nb">require</span> </span><span id="L-14"><a href="#L-14"><span class="linenos" data-line="14"></span></a><span class="kd">local</span> <span class="n">sub</span> <span class="o">=</span> <span class="nb">string.sub</span> </span><span id="L-15"><a href="#L-15"><span class="linenos" data-line="15"></span></a><span class="kd">local</span> <span class="nb">tonumber</span> <span class="o">=</span> <span class="nb">tonumber</span> </span><span id="L-16"><a href="#L-16"><span class="linenos" data-line="16"></span></a><span class="kd">local</span> <span class="nb">type</span> <span class="o">=</span> <span class="nb">type</span> </span><span id="L-17"><a href="#L-17"><span class="linenos" data-line="17"></span></a><span class="kd">local</span> <span class="n">ufind</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">ustring</span><span class="p">.</span><span class="n">find</span> </span><span id="L-18"><a href="#L-18"><span class="linenos" data-line="18"></span></a><span class="kd">local</span> <span class="n">unstrip_nowiki</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">text</span><span class="p">.</span><span class="n">unstripNoWiki</span> </span><span id="L-19"><a href="#L-19"><span class="linenos" data-line="19"></span></a> </span><span id="L-20"><a href="#L-20"><span class="linenos" data-line="20"></span></a><span class="cm">--[==[</span> </span><span id="L-21"><a href="#L-21"><span class="linenos" data-line="21"></span></a><span class="cm">Loaders for functions in other modules, which overwrite themselves with the target function when called. This ensures modules are only loaded when needed, retains the speed/convenience of locally-declared pre-loaded functions, and has no overhead after the first call, since the target functions are called directly in any subsequent calls.]==]</span> </span><span id="L-22"><a href="#L-22"><span class="linenos" data-line="22"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">decode_entities</span><span class="p">(...)</span> </span><span id="L-23"><a href="#L-23"><span class="linenos" data-line="23"></span></a> <span class="n">decode_entities</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">string_utilities_module</span><span class="p">).</span><span class="n">decode_entities</span> </span><span id="L-24"><a href="#L-24"><span class="linenos" data-line="24"></span></a> <span class="kr">return</span> <span class="n">decode_entities</span><span class="p">(...)</span> </span><span id="L-25"><a href="#L-25"><span class="linenos" data-line="25"></span></a> <span class="kr">end</span> </span><span id="L-26"><a href="#L-26"><span class="linenos" data-line="26"></span></a> </span><span id="L-27"><a href="#L-27"><span class="linenos" data-line="27"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">ulower</span><span class="p">(...)</span> </span><span id="L-28"><a href="#L-28"><span class="linenos" data-line="28"></span></a> <span class="n">ulower</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">string_utilities_module</span><span class="p">).</span><span class="n">lower</span> </span><span id="L-29"><a href="#L-29"><span class="linenos" data-line="29"></span></a> <span class="kr">return</span> <span class="n">ulower</span><span class="p">(...)</span> </span><span id="L-30"><a href="#L-30"><span class="linenos" data-line="30"></span></a> <span class="kr">end</span> </span><span id="L-31"><a href="#L-31"><span class="linenos" data-line="31"></span></a> </span><span id="L-32"><a href="#L-32"><span class="linenos" data-line="32"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">trim</span><span class="p">(...)</span> </span><span id="L-33"><a href="#L-33"><span class="linenos" data-line="33"></span></a> <span class="n">trim</span> <span class="o">=</span> <span class="nb">require</span><span class="p">(</span><span class="n">string_utilities_module</span><span class="p">).</span><span class="n">trim</span> </span><span id="L-34"><a href="#L-34"><span class="linenos" data-line="34"></span></a> <span class="kr">return</span> <span class="n">trim</span><span class="p">(...)</span> </span><span id="L-35"><a href="#L-35"><span class="linenos" data-line="35"></span></a> <span class="kr">end</span> </span><span id="L-36"><a href="#L-36"><span class="linenos" data-line="36"></span></a> </span><span id="L-37"><a href="#L-37"><span class="linenos" data-line="37"></span></a><span class="cm">--[==[</span> </span><span id="L-38"><a href="#L-38"><span class="linenos" data-line="38"></span></a><span class="cm">Returns true if the title object is a valid title that is not an interwiki link.]==]</span> </span><span id="L-39"><a href="#L-39"><span class="linenos" data-line="39"></span></a><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">is_valid_title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> </span><span id="L-40"><a href="#L-40"><span class="linenos" data-line="40"></span></a> <span class="c1">-- Note: Mainspace titles starting with &quot;#&quot; should be invalid, but a bug in mw.title.new and mw.title.makeTitle means a title object is returned that has the empty string for prefixedText, so they need to be filtered out.</span> </span><span id="L-41"><a href="#L-41"><span class="linenos" data-line="41"></span></a> <span class="kr">return</span> <span class="n">title</span> <span class="ow">and</span> <span class="o">#</span><span class="n">title</span><span class="p">.</span><span class="n">prefixedText</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="ow">and</span> <span class="o">#</span><span class="n">title</span><span class="p">.</span><span class="n">interwiki</span> <span class="o">==</span> <span class="mi">0</span> </span><span id="L-42"><a href="#L-42"><span class="linenos" data-line="42"></span></a><span class="kr">end</span> </span><span id="L-43"><a href="#L-43"><span class="linenos" data-line="43"></span></a><span class="n">is_valid_title</span> <span class="o">=</span> <span class="n">export</span><span class="p">.</span><span class="n">is_valid_title</span> </span><span id="L-44"><a href="#L-44"><span class="linenos" data-line="44"></span></a> </span><span id="L-45"><a href="#L-45"><span class="linenos" data-line="45"></span></a><span class="cm">--[==[</span> </span><span id="L-46"><a href="#L-46"><span class="linenos" data-line="46"></span></a><span class="cm">Returns true if `pagename` is a valid page title that is not an interwiki link.]==]</span> </span><span id="L-47"><a href="#L-47"><span class="linenos" data-line="47"></span></a><span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">is_valid_page_name</span><span class="p">(</span><span class="n">pagename</span><span class="p">)</span> </span><span id="L-48"><a href="#L-48"><span class="linenos" data-line="48"></span></a> <span class="kr">return</span> <span class="n">is_valid_title</span><span class="p">(</span><span class="n">new_title</span><span class="p">(</span><span class="n">pagename</span><span class="p">))</span> </span><span id="L-49"><a href="#L-49"><span class="linenos" data-line="49"></span></a><span class="kr">end</span> </span><span id="L-50"><a href="#L-50"><span class="linenos" data-line="50"></span></a> </span><span id="L-51"><a href="#L-51"><span class="linenos" data-line="51"></span></a><span class="kr">do</span> </span><span id="L-52"><a href="#L-52"><span class="linenos" data-line="52"></span></a> <span class="c1">-- Any template/module with &quot;sandbox&quot; in the title. These are impossible</span> </span><span id="L-53"><a href="#L-53"><span class="linenos" data-line="53"></span></a> <span class="c1">-- to screen for more accurately, as there&#39;s no consistent pattern. Also</span> </span><span id="L-54"><a href="#L-54"><span class="linenos" data-line="54"></span></a> <span class="c1">-- any user sandboxes in the form (e.g.) &quot;Template:User:...&quot;.</span> </span><span id="L-55"><a href="#L-55"><span class="linenos" data-line="55"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">is_sandbox</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> </span><span id="L-56"><a href="#L-56"><span class="linenos" data-line="56"></span></a> <span class="kd">local</span> <span class="n">text</span> <span class="o">=</span> <span class="n">title</span><span class="p">.</span><span class="n">text</span> </span><span id="L-57"><a href="#L-57"><span class="linenos" data-line="57"></span></a> <span class="kr">return</span> <span class="p">(</span><span class="n">find</span><span class="p">(</span><span class="n">lower</span><span class="p">(</span><span class="n">text</span><span class="p">),</span> <span class="s2">&quot;sandbox&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> <span class="ow">or</span> <span class="n">match</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s2">&quot;^User:.&quot;</span><span class="p">))</span> <span class="ow">and</span> <span class="kc">true</span> <span class="ow">or</span> <span class="kc">false</span> </span><span id="L-58"><a href="#L-58"><span class="linenos" data-line="58"></span></a> <span class="kr">end</span> </span><span id="L-59"><a href="#L-59"><span class="linenos" data-line="59"></span></a> </span><span id="L-60"><a href="#L-60"><span class="linenos" data-line="60"></span></a> <span class="c1">-- Any template/module documentation pages.</span> </span><span id="L-61"><a href="#L-61"><span class="linenos" data-line="61"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">is_documentation</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> </span><span id="L-62"><a href="#L-62"><span class="linenos" data-line="62"></span></a> <span class="kr">return</span> <span class="n">match</span><span class="p">(</span><span class="n">title</span><span class="p">.</span><span class="n">text</span><span class="p">,</span> <span class="s2">&quot;./documentation$&quot;</span><span class="p">)</span> <span class="ow">and</span> <span class="kc">true</span> <span class="ow">or</span> <span class="kc">false</span> </span><span id="L-63"><a href="#L-63"><span class="linenos" data-line="63"></span></a> <span class="kr">end</span> </span><span id="L-64"><a href="#L-64"><span class="linenos" data-line="64"></span></a> </span><span id="L-65"><a href="#L-65"><span class="linenos" data-line="65"></span></a> <span class="c1">-- Any template/module testcases (which can be labelled and/or followed by</span> </span><span id="L-66"><a href="#L-66"><span class="linenos" data-line="66"></span></a> <span class="c1">-- further subpages).</span> </span><span id="L-67"><a href="#L-67"><span class="linenos" data-line="67"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">is_testcase_page</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> </span><span id="L-68"><a href="#L-68"><span class="linenos" data-line="68"></span></a> <span class="kr">return</span> <span class="n">match</span><span class="p">(</span><span class="n">title</span><span class="p">.</span><span class="n">text</span><span class="p">,</span> <span class="s2">&quot;./[Tt]estcases?%f[%L]&quot;</span><span class="p">)</span> <span class="ow">and</span> <span class="kc">true</span> <span class="ow">or</span> <span class="kc">false</span> </span><span id="L-69"><a href="#L-69"><span class="linenos" data-line="69"></span></a> <span class="kr">end</span> </span><span id="L-70"><a href="#L-70"><span class="linenos" data-line="70"></span></a> </span><span id="L-71"><a href="#L-71"><span class="linenos" data-line="71"></span></a> <span class="cm">--[==[</span> </span><span id="L-72"><a href="#L-72"><span class="linenos" data-line="72"></span></a><span class="cm"> Returns the page type of `title` in a format which can be used in running text.]==]</span> </span><span id="L-73"><a href="#L-73"><span class="linenos" data-line="73"></span></a> <span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">pagetype</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> </span><span id="L-74"><a href="#L-74"><span class="linenos" data-line="74"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">is_valid_title</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-75"><a href="#L-75"><span class="linenos" data-line="75"></span></a> <span class="nb">error</span><span class="p">(</span><span class="n">mw</span><span class="p">.</span><span class="n">dumpObject</span><span class="p">(</span><span class="n">title</span><span class="p">.</span><span class="n">fullText</span><span class="p">)</span> <span class="o">..</span> <span class="s2">&quot; is not a valid page name.&quot;</span><span class="p">)</span> </span><span id="L-76"><a href="#L-76"><span class="linenos" data-line="76"></span></a> <span class="kr">end</span> </span><span id="L-77"><a href="#L-77"><span class="linenos" data-line="77"></span></a> <span class="c1">-- Content models have overriding priority, as they can appear in</span> </span><span id="L-78"><a href="#L-78"><span class="linenos" data-line="78"></span></a> <span class="c1">-- nonstandard places due to page content model changes.</span> </span><span id="L-79"><a href="#L-79"><span class="linenos" data-line="79"></span></a> <span class="kd">local</span> <span class="n">content_model</span> <span class="o">=</span> <span class="n">title</span><span class="p">.</span><span class="n">contentModel</span> </span><span id="L-80"><a href="#L-80"><span class="linenos" data-line="80"></span></a> <span class="kr">if</span> <span class="n">content_model</span> <span class="o">==</span> <span class="s2">&quot;css&quot;</span> <span class="ow">or</span> <span class="n">content_model</span> <span class="o">==</span> <span class="s2">&quot;sanitized-css&quot;</span> <span class="kr">then</span> </span><span id="L-81"><a href="#L-81"><span class="linenos" data-line="81"></span></a> <span class="kr">return</span> <span class="s2">&quot;stylesheet&quot;</span> </span><span id="L-82"><a href="#L-82"><span class="linenos" data-line="82"></span></a> <span class="kr">elseif</span> <span class="n">content_model</span> <span class="o">==</span> <span class="s2">&quot;javascript&quot;</span> <span class="kr">then</span> </span><span id="L-83"><a href="#L-83"><span class="linenos" data-line="83"></span></a> <span class="kr">return</span> <span class="s2">&quot;script&quot;</span> </span><span id="L-84"><a href="#L-84"><span class="linenos" data-line="84"></span></a> <span class="kr">elseif</span> <span class="n">content_model</span> <span class="o">==</span> <span class="s2">&quot;json&quot;</span> <span class="kr">then</span> </span><span id="L-85"><a href="#L-85"><span class="linenos" data-line="85"></span></a> <span class="kr">return</span> <span class="s2">&quot;JSON data page&quot;</span> </span><span id="L-86"><a href="#L-86"><span class="linenos" data-line="86"></span></a> <span class="kr">elseif</span> <span class="n">content_model</span> <span class="o">==</span> <span class="s2">&quot;MassMessageListContent&quot;</span> <span class="kr">then</span> </span><span id="L-87"><a href="#L-87"><span class="linenos" data-line="87"></span></a> <span class="kr">return</span> <span class="s2">&quot;mass message delivery list&quot;</span> </span><span id="L-88"><a href="#L-88"><span class="linenos" data-line="88"></span></a> <span class="c1">-- Modules.</span> </span><span id="L-89"><a href="#L-89"><span class="linenos" data-line="89"></span></a> <span class="kr">elseif</span> <span class="n">content_model</span> <span class="o">==</span> <span class="s2">&quot;Scribunto&quot;</span> <span class="kr">then</span> </span><span id="L-90"><a href="#L-90"><span class="linenos" data-line="90"></span></a> <span class="kr">return</span> <span class="n">is_sandbox</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">&quot;module sandbox&quot;</span> <span class="ow">or</span> </span><span id="L-91"><a href="#L-91"><span class="linenos" data-line="91"></span></a> <span class="n">is_testcase_page</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">&quot;module testcase page&quot;</span> <span class="ow">or</span> </span><span id="L-92"><a href="#L-92"><span class="linenos" data-line="92"></span></a> <span class="s2">&quot;module&quot;</span> </span><span id="L-93"><a href="#L-93"><span class="linenos" data-line="93"></span></a> <span class="kr">elseif</span> <span class="n">content_model</span> <span class="o">==</span> <span class="s2">&quot;text&quot;</span> <span class="kr">then</span> </span><span id="L-94"><a href="#L-94"><span class="linenos" data-line="94"></span></a> <span class="kr">return</span> <span class="s2">&quot;page&quot;</span> <span class="c1">-- ???</span> </span><span id="L-95"><a href="#L-95"><span class="linenos" data-line="95"></span></a> <span class="c1">-- Otherwise, the content model is &quot;wikitext&quot;, so check namespaces.</span> </span><span id="L-96"><a href="#L-96"><span class="linenos" data-line="96"></span></a> <span class="kr">elseif</span> <span class="n">title</span><span class="p">.</span><span class="n">isTalkPage</span> <span class="kr">then</span> </span><span id="L-97"><a href="#L-97"><span class="linenos" data-line="97"></span></a> <span class="kr">return</span> <span class="s2">&quot;talk page&quot;</span> </span><span id="L-98"><a href="#L-98"><span class="linenos" data-line="98"></span></a> <span class="kr">end</span> </span><span id="L-99"><a href="#L-99"><span class="linenos" data-line="99"></span></a> <span class="kd">local</span> <span class="n">ns</span> <span class="o">=</span> <span class="n">title</span><span class="p">.</span><span class="n">namespace</span> </span><span id="L-100"><a href="#L-100"><span class="linenos" data-line="100"></span></a> <span class="c1">-- Main namespace.</span> </span><span id="L-101"><a href="#L-101"><span class="linenos" data-line="101"></span></a> <span class="kr">if</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-102"><a href="#L-102"><span class="linenos" data-line="102"></span></a> <span class="kr">return</span> <span class="s2">&quot;entry&quot;</span> </span><span id="L-103"><a href="#L-103"><span class="linenos" data-line="103"></span></a> <span class="c1">-- Wiktionary:</span> </span><span id="L-104"><a href="#L-104"><span class="linenos" data-line="104"></span></a> <span class="kr">elseif</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">4</span> <span class="kr">then</span> </span><span id="L-105"><a href="#L-105"><span class="linenos" data-line="105"></span></a> <span class="kr">return</span> <span class="n">is_sandbox</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">&quot;sandbox&quot;</span> <span class="ow">or</span> <span class="s2">&quot;project page&quot;</span> </span><span id="L-106"><a href="#L-106"><span class="linenos" data-line="106"></span></a> <span class="c1">-- Template:</span> </span><span id="L-107"><a href="#L-107"><span class="linenos" data-line="107"></span></a> <span class="kr">elseif</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">10</span> <span class="kr">then</span> </span><span id="L-108"><a href="#L-108"><span class="linenos" data-line="108"></span></a> <span class="kr">return</span> <span class="n">is_sandbox</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">&quot;template sandbox&quot;</span> <span class="ow">or</span> </span><span id="L-109"><a href="#L-109"><span class="linenos" data-line="109"></span></a> <span class="n">is_documentation</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">&quot;template documentation page&quot;</span> <span class="ow">or</span> </span><span id="L-110"><a href="#L-110"><span class="linenos" data-line="110"></span></a> <span class="n">is_testcase_page</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="ow">and</span> <span class="s2">&quot;template testcase page&quot;</span> <span class="ow">or</span> </span><span id="L-111"><a href="#L-111"><span class="linenos" data-line="111"></span></a> <span class="s2">&quot;template&quot;</span> </span><span id="L-112"><a href="#L-112"><span class="linenos" data-line="112"></span></a> <span class="c1">-- Any non-Scribunto pages in the Module: space (which will almost</span> </span><span id="L-113"><a href="#L-113"><span class="linenos" data-line="113"></span></a> <span class="c1">-- always be sandboxes or documentation subpages). If not, it will</span> </span><span id="L-114"><a href="#L-114"><span class="linenos" data-line="114"></span></a> <span class="c1">-- default to &quot;module page&quot; (not &quot;module&quot;, which implies the Scribunto</span> </span><span id="L-115"><a href="#L-115"><span class="linenos" data-line="115"></span></a> <span class="c1">-- content model).</span> </span><span id="L-116"><a href="#L-116"><span class="linenos" data-line="116"></span></a> <span class="kr">elseif</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">828</span> <span class="kr">then</span> </span><span id="L-117"><a href="#L-117"><span class="linenos" data-line="117"></span></a> <span class="kr">if</span> <span class="n">is_sandbox</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-118"><a href="#L-118"><span class="linenos" data-line="118"></span></a> <span class="kr">return</span> <span class="s2">&quot;module sandbox&quot;</span> </span><span id="L-119"><a href="#L-119"><span class="linenos" data-line="119"></span></a> <span class="kr">elseif</span> <span class="n">is_documentation</span><span class="p">(</span><span class="n">title</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-120"><a href="#L-120"><span class="linenos" data-line="120"></span></a> <span class="kr">return</span> <span class="s2">&quot;module documentation page&quot;</span> </span><span id="L-121"><a href="#L-121"><span class="linenos" data-line="121"></span></a> <span class="kr">end</span> </span><span id="L-122"><a href="#L-122"><span class="linenos" data-line="122"></span></a> <span class="kr">end</span> </span><span id="L-123"><a href="#L-123"><span class="linenos" data-line="123"></span></a> <span class="c1">-- Convert the namespace to lowercase, unless it contains a capital</span> </span><span id="L-124"><a href="#L-124"><span class="linenos" data-line="124"></span></a> <span class="c1">-- letter after the initial letter (e.g. MediaWiki, TimedText). Also</span> </span><span id="L-125"><a href="#L-125"><span class="linenos" data-line="125"></span></a> <span class="c1">-- normalize any underscores.</span> </span><span id="L-126"><a href="#L-126"><span class="linenos" data-line="126"></span></a> <span class="kd">local</span> <span class="n">ns_text</span> <span class="o">=</span> <span class="n">gsub</span><span class="p">(</span><span class="n">title</span><span class="p">.</span><span class="n">nsText</span><span class="p">,</span> <span class="s2">&quot;_&quot;</span><span class="p">,</span> <span class="s2">&quot; &quot;</span><span class="p">)</span> </span><span id="L-127"><a href="#L-127"><span class="linenos" data-line="127"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">ufind</span><span class="p">(</span><span class="n">ns_text</span><span class="p">,</span> <span class="s2">&quot;%u&quot;</span><span class="p">,</span> <span class="mi">2</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-128"><a href="#L-128"><span class="linenos" data-line="128"></span></a> <span class="n">ns_text</span> <span class="o">=</span> <span class="n">ulower</span><span class="p">(</span><span class="n">ns_text</span><span class="p">)</span> </span><span id="L-129"><a href="#L-129"><span class="linenos" data-line="129"></span></a> <span class="kr">end</span> </span><span id="L-130"><a href="#L-130"><span class="linenos" data-line="130"></span></a> <span class="c1">-- Category: and Appendix:</span> </span><span id="L-131"><a href="#L-131"><span class="linenos" data-line="131"></span></a> <span class="kr">if</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">14</span> <span class="ow">or</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">100</span> <span class="kr">then</span> </span><span id="L-132"><a href="#L-132"><span class="linenos" data-line="132"></span></a> <span class="kr">return</span> <span class="n">ns_text</span> </span><span id="L-133"><a href="#L-133"><span class="linenos" data-line="133"></span></a> <span class="c1">-- Thesaurus: and Reconstruction:</span> </span><span id="L-134"><a href="#L-134"><span class="linenos" data-line="134"></span></a> <span class="kr">elseif</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">110</span> <span class="ow">or</span> <span class="n">ns</span> <span class="o">==</span> <span class="mi">118</span> <span class="kr">then</span> </span><span id="L-135"><a href="#L-135"><span class="linenos" data-line="135"></span></a> <span class="kr">return</span> <span class="n">ns_text</span> <span class="o">..</span> <span class="s2">&quot; entry&quot;</span> </span><span id="L-136"><a href="#L-136"><span class="linenos" data-line="136"></span></a> <span class="kr">end</span> </span><span id="L-137"><a href="#L-137"><span class="linenos" data-line="137"></span></a> <span class="kr">return</span> <span class="n">ns_text</span> <span class="o">..</span> <span class="s2">&quot; page&quot;</span> </span><span id="L-138"><a href="#L-138"><span class="linenos" data-line="138"></span></a> <span class="kr">end</span> </span><span id="L-139"><a href="#L-139"><span class="linenos" data-line="139"></span></a><span class="kr">end</span> </span><span id="L-140"><a href="#L-140"><span class="linenos" data-line="140"></span></a> </span><span id="L-141"><a href="#L-141"><span class="linenos" data-line="141"></span></a><span class="kr">do</span> </span><span id="L-142"><a href="#L-142"><span class="linenos" data-line="142"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">check_level</span><span class="p">(</span><span class="n">lvl</span><span class="p">)</span> </span><span id="L-143"><a href="#L-143"><span class="linenos" data-line="143"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">lvl</span><span class="p">)</span> <span class="o">~=</span> <span class="s2">&quot;number&quot;</span> <span class="kr">then</span> </span><span id="L-144"><a href="#L-144"><span class="linenos" data-line="144"></span></a> <span class="nb">error</span><span class="p">(</span><span class="s2">&quot;Heading levels must be numbers.&quot;</span><span class="p">)</span> </span><span id="L-145"><a href="#L-145"><span class="linenos" data-line="145"></span></a> <span class="kr">elseif</span> <span class="n">lvl</span> <span class="o">&lt;</span> <span class="mi">1</span> <span class="ow">or</span> <span class="n">lvl</span> <span class="o">&gt;</span> <span class="mi">6</span> <span class="ow">or</span> <span class="n">lvl</span> <span class="o">%</span> <span class="mi">1</span> <span class="o">~=</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-146"><a href="#L-146"><span class="linenos" data-line="146"></span></a> <span class="nb">error</span><span class="p">(</span><span class="s2">&quot;Heading levels must be integers between 1 and 6.&quot;</span><span class="p">)</span> </span><span id="L-147"><a href="#L-147"><span class="linenos" data-line="147"></span></a> <span class="kr">end</span> </span><span id="L-148"><a href="#L-148"><span class="linenos" data-line="148"></span></a> <span class="kr">return</span> <span class="n">lvl</span> </span><span id="L-149"><a href="#L-149"><span class="linenos" data-line="149"></span></a> <span class="kr">end</span> </span><span id="L-150"><a href="#L-150"><span class="linenos" data-line="150"></span></a> </span><span id="L-151"><a href="#L-151"><span class="linenos" data-line="151"></span></a> <span class="cm">--[==[</span> </span><span id="L-152"><a href="#L-152"><span class="linenos" data-line="152"></span></a><span class="cm"> A helper function which iterates over the headings in `text`, which should be the content of a page or (main) section.</span> </span><span id="L-153"><a href="#L-153"><span class="linenos" data-line="153"></span></a> </span><span id="L-154"><a href="#L-154"><span class="linenos" data-line="154"></span></a><span class="cm"> Each iteration returns three values: `sec` (the section title), `lvl` (the section level) and `loc` (the index of the section in the given text, from the first equals sign). The section title will be automatically trimmed, and any HTML entities will be resolved.</span> </span><span id="L-155"><a href="#L-155"><span class="linenos" data-line="155"></span></a><span class="cm"> The optional parameter `a` (which should be an integer between 1 and 6) can be used to ensure that only headings of the specified level are iterated over. If `b` is also given, then they are treated as a range.</span> </span><span id="L-156"><a href="#L-156"><span class="linenos" data-line="156"></span></a><span class="cm"> The optional parameters `a` and `b` can be used to specify a range, so that only headings with levels in that range are returned.]==]</span> </span><span id="L-157"><a href="#L-157"><span class="linenos" data-line="157"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">find_headings</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">a</span><span class="p">,</span> <span class="n">b</span><span class="p">)</span> </span><span id="L-158"><a href="#L-158"><span class="linenos" data-line="158"></span></a> <span class="n">a</span> <span class="o">=</span> <span class="n">a</span> <span class="ow">and</span> <span class="n">check_level</span><span class="p">(</span><span class="n">a</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">nil</span> </span><span id="L-159"><a href="#L-159"><span class="linenos" data-line="159"></span></a> <span class="n">b</span> <span class="o">=</span> <span class="n">b</span> <span class="ow">and</span> <span class="n">check_level</span><span class="p">(</span><span class="n">b</span><span class="p">)</span> <span class="ow">or</span> <span class="n">a</span> <span class="ow">or</span> <span class="kc">nil</span> </span><span id="L-160"><a href="#L-160"><span class="linenos" data-line="160"></span></a> <span class="kd">local</span> <span class="n">start</span><span class="p">,</span> <span class="n">loc</span><span class="p">,</span> <span class="n">lvl</span><span class="p">,</span> <span class="n">sec</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-161"><a href="#L-161"><span class="linenos" data-line="161"></span></a> </span><span id="L-162"><a href="#L-162"><span class="linenos" data-line="162"></span></a> <span class="kr">return</span> <span class="kr">function</span><span class="p">()</span> </span><span id="L-163"><a href="#L-163"><span class="linenos" data-line="163"></span></a> <span class="kr">repeat</span> </span><span id="L-164"><a href="#L-164"><span class="linenos" data-line="164"></span></a> <span class="n">loc</span><span class="p">,</span> <span class="n">lvl</span><span class="p">,</span> <span class="n">sec</span><span class="p">,</span> <span class="n">start</span> <span class="o">=</span> <span class="n">match</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="s2">&quot;()%f[^%z</span><span class="se">\n</span><span class="s2">](==?=?=?=?=?)([^</span><span class="se">\n</span><span class="s2">]+)%2[</span><span class="se">\t</span><span class="s2"> ]*%f[%z</span><span class="se">\n</span><span class="s2">]()&quot;</span><span class="p">,</span> <span class="n">start</span><span class="p">)</span> </span><span id="L-165"><a href="#L-165"><span class="linenos" data-line="165"></span></a> <span class="n">lvl</span> <span class="o">=</span> <span class="n">lvl</span> <span class="ow">and</span> <span class="o">#</span><span class="n">lvl</span> </span><span id="L-166"><a href="#L-166"><span class="linenos" data-line="166"></span></a> <span class="kr">until</span> <span class="ow">not</span> <span class="p">(</span><span class="n">sec</span> <span class="ow">and</span> <span class="n">a</span><span class="p">)</span> <span class="ow">or</span> <span class="p">(</span><span class="n">lvl</span> <span class="o">&gt;=</span> <span class="n">a</span> <span class="ow">and</span> <span class="n">lvl</span> <span class="o">&lt;=</span> <span class="n">b</span><span class="p">)</span> </span><span id="L-167"><a href="#L-167"><span class="linenos" data-line="167"></span></a> <span class="kr">return</span> <span class="n">sec</span> <span class="ow">and</span> <span class="n">trim</span><span class="p">(</span><span class="n">decode_entities</span><span class="p">(</span><span class="n">sec</span><span class="p">))</span> <span class="ow">or</span> <span class="kc">nil</span><span class="p">,</span> <span class="n">lvl</span><span class="p">,</span> <span class="n">loc</span> </span><span id="L-168"><a href="#L-168"><span class="linenos" data-line="168"></span></a> <span class="kr">end</span> </span><span id="L-169"><a href="#L-169"><span class="linenos" data-line="169"></span></a> <span class="kr">end</span> </span><span id="L-170"><a href="#L-170"><span class="linenos" data-line="170"></span></a> </span><span id="L-171"><a href="#L-171"><span class="linenos" data-line="171"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">_get_section</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span> </span><span id="L-172"><a href="#L-172"><span class="linenos" data-line="172"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="p">(</span><span class="n">content</span> <span class="ow">and</span> <span class="n">name</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-173"><a href="#L-173"><span class="linenos" data-line="173"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-174"><a href="#L-174"><span class="linenos" data-line="174"></span></a> <span class="kr">elseif</span> <span class="n">find</span><span class="p">(</span><span class="n">name</span><span class="p">,</span> <span class="s2">&quot;</span><span class="se">\n</span><span class="s2">&quot;</span><span class="p">,</span> <span class="mi">1</span><span class="p">,</span> <span class="kc">true</span><span class="p">)</span> <span class="kr">then</span> </span><span id="L-175"><a href="#L-175"><span class="linenos" data-line="175"></span></a> <span class="nb">error</span><span class="p">(</span><span class="s2">&quot;Heading name cannot contain a newline.&quot;</span><span class="p">)</span> </span><span id="L-176"><a href="#L-176"><span class="linenos" data-line="176"></span></a> <span class="kr">end</span> </span><span id="L-177"><a href="#L-177"><span class="linenos" data-line="177"></span></a> <span class="n">level</span> <span class="o">=</span> <span class="n">level</span> <span class="ow">and</span> <span class="n">check_level</span><span class="p">(</span><span class="n">level</span><span class="p">)</span> <span class="ow">or</span> <span class="kc">nil</span> </span><span id="L-178"><a href="#L-178"><span class="linenos" data-line="178"></span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">trim</span><span class="p">(</span><span class="n">decode_entities</span><span class="p">(</span><span class="n">name</span><span class="p">))</span> </span><span id="L-179"><a href="#L-179"><span class="linenos" data-line="179"></span></a> <span class="kd">local</span> <span class="n">start</span> </span><span id="L-180"><a href="#L-180"><span class="linenos" data-line="180"></span></a> <span class="kr">for</span> <span class="n">sec</span><span class="p">,</span> <span class="n">lvl</span><span class="p">,</span> <span class="n">loc</span> <span class="kr">in</span> <span class="n">find_headings</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">level</span> <span class="ow">and</span> <span class="mi">1</span> <span class="ow">or</span> <span class="kc">nil</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span> <span class="kr">do</span> </span><span id="L-181"><a href="#L-181"><span class="linenos" data-line="181"></span></a> <span class="kr">if</span> <span class="n">start</span> <span class="ow">and</span> <span class="n">lvl</span> <span class="o">&lt;=</span> <span class="n">level</span> <span class="kr">then</span> </span><span id="L-182"><a href="#L-182"><span class="linenos" data-line="182"></span></a> <span class="kr">return</span> <span class="n">sub</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">start</span><span class="p">,</span> <span class="n">loc</span> <span class="o">-</span> <span class="mi">1</span><span class="p">)</span> </span><span id="L-183"><a href="#L-183"><span class="linenos" data-line="183"></span></a> <span class="kr">elseif</span> <span class="ow">not</span> <span class="n">start</span> <span class="ow">and</span> <span class="p">(</span><span class="ow">not</span> <span class="n">level</span> <span class="ow">or</span> <span class="n">lvl</span> <span class="o">==</span> <span class="n">level</span><span class="p">)</span> <span class="ow">and</span> <span class="n">sec</span> <span class="o">==</span> <span class="n">name</span> <span class="kr">then</span> </span><span id="L-184"><a href="#L-184"><span class="linenos" data-line="184"></span></a> <span class="n">start</span><span class="p">,</span> <span class="n">level</span> <span class="o">=</span> <span class="n">loc</span><span class="p">,</span> <span class="n">lvl</span> </span><span id="L-185"><a href="#L-185"><span class="linenos" data-line="185"></span></a> <span class="kr">end</span> </span><span id="L-186"><a href="#L-186"><span class="linenos" data-line="186"></span></a> <span class="kr">end</span> </span><span id="L-187"><a href="#L-187"><span class="linenos" data-line="187"></span></a> <span class="kr">return</span> <span class="n">start</span> <span class="ow">and</span> <span class="n">sub</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">start</span><span class="p">)</span> </span><span id="L-188"><a href="#L-188"><span class="linenos" data-line="188"></span></a> <span class="kr">end</span> </span><span id="L-189"><a href="#L-189"><span class="linenos" data-line="189"></span></a> </span><span id="L-190"><a href="#L-190"><span class="linenos" data-line="190"></span></a> <span class="cm">--[==[</span> </span><span id="L-191"><a href="#L-191"><span class="linenos" data-line="191"></span></a><span class="cm"> A helper function to return the content of a page section.</span> </span><span id="L-192"><a href="#L-192"><span class="linenos" data-line="192"></span></a> </span><span id="L-193"><a href="#L-193"><span class="linenos" data-line="193"></span></a><span class="cm"> `content` is raw wikitext, `name` is the requested section, and `level` is an optional parameter that specifies</span> </span><span id="L-194"><a href="#L-194"><span class="linenos" data-line="194"></span></a><span class="cm"> the required section heading level. If `level` is not supplied, then the first section called `name` is returned.</span> </span><span id="L-195"><a href="#L-195"><span class="linenos" data-line="195"></span></a><span class="cm"> `name` can either be a string or table of section names. If a table, each name represents a section that has the</span> </span><span id="L-196"><a href="#L-196"><span class="linenos" data-line="196"></span></a><span class="cm"> next as a subsection. For example, { {&quot;Spanish&quot;, &quot;Noun&quot;}} will return the first matching section called &quot;Noun&quot;</span> </span><span id="L-197"><a href="#L-197"><span class="linenos" data-line="197"></span></a><span class="cm"> under a section called &quot;Spanish&quot;. These do not have to be at adjacent levels (&quot;Noun&quot; might be L4, while &quot;Spanish&quot;</span> </span><span id="L-198"><a href="#L-198"><span class="linenos" data-line="198"></span></a><span class="cm"> is L2). If `level` is given, it refers to the last name in the table (i.e. the name of the section to be returned).</span> </span><span id="L-199"><a href="#L-199"><span class="linenos" data-line="199"></span></a> </span><span id="L-200"><a href="#L-200"><span class="linenos" data-line="200"></span></a><span class="cm"> The returned section includes all of its subsections. If no matching section is found, return {nil}.]==]</span> </span><span id="L-201"><a href="#L-201"><span class="linenos" data-line="201"></span></a> <span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">get_section</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">names</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span> </span><span id="L-202"><a href="#L-202"><span class="linenos" data-line="202"></span></a> <span class="kr">if</span> <span class="nb">type</span><span class="p">(</span><span class="n">names</span><span class="p">)</span> <span class="o">~=</span> <span class="s2">&quot;table&quot;</span> <span class="kr">then</span> </span><span id="L-203"><a href="#L-203"><span class="linenos" data-line="203"></span></a> <span class="kr">return</span> <span class="n">_get_section</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">names</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span> </span><span id="L-204"><a href="#L-204"><span class="linenos" data-line="204"></span></a> <span class="kr">end</span> </span><span id="L-205"><a href="#L-205"><span class="linenos" data-line="205"></span></a> <span class="kd">local</span> <span class="n">i</span> <span class="o">=</span> <span class="mi">1</span> </span><span id="L-206"><a href="#L-206"><span class="linenos" data-line="206"></span></a> <span class="kd">local</span> <span class="n">name</span> <span class="o">=</span> <span class="n">names</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> </span><span id="L-207"><a href="#L-207"><span class="linenos" data-line="207"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">name</span> <span class="kr">then</span> </span><span id="L-208"><a href="#L-208"><span class="linenos" data-line="208"></span></a> <span class="nb">error</span><span class="p">(</span><span class="s2">&quot;Must specify at least 1 section.&quot;</span><span class="p">)</span> </span><span id="L-209"><a href="#L-209"><span class="linenos" data-line="209"></span></a> <span class="kr">end</span> </span><span id="L-210"><a href="#L-210"><span class="linenos" data-line="210"></span></a> <span class="kr">while</span> <span class="kc">true</span> <span class="kr">do</span> </span><span id="L-211"><a href="#L-211"><span class="linenos" data-line="211"></span></a> <span class="kd">local</span> <span class="n">nxt_i</span> <span class="o">=</span> <span class="n">i</span> <span class="o">+</span> <span class="mi">1</span> </span><span id="L-212"><a href="#L-212"><span class="linenos" data-line="212"></span></a> <span class="kd">local</span> <span class="n">nxt</span> <span class="o">=</span> <span class="n">names</span><span class="p">[</span><span class="n">nxt_i</span><span class="p">]</span> </span><span id="L-213"><a href="#L-213"><span class="linenos" data-line="213"></span></a> <span class="kr">if</span> <span class="n">nxt</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-214"><a href="#L-214"><span class="linenos" data-line="214"></span></a> <span class="kr">return</span> <span class="n">_get_section</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">name</span><span class="p">,</span> <span class="n">level</span><span class="p">)</span> </span><span id="L-215"><a href="#L-215"><span class="linenos" data-line="215"></span></a> <span class="kr">end</span> </span><span id="L-216"><a href="#L-216"><span class="linenos" data-line="216"></span></a> <span class="n">content</span> <span class="o">=</span> <span class="n">_get_section</span><span class="p">(</span><span class="n">content</span><span class="p">,</span> <span class="n">name</span><span class="p">)</span> </span><span id="L-217"><a href="#L-217"><span class="linenos" data-line="217"></span></a> <span class="kr">if</span> <span class="n">content</span> <span class="o">==</span> <span class="kc">nil</span> <span class="kr">then</span> </span><span id="L-218"><a href="#L-218"><span class="linenos" data-line="218"></span></a> <span class="kr">return</span> <span class="kc">nil</span> </span><span id="L-219"><a href="#L-219"><span class="linenos" data-line="219"></span></a> <span class="kr">elseif</span> <span class="n">i</span> <span class="o">==</span> <span class="mi">6</span> <span class="kr">then</span> </span><span id="L-220"><a href="#L-220"><span class="linenos" data-line="220"></span></a> <span class="nb">error</span><span class="p">(</span><span class="s2">&quot;Not possible specify more than 6 sections: headings only go up to level 6.&quot;</span><span class="p">)</span> </span><span id="L-221"><a href="#L-221"><span class="linenos" data-line="221"></span></a> <span class="kr">end</span> </span><span id="L-222"><a href="#L-222"><span class="linenos" data-line="222"></span></a> <span class="n">i</span> <span class="o">=</span> <span class="n">nxt_i</span> </span><span id="L-223"><a href="#L-223"><span class="linenos" data-line="223"></span></a> <span class="n">name</span> <span class="o">=</span> <span class="n">names</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> </span><span id="L-224"><a href="#L-224"><span class="linenos" data-line="224"></span></a> <span class="kr">end</span> </span><span id="L-225"><a href="#L-225"><span class="linenos" data-line="225"></span></a> <span class="kr">return</span> <span class="n">content</span> </span><span id="L-226"><a href="#L-226"><span class="linenos" data-line="226"></span></a> <span class="kr">end</span> </span><span id="L-227"><a href="#L-227"><span class="linenos" data-line="227"></span></a><span class="kr">end</span> </span><span id="L-228"><a href="#L-228"><span class="linenos" data-line="228"></span></a> </span><span id="L-229"><a href="#L-229"><span class="linenos" data-line="229"></span></a><span class="kr">do</span> </span><span id="L-230"><a href="#L-230"><span class="linenos" data-line="230"></span></a> <span class="kd">local</span> <span class="n">current_section</span> </span><span id="L-231"><a href="#L-231"><span class="linenos" data-line="231"></span></a> </span><span id="L-232"><a href="#L-232"><span class="linenos" data-line="232"></span></a> <span class="cm">--[==[</span> </span><span id="L-233"><a href="#L-233"><span class="linenos" data-line="233"></span></a><span class="cm"> A function which returns the number of the page section which contains the current {#invoke}.]==]</span> </span><span id="L-234"><a href="#L-234"><span class="linenos" data-line="234"></span></a> <span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">get_current_section</span><span class="p">()</span> </span><span id="L-235"><a href="#L-235"><span class="linenos" data-line="235"></span></a> <span class="kr">if</span> <span class="n">current_section</span> <span class="kr">then</span> </span><span id="L-236"><a href="#L-236"><span class="linenos" data-line="236"></span></a> <span class="kr">return</span> <span class="n">current_section</span> </span><span id="L-237"><a href="#L-237"><span class="linenos" data-line="237"></span></a> <span class="kr">end</span> </span><span id="L-238"><a href="#L-238"><span class="linenos" data-line="238"></span></a> <span class="kd">local</span> <span class="n">frame</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">getCurrentFrame</span><span class="p">()</span> </span><span id="L-239"><a href="#L-239"><span class="linenos" data-line="239"></span></a> <span class="kd">local</span> <span class="n">extension_tag</span> <span class="o">=</span> <span class="n">frame</span><span class="p">.</span><span class="n">extensionTag</span> </span><span id="L-240"><a href="#L-240"><span class="linenos" data-line="240"></span></a> <span class="c1">-- We determine the section via the heading strip marker count, since they&#39;re numbered sequentially, but the only way to do this is to generate a fake heading via frame:preprocess(). The native parser assigns each heading a unique marker, but frame:preprocess() will return copies of older markers if the heading is identical to one further up the page, so the fake heading has to be unique to the page. The best way to do this is to feed it a heading containing a nowiki marker (which we will need later), since those are always unique.</span> </span><span id="L-241"><a href="#L-241"><span class="linenos" data-line="241"></span></a> <span class="kd">local</span> <span class="n">nowiki_marker</span> <span class="o">=</span> <span class="n">extension_tag</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="s2">&quot;nowiki&quot;</span><span class="p">)</span> </span><span id="L-242"><a href="#L-242"><span class="linenos" data-line="242"></span></a> <span class="c1">-- Note: heading strip markers have a different syntax to the ones used for tags.</span> </span><span id="L-243"><a href="#L-243"><span class="linenos" data-line="243"></span></a> <span class="kd">local</span> <span class="n">h</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">match</span><span class="p">(</span> </span><span id="L-244"><a href="#L-244"><span class="linenos" data-line="244"></span></a> <span class="n">frame</span><span class="p">:</span><span class="n">preprocess</span><span class="p">(</span><span class="s2">&quot;=&quot;</span> <span class="o">..</span> <span class="n">nowiki_marker</span> <span class="o">..</span> <span class="s2">&quot;=&quot;</span><span class="p">),</span> </span><span id="L-245"><a href="#L-245"><span class="linenos" data-line="245"></span></a> <span class="s2">&quot;</span><span class="se">\127</span><span class="s2">&#39;</span><span class="se">\&quot;</span><span class="s2">`UNIQ%-%-h%-(%d+)%-%-QINU`</span><span class="se">\&quot;</span><span class="s2">&#39;</span><span class="se">\127</span><span class="s2">&quot;</span> </span><span id="L-246"><a href="#L-246"><span class="linenos" data-line="246"></span></a> <span class="p">))</span> </span><span id="L-247"><a href="#L-247"><span class="linenos" data-line="247"></span></a> <span class="c1">-- For some reason, [[Special:ExpandTemplates]] doesn&#39;t generate a heading strip marker, so if that happens we simply abort early.</span> </span><span id="L-248"><a href="#L-248"><span class="linenos" data-line="248"></span></a> <span class="kr">if</span> <span class="ow">not</span> <span class="n">h</span> <span class="kr">then</span> </span><span id="L-249"><a href="#L-249"><span class="linenos" data-line="249"></span></a> <span class="kr">return</span> <span class="mi">0</span> </span><span id="L-250"><a href="#L-250"><span class="linenos" data-line="250"></span></a> <span class="kr">end</span> </span><span id="L-251"><a href="#L-251"><span class="linenos" data-line="251"></span></a> <span class="c1">-- The only way to get the section number is to increment the heading count, so we store the offset in nowiki strip markers which can be retrieved by procedurally unstripping nowiki markers, counting backwards until we find a match.</span> </span><span id="L-252"><a href="#L-252"><span class="linenos" data-line="252"></span></a> <span class="kd">local</span> <span class="n">n</span><span class="p">,</span> <span class="n">offset</span> <span class="o">=</span> <span class="nb">tonumber</span><span class="p">(</span><span class="n">match</span><span class="p">(</span> </span><span id="L-253"><a href="#L-253"><span class="linenos" data-line="253"></span></a> <span class="n">nowiki_marker</span><span class="p">,</span> </span><span id="L-254"><a href="#L-254"><span class="linenos" data-line="254"></span></a> <span class="s2">&quot;</span><span class="se">\127</span><span class="s2">&#39;</span><span class="se">\&quot;</span><span class="s2">`UNIQ%-%-nowiki%-([%dA-F]+)%-QINU`</span><span class="se">\&quot;</span><span class="s2">&#39;</span><span class="se">\127</span><span class="s2">&quot;</span> </span><span id="L-255"><a href="#L-255"><span class="linenos" data-line="255"></span></a> <span class="p">),</span> <span class="mi">16</span><span class="p">)</span> </span><span id="L-256"><a href="#L-256"><span class="linenos" data-line="256"></span></a> <span class="kr">while</span> <span class="ow">not</span> <span class="n">offset</span> <span class="ow">and</span> <span class="n">n</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="kr">do</span> </span><span id="L-257"><a href="#L-257"><span class="linenos" data-line="257"></span></a> <span class="n">n</span> <span class="o">=</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span> </span><span id="L-258"><a href="#L-258"><span class="linenos" data-line="258"></span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">match</span><span class="p">(</span> </span><span id="L-259"><a href="#L-259"><span class="linenos" data-line="259"></span></a> <span class="n">unstrip_nowiki</span><span class="p">(</span><span class="n">format</span><span class="p">(</span><span class="s2">&quot;</span><span class="se">\127</span><span class="s2">&#39;</span><span class="se">\&quot;</span><span class="s2">`UNIQ--nowiki-%08X-QINU`</span><span class="se">\&quot;</span><span class="s2">&#39;</span><span class="se">\127</span><span class="s2">&quot;</span><span class="p">,</span> <span class="n">n</span><span class="p">)),</span> </span><span id="L-260"><a href="#L-260"><span class="linenos" data-line="260"></span></a> <span class="s2">&quot;^HEADING</span><span class="se">\1</span><span class="s2">(%d+)&quot;</span> <span class="c1">-- Prefix &quot;HEADING\1&quot; prevents collisions.</span> </span><span id="L-261"><a href="#L-261"><span class="linenos" data-line="261"></span></a> <span class="p">)</span> </span><span id="L-262"><a href="#L-262"><span class="linenos" data-line="262"></span></a> <span class="kr">end</span> </span><span id="L-263"><a href="#L-263"><span class="linenos" data-line="263"></span></a> <span class="n">offset</span> <span class="o">=</span> <span class="n">offset</span> <span class="ow">and</span> <span class="p">(</span><span class="n">offset</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="ow">or</span> <span class="mi">0</span> </span><span id="L-264"><a href="#L-264"><span class="linenos" data-line="264"></span></a> <span class="n">extension_tag</span><span class="p">(</span><span class="n">frame</span><span class="p">,</span> <span class="s2">&quot;nowiki&quot;</span><span class="p">,</span> <span class="s2">&quot;HEADING</span><span class="se">\1</span><span class="s2">&quot;</span> <span class="o">..</span> <span class="n">offset</span><span class="p">)</span> </span><span id="L-265"><a href="#L-265"><span class="linenos" data-line="265"></span></a> <span class="n">current_section</span> <span class="o">=</span> <span class="n">h</span> <span class="o">-</span> <span class="n">offset</span> </span><span id="L-266"><a href="#L-266"><span class="linenos" data-line="266"></span></a> <span class="kr">return</span> <span class="n">current_section</span> </span><span id="L-267"><a href="#L-267"><span class="linenos" data-line="267"></span></a> <span class="kr">end</span> </span><span id="L-268"><a href="#L-268"><span class="linenos" data-line="268"></span></a> <span class="n">get_current_section</span> <span class="o">=</span> <span class="n">export</span><span class="p">.</span><span class="n">get_current_section</span> </span><span id="L-269"><a href="#L-269"><span class="linenos" data-line="269"></span></a><span class="kr">end</span> </span><span id="L-270"><a href="#L-270"><span class="linenos" data-line="270"></span></a> </span><span id="L-271"><a href="#L-271"><span class="linenos" data-line="271"></span></a><span class="kr">do</span> </span><span id="L-272"><a href="#L-272"><span class="linenos" data-line="272"></span></a> <span class="kd">local</span> <span class="n">L2_sections</span> </span><span id="L-273"><a href="#L-273"><span class="linenos" data-line="273"></span></a> </span><span id="L-274"><a href="#L-274"><span class="linenos" data-line="274"></span></a> <span class="kd">local</span> <span class="kr">function</span> <span class="nf">get_L2_sections</span><span class="p">()</span> </span><span id="L-275"><a href="#L-275"><span class="linenos" data-line="275"></span></a> <span class="n">L2_sections</span><span class="p">,</span> <span class="n">get_L2_sections</span> <span class="o">=</span> <span class="n">mw</span><span class="p">.</span><span class="n">loadData</span><span class="p">(</span><span class="s2">&quot;Module:headword/data&quot;</span><span class="p">).</span><span class="n">page</span><span class="p">.</span><span class="n">L2_sections</span><span class="p">,</span> <span class="kc">nil</span> </span><span id="L-276"><a href="#L-276"><span class="linenos" data-line="276"></span></a> <span class="kr">return</span> <span class="n">L2_sections</span> </span><span id="L-277"><a href="#L-277"><span class="linenos" data-line="277"></span></a> <span class="kr">end</span> </span><span id="L-278"><a href="#L-278"><span class="linenos" data-line="278"></span></a> </span><span id="L-279"><a href="#L-279"><span class="linenos" data-line="279"></span></a> <span class="cm">--[==[</span> </span><span id="L-280"><a href="#L-280"><span class="linenos" data-line="280"></span></a><span class="cm"> A function which returns the name of the L2 language section which contains the current {#invoke}.]==]</span> </span><span id="L-281"><a href="#L-281"><span class="linenos" data-line="281"></span></a> <span class="kr">function</span> <span class="nc">export</span><span class="p">.</span><span class="nf">get_current_L2</span><span class="p">()</span> </span><span id="L-282"><a href="#L-282"><span class="linenos" data-line="282"></span></a> <span class="kd">local</span> <span class="n">section</span> <span class="o">=</span> <span class="n">get_current_section</span><span class="p">()</span> </span><span id="L-283"><a href="#L-283"><span class="linenos" data-line="283"></span></a> <span class="kr">if</span> <span class="n">section</span> <span class="o">==</span> <span class="mi">0</span> <span class="kr">then</span> </span><span id="L-284"><a href="#L-284"><span class="linenos" data-line="284"></span></a> <span class="kr">return</span> </span><span id="L-285"><a href="#L-285"><span class="linenos" data-line="285"></span></a> <span class="kr">end</span> </span><span id="L-286"><a href="#L-286"><span class="linenos" data-line="286"></span></a> <span class="kr">while</span> <span class="n">section</span> <span class="o">&gt;</span> <span class="mi">0</span> <span class="kr">do</span> </span><span id="L-287"><a href="#L-287"><span class="linenos" data-line="287"></span></a> <span class="kd">local</span> <span class="n">L2</span> <span class="o">=</span> <span class="p">(</span><span class="n">L2_sections</span> <span class="ow">or</span> <span class="n">get_L2_sections</span><span class="p">())[</span><span class="n">section</span><span class="p">]</span> </span><span id="L-288"><a href="#L-288"><span class="linenos" data-line="288"></span></a> <span class="kr">if</span> <span class="n">L2</span> <span class="kr">then</span> </span><span id="L-289"><a href="#L-289"><span class="linenos" data-line="289"></span></a> <span class="kr">return</span> <span class="n">L2</span> </span><span id="L-290"><a href="#L-290"><span class="linenos" data-line="290"></span></a> <span class="kr">end</span> </span><span id="L-291"><a href="#L-291"><span class="linenos" data-line="291"></span></a> <span class="n">section</span> <span class="o">=</span> <span class="n">section</span> <span class="o">-</span> <span class="mi">1</span> </span><span id="L-292"><a href="#L-292"><span class="linenos" data-line="292"></span></a> <span class="kr">end</span> </span><span id="L-293"><a href="#L-293"><span class="linenos" data-line="293"></span></a> <span class="kr">end</span> </span><span id="L-294"><a href="#L-294"><span class="linenos" data-line="294"></span></a><span class="kr">end</span> </span><span id="L-295"><a href="#L-295"><span class="linenos" data-line="295"></span></a> </span><span id="L-296"><a href="#L-296"><span class="linenos" data-line="296"></span></a><span class="kr">return</span> <span class="n">export</span> </span></pre></div> <!-- NewPP limit report Parsed by mw‐web.codfw.main‐f69cdc8f6‐djcsx Cached time: 20241124093901 Cache expiry: 2592000 Reduced expiry: false Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.080 seconds Real time usage: 0.177 seconds Preprocessor visited node count: 68/1000000 Post‐expand include size: 10670/2097152 bytes Template argument size: 0/2097152 bytes Highest expansion depth: 6/100 Expensive parser function count: 14/500 Unstrip recursion depth: 0/20 Unstrip post‐expand size: 2314/5000000 bytes Lua time usage: 0.055/10.000 seconds Lua memory usage: 1484242/104857600 bytes Number of Wikibase entities loaded: 0/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 165.381 1 Template:documentation 100.00% 165.381 1 -total 47.96% 79.316 1 Template:module_documentation 4.16% 6.877 1 Template:module_cat --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wiktionary.org/w/index.php?title=Module:pages&amp;oldid=82697327">https://en.wiktionary.org/w/index.php?title=Module:pages&amp;oldid=82697327</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Special:Categories" title="Special:Categories">Categories</a>: <ul><li><a href="/wiki/Category:Utility_modules" title="Category:Utility modules">Utility modules</a></li><li><a href="/wiki/Category:Wikitext_parsing_modules" title="Category:Wikitext parsing modules">Wikitext parsing modules</a></li></ul></div></div> </div> </div> <div id="mw-navigation"> <h2>Navigation menu</h2> <div id="mw-head"> <nav id="p-personal" class="mw-portlet mw-portlet-personal vector-user-menu-legacy vector-menu" aria-labelledby="p-personal-label" > <h3 id="p-personal-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Personal tools</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anonuserpage" class="mw-list-item"><span title="The user page for the IP address you are editing as">Not logged in</span></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li><li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-createaccount" class="mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&amp;returnto=Module%3Apages" title="You are encouraged to create an account and log in; however, it is not mandatory"><span>Create account</span></a></li><li id="pt-login" class="mw-list-item"><a href="/w/index.php?title=Special:UserLogin&amp;returnto=Module%3Apages" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o"><span>Log in</span></a></li> </ul> </div> </nav> <div id="left-navigation"> <nav id="p-namespaces" class="mw-portlet mw-portlet-namespaces vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-namespaces-label" > <h3 id="p-namespaces-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Namespaces</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-module" class="selected mw-list-item"><a href="/wiki/Module:pages" title="View the module page [c]" accesskey="c"><span>Module</span></a></li><li id="ca-talk" class="new mw-list-item"><a href="/w/index.php?title=Module_talk:pages&amp;action=edit&amp;redlink=1" rel="discussion" class="new" title="Discussion about the content page (page does not exist) [t]" accesskey="t"><span>Discussion</span></a></li> </ul> </div> </nav> <nav id="p-variants" class="mw-portlet mw-portlet-variants emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-variants-label" > <input type="checkbox" id="p-variants-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-variants" class="vector-menu-checkbox" aria-labelledby="p-variants-label" > <label id="p-variants-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">English</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> </div> <div id="right-navigation"> <nav id="p-views" class="mw-portlet mw-portlet-views vector-menu-tabs vector-menu-tabs-legacy vector-menu" aria-labelledby="p-views-label" > <h3 id="p-views-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Views</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected mw-list-item"><a href="/wiki/Module:pages"><span>Read</span></a></li><li id="ca-viewsource" class="mw-list-item"><a href="/w/index.php?title=Module:pages&amp;action=edit" title="This page is protected.&#10;You can view its source [e]" accesskey="e"><span>View source</span></a></li><li id="ca-history" class="mw-list-item"><a href="/w/index.php?title=Module:pages&amp;action=history" title="Past revisions of this page [h]" accesskey="h"><span>History</span></a></li> </ul> </div> </nav> <nav id="p-cactions" class="mw-portlet mw-portlet-cactions emptyPortlet vector-menu-dropdown vector-menu" aria-labelledby="p-cactions-label" title="More options" > <input type="checkbox" id="p-cactions-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-cactions" class="vector-menu-checkbox" aria-labelledby="p-cactions-label" > <label id="p-cactions-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">More</span> </label> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </nav> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <h3 >Search</h3> <form action="/w/index.php" id="searchform" class="vector-search-box-form"> <div id="simpleSearch" class="vector-search-box-inner" data-search-loc="header-navigation"> <input class="vector-search-box-input" type="search" name="search" placeholder="Search Wiktionary" aria-label="Search Wiktionary" autocapitalize="none" title="Search Wiktionary [f]" accesskey="f" id="searchInput" > <input type="hidden" name="title" value="Special:Search"> <input id="mw-searchButton" class="searchButton mw-fallbackSearchButton" type="submit" name="fulltext" title="Search the pages for this text" value="Search"> <input id="searchButton" class="searchButton" type="submit" name="go" title="Go to a page with this exact name if it exists" value="Go"> </div> </form> </div> </div> </div> <div id="mw-panel" class="vector-legacy-sidebar"> <div id="p-logo" role="banner"> <a class="mw-wiki-logo" href="/wiki/Wiktionary:Main_Page" title="Visit the main page"></a> </div> <nav id="p-navigation" class="mw-portlet mw-portlet-navigation vector-menu-portal portal vector-menu" aria-labelledby="p-navigation-label" > <h3 id="p-navigation-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Navigation</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-text" class="mw-list-item"><a href="/wiki/Wiktionary:Main_Page"><span>Main Page</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wiktionary:Community_portal" title="About the project, what you can do, where to find things"><span>Community portal</span></a></li><li id="n-requestedarticles" class="mw-list-item"><a href="/wiki/Wiktionary:Requested_entries"><span>Requested entries</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Load a random page [x]" accesskey="x"><span>Random entry</span></a></li><li id="n-help" class="mw-list-item"><a href="https://en.wiktionary.org/wiki/Help:Contents" title="The place to find out"><span>Help</span></a></li><li id="n-Glossary" class="mw-list-item"><a href="/wiki/Appendix:Glossary"><span>Glossary</span></a></li><li id="n-sitesupport" class="mw-list-item"><a href="//donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&amp;utm_medium=sidebar&amp;utm_campaign=C13_en.wiktionary.org&amp;uselang=en" title="Support us"><span>Donations</span></a></li><li id="n-contact" class="mw-list-item"><a href="/wiki/Wiktionary:Contact_us"><span>Contact us</span></a></li> </ul> </div> </nav> <nav id="p-tb" class="mw-portlet mw-portlet-tb vector-menu-portal portal vector-menu" aria-labelledby="p-tb-label" > <h3 id="p-tb-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Tools</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Module:pages" title="A list of all wiki pages that link here [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Module:pages" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="//commons.wikimedia.org/wiki/Special:UploadWizard?uselang=en" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Module:pages&amp;oldid=82697327" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Module:pages&amp;action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&amp;url=https%3A%2F%2Fen.wiktionary.org%2Fwiki%2FModule%3Apages"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&amp;url=https%3A%2F%2Fen.wiktionary.org%2Fwiki%2FModule%3Apages"><span>Download QR code</span></a></li> </ul> </div> </nav> <nav id="p-electronpdfservice-sidebar-portlet-heading" class="mw-portlet mw-portlet-electronpdfservice-sidebar-portlet-heading vector-menu-portal portal vector-menu" aria-labelledby="p-electronpdfservice-sidebar-portlet-heading-label" > <h3 id="p-electronpdfservice-sidebar-portlet-heading-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">Print/export</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="electron-print_pdf" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&amp;page=Module%3Apages&amp;action=show-download-screen"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="javascript:print();" rel="alternate" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </nav> <nav id="p-wikibase-otherprojects" class="mw-portlet mw-portlet-wikibase-otherprojects vector-menu-portal portal vector-menu" aria-labelledby="p-wikibase-otherprojects-label" > <h3 id="p-wikibase-otherprojects-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In other projects</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q130305149" title="Link to connected data repository item [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </nav> <nav id="p-lang" class="mw-portlet mw-portlet-lang vector-menu-portal portal vector-menu" aria-labelledby="p-lang-label" > <h3 id="p-lang-label" class="vector-menu-heading " > <span class="vector-menu-heading-label">In other languages</span> </h3> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-hsb mw-list-item"><a href="https://hsb.wiktionary.org/wiki/Modul:pages" title="Modul:pages – Upper Sorbian" lang="hsb" hreflang="hsb" data-title="Modul:pages" data-language-autonym="Hornjoserbsce" data-language-local-name="Upper Sorbian" class="interlanguage-link-target"><span>Hornjoserbsce</span></a></li><li class="interlanguage-link interwiki-ky mw-list-item"><a href="https://ky.wiktionary.org/wiki/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8C:pages" title="Модуль:pages – Kyrgyz" lang="ky" hreflang="ky" data-title="Модуль:pages" data-language-autonym="Кыргызча" data-language-local-name="Kyrgyz" class="interlanguage-link-target"><span>Кыргызча</span></a></li><li class="interlanguage-link interwiki-mt mw-list-item"><a href="https://mt.wiktionary.org/wiki/Module:pages" title="Module:pages – Maltese" lang="mt" hreflang="mt" data-title="Module:pages" data-language-autonym="Malti" data-language-local-name="Maltese" class="interlanguage-link-target"><span>Malti</span></a></li><li class="interlanguage-link interwiki-mnw mw-list-item"><a href="https://mnw.wiktionary.org/wiki/%E1%80%99%E1%80%9D%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0:pages" title="မဝ်ဂျူ:pages – Mon" lang="mnw" hreflang="mnw" data-title="မဝ်ဂျူ:pages" data-language-autonym="ဘာသာမန်" data-language-local-name="Mon" class="interlanguage-link-target"><span>ဘာသာမန်</span></a></li><li class="interlanguage-link interwiki-ms mw-list-item"><a href="https://ms.wiktionary.org/wiki/Modul:pages" title="Modul:pages – Malay" lang="ms" hreflang="ms" data-title="Modul:pages" data-language-autonym="Bahasa Melayu" data-language-local-name="Malay" class="interlanguage-link-target"><span>Bahasa Melayu</span></a></li><li class="interlanguage-link interwiki-pa mw-list-item"><a href="https://pa.wiktionary.org/wiki/%E0%A8%AE%E0%A9%8C%E0%A8%A1%E0%A8%BF%E0%A8%8A%E0%A8%B2:pages" title="ਮੌਡਿਊਲ:pages – Punjabi" lang="pa" hreflang="pa" data-title="ਮੌਡਿਊਲ:pages" data-language-autonym="ਪੰਜਾਬੀ" data-language-local-name="Punjabi" class="interlanguage-link-target"><span>ਪੰਜਾਬੀ</span></a></li><li class="interlanguage-link interwiki-blk mw-list-item"><a href="https://blk.wiktionary.org/wiki/%E1%80%99%E1%80%B1%E1%80%AC%E1%80%BA%E1%80%82%E1%80%BB%E1%80%B0%E1%80%B8:pages" title="မော်ဂျူး:pages – Pa&#039;O" lang="blk" hreflang="blk" data-title="မော်ဂျူး:pages" data-language-autonym="ပအိုဝ်ႏဘာႏသာႏ" data-language-local-name="Pa&#039;O" class="interlanguage-link-target"><span>ပအိုဝ်ႏဘာႏသာႏ</span></a></li><li class="interlanguage-link interwiki-si mw-list-item"><a href="https://si.wiktionary.org/wiki/Module:pages" title="Module:pages – Sinhala" lang="si" hreflang="si" data-title="Module:pages" data-language-autonym="සිංහල" data-language-local-name="Sinhala" class="interlanguage-link-target"><span>සිංහල</span></a></li><li class="interlanguage-link interwiki-shn mw-list-item"><a href="https://shn.wiktionary.org/wiki/%E1%80%99%E1%80%B1%E1%82%83%E1%82%87%E1%81%B5%E1%80%BB%E1%80%B0%E1%80%B8:pages" title="မေႃႇၵျူး:pages – Shan" lang="shn" hreflang="shn" data-title="မေႃႇၵျူး:pages" data-language-autonym="ၽႃႇသႃႇတႆး " data-language-local-name="Shan" class="interlanguage-link-target"><span>ၽႃႇသႃႇတႆး </span></a></li><li class="interlanguage-link interwiki-vi mw-list-item"><a href="https://vi.wiktionary.org/wiki/M%C3%B4_%C4%91un:pages" title="Mô đun:pages – Vietnamese" lang="vi" hreflang="vi" data-title="Mô đun:pages" data-language-autonym="Tiếng Việt" data-language-local-name="Vietnamese" class="interlanguage-link-target"><span>Tiếng Việt</span></a></li><li class="interlanguage-link interwiki-zh mw-list-item"><a href="https://zh.wiktionary.org/wiki/Module:Pages" title="Module:Pages – Chinese" lang="zh" hreflang="zh" data-title="Module:Pages" data-language-autonym="中文" data-language-local-name="Chinese" class="interlanguage-link-target"><span>中文</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q130305149#sitelinks-wiktionary" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </nav> </div> </div> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 19 November 2024, at 19:07.</li> <li id="footer-info-copyright">Definitions and other text are available under the <a rel="nofollow" class="external text" href="//creativecommons.org/licenses/by-sa/4.0/">Creative Commons Attribution-ShareAlike License</a>; additional terms may apply. By using this site, you agree to the <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use">Terms of Use</a> and <a class="external text" href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy Policy.</a></li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wiktionary:About">About Wiktionary</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wiktionary:General_disclaimer">Disclaimers</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wiktionary.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wiktionary.org/w/index.php?title=Module:pages&amp;mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> <script>(RLQ=window.RLQ||[]).push(function(){mw.log.warn("This page is using the deprecated ResourceLoader module \"codex-search-styles\".\n[1.43] Use a CodexModule with codexComponents to set your specific components used: https://www.mediawiki.org/wiki/Codex#Using_a_limited_subset_of_components");mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-djcsx","wgBackendResponseTime":304,"wgPageParseReport":{"limitreport":{"cputime":"0.080","walltime":"0.177","ppvisitednodes":{"value":68,"limit":1000000},"postexpandincludesize":{"value":10670,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":6,"limit":100},"expensivefunctioncount":{"value":14,"limit":500},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":2314,"limit":5000000},"entityaccesscount":{"value":0,"limit":400},"timingprofile":["100.00% 165.381 1 Template:documentation","100.00% 165.381 1 -total"," 47.96% 79.316 1 Template:module_documentation"," 4.16% 6.877 1 Template:module_cat"]},"scribunto":{"limitreport-timeusage":{"value":"0.055","limit":"10.000"},"limitreport-memusage":{"value":1484242,"limit":104857600}},"cachereport":{"origin":"mw-web.codfw.main-f69cdc8f6-djcsx","timestamp":"20241124093901","ttl":2592000,"transientcontent":false}}});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10